mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-10-29 05:40:25 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			132 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			132 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
 | 
