Presets Browser
The Presets Browser provides quick access to bundled NeuroScript examples and user-created presets, making it easy to explore MIDI transforms without starting from scratch.
Opening the Presets Browser
In Route Editors:
- Create or edit a route with a NeuroScript transform
- Click the "Browse Examples" button (book icon) in the script editor
- The Presets Browser opens as a sheet
The browser displays all available presets organized by category, with search and filtering capabilities.
Preset Sources
Bundled Presets
Shipped with Neurode MIDI, located in Resources/Presets/Examples/.
- Artifact-backed - Stored as
.nssignedartifacts with embedded NeuroScript source - Source-first in the browser - The browser opens the embedded source into the editor
- Verification-aware - Signed compiled fallback handling still depends on the current signing readiness and security policy
- Examples - Demonstrate language features and common patterns
- Read-only - Cannot be modified (but can be duplicated to user presets)
Categories include:
- Filters - Drop unwanted events (drum filtering, CC noise reduction)
- Transforms - Modify events (transposition, velocity scaling, channel remapping)
- Routing - Advanced routing logic (keyboard splits, multi-destination routing)
- Effects - MIDI effects (echo, stutter, arpeggiation)
- Examples - Teaching examples for language features
User Presets
Created by you, stored in ~/Library/Application Support/NeurodeMIDI/Presets/.
- Unsigned - No signature verification (trust your own code)
- Editable - Full control over content
- Discoverable - Automatically detected and shown in browser
- Exportable - Share with other users or back up to cloud storage
To create a user preset:
- Write a NeuroScript transform you want to save
- Save the file to
~/Library/Application Support/NeurodeMIDI/Presets/ - Use
.nsextension (e.g.,my-transform.ns) - Reopen the Presets Browser to see it appear
Naming conventions:
category-name-description.nsExamples:
filter-drums-kick-snare-only.nstransform-transpose-octave-doubler.nseffect-echo-two-taps.ns
Browsing Presets
Category Filtering
Tap category pills at the top to filter by category:
- All - Shows all presets (default)
- Filters, Transforms, Routing, Effects, Examples - Bundled categories
- User - Shows only your user presets
Active category is highlighted with accent color.
Search
Use the search field to find presets by:
- Name - Preset title
- Description - Preset description text
- Tags - Metadata tags (e.g., "velocity", "channel", "transpose")
Search is case-insensitive and matches partial words.
Example searches:
velocity- Finds all presets that manipulate velocitychannel- Finds channel filtering/routing presetstranspose- Finds transposition examples
Loading a Preset
- Tap a preset row to load it
- Loading indicator appears while preset is loaded
- Editor closes and preset source populates the script editor
- Compilation begins automatically
Preset does not replace your current script - you can undo by pressing Cmd+Z or closing without saving.
Preset Metadata
Each preset row displays:
- Icon - Category-specific icon with color coding
- Name - Preset title
- Description - What the preset does
- Tags - Keywords for search and categorization
- Source badge - "User" badge for user presets
Color coding:
| Category | Color | Icon |
|---|---|---|
| Filters | Orange | 3 horizontal lines with decrease |
| Transforms | Blue | Triangle swap arrows |
| Routing | Green | Branch arrows |
| Effects | Purple | Waveform ECG |
| Examples | Teal | Book |
| User | Gray | Person |
Managing User Presets
Adding User Presets
Method 1: Save from Editor
- Write a NeuroScript transform
- Click File → Export → Save as Preset
- Choose location: User Presets folder opens automatically
- Save with
.nsextension
Method 2: Manual File Creation
- Create a
.nsfile in a text editor - Save to
~/Library/Application Support/NeurodeMIDI/Presets/ - Add optional metadata as comments at top of file:
# Name: My Custom Transform
# Category: transforms
# Description: Does something cool with velocities
# Tags: velocity, scaling, dynamics
# Your NeuroScript code here
when type == note : {
velScale(0.8)
send
}Revealing User Presets Folder (macOS)
Quick access:
- Open Presets Browser
- Click "Open Presets Folder" button (folder icon in toolbar)
- Finder opens to user presets directory
Manual navigation:
~/Library/Application Support/NeurodeMIDI/Presets/In Finder:
- Go → Go to Folder (Cmd+Shift+G)
- Paste path above
- Click Go
Organizing User Presets
Subfolders are supported - create categories:
~/Library/Application Support/NeurodeMIDI/Presets/
├── Filters/
│ ├── drums-only-kick-snare.ns
│ └── cc-noise-filter.ns
├── Transforms/
│ ├── transpose-octave-up.ns
│ └── velocity-boost.ns
└── Live Set A/
├── intro-filter.ns
└── chorus-transpose.nsPresets are discovered recursively - subfolders are searched automatically when reloading.
Deleting User Presets
- Reveal presets folder (see above)
- Delete the
.nsfile in Finder - Reload Presets Browser (close and reopen) to refresh list
Preset File Format
Bundled presets ship as .nssigned artifacts with embedded source and signature.
The browser reads that embedded source into the editor. Signed compiled fallback verification and import still depend on the current signing readiness and security policy.
User presets use .ns (plain NeuroScript source text).
Creating a User Preset
Minimum valid preset:
# User preset with just code
keep noteRecommended format with metadata:
# Name: Channel Filter - Piano Only
# Category: filters
# Description: Keep only channel 1 notes (piano part)
# Tags: channel, filter, piano
# Keep only channel 1 note events
keep note where ch == 1Metadata fields (optional, all use # comments at top of file):
# Name:- Display name in browser (defaults to filename)# Category:- Category ID (filters, transforms, routing, effects, user)# Description:- What the preset does# Tags:- Comma-separated search keywords
Signing User Presets (Advanced)
User presets are unsigned by default, but you can sign them for verification:
- Enable Script Signing in Settings → Security
- Use
neuroscript-signCLI tool (requires Neurode developer key) - Signed presets use
.nssignedextension
Most users do not need signing - it's primarily for distributing presets to other users and ensuring integrity.
Preset Examples
Filter: Drop Drums and CC Noise
# Name: Drop Drums and CC Noise
# Category: filters
# Description: Removes drum channel and high CC numbers
# Tags: filter, drums, cc, noise
drop note where ch == 10
drop cc where cc in 64..127Transform: Octave Doubler
# Name: Octave Doubler
# Category: transforms
# Description: Adds a note one octave higher for each note
# Tags: transpose, octave, harmony
when type == note : {
send through
emit.noteOn(ch, note + 12, vel)
}Effect: Stutter Echo (Two Taps)
# Name: Stutter Echo (Two Taps)
# Category: effects
# Description: Creates two delayed echoes at 1/16 and 1/8 notes
# Tags: echo, delay, stutter
when type == note : {
send through
send after 1/16
send after 1/8
}Troubleshooting
Preset Won't Load
Problem: Clicking a preset does nothing or shows an error.
Solutions:
- Check file exists - User preset file may have been deleted
- Verify syntax - Preset may contain compile errors (check logs)
- Reload browser - Close and reopen Presets Browser
- Check signing readiness/policy - Signed-binary-only imports may stay blocked until Settings → Security shows signing ready, and unsigned presets may also be blocked by policy
User Presets Not Appearing
Problem: User preset .ns files don't show up in browser.
Solutions:
- Check file extension - Must be
.ns(not.txtor.neuroscript) - Check file location - Must be in
~/Library/Application Support/NeurodeMIDI/Presets/ - Reload browser - Close and reopen Presets Browser to refresh list
- Check file permissions - Ensure files are readable (should be by default)
Preset Loads But Doesn't Compile
Problem: Preset loads into editor but shows compile errors.
Solutions:
- Read error message - Compiler shows specific line and issue
- Check language version - Older presets may use deprecated syntax
- Verify completeness - Preset file may be truncated or incomplete
- Report issue - If bundled preset fails, report as bug
Performance Considerations
- Preset loading is async - Large presets (>1000 lines) may take 100-200ms to load
- Compilation happens off-thread - Loading doesn't block UI
- Search is fast - Metadata-only search, doesn't load full source
- Signed fallback handling - Binary verification/import follows the current signing readiness and policy
Related Features
- NeuroScript Editor - Where presets are loaded and edited (see NeuroScript Guide)
- Script Signing - Cryptographic verification of presets (see Script Signing)
- Transform Types - Other ways to create transforms (see Transform Types)
Advanced: Preset Manifest Format
Bundled presets use a JSON manifest (Presets/presets.json):
{
"categories": {
"filters": {
"name": "Filters",
"description": "Event filtering and selection"
}
},
"presets": [
{
"filename": "filter-drums",
"name": "Drop Drums",
"description": "Removes channel 10 drum events",
"category": "filters",
"tags": ["filter", "drums", "channel"]
}
]
}This manifest drives the browser UI and provides rich metadata for search and categorization.
