laurence dougal myers

DRO Trimmer

Description

A tool to modify DRO files, the raw OPL (i.e. Adlib) recordings output from DOSBox, supporting all versions of the DRO format. Pretty simple. It just loads up the data into a table, and you can delete instructions as you see fit.

It also has the ability to play DRO files within the editor, so you can listen to the song from any point, and see how your edits sound straight away. It also has a few command-line executables, including: "dro_player", for playing DRO songs and rendering them to a WAV file; "dro_split", for rendering each channel of a DRO song to a separate file; and "dro2to1", for converting a DRO v2 file to the DRO v1 format (useful if you want to use dro2midi).

There's a little bit of magic for DRO V1 files, as sometimes DOSBox likes to record long (bogus) delays before the register initialization, which screws up the sounds of instruments. DRO Trimmer can detect these bogus delays and remove them automatically when the file is loaded. This does not occur for V2 files, since I don't think they suffer the same issue.

Source Code

v4 r3
(2013-12-06)

Release Notes

New: can specify a "chip write delay" in drotrim.ini, allowing emulation of tiny pauses between writing instructions to an OPL2/OPL3 chip.

New: dro_split: can now split songs to multiple DRO files, one per channel. (Previously, you could only split to WAV files.)

Fix: audio stream is now only opened when first audio output occurs. This means dro_split no longer tries to open an audio stream, which could fail on PCs with limited audio capabilities. Also try to close the audio stream when the app exits.

v4 r2
(2013-06-13)

Release Notes

New: dro_player: can solo channels during playback, using keys from 0-9.

New: dro_split: new command line tool, to render each channel to a separate WAV file.

Fix: Reduced memory consumption, at the cost of CPU performance. On my PC, the command line player uses 3mb of RAM, vs 10mb. The normal GUI will still take over 30mb due to the use of WxWidgets. (This also has resulted in a streamlined codebase)

Fix: some multithreading issues.

Fix: improved dialog message when incorrect song length.

Fix: better usage text for command line tools.

Fix: OPL emulation was not reset between plays, so for example, volume changes could persist between playing from the start of a song and immediately playing from the beginning again.