DevSound discussion

Discussion of programming and development for the original Game Boy and Game Boy Color.
User avatar
DevEd
Posts: 48
Joined: Thu Dec 12, 2013 4:00 pm

DevSound discussion

Post by DevEd »

DevSound is a Game Boy sound driver created by me and pigdevil2010 (a.k.a. Pigu). It can be found here: https://github.com/DevEd2/DevSound. DevSound is a fairly advanced sound driver which was originally designed for use in games, but I feel it's shaping up to be a viable competitor to LSDJ. However, unlike LSDJ there is currently no editor; the only way to compose for DevSound is to write the music data manually. Eventually, I plan on creating a proper tracker for DevSound (which will run on a computer rather than on hardware).

Since there's been a bit of discussion about DevSound here lately (specifically in this thread), I thought I'd go about creating a proper thread for it. Feel free to ask questions and/or suggest features and/or bugfixes in this thread.
You know, the DevSound guy.

There are two kinds of people in this world: those who are convinced there are two kinds of people in this world, and those who aren't. - Unknown
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: DevSound discussion

Post by tepples »

DevEd wrote:Eventually, I plan on creating a proper tracker for DevSound (which will run on a computer rather than on hardware).
One shortcut for this is to create a converter from FamiTracker's text export. This way, people who have problems getting DefleMask Tracker to run properly (as I've gathered from the FamiTracker community Discord server) can at least have a composing tool to work with.
User avatar
DevEd
Posts: 48
Joined: Thu Dec 12, 2013 4:00 pm

Re: DevSound discussion

Post by DevEd »

I've considered making a converter for FamiTracker text export format, but I decided against it as it would be impossible to get the drums to be 1:1 with FamiTracker (and I'm kind of a stickler for accuracy).

Also I'm a noob at any programming language other than GB ASM :P
You know, the DevSound guy.

There are two kinds of people in this world: those who are convinced there are two kinds of people in this world, and those who aren't. - Unknown
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: DevSound discussion

Post by FrankenGraphics »

Might be easier to make a fork on famitracker with the behaviour and sound you want, than writing a tracker from the ground up? Keep the interface but gut the driver?
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: DevSound discussion

Post by tepples »

DevEd wrote:I've considered making a converter for FamiTracker text export format, but I decided against it as it would be impossible to get the drums to be 1:1 with FamiTracker (and I'm kind of a stickler for accuracy).
You could, however, get at least the sequences converted and provide a way for the composer to map each particular (pitch, instrument) combination in noise or each particular DPCM channel pitch to a corresponding drum hit. This is what ft2pently does to work around the vast difference in drum representation between FamiTracker and Pently.
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: DevSound discussion

Post by zzo38 »

Another alternative is to write a MML compiler, or to take an existing one and modify it for use with DevSound.
(Free Hero Mesh - FOSS puzzle game engine)
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: DevSound discussion

Post by calima »

Do you plan to add a sfx system?
User avatar
DevEd
Posts: 48
Joined: Thu Dec 12, 2013 4:00 pm

Re: DevSound discussion

Post by DevEd »

Not at the moment, but I do plan to add SFX eventually. Right now I'm unsure of how to actually go about doing it. For now, DevSound supports integration with FX Hammer for SFX.
You know, the DevSound guy.

There are two kinds of people in this world: those who are convinced there are two kinds of people in this world, and those who aren't. - Unknown
User avatar
Ryoga
Posts: 61
Joined: Wed Mar 16, 2016 2:08 pm
Location: World 9 - Warp Zone
Contact:

Re: DevSound discussion

Post by Ryoga »

Very interesting. I think it's a good option to use it in our GB projects.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: DevSound discussion

Post by FrankenGraphics »

Another alternative is to write a MML compiler
MML is better than hardtyping hex, and writing a py script converting MML strings to hex data would be easier than writing or repurposing a tracker.
But unless writing MML music for its own sake (pc speaker music for example), i can't recommend it. I think MML sequencing would be a bit of a jail sentence for the driver, dramatically put. I can only speak for myself, but i could come nowhere close to what sort of music i'd like to make if i had to write, compile, listen, write, compile, listen; all while constrained by the interface for inputting MML code in np++. Haven't done that since qBasic and i'm glad i haven't returned. :S I think a lot of other hobbyist composers like me without years of dedicated studies and training in music theory need direct aural feedback and be able to edit during playback in order to do their best. Still others may be fine, but then you've narrowed an already slim user base significantly (while expanding it vs. byte typing).
User avatar
DevEd
Posts: 48
Joined: Thu Dec 12, 2013 4:00 pm

Re: DevSound discussion

Post by DevEd »

As it is, I have a series of macros that are designed to make composing with DevSound more than just writing hex. For example, you can actually type notes (e.g. C_3 or F#5) rather than their raw hex value. Pretty much every feature of DevSound can be used in this way; all commands have a "mnemonic" assigned to them such as SetInstrument or EnablePWM.

I decided against an MML compiler early on because A) it would be no better than just writing it in the standard text format, and B) I personally dislike MML because it's not a "direct" means of composing. I prefer trackers because you can actually hear the music as you're writing it. The way I see it, in terms of DevSound MML would be just another text format to learn. I would prefer a more WYSIWYG solution for DevSound composing.
You know, the DevSound guy.

There are two kinds of people in this world: those who are convinced there are two kinds of people in this world, and those who aren't. - Unknown
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: DevSound discussion

Post by tepples »

So in other words, the macros look like the macros that Pently used before I added a fuller MML syntax to draw in composers with MML or LilyPond experience. But because this issue cross-cuts all drivers that use MML as input, I'll make a new topic about making the MML editing process more practical.

EDIT: Here's the new topic
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Which sound driver?

Post by tepples »

In [url=https://forums.nesdev.com/viewtopic.php?p=235133#p235133]this post[/url], dougeff wrote:My advice for making a sound engine from scratch...

Don't.

Use an existing one.
Does this mean now is the time to write a converter from FamiTracker text export to DevSound bytecode?
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: DevSound discussion

Post by dougeff »

Possibly, that is a good idea. Also possibly, the data size would be larger than the famitone code I'm working on.

The main fault with devSound is the lack of tracker. Making a famitracker export work would be helpful.

(edited)
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
DevEd
Posts: 48
Joined: Thu Dec 12, 2013 4:00 pm

Re: Which sound driver?

Post by DevEd »

tepples wrote:
In [url=https://forums.nesdev.com/viewtopic.php?p=235133#p235133]this post[/url], dougeff wrote:My advice for making a sound engine from scratch...

Don't.

Use an existing one.
Does this mean now is the time to write a converter from FamiTracker text export to DevSound bytecode?
If you do make a FamiTracker to DevSound converter, I would appreciate support for 0CC-FamiTracker features supported by DevSound, i.e. echo buffers.

I'd also appreciate command aliases for features that exist in DevSound but not in FamiTracker, vanilla or otherwise, i.e. PWM.
You know, the DevSound guy.

There are two kinds of people in this world: those who are convinced there are two kinds of people in this world, and those who aren't. - Unknown
Post Reply