View Issue Details

IDProjectCategoryView StatusLast Update
0000741OpenMPTFile Format Supportpublic2016-07-31 12:47
Reporterncovert Assigned ToSaga Musix  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Platformx64OSWindowsOS Version7
Product VersionOpenMPT 1.25.04.00 / libopenmpt 0.2-beta16 (upgrade first) 
Target VersionOpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first)Fixed in VersionOpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first) 
Summary0000741: Add support for SoundFX modules
Description

SoundFX is a Soundtracker clone. It saves in the SFX file format. It is similar to MOD, though I believe the C-5 sample rate is different and it allows for a default speed/tempo other than 125/6, so it may need to be converted to S3M when opened in MPT.

TagsNo tags attached.
Attached Files
sfx_r4.patch (15,283 bytes)   
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Activities

Revenant

Revenant

2016-03-09 03:14

reporter   ~0002277

Last edited: 2016-03-09 03:38

Since I'm on a bit of a file-format kick lately, I decided to take this one on as well. I gleaned some info about effects from Flod's SoundFX player, but otherwise this is largely based on the Soundtracker loader. Both 15- and 31-sample modules are supported (apparently the latter often use the name "MultiMedia Sound" which as far as I can tell is just SoundFX 2.0).

This is a work in progress, so some things might not sound 100% right (but the modules I've tried so far sound pretty much correct).

In addition to the patch, here's a (64-bit) Windows build of openmpt123 with the SoundFX support added:
https://dl.dropboxusercontent.com/u/43107309/openmpt-soundfx.zip
(I don't have the means to build mptrack or the winamp/xmplay plugins at the moment, sorry)

(edit: reuploaded new patch to correct a sloppy mistake I caught immediately after uploading the first one, whoops)

ncovert

ncovert

2016-03-09 20:14

reporter   ~0002278

Last edited: 2016-03-09 20:16

The openmpt123 build works perfectly with SoundFX modules! How would I go about applying the PATCH file?

Revenant

Revenant

2016-03-10 01:58

reporter   ~0002279

Last edited: 2016-03-10 01:58

Uploaded a new patch (and build), changes:

  • Changed how total number of saved patterns is determined (fixes "19remix.sfx")
  • Removed 64-pattern limit (fixes "amc-slideshow.sfx")
  • Changed how 7xx/8xx effects work across pattern boundaries (fixes "sonic depth finder.mms" by Roman Werner, probably others)
  • Removed handling of 9xx effects (Flod treats this as a tone portamento, but none of the versions of SoundFX / MultiMedia Sound that I have seem to actually do anything with this effect, so now the loader just ignores it)

There are a few ways to apply patch files on Windows. If you use TortoiseSVN then it should work if you do this:
https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-patch.html

Note that if you build with Visual Studio, you'll have to add soundlib/Load_sfx.cpp to the project yourself.

ncovert

ncovert

2016-03-10 02:29

reporter   ~0002280

I'm not a programmer, and even with those directions, I have no clue how to use TortoiseSVN to patch the file. As a result, I will have to wait until an actual release arrives.

Revenant

Revenant

2016-03-10 03:51

reporter   ~0002281

Ah, all right.

Anyway, added yet another revision of the patch, which just fixes another little mistake after I reread Flod's .sfx player and the actual SoundFX 1.8 replay source (but it shouldn't affect very many, if any, existing modules). New build is in the same place. Hopefully this should be the last revision but I still haven't tried every single .sfx/.mms file that I have (or listened to most of them in the original tracker for that matter).

(Apologies for uploading so many minor revisions of the same patch this time. Would be nice if I could delete old attachments, but there doesn't seem to be a way to...)

Saga Musix

Saga Musix

2016-04-11 01:30

administrator   ~0002325

Just a quick question (I'm finally looking at the patch in more depth)... Did you encounter lots of modules with weird sample names or did you just blindly copy over the invalid chars stuff from the MOD loaders? It's only really needed there because of the lack of magic bytes and because there are actually many Ultimate SoundTracker MODs with weird binary characters in their names, but if this is not the case for SFX modules, it really should not be done there.

Revenant

Revenant

2016-04-13 06:24

reporter   ~0002332

Yeah, that's basically just a leftover from the MOD loader (which this was based directly on, to a degree). Likewise with the STP2 loader I wrote that includes the same function; I don't think it's actually necessary for either of them.

Saga Musix

Saga Musix

2016-04-13 14:39

administrator   ~0002333

Yeah, though so. I refactored the loaders a bit, hopefully I will be able to merge them "soon". :)

Saga Musix

Saga Musix

2016-05-12 14:34

administrator   ~0002365

Patch finally applied in r6354. Yay.

Issue History

Date Modified Username Field Change
2016-01-09 19:41 ncovert New Issue
2016-03-09 03:14 Revenant Note Added: 0002277
2016-03-09 03:14 Revenant File Added: sfx.patch
2016-03-09 03:16 Revenant Note Edited: 0002277
2016-03-09 03:38 Revenant File Added: sfx_r2.patch
2016-03-09 03:38 Revenant Note Edited: 0002277
2016-03-09 20:14 ncovert Note Added: 0002278
2016-03-09 20:15 ncovert Note Edited: 0002278
2016-03-09 20:16 ncovert Note Edited: 0002278
2016-03-10 01:52 Revenant File Added: sfx_r3.patch
2016-03-10 01:58 Revenant Note Added: 0002279
2016-03-10 01:58 Revenant Note Edited: 0002279
2016-03-10 02:29 ncovert Note Added: 0002280
2016-03-10 03:51 Revenant Note Added: 0002281
2016-03-10 03:51 Revenant File Added: sfx_r4.patch
2016-03-10 05:41 manx Assigned To => Saga Musix
2016-03-10 05:41 manx Status new => assigned
2016-03-13 16:30 Saga Musix File Deleted: sfx.patch
2016-03-13 16:30 Saga Musix File Deleted: sfx_r2.patch
2016-03-13 16:30 Saga Musix File Deleted: sfx_r3.patch
2016-04-11 01:30 Saga Musix Note Added: 0002325
2016-04-13 06:24 Revenant Note Added: 0002332
2016-04-13 14:39 Saga Musix Note Added: 0002333
2016-04-24 00:29 Saga Musix Target Version => OpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first)
2016-05-12 14:34 Saga Musix Note Added: 0002365
2016-05-12 14:34 Saga Musix Status assigned => resolved
2016-05-12 14:34 Saga Musix Resolution open => fixed
2016-05-12 14:34 Saga Musix Fixed in Version => OpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first)