|
TimPlayer is a soundtrack player module capable of playing multiple files at once as well as samples/gingles.
For download of the module and its documentation, refer to DigitalCD's download section.

Version 1.17, 2011-09-27
Changes:
- Added loaders for the following formats:
- MED V2.1 (.med but with MMD0 header)
- OctaMED (.med, .mmd0, .mmd1, .mmd2)
- OctaMED Soundstudio (.mmd3)
- Graoumf Tracker (.gtk, .gt2)
Bug Fixes:
- Loaders, provide default tempo or speed if 0 is given in track.
- DBM, samples can be shared by multiple instruments.
- DBM, invalid note number 0x1f serves as keyoff.
- DBM, instrument mode was not activate.
- DBM, confusing format doc about loop end, its repeat length.
- DTM, support older version of format with MOD encoded patterns.
- DTM, if sample length is 0, bits per sample can be 0.
- DTM, extract version and comments when present.
Version 1.16, 2011-08-18
Changes:
- Loaders, Added loader for the following format: Oktalyzer (.okta)
Bug Fixes:
- Loaders, the new fast scan to, if possible, directly select the appropriate loader based on the contents of the first bytes in the file has a bug causing the converter to ignore most loaders. It is only by chance that the bug is not triggered for the player module.
- AMF, version 1.0 of the format can be found either with the long or short version of the sample descriptors.
- DT, unused patterns are not stored in file.
Version 1.15, 2011-08-16
Changes:
- MOD, check for TXP (The Xperience) and NSMS variants (SoundTracker 31).
- Extended SongPosition SWI to be able to read frame information.
- New SWI SongLoad2 = SongLoad + compatibility flags for MOD files.
- Added loaders for the following formats:
- DIGI Booser (.digi)
- DigiBooster Pro (.dbm)
- Digital Sound Interface Kit (.dsm)
- DSMI Advanced Module Format (.amf)
- ASYLUM Music Format (.amf)
- Digital Tracker (.dtm)
- Add new Code 4 to FXGlobalSettings to allow pre-amplification in fonction of note polyphony (like what is done for songs).
Bug Fixes:
- Loaders, some very small files failed to load with an End of file error due to the way PTM and STM loaders report an error when they fail to load in one go the fixed size blocks (header, channel mapping, etc.), instead of returning that the file can't be in this format.
- Replay, fix jumps to last position from last position.
- Replay, fix jump loop implementation for multiple loops in same row. All counters in the row must be processed and the last active one in the row used for the jump. As a side effect it means that the number of loops from a row is only the least common multiple of the individual loops (repeats + 1): x + x leads only to x loops, 2 + 3 to 6 loops, 2 + 4 to 4 loops, etc.
- Replay, fix jump loop implementation for multiple loops in same column with single loop start. The loop count set by the second loop affects inner loop in a different way if you count from 0 to jump loop effect value instead of the other way around. Note that since the counter is reset to 0 at the end of the first loop, the second counter is always restarted and thus an infinite loop is created.
The above infinite loops are impossible in ST3/IT files, because the loop start is moved to after the loop end pos once a loop is completed.
- Replay, instrument next to a note cut was ignored.
- Replay, ensure that sample swapping is only performed for MOD and IT files (even if this is a non-standard behaviour for MOD files).
- Replay, on most formats Sample set offset and Finetune effects work only in combination with new notes.
- DSym, unknown effects were seen as effect 32 (loop off).
- DSym, fix lzw decoding leaving a value undefined when dictionary is full (causing appereance of a random noise in large samples).
- IT, pitch slides order in volume column is down and up, not up and down like the volume slide effects. Presumably to use notation Ex and Fx like in effects column.
- IT, (Extra) fine pitch slides up/down by 0 (EE0, EF0, FE0, FF0) are not memory (only E00, F00 are) but real slides by 0.
- IT, no note nr + Instrument behave as new note with last note nr if no note was playing.
- IT, if last note was cut in note column there is no last note.
- IT, implemented IT specific version of Tremor and Retrigger effects.
- IT, panning slides behave as if range is [0-64] like in the volume column, not like [0-255] as can be presumed by the Xxx command. I also didn't pay attention that sliding direction is reversed compared to XM, x is left y is right.
- IT, note cut SC0 and note delay SD0 behave as SC1 and SD1.
- IT, global volume slide WFF slides down not up, in opposition to the behaviour of the other volume slides.
- MOD, changes for 15 instrument versions:
- Offset 0x1d7 is tempo, not restart position, meaning that most will now play with a tempo of 120 instead of 128.
- Fxx is always speed, not tempo (i.e. VBLANK mode).
- Sample repeat offset is in bytes, not halfwords (since there was already a check that divide that offset in two when repeat offset + repeat size exceeds the sample size, most cases where already correct).
- MOD, invalid values of C command (volume) are clipped to 64, not ignored (Mc Hammer/mod).
- MUSX, slightly more corruption tolerant loader.
- S3M, volume slides D0F and DF0 are applied on all frames, invalid Dxy values behave as D0y (slide down).
- S3M, implemented S3M specific versions of Retrigger effect.
- S3M, note cut SC0 (no delay) does nothing.
- S3M, many effects are documented as using memory when value 00 is used, but they actually just reuse the last non-0 effect value of any previous effect.
- ULT, split comments in lines of 32 characters.
- XM, should now be able to load old 1.02 and 1.03 format versions.
- XM, values above maximal values are not ignored but clipped to maximal values.
- XM, all slides in the form ?xy slide up (right for panning) by x if x > 0, down by y else (if x and y > 0 it still a slide up).
- XM, none of the volume column effects use a memory.
- XM, XM uses 6 independant memories for the 6 pitch slide effects 1xx, 2xx, E1x, E2x, X1x, X2x.
- XM, volume slides EAx, EBx share a different memory from Axy.
- XM, implementation XM specific versions of Retrigger effect (2 since E9x and R0x behave very differently).
Weirder, Rxy uses independant memory for x and y, meaning that once you uses x > 0 (changes the volume of retrigged note) the only way to stop retrigs from affecting volume is to use x = 8 documented as undefined.
- SWIs, (V)FXChannelParams returned sample nr as a negative value if sample nr > 127.
- FXs, corrected FXNoteSettings code 0, read mode was not not implemented.
Version 1.14, 2010-06-12
Changes
- Implement loading of song from memory.
- DigitalSymphony, implement Unset sample loop and Line jump effects
- DigitalSymphony, take into account allowed effects table.
Bug Fixes
- Replay, fix jumps to last position.
- Replay, S3M cuts notes on high pitch.
- Replay, repeat row plays note once, apply 0-frame effects on each repeat.
Version 1.13, 20 April 2010
Bug Fixes
- Digital Symphony, fixed loading of songs containing samples of size 0 with title.
- Replay, default behaviour is now to bound high pitch, only IT will continue to cut notes.
- Replay, fixed Digital Symphony not to change the playing sample when a sample without a note is specified.
- Replay, fixed Tremolo and Panbrello.
- Replay, fixed volume slides, up has priority when both up and down, in MOD/DSym/MTM loaders.
- Replay, fixed unnecessary instrument parameter resets on each repreat or a row.
Version 1.12, 19 december 2009
Changes:
- MOD loader updated to deal correctly with 8 channels StarTrekker files ('FLT8' tag).
Version 1.11, 19 November 2009
Changes:
- Recompiled for ARMv7 compatibility.
- New Coconizer loader.
Version 1.10, 21 February 2009
Changes:
- Mix With multiple streams, when end up restoring ourselves as previous handler in 8-bit mode, causing a background crash.
Version 1.09, 12 January 2008
Changes:
- New Desktop Tracker loader.
- Slightly faster mixing.
- Fix in bug introduced in 1.08 causing sometimes early termination of a note.
Version 1.08, 21 April 2007
Changes:
- New 669 and MatrixTRK loaders.
- Better volume scaling.
Version 1.07, 15 April 2006
Changes:
- Merged 26-bit and 32-bit versions.
- Impulse Tracker treats stereo samples as if they were mono.
- Various XM replay fixes.

