示例#1
0
        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));
            }
        }
示例#2
0
        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;
            }
        }