-
Notifications
You must be signed in to change notification settings - Fork 1
Iosefka Manual
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


- OLED Display
- Data Rotary Encoder - (with switch when pressing down on shaft)
- Shift switch
- Play/Stop switch
- Layer LEDs
- View switches
- Page LEDs
- Key switches
- Potentiometers
- Volume knob
- Output Audio jack
- External Input Audio Jack
- Filter tracking tuning trimpot
- Filter offset trimpot
- MIDI Output jack
- MIDI Input jack
- Power supply jack - (9v DC - Center positive)


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
- V2140 based analog pole-mixing resonant voltage controlled filter with audio rate frequency modulation selectable between:
-
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
-
MIDI RX
-
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.
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.
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.
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:
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.
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.
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.
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 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.
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
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.
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).
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.
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 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.
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.
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.

To see a list of all the Pages and their corresponding Key switch functions, visit the Page Switch Function Chart section of this document.
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.

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.

To see a list of all the Layers and their corresponding Potentiometer Parameters, visit the Layer Parameter Control Chart section of this document.
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.
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.
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.
Iosefka contains 64 presets which allow for the saving of every machine Parameter, including sequencer Parameters and steps.
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.
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.
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.
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.
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.
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.
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.
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 |
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 |
Along with the oscillators, there is a white noise generator.
Parameters:
none
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 |
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 |
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:
|
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. |
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 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)
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.
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' |
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' |
The following Modulation Sources can be found in the Settings View, where their corresponding Modulation Destinations can be configured, if applicable.
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
Along with Velocity controls, most modern MIDI controllers have a Mod Wheel. Mod wheel is only controllable via MIDI.
Parameters:
None
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
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.
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 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
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.
These are the Parameters available in the Sequencer View, specifically the Sequencer Layer.
Parameter name |
Function |
|---|---|
Note |
|
Octave |
|
Length |
|
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:
|
Swing |
Sets the rhythmic swing, dividing the 12 clock ticks between every two halfnotes:
|
Clock Div. (Clock Divide) |
Multiplies or divides the number of ticks per quarternote, making the sequence slower or faster:
|
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) |
|
G. Mode (Generator Mode) |
The musical mode generated by the Generator
|
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. |
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.
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
With the Seq Page active, a Pattern can be readily programmed into Iosefka's Sequencer.
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
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.
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 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.
Pressing the Generate New Key switch will immediately generate a new pattern regardless of the state of the Generator, number of repeats remaining, etc.
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.
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.
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.
| Key switch | Function |
|---|---|
| All Key switches | 1 octave + 1 note, in the layout of a piano keyboard |
| 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 |
Key switch |
Function |
|---|---|
Save |
|
Load |
|
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 |
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

| 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 |

| 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 |

| 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 |
Under Construction

| 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) |

| 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) |

| Note | Octave | Length | Velocity | Transpose |
| Direction | Swing | Clock Div. | First Step | Last Step |
| Probability / G.Chance | G. Mode | G. Length | G. Repeat | G. 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.
Sets the Sequencer speed from 30 - 300 BPM (beats per minute).
Selects from the 64 presets on Iosefka. Note that the number counts from 1 - 64, note hexadecimal.
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.
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.
For the Envelopes. To see how to select these modes, refer to the Selecting Envelope and LFO modulation destinations section.
For the LFOs. To see how to select these modes, refer to the Selecting Envelope and LFO modulation destinations section.
For Velocity from both the Sequencer steps and the incoming MIDI notes
For Mod Wheel messages coming from the MIDI input
For Channel Aftertouch messages coming from the MIDI input
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.

The wavetables represented by the chart above:
- Metallized saw wave (1-8), notched saw wave (9-16)
- Metallized square wave (1-8), PWM square wave (9-16)
- Triangle wave experimentations
- Frequency modulated sine (1-8), sine with increasing octaves (9-16)
- Drawbar organ tones
- Piano (1-8), e piano (9-16)
- Clarinet (1-5), Oboe (6-10), saxophone (11-16)
- Violin (1-8), cello (9-16)
- Electric guitar (1-8), acoustic guitar (9-16)
- Asst. wavetables from Mutable Instruments Plaits
- Asst. bell sounds
- Asst. harmonically-rich wavetables
- Formant synthesis wavetables from Mutable Instruments Braids
- PPG waveforms
- Yamaha-style OPL FM chip waveforms
- Assorted Ensoniq wavetables
A higher quality version of the chart below can be found here.
| 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 |
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.
| 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 |
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.