DigitalCD has been setup to use TimPlayer for the relevant file types, so start DigitalCD and drop your files on it's music files control panel. Should you experience problems then remove every 'tim' entry in the file !DigitalCD.Setup and DigitalCD will use the good old trusted modules.
TimPlayer supports the following formats:
- Archimedes Tracker (File type: CB6).
- Desktop Tracker (File type: CB6).
- Digital Symphonies (File type: 10B).
- MatrixTRK Modules (File type: 00B).
- Protracker and variants: Falcon, FastTracker, StarTrekker, Oktalyzer, TakeTracker (File type: CB5, CC5).
- Composer 669 (File type: 1B1, extension: .669).
- DigiSound (File type: 1B1).
- Farandole Composer (File type: 1B1, extension: .far). Barely supported, the internal working of that player differs too much from the others players.
- FastTracker2 (File type: 1AF, extension: .xm).
- ImpulseTracker (File type: 1AE, extension: .it). Resonant filters are not supported.
- MultiTracker (File type: 1B1, extension: .mtm).
- PolyTracker (File type: 1B1, extension: .ptm).
- ScreamTracker (File type: 1B0, extension: .stm).
- ScreamTracker3 (File type: 1B0, extension: .s3m).
- Ultra Tracker (File type: 1B1, extension: .ult).
Hardware requirements:
- An A5000 is enough for 4 channels MODs, a StrongARM is required for songs with 64 channels.
- Either the original 8-bit sound or a 16-bit card.
The main features are turned toward sound quality rather than speed:
- 32-bit internal precision for mixing, dithered to 8-bit or 16-bit.
- In 8-bit mode, the logarithmic buffers are generated using a linear to logarithmic translation table with 12 significant bits instead of the usual 8-bit table found in most players (quiet sounds are much clearer).
- Linear interpolation is used for resampling.
- Offers an equalizer with up to 10 second order IIR filters.
- Dynamic Gain Control allows to boost the volume level of songs with many channels while ensuring that no clipping occurs.
- Volume ramping: instead of jumping from one note volume to the other, the player will use a volume ramp of a few ms at the start of every frame, which will remove most of the pops and clicks in the sound.
- Supports multiple effects on the same channel.
- Provides timing (in ms) of song position and the song duration.
- Accept Surround effect (not Prologic) which sends the sound to the tiny lateral amplifiers instead of the big ones of your HiFi installation.
- Performs a limitation of the note polyphony when the CPU usage becomes too high, to prevent freezing the computer. When a song requests to play more notes than allowed by the note polyphony, the mixing routines will only play the notes with the highest volume.
|