💾 Archived View for mirrors.apple2.org.za › archive › ground.icaen.uiowa.edu › upl1999 › Nov99 › MUS… captured on 2024-12-18 at 01:59:30.

View Raw

More Information

-=-=-=-=-=-=-

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'