MCPcopy Create free account
hub / github.com/DamRsn/NeuralNote / onFileDrop

Method onFileDrop

NeuralNote/Source/SourceAudioManager.cpp:199–249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

197}
198
199bool SourceAudioManager::onFileDrop(const File& inFile)
200{
201 if (mProcessor->getState() == EmptyAudioAndMidiRegions || mProcessor->getState() == PopulatedAudioAndMidiRegions) {
202 mProcessor->clear();
203 bool success = AudioUtils::loadAudioFile(inFile, mSourceAudio, mSourceAudioSampleRate);
204
205 if (!success) {
206 mProcessor->clear();
207 NativeMessageBox::showMessageBoxAsync(
208 MessageBoxIconType::NoIcon,
209 "Could not load the audio file.",
210 "Check your file format (Accepted formats: .wav, .aiff, .flac, .mp3, .ogg).");
211 return false;
212 }
213
214 // Downsample to basic pitch sample rate
215 AudioUtils::resampleBuffer(
216 mSourceAudio, mDownsampledSourceAudio, mSourceAudioSampleRate, BASIC_PITCH_SAMPLE_RATE);
217
218 // Resample to current plugin sample rate for playback
219 if (mSourceAudioSampleRate != mSampleRate) {
220 AudioBuffer<float> tmp_buffer;
221 AudioUtils::resampleBuffer(mSourceAudio, tmp_buffer, mSourceAudioSampleRate, mSampleRate);
222 mSourceAudio = std::move(tmp_buffer);
223 mSourceAudioSampleRate = mSampleRate;
224 }
225
226 mNumSamplesAcquiredDown = mDownsampledSourceAudio.getNumSamples();
227 mNumSamplesAcquired = mSourceAudio.getNumSamples();
228 mDuration = static_cast<double>(mNumSamplesAcquiredDown) / BASIC_PITCH_SAMPLE_RATE;
229
230 mDroppedFilename = inFile.getFileNameWithoutExtension();
231 mSourceFile = inFile;
232
233 auto& tree = mProcessor->getValueTree();
234 tree.setPropertyExcludingListener(this, NnId::SourceAudioNativeSrPathId, inFile.getFullPathName(), nullptr);
235 mProcessor->getTranscriptionManager()->getTimeQuantizeOptions().fileLoaded();
236
237 mThumbnail.clear();
238 mThumbnailCache.clear();
239 mThumbnail.setSource(&mDownsampledSourceAudio, BASIC_PITCH_SAMPLE_RATE, 0);
240
241 // Launch transcription job
242 mProcessor->getTranscriptionManager()->launchTranscribeJob();
243
244 } else {
245 jassertfalse;
246 }
247
248 return true;
249}
250
251void SourceAudioManager::clear()
252{

Callers 1

filesDroppedMethod · 0.80

Calls 7

loadAudioFileFunction · 0.85
resampleBufferFunction · 0.85
getStateMethod · 0.80
fileLoadedMethod · 0.80
launchTranscribeJobMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected