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

Method _updatePostProcessing

NeuralNote/Source/TranscriptionManager.cpp:153–187  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153void TranscriptionManager::_updatePostProcessing()
154{
155 jassert(mProcessor->getState() == PopulatedAudioAndMidiRegions);
156
157 if (mProcessor->getState() == PopulatedAudioAndMidiRegions) {
158 mNoteOptions.setParameters(
159 mProcessor->getParameterValue(ParameterHelpers::EnableNoteQuantizationId) > 0.5f,
160 static_cast<NoteUtils::RootNote>(mProcessor->getParameterValue(ParameterHelpers::KeyRootNoteId)),
161 static_cast<NoteUtils::ScaleType>(mProcessor->getParameterValue(ParameterHelpers::KeyTypeId)),
162 static_cast<NoteUtils::SnapMode>(mProcessor->getParameterValue(ParameterHelpers::KeySnapModeId)),
163 static_cast<int>(mProcessor->getParameterValue(ParameterHelpers::MinMidiNoteId)),
164 static_cast<int>(mProcessor->getParameterValue(ParameterHelpers::MaxMidiNoteId)));
165
166 // TODO: Make this vector a member to avoid reallocating every time
167 auto post_processed_notes = mNoteOptions.process(mBasicPitch.getNoteEvents());
168
169 mTimeQuantizeOptions.setParameters(mProcessor->getParameterValue(ParameterHelpers::EnableTimeQuantizationId)
170 > 0.5f,
171 static_cast<TimeQuantizeUtils::TimeDivisions>(
172 mProcessor->getParameterValue(ParameterHelpers::TimeDivisionId)),
173 mProcessor->getParameterValue(ParameterHelpers::QuantizationForceId));
174
175 // TODO: Pass mPostProcessedNotes as reference
176 mPostProcessedNotes = mTimeQuantizeOptions.quantize(post_processed_notes);
177
178 Notes::dropOverlappingPitchBends(mPostProcessedNotes);
179 Notes::mergeOverlappingNotesWithSamePitch(mPostProcessedNotes);
180
181 // For the synth
182 auto single_events = SynthController::buildMidiEventsVector(mPostProcessedNotes);
183 mProcessor->getPlayer()->getSynthController()->setNewMidiEventsVectorToUse(single_events);
184 }
185
186 mShouldUpdatePostProcessing = false;
187}
188
189bool TranscriptionManager::isJobRunningOrQueued() const
190{

Callers

nothing calls this directly

Calls 8

getStateMethod · 0.80
getParameterValueMethod · 0.80
processMethod · 0.80
quantizeMethod · 0.80
getSynthControllerMethod · 0.80
getPlayerMethod · 0.80
setParametersMethod · 0.45

Tested by

no test coverage detected