THINGS TO DO ============ Change the FINDPORT method in main.c to an external reference, ala MAIN8.C Update SMUS.H to reflect recent additions to SMUS IFF spec. Update play.c to reflect new SEvents. Above changes incorporated. - DJH REV 2.0------------------------------------------------------------------------- ARRGGH! Can no longer rely on 1 instrument per track ala Instant Music: A 4-TRAK song could have 3 or 8 instruments! Since there's no way a 1-pass reader could know how many instruments there are, RefInstruments would have to be handled as a dynamically-allocated linked list! SET_INST cmds would have to traverse the list to execute! (fixed - DJH) According to the IM error requester, at least some of those IM S_Events are "pitch guides". Just a note. ARRGGH II! Can no longer rely on a maximum of 1 TRAK per audio channel. Fix SMUS reader to delete unplayable tracks. (fixed - DJH) Minor volume adjustment problem in SMUS fixed. SET_INST error trapping added to compensate for possible errors generated by DMCS SMUS files. See PLAY for details. Chords now recognized. Routine skips over non-tonic chord notes, as noted in specs for simple SMUS players. Chords may be implementable like so : 1) Play all non-tonics on any available (not ringing) channel. 2) Tonics may interrupt any previously ringing note. This gives priority to the important notes in the track. Even better : 1) Play all non-chord notes (includes tonics), which can interrupt any previously ringing notes. 2) Play all non-tonics on any open channels. Of course, if no channel is available, the note gets skipped. The above schemes could possibly be extendable to more than four TRAK's, in which case method (2) would give more important notes on more tracks higher priority. SID_TimeSig's now recognized. Incorrect formula for SID_Tempo's corrected. SID_Tempo now takes into account time signatures. Smain.c now references Instruments/ by disk label. Other minor changes. Ties now implemented. REV 2.4------------------------------------------------------------------------- Instrument numbers no longer assumed to match physical numbers. Volume computations now take current instrument # into account. MIDI instruments ignored by LoadSamples(). Attempts to play MIDI Instruments now routed any REAL instruments. New NO_INSTRUMENTS error for files with All-MIDI instruments added. REV 2.5------------------------------------------------------------------------- Short8.C attempts to resolve instruments w/undefined pitch (won't guru!) Volumes and dynamics now correctly resolved. REV 3.0------------------------------------------------------------------------- Rev 3.0 and later are available as a separate enhancement ONLY! Chord support added. (yea!) Conditional compilation for octave extrapolation added. More sensible handling of undefined pitches. max trackcount increased to MAXCLEFS; dynamic allocation proved unfeasible. Need to add ties for new environment. Need to add CMD_STOP support. (done - DJH) Need to check on absolute pitches vs. DMCS & IM. REV 3.5------------------------------------------------------------------------- Ties added for tonics. Chord ties will reattack if not stolen. Minor 3.0 bug fixes added to Rev 2.5, creating Rev 2.7. Minor fixes for revised 1.2 PRECOMP.PRE