MusiX Help ~~~~~~~~~~ This program is Freeware: This means that you may copy it to your heart's content, and give it to everyone you know, as long as you DON'T sell it, change it in any way, disassemble or reverse-engineer it, use it for commercial purposes, or incorporate it in or with any other product without my express written permission. Other than that, go gangbusters! Any names are trademarks or registered trademarks of their respective companies. If you enjoyed this software, have suggestions for enhancements or improvements, want to report bugs, or send piles of money, my address is: Jean Pierre Charpentier 2 Rsidence "Les Fougres" 78340 Les Clayes sous Bois France Phone: INT 33-1-30 55 46 81 (French Time = GMT +1 or +2) (in example from US to France: 0 11 33 1 30 55 46 81) I can also be reached at the following locations: CompuServe: 100012,2412 Internet: jpc14@Calvacom.fr For Your Information: synthLAB: - Tempo display doesn't reflect tempo variations coded in sequence! - Tempo display is limited to 99. MF2SL takes care of that. - Bar display is always calculated to half-note so you must arrange midi score to half-note before convert to synthLAB. midi: - MusiX is based on 0.06 version of Midi file (March 1, 1988). - If you find a more recent version please send me a disk or paper list! - MusiX does not manage MasterTracksPro or MusicWriter files because these applications can Import/Export midi files directly (MTP 1.04 & MW 2.03). - MusiX follows MasterTracksPro midi conventions: Track zero contains all conductor events and track names are notated as generic text event but track name events. If you know why write me - Midi Analyzer manages only format one midi files because there is none track number reference in format zero midi files and format two is never used. If Midi Analyzer returns back immediately without analyse, your file is: Not a midi file or a format zero midi file or a format two midi file. - Midi Analyzer asks "mucho" free memory (192k minimum). Take care of that. (I did a deal between Memory & Speed. Speed won ;). - Today Midi Analyzer accepts up to 32000 events. There is none direct relation between midi file size and number of events herein (hum sounds not like plain vanilla English ;). Do not try to load a >100k size midi file. - Today Midi Analyzer is limited up to 16 tracks. Midi Informations: Midi Event List What ? Code + Channel Number Where ? Real Time Application & Midi File 8n Note Off 9n Note on An Polyphonic Key Pressure (after-touch) Bn Control Change Cn Program Change Dn Channel Pressure (after-touch) En Pitch Bend Change Fn System Event (see below) System Event List What ? Code (channel independent ) Where ? Real Time Application & Midi File F0 Beginning of Exclusive Message F1 Undefined F2 Song Position Pointer F3 Song Select F4 Undefined F5 Undefined F6 Tune Request F7 End of Exclusive Message F8 Timing Clock F9 Undefined FA Start FB Continue FC Stop FD Undefined FE Active Sensing FFxx Meta Event (see below) Meta Event List What ? Code (channel independent ) Where ? Midi File only FF00 Sequence Number FF01 Text Event FF02 Copyright FF03 Sequence or Track Name FF04 Instrument Name FF05 Lyric FF06 Marker FF07 Cue Point ~ FF2F End of Track ~ FF51 Set Tempo ~ FF54 SMPTE Offset ~ FF58 Time Signature FF59 Key Signature ~ FF7F Specific For developers: Translator or Analyzer Modules are loaded by _InitialLoad2. pushlong #Parameter_List MusiX code address of Parameter List pushlong #0 MusiX code Work area jsl address MusiX code address returned by InitialLoad2 phk Your code plb Your code rtl Your code pulllong MusiX code pulllong MusiX code phk MusiX code plb MusiX code ; Parameter_List anop ; dc i4'16' pCount = # of following pointers ; dp 'UserID' ; dp 'Status' ; dp 'Task_Record' ; dp 'Task_Table' ; dp 'Input_File_Handle' ; dp 'Input_File_Pointer' ; dp 'Output_File_Handle' ; dp 'Output_File_Pointer' ; dp 'Open_Input_File' ; dp 'Read_Input_File' ; dp 'Close_Input_File' ; dp 'Destroy_Output_File' ; dp 'Create_Output_File' ; dp 'Open_Output_File' ; dp 'Write_Output_File' ; dp 'Close_Output_File'