It is currently Tue Oct 17, 2017 2:48 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 71 posts ]  Go to page 1, 2, 3, 4, 5  Next
Author Message
PostPosted: Mon Jan 17, 2011 12:28 am 
Offline
User avatar

Joined: Mon Jun 21, 2010 10:23 pm
Posts: 162
Location: Seattle, WA
Hello,
I thought I'd share something interesting with all of you. I have talked to countless NES composers and they've told me how they wrote their music. I'll share them with you guys:

Composer(s) - Program

Akito Nakatsuka - Family BASIC
Alberto Gonzalez - Compact Editor (ZX)
Barry Leitch - MODTracker (Amiga)
Brad Fuller - Hex Code
Charles Deenen - Hex Code
David Hayes - Cakewalk
David Warhol - Cakewalk
David Wise - Hex Code
Earl Vickers - Hex Code
Ed Bogas - Atari Music Studio (Atari ST)
Elliot Delman - Digital Performer
Frank Klepacki - Dr. T (Amiga)
Gavan Anderson - Hex Code
George Sanger - Digital Performer
Hirohiko Takayama - Hex Code
Hirokazu Tanaka - Family BASIC
Jeroen Tel - Hex Code
Jonathan Dunn - Hex Code.
Kinuyo Yamashita - Hex Code.
Koji Kondo - Family BASIC
Mark Knight - CuBase (Atari ST)
Mark Van Hecke - Dr. T (Atari ST)
Marshall Parker - Hex Code
Neil Baldwin - Hex Code.
Paul Webb - Hex Code
Paul Wilkinson - Cakewalk and Hex Code
Paul Webb - Hex Code.
Rob Wallace - Digital Orchestrator
Russell Ginns - Mastertracks (DOS)
Steven Samler - Digital Performer
Tania Smith - Hex Code
Zap Ajisai - Music Maker


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 17, 2011 12:50 pm 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7224
Location: Chexbres, VD, Switzerland
Well personally I prototype with Cakewalk and convert it manually to .db statements (that you call hex code).
With appropirate definitions, this is not too much a pain.

Of course I could also write a MIDI->binary converter but it would take at least as much time.

PS : You really TALKED to all those guys ?

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 17, 2011 1:41 pm 
Offline

Joined: Mon Sep 27, 2004 2:57 pm
Posts: 1248
Wow, that's absolutely fascinating! The composers that used Family Basic, I wonder if they also wrote their engines with it, or just used Family Basic as a front-end for composing. (Or maybe the music engine was built into Family Basic? :o)

Heh, if you'd like, you can add me to that list -- I compose using raw hex code, and then I rely on my assembler to insert pointers (for jumping, looping, etc).

Sometimes, I'll "sketch out" a song using any number of tools (ModPlug, FLStudio, etc) before converting it to my engine, but most often, I'll simply compose directly in hex, assemble the music engine + data to an NSF file, and hear my work from that.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 17, 2011 2:21 pm 
Offline
User avatar

Joined: Mon Jun 21, 2010 10:23 pm
Posts: 162
Location: Seattle, WA
Bregalad wrote:
Well personally I prototype with Cakewalk and convert it manually to .db statements (that you call hex code).
With appropirate definitions, this is not too much a pain.

Of course I could also write a MIDI->binary converter but it would take at least as much time.

PS : You really TALKED to all those guys ?


I would love to have a MIDI>NES converter. David Warhol has one but he's too lazy to try getting the disks to run. Every time I've asked, he's given me some excuse.

I talked to about 95% of those guys. Hirokazu and Koji and a few others I haven't found a way to get a hold of. The rest of them I've got a hold of on Facebook.


Drag: Have you tried ripping those GBS files for me yet? Haha.
If you have done music for a game then I'll put on you there, though I'd prefer your real name on the list, but if you don't want that, that's fine. I wrote music for an NES game too for Gil-Galad. I'm just not sure if he's actually going to try and complete the game or not.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 17, 2011 2:36 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19084
Location: NE Indiana, USA (NTSC)
Doommaster1994 wrote:
I talked to about 95% of those guys. Hirokazu and Koji and a few others I haven't found a way to get a hold of. The rest of them I've got a hold of on Facebook.

