DevSound discussion

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

DevSound discussion

Post by DevEd » Sat Jan 06, 2018 8:33 am

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: 21710
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: DevSound discussion

Post by tepples » Sat Jan 06, 2018 8:47 am

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: 51
Joined: Thu Dec 12, 2013 4:00 pm
Contact:

Re: DevSound discussion

Post by DevEd » Sat Jan 06, 2018 9:39 am

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: 2030
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: DevSound discussion

Post by FrankenGraphics » Sat Jan 06, 2018 9:45 am

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?
http://www.frankengraphics.com - personal NES blog

tepples
Posts: 21710
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: DevSound discussion

Post by tepples » Sat Jan 06, 2018 10:22 am

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: 1046
Joined: Mon Feb 07, 2011 12:46 pm

Re: DevSound discussion

Post by zzo38 » Sat Jan 06, 2018 11:07 am

Another alternative is to write a MML compiler, or to take an existing one and modify it for use with DevSound.
[url=gopher://zzo38computer.org/].[/url]

calima
Posts: 999
Joined: Tue Oct 06, 2015 10:16 am

Re: DevSound discussion

Post by calima » Sat Jan 06, 2018 11:55 am

Do you plan to add a sfx system?

User avatar
DevEd
Posts: 51
Joined: Thu Dec 12, 2013 4:00 pm
Contact:

Re: DevSound discussion

Post by DevEd » Sat Jan 06, 2018 12:34 pm

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: 46
Joined: Wed Mar 16, 2016 2:08 pm
Location: World 9 - Warp Zone

Re: DevSound discussion

Post by Ryoga » Sun Jan 07, 2018 4:00 am

Very interesting. I think it's a good option to use it in our GB projects.

User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2030
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: DevSound discussion

Post by FrankenGraphics » Sun Jan 07, 2018 6:45 am

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).
http://www.frankengraphics.com - personal NES blog

User avatar
DevEd
Posts: 51
Joined: Thu Dec 12, 2013 4:00 pm
Contact:

Re: DevSound discussion

Post by DevEd » Sun Jan 07, 2018 7:28 am

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: 21710
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: DevSound discussion

Post by tepples » Sun Jan 07, 2018 7:35 am

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: 21710
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Which sound driver?

Post by tepples » Thu Feb 28, 2019 11:16 am

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: 2598
Joined: Fri May 08, 2015 7:17 pm
Location: DIGDUG
Contact:

Re: DevSound discussion

Post by dougeff » Thu Feb 28, 2019 11:21 am

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: 51
Joined: Thu Dec 12, 2013 4:00 pm
Contact:

Re: Which sound driver?

Post by DevEd » Thu Feb 28, 2019 6:00 pm

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