| @@ -486,26 +486,34 @@ void PaulstretchpluginAudioProcessor::saveCaptureBuffer() | |||||
| if (inchans < 1) | if (inchans < 1) | ||||
| return; | return; | ||||
| Uuid uid; | Uuid uid; | ||||
| String outfn = "C:\\Users\\Teemu\\AppData\\Roaming\\PaulXStretch\\audio_captures\\" + uid.toString() + ".wav"; | |||||
| WavAudioFormat wavformat; | WavAudioFormat wavformat; | ||||
| String outfn = File::getSpecialLocation(File::SpecialLocationType::userDocumentsDirectory).getFullPathName() + "/paulxstretchaudiocaptures/" + | |||||
| uid.toString() + ".wav"; | |||||
| Logger::writeToLog("Attempting to save capture to file " + outfn); | |||||
| File outfile(outfn); | File outfile(outfn); | ||||
| auto outstream = outfile.createOutputStream(); | |||||
| auto writer = unique_from_raw(wavformat.createWriterFor(outstream, getSampleRateChecked(), | |||||
| inchans, 32, {}, 0)); | |||||
| if (writer != nullptr) | |||||
| outfile.create(); | |||||
| if (outfile.existsAsFile()) | |||||
| { | { | ||||
| auto sourcebuffer = getStretchSource()->getSourceAudioBuffer(); | |||||
| jassert(sourcebuffer->getNumChannels() == inchans); | |||||
| jassert(sourcebuffer->getNumSamples() > 0); | |||||
| Logger::writeToLog("Saving capture to file " + outfn); | |||||
| writer->writeFromAudioSampleBuffer(*sourcebuffer, 0, sourcebuffer->getNumSamples()); | |||||
| m_current_file = outfile; | |||||
| auto outstream = outfile.createOutputStream(); | |||||
| auto writer = unique_from_raw(wavformat.createWriterFor(outstream, getSampleRateChecked(), | |||||
| inchans, 32, {}, 0)); | |||||
| if (writer != nullptr) | |||||
| { | |||||
| auto sourcebuffer = getStretchSource()->getSourceAudioBuffer(); | |||||
| jassert(sourcebuffer->getNumChannels() == inchans); | |||||
| jassert(sourcebuffer->getNumSamples() > 0); | |||||
| writer->writeFromAudioSampleBuffer(*sourcebuffer, 0, sourcebuffer->getNumSamples()); | |||||
| m_current_file = outfile; | |||||
| } | |||||
| else | |||||
| { | |||||
| Logger::writeToLog("Could not create wav writer"); | |||||
| delete outstream; | |||||
| } | |||||
| } | } | ||||
| else | else | ||||
| { | |||||
| Logger::writeToLog("Could not create wav writer"); | |||||
| delete outstream; | |||||
| } | |||||
| Logger::writeToLog("Could not create output file"); | |||||
| }; | }; | ||||
| std::thread th(task); | std::thread th(task); | ||||
| th.detach(); | th.detach(); | ||||