Did they say anything for or against fan remixes like those heard at ocremix.org?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 17, 2011 3:22 pm 
Offline
User avatar

Joined: Mon Jun 21, 2010 10:23 pm
Posts: 162
Location: Seattle, WA
I've never asked them about that.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 17, 2011 4:54 pm 
Offline

Joined: Mon Sep 27, 2004 2:57 pm
Posts: 1248
Doommaster1994 wrote:
Drag: Have you tried ripping those GBS files for me yet? Haha.

Oops, I finally got around to it just now. :P
Doommaster1994 wrote:
If you have done music for a game then I'll put on you there, though I'd prefer your real name on the list, but if you don't want that, that's fine. I wrote music for an NES game too for Gil-Galad. I'm just not sure if he's actually going to try and complete the game or not.

Hmm... I'm not sure if I'm ready to have my real name on the internet just yet. At any rate, I still have yet to complete a game that uses music I wrote, so I guess I'll hold off for now. :P


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 26, 2011 6:45 pm 
Offline

Joined: Fri Sep 22, 2006 9:52 am
Posts: 160
Location: philly
Sweet list! You've found a lot more than I have. :)

I was interesting in putting something similar together, something written in layman's terms to give a basic understanding of how NES music was made to someone who's curious but not already knowledgeable.

http://theshizz.org/forum/index.php?/to ... -was-made/

Sorry for the huge post, but I figure I might as well copy/paste it here.

- - - - - - - - - - - -

1 - Neil Baldwin
2 - Alberto Gonzalez
3 - David Wise
4 - Tommy Tallarico

1. Neil Baldwin - link
Composer of Magician, James Bond Jr, Lethal Weapon 3, Ferrari Grand Prix Challenge, The Jungle Book, Dropzone, and Hero Quest + Erik the Viking (both unreleased).

In short - He wrote most everything out in text files that were subsequently compiled with Eurocom's own 6502 assembler. A Yamaha keyboard and graph paper were some of the physical tools that assisted in the composition and transcription process, although the keyboard was in no way actually interfaced with the system.

Detailed explanation-

Quote:
NB: There were no tools to speak of so everything was entered as numbers in the assembler/editor. Later on I turned the numbers for command codes into macros to make entering and reading the sequences of notes a little easier but that's as sophisticated as it got. I worked out tunes on a little Yamaha keyboard and typed in the pitches and durations. Often I'd work out timings on some squared graph paper, mostly by trial and error.

- - -

Dennis: 'My big question is what kind of software you eventually fell into using, and if it resembled a tracker of any sort?

NB: All of my music was entered in text files and compiled with our own in-house 6502 assembler. I'd messed around with tracker-style programs on the Amiga but it's not a format that I ever really got on with. I did write some simple MIDI-to-text utility later on but it's use was very limited so 90% of the time I just typed everything in.


Further anecdotes on working with the NES-

Quote:
NB: We had no development hardware just half-a-dozen Famicom consoles and a badly photocopied hardware specification that was 99% written in Japanese! What we lacked in resources, we clearly made up for in boundless determination.

Luckily for us, our parent company (at the time) employed the skills of a really talented electronics engineer, Richard Alton, who managed to reverse engineer (and build) some flash-ROM cartridges and together with an old 6502 editor/assembler, "PDS", we had ourselves a rudimentary development kit!

I remember myself and Tim Rogers (now Technical Director at Eurocom) visiting the languages department at Sheffield University with the photocopied Japanese NES manual and with the help of two Japanese girls we deciphered a lot of the technical information. They're uncredited in the history of Eurocom but looking back, I'm not quite sure how we'd have progressed without their help!


2. Alberto Gonzalez - link
Composer of Asterix and The Smurfs.

In short - He wrote his own tracker for the ZX Spectrum, titled Compact Editor, and sequenced out the basics of the music (notes, lengths) on there. Then after it was converted to source code most of the percussion, instrument details, and other nuances were all done in a plain text file. Data was transferred across platforms using a piece of hardware known as the P.D.S.
http://www.worldofspectrum.org/infoseek.cgi?regexp=^P.D.S.$&pub=^P.D.+Systems+Ltd$&loadpics=1

