Skip to content

Iosefka Manual

GlobalSequence edited this page Jan 31, 2026 · 31 revisions

Overview

Hardware

Hardware components listed in the manual will be referred to by their name as listed below. When hardware components are listed in the manual, they will appear in Bold and Italic

hardware_overview_front

hardware_overview_side

  1. OLED Display
  2. Data Rotary Encoder - (with switch when pressing down on shaft)
  3. Shift switch
  4. Play/Stop switch
  5. Layer LEDs
  6. View switches
  7. Page LEDs
  8. Key switches
  9. Potentiometers
  10. Volume knob
  11. Output Audio jack
  12. External Input Audio Jack
  13. Filter tracking tuning trimpot
  14. Filter offset trimpot
  15. MIDI Output jack
  16. MIDI Input jack
  17. Power supply jack - (9v DC - Center positive)

Synthesizer Block Diagram

iosefka_audio_block_diagram

iosefka_modulation_block_diagram_and_key

Specification

Iosefka is a hybrid digital analog monophonic synthesizer consisting of the following parts:

  • Digital audio:
    • 2x wavetable oscillators, capable of interpolated morphing waveforms in the X and Y dimension along 256 hand-picked waveforms in a 16x16 layout.
    • White noise generator
    • Loopback digital delay fed from VCA output with feedback and adjustable rate from >3 ms to ~683 ms
  • Analog audio:
    • V2140 based analog pole-mixing resonant voltage controlled filter with audio rate frequency modulation selectable between:
      • 2 pole low pass
      • 4 pole low pass
      • 2 pole high pass
      • 2 pole band pass
    • LM13700 based voltage controlled amplifier
    • External audio input direct into analog section and digital delay
  • Step sequencer:
    • 32 step, 24 PPQ performance step sequencer
    • Parameterized sequence generator including step chance, length, octave range, and musical scale
    • Controls for swing, direction, clock division, first and last step, probability
    • Per step Parameter locks for:
      • Note value
      • Step length
      • Velocity value
      • Step Probability (coming soon)
      • Single audio Parameter
    • Per step mutes
  • Modulation matrix to all audio Parameters:
    • 3x ADSR envelope generators (converted to control voltage for analog modules)
    • 3x Low frequency oscillators (converted to control voltage for analog modules)
    • Velocity control
    • Aftertouch control
    • Mod Wheel control
  • MIDI Implementation:
    • MIDI RX
      • Note and velocity values
      • Realtime messages: clock tick, start, stop
      • CC messages for all audio Parameters (see implementation chart)
      • Modulation control of velocity, aftertouch, mod-wheel
      • Pitch bend with configurable bend range from 1 to 12 semitones
      • Program change (coming soon)
    • MIDI TX
      • Note and velocity values (from keyboard and sequencer)
      • Realtime messages: clock tick, start stop
  • Patch storage:
    • Store 64 patches of all audio and sequencer Parameters
    • Store global MIDI settings
  • Oscilloscope:
    • Oscillator phase locked oscilloscope with four 'time' divisions (sample divisions) between 512 to 128 samples.

Operation

Powering the device

Iosefka requires a 9v DC center-positive power supply. It is preferable to use a linear power supply (such as the one outlined in the BOM) instead of a switching power supply, in order to reduce noise.

The unit does not have a built-in on/off switch, so operation begins when the power supply is plugged in and ends when it is unplugged.

Plugging into an external audio source

Iosefka provides line level mono output - a bit hot (loud), but still safely within the realms of what any modern mixer or audio interface can handle. Simply plug a ¼" cable into Iosefka's Output Audio jack and plug the other end into your mixer or audio interface, adjusting the volume with the Volume knob as needed.

Iosefka does not have a headphone output. It is not advised to plug headphones directly into Iosefka's Output Audio Jack.

Playing Sounds

Typical of an electronic instrument to send you on a several page trek through the manual until you arrive at the part that describes using the damn thing to make music.

You can play sounds on Iosefka in a variety of ways. Most of these ways will be elaborated on in their own sections, but as a basic rundown:

Playing sounds with the built-in keyboard

When the Kbd Page is active (by pressing the Synth 1, Synth 2, Envelope, or LFO View switches), the 13 Key Switches play chromatic musical semitones. The lower 8 switches represent white keys and the upper 5 switches represent black keys.

Furthermore, in the Synth 1 and Synth 2 Views, the Keyboard Octave Mode is active, allowing for selecting between octave 2 through 7 of the 128 MIDI standard notes with the Data rotary encoder.

Playing sounds with the Sequencer

You can just let the synth play itself by pressing the Play/Stop switch, provided that there is an active sequencer Pattern. The INIT preset as well as any factory presets should come with their own Patterns, so you should be able to press play on any preset out of the box and get sound out of it.

More information on the Sequencer can be found in the Sequencer section of this document.

Playing sounds via MIDI

Iosefka comes with robust MIDI implementation according to the MIDI 1.0 standard. You can plug in any device that produces MIDI Note messages like a keyboard or a computer with a DAW into the MIDI Input Jack in the back of the device. Just make sure that the MIDI Channel in the Settings View matches the MIDI channel of your MIDI output device.

More information can be found in the MIDI Implementation section of this document.

Just letting it drone, my dude

By disabling the VCA, Iosefka becomes a drone synthesizer, so it's constantly playing sound. Enter the Synth Env Layer by pressing the Synth 1 Key Switch until both the Synth 1 Layer LED and the Envelope Layer LED are simultaneously lit, then turn the VCA Potentiometer (bottom right) up until the sound starts (and keeps going).

The OLED Display and LEDs

The combination of the OLED Display and the eight LEDs on Iosefka are meant to give thorough visual feedback on the machine's control state, known as the View (more on the View in the section below). Learning this combination is crucial to the workflow of the machine.

When you turn a Potentiometer, a value relating to the placement of that potentiometer will change on the OLED Display. For example, turn the top left Potenetiometer and you'll see the number in the top left of the OLED Display change. Knowing that the currently lit Layer LED corresponds to the 15 numbers currently showing on the OLED Display will help you know which Parameters those numbers represent.

