Midines 1.1.0 Manual : :
= USING MIDINES 1.1.0
---- CONTROLLER #1
-------- MIDINES MODES
-------- MIDI CHANNEL OFFSET
---- AUDIO CHANNELS + EFFECTS
-------- PULSE CHANNELS
------------ MOD HACK
-------- TRI CHANNEL
-------- NOISE CHANNEL
-------- SAMPLE CHANNEL (DMC)
------------ SAMPLES + BANKING
------------ ADDRESS OVERRIDE
------------ WAVE TRAVELER
---- TROUBLE SHOOTING
-------- RESET BUTTON DOES NOT RESET MIDINES
-------- BLINKING OFF/ON SCREEN
-------- CHANNEL MASTER VOLUME
-------- PULSE OR NOISE CHANNELS STOPPED RESPONDING TO VELOCITY OR VOLUME
-------- GLITCHY MODE 1/2 NESFX
-------- MIDINES FREEZES
-------- MIDINES WORKS BUT EVERY SO OFTEN GETS STUCK ON OR READS BAD DATA
-------- PULSE CHANNEL LOWEST OCTAVE STOPPED WORKING AFTER EDITING SWEEP SHIFT
-- SOUND TECHNIQUES
---- HOW TO MAKE MIDINES WORK ON A PAL NES
---- USING MIDINES WITH FAMICOM
---- DOES THE CABLE GET IN THE WAY?
---- CAN MIDINES RUN WITHOUT A TV?
---- CAN MIDINES RUN IN AN EMULATOR?
= MIDI CHART
______________ MIDI VIRGINS______________________________________________________________________
If this is your first time, and you've never heard of MIDI Controller messages (MIDI CC messages) or don't know how to set up your sequencer to send them please check the help file / manual for your sequencer for nfos. Also here are a few beginning MIDI tutorials to get you in the right mode, :).
This rest of this manual assumes you understand what MIDI CC messages are and how they work.
It is also important to know what MIDI messages your hardware by default sends out. Midines will always respond to the MIDI CC messages being sent to it, so if your sequencer is sending hidden messages then Midines could act in an erratic fashion, creating confusion.
If you are not sure what MIDI messages your hardware is sending, check out the MIDI-OX tool, and view the MIDI data stream on your personal computer.
The 8bit Nintendo features the 2A03 CPU, a 6502 CPU variant which includes integrated audio generation circuitry. The sound capabilities include 2 variable duty cycle pulse (square) sound channels, 1 triangle sound channel, 1 noise sound channel, and a digital sample playback sound channel (DMC channel). These channels are monophonic, and always play the last note sent.
Midines is an independently authored, non-Nintendo licensed hardware interface that turns the 8bit NES, into part of the professional MIDI recording studio.
Midines allows access to the 8bit Nintendo sound registers via MIDI commands. Midines 1.1.0 features two modes of operation. MODE 2 which is the default, allows for visual feedback of the incoming MIDI data via the control display sprites. MODE 1 cancels the updating of the visual feedback increasing MIDI processing performance, also eliminating the PPU related buzz. To switch between MODE 1 and MODE 2 press the SELECT button on controller #1.
Midines also includes NesFX, a simple 8 bit visualization routine. To turn on/off NesFX press the START button on controller #1.
1. Make sure your using a 1000mA (1Amp) or greater rated AC adaptor with your NES.
The AC adapter that came with the original NES is rated at 1.3 Amps (1300mA).
2. Plug in a controller to the #1 gameport.
3. Insert the Midines Game cartridge and depress it down like you would a normal game, and power on.
4. Check the screen, is it blinking off/on? If so then you might need a new 72 pin connector for your NES. You can find replacement 72 pin connectors on EBAY and in local video game (the cool nerd-geek-import-r0kr kind) shops.
5. If everything is cool then you should see the Midines screen with the mode curser animation running. If the curser animation freezes on mode 2, then chances are you might need a new 72 pin connector. Note, the curser *will* freeze when you press the select button to switch to mode 1, but thats normal operation.
The purpose of the midines modes are described below in the next section.
6. Plug in the MIDI DIN cable to your sequencer or PC's MIDI OUT.
______________ USING MIDINES 1.1.0______________________________________________________________/\
____ USING CONTROLLER #1______________________________________________________________________/\
____ MIDINES MODES____________________________________________________________________________/\
PRESSING SELECT ON THE #1 CONTROLLER TOGGLES BETWEEN MODES 1 and 2.
MODE 2 is the default, Mode 2 allows the screen graphics to run so that you can monitor the note sprites and also use NESFX.
MODE 1 disables the Graphics routines, which silences that nasty 60 hertz buzz, and also increases Music processing performance.
You will notice a significant sound difference between MODE 1 and MODE 2 when using things like the pulse mod hack, and the DMC Wave Traveller. So usually it's best when composing to choose the MIDI Channel offset you need and then turn Midines to Mode 1 and just keep it there for the entire composition.
____ MIDI CHANNEL OFFSET_______________________________________________________________________/\
PRESSING UP ON THE #1 CONTROLLER INCREMENTS THE MIDI CHANNEL OFFSET.
PRESSING DOWN ON THE #1 CONTROLLER DECREMENTS THE MIDI CHANNEL OFFSET.
NESFX must be OFF, and Midines must be in MODE 2 in order to change the MIDI Channel Offset.
-The default Midi channel assignments for Midines:
MIDI Channel 01 = Pulse 01
MIDI Channel 02 = Pulse 02
MIDI Channel 03 = Triangle
MIDI Channel 04 = Noise
MIDI Channel 05 = sample (DMC) channel
Can be changed, rather shifted - to respond to different MIDI Channels using the UP / DOWN pad on Controller #1.
The on screen channel displays the current base channel.
This defaults to MIDI Channel 01, which will be the current MIDI Channel the Pulse 01 audio channel responds to.
If for example while Midines was in mode 2, (toggle with START button) and you pressed up twice the channel display would now read channel 03. This sets the Pulse 01 to respond to MIDI channel 03. Similarly the other audio channels will have been shifted up by 2.
-channel 03 - MIDI Channel Offset
MIDI Channel 03 = Pulse 01
MIDI Channel 04 = Pulse 02
MIDI Channel 05 = Triangle
MIDI Channel 06 = Noise
MIDI Channel 07 = DMC (sample) channel
Offset "a" is hex for decimal 10, "b" is 11.
Pressing START on the #1 CONTROLLER toggles NESFX ON/OFF.
Basically NESFX changes the graphics on screen based on things like channel pitch, or notes played.
______________ AUDIO CHANNELS + EFFECTS_______________________________________________________/\
The NES features 5 sound channels, 2 Pulse with 4 step variable duty cycle, and 4 bit volume control. One triangle wave channel, that unfortunately has no volume control. One noise channel with two different random waveform generation methods, a short and long loop period (same as GB). Lastly a Delta Modulation audio sample channel.
Even though Midines has a few built in ways to modulate things, the MIDI latency is low enough in mode 1 that you can modulate any parameter into the audio domain, just using your sequencer application and MIDI CC commands.
Details on each of these sound channels follow.
______________ PULSE CHANNELS_(MIDI 1,2)________________________________________________________/\
The pulse channels feature 4bit volume, 4 duty cycle settings, a sweep pitch feature, and an auto volume envelope feature. The pulse channels can also be modulated via a modulation hack that constantly resets the pulse waveform generator.
Note on velocity allows 16 volume steps, and is derived by dividing the mid note volume by 8. Therefore changes in velocity of less than 8 may not have an actual effect on the sound channels volume level. Also some sequencers do not automatically set the master volume CC7 to 127. This master volume setting must be at 127 on order to get the full volume range of velocity from the midi notes you are playing. The master volume takes precedance over velocity and scales the velocity accordingly, however remember there are only 16 steps to the volume. Therefore if the master volume CC7 is at 7 or less the channel will *not* sound at all, even when playing a note at 127 velocity.
You can use midi pitchbend to shift the pulse channel it's entire frequency, if the stepping you hear is rough it could be due to your midi controller not sending incremental midi pitchbend messages, ex. 1001,1002,1003,1004....1212,1213 these would provide a smooth pitch bend, however many keyboard controllers default to larger pitchbend increments, ex. 40, 64, 80, 128 this will cause the pitch transition to sound rough. So check your manual for a pitchbend resolution, or look to use the "fine" pitchbend for vibratos over rough. However there is way around this by using MIDI CC8, which is a fine pitch bend that runs off MIDI CC8.
Fine Pitch CC8 offsets the fine pitch register for the note only. So due to this some notes may wrap from low to high or high to low pitches.
The NES has another important hardware setting related to the avaliable frequency range of the pulse channels.
In order to play the lowest octave notes on the pulse channels you must make sure CC 16 = Sweep Shift, is at full on (127). Midines defaults to this setting, however if you start working around with the sweep and suddenly loose the lowest octave of a pulse channel, thats the reason.
PULSE MIDI CONTROLLER CHANGE MESSAGES (CC parameters)
OFF = less than 64 (0x40)
ON = greater than or equal to 64 (0x40)
Mod wheel / CC1 = Duty Cycle
CC7 = Master Volume (value overrides note velocity)
CC8 = Fine pitch mod
CC9 = Pulse channel length envelope
CC10 = Toggle OFF/ON pulse channel loop envelope
CC11 = Toggle OFF/ON volume Envelope disable
CC12 = Toggle OFF/ON Modulate pulse channel
CC13 = Toggle OFF/ON Enable Sweep
CC14 = Sweep Down / Up
CC15 = Sweep Period
CC16 = Sweep Shift
____ MOD HACK________________________________________________________________________________/\
MIDI CC 12 (Toggle OFF/ON) turns on the mod hack if you send a value of 64 or greater, (0x40).
MIDI CC 6 is the frequency for this routine. _______________________________________________________________________________________________
______________ TRI CHANNEL_(MIDI 3)_____________________________________________________________/\
The triangle channel does not support hardware volume control as do the pulse and noise channels. Despite this limitation the triangle channel features the widest frequency response that the NES has to offer.
MIDI pitchbend allows full frequency shifts.
TRIANGLE MIDI CONTROLLER CHANGE MESSAGES (CC parameters)
CC8 = Fine pitch mod
______________ NOISE CHANNEL_(MIDI 4)___________________________________________________________/\
The noise sound channel features 4bit volume control, and also has an auto volume envelope feature, similar to the pulse channels. The noise channel has 2 modes of noise generation, long loop and short loop.
Long mode allows for standard noise generation, and short mode sounds more metallic and less random, more periodic. The NES's long / short noise loop modes are similar to the Game Boy noise modes.
The noise channel is spread out over MIDI channel 4. Due to the limited 16 noise pitch/period values that the NES allows, the noise period is repeated every 16 notes. For MIDI notes above 64 inclusive (64 dec 40 hex), noise short loop mode is set to on. For MIDI notes below 64 (64 dec 40 hex) the long mode is on.
Note on velocity allows 16 volume steps, and is derived by dividing the midi note volume by 8, scaled by the master volume. Therefore changes in velocity of less than 8 may not have an actual effect on the sound channels volume level.
NOISE MIDI CONTROLLER CHANGE MESSAGES (CC parameters)
OFF = less than 64 (0x40)
ON = greater than or equal to 64 (0x40)
CC7 = Master Volume
CC9 = Noise channel length envelope
CC10 = Toggle OFF/ON noise channel loop envelope
CC11 = Toggle OFF/ON volume Envelope disable
______________ SAMPLE CHANNEL (DMC)_(MIDI 5)____________________________________________________/\
The sample channel in Midines 1.1.0 features 256 different samples grouped into two 128 note sound banks. Samplesets include, TR909, TR808, TR707, LINN, AMEN, VG, HONG KONG BATTLE ACTION!, as well as additional breaks, and the older 1.0 sampleset + sfx, pads and vg battles.
Also Midines allows realime pitch shifting of the sample channel via MIDI CC 03. This allows for some effects not normally possible in most .nsf files, such as rubber-band-o drums, and then back to normal in a millisecond.
The sample channel has a looping mode which can be turned off/on via MIDI CC 04. Turning on the loop mode and then using the address override routine to override the sample playback length, is an easy way to get SDM sounds (spiffy dance musy).
For glitch fanboys/girls, check out this routine.
DMC PCM Modulation (reg $4011 poke)
CC 02 = Value to load
CC 13 = Toggle OFF/ON PCM Modulation
____ SAMPLES + BANKING_______________________________________________________________________/\
Midines defaults to bank 01, as shown by the B1 sprite on screen in the DMC column. Bank 01 contains mostly drum samples, bank 02 contains drum samples and pads + sfx. To change banks, use MIDI CC 14.
BANK 01 = less than 64 (0x40)
BANK 02 = greater than or equal to 64 (0x40)
MIDI CC 14 Switches between Bank 01 - and Bank 02 each bank accesses 128 samples, mapped 1 to a key.
____ ADDRESS OVERRIDE________________________________________________________________________/\
This routine, offsets the base note sample load address. Meaning: the last note you played on the DMC channel, it can change where the sample starts playing.
Also the sample playback length is overriden, so you can scale from sharp snaps to as long as the NES hardware will allow to play.
In order to access different sounds, you will need to play different note ranges on the keyboard, because this address offset routine only offsets addresses that are in the same 16KB ROM page.
It's best just to try everything out and hit a few notes on different octaves and you'll get the idea.
Also when adjusting the address the sample channel will play back, so you can tell where your starting from, the effect is similar to AKAI samplers.
OFF = less than 64 (0x40)
ON = greater than or equal to 64 (0x40)
CC 05 = DMC Sample start address offset (Only if address override enable is ON)
CC 06 = DMC Sample sample playback length (Only if address override enable is ON)
CC 08 = Toggle OFF/ON DMC address+length override
____ WAVE TRAVELER__________________________________________________________________________/\
This routine loops through data on the sample channel acheiving sounds from warm basses, to garbltygook®©.
CC 09 = Travel param tone
CC 10 = Travel speed
CC 11 = Travel loop size
CC 12 = Toggle OFF/ON DMC Wave Traveler
______________ TROUBLE SHOOTING______________________________________________________________/\
________ RESET BUTTON DOES NOT RESET MIDINES________________________________________________/\
In order to completely reset Midines you need to power off the NES and then power back on. Hitting the reset button only resets the NES CPU and doesn't reset the micro inside the Midines cart.
________ BLINKING OFF/ON SCREEN_____________________________________________________________/\
This problem can be caused by either a dirty 72 pin connector, or a non NTSC-NORTH AMERICAS REGION NES being used. For more information about NES CIC and regions .
________ CHANNEL MASTER VOLUME ___________________________________________________________/\
If MIDI CC7 (Master Volume) is at 8 or lower on the pulse or noise channels, (MIDI base channel 1,2 or 3)
Then you won't hear anything, the NES volume only has 16 levels, and 0-7 (1-8) is off.
MIDI CC7 works as a master volume, so that the individual key velocity is affected by this value.
For example if the MIDI CC7 is at half (63 or so) and you play a note with a velocity less than 64 you won't hear anything. You would have to play a note with a greater than 64 value velocity to hear anything, since the master volume is at half.
note: Many sequencers set this MIDI CC7 to a defualt value that is not %100 or 128, so you might not be getting the full volume range avaliable using velocity with Midines untill you adjust the master volume CC7 to full on.
________ PULSE OR NOISE CHANNELS STOPPED RESPONDING TO VELOCITY OR VOLUME_________________/\
This is probably because you sent MIDI CC messages to:
CC 10 = Toggle OFF/ON pulse channel loop envelope
CC 11 = Toggle OFF/ON volume Envelope disable
- The NES is a strange beast and only will respond to volume changes with these MIDI CC's set to the following:
CC10 - ON - lets the note remain looping or on
CC11 - ON - disables the hardware volume envelope, and allows the software volume, velocity routine to work.
________ GLITCHY MODE 1/2 NESFX on/off behaviour_______________________________________________/\
Old controllers can have problems where the rubber contact element disintegrates inside the controller, causing the conductive carbon to drop close to the actual switch, this makes the nes see a number of button presses even though you may be only pressing it one time.
The only remedy is to get a newer controller, or replace the parts in your original controller with the new rubber contact elements of a new controller.
________ MIDINES FREEZES____________________________________________________________________/\
If Midines stops responding to midi data it means that something went wrong with the 72 pin connector. It's best to replace the older one your probably using and get a new one.
________ MIDINES WORKS BUT EVERY SO OFTEN GETS STUCK ON OR READS BAD DATA_________________/\
If there is a grounding (earthing) problem between the NES and your MIDI Sequencer then, MIDINES can miss data unfortunatley. This occurs usually when both the NES *and* the MIDI Sequencer are using cheapo AC Adaptors.
There is a workaround but it requires a PC with a well grounded (earthed) power supply (which most are). Just run your MIDI controller into your PC's MIDI in, and then back out the PC's MIDI out, echoing the MIDI in to the out in software and Midines will work fine that way.
________ PULSE CHANNEL LOWEST OCTAVE STOPPED WORKING AFTER EDITING SWEEP SHIFT_____________/\
In order to play the lowest octave notes on the pulse channels you must make sure CC 16 = Sweep Shift, is at full on (127). Midines defaults to this setting, but if you start working around with the sweep and suddenly loose the lowest octave of a pulse channel, this is due to CC 16 Sweep Shift set lower than 127.
______________ SOUND TECHNIQUES______________________________________________________________/\
Create a simple melody or arpeggio with the pulse channel #1 (MIDI ch1). Then copy this sequence and paste into pulse channel #2, (MIDI ch2). Next offset the notes by an 8th note - 16th note or triplet depending on the type of delay your after and shorten or cut the remaining overhanging notes off the end of the sequence. Select all the notes on pulse channel 2 (MIDI ch2) and reduce the velocity by 10-25%.
A chorus sound can be achieved by playing pulse channels 1 & 2 on the same note, then using MIDI CC8 to offset one of the pulse channels pitch by a small amount. Altering the duty cycles of the pulse channels in conjunction with a slight pitch offset provides rich chorusing sounds.
FULL FREQUENCY DMC
The sample channel, while excellent for bass type sounds, has a hard time with frequencies above 8Khz or so. In order to make up for this drop in the high frequency domain, using short synchronously timed bursts of noise over the samples can together generate a full frequency sample sound. Try turning MIDI CC9 to 26 to setting the noise length, and set CC10,11 off - 0. This envelope works in a way where the greater the velocity is the longer the decay, the shorter the velocity the shorter the decay. This way it is easy to set up a high frequency layer to complement the samples.
____ HOW TO MAKE MIDINES WORK ON A PAL NES____________________________________________________/\
Midines 1.1.0 can operate with NTSC and PAL systems. However the CIC security chip protection limits the compatabilty. Other wise you can run Midines on a PAL NES without any issues.
The last version of the NES Nintendo made, the toploader, lacks CIC region protection. Also there are various ways to modify your old PAL NES to make it region free, you can find information on the various methods by . _______________________________________________________________________________________________
____ USING MIDINES WITH FAMICOM________________________________________________________________/\
Famicom never had the CIC chip problem, so if you have a NES game to Famicom converter it will work fine.
____ DOES THE CABLE GET IN THE WAY?___________________________________________________________/\
No the cable sits above the lip of the NES door, so that if you really wanted to you could drill a little semi-circle out of the hood, and it would close perfectly.
____ CAN MIDINES RUN WITHOUT A TV?_____________________________________________________________/\
Yes, however it might be a good idea to try it out first with a TV, and get the feel for the controls, then after you have that memorized run it solo.
____ CAN MIDINES RUN IN AN EMULATOR?___________________________________________________________/\
No, the hardware (memory mapper) design has changed over time, besides there is a seperate microprocessor that does most of the MIDI processing that current NES emulators do not emulate. If you would like to make NES music on your PC check out the MCK system or NT2, a nsf tracker for dos. Also there are plenty of NES-alike vst clones around, although it's like using a SID emulator, instead of the real thing.