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

Method _runModel

NeuralNote/Source/TranscriptionManager.cpp:100–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98}
99
100void TranscriptionManager::_runModel()
101{
102 mBasicPitch.setParameters(mProcessor->getParameterValue(ParameterHelpers::NoteSensitivityId),
103 mProcessor->getParameterValue(ParameterHelpers::SplitSensitivityId),
104 mProcessor->getParameterValue(ParameterHelpers::MinimumNoteDurationId));
105 mBasicPitch.transcribeToMIDI(
106 mProcessor->getSourceAudioManager()->getDownsampledSourceAudioForTranscription().getWritePointer(0),
107 mProcessor->getSourceAudioManager()->getNumSamplesDownAcquired());
108
109 mNoteOptions.setParameters(
110 mProcessor->getParameterValue(ParameterHelpers::EnableNoteQuantizationId) > 0.5f,
111 static_cast<NoteUtils::RootNote>(mProcessor->getParameterValue(ParameterHelpers::KeyRootNoteId)),
112 static_cast<NoteUtils::ScaleType>(mProcessor->getParameterValue(ParameterHelpers::KeyTypeId)),
113 static_cast<NoteUtils::SnapMode>(mProcessor->getParameterValue(ParameterHelpers::KeySnapModeId)),
114 static_cast<int>(mProcessor->getParameterValue(ParameterHelpers::MinMidiNoteId)),
115 static_cast<int>(mProcessor->getParameterValue(ParameterHelpers::MaxMidiNoteId)));
116
117 auto post_processed_notes = mNoteOptions.process(mBasicPitch.getNoteEvents());
118
119 mTimeQuantizeOptions.setParameters(
120 mProcessor->getParameterValue(ParameterHelpers::EnableTimeQuantizationId) > 0.5f,
121 static_cast<TimeQuantizeUtils::TimeDivisions>(mProcessor->getParameterValue(ParameterHelpers::TimeDivisionId)),
122 mProcessor->getParameterValue(ParameterHelpers::QuantizationForceId));
123
124 mPostProcessedNotes = mTimeQuantizeOptions.quantize(post_processed_notes);
125
126 Notes::dropOverlappingPitchBends(mPostProcessedNotes);
127 Notes::mergeOverlappingNotesWithSamePitch(mPostProcessedNotes);
128
129 // For the synth
130 auto single_events = SynthController::buildMidiEventsVector(mPostProcessedNotes);
131 mProcessor->getPlayer()->getSynthController()->setNewMidiEventsVectorToUse(single_events);
132
133 mProcessor->setStateToPopulatedAudioAndMidiRegions();
134}
135
136void TranscriptionManager::_updateTranscription()
137{

Callers

nothing calls this directly

Calls 11

getParameterValueMethod · 0.80
transcribeToMIDIMethod · 0.80
getSourceAudioManagerMethod · 0.80
processMethod · 0.80
quantizeMethod · 0.80
getSynthControllerMethod · 0.80
getPlayerMethod · 0.80
setParametersMethod · 0.45

Tested by

no test coverage detected