Page 6 of 7

Re: GGSound: a lightweight sound engine for games

Posted: Mon May 30, 2016 10:09 am
by 8bitMicroGuy
If I have a duty cycle pattern loop in an instrument that I use in a sound effect, will it loop only once?

Re: GGSound: a lightweight sound engine for games

Posted: Mon May 30, 2016 12:04 pm
by GradualGames
It finds the max length of all envelope types for your instrument and terminates the sound effect after that many frames (the length of your envelope sequence corresponds to rendered frames) have elapsed. Typically the volume envelope is the longest, so if your duty cycle is a fairly standard one that is used for a crisp sounding attack or what not and you have a longer volume envelope, the duty cycle will loop as expected.

Perhaps I should use the pattern length in rows instead to determine the length of sound effects---that way you can control it more precisely. Thoughts?

Re: GGSound: a lightweight sound engine for games

Posted: Mon May 30, 2016 3:58 pm
by 8bitMicroGuy
Pattern lengths are how I expect sfx to work so yes

Re: GGSound: a lightweight sound engine for games

Posted: Tue May 31, 2016 3:19 am
by darryl.revok
Hello!

I made something that I thought might be useful to others.

It's pretty simple, just a slight modification to the GGsound demo. It's in ASM6 format but I can make a CA65 one if it someone requests it.

The purpose of this is to help a composer, without programming knowledge, to demo their songs on an NES console or emulator. I wanted it so that a composer could export their FTM song, convert to ASM, rename the output files to "track_data.inc" and "track_dpcm.inc" and drop them into the demo file, build, and listen. I wanted to make sure that the track list would stop at the beginning and end no matter how many songs were included, I also wanted the same for SFX, and for a sound designer to be able to select the various sound effects.

All of the changes that I made are included in one file, demo.asm. This file can be dropped into the "ggsound_asm6" folder to apply these changes to the demo. Opcodes that I added are capitalized. There is an additional variable declaration for current_sfx, and an initialization of that variable. There are constants called SONG_INDEX_END and SFX_INDEX_END which are calculated at assembly. A song will no longer restart when you hit the end of the track list, which is just personal preference and it was a little easier to set up that way.

I hope this helps somebody!

Re: GGSound: a lightweight sound engine for games

Posted: Sun Aug 28, 2016 8:54 am
by GradualGames
OP updated with distro with two new bug fixes in the converter. Sfx lengths were not being calculated correctly for more complex sfx, and pattern indices were not being treated properly in some cases. Thanks to Peter McQuillan for these bug reports!

Re: GGSound: a lightweight sound engine for games

Posted: Sat Mar 18, 2017 11:01 am
by GradualGames
GGSound now has its own Github repository.

Re: GGSound: a lightweight sound engine for games

Posted: Tue Sep 05, 2017 10:18 pm
by nesrocks
I'm getting an error when converting a song but I guess this has to do with the fact that I don't have cc65 properly installed. I managed to run the build demo python script when I copied ca65.exe and ld65.exe do the same folder as the py script, but converting a song isn't working when I use that dirty fix. Even copying all cc65 exes to the folder doesn't cut it. So, when searching for instructions on how to install cc65 I run into a problem. This page says:
"Extract cc65-win32-#####.zip to a new folder.
Open this folder and run the install.vbs file as an administrator to copy it to Program Files."

Now, the original cc65 website doesn't have anything anymore, and it says:
"Oliver Schmidt, long time contributor to the libraries is providing support for the old version. See http://cc65.github.io/cc65/ for more information."
So I go to that new site and the package is presented in a new portable format only. I can't install it, it seems.

I tried unzipping the package to c:\cc65 as I recall someone suggesting that, but still doesn't work.

Code: Select all

D:\programas\_nes modding\assembly\_cc65\ggsound-master\ggsound_ca65>ft_txt_to_a
sm.py tension.txt
Traceback (most recent call last):
  File "D:\programas\_nes modding\assembly\_cc65\ggsound-master\ggsound_ca65\ft_
txt_to_asm.py", line 754, in <module>
    main()
  File "D:\programas\_nes modding\assembly\_cc65\ggsound-master\ggsound_ca65\ft_
