English Version French Version

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.



  • V1.7303e
    • built for MIOS V1.9g (or higher) to support new encoder types.
      Rotary encoders won't work with older MIOS versions!

  • V1.7303b
    • 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 rate settings:
      • 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 for DEFAULT_FILTER_TYPE).
      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 via SysEx
    • a new preset library is now available at the MIDIbox SID page

  • V1.7303
    • 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.
      Example:
      • 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

  • V1.7
    • 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 Example2 Example3
      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 via MIDI.

  • V1.5b
    • 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

  • V1.4/18FStepC

  • V1.4/18FStepB

  • V1.4/18FStepA

  • V1.4/18F
    • Port to PIC18F452 as MIOS application, will provide a control surface later.

  • V1.4
    • 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

  • V1.3
    • 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

  • V1.2
    • Support for SysEx interaction with a new JSynthLib based editor

  • V1.1
      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.

  • V1.0
      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
    • Delays
    • Arpeggiator (a SID *must* have an arpeggiator ;-)


Last update: 2017-04-09

Copyright 1998-2017, Thorsten Klose. All rights reserved.