In Theory User Manual

In Theory is an interval-based MIDI performance instrument. Its keypad walks through a chosen scale, while three interval rows turn each gesture into a chord. It responds immediately to touch or MIDI input and has no sequencer clock or tempo.

Table of Contents

  1. Quick Start
  2. Core Concept
  3. Interface Overview
  4. Playing the Keypad
  5. Building Chords
  6. Circle, Key, Scale, and Octave Range
  7. Patterns
  8. External MIDI Control
  9. Standalone Sampler and MIDI Routing
  10. AUv3 Plugin
  11. Settings
  12. Tips
  13. Troubleshooting
  14. Links

Quick Start

  1. Enable the standalone sampler or route In Theory's MIDI output to an instrument.
  2. Choose a Key and Scale.
  3. Tap 0 to play the current scale note.
  4. Tap positive and negative keypad buttons to walk forward or backward through the scale.
  5. Select intervals in the three chord rows to build a voicing.

In Theory is played directly. It does not need transport playback, BPM, or Ableton Link.

Core Concept

The 0 button represents a movable cursor in a ladder of notes built from the current key, scale, and octave range. Pressing +1 moves one scale degree forward before sounding; −1 moves one degree backward. Larger values move by more degrees.

This movement is cumulative. If you press +2 and then +1, the second chord begins one scale degree above the position reached by the first. Use Root whenever you want to return to the pattern's root in the middle of its octave range.

The selected chord intervals are calculated from the new cursor position, so the same keypad gesture produces scale-aware voicings across the pattern.

Interface Overview

Playing the Keypad

The keypad range can be set from 1 to 16 in Settings. It creates matching negative and positive buttons around 0.

Press and hold a button to sound its chord; release it to send note-offs. You can slide across the keypad to move between buttons. A move that would fall outside the configured octave ladder produces no new chord.

Output velocity defaults to 90 and can be set from 0 to 127 in Settings. Touches use this pattern velocity, while an external MIDI note uses its incoming velocity.

Building Chords

Each interval row offers the scale degrees 1 through 7 with natural, flat, and sharp variants:

Tap an interval to add or remove it. Multiple selections sound together, allowing wide voicings that combine close chord tones with octave-displaced extensions. Clear restores only the natural first degree in the normal octave.

Generated notes are limited to the valid MIDI range 0 through 127.

Circle, Key, Scale, and Octave Range

Tap Key or Scale to change the pattern's musical material. The circle updates to show the scale's keys. Tapping a circle key moves the current cursor by the shortest available distance within the scale.

Use Min Oct and Max Oct to choose the playable range from octave −1 through 9. If the values are reversed, In Theory still builds the ladder between the lower and higher value. Changing either boundary recenters the cursor.

Tap Root to return to the pattern root in the middle octave. The AUv3 parameter list also provides separate triggers for returning to the middle-octave root or to the root in the current octave.

Patterns

Patterns store the key, scale, velocity, octave limits, current cursor position, chord intervals, and keypad range.

Tap a numbered pattern to select it. Tap + to create a new pattern using the current key and scale. Long-press a pattern for Copy, Paste, and Delete. At least one pattern is always retained.

The Patterns title shows the CC number assigned to remote pattern selection.

External MIDI Control

An external keyboard maps its natural notes onto the keypad:

Incoming note velocity becomes the chord's output velocity. Pitch bend is passed through to the MIDI output.

Remote-control defaults are:

A nonzero value on Patterns CC selects pattern value using 1-based numbering. Interval CC values 0 through 62 address the 63 visible interval choices: +1-octave intervals first, normal intervals next, then −1-octave intervals. Sending the CC value toggles that interval.

Program Change 69 requests BrainBud key/scale synchronization from the shared Bud app settings.

Standalone Sampler and MIDI Routing

The standalone app includes an optional SoundFont sampler for immediate auditioning. Settings provides Sampler Enabled, Volume, and Preset controls. You can use the sampler and external MIDI output together.

The standalone app offers In Theory MIDI In and In Theory MIDI Out virtual ports, selectable physical MIDI inputs and outputs, and MIDI Panic. It intentionally has no BPM or Ableton Link section because its chords respond directly rather than running on a clock.

AUv3 Plugin

Load Cem Olcay: In Theory as an AUv3 MIDI Processor and route its MIDI output, named In Theory, to an instrument. The plugin contains no internal sound source.

The host can automate Pattern, Scale, Key, Octave Min, Octave Max, Velocity, Return to Mid Root, and Return to Root. The single factory preset is Default. Complete pattern and settings state is saved with the host project, and separate plugin instances keep independent state.

Settings

Shared settings include:

The standalone Settings screen additionally includes sampler controls, virtual and physical MIDI ports, and MIDI Panic.

Tips

Troubleshooting

No sound: Enable the standalone sampler, or route In Theory MIDI Out/AUv3 MIDI output to an instrument. Check the MIDI Out Channel against the receiving instrument.

A keypad button does nothing: The move may exceed the current Min Oct/Max Oct ladder. Return to Root, widen the octave range, or use a smaller keypad offset.

External keys do not trigger the keypad: Use mapped natural notes from A1 through E6, centered on C4, and verify the MIDI source is enabled. C♯ and D♯ are navigation commands, not chord triggers.

Pattern CC does not work: Match Patterns CC# and MIDI In Channel, send a value of 1 or higher, and ensure that pattern exists.

Interval CC toggles the wrong row: Values 0–20 address +1 Octave, 21–41 address Chord Interval, and 42–62 address −1 Octave. Confirm the Interval MIDI In Channel and Interval CC#.

Notes remain held: Release the originating touch/key, change patterns, press Clear if the issue is voicing-related, or use MIDI Panic in standalone Settings.

AUv3 is missing: Launch the standalone app once after installation, restart the host, and rescan Audio Units. Confirm the host supports AUv3 MIDI processors and MIDI output routing.