txt_to_asm.py", line 367, in main
    macros[macro_type_to_str[macro["type"]]].append(macro)
KeyError: 3
Any ideas? Just to be clear: when simply unzipping the files to new folders it doesn't work (build demo or convert song). I have python 3.6.2 installed and the latest zips of cc65 and gg-sound. Build demo works when I copy ca65.exe and ld65.exe to the "ggsound_ca65" folder.
edit: there is a space character in the path on "_nes modding" folder, but even when working from c:\ggsound it throws the same error.

Here is one song that I've tried to make as featureless as possible and still can't export:
http://nesrocks.com/files/runner.ftm

Re: GGSound: a lightweight sound engine for games

Posted: Thu Oct 05, 2017 6:48 am
by GradualGames
nesrocks wrote:I'm getting an error when converting a song but I guess this has to do with the fact ...
Sorry I haven't been on nesdev in a little while. I'll look into it. Or if you wind up fixing it, pull requests on the github project are welcome as well. :)

Re: GGSound: a lightweight sound engine for games

Posted: Sun Oct 08, 2017 7:06 am
by GradualGames
nesrocks wrote: Here is one song that I've tried to make as featureless as possible and still can't export:
http://nesrocks.com/files/runner.ftm
Hmm...I'm not sure what's going on yet. When I try to open your file in FamiTracker 0.4.2, it says I need a newer version of FamiTracker. So I went to FamiTracker's website and got 0.4.6. Tried to open your file again. It still tells me I need a newer version. Are you using some kind of bleeding edge beta version from somewhere...? Haha.

Re: GGSound: a lightweight sound engine for games

Posted: Sun Oct 08, 2017 11:59 am
by nesrocks
GradualGames wrote:Are you using some kind of bleeding edge beta version from somewhere...? Haha.
Yeah, everyone uses 0.5 and that's what I had to use too if I was to download several of the tracks posted on the famitracker forums. I 100% agree this is super confusing as that 0.5 version isn't easily found on their download sections, and yet, it is what most of the composers use. Note this thing is from 2015!
http://forums.famitracker.com/viewtopic.php?t=173

Re: GGSound: a lightweight sound engine for games

Posted: Sun Oct 08, 2017 4:33 pm
by GradualGames
nesrocks wrote:
GradualGames wrote:Are you using some kind of bleeding edge beta version from somewhere...? Haha.
Yeah, everyone uses 0.5 and that's what I had to use too if I was to download several of the tracks posted on the famitracker forums. I 100% agree this is super confusing as that 0.5 version isn't easily found on their download sections, and yet, it is what most of the composers use. Note this thing is from 2015!
http://forums.famitracker.com/viewtopic.php?t=173
Interesting, I was not aware of this build of FamiTracker.

The issue is that some hi-pitch sequences are present in your file---these are unsupported by GGSound. This is listed on the guide on the github page.

If you're working with a sophisticated composer, they will probably need some coaxing as GGSound supports a rather limited subset of FamiTracker's features.

Re: GGSound: a lightweight sound engine for games

Posted: Sun Oct 08, 2017 4:59 pm
by nesrocks
Ohhh... But they are unchecked. Shouldn't they be ignored by the converter? Anyway, I'll remove it and test again.

Re: GGSound: a lightweight sound engine for games

Posted: Sun Nov 26, 2017 3:42 pm
by GradualGames
Just added Dendy support to GGSound.

Re: GGSound: a lightweight sound engine for games

Posted: Sun Jan 14, 2018 9:32 am
by GradualGames
A bug in arpeggio execution has been fixed. Arpeggio support has been added to the noise channel.

GGSound repository

Re: GGSound: a lightweight sound engine for games

Posted: Sun Jan 21, 2018 9:43 am
by GradualGames
Introducing arpeggios to the noise channel caused a regression with noise pitch envelopes which has been fixed. Also: "Fixed" arpeggios are hard-coded to the noise channel, "Absolute" arpeggios are hard coded to all other channels. I do not use arpeggios myself---if anyone runs into issues with using arpeggios, please use this thread to report bugs and provide a sample song which causes your issue so that I can fix it.

Does anyone know how common it is to use absolute/relative/fixed with arpeggios on different channels?