A detailed description of the different screens shown on the OLED Display and LEDs is provided in the View Charts section of this document.

OLED Display

A note on the use of hexadecimal

The resolution of the display on Iosefka is 128x64 pixels. This plus the admittedly tiny size of the screen means that every character counts. Because of this, most numerical values are displayed in hexadecimal, a base 16 number system, instead of the standard base 10 decimal number system. This is actually how many musical trackers display numerical values as well.

In brief, instead of counting like this:

  • 0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20 … 251-252-253-254-255

The Parameter values count like this:

  • 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F-10-11-12-13-14 … FB-FC-FD-FE-FF

Some parameters are displayed as special values such as the filter type selection, or the sequencer direction. There are a few exceptions to the use of hexadecimal for numerical feedback. The exceptions and their reasons:

  • Settings View

    • Preset number
    • MIDI Channel
    • Pitch Bend Depth
  • Sequencer View

    • BPM

Bipolar values

Because of the aforementioned issue with space allotted to Parameter values, adding a negative "-" symbol would break the visual convention and hog screen space. As a compromise, bipolar values are displayed as positive hexadecimal values. For example, the values for the "- Level +" Parameters for the Modulation Sources are displayed as 0 to FF, but are in reality -80 to 7F, with 0 as the center value.

Hanging screens

A Hanging Screen is a screen which shows for just a few seconds, like showing the Mode when a View is changed, or any time the Data rotary encoder is turned. To view this screen for longer, hold down the Data rotary encoder switch by pressing down on the shaft. The Hanging Screen will persist for as long as the screen is held (plus a few seconds).

Display Off Timer

To maintain the longevity of the OLED Display, it will automatically turn off after 5 minutes if none of the physical components are changed (like turning a Potentiometer), or if the sequencer is not running.

LEDs

As mentioned above, the Layer LEDs and Page LEDs give visual feedback to the respective Layer and Page in the device's current View, described below.

The View

The total state of the physical user interface is called the View. The View consists of three touchable sections:

  • Pages - The functions of the 13 Key switches on the control board
  • Layers - The Parameters controlled by the 15 Potentiometers on the control board
  • Modes - The data selectable by the single Data rotary encoder on the control board

Therefore, the View is determined by which state the Page, Layer, and Mode is currently set on the device. The OLED Display as well as the Layer LEDs and Page LEDs give visual feedback on which View is currently active.

Changing the View

The View can be changed with the five View switches on the bottom left of the control board.

To see a list of all the Views, visit the View Charts section of this document.

Page

The function performed by each of the 13 Key switches is determined by which Page is currently active. The currently lit Page LED indicates the current page, and the function of that specific Key Switch is either:

  • Key Page - A musical semitone in the layout of a standard piano keyboard
  • Seq Page - The first line of text beneath the Key switch
  • Set Page - the second line of text beneath the Key switch

The image below illustrates how the Page LEDs indicate what each switch does. The orange sections indicate Sequencer functions and the green indicates Settings functions.

page_reference

To see a list of all the Pages and their corresponding Key switch functions, visit the Page Switch Function Chart section of this document.

Layer

Before delving into this section, a definition: A Parameter in the context of this document is any value that is changeable with a Potentiometer.

The Layer is the state which determines which parameter is controlled by one of the fifteen Potentiometers on Iosefka's control board. The Layers are arranged in a way that represents aspects of the synthesizer from a big-picture perspective. For example, the Synth 1 Layer contains the parameters for the oscillators, mixer and filter, while the Synth 2 Layer contains additional synthesizer effects (with a few parameters that are shared with Layer 1). All parameters on the Envelope and LFO Layers are dedicated to those respective Modulation Sources.

The Layer LED that is currently lit indicates which Parameter name beneath the Potentiometer is currently active. To elaborate, in the image below, note the corresponding color over the Layer LEDs to the Parameter name beneath the Potentiometer. This applies to every Parameter beneath the Potentiometers on the control board e.g. top left Layer LED (Indicating Synth 1 Layer) = top left Parameter, etc.

layer_reference_1

Note: If only one Parameter name appears in a row, that means that Parameter is active for either layer in that row. For example in the below image, the Parameter "X Wave" is active when the active Layer is either Synth 1 or Synth 2.

layer_reference_2

To see a list of all the Layers and their corresponding Potentiometer Parameters, visit the Layer Parameter Control Chart section of this document.

Mode

The Data rotary encoder is responsible for handling the input of specific data values depending on which Page or Layer is currently active, as well as several other contexts. The state which determines the data being handled by the Data rotary encoder is called the Mode.

The Mode controls things like the octave of the notes played on the keyboard, the modulation destination of all Modulators, the BPM of the Sequencer, etc.

On all Views except for the Settings View, the current Mode can be viewed in a few different ways:

  • Pressing down on the Data rotary encoder shaft to actuate the switch
  • Switching the View
  • Turning the Data rotary encoder

To see a list of all the Modes, their contexts, and how to view them, visit the Mode Encoder Data Chart section of this document.

Settings

The Settings menu allows for the configuration of global and preset-specific settings. From here, you can control the processing of MIDI messages, set patch-specific controls, initialize a preset, and enable the Oscilloscope.

This section describes the different settings in the Settings menu and how to control them. For this section it is assumed that you are in the settings menu.

To navigate to the Settings menu, hold the Shift switch and press the Sequencer switch.

Using the Settings menu

When first visiting the Settings menu after starting up the machine, the Data rotary encoder is in the Settings Scroll Mode which controls scrolling through the Settings menu items, indicated by the circle icon on the left of the OLED Display. Pressing down on the Data rotary encoder switch, does different things depending on the setting:

  • For settings with numbers to the right, the Data rotary encoder now switches Modes and increments/decrements the value of the setting. Horizontal parallel lines will appear above and below the setting name to indicate that the setting is being edited.
    • To return to the Settings Scroll Mode, click the Data rotary encoder switch again.
    • For settings related to Presets, and settings related to Mod Source/Destination, the horizontal lines will encompass two lines, indicating that those settings are related. The selected setting is indicated by the circle icon on the left.
  • For settings with square checkboxes, the Data rotary encoder switch will toggle that item on and off.
  • Some Settings menu items such as the Preset Name entry, enabling the Oscilloscope, and Initializing a Preset have slightly different control types. Those will be explained in their own sections.

