About: MUSIX.SRC.SHK Status: Public Domain Date: November 1, 1999 A few years ago, Babar de StCyr (Jean Pierre Charpentier), the author of MusIX sent me this amazing IIgs Music file conversion program in it's unfinished DEMO form with all the source codes included. Some how, I failed to make the source codes available with the program. Babar later gave me written authority to do as I wished with all his programs for the Apple II and IIgs. (BTW, I do have the original letter from the author available for all who want varification). So, I'm releasing this archive, program and contents accordingly into the public domain with the authors written consent, in the hope that somebody will take up with it where the author left off and make this program fully functional to allow for the SIX - IIgs music file formats to be able to convert from one to the other. The original 'DoNoTReadThis' -> ;) - text file within the archive follows, to give you some understanding of what this p[otentially fantastic program could be developed to do! Somebody PLEASE FINISH IT UP for all the needs of the IIgs users today. FINAL NOTE: Please be aware that the source codes and the program are included in full within this archive of MUSIX.SRC.SHK. Enjoy, Develop PLEASE, TIA and Cheers, Tom Charles T. 'Dr. Tom' Turley Contributing Editor - GS WorldView Email: cturley@grin.net ---------------------------------- MusiX Help ~~~~~~~~~~ This program needs "mucho" memory. To gain maximum free memory set Ram Disk Max Size to 0k in Control Panel. Power-off your Apple 2GS. Reboot pressing Shift key. You must see "No Inits/DAs" message above thermometer. Then come back here! I'll be back... (Terminator) 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 Résidence "Les Fougères" 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. - MF2SL bypass SysEx & all unknown events (ie: type FF 21 meta-events). 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Š Until Time Signature event detection Midi Analyzer assumes 4/4 beat. - 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 analyze, 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 (up it can!). Take care of that. I did a deal between Memory & Speed. Speed wonŠ There is none direct relation between midi file size and number of events herein. Ravel Bolero midi file is 348k in size and represents 86980 midi events. - Today Midi Analyzer is limited up to 32 tracks. Tips & Tricks: - Sometimes Open-Apple suppress thermometer refresh so that speed increases. - Sometimes Solid-Apple short-circuits to end of current track. 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'