Page 3 of 3

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Sun Jan 31, 2016 7:06 pm
by darryl.revok
AlexE wrote:FamiTracker (and trackers in general) use the computer keyboard to simulate a piano roll pretty analogously, so it comes naturally from a pianist persepctive. The rest of it is using math to place out the rhythms of each note/sample. I also use programs like Reason and MuseScore to make music.
You wouldn't prefer a piano roll like Reason uses or a staff like MuseScore? Personally, I like to have a visual indication of my notes and their lengths. I think there's a massive difference between the two approaches.

If you look at the screen on a piano roll setup, at a quick glance, even subconsciously, you can see where the notes you've placed would fall on a keyboard. You can see the intervals between the notes immediately. You can see how long any given note is and visually observe any slides. You can read all of this from the screen, for the entire segment of the song on which you are working, in a matter of seconds, if that.

When I look at famitracker, I see code. I see something that I have to interpret to get a meaning from it. I'm not a classically trained musician, and I wouldn't call myself a musician, I suck at it, but I enjoy hitting drums and playing analog synths. (they're so cool!) Anyway, I have to know what an A#3 is, and subtract that from a C-4, to know the interval between notes. Then I have to count the spaces between notes to find the length. Are these notes sustained or staccato? How many of these spaces does it take to make a quarter note? If I want to write a song with a 7/4 verse, a 5/4 chorus, and a 3/4 break, can I get a visual indication of that? What are these effects? They're just numbers; they're not any sort of terms that describe what they are.

If I want to hire a composer for my game, should I expect a musician to take the time to learn to code in famitracker and be able to convert their musical writing style to it, or should I find someone who works exclusively in chiptunes? You can go to the hipster part of your local city and throw a rock and it just hit a musician who needs work.
Kasumi wrote:I think there are more problems than layout moving from a traditional musical background to chiptune. Like... you can't hit three notes at once for a chord on NES.
That's true, but I feel like that's more of a limit of the instrument rather than for the method of conveying information to it. Anyone who's programmed a monophonic synthesizer would immediately understand that.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Sun Jan 31, 2016 7:53 pm
by tepples
darryl.revok wrote:How many of these spaces does it take to make a quarter note?
Set the length of a beat in rows with "Row highlight 1st", and set the length of a measure with "2nd". I forget whether this time signature is global, per FTM, or per song in the FTM. But it's certainly not per pattern, which is what you'd need to for the kind of math rock you describe in your next paragraph.

Pently allows changing time signatures during the song. You can set a time signature for one measure, start some patterns, wait for another measure, change the time signature, and start different patterns.
If I want to hire a composer for my game, should I expect a musician to take the time to learn to code in famitracker and be able to convert their musical writing style to it, or should I find someone who works exclusively in chiptunes?
You could find a musician who can read sheet music and set up a Pently environment. Someone comfortable in MuseScore could export in LilyPond format and then copy-paste the exported sequences into a Pently project. Or you could find someone who has used PPMCK or another MML tool, as much of MML is also valid in Pently.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Mon Feb 01, 2016 11:45 am
by AlexE
Kasumi wrote:
My questions aren't so much as to what technological madness can be done on the NES, it's how to put music ON the NES game. Basically, the answer seems to be "You'll have to figure it out; here's some tools to help you figure it out."
So I offered in one of my posts a thing that lets you try out your music using Famitone2's player. Do you want that? I'm not saying figure it out, I'm saying it's on a game by game basis. The questions you're asking simply can't be answered generally. We can help you with Famitone2 specific questions. We can help with GGSound questions. We can't help you make music guaranteed to work for any given game, because that's impossible.

So what is your goal? If you're looking to get your music in a game, you can simply post things you've made without expansion chips so people can decide if they like your sound. You may not get responses, but that's more that there simply aren't that many people doing this.

If you do get a response, whoever wants your music will definitely help you out with what their game needs. It's just hard to help you with general questions, when it's going to vary based on the project that needs the music. It's not like a modern game where you can just send an mp3 over which will work in whatever project.
That might've been more bratty sounding that what I thought it would be. I apologize.
By "figure it out", I mean that each game would be different as you said and that I would have to "figure it out".
I appreciate the help!

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Mon Feb 01, 2016 12:09 pm
by AlexE
darryl.revok wrote:
AlexE wrote:FamiTracker (and trackers in general) use the computer keyboard to simulate a piano roll pretty analogously, so it comes naturally from a pianist persepctive. The rest of it is using math to place out the rhythms of each note/sample. I also use programs like Reason and MuseScore to make music.
You wouldn't prefer a piano roll like Reason uses or a staff like MuseScore? Personally, I like to have a visual indication of my notes and their lengths. I think there's a massive difference between the two approaches.

If you look at the screen on a piano roll setup, at a quick glance, even subconsciously, you can see where the notes you've placed would fall on a keyboard. You can see the intervals between the notes immediately. You can see how long any given note is and visually observe any slides. You can read all of this from the screen, for the entire segment of the song on which you are working, in a matter of seconds, if that.

When I look at famitracker, I see code. I see something that I have to interpret to get a meaning from it. I'm not a classically trained musician, and I wouldn't call myself a musician, I suck at it, but I enjoy hitting drums and playing analog synths. (they're so cool!) Anyway, I have to know what an A#3 is, and subtract that from a C-4, to know the interval between notes. Then I have to count the spaces between notes to find the length. Are these notes sustained or staccato? How many of these spaces does it take to make a quarter note? If I want to write a song with a 7/4 verse, a 5/4 chorus, and a 3/4 break, can I get a visual indication of that? What are these effects? They're just numbers; they're not any sort of terms that describe what they are.
Typically in FamiTracker, things are split up into even numbers. I usually go by having every 8 rows being a quarter beat. That would mean that every 4 rows is a eighth beat and every 2 rows would be a sixteenth beat.

When I use FamiTracker, the computer keyboard essentially BECOMES the piano roll. Q on the keyboard is C musically, W is D, E is E, R is F, T is G, and so on. The accidentals are set up in the same manner. The number 3 in "C-3" means that it is C in the third octave (middle C actually, I think). If you want to have a staccato eighth note, for example, you would cut the note's length with the Note Cut tool, essentially a rest, at the second row after the note is played.

FULL EIGHTH NOTE
01 D-3-
02 -----
03 -----
04 CUT

STACCATO EIGHTH NOTE
01 D-3-
02 CUT
03 -----
04 -----

As for different time signatures, that would depend on the amount of rows (1/32 beats) per pattern (measure). 4/4 time will probably have each 1/4th beat having 32 rows totaling 128 rows. If you want 3/4 time, you would place a Dxx effect at the third beat in 4/4 time to cut the measure short (or you could have 96 rows instead of the default 128 rows). You would have to mathematically figure out the number of rows needed for those unusual time signatures (since I don't have FamiTracker with me at the moment).

For effects, there are various effects for changing how a note plays. They're labeled as a number from 1-9 and A-F (instead of 10-16 because trackers use single digit numbers for some reason I DUNNO. If you remember from middle school math class, you'll remember that x and y are variables that can be given these numerical/alphabetical values). I use 4xy, the vibrato effect, for vibrato. It keeps the droning sound of the pulse wave from becoming monotonous. The Axy effect allows for volume sweeps and I personally prefer it to creating a volume envelope because it keeps things more simple, streamlined, and customizable on the fly HOWEVER apparently FamiTone and GSSound doesn't like that.
Kasumi wrote:I think there are more problems than layout moving from a traditional musical background to chiptune. Like... you can't hit three notes at once for a chord on NES.
That's true, but I feel like that's more of a limit of the instrument rather than for the method of conveying information to it. Anyone who's programmed a monophonic synthesizer would immediately understand that.
Analog mono synths are my fuckin' jam, m8.

EDIT: Later, I'll upload a FTM file explaining some fundamentals of FamiTracker.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Mon Feb 01, 2016 3:19 pm
by darryl.revok
AlexE wrote:EDIT: Later, I'll upload a FTM file explaining some fundamentals of FamiTracker.
Before you do that, I want to state that my questions were largely rhetorical. The reason I brought this up is because of the talk about whether or not it's reasonable to expect a composer to learn a new interface for writing chip tunes. I question whether or not the interface for writing chiptunes needs to be something that even requires learning. (besides the use of non-basic features and keyboard shortcuts)

I'd like to ask this question:

Having done both methods and overcome the learning curve of Famitracker, would you see any downside to a piano roll method of composition? I've casually messed with Famitracker for about an hour. I knew the answers to a couple of the questions that I asked but not all of them. My view is that I never opened up a piano roll style program and wondered what to do to create notes. I think seeing this as an outsider is valid, because I'm considering my (hypothetical) choice for chiptune composition software. I feel like if I took the time to learn Famitracker, that switching to a piano roll system would allow me to retain what I learned about creating music for the hardware, and at the same time, wouldn't introduce new hurdles, because the interface would be self-explanatory.

If I was considering getting into chiptunes, and there was an option for composition that had a piano roll, the choice would be a no-brainer for me. I'd go for the piano roll hands down. Am I the only one who feels this way? (It's perfectly fine if not, but I'm curious if my opinion at all correlates to the feelings of the general intended user base for a chiptune composition program)

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Mon Feb 01, 2016 3:41 pm
by lidnariq
Having started using trackers and a very early version of Cakewalk (3.0 for win31) at the same time, I'm roughly equally familiar with both UIs. I prefer trackers for electronica, sheet music for live instruments, and piano rolls for visualizations (but not for composing).

In my opinion, there are a few things (both features and constraints) that trackers make explicit:
- Coupling effects and instrument choice into the UI. The piano rolls that I have seen often don't present any information other than duration and pitch.
- Monophonic instruments (impulse/modplug tracker notwithstanding)

I find that piano rolls make duration really clear in a way that I don't find helps me when I'm composing.

Additionally, I find that the tracker UI makes it easier to get an idea of everything that's going on at the same time; I find that reading "F-4 D-4 A-3" is a lot easier to identify (as a first inversion F major chord) than three horizontal lines with specific spacing on a piano roll.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Tue Feb 02, 2016 12:15 pm
by darryl.revok
Well, from the opinions that I got, it seems that I'm in the minority on this one. Perhaps a piano roll would be more popular outside of the chiptune community, but nobody that I've talked to who composes chiptunes would be interested in working in a piano roll.
darryl.revok wrote:You can go to the hipster part of your local city and throw a rock and it just hit a musician who needs work.
Thinking on this, sure, I know plenty of good musicians, but would their talent translate to creating chiptunes? I'm sure if someone had a lot of experience programming monophonic synths, even synthesizing percussion sounds, that would translate. A modular synth aficionado would probably be well suited for the task, but you're going to have a throw a rock pretty far to hit one of them.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Tue Feb 02, 2016 4:37 pm
by tepples
A real wind-blown instrument (flute, clarinet, trumpet, saxophone) is a physical monophonic synth. If you build the instrument definitions, you can have someone else compose sequences using those instruments.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Wed Feb 03, 2016 12:58 pm
by GradualGames
AlexE wrote:Gradualore's GGSound was used in Super Bat Puncher (which is an outstanding game with outstanding music)
I'd be honored if this were true, and surprised I didn't know because I conversed fairly often with miau back when he was developing that. Haha! I'm amused I'm still referred to as Gradualore. I'm just GradualGames. :D Where did you hear that it was used in SBP? *edit* StarKeeper is great---not sure if a rom is available, it was a limited release on NA. But it was a fantastic game---definitely an unsung gem in the homebrew community. Great music, too. I'd say I was biased only I didn't realize until much later that he was actually using my sound engine, haha!

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Wed Feb 03, 2016 3:46 pm
by AlexE
GradualGames wrote:
AlexE wrote:Gradualore's GGSound was used in Super Bat Puncher (which is an outstanding game with outstanding music)
I'd be honored if this were true, and surprised I didn't know because I conversed fairly often with miau back when he was developing that. Haha! I'm amused I'm still referred to as Gradualore. I'm just GradualGames. :D Where did you hear that it was used in SBP? *edit* StarKeeper is great---not sure if a rom is available, it was a limited release on NA. But it was a fantastic game---definitely an unsung gem in the homebrew community. Great music, too. I'd say I was biased only I didn't realize until much later that he was actually using my sound engine, haha!
I don't know exactly where I read it, but I guess confused "Gradualore" with "GradualGames" because "Grad...." was in the name. It was also probably 2 AM at the time, so I get pretty loopy in the wee hours of the morning.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Wed Feb 03, 2016 4:49 pm
by GradualGames
No, you're quite right, the word "gradual" is intentionally in each iteration of the name. But I've basically dropped the original moniker, in preference of "brand recognition" so far as that has any meaning in this small community, hahah. :D

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Wed Feb 03, 2016 9:42 pm
by Kasumi
Hi, I asked if you'd like a thing. Here's the thing:
AlexEFamitone2v000.zip
(159.36 KiB) Downloaded 286 times
It's very simple at the moment. It has no visuals/doesn't support sound effects/DPCM, but I figured I'd get you something to start before I get too deep in another thing and forget. I make no promises I'll update it, but anyone else can feel free to. It's not like anything's sacred in there.

Make a song (or set of songs) in Famitracker using Famitone2's limitations. Go to file, export text in Famitracker. Export "testsong.txt" into the unzipped directory. Double click "makerom.bat".

A file called "main.nes" will be created with your music.

Or, it will tell you why it was not able to create a rom. If "main.nes" doesn't exist in the folder, read what the commandline window said and try to fix it. Or ask us if you don't understand the error.

You can press right to go to the next song, and left to go to the previous song.

Let me know if you have any actual problems with it.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Sat Feb 06, 2016 4:39 am
by miau
GradualGames wrote:
AlexE wrote:Gradualore's GGSound was used in Super Bat Puncher (which is an outstanding game with outstanding music)
I'd be honored if this were true, and surprised I didn't know because I conversed fairly often with miau back when he was developing that. Haha! I'm amused I'm still referred to as Gradualore. I'm just GradualGames. :D Where did you hear that it was used in SBP? *edit* StarKeeper is great---not sure if a rom is available, it was a limited release on NA. But it was a fantastic game---definitely an unsung gem in the homebrew community. Great music, too. I'd say I was biased only I didn't realize until much later that he was actually using my sound engine, haha!
Hey there, let me clear this up real quick!
GGSound was not used for SBP. I rolled my own sound driver that supported most of Famitracker's feature set at the time except for DPCM. I wanted the composer to not have to worry about technical details too much. We did agree to only use certain effects (vibrato, sweeps and some others), so I could purge the rest from the driver and save some RAM.

I also implemented lz77-like compression for the song data, but without using much extra RAM (it used the compressed input as a dictionary). The compressor was some kind of weird bruteforce genetic algorithm thing written in C that would run for 10 minutes to achieve a ~50% compression ratio. Don't even dare to look at it now.

What I did use back then, though, was your (Gradualore's ;)) text exporter plugin for Famitracker. Thanks a bunch for that! IIRC, I ended up extending it later to be able to export an entire FTM (all songs) in one click.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Sat Feb 06, 2016 8:06 am
by GradualGames
Hahah! Amusingly, I didn't even write the text exporter plugin (unless you actually used the example sound engine it came with, which was actually a super early version of GGSound). What I did do was create a system for adding a drop-in dll plugin to famitracker. Others, starting with Shiru, created a text exporter plugin using that system. Then, rainwarrior added text export directly into famitracker. Since then I believe nearly everyone is using that, in combination with a converter tool (text to asm) for specific music engines.

Re: Implementing Original Music for Nintendo & Sega Game Dev

Posted: Sat Feb 06, 2016 10:58 am
by miau
Ah, it was probably Shiru's plugin then, sorry! All I know is there's a "TextExporter.dll" lying in a plugin folder somewhere. And the plugin system might be where I remember your name from, then. Some diving into the FamiTracker source had to be done.