To minimize redundancy, in the rest of the Settings section, the term "scroll to and select" will be used to describe scrolling to the menu item while in Settings Scroll Mode and selecting the setting using the Data rotary encoder switch.

Presets

Iosefka contains 64 presets which allow for the saving of every machine Parameter, including sequencer Parameters and steps.

Selecting a preset

To save or load a preset of your choice, scroll to and select "preset" or press the Preset Key Switch which enables the Preset Mode ("preset" will be outlined as in the picture below), and turn the Data rotary encoder to the preset number of your choosing.

The currently loaded preset is indicated by a ">>" next to the name "preset".

Note that the preset number is in decimal not hexadecimal.

Saving a Preset

With the preset number that you wish to save selected, ready the save state of the machine by pressing the Save Key switch. This brings up the following screen on the OLED Display.

If you are certain that you are ready to save, execute the save by holding the Shift switch and pressing the Save Key switch again. The machine confirms that the preset has been saved with this screen.

Loading a Preset

With the preset number that you wish to load selected, ready the load state of the machine by pressing the Load Key switch. This brings up the following screen on the OLED Display.

If you are certain that you are ready to load, execute the load by holding the Shift switch and pressing the Load Key switch again. The machine confirms that the preset has been loaded with this screen.

Editing the Preset name

Each preset can have an 8 character name which is loaded on startup and can be seen when selecting a preset.

Navigate to and select the row beneath "preset". This row will be blank if no preset name has been entered. A highlighted square will appear, and you can select the alphanumeric character with the Data rotary encoder. For ease of use, only lowercase letters, numbers, and "." "-" characters will appear.

To move to the next character, hold the Shift Switch and turn the Data rotary encoder. Do this multiple times to scan through multiple characters. To save the Preset name, you must save the Preset.

Selecting Envelope and LFO modulation destinations

When in the Envelope View or LFO View, pressing the respective View switch repeatedly will cycle through the Mode for that mod source's destination.

For example, in the Envelope View, pressing the Envelope Key switch will highlight the number on the left hand side of the OLED Display, indicating which Envelope number's modulation destination is selectable.

You can then use the Data Rotary Encoder to select the Modulation Destination.

User Parameters

For performance, and overall ease of use, users are able to assign one of fifteen parameters on the User Parameter Layer. Every parameter controlled by a Potentiometer can be assigned as a user parameter .Every Preset can have its own user parameters.

Navigate to the User Parameter Layer by holding the Shift switch and pressing the Synth 2 switch. Select the Potentiometer which will be assigned a parameter by holding the Shift switch and turning the Data rotary encoder. A box will be drawn around the currently selected parameter.

From here, turning the Data rotary encoder selects the parameter which can be assigned. The parameter value of the current preset will be shown. Note: Changing the parameter value here will change the value on the respective layer and vice versa.

Some parameters cannot be assigned, and are indicated by a "--" in place of the parameter value when that parameter is selected. This is how all parameters appear on a new Preset.

The Synthesizer

Digital Audio

Iosefka's sound generation begins in the Microcontroller, where the oscillators and noise generator are mixed together and then sent out of the DAC for analog processing.

Oscillators

Iosefka has two identical morphing wavetable oscillators with 256 waveforms, spread out over a 16x16 grid, and can be controlled using the X Wave and Y Wave Parameters for each oscillator separately. A list of the wavetables can be viewed in the Wavetable Chart section of this document.

There are additional sound design options such as:

  • Pitch modulation options:
    • Frequency modulation
    • Portamento (glide)
  • Cross modulation options from Osc 1 to Osc 2:
    • Phase modulation
    • Oscillator sync

Each oscillator has additional controls for scale, tuning, and octave, allowing for a very wide range of sounds when used with or without the sound design options listed above.

Parameters (for each oscillator):

Parameter name

Function

Scale/Pitch

  • Scale (normal operation): Tunes the oscillator by -1 octave to ~+1 octave by semitones
  • Pitch (holding shift and turning Potentiometer): Tunes the oscillator by -1 octave to ~+1 octave smoothly

This is a Bipolar value

Octave

Choosing one of four octaves

X Wave

Select a wavetable along the X axis

Y Wave

Select a wavetable along the Y axis

Parameters (shared by both oscillators):

Parameter name Function
Portamento Also known as 'glide' - the amount of time it takes for one note to slide to the next when played
Phase Mod (Phase Modulation) Phase modulation where Osc 1 is modulator and Osc 2 is carrier
Sync Oscillator sync where Osc 2 resets whenever Osc 1 completes a cycle

Noise Generator

Along with the oscillators, there is a white noise generator.

Parameters:

none

Mixer

Both oscillators and noise generator are fed into the mixer, which controls the level of each of the three, before leaving the digital domain for the filter.

Parameters:

Parameter name Function
Mix 1 Level of Oscillator 1
Mix 2 Level of Oscillator 2
Mix Noise Level of Noise Generator

Digital Delay

The post-VCA output of Iosefka feeds back into a 12-bit ADC, sampled at 48khz, which is then used as a digital delay. The digital delay can be given extremely short (~3ms) for interesting sound sculpting, or much longer (~683ms) for a more traditional delay effect.

The digital delay's audio is produced by a separate DAC and is then mixed back into the VCA output.

Parameters:

Parameter name Function
D. Level (Delay Level) Volume of the delay
D. Rate (Delay Rate) Amount of time between delay input and output.
D. Fdbk (Delay Feedback) Amount of delay fed back into itself

Analog Audio

Filter

The heart of the analog filter is the Sound Semiconductor V2140 chip. It is an OTA based pole mixing filter producing a very clean and controlled sound. The filter cutoff has its own Parameter for key tracking, which the filter is capable of doing easily across 5+ octaves.

The filter is configurable between four types:

  • 2-pole low pass
  • 4-pole low pass
  • 2-pole high pass
  • 2-pole band pass

