| /* 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 sustenuto 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 |