The album on Bandcamp is set to "Pay what you want," which means it's free unless you want to pay me.
This is a re-imagining of Mega Man 2's soundtrack using Famitracker, a NES music creation tool. With it, I can use expansion chips used in the Japanese Famicom. This album uses VRC6 and is in stereo- the Famicom (or a modded NES) could play these, minus the stereo.
Edit: Just to mention it, I changed programs this time for the video. I was using Camtasia before, but it doesn't properly support 60FPS and I had all kinds of crazy issues with its timeline editing (want to change an audio file you've already sync'd to the video? Too bad, now you get to redo it, even if the audio is the same length/size).
Instead of that, I switched to AviSynth, which was a lot easier overall. I've done a fair amount of programming so the interface wasn't really that difficult to get used to. I eventually made a template where I could just type in a bunch of frame locations and the different scripts would handle the code automatically. This was great until I had to render the actual video to a file. Upon loading, it took 900MB of RAM, causing it to crash anytime any encoding happened. First I tried to switch to x64 vdub+avisynth, but that crashed for different reasons than memory errors, so I had to optimize my avisynth code.
Here's a fun tip I didn't realize: Every time you use aviSource(), it takes up a lot of RAM- like 50MB, I'm guessing. I had it set up so that every script called this from the importer script, then returned their own video variable which was then "aviSource'd" into the master file for that level, which was then "aviSource'd" into the master file for the entire project. The x64 version of avisynth+vdub showed how inefficient this was- for each of those calls I did, it spawned a new xvid decoder. It was spawning over 100 instances for the master file. I had to rewrite every level to just use variables within one big file, and this reduced the calls to maybe 15 - still a lot, but instead of 900MB it would take 275 or so.
The final weird hurdle was an odd memory leak during playback or compression of the avisynth stream. Every second it would take up another 2-3 MB and eventually crash. Found out that the "experimental" build fixes this - the last "stable" build is from 2008, even though it's far less stable. You'd think 5 years of development and bugfixes might warrant a new release, but apparently not!
I'd probably use avisynth again, especially with the knowledge I gained from trying to make a longer video with it. It's much nicer to use than a graphical editor if you want precision, once you've set it up.
My two nieces, Rowan (5) and Riley (3), come over to our house to play 1-2 times a week usually, and my mom (their Nana) watches them. Sometimes though, they like to go to my room, where they hammer out tunes on the keyboard and get me to go play with their Legos. One time though, I was playing my NES, and they were both pretty interested- Rowan wanted to play and Riley seemed OK with just looking at the colors on the screen, so I started Rowan playing Super Mario Bros (1).
"Why would you want to start with Mario 1?" you might be asking. I had actually thought this through before. I figure that if they were started on newer games, like New Super Mario Bros for Wii, a couple of negative things would happen. First, that game is significantly more complex and would add time to the learning curve for a girl who had never played a platformer before, much less any video game not on a touch-interface / tablet. Second, the newer Mario games always have nostalgic little callbacks to the older games that newer gamers probably miss, and third, if you start people off with that style of graphics, they may not appreciate any previous games as much because they look "worse." That last one kind of stuck with me; if she played a later game first and this happened, she'd have nothing to look forward to past the newer 3D mario games. If she started with the original game, now there are 15+ sequels she can play after that, each one changing the formula a little and adding to it.
I had tried to get Rowan to play this when she was 2 1/2 but she couldn't grasp the significance of what was happening onscreen, just that she could push a button and make Mario jump. I figured that she'd have to wait a couple more years before "getting it," and I also didn't want to try to make her play it before she felt ready.
I started up the game and pressed "start," then handed her the controller. She ran into the first goomba immediately. "That's ok, she doesn't really know the controls," I thought. I showed her how to jump, and that she could jump on enemies. Then I had to show her that she could hit "?" blocks, and that some of them had powerups/mushrooms and some just had coins. Then to explain what the mushrooms DID and why you'd want to get one ("no, they're not the same as goombas, they're good mushrooms"). She also doesn't have a lot of hand-eye coordination/timing built up because she's never really played games that require those things. Man... I didn't realize how much work this would actually be. We take a LOT for granted once we learn things.
Occasionally she'd hand me the controller so she could see how I played. I didn't really teach her how to run because the game doesn't really require that yet (not until later stages), and it was already a big learning curve on top of that. After a large amount of deaths to enemies and falling into pits.. suddenly she had beaten 1-1 and was on to 1-2. She can now play about half of 1-2, but she can't make it over some of the pits in that stage.
She definitely surprised me a couple times. Her dad picked her up later that day, and while she was playing, one of us mentioned to the other that Big Mario can break blocks, which she overheard and just started doing on her own. She intrinsically knew that stars were good (props to Miyamoto there) and also figured out how to go down pipes, though she was a little freaked out the first time she saw that (it makes the same sound as when you get hit after being big; maybe she thought that's what was happening).
All of this has made me realize something - she started out initially trying to approach the first stage as a memory game, kind of like any one of the edutainment games she was playing on iPad at the time. Gotta remember that this goomba is HERE, gotta use the same strategy every time, gotta get the mushroom that is in this specific "?" block, but not explore and see other "?" blocks. Eventually she started to branch out a lot more. Videogames kind of make you do that, at least good ones, because you will get similar situations (it's a goomba!) but in different environments (there's only 1 block to move in, how do I kill it without getting hit?) It makes it interesting to watch and see how a kid learns this stuff for the first time. Hopefully she'll learn even more in the next few months. Maybe I'll get to see her beat the entire game one day.
Oh and the 3-year-old? Press right -> die. Repeat. Forever. She still has a lot of fun watching Mario die though!
Note: I originally wrote this as a Quora answer, but thought it would also fit here.
Original question: "What is it like to compose chiptunes and how is it different from composing music using traditional instruments?"
There are a lot of answers to this question, so I hope I don't skip any of them! I'm going to use the NES as my example as it is the system I am most accustomed to. This answer is going to assume you're writing chiptunes for hardware and not "fakebit," which is where you use one or more VSTi to simulate the chiptune sound.
- Limited channels
Chiptunes/8-bit consoles have a limited number of channels they can play music on, and each channel can usually only play one note or sound at a time, barring some tricks on certain hardware. For example, the NES has 5 channels- 2 pulse (square) waves, 1 triangle, 1 noise, 1 DPCM (1-bit sample). The video below does a great job of showing these channels and what they are capable of:
The fact that you only have 3 simultaneous melodic sounds playing at once changes how you compose. Want to do a 3-note chord, a melody in the foreground, and some bass? You have a couple choices, generally you can either simplify your composition or you can make one of the channels do more work to sound like multiple notes. You can achieve this by either using a high speed arpeggio, low speed arpeggio (sequence of repeated notes), countermelody.. the list goes on.
A lot of people don't like high speed arpeggios since they can sound pretty grating - they can run at 60hz (one note per 60th of a second), but you can change it up as much as you want, down to 30hz or 20hz, etc. I used to rely entirely on high speed arpeggios in my compositions early on, since I wasn't used to reducing my compositions and having them still sound nice. I went through a phase where I stopped using them entirely, and now I use lower-speed arpeggios instead. These generally sound better, especially if you layer them with both channels.
Some chiptune formats aren't as limited as the NES, for example, the Famicom (Japanese NES) can have expansion chips added to it for more channels. There are other more limited machines as well, too many to list here.
- No automatic/applied mastering effects
Since chiptunes are, by definition, made up of simple waves, they have no way of adding reverb, chorus, etc to their sounds in the traditional sense. The C64 has some post-processing effects/filters but not in the same sense as modern music-making programs. If you want these effects, you will need to write them into the music yourself. There are a lot of different tricks that allow you to do this (basically you're tricking your ears into hearing something that's not there). One effect that many chiptunes employ is echo. There are 4 major ways to make echo sounds:
1) Have a channel play a melody, and have a second channel play the same melody but delayed and at a lower volume:
The advantage to this method is that it sounds most correct to the human ear, and sounds the fullest because it is most similar to how reverb sounds. The disadvantage is that it wastes a channel - only a single melody (or harmony) can be playing when this effect is used.
2) Single channel echo with volume:
The harmony sound in the background is playing a note, then silencing itself, then playing the note again at a lower volume. This sounds more choppy than the above method but does not waste a channel. With any single-channel method, you are effectively shortening the note's duration to provide the echo effect.
3) Single channel echo with repetition / volume:
This method works for longer notes, but I've found that it's harder to do with more rapid note runs, as you won't have time to repeat the same note in its time frame.
4) Single channel echo with note recall:
This method usually sounds the smoothest (for single channel) and does not waste a channel. This is usually best for shorter-length notes, since you are changing the note lengths. Using this with longer notes is possible but the "echo" is not playing the same note as the actual "note" part of the time frame, so it might sound a bit out of place.
Another effect, chorus, is done by playing the same notes on 2 channels but detuned slightly. This does waste a channel, but it can sound pretty cool:
- Limited sounds
This one might sound obvious, but you are limited to the capabilities of the chip itself. With the NES, that's 2 pulse channels with 3 sounds (duty cycles) each (12.5%, 25%/75%, 50%), the triangle wave, noise, and the sample channel, which can play back lo-fi (1-bit) samples. Despite this you can get some pretty interesting sounds by trying out duty cycle changes and octaves with channels, for example:
The higher notes sound pretty close to a clean electric guitar, even though it's just the same 2 pulse channels that are in any NES music. If you get into writing chiptunes, this is part of the fun, finding out new ways to make interesting sounds with the channels.
- The sound creation tools
For creating NES music, there's Famitracker and PPMCK. Famitracker is fairly easy to use, as it is based on other trackers' design, the notes are laid out on a grid-like sheet that scrolls down as a representation of time. PPMCK takes text code and translates it into NES executable code- generally Famitracker is music easier to use. The software used will differ between each different chiptune platform, though generally trackers are preferred due to their ease of use and flexibility. To show an example of a tracker, here's a song of mine in Famitracker:
- 60hz operation
While it's not a strict limiatation in all cases, most chiptunes run at 60hz (or 60 frames per second) since videogames also ran at 60hz. You can go faster, but at the expense of performance of the machine - if you want to run a demo with graphics at the same time, a 60hz song won't cause much slowdown, but a 240 or 360hz one might.
Writing at 60hz imposes some limitations:
1) The BPM (beats per minute) your music is at needs to be dividable into multiples of 60hz. For example, a BPM of 150 has 6 frames per 32nd note, so 32nd notes sound fine; however a BPM of 120 has 7.5 frames per 32nd note, so the system has to alternate between 7 and 8 frames, making the notes sound uneven when played back. Generally "safe" tempos are 90, 112.5, 128.5714 (7 frames per 32nd), 150, 180, 225, etc.
2) You only have so much time between notes for effects like pitchbending, vibrato, etc.
That's all I can think of for now; hope this answer is helpful if you're just getting into chiptunes! read
I've been looking into trying to get into game music for awhile now (and even into making games myself). I started writing music specifically for a video game around 2009, but that project is now on hold. I've written original music for 6 indie games so far, and only one of those has been released (1001 Spikes) - so I was getting a bit annoyed with the whole idea of doing game music 2 years ago. That's when Tyrone Rodriguez of Nicalis contacted me. He was asking about working on 1001 Spikes and got me to do some really short incidental music for logos at the time. I was pretty happy about that as Nicalis is an established video game publisher/developer and would probably not put a game on "indefinite hiatus" like every other project I'd been a part of. Unfortunately I was still pretty busy at the time, so I made a couple demos but really didn't get started on writing music more actively until December (before that I was working on Mega Man 3 Remade, plus working 2 jobs).
The first demo I worked on was track 1 of the album - the theme they eventually used for the 1001 Spikes loading screen on the Wii U, which is a remix of the title theme. I also did a nearly identical replication of the original 1000 Spikes main theme.
Since that time I'd gotten a new keyboard, a Yamaha YPG-635 for pretty cheap at a pawn shop, which replaced my old Casio CTK611. I didn't really enjoy playing the Casio as the keys were way too sensitive, so having a weighted 88-key keyboard has been nice. To write new music, I usually just mess around on it for an hour and record it. If anything happens to sound good, I'll flesh it out, then transfer it to Famitracker. Sometimes I write melodies this way, sometimes I piece those together in my head and sometimes they just come to me naturally.
Started more actively writing music in Nov/Dec 2013 - I'm pretty sure that's when I worked on the remixed "key versions" of the World 1-5 songs. Then I went to MAGFest and played my first "set" (it was pretty small-time and kind of a walk-in thing) so nothing happened for a few weeks. Then we adapted one of the soundtracks I had worked on before that fell through (Tower of Nannar music) to 1001 Spikes, and they used a couple tracks I was just working on that weren't related to any games as title screens for the alternate game modes.
Nicalis was pretty easy to work with and listened to suggestions, which was great. I even got in some bug testing work because I found a bunch when I was just messing with the game (I love platformers like Mega Man etc, so I was playing it a LOT at that point). I also have done programming work so I knew what to look for in some cases. In 1001 Spikes I'm credited as my real name as a tester but as RushJet1 for music.
Recently, after the game's release, they got me to write 3 more themes for Antarctica and replaced the level 6 song with a remixed version. Working on those was a lot of fun; I like writing originals more than remix/covers in general and hope that I can do more of those in the future!
Oh, and in case you're wondering, I didn't release the NSF of the soundtrack for a few reasons:
1) There's no real coherency as to which expansions I used - some are VRC6, some is just plain 2a03, some is MMC5, some is FDS.
2) There are at least 15 different FTM files all with several songs in them, most are duplicates. I was really sloppy with the sources and I'd have to spend a crazy amount of time making sure the correct ones were used.
3) Several of the songs use stereo and would sound wrong in NSF format unless you use the same settings I'm using
I'll try to make it more streamlined next time around.
As with any major project, there were several unused songs. A lot of these were just me goofing around or doing more than necessary, and some of them were turned down in favor of other ones (for example I'd write 2 songs as an idea for stage music and they'd choose 1). You can hear the unused music here: Soundcloud: Unfinished 1001 Spikes Musicread
OK so people said they might want to see me write things based on chiptune stuff. Here you go. Hope it's not too haphazard etc.
Hello, I'm RushJet1, and I write chipmusic. I've been writing NES stuff for about 10 years now, and have dabbled in Master System, Game Boy, C64, Spectrum, and Amiga music during that time a bit, but usually the focus is more on NES/Famicom music.
The NES has 5 main channels for audio, each of which can be doing one thing at a time at any given time. The first 2 channels are square waves, which have the same functionality as each other. These usually are used for melody and harmony in most games. The third channel is the triangle, which is usually used for bass. Fourth channel is the noise channel, which plays white noise and is usually used for sound effects and percussion, and the fifth channel is the DPCM, which is 1-bit sample playback. The DPCM channel is not used in a lot of games due to its higher memory use for the sample storage. Here's a good visual/audio explanation of these channels:
If you're into chip stuff and are just learning about it, watch Explod2a03's other chiptune explanation videos.
The fact that there are 3 channels that can output actual melodic tones means that only 3 notes will be playing at any given time, which means either you can base your composition around that, or you can use tricks to accommodate your composition and simulate more channels.
The main tools I've used are MCK and PPMCK (which are text-based and use a language called MML), and FamiTracker.
MCK/PPMCK are pretty user-unfriendly, and even for a person like me who got really good at it, it was pretty limiting and took too long to write really complex music. The most effects-heavy thing I did in MML actually took a lot of work because of how the music is written out, and trying to make sure all the different channels stayed in sync.
[edit: ok apparently all tags and font sizes in this thing work in the preview, but not in the published blog. gg]
A o5 MP9 q6 @vr17 @@r22 @@21 SD1 c<b>c8<g8a-8>c<b>c8d8<g8>c<b>c8d8<fga-gb- q8 SM v7 @1 a-48 b-48 a-48 @v31 q6 SMOF @@21 gf v3 SM q8 gf @v31 SMOF q6 @vr16 >gf+g8c8e-8gf+g8a8d8gf+g8a8cd SDOF e-4 SD1 dc<b-8>e-de-8<g8a-8>
A fe-f8<a8b-8>gfg8<b8>c8de- SDOF f4. SD1 e-dc<b-a-g
A l8 f>a-gfe-de-f<b>cd<b>cg16f+16gd SDOF q8 e-8 < PS o4 g+16 > v3 e-8 < PS g+16 > @v31 q6 SD1
A l16 e8 f8 fef8 c8 q8 SDOF d8 PS<g> v3 d8 PS<g> SD1 @v31 q6 d8 e-8 e-de-8<b-8>c8 e-de-8 f8 <b-8> e-de-8 f8 <a-b-> SDOF c4 SD1 < b-a-
A ge-fga-b->c d e- d c d e- f g a b-< f g a- b- >c d e f e- d e- f g a b >c8<bagfe-d c<g>e-<g>d<g>c<g>
This is just the melody track from 1:14 to 1:39 in that link above - and this is with the added PPMCK shortcuts that drastically cut down on how much you've got to type. Without PPMCK this would easily be 4 times longer. This is partly why I switched over to FamiTracker. The other main reason I did that was because a lot of group projects from other artists were being made in FamiTracker. If you still want to look into PPMCK, go to mmlshare, where people upload their PPMCK music as text files and the site converts it to NSF format. Some great things are on there.
If you were to want to start writing chipmusic, It's usually easiest to go with FamiTracker. Danooct1 made a pretty good Famitracker tutorial that can get you started. Basically since everything is visually represented, you don't have to worry about note lengths and different channels lining up. I also have a video of me writing a short 2-frame song that was kind of meant as a "show people famitracker" thing more than a tutorial, but you can check it out anyway to see how I write music. It's definitely not my best composition but it's OK for being written on the spot, I think.. maybe I'll do more of these in the future.
ULTERIOR MOTIVES TIME
Oh, and I released another Mega Man cover playthrough thing. It didn't get posted here yet so Bandcamp Link and youtube:
I also plan on doing a bloopers video because there are a lot of absolutely stupid bloopers, not limited to: falling through the googly-eyed platform enemies to my death, jumping between two platforms for 30 seconds trying to make a jump, countless bottomless pit deaths 2 seconds after a couple stages started... there are a bunch of dumb moments that I need to compile :X read
About RushJet1 One of us since 9:40 PM on 02.26.2012
HI I WRITE CHIPTUNES
OK so I figured I should expand on this. I write NES music mostly but occasionally other chiptunes. I also live in Georgia, have 2 jobs (one of which is an IT job that causes crazy amounts of stress and the other is a boring but predictable work-on-your-own-time job) and I have a black lab who is a serious attention whore.