The resonance of this filter has been tweaked to get just-very-loud-enough to where one should find themselves find themselves satisfied in case they want to go a little overboard.

The filter output is then fed back into the filter cutoff CV path for audio-rate frequency modulation with a Parameter to control the intensity of the modulation applied. In moderate amounts, this adds an almost overdrive or distortion to the sound. In high amounts, and at high resonance, this becomes absolute audio chaos, if you're into that sort of thing. When the Parameter is turned all the way down, the frequency modulation is not applied and therefore not audible.

Envelope 2 is hard-wired to the filter cutoff, and there is a Parameter dedicated to bipolar envelope amount.

Parameters:

Parameter name

Function

Cutoff

The point at which frequencies begin to become attenuated

Resonance

The amount of emphasis given to the audio at the cutoff point

F. Env. Level (Filter Envelope Level)

How much of Envelope 2 is applied to the filter cutoff amount. This is a Bipolar value

Note: Holding shift and turning the Potentiometer will snap this Parameter to 0. This is a quick way to turn the modulation 'off'

F. Type (Filter Type)

Selecting between the four filter types:

  • 2 Pole Low Pass
  • 4 Pole Low Pass
  • 2 Pole High Pass
  • 2 Pole Band Pass

F. FM (Filter Frequency Modulation)

The amount of audio rate modulation fed from the filter output back into the filter cutoff

F. Track (Filter Tracking)

The amount of note tracking applied to the filter. When turned up all the way, the filter can be played just like an oscillator.

Amplifier

The voltage controlled amplifier is based around the venerable LM13700 dual OTA chip. The amplifier provides a linear response with a 'vintage' sound.

It can be configured to a 'drone' mode where the amplifier is opened partially (allowing for amplitude modulation effects), or all the way, providing the full volume of the filter output.

Parameters:

Parameter name Function
VCA Controls how much the filter output is attenuated.

External Input

External audio can be fed into the external input in the back of the synthesizer, allowing for line level signals to be processed by both the analog audio block (filter and VCA) and also the digital delay.

Note: The external audio will only be heard when the VCA is open, so to hear the external audio, the synthesizer must be actively playing notes, or the VCA must be in drone mode. To that end, to use Iosefka purely as an analog/digital processor, here are some suggestions:

  • Put the VCA in drone mode
  • Turn down Mix 1, Mix 2, and Mix noise
  • Now you should be hearing only the external input playing, allowing you to process audio with the filter, amplitude modulation, and the delay effects

Note: The gain of the external input is fixed, so the audio level fed into the input must be adjusted externally.

Parameters (none)

Modulation Sources

All synthesizer Parameters are modulatable using the modulation sources on Iosefka (and then some!). Sequencer Layer Parameters cannot be modulated via the mod sources, but the LFOs are syncable to the internal and external clock, so there's that!

Here is a list of the Modulation Destinations.

Envelopes

Three ADSR envelopes with responses from snappy during short durations to long arcing response times when turned up.

All three envelopes are freely assignable to any modulation destination. Additionally, Envelope 2 is hard-wired to the Filter Cutoff, and Envelope 3 is hard-wired to the VCA.

As an example, if Envelope 2's destination is set to Mix Noise, it shares the Attack, Decay, Sustain, and Release time of the filter envelope, but the envelope amount for Mix Noise is independent of the envelope amount for Filter Cutoff. The same applies for Envelope 3.

Parameters:

(These Parameters apply to all 3 Envelopes)

Parameter name Function
Attack Envelope onset time
Decay ( + Loop) The amount of time from the end of the attack phase to settle into the sustain phase
Holding Shift switch and turning the Potentiometer will enable the Looping Envelope, causing the envelope to begin the Attack phase as soon as it finishes the Release phase.
Sustain The volume of the note as it is held (following the attack and decay phase)
Release The amount of time until the volume fades to 0 after a Note-Off event happens
- Level + Bipolar Parameter level control allowing for non-inverted or inverted LFO modulation. This is a Bipolar value
Holding Shift switch and turning the Potentiometer will snap this Parameter to 0. This is a quick way to turn the modulation 'off'

LFOs (Low Frequency Oscillators)

Three LFOs with a variety of waveforms. The LFOs can all independently be synced to the sequencer clock, as well as reset during Note-On messages.

The LFO modulation itself is bipolar, meaning that the value of the Modulation Destination will swing above and below the Parameter value at an equal depth. For example, let's say the Portamento Parameter was turned up to "80" on the OLED Display and you applied the LFO to Portamento, turning the "- Level +" up to "C0". This means that the LFO is ranging from "80 - 40" to "80 + 40".

Parameters:

(These Parameters apply to all 3 LFOs)

Parameter name Function
Rate The speed of the LFO's oscillation. When the LFO is synced to the Sequencer Clock, this Parameter becomes a time-division of the clock
Shape The shape of the LFO wave: triangle, saw, square, sine, and sample-hold
Phase The offset of the wave, control where the wave begins and ends
Reset/Sync This Parameter controls whether LFO Reset and/or Sync are turned on. When Reset is on, the LFO restarts whenever a Note-On event happens
- Level + Bipolar Parameter level control allowing for non-inverted or inverted LFO modulation. This is a Bipolar value
Note: Holding shift and turning the Potentiometer will snap this Parameter to 0. This is a quick way to turn the modulation 'off'

Additional Modulation destinations

The following Modulation Sources can be found in the Settings View, where their corresponding Modulation Destinations can be configured, if applicable.

Velocity

Velocity is a control of how much of a Parameter is applied depending on how 'hard' a note was hit. This effect emulates the way that a piano key is louder the harder it is pressed. Most modern keyboards have a velocity control. The sequencer also has a velocity Parameter.

Velocity controls two Parameters: The VCA, and one freely selectable Modulation Destination.

Parameters:

None

Mod Wheel

Along with Velocity controls, most modern MIDI controllers have a Mod Wheel. Mod wheel is only controllable via MIDI.

Parameters:

None

Aftertouch

Aftertouch allows you to control a Modulation Destination with the pressure applied to the key after it has been pressed. Consult your favorite MIDI controller's manual to learn more!