Image

Image

Detailed explanation-

Quote:
B: Wait, so you even wrote NES music, for example, on the ZX Spectrum! Tell us a little bit more about your program Compact Editor, and how it basically functioned. Was it capable of tracking / composing a complete song from start to finish for the rest of your non-ZX 8-bit soundtracks?

AG: Compact Editor was a simple music sequencer, based on tracks, blocks, and instrument definitions, inspired by some Amiga computer trackers like NoiseTracker. A complementary PC program named “The Sourcer” was used to transform the binary data created with Compact Editor into raw source code, as a text language that I could understand (basic notes, lengths, etc). This way I could then edit the songs into its fullest detail.

- - -

AG: My entire process of making music for 8 bit consoles can be elaborated as such- First I used the Compact Editor to compose the basic idea of the song, with its different parts. Later the song was transformed into source code using The Sourcer, and then as a plain text file I put the small details and riffs into the song, as well the drum track and the final sound for each instrument. This process was done by changing the source code, compiling, sending it to the console, listening, and so on again and again until it sounded as I intended (or I ran out of time!). Finally, if required (most of the time), the compression stage took place, which consisted of finding and reusing small fragments of the song to make it use the least amount of memory possible.

Many times I adapted the sound driver for each game, adding new commands and effects, drum sounds or whatever. It was an evolving thing. I don’t know how the other musicians did their soundtracks, I’m still wondering, but don’t think it would be much different.


Further anecdotes on working with the NES-

Quote:
AG: ... The NES had something special. The triangle wave channel was a good source for percussive sounds and boomy basses, although it wasn’t very usable for other kind of sounds. I really enjoyed doing the music of Asterix & The Smurfs. Solstice by Tim Follin was my inspiration at that time. I had to learn 6502 and I liked it much more than I would have imagined.

AG: ... When I was writing Asterix for the NES and learning the sound chip, I didn’t find information about the right frequency values to use for the notes (the frequency table), and the values of my Game Boy driver didn’t work. So what I did was create a small program for the Game Boy to play each note (12*8 notes if I remember correctly), and another program in the NES to lower and raise the sound frequency with the controller. Then I played each note in the Game Boy and tried to mach its frequency on the NES “by ear”, to find the right value for the registers. How brute is that? Well it worked, but now when I listen to my NES soundtracks I notice that some notes are a bit out of tune.


3. David Wise - link
Composer / Sound Design for Battletoads, Wizards and Warriors, Marble Madness, Ironsword, Taboo: The Sixth Sense, Pin-bot and many others. http://en.wikipedia.org/wiki/David_Wise_(composer)#1987

The explanation is a bit short to summarize, so I'll skip the 'in short' here and go straight to the quote-

Quote:
OCR: What was the first week on the job like?

DW: Good - interesting. Video games were still in their infancy, and learning that the sound chip on the NES - the Nintendo Entertainment System - was somewhat compromised, compared to a Roland D-50, certainly made things challenging. But I like a challenge!

OCR: What was the most difficult thing to learn?

There was no MIDI, instead, notes were entered data style into a PC. I typed in hex numbers for pitch and length and a few commands for looping subroutines. And this method of writing video game music continued right through to the end of the SNES development.


4. Tommy Tallarico - link 1, link 2
Composer for Color a Dinosaur (NES), as well as many more post-NES soundtracks.

In short - Working with a limited sound driver, and approaching the NES from more of a musical background than a programming one, Tallarico used a midi (.mid) -> ascii (.asc) converter. The converter was programmed by Virgin vice president Dr. Stephen Clarke-Wilson. Music was initially sequenced with Cakewalk. The sounds were edited and finalized using a custom NES cart- a gutted copy of what was formerly a test version of Golf Power, replaced with "Tommy T's Play Me Sound Editor"-

