Complete Fender Floor MIDI implementation

This commit is contained in:
hirsch 2016-07-03 10:57:50 -04:00
parent 6638fc5bf3
commit 92ffd60808
21 changed files with 1834 additions and 367 deletions

92
delay.h
View file

@ -20,14 +20,14 @@ public:
private:
// Level
virtual int cc49( int value );
virtual int cc49( int value ) { return continuous_control( 0x00, 0x00, 0x01, value );}
// Delay Time
virtual int cc50( int value );
virtual int cc50( int value ) { return continuous_control( 0x01, 0x01, 0x06, value );}
virtual int cc51( int value ) { return 0;}
virtual int cc52( int value ) { return 0;}
virtual int cc53( int value ) { return 0;}
virtual int cc54( int value ) { return 0;}
virtual int cc51( int value ) = 0;
virtual int cc52( int value ) = 0;
virtual int cc53( int value ) = 0;
virtual int cc54( int value ) = 0;
};
@ -36,11 +36,13 @@ public:
MonoDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Brightness
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Attenuation
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x04, 0x01, value );}
// no-op
virtual int cc54( int value ) { return 0;}
};
@ -49,13 +51,13 @@ public:
EchoFilterCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Frequency
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Resonance
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x04, 0x01, value );}
// Input Level
virtual int cc54( int value );
virtual int cc54( int value ) { return continuous_control( 0x05, 0x05, 0x01, value );}
};
@ -64,11 +66,16 @@ public:
MultitapDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Brightness
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Mode
virtual int cc53( int value );
virtual int cc53( int value ) {
if ( value > 3 ) return 0;
else return discrete_control( 0x04, 0x04, 0x8b, value );
}
// no-op
virtual int cc54( int value ) { return 0;}
};
@ -77,11 +84,13 @@ public:
PingPongDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Brightness
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Stereo
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x04, 0x01, value );}
// no-op
virtual int cc54( int value ) { return 0;}
};
@ -90,11 +99,13 @@ public:
DuckingDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Release
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Threshold
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x04, 0x01, value );}
// no-op
virtual int cc54( int value ) { return 0;}
};
@ -103,11 +114,13 @@ public:
ReverseDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// FFdbk
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// RFdbk
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Tone
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x04, 0x01, value );}
// no-op
virtual int cc54( int value ) { return 0;}
};
@ -116,13 +129,13 @@ public:
TapeDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Flutter
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Brightness
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x04, 0x01, value );}
// Stereo
virtual int cc54( int value );
virtual int cc54( int value ) { return continuous_control( 0x05, 0x05, 0x01, value );}
};
@ -131,13 +144,26 @@ public:
StereoTapeDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
// Feedback
virtual int cc51( int value );
virtual int cc51( int value ) { return continuous_control( 0x02, 0x02, 0x01, value );}
// Flutter
virtual int cc52( int value );
virtual int cc52( int value ) { return continuous_control( 0x03, 0x03, 0x01, value );}
// Separation
virtual int cc53( int value );
virtual int cc53( int value ) { return continuous_control( 0x04, 0x05, 0x01, value );}
// Brightness
virtual int cc54( int value );
virtual int cc54( int value ) { return continuous_control( 0x05, 0x04, 0x01, value );}
};
class NullDelayCC : public DelayCC {
public:
NullDelayCC( Mustang * theAmp ) : DelayCC(theAmp) {}
private:
virtual int cc49( int value ) { return 0;}
virtual int cc50( int value ) { return 0;}
virtual int cc51( int value ) { return 0;}
virtual int cc52( int value ) { return 0;}
virtual int cc53( int value ) { return 0;}
virtual int cc54( int value ) { return 0;}
};