public XGPartParams(XGMidiIODevice host, int channel) : base(host, "Part[" + (channel + 1) + "]", 0x080000 | channel << 8) { Channel = channel; PartMode = AddParameter("PartMode", 0x07, 0x00, 0x05, 0x00, XGMidiParameter.MakeTableToStringFunc("N", "D", "D1", "D2", "D3", "D4")); ProgramMSB = AddParameter("ProgramMSB", 0x01, 0x00, 0x7f, 0x00); ProgramLSB = AddParameter("ProgramLSB", 0x02, 0x00, 0x7f, 0x00); ProgramNumber = AddParameter("ProgramNumber", 0x03, 0x00, 0x7f, 0x00, XGMidiParameter.ProgramNumber); Pan = AddParameter("Pan", 0x0E, 0x00, 0x7f, 0x40, XGMidiParameter.PanpotPM); Volume = AddParameter("Volume", 0x0B, 0x00, 0x7f, 0x00); Reverb = AddParameter("Reverb", 0x13, 0x00, 0x7f, 0x00); Chorus = AddParameter("Chorus", 0x12, 0x00, 0x7f, 0x00); Variation = AddParameter("Variation", 0x14, 0x00, 0x7f, 0x00); DryLevel = AddParameter("DryLevel", 0x11, 0x00, 0x7f, 0x00); LPFCutoffFreq = AddParameter("LPFCutoffFreq", 0x18, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); LPFResonance = AddParameter("LPFResonance", 0x19, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); HPFCutoffFreq = AddParameter("HPFCutoffFreq", 0x020020, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); RcvNoteMessage = AddParameter("RcvNoteMessage", 0x35, 0x00, 0x01, 0x00, XGMidiParameter.OnOff); EGAttack = AddParameter("EGAttack", 0x1A, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); EGDecay = AddParameter("EGDecay", 0x1B, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); EGRelease = AddParameter("EGRelease", 0x1C, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); VibRate = AddParameter("VibRate", 0x15, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); VibDepth = AddParameter("VibDepth", 0x16, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); VibDelay = AddParameter("VibDelay", 0x17, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); EQBassFreq = AddParameter("EQBassFreq", 0x76, 0x04, 0x28, 0x0C, XGMidiParameter.FreqToString); EQBassGain = AddParameter("EQBassGain", 0x72, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); EQTrebleFreq = AddParameter("EQTrebleFreq", 0x77, 0x1C, 0x3A, 0x36, XGMidiParameter.FreqToString); EQTrebleGain = AddParameter("EQTrebleGain", 0x73, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); MWPitchControl = AddParameter("MWPitchControl", 0x1D, 0x28, 0x58, 0x40, XGMidiParameter.CenterPM); MWLPFControl = AddParameter("MWLPFControl", 0x1E, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); MWAmpControl = AddParameter("MWAmpControl", 0x1F, 0x00, 0x7f, 0x40, XGMidiParameter.CenterPM); MWLFOPModDepth = AddParameter("MWLFOPModDepth", 0x20, 0x00, 0x7f, 0x00); MWLFOFModDepth = AddParameter("MWLFOFModDepth", 0x21, 0x00, 0x7f, 0x00); MWLFOAModDepth = AddParameter("MWLFOAModDepth", 0x22, 0x00, 0x7f, 0x00); }
public XGMultiEQParams(XGMidiIODevice host) : base(host, "MULTI EQ", 0x024000) { bandParams = new BandParameter[5]; ToStringDelegate dBStringFunc = XGMidiParameter.MakePlusMinusToStringFunc("-", "dB", "+0dB", "+", "dB", null); ToStringDelegate QStringFunc = v => (v * 0.1).ToString("0.0"); Type = AddParameter("Type", 0, 0, 4, 0, XGMidiParameter.MakeTableToStringFunc("FLAT", "JAZZ", "POPS", "ROCK", "CLASSIC")); Gain1 = AddParameter("Gain1", 1, 0x34, 0x4C, 0x40, dBStringFunc); Freq1 = AddParameter("Freq1", 2, 0x04, 0x28, 0x04, XGMidiParameter.FreqToString); Q1 = AddParameter("Q1", 3, 0x01, 0x78, 0x07, QStringFunc); Shape1 = AddParameter("Shape1", 4, 0, 1, 0, XGMidiParameter.MakeTableToStringFunc("SHELVING", "PEAKING")); bandParams[0] = new BandParameter(Gain1, Freq1, Q1, Shape1, null); Gain2 = AddParameter("Gain2", 5, 0x34, 0x4C, 0x40, dBStringFunc); Freq2 = AddParameter("Freq2", 6, 0x0E, 0x36, 0x0E, XGMidiParameter.FreqToString); Q2 = AddParameter("Q2", 7, 0x01, 0x78, 0x07, QStringFunc); bandParams[1] = new BandParameter(Gain2, Freq2, Q2, null, null); Gain3 = AddParameter("Gain3", 9, 0x34, 0x4C, 0x40, dBStringFunc); Freq3 = AddParameter("Freq3", 10, 0x0E, 0x36, 0x0E, XGMidiParameter.FreqToString); Q3 = AddParameter("Q3", 11, 0x01, 0x78, 0x07, QStringFunc); bandParams[2] = new BandParameter(Gain3, Freq3, Q3, null, null); Gain4 = AddParameter("Gain4", 13, 0x34, 0x4C, 0x40, dBStringFunc); Freq4 = AddParameter("Freq4", 14, 0x0E, 0x36, 0x0E, XGMidiParameter.FreqToString); Q4 = AddParameter("Q4", 15, 0x01, 0x78, 0x07, QStringFunc); bandParams[3] = new BandParameter(Gain4, Freq4, Q4, null, null); Gain5 = AddParameter("Gain5", 17, 0x34, 0x4C, 0x40, dBStringFunc); Freq5 = AddParameter("Freq5", 18, 0x1C, 0x3A, 0x1C, XGMidiParameter.FreqToString); Q5 = AddParameter("Q5", 19, 0x01, 0x78, 0x07, QStringFunc); Shape5 = AddParameter("Shape5", 20, 0, 1, 0, XGMidiParameter.MakeTableToStringFunc("SHELVING", "PEAKING")); bandParams[4] = new BandParameter(Gain5, Freq5, Q5, null, Shape5); Bands = new ReadOnlyCollection <BandParameter>(bandParams); }