MIDIbox SID V1 Change Log
Last Release: V1.7303e @ 2009-10-04
Current firmware, schematics, additional infos are located at http://www.uCApps.de/midibox_sid.html, the MIOS based version under Concepts->MIOS->Download.
- built for MIOS V1.9g (or higher) to support new encoder types.
Rotary encoders won't work with older MIOS versions!
- the 4bit volume parameter of the SID can now be directly
modulated from ENV2. This possibility allows to replace the
oscillator envelopes and helps to overcome the ADSR bug.
This feature can be enabled with the fourth flag (E2V) of the
"sound engine option"
- with the fifth "sound engine option" GSA (gate stays active)
the gate of the oscillators will not be cleared anymore if
a MIDI note has been released.
This allows to control the amplitude envelope of a sound
completely via filter or E2V modulation independent from the
OSC ADSR release rate.
- the arpeggiator has been overworked, now the arp cycle has always
a constant time. If one key is pressed, it is stepped with normal
rate, with two keys at double rate, three keys triple rate,
four keys quadrupled rate.
This approach improves the live handling and yields more musical results
If the arpeggiator is synched to MIDI clock, use following
- 64th note: 124
- 32th note: 118
- 16th note: 106
- 8th note: 82
- 4th note: 34
- the filter control curve can now be scaled between a min
and max range of 0..2047 - this is (currently) a static
configuration which has to be made in the .asm file (search
It's also possible to switch between two different types and
calibration sets via an external pin (search for DEFAULT_FILTER_TYPE_SWITCH)
- cosmetic change: displayed patch number now padded with zeros
- The LCD now prints an informative message when a patch has been uploaded
- a new preset library is now available at the MIDIbox SID page
- this version requires MIOS V1.9 or higher!
It won't run with older MIOS versions, since the address space
>= 0x7c00 is allocated
- a new CC parameter for "sound engine options" has been added.
It provides up to 7 flags which allow to change the characteristic
of the sound engine and to save the settings within a patch.
All currently available sound engine options (303, FIP and E2P -
see below) can be changed in the new SEO menu
- a 303 mode has been implemented which changes the characteristic
of the filter, envelopes and wavetable sequencer so that the SID
can be used to play TB303-typical bassline sequences.
The details are described at howto_sid_bassline.html.
The option has to be enabled with the first flag (303) of the
"sound engine option"
- the filter output curve can now be optionally interpolated
in order to smooth modifications of the CC#46 cutoff value.
The interpolation can be activated with the second flag (FIP)
of the "sound engine option"
- an alternative portamento mode has been added, which uses ENV2
to realize a constant time glide/slide.
Best results can be achieved with Attack=rate,
Decay/Sustain/Release=0, Curve > 32. This results into
a shape which is similar to the charging/decharging curve
of a capacitor. Try this with SusKey and Legato enabled.
This feature can be enabled with the third flag (E2P) of the
"sound engine option"
- a new CC parameter for "filter key tracking" has been added (CC#116)
- "ENABLE_AOUT 2" selects a low-cost AOUT module
(currently it only outputs CutOff as 12bit value, once I got
the Curtis chips I will do some experiments with 8bit CutOff
and 8bit Resonance)
- a new flag has been added to the MIDI sync parameter CC#125 which
allows to send MIDI clock events from the wavetable sequencer.
Each step sends a clock in normal mode.
In 303 mode, each step sends 6 clocks
- the internal WT editor now allows to modify the parameters
of a whole track at once, this speeds up the initialisation
of a new WT sequence. Just select the step position beyond 31
("All" will be print) and modify the Mod, #1, #2 or #3 column
- the WT editor now marks parameters with a '!' so long they haven't
been stored in EEPROM
- the WT editor now prints notes/arpeggio keys/holds when the appr.
WT parameter assignment is within the range CC#8..CC#12
- it's now possible to play a note (or to start/stop a WT sequence)
by holding one or multiple SID buttons and pressing the
menu button. The selected SID number(s) will be inverted on
screen so long the note (or sequence) is active.
Note that the Note event could play different SIDs at the same
time if they are assigned to the same MIDI channel.
- each second LFO now provides a Sample & Hold functionality when
switched to random mode. LFO2, 4 and 5 hold the waveform of
LFO1, 3 and 5 for each period run.
- in the modulation matrix, enable LFO2 modulation for the
Pitch of OSC1 -> this is the S&H output
- set LFO2 to random mode, Rate=70, Depth doesn't matter
- set LFO1 to sine or random mode, and vary Rate and Depth
- the LEDs of the modulation matrix are now also used for metering
the output values of LFO1-6 and ENV1-2
This new mode can be selected by pressing two mod target buttons
at the same time (e.g. O1 and O2 pitch). It can also be enabled
automatically after startup by changing the DEFAULT_LEDMATRIX_MODE
setting in main.asm or setup_*.asm
- support for 24LC512 EEPROMs - it has to be enabled with the
DEFAULT_BS_TYPE flag in main.asm or setup_*.asm
- a lot of minor bugfixes and improvements have been made
- support for multiple BankSticks
The bank can be changed
- with CC#0 at the selected MIDI channel (master and slaves)
- with F0 00 00 7E 46 <device-number> 0B F7 (master only)
- in the CFG menu (master and slaves)
- when a Node in the Modulation Matrix is enabled/disabled, the
CS changes to the appr. Envelope/LFO menu
- the complete sound engine has been overworked to save memory
- there is now a 6th LFO waveform which forwards analog conversion
results from the first 6 analog inputs (J5 port of the core
module) to the LFOs.
This allows you to control the SID with analog signals
The LFO Depth controls the impact on the modulation target
The LFO Rate controls the update cycle - a lower rates result to
very stuttering effects, the highest rate (127 -> 812 uS sample
period) to a very accurate control of Frequencies/Pulsewidths/Filter
Thinkable analog sources are pots, joysticks, CV outs, ...
- some minor bugfixes and improvements
- 128 preset patches are now available at the MIDIbox SID page
- V1.6 final
- a split function has been implemented which allows to assign the
three SID voices to different (or overlapping) keyboard zones.
By using the transpose function in addition, you are now able
to play each voice individually from a single MIDI channel.
This feature is also usefull to layer multiple SID sounds to
different keyboard zones (requires SID slaves)
- the velocity/modulation/aftertouch configuration can now be found
in a separate menu (VMA), the split function can be controlled
from the CFG menu
- an auto configuration for the SID device ID and the CS handler
has been implemented which is enabled by default. The SID device
ID will be derived from the MIOS device ID. The control surface
will be disabled if the device ID is != 0x00 (and therefore the
core acts as a slave).
This simplifies the configuration of a 4 SID system
- several setup and .syx files for 6581/8580 with or without control
surface are included in this package so that in most cases no
assembler is required to configure the application
- IMPORTANT: from now on, the SCLK input of the SID module has to
be connected to port J10:MD (PIC Pin #28/RD5) of the core module
The use of MIOS V1.7 is highly recommended (especially CS users
will notice advantages - brighter LEDs, brighter modulation matrix!)
see also http://www.ucapps.de/mios_v1_7_hardware_mods.html
- V1.6 alpha3
NOTE: alpha means that not all planned
features for V1.6 are implemented yet, the new features could be
changed/improved, the documentation is not up-to-date, the JSynth
Editor doesn't support remote-editing of the new parameters yet.
This will be done after the final v1.6 release
Alpha doesn't mean that the MIDIbox SID firmware
is in some kind of beta state with a lot of bugs and unusable
functions. Far from it! Many people already built the box and
they are very happy about the unique sound of this synthesizer! :-)
Note also that the old PIC16F based firmware has been
discontinued - V1.5b is the last firmware for the PIC16F! It's
still compatible to the MIOS version, but doesn't provide nonlinear envelopes,
oscillator synchronization, the improved 8580 filter algorithm, etc...
- the handling of SID Slave patch changes is faster now
- Special Characters are now in a separate file (special_characters.inc)
to simplify the use with different LCD drivers. The application
gets use of the MIOS_BOX_CFG0_USE_GLCD flag to determine if a
character or graphical display is connected (requires MIOS V1.6 or higher)
- V1.6 alpha2
- menu handling has been slightly changed. The page scrolls now
directly with the datawheel and not with the cursor anymore.
If you like the old style, then enable the CS_MENU_OLD_STYLE
switch within main.asm
- proper Wavetable sequencer reset when MIDI Sync enabled
- support for optional CBM8580 filter switch (jumper) which can
be connected to pin RC.3 (CORE::J6::SI). This mechanism has
to be enabled with CBM8580_FILTER_SWITCH in main.asm ---
it's disabled by default! The pin number is free definable.
A 10k pull-up should be added to this pin, this is already the
case for RC.3 when you are using the original MBHP core module.
Jumper open: 6581 filter, Jumper closed: 8580 filter
- V1.6 alpha1
- optional oscillator phase synchronization for more percussive
sounds (idea by Jess D. Skov-Nielsen)
New CS Menu Entry: OPS in the OSC menu
- non-linear envelopes with flexible CURVE parameter which
allows you to bend the attack, decay and/or release curve to
upward/downward direction (idea and implementation hints
by Jess D. Skov-Nielsen)
See also: Example1
New CS Menu entries: Cur and CAs in the ENV menu
- optimized linear response of the 8580 filter (implementation
hints by Jess D. Skov-Nielsen)
NOTE: due to the higher dynamic range, you've to increase the
CutOff value of the old patches
- correctly calculated Note->frequency table (implementation
hints by Jess D. Skov-Nielsen)
- more stable wavetable sequencer timings (based on experiences
with MIDIbox SEQ)
- optimized display handler to avoid long delays of more
than 1 mS
- experimental AOUT support (7 CV out assigned to the existing
outputs of the modulation matrix, 1 channel to the filter
resonance parameter). For the final version it's planned
to integrate the AOUT into a separate modulation matrix,
and to add new CC's to a separate AOUT channel
- the new CC's Curve Assign (#110), Curve ENV1/2 (#86, #87), OSC Sync (#124)
can be changed from the control panel as well as
- Most parts of the software engine have been revised in order to improve the sound quality. The most drastic change has been made in the pitch modulation - now it works independent from the "Pitch Range" setting; LFO and envelope waveforms are added linearly to the frequency like known from common synthesizers. The depth parameter of LFOs & Envelopes follows an exponential curve.
Unfortunately these changes make V1.5 incompatible to patches which have been created with the old firmwares
- the filter driver of the software engine has been significantly improved for the 8580. A MP3 example can be found under MBHP->MIDIbox SID->Design
- the arpeggiator now sorts the pressed keys from the lowest to the highest note in order to improve the usability during a live session
- -> CC#8 - CC#11 allow to play notes with the wavetable sequencer and to combine it also with the arpeggiator in order to realize complex polyphonic textures. An MP3 example can be found under MBHP->MIDIbox SID->Design
- the Wavetable Sequencer/Arpeggiator, LFOs and Envelopes can be optionally synchronized to the MIDI clock (-> CC#125)
- a MIDI clock start command (FA) now resets all LFOs
- the LFO now provides an additional pseudo random waveform
- to-COM interface now officially supported
- Control Surface: all new parameters have been integrated into the menu structure
- The JSynth based editor has been updated
- The presets patches have been updated - 76 sounds/sequencers/arpeggiator textures are available now
- Port to PIC18F452 as MIOS application, will provide a control surface later.
- Patches can now be saved into a BankStick
- Program Change command switches between the 128 patches of a BankStick
- Beside of Mono and Poly also a Legato mode is available now
- Minimal support for a LCD - patch name, program number, MIDI channel and device number are displayed
- Note that the SysEx commands have been changed. Beside of the firmware, also the new JSynthLib editor is required.
- 50 preset sounds are available here
- A Wavetable sequencer has been integrated into the firmware which allows you to create sequences of Waveforms and other CC controllers. This feature is a *must* for C64-style percussion sounds :) There is also a new demo tune (mbsid_demo8.mp3) which demonstrates the possibilities (note: all sounds have been created with the MIDIbox SID! They have been enriched with external effects).
The new JSynthLib editor is required to edit the tables. Here are some Example Patches
- Support for SysEx interaction with a new JSynthLib based editor
12 CC's have been added to this version, please find the new controller commands in the sid_cc_implementation_chart.txt.
- With the new poly mode feature up to 3 different notes can be played together. Poly Mode has to be enabled with CC 127.
- Velocity, Aftertouch and the Modulation Wheel can now be assigned to any MIDIbox SID controller. Nice for live sessions! :-) You are able to define the target controller, the depth, the direction and the initial value. Also cross-modulation is possible (e.g. Velocity controls CutOff frequency, Aftertouch controls depth of Velocity, Modulation Wheel controls init value of Velocity - it's ill, but it works! ;-). New CC's: Assign Controllers CC 117-119, Init Value CC 2-4, Depth CC 13-15.
- A Sus-Key option has been added. It improves the live playing in conjunction with the portamento (glide) effect. If enabled, portamento get's only active when at least two keys are pressed at the same time. Portamento will be bypassed when only a single note is pressed. The Sus-Key feature has to be enabled with CC 116
- The Logic Environment for MIDIbox SID has been updated.
Initial Version. Beside of the common SID functions (three oscillators, triangle/saw/pulse/noise and mixed waveforms, independent envelope generators for the amplitudes, sync & ringmodulation, 12db multistate low/band/highpass/notch filter) following features were implemented:
- 2 additional envelopes which can be assigned to Pitch, Pulsewidth and Filters
- 6 additional LFOs with different waveforms which can be assigned to Pitch, Pulsewidth and Filters
- Fine Tuning
- Pitch Bender
- Portamento/Glide function
- Arpeggiator (a SID *must* have an arpeggiator ;-)
Last update: 2017-02-26
Copyright © 1998-2017, Thorsten Klose. All rights reserved.