mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			133 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			133 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/* 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 	
							 | 
						||
| 
								 | 
							
								#define sostenuto	        0x42
							 | 
						||
| 
								 | 
							
								#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
							 |