http://www.youtube.com/watch?v=XoD0ERZntFI
(note that the video is about the discovery of the item, which is why the speaker didn't know much about it at the time)

Image

Detailed explanation-

Quote:
TT: I had never done music and sound fx for an NES game before...

The sound driver for the NES was horrid!! Before the G.E.M.S. tool for the Sega Genesis you pretty much had to be a computer programmer in order to do sound for video games, especially the NES. [Dr. Stephen Clarke-Wilson] who was not only a talented musician and programmer in his own right created a small conversion program in Cakewalk which enabled midi files (.mid) to be converted to ascii (.asc) files. With .asc files I could get the NES to sound like something as long as I stayed within the proper note ranges. As far as sound fx went I could tweak a bunch of numbers and make some interesting albeit annoying sounds...

I created the simplest midi files I could in the time I had and ran them through the midi to ascii converter...

There were all sorts of tweaking tricks one could do to get it to sound “not horrible”. Composer/programmers could write their own tools and incorporate things like vibrato and pitch bend. I mean lets face it the most memorable and popular songs in the entire history of the video game industry were created and performed on the NES! Of course I’m talking about the music from Mario Bros. Well, when it came to the NES I was no Kojii Kondo!! Especially considering I had a beat up piece of crap audio driver and a day to learn it and compose for it.


Further anecdotes on the NES sound editor-
Quote:
TT: I saw the pics of the carts in a forum. Yeah... those were my carts from almost 20 years ago. And the "Tommy T." label is my handwriting. The "Golf Power" was an old cartridge casing that I erased over... I was a game tester for Golf Power so when the game was completed I used the cart to put an NES sound engine on it for when I was working on Color A Dinosaur!

- - - - - - -
:D I realize some of the links don't work right on this forum. That's ok.


Top
 Profile  
 
 Post subject: Emulator
PostPosted: Thu Feb 03, 2011 3:28 pm 
Offline

Joined: Thu Jan 27, 2011 2:13 pm
Posts: 3
Hey all, I am working on an emulator (on an XMEGA128) and right now I am doing sound. The DMC specifically. Does anyone have a short sample I can test with?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 03, 2011 5:53 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19084
Location: NE Indiana, USA (NTSC)
Grab samples out of your Windows directory, use Audacity to convert them to 33500 Hz mono, and run them through this converter.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 03, 2011 7:12 pm 
Offline

Joined: Thu Jan 27, 2011 2:13 pm
Posts: 3
Tnx. I didn't know you could do that!


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 04, 2011 12:53 pm 
Offline
User avatar

Joined: Fri Feb 04, 2011 12:06 pm
Posts: 21
Location: Barcelona / Spain
Nice thread :)

Hi everyone! I thought I could share some vintage chiptune code with you.

This is the source code for the NES Game Over song of Asterix. All was written with macros. Each macro corresponds to an hexadecimal value or chunk of assembly code, this way it was much easier to program since you could write real words that had some meaning, instead of numbers and raw assembly code.

-------------------------

Code:
GAMEOVER   INCHA   GOMEL
   INCHB   GOCHRD
   INCHC   GOBASS
   RTS


GOMEL   DW   GOMEL1
   DW   0,GOMEL

GOCHRD   DW   GOCHRD1
   DW   0,GOCHRD

GOBASS   DW   GOBASS1
   DW   0,GOBASS

GOBASS1   DB   L10,VIB,0,4,5,TRA,-2
   PERC   10,GOPERC
   DB   L40
   DB   a1,__
   DB   __,g1
   DB   e1,__
   DB   __,e1

   DB   a1,__
   DB   __,g1
   DB   e1,__
   DB   __,g1

   DB   d1,__
   DB   __,d2
   DB   a1,__
   DB   __,a1
   DB   d1,__
   DB   __,d2
   DB   e1,__
   DB   gs1,B1
   DB   XM

