| 
									
										
										
										
											1999-01-24 12:00:39 +00:00
										 |  |  | /* definitions for MIDI file parsing code */ | 
					
						
							|  |  |  | extern int (*Mf_getc)(); | 
					
						
							|  |  |  | extern void (*Mf_header)(); | 
					
						
							|  |  |  | extern void (*Mf_trackstart)(); | 
					
						
							|  |  |  | extern void (*Mf_trackend)(); | 
					
						
							|  |  |  | extern void (*Mf_noteon)(); | 
					
						
							|  |  |  | extern void (*Mf_noteoff)(); | 
					
						
							|  |  |  | extern void (*Mf_pressure)(); | 
					
						
							|  |  |  | extern void (*Mf_parameter)(); | 
					
						
							|  |  |  | extern void (*Mf_pitchbend)(); | 
					
						
							|  |  |  | extern void (*Mf_program)(); | 
					
						
							|  |  |  | extern void (*Mf_chanpressure)(); | 
					
						
							|  |  |  | extern void (*Mf_sysex)(); | 
					
						
							|  |  |  | extern void (*Mf_metamisc)(); | 
					
						
							|  |  |  | extern void (*Mf_seqspecific)(); | 
					
						
							|  |  |  | extern void (*Mf_seqnum)(); | 
					
						
							|  |  |  | extern void (*Mf_text)(); | 
					
						
							|  |  |  | extern void (*Mf_eot)(); | 
					
						
							|  |  |  | extern void (*Mf_timesig)(); | 
					
						
							|  |  |  | extern void (*Mf_smpte)(); | 
					
						
							|  |  |  | extern void (*Mf_tempo)(); | 
					
						
							|  |  |  | extern void (*Mf_keysig)(); | 
					
						
							|  |  |  | extern void (*Mf_arbitrary)(); | 
					
						
							|  |  |  | extern void (*Mf_error)(); | 
					
						
							|  |  |  | extern unsigned long Mf_currtime; | 
					
						
							|  |  |  | extern unsigned long Mf_realtime; | 
					
						
							|  |  |  | extern unsigned long Mf_currtempo; | 
					
						
							|  |  |  | extern int Mf_division; | 
					
						
							|  |  |  | extern int Mf_nomerge; | 
					
						
							|  |  |  | #ifdef READ_MODS
 | 
					
						
							|  |  |  | extern unsigned char *Mf_file_contents; | 
					
						
							|  |  |  | extern int Mf_file_size; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* definitions for MIDI file writing code */ | 
					
						
							|  |  |  | extern int (*Mf_putc)(); | 
					
						
							|  |  |  | extern int (*Mf_writetrack)(); | 
					
						
							|  |  |  | extern int (*Mf_writetempotrack)(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void midifile(); | 
					
						
							|  |  |  | extern unsigned long mf_sec2ticks(); | 
					
						
							|  |  |  | extern void mfwrite(); | 
					
						
							|  |  |  | extern int mf_write_meta_event(); | 
					
						
							|  |  |  | extern int mf_write_midi_event(unsigned long delta_time, int type, | 
					
						
							|  |  |  | 	int chan, char *data, unsigned long size); | 
					
						
							|  |  |  | extern double mf_ticks2sec(unsigned long ticks,int division,unsigned long tempo); | 
					
						
							|  |  |  | extern void mf_write_tempo(); | 
					
						
							|  |  |  | extern void mf_write_seqnum(); | 
					
						
							|  |  |  | extern void mfread(); | 
					
						
							|  |  |  | extern void mferror(char *s); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef NO_LC_DEFINES
 | 
					
						
							|  |  |  | /* MIDI status commands most significant bit is 1 */ | 
					
						
							|  |  |  | #define note_off         	0x80
 | 
					
						
							|  |  |  | #define note_on          	0x90
 | 
					
						
							|  |  |  | #define poly_aftertouch  	0xa0
 | 
					
						
							|  |  |  | #define control_change    	0xb0
 | 
					
						
							|  |  |  | #define program_chng     	0xc0
 | 
					
						
							|  |  |  | #define channel_aftertouch      0xd0
 | 
					
						
							|  |  |  | #define pitch_wheel      	0xe0
 | 
					
						
							|  |  |  | #define system_exclusive      	0xf0
 | 
					
						
							|  |  |  | #define delay_packet	 	(1111)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* 7 bit controllers */ | 
					
						
							|  |  |  | #define damper_pedal            0x40
 | 
					
						
							|  |  |  | #define portamento	        0x41 	
 | 
					
						
							| 
									
										
										
										
											2002-03-12 20:14:33 +00:00
										 |  |  | #define sustenuto	        0x42
 | 
					
						
							| 
									
										
										
										
											1999-01-24 12:00:39 +00:00
										 |  |  | #define soft_pedal	        0x43
 | 
					
						
							|  |  |  | #define general_4               0x44
 | 
					
						
							|  |  |  | #define	hold_2		        0x45
 | 
					
						
							|  |  |  | #define	general_5	        0x50
 | 
					
						
							|  |  |  | #define	general_6	        0x51
 | 
					
						
							|  |  |  | #define general_7	        0x52
 | 
					
						
							|  |  |  | #define general_8	        0x53
 | 
					
						
							|  |  |  | #ifndef PLAYMIDI
 | 
					
						
							|  |  |  | #define tremolo_depth	        0x5c
 | 
					
						
							|  |  |  | #define ctrl_chorus_depth       0x5d
 | 
					
						
							|  |  |  | #define	detune		        0x5e
 | 
					
						
							|  |  |  | #define phaser_depth	        0x5f
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* parameter values */ | 
					
						
							|  |  |  | #define data_inc	        0x60
 | 
					
						
							|  |  |  | #define data_dec	        0x61
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* parameter selection */ | 
					
						
							|  |  |  | #define non_reg_lsb	        0x62
 | 
					
						
							|  |  |  | #define non_reg_msb	        0x63
 | 
					
						
							|  |  |  | #define reg_lsb		        0x64
 | 
					
						
							|  |  |  | #define reg_msb		        0x65
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Standard MIDI Files meta event definitions */ | 
					
						
							|  |  |  | #define	meta_event		0xFF
 | 
					
						
							|  |  |  | #define	sequence_number 	0x00
 | 
					
						
							|  |  |  | #define	text_event		0x01
 | 
					
						
							|  |  |  | #define copyright_notice 	0x02
 | 
					
						
							|  |  |  | #define sequence_name    	0x03
 | 
					
						
							|  |  |  | #define instrument_name 	0x04
 | 
					
						
							|  |  |  | #define lyric	        	0x05
 | 
					
						
							|  |  |  | #define marker			0x06
 | 
					
						
							|  |  |  | #define	cue_point		0x07
 | 
					
						
							|  |  |  | #define channel_prefix		0x20
 | 
					
						
							|  |  |  | #define	end_of_track		0x2f
 | 
					
						
							|  |  |  | #define	set_tempo		0x51
 | 
					
						
							|  |  |  | #define	smpte_offset		0x54
 | 
					
						
							|  |  |  | #define	time_signature		0x58
 | 
					
						
							|  |  |  | #define	key_signature		0x59
 | 
					
						
							|  |  |  | #define	sequencer_specific	0x74
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Manufacturer's ID number */ | 
					
						
							|  |  |  | #define Seq_Circuits (0x01) /* Sequential Circuits Inc. */
 | 
					
						
							|  |  |  | #define Big_Briar    (0x02) /* Big Briar Inc.           */
 | 
					
						
							|  |  |  | #define Octave       (0x03) /* Octave/Plateau           */
 | 
					
						
							|  |  |  | #define Moog         (0x04) /* Moog Music               */
 | 
					
						
							|  |  |  | #define Passport     (0x05) /* Passport Designs         */
 | 
					
						
							|  |  |  | #define Lexicon      (0x06) /* Lexicon 			*/
 | 
					
						
							|  |  |  | #define Tempi        (0x20) /* Bon Tempi                */
 | 
					
						
							|  |  |  | #define Siel         (0x21) /* S.I.E.L.                 */
 | 
					
						
							|  |  |  | #define Kawai        (0x41) 
 | 
					
						
							|  |  |  | #define Roland       (0x42)
 | 
					
						
							|  |  |  | #define Korg         (0x42)
 | 
					
						
							|  |  |  | #define Yamaha       (0x43)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* miscellaneous definitions */ | 
					
						
							|  |  |  | #define MThd 0x4d546864
 | 
					
						
							|  |  |  | #define MTrk 0x4d54726b
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef NO_LC_DEFINES
 | 
					
						
							|  |  |  | #define lowerbyte(x) ((unsigned char)(x & 0xff))
 | 
					
						
							|  |  |  | #define upperbyte(x) ((unsigned char)((x & 0xff00)>>8))
 | 
					
						
							|  |  |  | #endif
 |