Editing Notes
Learn how to modify existing notes in your composition.
Selecting Notes
Before editing, select a note:
- Click on a note rectangle in the workspace
- The note is highlighted
- The Variable Widget appears with editable properties
Visual Editing (Workspace)
Moving Notes
- Select a note by clicking on it
- Drag the center of the note rectangle
- The note moves in time (horizontal) and frequency (vertical)
- Release to place at the new position
Grid snapping: Notes snap to sixteenth-note intervals in time.
Dependency preview: Notes that depend on this one show their projected new positions.
Resizing Notes (Duration)
- Select a note
- Drag the right edge (resize handle)
- The duration changes
- Dependent notes (those starting after this one ends) update their positions
Octave Transposition
- Select a note
- Look for the + and - octave regions above and below the note
- Click + to transpose up one octave (multiply frequency by 2)
- Click - to transpose down one octave (divide frequency by 2)
Property Editing (Variable Widget)
Editing Frequency
Quick method: Use octave +/- buttons
Expression method:
- Find the frequency row
- Click on the Raw field
- Enter a new expression:
// Major third above BaseNote
module.baseNote.getVariable('frequency').mul(new Fraction(5, 4))
// Perfect fifth above Note 3
module.getNoteById(3).getVariable('frequency').mul(new Fraction(3, 2))
// Exact frequency in Hz
new Fraction(440)- Click Save
Editing Start Time
- Find the startTime row
- Click on the Raw field
- Enter a new expression:
// Start at time 0
new Fraction(0)
// Start when Note 2 ends
module.getNoteById(2).getVariable('startTime')
.add(module.getNoteById(2).getVariable('duration'))
// Start 2 beats after BaseNote
module.baseNote.getVariable('startTime').add(new Fraction(2))- Click Save
Editing Duration
Quick method: Use the note-length icons (whole, half, quarter, eighth, sixteenth)
Dot modifiers: Add 50% or 75% to the duration
Expression method:
- Find the duration row
- Click on the Raw field
- Enter a new expression:
// 1 beat
new Fraction(1)
// Half note (2 beats) at current tempo
new Fraction(60).div(module.findTempo(module.baseNote)).mul(new Fraction(2))
// Same duration as Note 3
module.getNoteById(3).getVariable('duration')- Click Save
Changing Instrument
- Find the instrument dropdown
- Select from available instruments:
- Sine wave (default)
- Square wave
- Sawtooth wave
- Triangle wave
- Organ
- Vibraphone
- Piano (sample)
- Violin (sample)
Changing Color
- Find the color field
- Enter a CSS color value:
rgba(255, 100, 100, 0.7) // Red, 70% opacity
rgba(100, 200, 100, 0.7) // Green
#ff6600 // Orange (hex)Batch Operations
Evaluate to BaseNote
Converts all references to direct BaseNote-relative expressions:
- Select a note
- Click "Evaluate to BaseNote" in the Variable Widget
This simplifies complex dependency chains.
Evaluate Module
Evaluates all notes in the module at once:
- Open the Variable Widget on any note
- Click "Evaluate Module"
Useful for "flattening" a module before sharing.
Deleting Notes
Safe Delete
- Select the note
- Click "Delete and Keep Dependencies"
- The note is removed
- Dependent notes update their references
Cascade Delete
- Select the note
- Click "Delete and Remove Dependencies"
- The note AND all notes that depend on it are removed
Check Dependencies First
Look at the red dependency lines before deleting. Cascade delete can remove many notes.
Pre-Delete Preparation
To delete a note that others depend on without losing those notes:
- Select the note
- Click "Liberate Dependencies"
- Dependent notes now have their own independent values
- Delete the note safely
Undo/Redo
All edits can be undone:
- Undo:
Ctrl/Cmd + Z - Redo:
Ctrl/Cmd + Y
History is maintained for up to 50 changes.
Tips
- Edit expressions carefully - Syntax errors prevent saving
- Watch the evaluated value - Verify your expression produces the expected result
- Use dependencies wisely - They enable powerful cascading changes
- Liberate before deleting - Preserve dependent notes when removing their source
- Test with playback - Hear your changes to verify they sound correct