Evaluate the new SdfMaker app!
Nov. 3, 2026The download is at the end of this annoucement:
(1) This 'SdfMaker... .exe' [SdfMaker] App is a free-use Digitrax Windows app released under Creative Commons. This is in developmental use by both Digitrax and sdfmaker to allow low-friction and a rapid/simple and complete way to edit SDF control/sequencing files used in sound project [spj] files for Digitrax SFX sound decoders.
This App is compiled to work for WnXP/Win2k through Windows11. It has only been tested on Windows10//11 machines, but it is inherently configured to work as far back as WInXP?Win2K etc. Not tested on Mac/Parallels - but is also likely to work fine, because it uses a restricted basic low-impact API code set and design. No warranty is expressed or implied, and this may not work as expected in any particular computer environment.
This App is offered here as a help and encouragement for code developers/programmers/hobbyists, so they can experiment with "roll your own" SFX sound control scenarios. Digitrax is not in a position to offer tech support on this App or coding methods, but spjmaker has done a great job of helping Digitrax users enjoy the capabilities of Digitrax SFX sound decoders over the years with examples and help on his web site.
(2) spjmaker/ aka John McMasters has a done a yeoman's job providing a plethora of over 300+ zipped locomotive project folders covering almost all SFX decoders, and typically provides at a minimum, in the zipped sound project [ .zip] folder the finished locomotive.spj file that can be directly used by the free Digitrax SoundLoader [SL] Windows App to program or download [DL] the project into your SFX decoder, using a compatible Digitrax USB programmer [Prg] track. John typically also includes a large wav sound file example, recorded as the actual sound output of an SFX decoder using that spj.
(3) For the inquisitive/brave experimenters, John usually includes a complete set of assembly source files needed to assemble to working .HEX and .MAP files, that can then be imported into SoundLoader using the SL 'File>Import .SDF' file choice. If you choose SL >sdf import, for a selected 'nameZZ.hex' file with a matching 'nameZZ.MAP' file existing in the same project folder, SL will then generate a binary 'nameZZ.sdf' file in the project directory, and then import it into the open .spj as the new control/sequencing logic.
You can then just incrementally use the SL 'Program SDF' button to rapidly DL just the new small sdf control file to test, [maybe 4K-10K bytes, and DL's in less than ~1 sec] and not have to change any of the megabytes of wave files already DL. This is true as long as the spj project .map file is consistent/matching, and there is sufficient sound-flash free in the decoder.
This is the fast low-friction evaluation sequence we use. Best practice on very large spj's that fill available memory, is to DL compactly with some less critical wave sounds at more compact lower bits/rate on files, so you have room to incrementally DL other smaller files. If you unassign any wav in the SL wave list before complete DL, then that wav will skipped/not-exist in the SFX decoder DL and not use sound memory. The SDF file automatically will skip any file that is not present/assigned, and still run. If you set a wav to "mute" before complete DL that handle/wave will then be a brief sound gap where it is referenced for that SFX sound channel in the SDF.
(4) For quick evaluation of this SdfMaker App, simply;
(a) Open/start SdfMaker and select the primary project .asm file in one of John's provided sound project folders that you have unzipped.
(b) Best practice: Optionally set a _suffix group of letters you want to distinguish/date the output files that will be marked as custom-named for you.
(c) Press F5. SdfMaker then spits out into the project folder the magic files you just created.
That's all you need to do to start on path to experimenting on your choice of custom sound generation. No complex mind-numbing assembler/IDE setup gobbledy-gook!!
(d) You can now import your shiny newly named SdfMaker generated .hex/.map file pair into SL, as in (3) above. Then you can DL to your SFX decoder.
(5) SdfMaker automatically includes internally the two SFX5 current-version primary 'SFX .inc' include files that are required to assemble. These configure the .asm source file(s) to generate the correct .hex data and other output files, based on Digitrax Sound Definition Language [SDL] version. SFX5 superceeds all prior SFX version include files, but if you add in an earlier e.g. SFX3..inc include file set pair in the project folder, the SDL definition will assemble with that earlier SDL version. Note that lower capability earlier version SFX decoders may not support all the channels, wav formats or instructions of a later version SDF. John has some projects that will work for most earlier SFX versions, like 4 and 6.
(6) When you are ready to experiment, once the Digitrax tool-chain and method is understood, best practice is to start with John's primary .asm file and copy it to some 'new_play.asm' in the project folder. Then edit that .asm file and select it in SdfMaker, and press F5.
Begin by e.g. ; adjusting channels/timing/balance/play-order or any other SDL configurable item you want to understand. This is the fastest way to "roll your own" experimentation, that actually works.....Incremental baby steps.
Try to see why certain coding steps work, and when you adjust incorrectly, what does NOT work. John includes working projects for both steam and diesel examples as the start point for your own creations. Best practice is to keep copies of renamed source files that work, for reference.
Your newly created SFX sound schemes do NOT have to be only locomotives- you can have a stationary SFX decoder with mix of cows-mooing/barnyard projects, and maybe an airport or city-scapes etc. using your own wave file recordings. These can be sequenced on; function keys or random scatter or complex logic combinations of events. With latest Series7 and 8 decoder firmware you can use the BALANCE commands to drive certain sounds to only FRONT or BACK channels, or some interim CV-controlled adjustable mid points.
(7) For Series7 and Series8 SFX decoders you do not need to mess with the SDF 'nuts and bolts' to change what function keys map to what .spj SDF defined sounds. The "view project description" drop down in SL indicates the original .spj' intent of SDF-configured function number to sound control mapping. All XF7 capable decoders allow a CV236 [XFSnd] to be programmed to change what each function key number remaps to, from default Sound function key number, normally 1:1. E.g. You can remap typical F1/Bell from F1 to F9 key, or whatever, without SL or Prg actions. Refer to latest Series7 or 8 CV definitions pdf, section "H" on the Digitrax web site.
(8) Enjoy experimenting! You can always DL/reprogram a complete new known-good spj/sdf ...if/when things go wonky...