Exemplo n.º 1
0
/* 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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
//-----------------------------------------------------------------------------------------
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);
	}
}
Exemplo n.º 4
0
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();
}