Parameters:

None

Note

The amount of modulation is set depending on which note is being played. The higher the note, the greater the modulation. This can be reversed with the "note mod" setting in the Settings menu.

Parameters:

  • Note + or - (in the settings menu) controls the bipolar behavior of the Note Modulation Source. This is set in the Settings Menu:
    • Note +: controls the Modulation Destination positively, higher notes is a higher parameter value and vice versa.
    • Note -: controls the Modulation Destination negatively, higher notes is a lower parameter value and vice versa.

Breath Control

For those with MIDI wind controllers, breath control is a Modulation Source. As of the writing of this manual, I've never seen anyone use one in person, but I hope that changes some day!

Pitch Bend

Pitch Bend is a MIDI controllable effect which applies exclusively to the pitch of Oscillator 1 and Oscillator 2. You can adjust the Pitch Bend Depth from the Settings View with a range of 1 to 12 semitones.

Parameters:

None

The Sequencer

Iosefka contains a 32 step sequencer with an emphasis on live performance, allowing for precise input, or automatically generated Patterns.

A Pattern is the current arrangement of steps in the sequencer. Every Preset has its own pattern.

The sequencer has a range from 30 to 300 BPM (beats per minute) and operates at 24 PPQ (parts per quarternote) to match incoming MIDI clock ticks.

Sequencer Parameters

These are the Parameters available in the Sequencer View, specifically the Sequencer Layer.

Parameter name

Function

Note

  • Generator off: Controls the note that is set when Enabling a step
  • Generator on: Sets the base note of the generated sequence
  • Parameter lock: Changes the current selected step note

Octave

  • Generator off: Controls the octave of the note set when Enabling a step
  • Generator on: Sets the base octave of the generated sequence
  • Parameter lock: Changes the current selected step octave

Length

  • Normal operation: Controls the length of the next enabled step note
  • Parameter lock: Changes the current selected step length

Velocity

  • Normal operation: Controls the velocity of the next enabled step
  • Parameter lock: Changes the current selected step velocity

Transpose

Musically adjusts the notes played in the sequence by -12 to +12 semitones.

Note: This is a bipolar value, but displays with negative and positive hex values, ranging from -C (meaning -12) to +C ( meaning +12)

Note: Holding Shift key will snap this Parameter to -C, 0, or +C depending on Potentiometer position, intended for performance purposes

Direction

Sets the direction that the sequence plays from the first note to the last note as such:

  • fw - Forward, notes play from first note to last note, then repeat
  • bw - Backward, notes play from last note to first note, then repeat
  • p1 - Ping pong 1, notes play from first note to last note, then reverse direction, repeat
  • p2 - Ping pong 2, notes play from first note to last note, then reverse direction, repeat, but the first and last note play twice. With this setting, sequences play an even number of steps forward and backward.

Swing

Sets the rhythmic swing, dividing the 12 clock ticks between every two halfnotes:

  • 00 - No swing, each first and second quarternote have a 1:1 ratio of clock ticks
  • 01 - Light swing, each first and second quarternote have a 7:5 ratio of clock ticks
  • 02 - Medium swing, each first and second quarternote have a 2:1 ratio of clock ticks
  • 03 - Heavy swing, each first and second quarternote have a 3:1 ratio of clock ticks

Clock Div. (Clock Divide)

Multiplies or divides the number of ticks per quarternote, making the sequence slower or faster:

  • *8 - Sequence is 8 times slower
  • *4 - Sequence is 4 times slower
  • *2 - Sequence is 2 times slower
  • *d - Sequence is 1.5 times slower
  • /1 - Sequence is normal speed
  • /2 - Sequence is twice as fast

First Step

Selects the first step of the 32 steps played by the sequencer

When a Pattern is automatically generated, the generated Pattern will start and this step and end at the Last Step Parameter

Cannot exceed the step selected by the Last Step Parameter

Last Step

Selects the last step of the 32 steps played by the sequencer.

When a Pattern is automatically generated, the generated Pattern will start and this step and end at the First Step Parameter

Cannot precede the step selected by the First Step Parameter

Probability/G. Chance (Generator Chance)

  • Generator off: Probability - Each step, a random number between 0 and 255 is generated. If the Probability value is greater than this random number, and this step is active, the step plays. Higher number = greater chance an active step is triggered
  • Generator on: G. Chance - Generator chance, when a Pattern is generated, a random number between 0 and 255 is generated for each step. If the G. Chance value is greater than this number, a step is generated. Higher number = greater number of steps generated

G. Mode (Generator Mode)

The musical mode generated by the Generator

  • ma - Major scale
  • mi - Minor scale

G. Length (Generator Length)

The length of step notes in a generated Pattern. At 00, all notes are 1 step long. At 07, all notes are 4 steps long. Every value between 00 and 07 is a weighted preference between shorter step notes and longer step notes

G. Repeat (Generator Repeat)

When the generator is on, the number of times a Pattern repeats before a new Pattern is generated

G. Octave (Generator Octave)

Similar to G. Length, this selects the octave range from the Octave parameter based on a weighted table.

Programming Patterns

Step Data

Each of the 32 Steps in the sequencer contain their own configurable Parameters, as shown in the Parameter list above. These are:

  • Note (including octave)
  • Length
  • Velocity
  • Parameter Lock Destination
  • Parameter Lock Value
  • Active
  • Enabled

Each time a step occurs, the step will behave based on the combination of all of these values. The values can either be set manually by changing the Parameters using the Potentiometers before and manually programming the step, or the values will be automatically set for all notes when a Pattern is automatically generated.

Step Play States

Every step can be in one of three Play States:

  • Step On - This step will play (if it passes a Probability check)
  • Step Mute - This step will not play, but contains Step Data
  • Step Off - This step will not play, and there is no Step Data

Manual Programming

With the Seq Page active, a Pattern can be readily programmed into Iosefka's Sequencer.

Setting Step Play States with 1 - 8 Key Switches

