| 
					
				 | 
			
			
				@@ -15,6 +15,7 @@ class ChannelMessage : public MidiMessage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	unsigned char channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const unsigned char channelMaximum = (2 << 4) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	ChannelMessage(unsigned char channel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		: channel(channel) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,7 +27,9 @@ class NoteMessage : public ChannelMessage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	unsigned char pitch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const unsigned char pitchMaximum = (1 << 7) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	unsigned char velocity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const unsigned char velocityMaximum = (2 << 7) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	NoteMessage(unsigned char channel, unsigned char pitch, unsigned char velocity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		: ChannelMessage(channel), pitch(pitch), velocity(velocity) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,7 +63,9 @@ class ControlChangeMessage : public ChannelMessage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	unsigned char control; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const unsigned char controlMaximum = (2 << 7) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	unsigned char value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const unsigned char valueMaximum = (2 << 7) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	ControlChangeMessage(unsigned char channel, unsigned char control, unsigned char value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		: ChannelMessage(channel), control(control), value(value) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,6 +79,7 @@ class ProgramChangeMessage : public ChannelMessage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	unsigned char program; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const unsigned char programMaximum = (2 << 7) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	ProgramChangeMessage(unsigned char channel, unsigned char program) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		: ChannelMessage(channel), program(program) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -86,7 +92,9 @@ public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class PitchBendChangeMessage : public ChannelMessage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 14 bit integer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	uint16_t value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	static const uint16_t valueMaximum = (2 << 14) - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	PitchBendChangeMessage(unsigned char channel, uint16_t value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		: ChannelMessage(channel), value(value) 
			 |