From 21f9cea5188be87750b0a8af059ffa46995b8d81 Mon Sep 17 00:00:00 2001 From: jay Date: Wed, 9 Jun 2021 17:58:21 -0500 Subject: [PATCH 1/4] modified: WavPlot.py Minor formatting of info messages --- WavPlot.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WavPlot.py b/WavPlot.py index 2f99fa4..fa87ca2 100644 --- a/WavPlot.py +++ b/WavPlot.py @@ -17,9 +17,8 @@ wav_fname=arg samplerate, data = wavfile.read(wav_fname) try: - print(f"number of channels = {data.shape[1]}") length = data.shape[0] / samplerate - print(f"length = {length}s") + print(f"number of channels = {data.shape[1]}", f"length = {length}s") time = np.linspace(0., length, data.shape[0]) for i in range(data.shape[1]): plt.plot(time, data[:, i], label=wav_fname.split(".")[0]+"Channel"+str(i)) From 2180e73054ed935f7a3614c70ccb6dac3b2e2bd8 Mon Sep 17 00:00:00 2001 From: mohini Date: Thu, 10 Jun 2021 14:04:25 -0500 Subject: [PATCH 2/4] added ola.c --- Ola.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 Ola.c diff --git a/Ola.c b/Ola.c new file mode 100644 index 0000000..6e513ac --- /dev/null +++ b/Ola.c @@ -0,0 +1,111 @@ +#include +#include +#include +#include +#include "wav.h" + +#define OVERLAP 0.5 +#define WINDOWLENGTH 4096 + +//works better with making files shorter than it does with making them longer +//use stretchFactor < 1 for shorter files +//hopefully wsola will be better than ola in this regard + +int main(int argc, char *argv[]) { + char* filename = argv[1]; + float stretchFactor = atof(argv[2]); + + struct wav_info info; + + FILE* fp = fopen(filename, "rb"); + if (!fp) { + printf("Error reading file\n"); + return 1; + } + + char* outputName; + asprintf(&outputName, "OLA_%s", filename); + FILE* op = fopen(outputName, "wb"); + if (!op) { + printf("Error writing file\n"); + return 1; + } + + + read_wav_info(&info, fp); + + int originalSampleNum = info.num_samples; + info.num_samples *= stretchFactor; + write_wav_hdr(&info, op); + + //initialize all the variables for the ola algorithm + int windowOffset = (1 - OVERLAP) * WINDOWLENGTH; + int gammaLength = (int) info.num_samples / windowOffset; + int sigmaInterval = windowOffset / stretchFactor; + int gamma[gammaLength]; + int sigma[gammaLength]; + float window[sigmaInterval]; + + //populate gamma and sigma + gamma[0] = sigma[0] = 0; + for (int i = 1; i < gammaLength; i++) { + gamma[i] = gamma[i-1] + windowOffset; + sigma[i] = gamma[i] + sigmaInterval; + } + + //populate window + for (int i = 0; i < sigmaInterval; i++) { + window[i] = pow(sin(M_PI * i / (sigmaInterval - 1)), 2); + } + + //initialize input and output buffers + printf("Initializing input and output buffers\n"); + printf("Initializing allSamples\n"); + int_fast32_t allSamples[originalSampleNum][info.num_channels]; + printf("Initializing outputSamples\n"); + int_fast32_t outputSamples[info.num_samples][info.num_channels]; + + //zero out outputSamples + printf("Zeroing out outputSamples"); + for (int i = 0; i < info.num_samples; i++) { + for (int j = 0; j < info.num_channels - 1; j++) { + outputSamples[i][j] = 0; + } + } + + //read all samples into memory + printf("Reading all samples into memory\n"); + for (int i = 0; i < originalSampleNum; i++) { + for (int j = 0; j < info.num_channels; j++) { + fread(&allSamples[i][j], info.bits_per_sample/8, 1, fp); + } + } + + //read each frame, window it, and copy it to the output buffer + for (int i = 0; i < gammaLength - 2; i++) { //loop through each element of sigma + int_fast32_t frame[sigmaInterval][info.num_channels]; + for (int j = 0; j < sigmaInterval; j++) { //loop through each sample of the frame + for (int k = 0; k < info.num_channels; k++) { //loop through each channel of the sample + frame[j][k] = allSamples[sigma[i] + j][k] * window[j]; + } + } for (int l = 0; l < sigmaInterval; l++) { //loop through each sample of frame again + for (int m = 0; m < info.num_channels; m++) { //to add each sample to output buffer + outputSamples[gamma[i] + l][m] += frame[l][m]; + } + } + + } + + //write all samples + int_fast32_t sample[info.num_channels]; + for (int i = 0; i < info.num_samples; i++) { + for (int j = 0; j < info.num_channels; j++) { + sample[j] = outputSamples[i][j]; + } + write_sample(&info, op, sample); + } + + fclose(fp); + fclose(op); + printf("Successfully stretched file by given factor\n"); +} From 05f1534b97ed27b89b7f6ee884231887b8c7f660 Mon Sep 17 00:00:00 2001 From: mohini Date: Thu, 10 Jun 2021 14:13:30 -0500 Subject: [PATCH 3/4] Revert "Merge remote-tracking branch 'origin/devel' into main" This reverts commit 51c2d5cce30a265ffbe9c7b5a09347a976631048. --- WavPlot.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/WavPlot.py b/WavPlot.py index 397ca78..fa87ca2 100644 --- a/WavPlot.py +++ b/WavPlot.py @@ -18,11 +18,7 @@ samplerate, data = wavfile.read(wav_fname) try: length = data.shape[0] / samplerate -<<<<<<< HEAD print(f"number of channels = {data.shape[1]}", f"length = {length}s") -======= - print(f"num Audio channels = {data.shape[1]}", f"length = {length}s") ->>>>>>> devel time = np.linspace(0., length, data.shape[0]) for i in range(data.shape[1]): plt.plot(time, data[:, i], label=wav_fname.split(".")[0]+"Channel"+str(i)) From 4461d5e506b51556d18a8c130f98f46c7b0d2cab Mon Sep 17 00:00:00 2001 From: mohini Date: Sat, 12 Jun 2021 22:30:30 -0500 Subject: [PATCH 4/4] updated ola with 50kb cap --- Ola.c | 11 +++++++++++ sine.wav | Bin 0 -> 42944 bytes 2 files changed, 11 insertions(+) create mode 100644 sine.wav diff --git a/Ola.c b/Ola.c index 6e513ac..0431fe6 100644 --- a/Ola.c +++ b/Ola.c @@ -6,6 +6,7 @@ #define OVERLAP 0.5 #define WINDOWLENGTH 4096 +#define SIZECAP 400000 //works better with making files shorter than it does with making them longer //use stretchFactor < 1 for shorter files @@ -34,6 +35,16 @@ int main(int argc, char *argv[]) { read_wav_info(&info, fp); + int sizeInBits = info.num_samples * info.num_channels * info.bits_per_sample; + + if (sizeInBits > SIZECAP) { + printf("File is too big, must be less than 50 kB\n"); + return 1; + } else if (sizeInBits * stretchFactor > SIZECAP * 4) { + printf("stretchFactor is too big\n"); + return 1; + } + int originalSampleNum = info.num_samples; info.num_samples *= stretchFactor; write_wav_hdr(&info, op); diff --git a/sine.wav b/sine.wav new file mode 100644 index 0000000000000000000000000000000000000000..e134c7d52c80d36e772cf3f1fd15a4965d0ea7ec GIT binary patch literal 42944 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 literal 0 HcmV?d00001