A powerful, modern macOS Audio Unit host for both AU 2 and AUv3 plugins
Built with SwiftUI and AVFoundation
LAUncher is a professional-grade Audio Unit host application designed for macOS. It provides a clean, modern interface for loading and using both traditional AU 2 plugins and modern AUv3 app extensions. Whether you're a music producer, sound designer, or audio enthusiast, LAUncher offers the tools you need to work with your favorite plugins.
- πΉ Universal Plugin Support - Load both AU 2 (traditional) and AUv3 (app extension) plugins seamlessly
- π¨ Customizable Themes - Choose from built-in themes or create your own custom color schemes
- β¨οΈ QWERTY Piano - Built-in QWERTY keyboard for playing notes without a MIDI controller
- ποΈ MIDI Learn - Map MIDI CC messages to plugin parameters with intuitive learn mode
- ποΈ Transport Control - Play/pause transport with accurate BPM sync for tempo-synced effects
- π Parameter Export - Export plugin parameters as JSON for backup and sharing
- π€ AI Integration - Built-in MCP (Model Context Protocol) server for AI-powered workflows
- π― Low Latency - Optimized audio engine for real-time performance
- π¨ Modern UI - Beautiful SwiftUI interface with resizable toolbar and sidebar inspector
π₯ Watch Demo Video on YouTube Shorts
- macOS: 15.7 or later
- Xcode: 15.0 or later
- Swift: 5.0+
-
Clone the repository:
git clone <repository-url> cd LAUncher
-
Open the project in Xcode:
open LAUncher.xcodeproj
-
Build and run:
- Select the "LAUncher" scheme
- Choose your Mac as the destination
- Press βR to build and run
LAUncher automatically discovers plugins from standard macOS locations:
/Library/Audio/Plug-Ins/Components/(system-wide plugins)~/Library/Audio/Plug-Ins/Components/(user-specific plugins)
- Launch LAUncher
- Load a Plugin - Click "Load Pluginβ¦" in the toolbar to browse available plugins
- Select a Plugin - Choose from the list of discovered Audio Units
- Play Notes - Use MIDI input, QWERTY Piano keyboard, or the on-screen keyboard
- Adjust Parameters - Use the plugin's native UI to tweak settings
- Control Transport - Use the play/pause button to control BPM-synced effects
Enable QWERTY Piano to use your QWERTY keyboard as a MIDI controller. The on-screen keyboard can be toggled on/off and repositioned by dragging.
- Click "MIDI Learn" in the More menu
- Click a parameter in the plugin UI
- Move a MIDI CC control on your device
- The mapping is saved automatically
Choose from built-in themes (Dark, Light, Midnight, Sunset, Ocean, Forest, Neon, Monochrome, Amethyst, Emerald, Fire) or create custom themes. Themes update immediately when selected. Access themes from the More menu.
The transport play/pause button controls tempo synchronization. When playing, plugins like Serum will sync their LFOs and effects to the host BPM.
Toggle the sidebar inspector (right side) to access:
- Audio device selection (Input/Output)
- MIDI input selection
- Plugin information
The left sidebar provides quick access to:
- Plugin loading and management
- Transport controls (BPM, Play/Pause)
- Engine status and controls
- Quick tools (MIDI Learn, MCP Tools, AI Chat)
- QWERTY Piano toggle
LAUncher includes a built-in MCP server that enables AI-powered workflows for plugin control and patch management. The MCP server runs locally on port 5555 and exposes tools for interacting with your plugins programmatically.
The MCP server provides the following tools:
- get_parameters - Retrieve all parameters from the current plugin with filtering options
- set_parameters - Batch update multiple parameter values
- get_patch_snapshot - Get a structured snapshot of the current patch state
- set_patch_snapshot - Apply a patch snapshot by ID or inline object
- save_patch_to_library - Save patches to a local JSON library with metadata
- analyze_patch - Get musical analysis and timbre descriptions
- explain_parameters - Get explanations of what parameters do in musical terms
Access MCP tools from the toolbar "More" menu β "MCP Tools". The MCP server runs automatically when LAUncher starts and is accessible at http://localhost:5555.
The MCP server is implemented as a standalone Node.js/TypeScript server (dev/mcp/launcher-server.js) that communicates with LAUncher via HTTP API. See MCP-PRD.md for detailed API documentation.
{
"method": "tools/call",
"toolName": "get_parameters",
"arguments": {
"filter": {
"pathPrefix": "Filter",
"onlyAutomatable": true
}
}
}For more information, see:
MCP-PRD.md- Complete MCP server specificationMCP-SERVER-STATUS.md- Server implementation statusdev/mcp/launcher-server.js- MCP server implementation
LAUncher supports all standard Audio Unit types:
- Music Device (Instruments) - Synthesizers, samplers, drum machines
- Effects - Reverb, delay, distortion, EQ, compression, etc.
- Generators - Tone generators, noise sources
- Mixers - Audio mixing and routing
- Panners - Stereo panning and spatial audio
- Format Converters - Sample rate and format conversion
- Offline Effects - Non-real-time processing
LAUncher/
βββ LAUncher/
β βββ App/
β β βββ LAUncherApp.swift # App entry point
β β βββ ContentView.swift # Root content view
β βββ Managers/
β β βββ AudioEngineManager.swift # Audio engine and plugin loading
β β βββ PluginHostSession.swift # Plugin state management
β β βββ MidiManager.swift # MIDI input handling
β β βββ ThemeManager.swift # Theme management
β β βββ ...
β βββ Models/
β β βββ AppTheme.swift # Theme definitions
β β βββ MidiTypes.swift # MIDI data models
β βββ Views/
β β βββ RootHostView.swift # Main window view
β β βββ PluginPickerView.swift # Plugin selection UI
β β βββ PluginCanvasView.swift # Plugin UI container
β β βββ TopBarView.swift # Toolbar controls
β β βββ StatusBarView.swift # Status bar display
β β βββ ...
β βββ Resources/
β βββ Assets.xcassets # App icons and assets
β βββ LAUncher.entitlements # App entitlements
βββ LAUncher.xcodeproj/
- AudioEngineManager: Handles AVAudioEngine setup, plugin instantiation, and host sync blocks
- PluginHostSession: Coordinates plugin state, MIDI, audio devices, and UI state
- ThemeManager: Manages theme selection and custom theme persistence
- MidiManager: Handles MIDI input from devices and virtual sources
If you encounter error -3000 or plugins won't load:
- Check Entitlements: Ensure the app has been rebuilt after entitlement changes
- Verify Installation: Check that plugins are properly installed in the Components directories
- Check Compatibility: Verify plugin compatibility with your macOS version
- Validate Plugins: Try validating plugins using:
auval -a
This app requires specific entitlements to load third-party plugins:
com.apple.security.cs.disable-library-validationcom.apple.security.temporary-exception.audio-unit-host
These are configured in LAUncher.entitlements.
If plugins aren't syncing to BPM:
- Ensure the transport is playing (play button should show pause icon)
- Check that the plugin supports host tempo sync
- Verify BPM is set correctly in the toolbar
- Open
LAUncher.xcodeprojin Xcode - Select the "LAUncher" scheme
- Choose your Mac as the destination
- Build (βB) or Run (βR)
- Follow Swift naming conventions
- Use
@MainActorfor UI-related code - Prefer
ObservableObjectfor state management - Use SwiftUI best practices for view composition
Personal Use License
Copyright Β© 2025 Mitchell Cohen
Professor of Sound Design & Production @ Berklee College of Music
Newton, MA
All Rights Reserved
This software is provided for personal, non-commercial use only. You may use, study, and modify this software for your own personal purposes.
You may NOT:
- Sell, rent, lease, or commercialize this software
- Use this software for any commercial or profit-generating purpose
- Redistribute, republish, or distribute this software
- Create derivative works for distribution
See LICENSE for full terms and conditions.
For commercial licensing inquiries, please contact Mitchell Cohen.
LAUncher is developed and maintained by Mitchell Cohen.
Mitchell Cohen
Professor of Sound Design & Production @ Berklee College of Music
2025 Newton, MA
All Rights Reserved
Built with:
- SwiftUI for modern, declarative UI
- AVFoundation for audio processing
- AudioToolbox for Audio Unit integration
- CoreAudio for low-level audio control
Thanks to the macOS audio development community for their contributions to Audio Unit documentation and best practices.
LAUncher - Professional Audio Unit Hosting for macOS
Made with β€οΈ by Mitchell Cohen