The 1 - 8 Key switches set the Play State of each respective step according to the current Step Section. The action taken by said switches is as follows:

  • If Step Off, pressing the Key switch will put the step into the Step On state. The step will adopt the Step Data determined by the Sequencer Parameters
  • If Step On, pressing the Key switch will put the step into the Step Mute state. The Step Data is retained
  • If Step Mute, pressing the Key switch will put the step into the Step On state
  • If the Step On or Step Mute, pressing the Shift switch and the Key switch will put the step into the Step Off state, erasing Step Data

Step Sections

Eight steps can be programmed at a time using the 1 - 8 Key switches while on the Seq Page. To select which 8 steps can be programmed, you must toggle through the four Sections using the Section Up and Section Down Key switches. The white horizontal line above steps 1 - 16, and below steps 17 - 32, display which section of 8 steps is currently programmable.

With the white line in this position, the 1 - 8 Key switches program steps 1 - 8.

With the white line in this position, the 1 - 8 Key switches program steps 24 - 32.

Generative Programming

When a Pattern is generated, it will erase and rewrite over all steps within the First Step and Last Step Parameters (Be mindful when using the generator as to not erase Patterns you want to keep!) The pattern is randomly generated, but within the bounds of the Sequencer Parameters relating to the Generator.

Running Generation

Running generation will occur as long as the Generator is 'On'. This is set using the Generator On/Off Key Switch, and is visually indicated by the "Gen" icon in the top-right of the OLED Display while in the Sequencer View.

The G. Repeat Parameter determines the number of times a Pattern plays before a new pattern is generated. The remaining number of repeats before a Pattern is Generated can be seen at the top left of the OLED Display when in the Sequencer View.

Oh no, the Generator created a killer pattern that I want to keep but it's going to be erased after this final repeat!!! Fret not. Turning the Generator off by pressing the Generator On/Off Key switch will prevent automatic rewriting of the pattern.

Immediate Generation

Pressing the Generate New Key switch will immediately generate a new pattern regardless of the state of the Generator, number of repeats remaining, etc.

Parameter Locking

Step Data can be adjusted for steps that are already set using Parameter Locking. Press and hold one or more of the 1 - 8 Key switches corresponding to the step in the desired Step Section. In the OLED Display, you will see several Parameters light up, indicating the Step Data Parameters that are Parameter Lock-able.

Additional features

Section jumping

By holding the Shift switch and pressing the Section Up and Section Down Key switches, you are able to shift the first and last steps by the count of the overall pattern length. This allows you to play different sections as if they were different parts of a song.

For example, if your first step is step 1, and your last step is step 8 (making a pattern length of 8), by pressing the Shift switch and the Section Up Key switch, the first step becomes 9 and the last step becomes 16.

Section jumping is designed to maintain the relative note in the sequence, so your song doesn't 'break' if you section jump mid-pattern.

We are limited to the 32 steps of the sequencer, so we can only section jump in pattern lengths of 16 or less. I could describe how this works exhaustively, but just play around with this feature and you'll see what it can/can't do.

Supplemental Information

View Charts

These charts represent the default Layers, Pages, and Modes upon device startup. These three can be changed depending on the View, and sometimes persist beyond View changes. For example, if the Mode is changed in the Settings View, that mode will persist when leaving and returning to the Settings View.

View Name Accessing this View Layers Pages Modes
Synth 1 Synth 1/Synth Env View switch* Synth 1 Kbd kbd oct (Keyboard Octave)
Synth Env Synth 1/Synth Env View switch* Synth Env Kbd kbd oct (Keyboard Octave)
Synth 2 Synth 2/User View switch Synth 2 Kbd kbd oct (Keyboard Octave)
User Shift switch + Synth 2/User View switch User Kbd kbd oct (Keyboard Octave)
Envelope Envelope View switch Envelope Kbd Envelope 1, 2, 3
LFO LFO View switch LFO Kbd LFO 1, 2, 3
Sequencer Sequencer View switch Sequencer Seq seq bpm (Sequencer BPM)
Settings Shift switch + Sequencer View switch N/A** Set

*Hitting this switch multiple times toggles between Synth 1 View and Synth Env View. Whichever View was active when leaving the View by hitting another View switch will be the view that is active when hitting the Synth 1/Synth Env View switch again. Iosefka always starts up in Synth 1 View.

** When in the Settings View, the most recent layer from the previous view remains active.

Page Switch Function Chart

Kbd

Key switch Function
All Key switches 1 octave + 1 note, in the layout of a piano keyboard

Seq

Key switch Function
Section Up Jogs through the Step Sections counting up
Section Down Jogs through the Step Sections counting down
Generator On/Off Enables/Disables the Generator for Running Generation
Generate New Generates a Pattern via Immediate Generation
1 - 8 Programs the step corresponding to the current Step Section
See Manual Programming subsection for an in-depth description of using these switches to program a Pattern in the Sequencer

Set

Key switch

Function

Save

  • Pressing once readies the Save state
  • Pressing Shift key plus Save Key switch while in Save state saves to the current preset

Load

  • Pressing once readies the Load state
  • Pressing Shift key plus Load Key switch while in Load state loads the current preset

Preset

Sets the Mode to Preset Select

Channel Select

Sets the Mode to Channel Select

Velocity Dst.

Sets the Mode to Velocity Destination Select

Mod Wheel Dst.

Sets the Mode to Mod Wheel Destination Select

Aftertouch Dst.

Sets the Mode to Aftertouch Destination Select

Clock Rx

Enables Clock Receive from the input MIDI source

Transport Rx

Enables Transport Receive from the input MIDI source

Pitch Bend Depth

Sets the Mode to Pitch Bend Depth Select

Param Latch

Under Construction

Layer Parameter Control Chart

In the photos below, the text for each parameter below the Potentiometer is highlighted respective to the current layer.

See "Parameters" sections in The Synthesizer and The Sequencer for in-depth explanations on these Parameters

Synth 1

layer_syn1

Scale/Pitch (Oscillator 1) Scale/Pitch (Oscillator 2) Portamento Mix 1 Cutoff
X Wave (Oscillator 1) X Wave (Oscillator 2) Phase Mod Mix 2 Resonance
Y Wave (Oscillator 1) Y Wave (Oscillator 2) Osc Sync Mix Noise F. Env. Level

