QTM v1.44 development version

Discuss SoundTrackers, shims to QTM, 32bitting and ARMv7 compatibility
steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

QTM v1.44 development version

Post by steve3000 » Sun Sep 29, 2013 5:44 pm

QTM v1.44 alpha is now available for download from the FTP site

Full details in the !ReadMe, but in summary:

QTM v1.44a fixes a bug in the tracker routine which lead to QTM cutting off any effect samples playing on the same channels if music was playing, even if the music was not actually using that channel!

After the above fix, and some reworking of the automatic channel selection method, QTM_PlaySample with R0=-1 should now work perfectly with 4 or 8 channel music, and it should find any purposefully blank music channels if available (eg. 3-channel Amiga game music, leaving one channel for sound effects).

QTM now allows music files with no samples (ie. music data only)

New SWI: QTM_ReadChannelData

Enjoy!
Steve

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: QTM v1.44 development version

Post by JonAbbott » Sun Sep 29, 2013 6:34 pm

Excellent...I'll get started on the changes to Mus2QTM.

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: QTM v1.44 development version

Post by steve3000 » Sun Sep 29, 2013 7:15 pm

Good stuff!

I'm particularly keen to see if Mus2QTM runs successfully on 4-channels now, using QTM_PlaySample with R0=-1... I realise now that the automatic channel selection feature has never been fully 'real life' tested - the only game which uses it (that I know of) uses the 8-channel trick you found with Mus2QTM...

4-channels would be good if it works, as this will avoid processor overheads of filling 8-channels - useful for older systems running QTM, Mus2QTM and LCDGameModes!

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: QTM v1.44 development version

Post by steve3000 » Sun Sep 29, 2013 7:23 pm

And I'd love to get rid of the unrolled loops in QTM which you pointed out - indeed the plan was already in my QTMFuture docs (near the bottom if you didn't spot it). It was this highly optimised unrolled looping code, along with other features such as pre-converting all sample to log (rather than doing it on the fly during DMA) that gave QTM its significant processor speed advantage over other Trackers on Arm2/Arm250... Those were the days!

Not so important now I agree :-) but as/when I do remove these unrolled loops, I'd like to switch them for a system to reassemble them at runtime if loaded on an Arm2/Arm250 system. Shouldn't be too difficult...

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: QTM v1.44 development version

Post by JonAbbott » Sun Sep 29, 2013 10:11 pm

steve3000 wrote:I'd like to switch them for a system to reassemble them at runtime if loaded on an Arm2/Arm250 system. Shouldn't be too difficult...
One option is to compile two separate modules - ARM2 and ARM3+, put them both into another module and have it install the correct one before terminating itself. The drawback being a hole in the RMA.

The alternative is simply distribute different versions.

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: QTM v1.44 development version

Post by steve3000 » Tue Oct 01, 2013 11:34 pm

v1.44b now available

Lots of work tonight - added compatibility with two new formats! FastTracker 8 channel and FastTracker 6 channel formats.

Also fixed a bug in the memory-transfer loading of 8-channel mods (calculated length incorrectly).

On the dev site now, with a couple of example FastTracker 8 channel mods.

Steve

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: QTM v1.44 development version

Post by JonAbbott » Wed Oct 02, 2013 1:08 am

Do we know of any games that use those formats?

Always good to see more formats supported, are there any other formats we can add to enable shimming? FRED, Fyarena and Hamsters spring to mind from testing QTeM.

tlsa1
Posts: 14
Joined: Wed Oct 02, 2013 2:15 pm

Re: QTM v1.44 development version

Post by tlsa1 » Wed Oct 02, 2013 2:29 pm

steve3000 wrote:And I'd love to get rid of the unrolled loops in QTM which you pointed out - indeed the plan was already in my QTMFuture docs (near the bottom if you didn't spot it)
I've just read the QTMFuture document, and the QTM Editor sounds interesting. I don't think RISC OS currently has a tracker editor.

If you need documentation for other tracker formats, it may be worth getting in touch with André Timmermans (of DigitalCD fame). He's added support for loads of different formats to the TimPlayer module.

http://www.riscos-digitalcd.net/digital ... player.htm

It supports ArcTracker, Coconizer, Desktop Tracker, Digital Symphony, MatrixTRK, The Xperience, Digital Tracker (DTM), Graoumf Tracker(GTK, GT2), SoundTracker (MOD), ProTracker (MOD), DIGI Booster (DIGI), DigiBooster Pro (DBM), Oktalizer (OKTA), OctaMED (MMD), Asylum (AMF), DSMI AMF (AMF), Composer 669 (669), DigiSound (DSM), DSIK (DSM), DigiTrakker (MDL), Farandole Composer (FAR), FastTracker2 (XM), Image Orpheus (IMF), ImpulseTracker (IT), MultiTracker (MTM), PolyTracker (PTM), ScreamTracker (STM), ScreamTracker3 (S3M), Ultra Tracker (ULT) and X-Tracker (DMF) tracker files.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: QTM v1.44 development version

Post by JonAbbott » Mon Oct 07, 2013 12:56 pm

Steve, how far is 1.44 from a releasable state? We'll need to release it before we can release Chuck Rock.

andretim
Posts: 15
Joined: Tue Oct 15, 2013 5:29 pm

Re: QTM v1.44 development version

Post by andretim » Tue Oct 15, 2013 6:50 pm

Since you started extending the format support, I may as well list all the knowledge I collected about the ProTracker like formats:

Offset &43C:
CHNx FastTracker x channels
CHxx FastTracker xx channels
FAxx DigitalTracker xx channels
FLTx StarTrekker 4/8 channels, the 8 ch patterns are store as 2 successive 4ch patterns
TDZx TakeTracker x channels
CDx1 Octalyser 6/8 channels
OKTA Oktalyzer 8 channels
NSMS SoundTracker31 4 channels
M.K. ProTracker 4 channels
M&K! "
M!K! "
N.T. "

Offset &7e0:
TXPx The Xperience x channels, 62 instruments in Archimedes LOG format, VBLANK mode (Fxx is speed even when >= 32)

Offset &5bc
MTN\0 Soundtracker 2.6, 4 channels, patterns of 1 channel (like Digital Symphony), note: \0 means a &00 byte
IT10 IceTracker, 4 channels, patterns of 1 channel (like Digital Symphony)

Otherwise we assume it's a 15 samples SoundTracker:
4 channels, 15 samples, VBLANK mode, sample repeat offset (but not repeat length) is in bytes instead of words, instead of the restart position you get a tempo.
If there is no effect nr > 2 if could possibly be the very old "Ultimate SoundTracker" with an different effects mapping (1xy is arpeggio, 2xy is pitch slide x=down, y=up, x has priority) but there is real effective way to be sure.

Misc:
Some programs use an extra octave so if TimPlayer finds such a note in a pattern when it loads the file it increases the upper pitch limit for pitch slides by one octave.

The TimPlayer module allows to set some compatibility flags:
- "Ultimate SoundTracker", thought this flag is reset if the we are sure it can't be one (> 15 samples or effects nr > 2)
- VBLANK mode, some files where converted from SoundTracker to ProTracker and so speed Fxx >= 32 are incorrectly treated as a tempo
- No sample swap, by default TimPlayer assumes that if you specify in a pattern a sample without an associated note, the current note continues with the new sample data. With this flag the note continues with the old sample but sample volume is set to volume of new sample. Apparently this behaviour changed even between different versions of the same tracker.

Post Reply