Furnace Tracker now officially exports Zsound music files!
Furnace Tracker now officially exports Zsound music files!
At long last, my PR adding Zsound's music format ZSM has been accepted and merged! This means that there is now an official version of a current tracker that you can use to make music for Commander X16 and use the music on system with Zsound. The exciting thing about this is that Furnace supports native VERA channels, so no more having to work with Sega Genesis mode in Furnace or Deflemask and export via VGM!
For now, the ZSM export module does not support the PCM channel of VERA, so don't expect to use that channel and have it in your music on Commander X16, but other than that, it's completely functioning as a music tracker.
-
- Posts: 508
- Joined: Sat Jul 11, 2020 3:30 pm
Furnace Tracker now officially exports Zsound music files!
With the change to IRQLINE coming in the next version of VERA, it should be easy to incorporate PCM audio snippets into Zsound; well, relatively easily.
I am working on something to demonstrate FASTMATH (boy, that escalated quickly. I mean that really got out of hand fast), and if I can just drop in Zsound and have triggered sound effects and background music then great.
I'd sure like a link to Furnace and your code in this thread, please.
Furnace Tracker now officially exports Zsound music files!
On 9/26/2022 at 12:38 PM, Ed Minchau said:
I'd sure like a link to Furnace and your code in this thread, please.
I gotcha fam: https://github.com/tildearrow/furnace
My code is mostly contained in engine/zsm.* and zsmOps.* - I had to make a couple of tweaks in engine.h etc to make the project as a whole know that the code is there, and then there's the spaghetti bowl that is gui.cpp but that has little to do with my code - only putting the menu option and file dialog box components for ZSM files into the logic.
Of course, Zsound is found at https://github.com/ZeroByteOrg/zsound
This repo contains not only the X16 library, but a set of other tools for creating and manipulating the data files as well. For instance, it contains a python script which is a frontend to sox for creating the "ZCM" files (they're basically WAV files for Zsound)
Quote
With the change to IRQLINE coming in the next version of VERA, it should be easy to incorporate PCM audio snippets into Zsound; well, relatively easily.
I presume you mean in ZSM music, not Zsound as a whole? Zsound already has a PCM playback engine that lets you easily trigger digi samples as SFX in programs. The challenges I'm facing for getting PCM into ZSM playback are:
- There are two basic "paradigms" for this: Triggering one-shot samples, or manipulating sample stream playback on the fly. Each one's got a challenge for me. One-shot is easy and I already have "hooks" in the ZSM standard to allow for this, but the challenge here is how to get such things from various VGMs - many of the PCM sound chips favor the streaming method and aren't just simple one-shot triggers. How to convert this (intelligently) into a collection of the various sample clips is challenging to me. For stream playback, I kind of have the opposite problem. Encoding is easy, but architecting the player library to facilitate near-realtime fidelity to what the original playback source did is much harder.
- Architecture challenges in the library - I want to make sure the implementation stays as lean and mean as possible - not requiring a lot of code be linked in if it isn't needed. For instance, if the PCM engine is not included, ZSM files should play back everything but the PCM track. Etc.