Re-Play music converter & player

Page 2/2
1 |

By Retrofan

Paragon (1339)

Retrofan's picture

31-07-2022, 11:30

Parn wrote:

I recently found out Furnace, which was originally an open source DefleMask clone but aims to support many more sound chips in a more flexible way. Its development version already supports the OPL family up to OPL3, and MSX-AUDIO and SCC are in the works. It already supports many of the sound chips available on MSX, including Darky's EPSG and SFG's OPM.

Great tracker! And will there also be a possibility to load/wave MoonBlaster files in Furnance? That would be cool as well!
Found this as well: https://github.com/HerrSchatten/MBMPlay-SMS

By Parn

Paladin (854)

Parn's picture

31-07-2022, 17:21

They still don't support OPL4 but I think that would be a pretty cool feature. It would also be nice if Furnace could import MoonBlaster Stereo music as well.

By ToriHino

Paladin (925)

ToriHino's picture

04-08-2023, 08:54

I'm trying to integrate this player, and the documentation mentions for the OPL4 format:

C2: Relative jump. Byte 1: bank offset, byte 2-3: address offset.
C3: Relative call. Byte 1: bank offset, byte 2-3: address offset.

However I think these should be reversed i.e. first the address, followed by the bank offset.

By Grauw

Ascended (10820)

Grauw's picture

04-08-2023, 09:26

You’re right, I’ll fix the doc.

By Grauw

Ascended (10820)

Grauw's picture

11-09-2023, 16:53

By request, last month I added support for an MSX-MUSIC + PSG format.

Quoting the README:

# OPLL-PSG format (MSX-MUSIC + PSG)

Re-Play’s `opll-psg` format is created for projects which need a fast MSX-MUSIC
and/or PSG player. The focus for this format therefore is playback speed, but
data size is also important.

## OPLL-PSG format converter features

  * OPLL support
  * PSG support
  * Fast playback
  * Compact data format
  * Timing quantisation
  * Aggressive optimisation of register writes
  * Channel remapping (OPLL only)
  * Volume adjustment

## OPLL-PSG format specification

Re-play `.rep` files start with a byte indicating the data format, followed by
a command stream with events based on the data format.

Format ID: `2`

  * `00-3F`: OPLL register write block.
             Bit 0-5: count n - 1.
             Bytes 1-2n: address, value sequence.
  * `40-7F`: PSG register write block.
             Bit 0-5: count n - 1.
             Bytes 1-2n: address, value sequence.
  * `80`:    Relative jump.
             Byte 1-2: address offset, byte 3: bank offset.
  * `81`:    Relative call.
             Byte 1-2: address offset, byte 3: bank offset.
  * `82`:    Return.
  * `83-FF`: Wait.
             n - 82H: nr. of ticks.

Hope it’ll be useful to someone!

In other news, I’ve been working on compression, and the other day I finally got it working. Initial results are good. It still needs some refinement, I’ll be posting about it more when it’s ready for release.

By Parn

Paladin (854)

Parn's picture

12-09-2023, 23:14

This sounds great and I'm looking forward to using it. Thank you, Grauw!

By Grauw

Ascended (10820)

Grauw's picture

18-09-2023, 15:20

ToriHino wrote:

I'm trying to integrate this player [...] for the OPL4 format

Hey ToriHino, you’re welcome to integrate it in Roboplay, however note that I can not guarantee the Re-Play formats to be stable, since the primary use case for this project is to be a replayer for music embedded in projects. Although I won’t change it without reason of course. On that note;

I changed the OPL4 format slightly to have the WAVE memory write block not include the address anymore. Instead the address (and write mode) are now set through regular commands, so the memory block is just providing data to output straight to register 6 and nothing more. This change allows memory blocks to be reused if the same sample appears in different locations in memory.

By ToriHino

Paladin (925)

ToriHino's picture

18-09-2023, 16:01

Thanks for the update. I wasn't integrating it in Roboplay but in the game I'm working on ('Attack of the Petscii Robots') for which indeed it exactly provided what I was looking for Smile

By Grauw

Ascended (10820)

Grauw's picture

18-09-2023, 16:38

Awesome!

Page 2/2
1 |