-----=====[NES AUDIO TOOLS]=====-----
Here you will find: [if not right now, then soon!]
-list of available audio tools;
-advantages of each;
-tips and tricks to get you started;
-audio examples found online;
-links to download NES trackers/emulators;
-NES audio quirks/tips&tricks/problems;
also many more various interesting links relating to NES and 2A03 soundchip!
› About this list:
‹ About this list:
(Original post in 2020:) I wanted to create a main post somewhere on the internet that collects all audio tools available & designed to make music using NES console or emulator, focusing on native music making solutions! I got idea for it after I discovered that nes-audio com site belonging to Neil Baldwin, genius who created trackers on NES disappeared early 2020, and even genius himself went absolutely offline. NES audio homebrew is criminally underappreciated compared to LSDJ, and overshadowed by trackers available on modern platforms. My goal is to to change that, starting here!
(2021 edit:) Months after that, having Neil Baldwin responding to emails, uploading copies of his sites and releasing source code of his software is extreme success of this little guide and personal achievement, especially considering how I still remember 10 years ago all that software being released, being excited about it all even though I had no clue how trackers work, or how to make chiptune at all. I'm extremely happy to be able to bring it all back to life!
Dear Chipster, if you enjoy my collection of knowledge below and would like to contribute to it somehow, feel free to post here or DM me with content that would fit well here, or with a suggestion that would improve it!
-----=====[NATIVE AUDIO TOOLS]=====-----
----------[HOMEBREW:]----------
› (Image comparison of major ones)
‹ (Image comparison of major ones)
-----NTRQ----- Track made in NTRQ, Example nr.2
This is FIRST native NES tracker! runs on any emulator, and despite looking simplistic/archaic, it's very advanced!
For sure 1st thing I recommend you to do is go to options and enable ALT NOTE ENTRY so changing notes/octaves will function same like LSDJ/Pulsar!
› >NTRQ links and downloads<
-----Pulsar----- Audio example nr.1, Example nr.2
Basically LSDJ on NES! I could say it's THE most advanced audio-tool homebrew available on NES thanks to it's automation/groove tables, and high refresh rate! Thankfully manual is quite accessible and easy to read/learn from!
› Quick & dirty guide of differences between LSDJ and Pulsar
‹ Quick & dirty guide of differences between LSDJ and Pulsar
-Extremely buggy;
-No Live mode;
-B to move between pages instead of SELECT;
-Warp zone navigation, LEFT/RIGHT limited/different functionality;
-you copy entire pattern(no precise selection) and paste it from cursor position and below, does not overlap the top so everything above is safe;
-32 different envelopes, E command takes you to selected one instead of actually being an envelope (looks like ADSR vs multifuncional of LSDJ's volume envelope);
-Some values like Retrig or envelope numbers are reversed (FF is fastest on Pulsar);
-DPCM is very different from WAVE channel;
-Swapping DMC samples only through rebuilding from source!
-1st instrument advice: apply gate!
-CHECK THE MANUAL ANYWAY!
› >Pulsar links and downloads<
-----cajoNES----- Official Demonstration
Instead of traditional tracker cajoNES aims for live-performance music making! It has randomiser, high modulation rate and quick save/load making it very playable it's relatively easy to grasp!
› >cajoNES links and downloads<
› >Advanced Guide / Workflow<
‹ >Advanced Guide / Workflow<
If you played with cajoNES, you probably noticed how fun it is to use, and make up stuff on the go - The manual ends there, leaving user to figure out themselves how to make anything longer than 1-2 loop.
In this guide I want to show my way around the program, from early start all the way to finished song/set!
-----1. Preparation-----
-cajoNES+ Deluxe version is required as we need saving and loading to store our track!
-I'd recommend to keep manual close - I tend to forget the combos required to do things - it's easy to make difficult mistake ruining your loop, like accidentally randomizing whole row or loading the original state of the loop, reverting your progress!
-Using emulator with rewind function is highly recommended! It's mostly to prevent mistakes above, saving you stress and rewinding back the mistake!
-----2. Building your loops-----
-Small loop first! Starting from scratch, on 4th CTRL row I place [10], looping the first 4 rows only - That allows me to make couple sounds and drums first without need to constantly restart the sequencer just to hear what you're working on!
-Copy often! I usually start my loops with making good kick, then I copy it over rest of the pattern where I want kick to play! Same applies to rest of instruments, it's super easy to make cool random sound, paste it few times around and do small little changes
-Sweep Depth & Speed tips: I recommend you to make your kicks using high Depth, and low Speed (i.e. setting MDC to about [20], and MSC around [07]) - this will make your kick much more consistent every time it plays!
-Speed aware drums! While taking the advice just above, I do recommend to tune the envelopes of your drums so they don't sound strange when you do little SPEED/SWING adjustments - this will allow you to integrate live speed changes in your songs keeping your kicks stable!
-----3. Song structure-----
-Coming soon!
-----4. Sequencer Techniques & Live play Tricks-----
-Coming soon!
-----5. TAS (Tool Assisted Speedrun)-----
-Coming soon!
-----PR8----- Demo song playaround
It's "drum-machine-style synth", sports interesting non-tracker-like design enabling the user to create multi-channel instruments and play live with ease! Compared to Elektron synthesizers like Octatrack for it's automation possibilities, it's extremely powerful tool to create complete tracks!
› WORKFLOW ADVICE:
‹ WORKFLOW ADVICE:
[DISCLAIMER: THIS GUIDE IS NOT MANUAL REPLACEMENT]
(please take time to read it, especially CONTROLS and QUICK START!)
-----3 first things you need to know:
*(SMALL BUG+EASY FIX) PR8 is tuned for PAL mode, so if you're using NTSC, set OSC-C value to FF for channel A,B and C (Noise keeps it's shape across regions though!)
*KEEP PHRASE 0 EMPTY! It's necessary for pattern cloning;
*PR8 SAVES ALL THE TIME! All changes you make are permanent, there's no undo!
-----PR8 priorities
Changing Phrase, Pattern(and values next to it) or Instrument will affect NEXT loop
Changing instrument parameters or triggers will happen INSTANTLY
Tracks at the bottom have PRIORITY over ones above (e.g. you have 2 tracks that use noise channel, so as long as bottom one is playing, the one above will not)
-----Unique advantages
--I feel that PR8 tries to encourage the user to add and remove notes from the phrases as you play, or even shifting the phrase left or right, playing with the sequence in the pattern - Though because of constant saving happening all the time, the user might not notice it.
There are 2 ways to work around that:
1.If you copy phrase, then you can modify it freely, and when finished, paste over original phrase! (Phrase is transferred to separate buffer, you keep it until you copy something else, or reset the console)
2.Create copy of the phrase and keep it in the pattern on track without instrument on it, so you can copy notes from it, or paste entire phrase when needed!
-----Organization of patterns
PR8's style of jamming also relies on changing between patterns. Usually you have NO MORE than 3 seconds (even that's generous!) to change pattern to next one. PR8 waits until current playing pattern finishes before playing new one.
Therefore I HIGHLY recommend careful choosing your next patterns. Look at the following pattern map:
.. .. .. .. .. ..
40 41 42 43 44 45 ..
30 31 32 33 34 35 ..
20 21 22 23 24 25 ..
10 11 12 13 14 15 ..
00 01 02 03 04 05 ..
If you're playing pattern 22, the quickest patterns to access are 23, 32, 21, 12
Try not to organize patterns in one line (e.g. 00->01->02->03) otherwise going back to first pattern will take you much longer.
Using something like 00->10->11->01 lets you repeat section while still allowing access to other patterns.
[Following the advice above, actually start your first song in pattern10 or 11, that gives you the most freedom of pattern selection.]
-----Space management
You have at your disposal:
8 song 256 bars each;
256 patterns containing COMBINATION of:
6 instruments (out of 128 possible), and
6 phrases (out of 192 possible, 191 if left out phrase00).
I used word "Combination", because PR8 allows you to use ANY phrase on ANY instrument.
NOTE: unlike LSDJ/Pulsar, PR8 keeps all patterns, instruments and phrases shared across your .sav file!
[note: you can leave phrase on silent instrument to aid you to copy notes]
Still, most probably you will run out of different phrases first!
To prevent that from happening:
-Make sure to delete any needless patterns (or they may get lost between used ones);
-If want to use same note placement, consider using new instrument;
BUGS/QUIRKS:
-(TO AVOID: GET FIXED VERSION FROM GITHUB!)PR8's lowest available note is A-1. Trying to go octave down beyond A-1 will result the next note being glitched. Nothing dangerous! Just copy functioning note or simply restart to regain normal note back!
-(TO AVOID: GET FIXED VERSION FROM GITHUB!)CRITICAL BUG: Same procedure like above, but with phrase number in the pattern: Going octave down from 0E and copying the new value onto other track will CRASH PR8, and trying to access that pattern will RESULT IN CRASH
solution: be aware of it and don't do it.
-NOISE(D) shape is NOT affected by Note number, use that to your advantage!
-Combo using SELECT button done to quickly can (un)mute your track/channel (just slow down a bit haha)
-Retrig speed is not dependent on pattern speed!
-Echo during certain pattern tempos cannot be heard (as it layers perfectly with pre-echoed song)
-If speed parameter doesn't suit you, consider different region of emulation (check speed guide below!)
› PR8 Speed Guide (NTSC & PAL):
‹ PR8 Speed Guide (NTSC & PAL):
PR8: Speed = Tempo -(Original article here!)
Here’s a formula that you can use to calculate the BPM in PR8 based on the SPEED setting:
TEMPO = 60 / ((SPEED + 2) * 4) * 120
NTSC updates at 60hz (60 times a second) whereas PAL updates at 50Hz so you just need to use that ratio to scale the BPM speeds. If you do NTSC multiplied by 50 divided by 60 it should give you the correct number (ish). As an example: if PR8 is playing at 120 BPM in NTSC, putting that into the calculation:
120 x 50 / 60 = 100 BPM
NTSC -- SPEED -- PAL
600.00_01_500
450.00_02_375
360.00_03_300
300.00_04_250
257.14_05_214.283
225.00_06_187.5
200.00_07_166.667
180.00_08_150
163.64_09_136.367
150.00_0A_125
138.46_0B_115.383
128.57_0C_107.142
120.00_0D_100
112.50_0E_93.75
105.88_0F_88.23
100.00_10_83.33
94.74_11_78.95
90.00_12_75
85.71_13_71.425
81.82_14_68.183
78.26_15_65.217
75.00_16_62.5
72.00_17_60
69.23_18_57.692
66.67_19_55.558
64.29_1A_53.575
62.07_1B_51.725
60.00_1C_50
58.06_1D_48.383
56.25_1E_46.875
› {Advanced}Editing the appearance:
‹ {Advanced}Editing the appearance:
PR8 by default does not offer much customization in terms of colours and looks. Time to change that!
--To change tiles on the screen:
Mesen or Nintendulator and take a look at their included PPU viewer
Looking at the CHR viewer you'll notice that all all characters have Tile Index.
Boot up your favorite hex editor. 90% of the screen is editable from here!
Screen layout starts at 14B45, and every row on screen is 32 tiles, so resize your editor if possible for ease of use;
Replace values of tiles accordingly to your taste!
Last tile on the screen is located at 14F04.
--To change .pal file
This way you can achieve top colour customisation, but it might destroy visual compatibility with other software!
I recommend Nestopia. In video settings you should find palette editor. Code block below represents colours used by PR8:
00 XX XX XX XX XX XX 07 XX XX XX XX XX XX XX 0F
10 11 XX XX XX 15 16 XX XX XX XX XX XX XX XX XX
XX 21 XX XX XX XX 26 27 XX 29 2A XX XX XX XX XX
30 XX XX XX XX XX 36 XX XX XX XX XX XX XX XX XX
less obvious ones are:
Flashing cursor = 0F->16->26->36->30;
Cursor when holding A or B = 26;
grid cursor indicating edited step = 29;
Instrument buttons = 27,15;
Regarding greens: step indicator = 2A, rest is 29;
Regarding blues: 11 is used by blue (ghost) arrow as an outline;
You can safely ignore rest of the colours, as they are not used with PR8.
› >PR8 links and downloads<
-----SMMM----- Track demonstrating SMMM
Super Magic Music Maker is an semi-interactive random music generator. You won't be able to compose music on it due to its generative nature - it will produce itself! Simple controls allow interacting with the scales and sequence, and there are also visuals!
› >SMMM links and downloads<
-----Chippy-----
Chippy is very simple piano-roll sequencer and easy to understand instrument design! And has a cat!
I see it as perfect introduction to NES audio for beginners, as it teaches basics like hexademical system (volume goes from 0 to F, and even sequencer starts from 00 rather than 1) also if played from the middle, it plays with default speed rather than the different one we set on start of our composition, teaching user to not forget commands!
(Also small tip: if you want to have swing, exchange 2 close to each other BPM commands every step!)
Instructions are included on same forum where download link is!
› >Chippy links and downloads<
-----Plogue Livenes----- Official Demonstration, Savestate track
Made as test tool to help understand 2A03 & other chips, but functions extremely well as drone machine!
There are 4 versions available: 2A03 only, 2A03+ Konami VRC6, 2A03+ Nintendo FDS and 2A03+ Sunsoft 5B!
Playing around is highly advised!
› How to use & Quickstart section
‹ How to use & Quickstart section
Controls:
DPAD to move cursor around,
A to enable/disable parameters,
Start to reset everything,
(VRC6 / FDS / S5B) Select to change pages!
To generate sound:
Pulse1/2 needs V+T+L(bottom);
Triangle needs R+T+L;
Noise needs V;
DMC needs L(top) and enabled D in "Control"(This one is tricky channel, if sometimes gets silent until we turn it on and off in "Control");
VRC6 Pulse1/2 needs V+F+E;
VRC6 Saw needs A+F+E;
FDS Car needs M+V+F;
FDS Mod needs active Car + M/D+F (Mod modifies sound made by Carrier);
S5B needs same channel volume + Frequency enabled (REG8 responds to REG0/1; REG9 to REG2/3, REGA to REG4/5)
(note: at the moment S5B is fully supported only by Nestopia (both vanilla and UE))
Additional notes:
-Addresses (blue 4digits) can be looked up on nesdev 2A03 wiki page for more details;
-Turning off channels in "Control" will not turn them on unless we play with L(bottom) of channels;
-DMC with it's 4011 address shows PERFECTLY how much Triangle/Noise drops volume (and how hard it is to control it);
-Swiping Pulse channels(E and S) will make it fade away, need to retrigger the channel to play again.
› >Livenes links and downloads<
-----droNES----- Official Demonstration, short droNES video
droNES turns NES into a drone/noise box by implementing (very) crude frequency modulation (FM) and amplitude modulation (AM) to 3 of the NES's hardware voice: the two square-wave voices and the noise. Geared more towards live experimentation and exploration, able to satisfy any harsh noise fascinate!
› >droNES links and downloads<
-----Spacetime 6502----- Official Demonstration
Spacetime 6502 is described by author of the port as "weird function sequencer" - it has 16 steps where instead of musical notes user can influence the melody/sequence played with one of 8 different operators! It's fun and interesting little tool, and extremely easy to pick up!
› >Quickstart guide:<
‹ >Quickstart guide:<
Controls:
Dpad left/right = move cursor position on sequencer
Dpad up/down = operator selection (same as A/B)
Select = change all symbols to random operator*
Start = same as Dpad right
*may cause small visual/functional glitches
Operators:
+ = increase melodic counter by 1
- = decrease melodic counter by 1
< = increase melodic counter by 10
> = decrease melodic counter by 10
M = increase SPEED by 1 up (SPEED goes from 1 to B, 1 being fastest)
W = increase SPEED by 1 up ( wraps up to C)
<> = jump to random position
* = random note
› >Spacetime 6502 links and downloads<
----------[COMMERCIAL:]---------- (no download links provided for those, sorry!)
-----Ikinari Musician----- (JP, 1987) "Let's play" video of Ikinari Musician, Built in melody processed in VCV rack
Very accessible live jamming app, where you move little blob/cursor on the keyboard within selected scale!
It's extremely fun and playable! This would be first app I'd recommend for young Chiptuners, but I believe anyone will have fun with it!
Also has MULTIPLAYER! (though only one can play at once, interrupting doesn't feel frustrating!)
it has many fun "cheats" that change graphics or slow down the beat, and to make it all beautiful, you can record your jamming live!
[note: recording is still ON until the end-of-song jingle finishes!]
-----Dezaemon----- (JP, 1991) Tune made in Dezaemon
music-sheet based sequencer controllable with dpad cursor;
12 bar per song (max 6 songs);
24 different pulse channel instruments;
5 DPCM samples available (kick, snare and 3 toms);
32 different tempo speeds to choose (most of it is in range 20-300, also has 450 & 900!);
› >Notes:<
‹ >Notes:<
-Pressing START will make you quit music editor and lose your progress - don't press it!
-You move around patterns by selecting them with B button
-Make sure to save often your tunes - each one can be held under different BGM number
-Most of instruments are actually a copy of each other, just 1-2 octaves higher
-Sometimes you can only place note while pressing B
-Changing Tone won't take effect until you restart the sequencer
-You can copy currently viewed pattern onto another - press "A" button to copy!
=====POCKETNES FOR PR8 & PULSAR=====
-----video of PR8 running on GBA!-----
Produced by Dwedit in 2016, this version is able to run NES 2.0 homebrew!
It's quite stable and works well on the actual hardware
(Results on emulators may vary, but you're welcome to try!)
Package contains:
-Updated PocketNES + menumaker;
-Original & updated PR8 and Pulsar packages;
-Premade .gba files for each one!!
-----[DOWNLOAD HERE]-----
(Of course, you're more than welcome to use package above to convert all your NES audio tools together into .gba file - the PR8/Pulsar compatibility is extra bonus!)
-----[NES 2.0 EMULATORS (for Pulsar/PR8 support)]-----
Retroarch (multiple)
[Working Retroarch cores: FCEUmm, Mesen, Nestopia UE]
Mesen - (Win, Linux)
Nintendulator - (Win)
Nestopia UE - (Win, Linux, MacOS)
FCEUX - (Win, Unix)
(for all other audio tools, feel free to use your fav NES emulator, though it's still advised to use accurate one, like ones above!)
-----[FLASHCARTS FOR NES 2.0]-----
PowerPak is supported - special file is included in both PR8 and Pulsar's archives!
NT Mini is supported (Source)
-----[USEFUL LINKS]-----
--Archive of all Neil Baldwin's tools + PocketNES package
--current & active nes.audio.com website + DutyCycleGenerator.net blog!
--Blog.NTRQ.net archive
--Original nes-audio.com archive
--MakeDPCM - Top WAV to DMC converter
--DPCM pitched sample generator by TylerBarnes and nesdev thread with more info
--NES hardware overclocking mods (Different speeds/pitches for trackers!) by LimitZer0
--WAV to DMC converter by Rushjet1
--Saw wave DPCM IRQ demo in NSF2 by Blargg & Brad Smith
--Triangle wave overtones investigation by Tepples
--"Pulsar, SXROM and NES 2.0 Emulators" article by Neil Baldwin
--Technical info regarding NES 2.0
--"The Compendium of Custom Refresh Rate Techniques in FamiTracker" by Dimeback
--Detailed Chipmusic.org Thread on DMC samples
-----[HARDWARE NES MUSIC]-----
--Famimimidi: NES MIDI cardridge:
video of it in action: https://www.youtube.com/watch?v=5qE-WJzdd6k
available to buy here: https://catskullelectronics.com/famimimidi
--MidiNES: NES MIDI cardridge (not supported anymore)
-----software to make NES music on modern platforms-----
DN-Famitracker - (Win, Wine on Linux) [Tracker style]
Famistudio - (Win, Mac, Linux) [Piano roll style]
Last edited by INFU (Jul 23, 2021 9:46 pm)