Close
0%
0%

Eurorack Mute Sequencer

Step sequencer for 8 mute tracks

Similar projects worth following
0 followers
I'll be logging the creation of step sequencer for sequencing mutes in my Eurorack system.

Development Checklist

  1. Define expected behavior and physical layout
    1. Module Layout Project Log
    2. Module Data Structure Project Log
    3. Module Mode and Button Description Project Log
  2. Define physical parts
    Big LED buttonsKS01-BLV-220 x ORDERED
    OpAmp ICTL074 ONHAND
    VCA ICSSI21644 x ORDERED
    3.5mm Mono JacksWQP-WQP518MA-BM20 x ORDERED
    Blank Panel10hp 12hpONHAND
    LED ICTLC594012 x ORDERED
  3. Microcontroller firmware development
    1. Module Data Structure Project Log
    2. Module Mode and Button Description Project Log
  4. Develop and Breadboard Circuits
  5. Order PCB
  6. Assemble PCB
  7. Test

  • Modes and Buttons

    J. M. Hopkins3 days ago 0 comments

    Overview of the Modes

    • Edit Mode
      • Any changes to the current step's value is saved into the step sequencer
      • Add will add a step, shifting the rest of the sequence right and incrementing length
      • Delete will delete the current step, shifting the rest of the sequence left and decrementing length
      • Pressing Edit/Live will change mode to 'Live' mode
    • Live Mode
      • Changes made to the current step will NOT be saved at clock/step+/step-/reset
      • Pressing Add/UMO will change mode to 'Live Unmute Override' mode
      • Pressing Del/MO will change mode to 'Live Mute Override' mode
      • Pressing Edit/Live will change mode to 'Edit' mode
    • Live Unmute Override
      • When pressing the tracks buttons, will turn on unmute overrides for those tracks, these overrides will not be changed by the step sequencer
      • Pressing Edit/Live will change mode to 'Edit' mode
      • Pressing Add/UMO will change mode to 'Live' mode
      • Pressing Del/MO will change mode to 'Live Mute Override' mode
    • Live Mute Override
      • When pressing the tracks buttons, will turn on mute overrides for those tracks, these overrides will not be changed by the step sequencer
      • Pressing Edit/Live will change mode to 'Edit' mode
      • Pressing Add/UMO will change mode to 'Live Unmute Override' mode
      • Pressing Del/MO will change mode to 'Live' mode

    General Button Behavior

    • Track button LEDs will show the current step's mute status
      • Pressing a track button will toggle the current value and the LED that indicates its value
    • Step+ and Step- buttons
      • Normally not illuminated
      • Will illuminate at 50% for 100ms on receiving a pulse on the clock jack input
      • When pressed, will change LED brightness to 100% until released
      • When pressed, will display current step on the track buttons until released
        • if 8 or less steps, will display in '8-up' mode at 50% brightness
        • if more than 8, will display in binary mode at 50% brightness
    • Add/UMO and Delete/MO buttons
      • Normally not illuminated
      • When pressed, will change LED brightness to 100% until released
        • In Live mode, will latch to 50% brightness when UMO and MO modes are active
      • In Edit mode
        • Will shift all steps right one from current step, and keep the current step the same value
        • This essentially 'copies' the current state, at step+1, and shifts the other steps +1
      • In Live Mode
        • transitions to UMO/MO modes
    • Edit/Live Button
      • Normally not illuminated
      • On Press toggles between Edit and Live mode
      • When pressed 
        • LED goes to 100% brightness, until released
        • on release either latches off (edit mode) or 50% (live modes)
    • Reset Button
      • Normally not illuminated
      • Will illuminate at 50% for 100ms when receiving reset pulse on the reset jack input
      • When pressed
        • LED goes to 100% brightness until released
        • Sets current step to 0
        • Disables clock in when pressed

  • Data Structure and General Modes

    J. M. Hopkins3 days ago 0 comments

    Main Sequencer Variables

    The Mute Sequencer is an 8 track step sequencer, storing boolean values for the mute status. The maximum sequence length is 255 steps with 8 tracks containing the mute values. Length is the current sequence length (minimum 1, max 255) and step is the current step number. So if you look at sequencer[3][TRACK_1] you'd get the boolean value for Track 1 at step 3.

    boolean[255][8] sequencer[step][track]
    byte            length
    byte            step 

    To not get confused on the boolean value for mute/unmute, we also #define their values. And because tracks are 1 indexed physically, and 0 indexed logically we'll also add in #defines for them too. These will also double as their button numbers.

    #define MUTE    false
    #define UNMUTE  true
    
    #define TRACK_1   0
    #define TRACK_2_  1
    #define TRACK_3   2
    #define TRACK_4   3
    #define TRACK_5   4
    #define TRACK_6   5
    #define TRACK_7   6
    #define TRACK_8   7

    Buttons have a few arrays to allow debounce and have state change flags for rising edge / falling edge logic.

    boolean[14] button_current_state[button]
    boolean[14] button_last_poll[button]
    boolean[14] button_changed[button]

    LEDs are a bit simpler, as they are just an array, but because we're controlling LED intensity as well, they are actually byte arrays for 0-255:

    byte[14] led[button]

    And adding a few more defines for the rest of the buttons and modes. (Mode is the general state machine state, of which we have 4)

    #define BUT_STEP_PLUS   8
    #define BUT_STEP_MINUS  9
    #define BUT_ADD_UMO     10
    #define BUT_DEL_MO      11
    #define BUT_LIVE_EDIT   12
    #define BUT_RESET    13
    #define BUTTON_DEBOUNCE_TIME 50
    
    #define MODE_EDIT     0
    #define MODE_LIVE     1
    #define MODE_LIVE_UMO 2
    #define MODE_LIVE_MO  3

    Modes and general button behavior in the in next log...

  • Module Layout

    J. M. Hopkins3 days ago 0 comments

    So overall layout will be similar to the following image (quickly rendered in Power Point):

    8 tracks  are lined up vertically, controls are on the first column, track mutes / display on second column, inputs on third, and outputs on fourth.

    Note that the push buttons are momentary push, and can be illuminated by separate control logic. The idea is to pair with the ACL Sinfonion, not exactly, but in spirit. You can see buttons with full and partial illumination here for an idea of functionality:

  • Concept of Operation

    J. M. Hopkins4 days ago 0 comments

    This module will be in Eurorack format with the following specifics:

    • This device will be 10-12hp
    • 10 x 3.5mm mono inputs (8 track inputs, 1 clock, 1 reset)
    • 8 x 3.5mm mono outputs
    • 14 momentary LED lit pushbuttons
      • Same part number / color as the ACL Sinfonion circle push buttons

    Connections:

    • 8 track inputs
    • 8 track outputs
    • 8 buttons of track mutes
    • Step+, Step-, Add, Delete, Edit/Live, and Reset buttons
    • Clock and Reset gate inputs

    Logic:

    • Microcontroller + VCAs + Opamp buffers

    User Interface

    • The Track Button LEDs will show current mute status of the track (8 total)
    • clock in will increment the step sequencer
    • reset in will reset the step sequencer
    • Sequences can be 255 steps long
    • Edit/Live Modes
      • Edit Mode
        • whenever a track button is pressed, it is immediately saved into the current step
      • Live Mode
        • a track button will change the mute status for active step only, and is not saved
        • override modes allow for muting/unmuting channels regardless of step sequencer values
    • When changing steps, length, and such, display current step/length on the track buttons as a display
      • more on this as we get code structure sorted later

    Rough Initial Parts List

View all 4 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates