Post subject: Why does NES music not use arpeggios?
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
The top-100 NES soundtracks thingie reminded me of something I have noticed before: Many of the so-called 8-bit chip-tunes use arpeggios (rapidly alternating between three or more notes) in order to kind of emulate more sound channels than there are actually available. The sound of arpeggios almost defines C64 music, and was popular in many other "8-bit" gaming computers such as the Spectrum 128 (just one example of many). However, I have noticed that almost no NES game uses arpeggios in their soundtracks. There are a few that do, but they are extremely rare. I have always wondered why. (And please; this is not intended to be a discussion on which style is "better". I'm just curious to know why arpeggios are almost inexistent in NES games.)
Joined: 10/20/2006
Posts: 1248
Probably a cultural thing. European NES composers made use of them in their music, whereas Japanese ones almost exclusively used them for sound effects. Edit: It's also important to make a distinction between ordinary arpeggios and HSAs (high speed arpeggios), which you seem to be referring to. Manabu Namiki is one of the few Japanese composers who made use of them anyway.
Editor, Skilled player (1405)
Joined: 3/31/2010
Posts: 2086
Tim and Geoff Follin made a lot of use of Arps in their sound. Not sure how much it is in comparison to average in C64 music (seeing how they were C64 composers too), but it's not like no game at all had them.
Dwedit
He/Him
Joined: 3/24/2006
Posts: 692
Location: Chicago
Among the games I own, only two of them use Arpeggios, Solstice and Kabuki Quantum Fighter. It's always up to the Sound Programmer whether to use them or not. Seems like only a few people liked using them on the NES. Mostly Tim Follin, Codemasters, Charles Deenen, Neil Baldwin, Alberto Gonzalez, and a few others.
Active player (308)
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
oh so that stupid thing is called arpeggios Just play any NES game from codemasters and you'll find them. Pretty annoying way to make music.
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself. It rests on the conviction that you — by your choices, effort and actions — have made yourself into the kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success." - Onkar Ghate
Bisqwit wrote:
Drama, too long, didn't read, lol.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Re: High speed arpeggios. Arpeggio requires more room from the ROM than no arpeggio. I can immediately think of two ways to implement arpeggio: -- List each alternating note/pitch. If it changes 40 times, list 40 notes. This increases space consumption very rapidly. -- Implement program code to perform arpeggios. Alter the music compression format in a manner that allows expressing arpeggiations. In the music decoder implement program code to detect and dispatch arpeggio commands. Both of these approaches increase the ROM size by a nonzero amount. Also, composers may feel uncomfortable working with arpeggios. Arpeggio introduces a feeling of a rapid rhythm and energy into the song, which may be not what the composer has in mind. Another factor is that compared to many contemporary systems, the NES had relatively a generous number of sound channels (and range), which allows a more natural composing workflow. The composers did not see need for arpeggio tricks; it may have been seen as unprofessional, compared to pure melodic music. Facing these thoughts, room for the music engine was better invested in vibrato functionality than in rapid-arpeggio functionality. Disclaimer: This is entirely unsourced analysis. Super Mario Bros. did use rapid arpeggios, but only in sound effects: The mushroom / grow / shrink / pipe-enter sound effects.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Bisqwit wrote:
Both of these approaches increase the ROM size by a nonzero amount.
Given that, unlike RAM, the maximum ROM size on a NES cartridge is absolutely humongous (considering when the NES was released) I don't think that's a problem. (I think some games took up to 4 megabytes. Is that the physical maximum size of a NES cartridge?)
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Warp wrote:
Given that, unlike RAM, the maximum ROM size on a NES cartridge is absolutely humongous (considering when the NES was released) I don't think that's a problem. (I think some games took up to 4 megabytes. Is that the physical maximum size of a NES cartridge?)
Well, take Rockman 1 cartridge for example (I am well familiar with it). The ROM is divided into eight 16-kilobyte banks, for a total of 128 kilobytes. The address bus from the CPU is 16-bit. (15-bit in practice, because $0000-$7FFF are used for other purposes than ROM.) Address space $C000-$FFFF is always hard-wired to bank 7. The address space $8000-$BFFF can be switched: It can be mapped to any of the eight banks. The mapping can be changed at any time, but doing so requires routing through code that is in the fixed bank ($C000-$FFFF). This is the contents of the eight banks in the Rockman 1 ROM:
  • $8000-$BFFF, bank 0: Level data for Cutman; Wily1.
  • $8000-$BFFF; bank 1: Level data for Iceman; Wily2.
  • $8000-$BFFF; bank 2: Level data for Bombman; Wily3.
  • $8000-$BFFF; bank 3: Level data for Fireman; Wily4.
  • $8000-$8FFF; bank 4: Level data for Elecman; Startup screen data. $9000-$BFFF; bank 4: Music engine; Song data; Sound effect data.
  • $8000-$8FFF; bank 5: Level data for Gutsman, End demo data. $9000-$BFFF; bank 5: Program code.
  • $8000-$BFFF; bank 6: Program code; graphics data.
  • $C000-$FFFF; bank 7: Program code; program data.
For the topic, the relevant bit is in the sound engine. It occupies the memory area $9000-$BFFF (12 kilobytes) of bank 4. The remaining 4 kilobytes of bank 4 is occupied by Elecman level data and startup screen data. The sound engine is limited to one bank for simplicity and speed. Bank switching is expensive, because it requires a lot of operations, and you can only execute about 2273 cycles of code during the NMI (majority of which is spent in updating PPU data for graphics, and during which the music is also updated for reasons of constant playback speed). Within the sound engine, the ROM space is spent as following:
  • $9000-$9990: Program code
  • $9991-$9A5F: Period table (translates a seminote index into a wavelength)
  • $9A60-$9AC5: Song and sound effect data pointers
  • $9AC6-$B897: 16 music tracks (average length: 477 bytes per song: shortest is 149 bytes, longest is 1163 bytes)
  • $B898-$BE3F: 34 sound effect tracks (average length: 45 bytes per sound effect)
  • $BE40-$BFFF: Unused (448 bytes)
Not really humongous. Sure it is not drawn to the last byte, but the space is not really wasted either. Remember that for each ROM chip they had to include in the cartridge, the ROM chip would have to be included in each copy of the cartridge sold, which increases the price. ROM was not cheap back then. For the reference, the sound engine not only has its dedicated nicely encapsulated "module" within the ROM, it also has its dedicated nicely encapsulated region of RAM. It is allocated as follows:
  • $0E0-$0F4: Various pointers and status flags
  • $500-$51E: Status for channel 1 (31 bytes).
  • $51F-$53D: Status for channel 2.
  • $53E-$55C: Status for channel 3.
  • $55D-$57B: Status for channel 4.
The per-channel status includes information such as current pointer to song data; current wavelength; various counters for e.g. vibrato, volume envelope, playback speed and so on.
MESHUGGAH
Other
Skilled player (1889)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
I heard a lot of arpeggios in various NES games, just to say famous ones: Super Mario Bros, Silver Surfer, Castlevania (3 mostly) or any games with (neo)classical music. edit: you can also search them by looking top rated guitar tabs, shredders used to nail those songs.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
I guess all Codemasters (Camerica) games have music with tons of arpegios. Tim and Geoff Follin always use them, Jeroen Tel too. Search for these composers here: http://slickproductions.org/nsfe.php What Meshoggah is talking about isn't acually arpegios, and in tabs it can be nailed as tapping (2 notes, where one or both may change during the figure, while arpegio plays mostly a 3-note chord for the whole part).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
MESHUGGAH
Other
Skilled player (1889)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
feos wrote:
What Meshoggah is talking about isn't acually arpegios, and in tabs it can be nailed as tapping (2 notes, where one or both may change during the figure, while arpegio plays mostly a 3-note chord for the whole part).
I'm talking about sweep picking/synth arpeggios mostly in my examples, to be more precise: Super Mario Bros: flag goes up, Silver surfer: main theme, Castlevania 3: stage 5? That one with a rather extended arpeggio (3-4 octaves), it has birds in the beginning of the track =D Also feos, come online on ICQ =)
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Joined: 7/2/2007
Posts: 3960
Some of this is of course going to be cultural. I don't think it's a coincidence that the systems that used arpeggios a lot were most popular in the countries where a lot of electronica/trance/etc. music originated. The Commodore 64 was huge in Europe for years after it had stopped competing in America, let alone Japan -- so you're going to see European culture more dominantly in C64 games than in NES games, and culture includes music.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
As there might be some slight confusion about what I meant when I used the term "arpeggio", it's the trick very typical in 8-bit chip music (used in systems with very limited sound hardware) of alternating very rapidly between several (usually three) notes in order to "simulate" more sound channels than there really are. Much more rapidly than what "arpeggio" originally means in classical/traditional music. This gives a very distinctive "chip music" sound quality to the music. I already mentioned this example in my original post, but here are a few more: Xenon (Spectrum 128), Commando (C64), Cobra (C64), Renegade (Spectrum 128), Ninja Massacre (Spectrum 128).
MESHUGGAH
Other
Skilled player (1889)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Warp wrote:
As there might be some slight confusion about what I meant when I used the term "arpeggio", it's the trick very typical in 8-bit chip music (used in systems with very limited sound hardware) of alternating very rapidly between several (usually three) notes in order to "simulate" more sound channels than there really are. Much more rapidly than what "arpeggio" originally means in classical/traditional music. This gives a very distinctive "chip music" sound quality to the music. I already mentioned this example in my original post, but here are a few more: Xenon (Spectrum 128), Commando (C64), Cobra (C64), Renegade (Spectrum 128), Ninja Massacre (Spectrum 128).
Much more rapidly than what "arpeggio" originally means in classical/traditional music." -> this sentence doesn't make a sense. Search for my examples and you will understand.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Active player (278)
Joined: 5/29/2004
Posts: 5712
Maybe "trill" is the more correct term? And yeah, I wasn't aware the technique was used in NES games until I saw the speedruns of McKids and Treasure Master, so that's when I figured it was only popular among Western developers. Oh, but a few songs in Final Fantasy 3 used the trills too! Now, I remember playing games for IBM PCs whose speaker could only play one tone at a time, so trilling would have been the only option for them to get any real sense of harmony at all!
put yourself in my rocketpack if that poochie is one outrageous dude
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Bag of Magic Food wrote:
McKids and Treasure Master
Those are indeed perfect examples. (Goes to show that there's no technical reason why NES games couldn't use arpeggios in their music.)
Active player (278)
Joined: 5/29/2004
Posts: 5712
Yes, and now I associate trills in NES music with horrible fast food and forgotten contests. :)
put yourself in my rocketpack if that poochie is one outrageous dude
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
What's the finest level of quantization the NES can produce music at? Can it only change the tone once per frame or more often than that, and if so how often?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 10/20/2006
Posts: 1248
Something around 16.67ms should be the smallest time unit it can deal with afaik. I'm pretty sure it has nothing to do with technical limitations. Maybe there was some weird policy by Nintendo, as they used to be quite imperialistic in enforcing certain rules/quality standards on their developers. I imagine it could have been that they just decided that developers mustn't use HSAs in their tracks because it'd distract too much from the sound effects. (God, how I miss Yamauchi and his genius) That's the most reasonable explanation other than just cultural differences that I can come up with.
MESHUGGAH
Other
Skilled player (1889)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Bag of Magic Food wrote:
Maybe "trill" is the more correct term?
I checked your examples and yes, these are trills and has nothing to do with arpeggios. I'm 100% sure that there are more games with trills than arpeggios on NES, I think that my examples also have this (except super mario)
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Patashu wrote:
What's the finest level of quantization the NES can produce music at? Can it only change the tone once per frame or more often than that, and if so how often?
The CPU runs at about 1789800 cycles per second. It takes a minimum of 12 cycles to reprogram the signal generator of one channel for a new wave length. Which means it can be done about 149150 per second. Even if it takes 10 times that (120 cycles), it's still 14915 times per second; an interval of 67 about microseconds. Of course, this is assuming that the program will do absolutely nothing else than reprogram the signal generators in an infinite sequence. Actual games usually update the sound in one of these three places: The NMI, which runs at the same rate as the framerate of the console (about 60.098 per second); the APU-generated IRQ, which is about 60.000 times per second, or in the main code after polling for the NMI flag (60.098 times per second, minus lag).
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
MESHUGGAH wrote:
Bag of Magic Food wrote:
Maybe "trill" is the more correct term?
I checked your examples and yes, these are trills and has nothing to do with arpeggios. I'm 100% sure that there are more games with trills than arpeggios on NES, I think that my examples also have this (except super mario)
According to wikipedia, a trill is the rapid alternation between two adjacent notes (either a semitone or a full tone apart). This is not the same as arpeggio, which is the rapid alternation between three (or more) notes, freely apart (usually forming a chord).
Skilled player (1637)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
Bisqwit wrote:
Actual games usually update the sound in one of these three places: The NMI, which runs at the same rate as the framerate of the console (about 60.098 per second); the APU-generated IRQ, which is about 60.000 times per second, or in the main code after polling for the NMI flag (60.098 times per second, minus lag).
Are there any games that have noticeable music slowdown due to lag? I don't remember this ever happening.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Skilled player (1404)
Joined: 10/27/2004
Posts: 1977
Location: Making an escape
I don't know if it's relevant to your question, but I do remember reading on an Iwata Asks that Miyamoto and company decided to write the music for Super Mario Brothers as one of their first things to do so that they could develop around that. Apparently the dominant practice at the time was to implement sounds and music at the end of the development cycle, which meant that sound engines were limited because the CPU was already taken up doing other tasks.
A hundred years from now, they will gaze upon my work and marvel at my skills but never know my name. And that will be good enough for me.
Active player (278)
Joined: 5/29/2004
Posts: 5712
Hmm, I just remembered that the "Balloon Trip" song from Balloon Fight uses the trilling at one point, so there's an example in an early Nintendo game. I also remembered I listened to the soundtrack for the Commander Keen game for Game Boy Color once, which used not only trills but also many rapid 3-note arpeggios throughout. Another connection I made in my random music searching today was that the first NES Bomberman's bonus stage music used an effect I read was called "tremolo", pulsing the same note rapidly.
put yourself in my rocketpack if that poochie is one outrageous dude