This document provides instructions for operating and interfacing with the deMIDulator v1.10
deMIDulator v1.10 User Guide – document version 1.00Page 3/17
Bad Handshake Electronics 2011
*******************************************************************************************
Thank you for making the deMIDulator part of your sound generating arsenal!
This document will provide the information you need to successfully operate your v1.10 deMIDulator.
Overview of PCB Controls (top view)
deMIDulator v1.10 User Guide – document version 1.00Page 4/17
Bad Handshake Electronics 2011
Power-Up State
The deMIDulator on power-up will be in the Polyphonic Sine Wave mode. The Sine wave LED will
be steadily illuminated to indicate this mode.
Volume and Low-Pass Filter Cutoff Frequency Controls
These controls are located next to the MIDI input jack and are adjusted as shown below.
Note: The deMIDulator's output volume can get very loud so make sure that the volume control
is set to a low setting before turning the deMIDulator on.
Waveform Mode Summary
The deMIDulator has three waveform output modes: Sine wave, Square wave and Sample.
[Sine wave mode]
In this mode, the oscillator output will be in the shape of a sine wave which produces a soft and
smooth sounding tone. When this waveform is selected, the indicator LEDs will appear as
follows:
deMIDulator v1.10 User Guide – document version 1.00Page 5/17
Bad Handshake Electronics 2011
Waveform Mode Summary Continued...
[Squarewave mode]
In this mode, the oscillator output will be in the shape of a square wave which produces a
harsh and electronic sounding tone. When this waveform is selected, the indicator LEDs will
appear as follows:
[Sample mode]
In this mode the oscillators are disabled. Instead, a previously recorded audio sample is read
from the onboard EEPROM memory and used as the output tone. This mode allows you to
customize your sound to whatever you like. See sections “Recording a Sample / Audio Loop-Through Mode” for more information. When this waveform is selected, the indicator
LEDs will appear as follows:
Waveform Mode Selection
The waveform mode can be changed using either the deMIDulator's “Waveform Select” button or
MIDI Program Change messages. While the “Waveform Select” button can only cycle the waveform
mode in the direction of Sine→Square→Sample→Sine, MIDI Program Change can be used to cycle
in either direction.
When a MIDI Program Change message is received with a program value <= 3
The deMIDulator will assign the waveform mode as follows:
Program Value Waveform
1Sine
2Square
3Sample
When a MIDI Program Change message is received with a program value > 3
The deMIDulator compares the requested Program Change value against the most recently
received Program Change value. If the current requested value is greater than the
previous(Program Increment), then the waveform mode will cycle identically to the
“Waveform Select” button. If the requested value is less than the previous (Program
Decrement), then the waveform mode will cycle in the direction of
Sine→Sample→Square→Sine which is opposite the direction when using the “Waveform
Select” button.
deMIDulator v1.10 User Guide – document version 1.00Page 6/17
Bad Handshake Electronics 2011
Playback Mode Summary
The deMIDulator has three playback modes: Polyphonic, Sustain and Monophonic.
Aside from controlling playback behavior, this setting will also affect how the currently active
waveform(Sine, Square or Sample) LED behaves. The diagrams in section “Waveform Mode
Summary” illustrate that in normal playback mode, only one LED is illuminated at any time to indicate
the current waveform mode. To indicate which Playback Mode is active, the currently illuminated
waveform LED will either Glow Steadily, Blink Slowly or Blink Quickly. These behaviors are
assigned as stated below.
[Polyphonic]
When in this mode:
•The currently active waveform LED will Glow Steadily
•Up to 4 MIDI notes may be played simultaneously
•Modulation & Pitch values may be changed
•Amplitude Attack / Release time envelopes are enabled
[Sustain]
When in this mode:
•The currently active waveform LED will Blink Slowly
•Up to 4 MIDI notes may be played simultaneously
•Modulation & Pitch values are ignored
•Amplitude Attack / Release time envelopes are enabled
Sustain mode is unique from the others in that certain characteristics become frozen when you
enter this mode. These characteristics are: active MIDI notes, MIDIPitch Wheel value and
MIDI Modulation value.
6. The notes will continue to play and be modified by whatever Pitch and
Modulation values were active when Sustain Mode was entered
Note that Sustain mode is a polyphonic mode which means that 4 oscillators are available to
play with. If you were holding <4 notes when entering Sustain mode then you will have (4 numberOfNotesYouWereHolding) oscillators to play with while the frozen notes continue to
play.
deMIDulator v1.10 User Guide – document version 1.00Page 7/17
Bad Handshake Electronics 2011
Playback Mode Summary Continued...
For advanced users: Unlike MIDI Note On/Off messages, the deMIDulator basically ignores
all incoming Pitch and Mod information while in Sustain mode. Entering this mode then allows
you to freeze a set of Pitch and Mod values. Say you want to set a persistent pitch bend and
you don't want to hold your spring-loaded pitch wheel in place the entire time; with no MIDI
notes active, simply adjust the Pitch Wheel to where you want it, enter Sustain Mode then
release the Pitch Wheel back to center. Because the deMIDulator is ignoring Pitch information
in this mode, it's not going to realize that the Pitch Wheel value has changed even after you've
exited Sustain mode. You can re-center the Pitch value by selecting a mode that doesn't
ignore Pitch information (Polyphonic or Monophonic) and then bending and releasing the Pitch
Wheel. The reason you need to bend and release the Pitch Wheel is because your MIDI
controller likely only sends Pitch information when the wheel value changes, so you need to
change it then let it fall back to center so the deMIDulator will receive the centered value.
MIDI Modulation values are locked in exactly the same way as Pitch Wheel when entering
Sustain mode.
[Monophonic]
When in this mode:
•The currently active waveform LED will Blink Quickly
•Only 1 MIDI note may be played at a time
•Modulation & Pitch values may be changed
•Amplitude Attack / Release time envelopes are disabled
In this mode the deMIDulator keeps track of all currently active notes but limits the notes that
you can hear to only the most recent one that you played. This can be demonstrated by
selecting Monophonic mode, playing and holding a chord on a MIDI keyboard and then
selecting Polyphonic mode without releasing the chord. Though the chord only produced
sound from a single note in Monophonic mode, the full chord is heard when switching to
Polyphonic. Attack and Release amplitude envelopes are disabled in this mode, meaning that
all notes will turn on and off, to and from full-amplitude, immediately as you activate and
deactivate them.
Playback Mode Selection
The playback mode can be changed using a few different methods.
Pressing the deMIDulator's “ModeSelect” button will cycle the playback mode in the direction of:
Polyphonic→Sustain→Monophonic→Polyphonic
Additionally, the following MIDI Control Change messages can be used to enter/exit Sustain and
Polyphonic/Monophonic modes.
A MIDI Sustain Pedal On (CC, Controller #64, Value >=64) message will cause the following
playback mode change:
AnyMode→Sustain
deMIDulator v1.10 User Guide – document version 1.00Page 8/17
Bad Handshake Electronics 2011
Playback Mode Selection Continued...
A MIDI Sustain Pedal Off (CC, Controller #64, Value <=63) message will cause the following
playback mode change:
Sustain→Polyphonic
A MIDI Poly Mode Off (CC, Controller #126) message will cause the following playback mode
change:
AnyMode→Monophonic
A MIDI Poly Mode On (CC, Controller #127) message will cause the following playback mode
change:
AnyMode→Polyphonic
Recording a Sample / Audio Loop-Through Mode
Recording a sample and audio loop-through is accomplished using the deMIDulator's “Sample
Record” button.
Pressing and holding this button in any mode will cause:
•all of the waveform LEDs to illuminate
•the currently selected audio input source to be looped through the device to the headset jack
output
Note that MIDI input is still processed while audio loop-through is active.
After releasing this button in Sine and Square modes:
•previous LED function will resume
•audio loop-through will stop
•normal playback function will resume
After releasing this button in Sample mode:
•the deMIDulator will begin to record and save an audio sample from the selected audio input
source
•all three waveform LEDs will remain illuminated while the sample is being recorded
•audio loop-through will remain active for the duration of the recording
•the recording can be cancelled by either waiting for the maximum sample time to elapse or by
sending the deMIDulator a MIDI Note On message. This allows you to customize the length of
your sample. Sending a MIDI Note On to cancel the recording will also cause the sample to
begin to play back immediately.
deMIDulator v1.10 User Guide – document version 1.00Page 9/17
Bad Handshake Electronics 2011
Sample Mode Playback Triggering
Sample mode playback is a bit more nuanced than the other modes. In Sine and Square modes, the
waveform sample is very short and loops continuously at such a rate that your ears can't tell when the
waveform is restarting from the beginning. It sounds solid.
This will not usually be the case during Sample mode playback since most of the samples you record
will have a distinct beginning and end. In describing the different sample playback behaviors, I use
the word “re-trigger” to mean that the sample has restarted playback from its beginning.
For example: if your sampled phrase is, “I'm just here to buy some bandages” and you kept retriggering the sample after the word “here”, the phrase would then sound like, “I'm just here I'm just
here I'm just here I'm just here I'm just here I'm just here I'm just here”. You get it.
Sample re-triggering is only active in Polyphonic mode. When in this mode, any received Note
On message will cause all currently playing samples to restart from their beginning. This is very
useful for re-triggering vocal phrases or general playback synchronization.
In Sustain mode, a sample will only be re-triggered when a Note Off then Note On message
sequence is received for its corresponding note number.
In Monophonic mode, a sample will only be re-triggered when a Note Off then Note On message
sequence is received, only if the Note Off message resulted in silencing the audio output.
These behaviors will make much more sense once you start working with Sample mode playback.
deMIDulator v1.10 User Guide – document version 1.00Page 10/17
Bad Handshake Electronics 2011
Audio Input Sources
The deMIDulator accepts two types of audio input for sample recording: microphone and line-level.
The below image illustrates the audio input locations and source selection controls:
Aside from accepting a standard 3-conductor stereo headphone plug for audio output, the headset
jack also accepts a 4-conductor headset (stereo audio + microphone) plug with the following pinout:
Pin NumberPin NameDescription
1TipLeft Audio
2RingRight Audio
3RingCommon/Ground
4SleeveMicrophone
deMIDulator v1.10 User Guide – document version 1.00Page 11/17
Bad Handshake Electronics 2011
Audio Input Sources continued...
The deMIDulator headset jack input expects an Electret-type microphone similar to that found in the
iPhone earbuds headset.
For advanced users: The Electret MIC bias is set by R23/R24. You can change the value of this
component or remove it entirely based on your microphone input needs. Note that this will affect input
from both the on-board PCB mic and the headset jack mic.
Other MIDI Implementation Details
Pitch Wheel
The deMIDulator currently implements Pitch Wheel in a mostly uncontrollable and unusable
way. It does however serve to create some interesting sounds.
In Sine and Square modes: Pitch Wheel Up and Down causes the pitch of the note output to
bend wildly in the respective direction. You'll notice that sometimes the bend will exceed the
upper or lower note boundary and will seem to reverse the bend direction. It's interesting.
In Sample mode: Pitch Wheel Up will cause the sample playback rate to increase. Pitch Bend
Down will slow the sample for a short range but bending further will cause the sample to halt
playback. Releasing the Pitch Wheel back to center after the sample has halted will cause the
sample to resume payback from the beginning of the sample. This allows you to precisely halt
and re-trigger the sample.
Modulation
In Sine and Square modes: increasing the Modulation value introduces a proportional amount
of distortion which is the result of simple hardware trickery. Sometimes abandoning science
yields pleasing results.
In Sample mode: the modulation value serves only to control the playback direction of the
sample. A modulation value <64will cause the sample to play back in the same direction
as it was recorded. A modulation value >=64 will cause the sample to play back in the
opposite direction of which it was recorded.
Note that changing the direction in mid-sample playback will only cause the remainder of the
sample or a subsection of the sample to play back in reverse while the sample continues to
play from beginning to end. Explaining this is confusing but you'll understand once you play
with it. This allows you to create interesting effects without losing the timing and cadence of
the original sample.
Attack / Release
In Polyphonic and Sustain modes for all waveforms, the deMIDulator supports MIDI Control
Change Controller #s 73 (Sound Controller 4 – Attack Time) and 72 (Sound Controller 3 –
Release Time). Attack Time controls how fast the note sound transitions from completely silent to full volume when a Note On message is received. Release Time controls how fast
the note sound transitions from full volume to completely silent when a Note Off message is
received. Attack Time == 127 and note will never sound, Release Time == 127 and note will
never turn off.
deMIDulator v1.10 User Guide – document version 1.00Page 12/17
Bad Handshake Electronics 2011
Updating The Firmware Using MIDI
The deMIDulator includes a bootloader application called “mootLoader” that allows you read and write
your device's firmware via MIDI SysEx messages.
Reading the firmware
In order to make the process of converting your deMIDulator's firmware into MIDI SysEx as
simple as possible, the mootLoader has the ability to read your device's firmware, convert it to
a series of MIDI SysEx messages and send it to your deMIDulator's MIDI output jack. The
format of the output is such that you can route it directly to another deMIDulator's MIDI input
jack for direct firmware cloning. You can also record the sequence of MIDI SysEx messages
using a USB MIDI adaptor and suitable computer application (eg. MIDI-OX for Windows,
SysEx Librarian for Mac OS X). This data can then be saved and shared with other
deMIDulator users who would simply reverse the process by using a USB MIDI adaptor and
suitable computer application to play back the file into their deMIDulator's MIDI input jack.
Pressing the Record and Mode buttons while turning on the deMIDulator and holding these
buttons for approximately 2 seconds will enable the mootLoader transmitter mode. The
Square and Sample LEDs will illuminate to indicate that the transmitter mode is active and
SysEx messages will immediately begin transmitting via the MIDI output port.
See document, “mootLoaderTransmitterSpecification_v1_10” for more details.
Writing the firmware
Writing your deMIDulator's firmware requires the mootLoader receiver mode to be active and
properly formatted and timed SysEx messages to be sent to the MIDI input port. The SysEx
data will likely have originated from a deMIDulator in mootLoader transmit mode, either in realtime or previously recorded using a PC. If playing the data back using a PC, it is imperative
that a delay of 8mS follow each End of SysEx (0xF7) byte to allow the receiving deMIDulator
enough time to complete each write cycle.
Pressing the Waveform Select and Sample Record buttons while turning on the deMIDulator
and holding these buttons for approximately 2 seconds will enable the mootLoader receiver
mode. The Sine and Square LEDs will illuminate to indicate that the receiver mode is active.
The deMIDulator will remain idle in this state until a properly formatted SysEx message is
received via the MIDI input jack. The LEDs will flash quickly during the firmware write and the
device will restart to its power-on state once the write is successful.
An unsuccessful write will be indicated by a single blinking LED. If this occurs, turn off the
deMIDulator and try again.
See document, “mootLoaderReceiverSpecification_v1_10” for more details.
deMIDulator v1.10 User Guide – document version 1.00Page 13/17
Bad Handshake Electronics 2011
MIDI Implementation Chart
deMIDulator v1.10 User Guide – document version 1.00Page 14/17
Bad Handshake Electronics 2011
MIDI Implementation Chart (Page 1 of 3)
Manufacturer: Bad Handshake Electronics
Model: deMIDulatorVersion: 1.00Date:
Transmit / ExportRecognize / ImportRemarks
1. Basic Information
MIDI channels
-0 – 15Responds to all channels, forwards all input to MIDI output
Note numbers
-0 – 127
Program change
-0 – 127
Bank Select response? (Yes/No) If yes, list banks utilized in remarks column
-no
Modes supported : Mode 1: Omni-On, Poly (Yes/No)
-no
Mode 2: Omni-On, Mono (Ye s/No)
-no
Mode 3: Omni-Off, Poly (Yes/No)
-no
Mode 4: Omni-Off, Mono (Yes/No)
-no
Multi Mode (Yes/No)
-no
Note-On Velocity (Yes/No)
-no
Note-Off Velocity (Yes/No)
-no
Channel Aftertouch (Yes/No)
-no
Poly (Key) Aftertouch (Yes/No)
-no
Pitch Bend (Yes/No)
-yes
Active Sensing (Yes/No)
-no
System Reset (Yes/No)
-yes
Tune Request (Yes/No)
-no
Universal System Exclusive: Sample Dump Standard (Yes/No)
-no
Device Inquiry (Yes/No)
-no
File Dump (Yes/No)
-no
MIDI Tuning (Ye s/No)
-no
Master Volume (Yes/No)
-no
Master Balance (Ye s/No)
-no
Notation Information (Ye s/No)
-no
Turn GM1 System On (Yes/No)
-no
Turn GM2 System On (Yes/No)
-no
Turn GM System Off (Yes/No)
-no
DLS-1 (Yes/No)
-no
File Reference (Yes/No)
-no
Controller Destination (Yes/No)
-no
Key-based Instrument Ctrl (Yes/No)
-no
Master Fine/Coarse Tune (Yes/No)
-no
Other Universal System Exclusive
-no
Manufacturer or Non-Commercial System Exclusive
-yes
NRPNs (Yes/No)
-no
RPN 00 (Pitch Bend Sensitivity) (Yes/No)
-no
RPN 01 (Channel Fine Tune) (Yes/No)
-no
RPN 02 (Channel Coarse Tune) (Ye s/No)
-no
RPN 03 (Tuning Program Select) (Yes/No)
-no
RPN 04 (Tuning Bank Select) (Yes/No)
-no
RPN 05 (Modulation Depth Range) (Yes/No)
-no
2. MIDI Timing and Synchronization
MIDI Clock (Yes/No)
-no
Song Position Pointer (Yes/No)
-no
Song Select (Ye s/No)
-no
Start (Yes/No)
-no
Continue (Yes/No)
-no
Stop (Yes/No)
-no
MIDI Time Code (Yes/No)
-no
MIDI Machine Control (Yes/No)
-no
MIDI Show Control (Yes/No)
-no
If yes, MSC Level supported
-no
3. Extensions Compatibility
General MIDI compatible? (Level(s)/No)
-no
Is GM default power-up mode? (Level/No)
-no
DLS compatible? (Levels(s)/No)
-no
(DLS File Type(s)/No)
-no
Standard MIDI Files (Type(s)/No)
-no
XMF Files (Type(s)/No)
-no
SP-MIDI compatible? (Yes/No)
-no
0,1,2 hardcoded to Sine, Square, Sample. 3 – 127 cycle
waveform selection relative to program value
increase/decrease.
deMIDulator v1.10 User Guide – document version 1.00Page 15/17
Bad Handshake Electronics 2011
MIDI Implementation Chart (Page 2 of 3)
Manufacturer: Harmonix Music Systems,Inc.
Bad Handshake Electronics
Model: deMIDulatorVersion: 1.00Date:
Control # Function Transmitted (Y/N) Recognized (Y/N) Remarks