/* Routine was patched by Hiroaki Morimoto, revised 2003/08/15. Rewritten by DPL 2004/05/16 to be more understandable. octaveCode returns octave adjustments in the order [absolute or =],[relative] */ void checkOctave(voice_index voice, Char *note) { Char code; code = octaveCode(note); if (code == '=') { setOctave(voice); removeOctaveCode(code, note); } if (octave(voice) == blank) return; code = octaveCode(note); if (isdigit(code)) { resetOctave(voice); return; } while (code == '+' || code == '-') { newOctave(voice, code); removeOctaveCode(code, note); code = octaveCode(note); } if (code != ' ') error3(voice, "You may have only one absolute octave assignment"); insertOctaveCode(octave(voice), note); checkRange(voice, note); resetOctave(voice); }
MantaAudioUnitController::MantaAudioUnitController() : MantaStats() { toSetMidiLedColor = true; addPadListener(this, &MantaAudioUnitController::PadEvent); addSliderListener(this, &MantaAudioUnitController::SliderEvent); addButtonListener(this, &MantaAudioUnitController::ButtonEvent); addPadVelocityListener(this, &MantaAudioUnitController::PadVelocityEvent); addButtonVelocityListener(this, &MantaAudioUnitController::ButtonVelocityEvent); addStatListener(this, &MantaAudioUnitController::StatEvent); setPadFreezingEnabled(false); for (int i = 0; i < 48; i++) { padFrozen[i] = false; padReleased[i] = false; } setupTheory(); setKey(0); setMode(0); setOctave(5); }
//----------------------------------------------------------------------------------------- void MirSynth::setParameter (VstInt32 index, float value) { MirSynthProgram *ap = &programs[curProgram]; switch (index) { case kOsc1Octave: setOctave(1,value); break; case kOsc1Coarse: setCoarse(1,value); break; case kOsc1Fine: setFine(1,value); break; case kOsc1Waveform: setOscWaveform(1,value); break; case kOsc1Level: setOscLevel(1,value); break; case kOsc1Pan: setOscPan(1,value); break; case kOsc1Sync: setOscSync(1,value); break; case kOsc2Octave: setOctave(2,value); break; case kOsc2Coarse: setCoarse(2,value); break; case kOsc2Fine: setFine(2,value); break; case kOsc2Waveform: setOscWaveform(2,value); break; case kOsc2Level: setOscLevel(2,value); break; case kOsc2Pan: setOscPan(2,value); break; case kOsc2Sync: setOscSync(2,value); break; case kOsc3Octave: setOctave(3,value); break; case kOsc3Coarse: setCoarse(3,value); break; case kOsc3Fine: setFine(3,value); break; case kOsc3Waveform: setOscWaveform(3,value); break; case kOsc3Level: setOscLevel(3,value); break; case kOsc3Pan: setOscPan(3,value); break; case kOsc3Sync: setOscSync(3,value); break; case kOsc4Octave: setOctave(4,value); break; case kOsc4Coarse: setCoarse(4,value); break; case kOsc4Fine: setFine(4,value); break; case kOsc4Waveform: setOscWaveform(4,value); break; case kOsc4Level: setOscLevel(4,value); break; case kOsc4Pan: setOscPan(4,value); break; case kOsc4Sync: setOscSync(4,value); break; case kEnv1Attack: setEnvAttack(1,value); break; case kEnv1Decay: setEnvDecay(1,value); break; case kEnv1Sustain: setEnvSustain(1,value); break; case kEnv1Time: setEnvTime(1,value); break; case kEnv1Release: setEnvRelease(1,value); break; case kEnv2Attack: setEnvAttack(2,value); break; case kEnv2Decay: setEnvDecay(2,value); break; case kEnv2Sustain: setEnvSustain(2,value); break; case kEnv2Time: setEnvTime(2,value); break; case kEnv2Release: setEnvRelease(2,value); break; case kEnv3Attack: setEnvAttack(3,value); break; case kEnv3Decay: setEnvDecay(3,value); break; case kEnv3Sustain: setEnvSustain(3,value); break; case kEnv3Time: setEnvTime(3,value); break; case kEnv3Release: setEnvRelease(3,value); break; case kEnv4Attack: setEnvAttack(4,value); break; case kEnv4Decay: setEnvDecay(4,value); break; case kEnv4Sustain: setEnvSustain(4,value); break; case kEnv4Time: setEnvTime(4,value); break; case kEnv4Release: setEnvRelease(4,value); break; case kLfo1Range: setLfoRange(1,value); break; case kLfo1Rate: setLfoRate(1,value); break; case kLfo1PhaseShift: setLfoPhaseShift(1,value); break; case kLfo1Delay: setLfoDelay(1,value); break; case kLfo1Fade: setLfoFade(1,value); break; case kLfo1Waveform: setLfoWaveform(1,value);break; case kLfo2Range: setLfoRange(2,value); break; case kLfo2Rate: setLfoRate(2,value); break; case kLfo2PhaseShift: setLfoPhaseShift(2,value); break; case kLfo2Delay: setLfoDelay(2,value); break; case kLfo2Fade: setLfoFade(2,value); break; case kLfo2Waveform: setLfoWaveform(2,value);break; case kLfo3Range: setLfoRange(3,value); break; case kLfo3Rate: setLfoRate(3,value); break; case kLfo3PhaseShift: setLfoPhaseShift(3,value); break; case kLfo3Delay: setLfoDelay(3,value); break; case kLfo3Fade: setLfoFade(3,value); break; case kLfo3Waveform: setLfoWaveform(3,value);break; case kLfo4Range: setLfoRange(4,value); break; case kLfo4Rate: setLfoRate(4,value); break; case kLfo4PhaseShift: setLfoPhaseShift(4,value); break; case kLfo4Delay: setLfoDelay(4,value); break; case kLfo4Fade: setLfoFade(4,value); break; case kLfo4Waveform: setLfoWaveform(4,value);break; case kFilter1CutOff: setFilterCutoff(1,value);break; case kFilter1Q: setFilterQ(1,value);break; case kFilter1KeyFollow: setFilterKeyFollow(1,value);break; case kFilter1Mix: setFilterMix(1,value);break; case kFilter1Type: setFilterType(1,value);break; case kFilter2CutOff: setFilterCutoff(2,value);break; case kFilter2Q: setFilterQ(2,value);break; case kFilter2KeyFollow: setFilterKeyFollow(2,value);break; case kFilter2Mix: setFilterMix(2,value);break; case kFilter2Type: setFilterType(2,value);break; case kFilterRouting: setFilterRouting(value);break; case kModDestination01: case kModDestination02: case kModDestination03: case kModDestination04: case kModDestination05: case kModDestination06: case kModDestination07: case kModDestination08: case kModDestination09: case kModDestination10: case kModDestination11: case kModDestination12: case kModDestination13: case kModDestination14: case kModDestination15: case kModDestination16: case kModDestination17: case kModDestination18: case kModDestination19: case kModDestination20: case kModDestination21: case kModDestination22: case kModDestination23: case kModDestination24: case kModDestination25: case kModDestination26: case kModDestination27: case kModDestination28: case kModDestination29: case kModDestination30: case kModDestination31: case kModDestination32: setModDst(index,value);break; case kModSource01: case kModSource02: case kModSource03: case kModSource04: case kModSource05: case kModSource06: case kModSource07: case kModSource08: case kModSource09: case kModSource10: case kModSource11: case kModSource12: case kModSource13: case kModSource14: case kModSource15: case kModSource16: case kModSource17: case kModSource18: case kModSource19: case kModSource20: case kModSource21: case kModSource22: case kModSource23: case kModSource24: case kModSource25: case kModSource26: case kModSource27: case kModSource28: case kModSource29: case kModSource30: case kModSource31: case kModSource32: setModSrc(index,value);break; case kModAmt01: case kModAmt02: case kModAmt03: case kModAmt04: case kModAmt05: case kModAmt06: case kModAmt07: case kModAmt08: case kModAmt09: case kModAmt10: case kModAmt11: case kModAmt12: case kModAmt13: case kModAmt14: case kModAmt15: case kModAmt16: case kModAmt17: case kModAmt18: case kModAmt19: case kModAmt20: case kModAmt21: case kModAmt22: case kModAmt23: case kModAmt24: case kModAmt25: case kModAmt26: case kModAmt27: case kModAmt28: case kModAmt29: case kModAmt30: case kModAmt31: case kModAmt32: setModAmt(index,value);break; case kMasterVolume: Glob->parameters[kMasterVolume]->setValue(value); ap->params[kMasterVolume] = value; break; default: Glob->parameters[index]->value = ap->params[index] = value; break; } if(editor) { ((cMirEditor *)editor)->setParameter(index, value); } }
void MantaAudioUnitController::loadPreset(string name) { ofXml xml; xml.load(ofToString("presets/"+name+".xml")); xml.setTo("MantaAudioUnitController"); xml.setTo("AudioUnits"); if (xml.exists("AudioUnit[0]")) { xml.setTo("AudioUnit[0]"); do { string synthName = xml.getValue<string>("Name"); synths[synthName]->getSynth().loadCustomPreset(ofToDataPath("presets/"+xml.getValue<string>("Preset"))); } while(xml.setToSibling()); xml.setToParent(); } xml.setToParent(); xml.setTo("Manta"); setKey(xml.getValue<int>("Key")); setMode(xml.getValue<int>("Mode")); setOctave(xml.getValue<int>("Octave")); setPadFreezingEnabled(xml.getValue<int>("FreezeEnabled") == 1 ? true : false); xml.setTo("Pads"); if (xml.exists("PadMapping[0]")) { xml.setTo("PadMapping[0]"); do { int id = xml.getValue<int>("Id"); string synthName = xml.getValue<string>("SynthName"); string parameterName = xml.getValue<string>("ParameterName"); bool toggle = xml.getValue<int>("Toggle") == 1 ? true : false; mapPadToParameter(floor(id / 8), id % 8, *synths[synthName], parameterName, toggle); padMap[id]->min = xml.getValue<float>("Min"); padMap[id]->max = xml.getValue<float>("Max"); } while(xml.setToSibling()); xml.setToParent(); } xml.setToParent(); xml.setTo("Sliders"); if (xml.exists("SliderMapping[0]")) { xml.setTo("SliderMapping[0]"); do { int id = xml.getValue<int>("Id"); string synthName = xml.getValue<string>("SynthName"); string parameterName = xml.getValue<string>("ParameterName"); mapSliderToParameter(id, *synths[synthName], parameterName); sliderMap[id]->min = xml.getValue<float>("Min"); sliderMap[id]->max = xml.getValue<float>("Max"); } while(xml.setToSibling()); xml.setToParent(); } xml.setToParent(); xml.setTo("Buttons"); if (xml.exists("ButtonMapping[0]")) { xml.setTo("ButtonMapping[0]"); do { int id = xml.getValue<int>("Id"); string synthName = xml.getValue<string>("SynthName"); string parameterName = xml.getValue<string>("ParameterName"); bool toggle = xml.getValue<int>("Toggle") == 1 ? true : false; mapButtonToParameter(id, *synths[synthName], parameterName, toggle); buttonMap[id]->min = xml.getValue<float>("Min"); buttonMap[id]->max = xml.getValue<float>("Max"); } while(xml.setToSibling()); xml.setToParent(); } xml.setToParent(); xml.setTo("Stats"); if (xml.exists("StatMapping[0]")) { xml.setTo("StatMapping[0]"); do { int id = xml.getValue<int>("Id"); string synthName = xml.getValue<string>("SynthName"); string parameterName = xml.getValue<string>("ParameterName"); mapStatToParameter(id, *synths[synthName], parameterName); statMap[id]->min = xml.getValue<float>("Min"); statMap[id]->max = xml.getValue<float>("Max"); } while(xml.setToSibling()); xml.setToParent(); } xml.setToParent(); xml.setTo("MidiMap"); if (xml.exists("MidiMapping[0]")) { clearMidiMapping(); xml.setTo("MidiMapping[0]"); do { setMidiMapping(xml.getValue<int>("Id"), synths[xml.getValue<string>("SynthName")]); } while(xml.setToSibling()); xml.setToParent(); } xml.setToParent(); redraw(); }