GOCHRD1   DB   L10,SENV,$D1,3,$64,W1,EF1

   DO2
   DB   P9,a2,P3,c3,e3,a3,c4,a3,e3,c3
   LOP
   DO2
   DB   P9,e2,P3,g2,b2,e3,g3,e3,b2,g2
   LOP
   DO2
   DB   P9,a2,P3,c3,e3,a3,c4,a3,e3,c3
   LOP
   DO2
   DB   P9,e2,P3,g2,b2,e3,g3,e3,b2,g2
   LOP
   DO2
   DB   P9,d2,P3,f2,a2,d3,f3,d3,a2,f2
   LOP
   DO2
   DB   P9,a2,P3,c3,e3,a3,c4,a3,e3,c3
   LOP
   DO2
   DB   P9,d2,P3,f2,a2,d3,f3,d3,a2,f2
   LOP
   DO2
   DB   P9,EF5,e2,P3,gs2,b2,e3,gs3,e3,b2,gs2
   LOP
   DB   XM

GOMEL1   DB   L10,SENV,$39,5,$90,VIB,20,1,4,W1,REL,5,$02
   DB   e3,__,a3,__,c4,__,__,__
   DB   __,NN,a3,b3,c4,__,d4,__
   DB   b3,__,__,g3,e3,__,__,__
   DB   __,__,__,__,__,f3,e3,d3
   DB   e3,__,a3,__,c4,__,__,__
   DB   __,NN,a3,b3,c4,__,d4,__
   DB   b3,__,__,a3,g3,a3,b3,__
   DB   __,__,e3,__,__,__,f3,g3

   DB   a3,__,__,g3,f3,__,e3,f3
   DB   __,__,e3,__,d3,__,c3,__
   DB   d3,__,e3,__,e3,__,d3,e3
   DB   __,__,__,__,__,nn,f3,g3
   DB   a3,__,__,g3,f3,__,e3,f3
   DB   __,__,e3,__,c4,__,b3,__
   DB   e3,__,e3,__,d4,__,c4,__
   DB   c4,__,__,__,B3,__,__,__
   DB   XM
 
GOPERC   DB   1,0,6,5,2,0,6,5
   DB   1,0,6,5,2,5,1,5
   DB   END


If there is enough interest I could write some comments and details about what does all that code mean. :)

Cheers,
Alberto


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 05, 2011 2:51 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7224
Location: Chexbres, VD, Switzerland
I do the exact same in my unfinished project, I use .db statements but with definitions instead of using plain hex numbers. In the end it looks like that :
Code:
SucessTri
.ifndef PAL
   .db SetTempo, $88
.else   .db SetTempo, $a3
.endif   .db SetAttack+6
   .db Duty
   .db SetVolume+2
   .db SetSustain
   .db SetRelease
   .db SetOctave+4
   .db DblCr+Mi, DblCr+Mi, DblCr+Sil, DblCr+Mi, DblCr+Sil
   .db DblCr+Solb, DblCr+Sil, DblCr+Lab, Bl+La
   .db Stop

Of course if you don't understand french you won't understand it, but the notes are called Do Re Mi Fa Sol La Si instead of C D E F G A B (it's just very much easier to me to make them in my language).
So basically each .db satatement is either a command followed (or added) with an argument, or a note (or silence) added with a duration. This is just how my format works though.

PS : A second NESdev comeback from a former NES musician, that's great, welcome !

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 05, 2011 4:26 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19084
Location: NE Indiana, USA (NTSC)
Bregalad wrote:
the notes are called Do Re Mi Fa Sol La Si instead of C D E F G A B

We have Do Re Mi in English, except they're relative to the key in which the piece was written.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 05, 2011 4:58 am 
Offline
User avatar

Joined: Tue Apr 28, 2009 4:12 am
Posts: 469
While we're throwing our hats in the ring, here's a 'sequence' from Nijuu. The principles were very similar to my old NES drivers back in the day;

Code:
S14   I 8
   SI DCM_MODE,NOTE_LOOP
   SI DCM_SPEED,1
   SI DCM_START,0
   V 10
   D 16
   db C5,_,_,_,Ds5,_,_,_,C5,_,_,_,G5,_,_,_
   db C5,_,_,_,Ds5,_,_,_,C5,_,_,_,As5,_,_,_
   db C5,_,_,_,Ds5,_,_,_,C5,_,_,_,G5,_,_,_
   db C5,_,_,_,Ds5,_,_,_,C5,_,_,_,F5,_,_,_
   ES   


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 71 posts ]  Go to page 1, 2, 3, 4, 5  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: ArnoldRimmer83 and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group