Damusix is an Inform 6 extension that gives the author advanced sound capabilities, and it’s coming to Inform 7.
In my quest to include sounds into an upcoming text game, I ran into mentions of Damusix by Eliuk Blau (aka Nicolas Merino Quezada). I wanted to know more, so I tracked down Eliuk a couple weeks ago.
Apparently, Damusix for Inform 7 had been in the works for a while, but it fell by the wayside. The original Inform 6 extension was in Spanish, and Aaron Reed translated the documentation as they converted Damusix to Inform 7. (And @aaronius, if you are reading this, Eliuk sends his thanks and says you’re the best!)
So what’s the big deal with Damusix, anyway? Inform 7 can already play sounds! And we have some sound extensions already!
According to its documentation, Damusix does the following:
- 10 normal channels with complete control over audio
- 10 virtual channels for sounds without an assigned channel
- Playlist (with space for 10 items)
- Global volume control
- Individual volume control for each sound
- Abstract control by sound or by channel
- Fade-in and fade-out effects in real-time or as simple fades
- Enable or disable audio globally (without affecting any individual volumes)
- Automatic verification of an interpreter’s audio support
- A mechanism to protect sounds after UNDO/RESTORE
- Much much more… =D
(Another feature I found intriguing is that Damusix allows you to use MOD files. However, it doesn’t work with other music tracker formats, like IT, XM, or S3M. But I got MOD files to play within the Windows version of Inform 7 and in Gargoyle. Not sure what other interpreters work with MODs.)
Eliuk has generously made the source code available to the community. But there are a couple caveats.
You can’t use the extension in your projects just yet, as Eliuk has only released it for beta testing. But he’s planning on releasing under a free software license soon. You are welcome to send pull requests.
Also, I wasn’t able to compile this for the latest version of Inform 7. I could get it to compile for Inform 9.3 by changing the extension’s version number to 4. Hopefully, getting this to work for Inform 10 is a simple matter of updating some syntax. Or maybe there’s something quirky with my Inform setup.
In Eliuk’s own words, here’s what’s in the repo:
- Damusix Sound Manager for I7 Extension
- A copy of Glulx Entry Points Extension (required, updated for I7 v10)
- Full Spanish Documentation for DamusixI7 (made for beta testing)
- Full Spanish Documentation for DamusixI6 (can be very useful)
- A simple I7 demo project called: “First Steps with Damusix”
- A full demo for DamusixI6 all features (to learn more about what it can do)
Also, in the I7 extension I have included Aaron Reed’s English translation of the Spanish documentation. It is a free and summarized translation. So if there are ambiguous or dubious parts, you can always go to the full version of the I7 documentation that I include in the repo as a TXT file. You can also use the IDE documentation in “Index → Phrasebook → From the Damusix Sound Manager” to learn about all the allowed sentences, their variants and syntax.
Eliuk had to refactor the old Inform 6 code to work with Inform 7, and he admits he’s not an Inform 7 expert, so any help would be appreciated.
This is a pretty big step in expanding sound support for Inform 7 projects, and I hope many of you try this out, make pull requests, and give Eliuk some feedback and encouragement! His email address can be found at the top of the extension.