NerdTracker 2 BETA v2.1 official documentation v6/6/2000 by Memblers, with contributions by Damian Yerrick and sKaNkPiT Use MS-DOS edit or a 100% compatible program to view this file if you want it to look right -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- NT2 Credits Programming, NES replay code, and .NED file format by Mr. Bananmos ANSI graphic design by Phlum-Dumb -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Index: 1. Effects 2. Keys 2.a Pattern Editor 2.b Sample Editor 2.c Order Editor 3. Instrument Settings 4. Advice and Suggestions 4.a Using the Keyboard for Music 4.b Using the DPCM Channel 4.c Using the Noise Channel 4.d Bugs! 4.e Optimizing 4.f Tricks 4.g Contacts -==========================================================================- 1. Effect: What it does: 1xx Portamento up. Slides pitch up. 2xx Portamento down. Slides pitch down. 3xx Portamento to note. Slides pitch to note. 4xy Vibrato, x = speed, y = depth 7xy Tremelo, x = speed, y = depth 8xy Arpeggio Axy Volume Slide, value is the speed. x = up, y = down Cxx Set volume, maximum is $3F. (NES only has 16 volume Dxx Go to next pattern levels, though) Fxx Tempo -==========================================================================- 2. Keys: (written with american keyboard in mind, may be different on other systems) 2.a Pattern Editor: Music keys See section 4a. Space Inserts a note-off at cursor location. (bug: it works in the PCM channel on the NES replay code, but not in NT2's sound emulation) Left Ctrl+L Load .ned (Type in full filename) Left Ctrl+S Save .ned (keep in mind that backspace doesn't work right in the current beta's file loader) Right Shift Starts/Stops playing the song. ' and \ or Select current instrument. F9 and F10 F1 through F8 Set octave. (use F8 for the lowest, but the NES can't go lower than A-0 !) Numeric * or ~ Switch between pattern, instrument, and order editors. Left Shift+F3 Go to sample editor. (or Left Shift+* which works in DOS) Cursor keys Moves cursor. (hmm..) Insert Inserts blank line at cursor location. Moves all notes below cursor down. Backspace Moves cursor position and everything below it up. Delete Delete note or effect at cursor postion. Page Up/Down Moves cursor up/down by 16 steps. Home/End Moves cursor to the top/bottom of the pattern. Enter Creates temp.dat file for use with NES replay code. Escape Escape! Exits the program. 2.b Sample Editor: L load sample (Format is 1bit PCM. An 8to1bit converter is available upon request.) Numeric * switch between sample editor, notetable, and instruments. 2.c Order Editor: left/right cursor Select track. up/down cursor Select order position + and - Set pattern in selected position. space Set current position as loop-back point. insert Insert new pattern in selected position. delete Delete pattern in selected position. (bug: change track patterns to 0 before deleting) -==========================================================================- 3. Instrument Settings: Duty cycle Shape of squarewave, 4 possible settings Hold note Hold note Envelope fix Set to ON if you want to use volume effects Inst. Volume Default volume of instrument / Frequency Var. \ | Freq. ChngSpeed | These settings will be removed from future versions, | Hi to Lo | they use the NES's frequency sweep hardware \ Freq. Range / Timelength Use this if 'hold note' is turned off Arpeggio X \ Arpeggio Y | Auto-arpeggio settings Arpeggio Z / Vibrato Speed Auto-vibrato speed Vibrato Depth Auto-vibrato depth Tremelo Speed Auto-tremelo speed Tremelo Depth Auto-tremelo depth Volume fade Auto-volume fade Volume fade=UP Volume will fade up Looped noise Use to make metallic sounds with noise channel Auto portamento Automatically slides frequency down Portamento=UP Auto-portamento will go up Unlabeled 1 Reverse arpeggio (lower instead of higher) Unlabeled 2 Non-looped arpeggio -==========================================================================- 4. Advice and Suggestions: 4.a Using the Keyboard for Music: Are you not familiar with other tracking programs? Then, it really helps to know what keys correspond to notes on a musical keyboard. "Q" is C, "2" is C#, "W" is D, "3" is D#, "E" is - guess what - E. The same pattern repeats until the "P" key, which is high E. There's a bottom row too, starting at "Z" (being C) and going until "M" (being B). If you know that that there is no E# or B# (as you should anyways), the pattern is really easy to follow. I highlighted the sharp keys with a green magic marker on my keyboard, for visual reference. (Note: If you do this, don't put ink on the top of the keys unless you like your fingers changing colors!) 4.b Using the DPCM Channel: NT2 uses instruments, similar to .XI instruments in how several samples can be loaded into one instrument. You'll need to have 5 samples (with each one 1 half-tone higher than the one before it) of the same sound if you want to have a usuable frequency range from one sample. There is no instrument file saving, so the best way to save your instruments is to save them in a blank .NED. The frequency control is only *4* bits (yeesh). If sample #1 is a C note, then you should set sample #1's frequency value for C-2 (or any other octave) to $C in the sample editor. Now things start to get wierd. Set E-2 to $D, G-2 to $E, and C-3 to $F (all of them using sample #1). This is where the half-tone higher samples come in, and if you understood what I was just talking about then you can probably see the pattern that you'll need to follow. This technique should work fine, as long as sample #1 plays a C note when the frequency value is $C. It's not known if Nintendo designed certain values to be notes, or if it's just blind luck that they are. Also, it's not known if this would sound right on a PAL NES. Email Memblers at 5010.0951@tcon.net if you need more help, or have any more info. Here are some diagrams to explain NT2's PCM instrument interface. PCM Instrument Editor: ÚSample Number ³ ³ ÚSample Filenames ³ ³ (this is where you hit 'L' to ÚÄÄÚÄÄÄÄÄÄÄÄÄÄÄijÚÄÄijÄÄÄÄÄÄÄÄÄÄ· load a sample) ³ßßßßßßßßßßßßßßß³³ßßßß³ßßßßßßßßßß³º ³ ³ Inst Name ³0³sample1.dmc ³º Instrument #ÄÄÄÄÄÄ01³ ³1³sample2.dmc ³º (each one can ³02³ ³2³drum.dmc ³º contain 8 ³03³ ³3³blahblah.dmc ³º samples) ³04³ ³4³ ³º ³05³ ³5³ ³º ³06³ ³6³ ³º ³07³ ³7³ ³º ³ ³ ³ ³ ³º ³ÜÜÜÜÜÜÜÜÜÜÜÜÜÜܳÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܳº ÀÄÄÀÄÄÄÄÄÄÄÄÄÄÄÄÀÄÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÀ½ PCM Note-table Editor: OctaveÄÄÄÄÄÄÄÄÄÄÄÄ¿ 00 01 02 03 ÚÄÄÂÄÄÂÄÄÂÄÄ¿ NoteÄÄÄÄÄÄÄÄÄÄC ³00³00³00³00³ C#³00³00³00³00³ D ³00³00³00³00³ D#³00³00³00³00³ E ³00³00³00³00³ F ³00³00³00³00³ F#³00³00³00³00³ G ³00³00³00³00³ G#³00³00³00³00³ A ³00³00³00³00³ A#³00³00³00³00³ B ³00³00³00³00³ À³³ÁÄÄÁÄÄÁÄÄÙ ³³ Sample NumberÄÄÄÄÙ³ Sample Playback SpeedÙ Sample Playback Speeds: 0h C-8 1h D-8 2h E-8 3h F-8 4h G-8 5h A-8 6h B-8 7h C-9 8h D-9 9h F-9 Ah G-9 Bh A-9 Ch C-10 Dh E-10 Eh G-10 Fh C-10 Remember that any instrument settings you set for normal instruments will have no effect on the PCM channel. Effects such as volume and pitch slides, etc. can't be done with the NES's DMA method of using samples. They are stored in ROM, and are played as-is. The maximum amount sample data you can use without bankswitching is 16378 bytes. It wouldn't be too hard to write the code to do this type of bankswitching, but would depend on how the samples were arranged. Contact me if you're wanting to try something like this. 4.c Using the Noise Channel: The noise channel has a 4bit frequency range, and that means it can produce only 16 unique tones. The tracker interface doesn't have an obvious way of letting you know what notes are what, but if you keep the following points in mind, you shouldn've have very much trouble using of the noise channel. First, remember that the lowest noise frequency is the note E-1, and the highest frequency is G-2. Secondly, the tracker will play some noise when you put a note in; that sound is not the actual pitch. This problem is only on the noise channel. Play the song to hear how it actually should sound. Noise emulation isn't very accurate in emulation. Especially the 'looped' (metallic) noise. The emulator that seems closest in that aspect is the Nosefart plugin for Winamp. 4.d Bugs!: The NES's hardware has a bug, or a design feature, or whatever you would call it involving writing the high-byte of the frequency. What happens, is that if a vibrato or a portamento affects the highest 3 bits of the frequency, the sound will snap, crackle, and pop. So basically what you do to work around this is not use vibratos on some notes, and remember that it will kinda pop if you do portamentos on some notes. One game where this is noticable is Crash 'n the Boys by Technos. If you have the cartridge, listen to the .NSF first, then play the game on NES and hear the difference. Damian Yerrick looked into the matter, and sent me this: A-3 A-2 A-1 F-1 D-1 B-0 <-- Those are approximately the notes where the NES switches the high byte. 4.e Optimizing: NT2's file format works in a very optimization-friendly way. Say you want to repeat the same note several times. E.g.: E-2 1 A02 A00 ; volume slide will keep going down at speed 2 E-2 1 A00 A00 You could instead, do this: E-2 1 A02 A00 1 A00 A00 It would sound the same (*), and make the file smaller. You can also change the instrument number to do things like change the duty-cycle of a squarewave without affecting the frequency, which is good for being able to do duty-cycle or other instrument changes during note-slides and such. (*): Resetting the instrument in that way will not re-trigger a non-looped arpeggio. It also will not work if you have the Hold-Note setting turned off. You can also save some space by removing the intrument numbers from the pattern in the triangle channel. Just make sure the first note in the pattern has an instrument set. Since that will not reset the volume, it won't work on the noise or square channels if you are using volume effects. 4.f Tricks: There are lots of different ways people have gone about trying to get the most out of chip music, and a good way to learn is to download some NSF and/or SID files, and listen to each channel seperatly. For instance, you'll notice in some NES music, the triangle and noise channels work together seamlessly to provide the music with a good drumbeat and bassline. You can try making a triangle channel instrument that uses the auto-portamento effect at a high-rate, put a note in and give it a space or 2 depending on the tempo then put a note off or your bassline in the triangle channel. Using the non-looped arpeggio effect, with the first arpeggio value at $C will provide a short percussive sound at the beginning of a note. Using the noise channel along with drum samples will greatly alter the sound of the drum, with a snare sample for example you could give it a longer decay and/or a brighter quality. Try using apeggios (looped and non-looped) on the noise channel. Most importantly, try to develop your own style and techniques. That is what makes music worth listening to. 4.g Contacts: Bananmos bananmos_uv@hotmail.com for exchanging NES music and stuff related to the NT2 program itself Memblers 5010.0951@tcon.net or memblers@parodius.com for exchanging NES music, stuff related to using NT2, stuff related to the NT2 document you are reading now, creating an .NSF or .NES to play your music, and assistance with implementing the music into your own NES game or demo. Visit http://nesdev.parodius.com for more NESdev stuff Thanks to everyone who made writing this document worthwhile. - Memblers (memblers@parodius.com) -==========================================================================- -=EOF=-