string GetInstString(int indexIGEN) { SoundFont2.IGEN igen = AudioModule.hyde.igen[indexIGEN]; SFGenConst tgen = (SFGenConst)igen.gen; switch (tgen) { case SFGenConst.sampleID: return(string.Format("{0}:“{1}”", sf2str.GenString(AudioModule, indexIGEN), IOHelper.GetZerodStr(AudioModule.hyde.shdr[igen.genHi].iName))); case SFGenConst.sampleModes: return(string.Format("{0}", sf2str.Range2StringA(AudioModule, indexIGEN))); case SFGenConst.keyRange: return(string.Format("{1} ({2})", igen.Generator, sf2str.GetNumRange(igen), sf2str.GetKeyRange(AudioModule, indexIGEN))); case SFGenConst.overridingRootKey: return(string.Format("{0}:{1}", igen.Generator, igen.genHi, sf2str.GetRootKey(AudioModule, igen))); case SFGenConst.exclusiveClass: case SFGenConst.delayModEnv: case SFGenConst.attackModEnv: case SFGenConst.decayModEnv: case SFGenConst.holdModEnv: case SFGenConst.sustainModEnv: case SFGenConst.releaseModEnv: case SFGenConst.pan: return(string.Format("{0:X2}:{1:X2}", igen.genHi, igen.genLo)); case SFGenConst.delayVibLFO: case SFGenConst.delayModLFO: // timecents case SFGenConst.freqModLFO: // freq:cents case SFGenConst.freqVibLFO: // freq:cents case SFGenConst.modLfoToFilterFc: // degree:cents case SFGenConst.modLfoToPitch: // degree:cents case SFGenConst.modLfoToVolume: // degree:cents return(string.Format("amt: 0x{1:X2}:{1} hex: 0x{0:X4}, short: {0}", (igen.genHi << 8) + igen.genLo, igen.genAmt)); default: return(string.Format("{0:X2}:{1:X2} - {1:X2} - {2}", igen.genHi, igen.genLo, igen.Int16Bits)); } }
void Switch_IGEN(int i, int j, int k, int indexIGEN) { SoundFont2.IGEN igen = AudioModule.hyde.igen[indexIGEN]; SFGenConst tgen = (SFGenConst)igen.gen; //AddInstList(indexIGEN); switch (tgen) { case SFGenConst.sampleID: case SFGenConst.sampleModes: AddInstList(indexIGEN, 1, null); break; case SFGenConst.keyRange: case SFGenConst.overridingRootKey: case SFGenConst.exclusiveClass: case SFGenConst.pan: case SFGenConst.delayModEnv: case SFGenConst.attackModEnv: case SFGenConst.decayModEnv: case SFGenConst.holdModEnv: case SFGenConst.sustainModEnv: case SFGenConst.releaseModEnv: case SFGenConst.modLfoToFilterFc: case SFGenConst.modLfoToPitch: case SFGenConst.modLfoToVolume: case SFGenConst.delayVibLFO: case SFGenConst.delayModLFO: case SFGenConst.freqModLFO: case SFGenConst.freqVibLFO: AddInstList(indexIGEN, 2, null); break; default: AddInstList(indexIGEN, 3, Color.Silver); break; } }