Synth Env

layer_syn_env

Scale/Pitch (Oscillator 1) Scale/Pitch (Oscillator 2) Portamento Mix 1 Cutoff
X Wave (Oscillator 1) X Wave (Oscillator 2) Phase Mod Mix 2 Resonance
Attack (Envelope 3) Decay
(Envelope 3)
Sustain
(Envelope 3)
Release
(Envelope 3)
VCA

Synth 2

layer_syn2

Octave
(Oscillator 1)
Octave
(Oscillator 2)
D. Level F. Type Cutoff
X Wave (Oscillator 1) X Wave (Oscillator 2) D. Rate F. FM Resonance
Y Wave
(Oscillator 1)
Y Wave
(Oscillator 2)
D. Fdbk F. Track F. Env. Level

User

Under Construction

Envelope

layer_env

Attack (Envelope 1) Decay
(Envelope 1)
Sustain
(Envelope 1)
Release
(Envelope 1)
- Level +
(Envelope 1)
Attack (Envelope 2) Decay
(Envelope 2)
Sustain
(Envelope 2)
Release
(Envelope 2)
- Level +
(Envelope 2)
Attack (Envelope 3) Decay
(Envelope 3)
Sustain
(Envelope 3)
Release
(Envelope 3)
- Level +
(Envelope 3)

LFO

layer_lfo

Rate
(LFO 1)
Shape
(LFO 1)
Phase
(LFO 1)
Reset/Sync
(LFO 1)
- Level +
(LFO 1)
Rate
(LFO 2)
Shape
(LFO 2)
Phase
(LFO 2)
Reset/Sync
(LFO 2)
- Level +
(LFO 2)
Rate
(LFO 3)
Shape
(LFO 3)
Phase
(LFO 3)
Reset/Sync
(LFO 3)
- Level +
(LFO 3)

Sequencer

layer_seq

Note Octave Length Velocity Transpose
Direction Swing Clock Div. First Step Last Step
Probability / G.Chance G. Mode G. Length G. Repeat G. Octave

Mode Encoder Data Chart

kbd oct (Keyboard Octave)

Sets octave played the Key switches on the Kbd Page in a five octave range from 2 - 7.

Why 2 - 7 and not 0 - 9 for more octaves? This is so that the Synthesizer Octave Parameters are still useful.

seq bpm (Sequencer BPM)

Sets the Sequencer speed from 30 - 300 BPM (beats per minute).

preset (Preset Number)

Selects from the 64 presets on Iosefka. Note that the number counts from 1 - 64, note hexadecimal.

channel (MIDI Channel)

Selects from MIDI channel 1 - 16.

Incoming MIDI messages such as Note On, Note Off, Velocity, CC, Mod Wheel, Aftertouch, which are sent to this channel will take effect according to machine settings. All messages of those types on other channels will be ignored.

Modulation Destination Modes

In these Modes, the Data rotary encoder is used to select the Modulation Destination assigned to the respective Modulation Source.

The options are the same for every Mode below, as all modulation sources have access to all modulation destinations.

Envelope 1, 2, 3

For the Envelopes. To see how to select these modes, refer to the Selecting Envelope and LFO modulation destinations section.

LFO 1, 2, 3

For the LFOs. To see how to select these modes, refer to the Selecting Envelope and LFO modulation destinations section.

vel (Velocity)

For Velocity from both the Sequencer steps and the incoming MIDI notes

m.w. (Mod Wheel)

For Mod Wheel messages coming from the MIDI input

a.t. (Aftertouch)

For Channel Aftertouch messages coming from the MIDI input

Wavetable Chart

Below is a chart of wavetables in Iosefka. The wavetables are represented by X values horizontally and Y values vertically, meaning that when you turn the X Wave Potentiometer, you are scanning the chart below from left to right, and when you turn the Y Wave Potentiometer, you are scanning the table from top to bottom.

The wavetables are arranged in the machine such that each Y value wavetable represents a different type of instrument/timbre/synthesis, and each X value is a variation of that timbre.

waves_cropped

The wavetables represented by the chart above:

  1. Metallized saw wave (1-8), notched saw wave (9-16)
  2. Metallized square wave (1-8), PWM square wave (9-16)
  3. Triangle wave experimentations
  4. Frequency modulated sine (1-8), sine with increasing octaves (9-16)
  5. Drawbar organ tones
  6. Piano (1-8), e piano (9-16)
  7. Clarinet (1-5), Oboe (6-10), saxophone (11-16)
  8. Violin (1-8), cello (9-16)
  9. Electric guitar (1-8), acoustic guitar (9-16)
  10. Asst. wavetables from Mutable Instruments Plaits
  11. Asst. bell sounds
  12. Asst. harmonically-rich wavetables
  13. Formant synthesis wavetables from Mutable Instruments Braids
  14. PPG waveforms
  15. Yamaha-style OPL FM chip waveforms
  16. Assorted Ensoniq wavetables

A higher quality version of the chart below can be found here.

Modulation Destinations

