Note to Be User Manual
🎯 Overview & Philosophy
Note to Be is a sophisticated MIDI note quantizer and filter that transforms incoming MIDI data to conform to musical scales and custom note selections. Unlike traditional quantizers that only work with timing, Note to Be operates on the pitch domain, allowing you to:
- Quantize incoming MIDI notes to the nearest allowed note in your custom scale
- Filter out disallowed notes completely, creating a musical firewall
- Convert MIDI CC values into MIDI notes using the same quantization/filtering logic
- Support full microtonality through Scala file integration with per-note pitch bend
- Enable polyphonic microtonal expression via MPE (Multidimensional Polyphonic Expression)
Core Concept
Note to Be operates on a simple but powerful principle: you define which of the 128 MIDI notes (0-127) are "allowed," and the app either quantizes incoming notes to the nearest allowed note or filters them out entirely based on your preference.
This makes it perfect for:
- Modal music creation - lock to specific scales and modes
- Microtonal composition - use Scala files for precise tuning systems
- Live performance filtering - prevent "wrong" notes during improvisation
- Educational tools - force adherence to specific harmonic concepts
- Experimental music - create custom note sets and tuning systems
🔧 Core Architecture
MIDI Note Quantization
When quantization mode is enabled, Note to Be finds the nearest allowed note for any incoming MIDI note and outputs that instead.
Quantization Algorithm
1. Receive incoming MIDI note (0-127)
2. Check if note is in allowed notes list
3. If yes → Output note unchanged
4. If no → Find nearest allowed note using binary search
5. Output quantized note with original velocity and channel
6. Apply microtonal pitch bend if Scala tuning is active
Tie-Breaking
When a note is equidistant from two allowed notes, the algorithm chooses the lower note. For example, if F# (66) is equally distant from F (65) and G (67), it will quantize to F (65).
The quantization uses a high-performance binary search algorithm with cached active note indices for O(log n) lookup time, ensuring real-time performance even with complex scales.
MIDI Note Filtering
When filtering mode is enabled, Note to Be acts as a musical firewall - only allowed notes pass through, while disallowed notes are completely ignored.
Filtering Behavior
- Allowed notes → Pass through unchanged with original velocity, timing, and channel
- Disallowed notes → Completely ignored (no MIDI output)
- Note-off messages → Only processed for notes that were previously allowed
This creates a "safe zone" where only harmonically appropriate notes can be played, perfect for educational scenarios or live performance constraints.
MIDI CC to Note Conversion
Note to Be can treat MIDI Continuous Controller (CC) values as note numbers, applying the same quantization or filtering logic.
CC Processing
1. Receive MIDI CC message (CC number + value 0-127)
2. Treat CC value as MIDI note number
3. Apply quantization/filtering based on current pattern
4. Output as MIDI note with CC number preserved for tracking
5. CC value 0 always means "note off"
CC Replacement Logic
When multiple CC messages arrive on the same CC number and channel:
- New CC message automatically turns off previous note
- Prevents overlapping notes from the same CC source
- Maintains clean polyphony management
🎨 User Interface
Octave-Based Layout
The interface is organized into octave views (C0-C9), with each octave displaying a piano keyboard layout where you can select individual notes.
Visual Elements
- White keys - Natural notes (C, D, E, F, G, A, B)
- Black keys - Accidental notes (C#, D#, F#, G#, A#)
- LED indicators - Show which notes are active/selected
- Key highlighting - Real-time visual feedback during playback
- Octave controls - Per-octave select all/none functions
Responsive Design
- Automatically adapts to screen size and orientation
- Optimized for both iPhone and iPad
- Seamless integration in AUv3 plugin windows
Note Selection Interface
Individual Note Selection
- Tap any key to toggle its active state
- Visual feedback via LED indicators
- Real-time updates across all octave views
- Keyboard labels can be toggled on/off
Octave Controls
- Select All - Activates all scale notes in the octave
- Clear All - Deactivates all notes in the octave
- Visual state indication - Different icons for empty vs. populated octaves
Global Selection Modes
- All Keys Mode - Changes apply to all octaves simultaneously
- Single Octave Mode - Changes apply only to current octave
Control Panel
Scale Selection
- Quick scale picker with common scales (Major, Minor, Dorian, etc.)
- Visual scale preview before application
- Automatic note highlighting based on selected scale
Key Selection
- Chromatic key picker (C, C#, D, D#, etc.)
- Enharmonic spelling automatically determined by scale choice
- Real-time transposition of active note pattern
Pattern Management
- Multiple patterns (switches via MIDI CC or UI)
- Pattern copying/pasting via long-press menu
- Pattern deletion with confirmation
- Real-time pattern switching during performance
🎼 Musical Configuration
Keys and Scales
Supported Keys
All 12 chromatic keys with proper enharmonic spelling:
- Sharp keys: C, G, D, A, E, B, F#, C#
- Flat keys: F, Bb, Eb, Ab, Db, Gb, Cb
Scale Library
Comprehensive collection of musical scales:
- Western modes: Major, Minor, Dorian, Phrygian, Lydian, Mixolydian, Locrian
- Pentatonic scales: Major pentatonic, Minor pentatonic
- World music scales: Blues, Whole tone, Diminished
- Custom scales via individual note selection
Automatic Scale Application
When you select a key/scale combination:
- All notes are automatically set based on the scale
- Enharmonic spelling is determined by the key center
- Visual feedback shows the scale pattern across all octaves
- Changes take effect immediately
Note Selection Modes
Scale-Based Selection
- Choose from predefined scales for quick setup
- Automatic transposition to any key center
- Intelligent enharmonic spelling
Manual Selection
- Individual note selection for custom scales
- Per-octave or global selection modes
- Visual feedback for complex patterns
Hybrid Approach
- Start with a scale, then customize by adding/removing notes
- Combine multiple scales or create variations
- Save custom patterns for later recall
Pattern Management
Multiple Patterns
- Support for multiple independent patterns
- Switch between patterns via MIDI CC messages
- Each pattern stores its own scale, key, and note selection
Pattern Operations
- Copy/Paste - Duplicate patterns for variations
- Delete - Remove unused patterns (minimum 1 required)
- Reorder - Organize patterns for live performance
MIDI Pattern Switching
- Configurable MIDI CC number for pattern changes
- Channel-specific pattern switching
- Real-time switching during performance
🎹 MIDI Processing
Note Messages
- Note On - Processed through quantization/filtering
- Note Off - Tracked and processed for held notes
- Velocity - Preserved through processing
- Channel - Input channel used for output
Real-Time Processing
- Zero-latency note processing
- Polyphonic - Multiple simultaneous notes supported
- Voice management - Intelligent handling of overlapping notes
Channel Management
Standard MIDI Mode
- Input channel specified in settings
- Output uses same channel as input
- Supports all 16 MIDI channels
MPE Mode
- Automatic MPE channel allocation (channels 1-15)
- Channel 0 reserved for master channel
- Per-note channel assignment for polyphonic expression
Velocity Handling
Velocity Preservation
- Original note velocity always preserved
- No velocity scaling or modification
- Full dynamic range maintained (1-127)
Velocity-Sensitive Features
- Visual feedback intensity based on velocity
- Consistent velocity mapping through quantization
🎛 MIDI CC Features
CC to Note Conversion
When MIDI CC mode is enabled, Note to Be treats incoming CC values as MIDI note numbers.
CC Processing Logic
CC Message: CC1 = 60 (on channel 1)
↓
Treated as: Note 60 (Middle C) on channel 1
↓
Apply current pattern quantization/filtering
↓
Output: Quantized MIDI note
CC Tracking
- Each CC number/channel combination tracked independently
- CC value 0 always means "note off"
- Automatic cleanup of held CC notes
Pattern Switching via CC
Configuration
- Pattern CC Number - Configurable in settings (default: CC10)
- Input Channel - Specify which channel triggers pattern changes
- CC Value Mapping - CC value 1 = Pattern 0, CC value 2 = Pattern 1, etc.
Real-Time Switching
- Immediate effect - Pattern changes take effect instantly
- Held note management - Existing notes continue on new pattern
- Visual feedback - UI updates to show current pattern
CC Mode Toggle
Enable/Disable
- Global CC mode setting - Enable/disable CC to note conversion
- Independent of pattern CC - Pattern switching always works
- Real-time toggling - Can be changed during performance
CC Channel Behavior
- CC mode accepts CC on any channel
- Pattern CC respects channel filtering
- Separate processing paths for maximum flexibility
🎵 Microtonal Support
Note to Be includes comprehensive microtonal support through Scala file integration, enabling precise microtuning with per-note pitch bend values.
Scala File Integration
- Full .scl file parsing - Supports standard Scala file format
- Ratio and cents notation - Both fractional ratios (3/2) and cents values (701.955)
- Automatic octave reduction - Scales normalized to single octave
- 5000+ built-in scales - Extensive library of microtonal scales included
Scala Processing
1. Parse Scala file for frequency ratios/cents
2. Convert to frequency space
3. Calculate pitch bend values for each MIDI note
4. Map to synthesizer's pitch bend range
5. Apply pitch bend with quantized notes
iCloud Scala Import
File Import
- iCloud Drive integration - Access Scala files from iCloud
- Standard iOS file picker - Import from any file source
- Automatic file validation - Ensures proper Scala format
- Real-time preview - Hear tuning before applying
Library Management
- Built-in scale library - 5000+ professionally curated scales
- User imports - Add your own custom Scala files
- Quick access - Recently used scales for easy recall
Pitch Bend Range Configuration
Synthesizer Compatibility
Different synthesizers have different pitch bend ranges. Note to Be supports:
- ±1 semitone (±100 cents)
- ±2 semitones (±200 cents) - Most common
- ±3, ±4, ±5, ±7, ±12, ±24, ±48, ±96 semitones
Critical Setting
The pitch bend range MUST match your target synthesizer's setting for accurate microtuning. Mismatch will result in incorrect intonation.
Range Selection
Example: For a synth set to ±2 semitones:
- Note to Be pitch bend range: ±2 semitones (±200 cents)
- MIDI pitch bend value: 0-16383 (8192 = center)
- Microtonal deviation: ±200 cents maximum
Microtonal Quantization
Pitch Bend Application
When microtuning is active:
- Quantize to nearest allowed 12-ET note
- Calculate microtonal deviation from Scala file
- Apply pitch bend value for precise tuning
- Output MIDI note + pitch bend data
Per-Note Tuning
- Each MIDI note gets individual pitch bend value
- Supports complex scales with irregular intervals
- Real-time calculation and output
🎸 MPE (Multidimensional Polyphonic Expression)
MPE mode enables polyphonic microtonal expression by allocating separate MIDI channels for each note, allowing individual pitch bend control.
MPE Channel Allocation
Channel Management
- Master channel: Channel 0 (global controls)
- Voice channels: Channels 1-15 (individual notes)
- Automatic allocation: Each note gets unique channel
- Voice stealing: Oldest notes replaced when all channels used
MPE Setup
Enable MPE Mode:
1. Turn on MPE in settings
2. Configure pitch bend range to match target synth
3. Notes automatically get individual channels
4. Each note can have independent pitch bend
Per-Note Pitch Bend
Individual Expression
In MPE mode, each note can have:
- Independent pitch bend - Per-note microtonal tuning
- Separate channel - No interference between notes
- Polyphonic microtonality - Multiple notes with different tunings
MPE Message Flow
Input: Note 60 (C4)
↓
Allocate MPE channel: Channel 3
↓
Calculate microtonal pitch bend: -14 cents
↓
Output: Note 60 on channel 3 + pitch bend value
Polyphonic Microtonality
True Polyphonic Tuning
Unlike standard MIDI where pitch bend affects all notes on a channel, MPE allows:
- Simultaneous notes with different tunings
- Complex chords in microtonal scales
- Individual note expression within polyphonic context
Practical Applications
- Microtonal chords - Play just intonation chords
- Xenharmonic music - Explore non-12-tone scales
- World music - Authentic reproduction of traditional tunings
- Experimental music - New harmonic possibilities
🔌 AUv3 Plugin Mode
Note to Be functions as a full-featured AUv3 (Audio Unit version 3) plugin, integrating seamlessly with iOS DAWs and music apps.
Host Integration
Supported Hosts
- GarageBand - Apple's consumer DAW
- Logic Pro for iPad - Professional music production
- AUM - Advanced audio mixer and host
- Cubasis - Professional mobile DAW
- BeatMaker 3 - Beat production and sampling
- Loopy Pro - Live looping and performance
- Any AUv3-compatible host
Plugin Features
- MIDI Effect plugin - Processes MIDI, no audio
- Resizable interface - Adapts to host window size
- State preservation - Complete recall of all settings
- Real-time operation - Zero-latency processing
Parameter Automation
Automatable Parameters
- Pattern selection - Switch patterns via automation
- Key selection - Transpose key center
- Scale selection - Change scales over time
- Individual notes - Automate note on/off states
Host Integration
- DAW automation - Record parameter changes as automation
- MIDI control - Use MIDI CC to control parameters
- Timeline integration - Sync changes to song position
Preset Management
Factory Presets
- Default - Standard 12-tone equal temperament
- Additional presets for common scales and microtonal systems
User Presets
- Save current state - Capture all settings as preset
- Recall presets - Instant restoration of complete configuration
- Cross-session persistence - Presets saved between sessions
Full State Management
Preset includes:
- All pattern configurations (notes, keys, scales)
- Microtonal settings (Scala files, pitch bend range)
- MIDI settings (channels, CC numbers, MPE mode)
- UI settings (keyboard labels, selection modes)
🧠 BrainBud Integration
Note to Be integrates with the BrainBud ecosystem for advanced music theory operations.
Universal MIDI Channel
BrainBud Communication
- Shared app group - Communication via iOS app groups
- Key/scale synchronization - Automatic updates from BrainBud
- Program change trigger - MIDI PC 69 triggers sync
Synchronization Process
1. BrainBud updates key/scale in shared storage
2. Send MIDI Program Change 69 to Note to Be
3. Note to Be reads new key/scale from shared storage
4. Apply new settings to current pattern
5. Update UI to reflect changes
Integration Benefits
- Seamless workflow - Changes in BrainBud reflected in Note to Be
- Complex music theory - Leverage BrainBud's advanced features
- Educational applications - Coordinated learning tools
⚙️ Settings & Configuration
MIDI Settings
Channel Configuration
- MIDI Input Channel - Which channel to listen for notes
- MIDI Output Channel - Defined but uses input channel
- Pattern CC Number - CC number for pattern switching
- CC Input Channel - Channel for pattern CC messages
Processing Options
- Quantization Mode - Enable/disable note quantization
- MIDI CC Mode - Enable/disable CC to note conversion
- MPE Mode - Enable/disable MPE channel allocation
Interface Settings
Visual Options
- Keyboard Labels - Show/hide note names on keys
- All Keys Toggle - Enable global vs. per-octave editing
Interaction Settings
- Knob Control Type - Rotary vs. linear control behavior
- Visual feedback - Real-time highlighting options
Microtonal Settings
Tuning Configuration
- Scala File Selection - Choose active microtonal scale
- Pitch Bend Range - Configure synthesizer compatibility
- Middle C Settings - Reference frequency and octave
💡 Tips & Best Practices
Getting Started
- Start simple - Begin with basic major/minor scales
- Learn the interface - Practice note selection before live use
- Test with your synths - Verify MIDI routing before performance
- Save presets - Create presets for your common scales
- Use pattern switching - Pre-configure patterns for song sections
- Enable filtering mode - Prevent wrong notes during improvisation
- Check MIDI channels - Ensure proper routing in complex setups
- Practice transitions - Rehearse pattern changes before shows
Microtonal Exploration
- Start with pitch bend ±2 - Most common synthesizer setting
- Verify tuning accuracy - Use reference tones to check intonation
- Use MPE for chords - Enable polyphonic microtonal harmony
- Explore built-in scales - 5000+ scales for inspiration
Studio Production
- Record MIDI - Capture both input and quantized output
- Use automation - Record parameter changes over time
- Layer instances - Multiple Note to Be instances for complex routing
- Document settings - Keep notes on successful configurations
Troubleshooting
- No output - Check MIDI routing and allowed notes
- Wrong tuning - Verify pitch bend range matches synth
- Missing notes - Ensure notes are selected in current pattern
- Channel conflicts - Check MIDI channel assignments
Links
Note to Be - Transform your MIDI into musical perfection