Destination name Affected Parameter(s)
None None
osc 1 pitch c Oscillator 1 coarse pitch across 8 octaves
osc 1 pitch f Oscillator 1 fine pitch across 2 semitones (for vibrato like effect)
osc 1 octave Oscillator 1 octave
osc 1 x morph Oscillator 1 X Wave
osc 1 y morph Oscillator 1 Y Wave
osc 2 pitch c Oscillator 2 coarse pitch across 8 octaves
osc 2 pitch f Oscillator 2 fine pitch across 2 semitones (for vibrato like effect)
osc 2 octave Oscillator 2 octave
osc 2 x morph Oscillator 2 X Wave
osc 2 y morph Oscillator 2 Y Wave
portamento Portamento
phase mod Phase Modulation
sync Oscillator sync
mix osc 1 mix Oscillator 1 Mixer Level
mix osc 2 mix Oscillator 2 Mixer Level
mix noise mix Noise Generator Mixer Level
filter cutoff Filter Cutoff
filter res Filter Resonance
filter env amt Filter Envelope Level
filter type Filter Type
filter fm Filter Frequency Modulation
filter tracking Filter Tracking
delay rate Delay Rate
delay feedback Delay Feedback
delay level Delay Level
env 1 attack Envelope 1 Attack
env 1 decay Envelope 1 Decay
env 1 sustain Envelope 1 Sustain
env 1 release Envelope 1 Release
env 1 level Envelope 1 Level
env 2 attack Envelope 2 Attack
env 2 decay Envelope 2 Decay
env 2 sustain Envelope 2 Sustain
env 2 release Envelope 2 Release
env 2 level Envelope 2 Level
env 3 attack Envelope 3 Attack
env 3 decay Envelope 3 Decay
env 3 sustain Envelope 3 Sustain
env 3 release Envelope 3 Release
env 3 level Envelope 3 Level
lfo 1 rate LFO 1 Rate
lfo 1 shape LFO 1 Shape
lfo 1 phase LFO 1 Phase
lfo 1 sync LFO 1 Reset/Sync
lfo 1 level LFO 1 Level
lfo 2 rate LFO 2 Rate
lfo 2 shape LFO 2 Shape
lfo 2 phase LFO 2 Phase
lfo 2 sync LFO 2 Reset/Sync
lfo 2 level LFO 2 Level
lfo 3 rate LFO 3 Rate
lfo 3 shape LFO 3 Shape
lfo 3 phase LFO 3 Phase
lfo 3 sync LFO 3 Reset/Sync
lfo 3 level LFO 3 Level
vca VCA Level
oscs pitch c Both Oscillators Coarse Pitch across 8 octaves
oscs pitch f Both Oscillators Fine Pitch across 2 semitones
oscs octave Both Oscillators Octave
oscs x morph Both Oscillators X Wave
oscs y morph Both Oscillators Y Wave

Oscilloscope

Users can view the VCA output waveform of the synthesizer using the oscilloscope. The audio is fed back into Iosefka's processor using the same buffer as the delay. The delay output is not displayed in the oscilloscope.

The oscilloscope captures the output waveform in real time and displays them to the user from one of four user selected magnifications. The magnification value shown on the OLED Display shows how zoomed in the oscilloscope is, relative to the samples captured. To best see lower notes, a value of 1x is best. To see higher notes, a value of 8x is best.

Magnification value Sample size Sample division (display every n samples)
1x 1024 8
2x 512 4
4x 256 2
8x 128 1

The oscilloscope is phase-locked to oscillator 1, meaning that the waveform should stay in the same place on the screen regardless of the pitch of the note that's playing. This is done by triggering a reset of the oscillator's capture window when oscillator 1's phase overflows, as indicated by the oscillator sync buffer.

The phase will not appear locked with the audio in the following scenarios:

  • Oscillator 1 and 2 pitch are dissonant
  • Oscillator 1 is low or off, and Oscillator 2 or resonant filter is the primary audio source
  • Oscillator 1's pitch is lower than the magnification can capture in one screen (if the waveform is 'larger' than will fit in one screen)

Only 128 discrete points are rendered for each 'frame' of the oscilloscope, meaning that harmonically rich waveforms, or viewing higher pitches on lower magnifications will make the oscilloscope appear more 'broken up'. While the solution would be to draw a line between each discrete point, this is not possible due to processor limitations. I tried folks.

MIDI Implementation

MIDI CC (Continuous Controller) chart

CC Number Parameter
1 Mod Wheel
10 Pitch (Oscillator 1)
11 Octave (Oscillator 1)
12 X Wave (Oscillator 1)
13 Y Wave (Oscillator 1)
14 Pitch (Oscillator 2)
15 Octave (Oscillator 2)
16 X Wave (Oscillator 2)
17 Y Wave (Oscillator 2)
5 Portamento
18 Phase Modulation
19 Oscillator Sync
20 Mix 1 (Oscillator 1 Mixer Level)
21 Mix 2 (Oscillator 2 Mixer Level)
22 Mix Noise (Noise Generator Mixer Level)
74 Filter Cutoff
71 Filter Resonance
72 Filter Type
73 Filter FM
76 Filter Tracking
75 Filter Envelope Level
25 Attack (Envelope 1)
26 Decay (Envelope 1)
27 Sustain (Envelope 1)
28 Release (Envelope 1)
29 Modulation Level (Envelope 1)
30 Attack (Envelope 2)
31 Decay (Envelope 2)
32 Sustain (Envelope 2)
33 Release (Envelope 2)
34 Modulation Level (Envelope 2)
35 Attack (Envelope 3)
36 Decay (Envelope 3)
37 Sustain (Envelope 3)
38 Release (Envelope 3)
39 Modulation Level (Envelope 3)
40 Rate (LFO 1)
41 Shape (LFO 1)
42 Phase (LFO 1)
43 Reset/Sync (LFO 1)
44 Modulation Level (LFO 1)
45 Rate (LFO 2)
46 Shape (LFO 2)
47 Phase (LFO 2)
48 Reset/Sync (LFO 2)
49 Modulation Level (LFO 2)
50 Rate (LFO 3)
51 Shape (LFO 3)
52 Phase (LFO 3)
53 Reset/Sync (LFO 3)
54 Modulation Level (LFO 3)
55 Modulation Destination (Envelope 1)
56 Modulation Destination (Envelope 2)
57 Modulation Destination (Envelope 3)
58 Modulation Destination (LFO 1)
59 Modulation Destination (LFO 2)
60 Modulation Destination (LFO 3)
61 Delay Rate
62 Delay Feedback
63 Delay Level

Credits and Acknowledgements

Iosefka is created by Cory Oleson under the title Global Sequence.

Iosefka would not be possible without the explicit help of many helpful anonymous strangers on the internet, and the implicit assistance of countless open source projects on the internet.

An extra special shout out goes to Frédéric Meslin of Fred's Lab and Èmilie Gillet of the late Mutable Instruments. Also for Maffez's version of the 2140 pole mixing filter which was very helpful alongside Sound Semiconductor's documentation.

This synthesizer is fully open source under the GPL-3.0 license.

Clone this wiki locally