major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
133 lines (100 loc) • 8.33 kB
Markdown
name: cubase
description: "Configure Cubase MIDI Remote scripts, Expression Maps, and MixConsole workflows; investigate ASIO Guard and performance issues."
category: music
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["cubase", "steinberg", "midi-remote-api", "asio-guard", "expression-maps", "mixconsole", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# Steinberg Cubase Pro Music Production AI Skill Guide (Claude)
## Overview & Engine Architecture
Steinberg Cubase Pro is a premier digital audio workstation (DAW) for professional scoring, music composition, MIDI sequencing, and multichannel audio mixing. Cubase operates on a 64-bit floating-point audio engine powered by **ASIO Guard (multi-threaded look-ahead buffering)**, native **VST3 hosting with plugin sandboxing**, **VariAudio 3** pitch/timing algorithms, **Expression Maps** for orchestral articulation routing, and an extensible **MIDI Remote JavaScript API (`midiremote_api`)**. Claude operates as a Principal Audio Systems Architect and Orchestral Scoring Technologist, specializing in **ASIO buffer latency calibration**, **MIDI Remote script authoring (JavaScript)**, **Expression Map schema design**, and **Control Room monitoring setup**.
### Cubase Pro Audio Engine & Control Architecture
```
┌─────────────────────────────────────────────────────────────┐
│ Cubase Pro Architecture │
│ │
│ Presentation & Scoring Tier │
│ ├── Project Window & Key / Score / Drum Editors │
│ ├── Expression Maps (Keyswitches, CC Chasing, Dynamics) │
│ └── MixConsole (Channel Strips, VCA Faders, Control Room) │
│ │
│ Audio Engine & DSP Subsystem │
│ ├── 64-bit Float Audio Engine & ASIO Guard 2 Buffer Sizing │
│ ├── VariAudio 3 & AudioWarp Polyphonic Time-Stretch │
│ └── VST3 Plugin Sandboxing & Blocklist Manager │
│ │
│ Hardware Remote & Scripting Core │
│ ├── Steinberg MIDI Remote JavaScript API (`midiremote_api`)│
│ └── Project Logical Editor (Rule-Based Macro Transformations│
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **Steinberg MIDI Remote Scripting (JavaScript)**: Author clean, modular hardware controller drivers using `midiremote_api.makeDeviceDriver()` with surface elements (knobs, faders, buttons, displays).
2. **ASIO Guard & Latency Triage**: Resolve audio dropouts and real-time processing spikes by calibrating ASIO Guard levels (Low/Normal/High) and enabling the Steinberg Audio Power Scheme.
3. **Expression Map Design for Sample Libraries**: Construct structured Expression Map XML schemas linking musical notations (Staccato, Legato, Pizzicato) to sample keyswitches and MIDI CC curves (Spitfire, Vienna Symphonic, Orchestral Tools).
4. **Project Logical Editor (PLE) Automation**: Author complex Logical Editor presets to quantize note lengths, randomize velocities, and color-code orchestral stems.
## Production JavaScript Automation: Cubase MIDI Remote Controller Script
Save this script as `CustomController.js` inside `<CubasePrefs>/MIDI Remote/Driver Scripts/Local/VendorName/CustomController/`:
```javascript
// ==============================================================================
// Steinberg Cubase 13/14 MIDI Remote Script: Custom Hardware Driver
// Implements Transport Controls, Track 1 Fader, and Pan Knob via midiremote_api.
// ==============================================================================
var midiremote_api = require('midiremote_api_v1');
// 1. Create Device Driver
var deviceDriver = midiremote_api.makeDeviceDriver('VendorName', 'CustomController', 'AI Systems Engineering');
// 2. Configure MIDI Ports
var midiInput = deviceDriver.mPorts.makeMidiInput();
var midiOutput = deviceDriver.mPorts.makeMidiOutput();
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
.expectInputNameEquals('CustomController IN')
.expectOutputNameEquals('CustomController OUT');
// 3. Define Surface Elements
var surface = deviceDriver.mSurface;
var btnPlay = surface.makeButton(0, 0, 1, 1);
btnPlay.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(0, 114);
var btnStop = surface.makeButton(1, 0, 1, 1);
btnStop.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(0, 115);
var faderVolume = surface.makeFader(0, 1, 1, 3);
faderVolume.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(0, 7);
var knobPan = surface.makeKnob(0, 4, 1, 1);
knobPan.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(0, 10);
// 4. Map Surface Elements to Cubase Host Parameters
var page = deviceDriver.mMapping.makePage('Main Mix Page');
// Transport Controls
page.mHostAccess.mTransport.mValueSequences.mPlay.setBinding(page, btnPlay.mSurfaceValue);
page.mHostAccess.mTransport.mValueSequences.mStop.setBinding(page, btnStop.mSurfaceValue);
// Selected Track Volume & Pan
var selectedTrackChannel = page.mHostAccess.mTrackSelection.mMixerChannel;
selectedTrackChannel.mValue.mVolume.setBinding(page, faderVolume.mSurfaceValue);
selectedTrackChannel.mValue.mPan.setBinding(page, knobPan.mSurfaceValue);
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Audio Dropouts / ASIO Peak Overload During Playback** | Low ASIO buffer size or DPC latency spikes caused by CPU power throttling. | 1. In *Studio $\rightarrow$ Studio Setup $\rightarrow$ Audio System*, set **ASIO-Guard** to `High`.<br>2. Enable **Steinberg Audio Power Scheme** (prevents Windows CPU core parking).<br>3. Increase audio interface buffer to $256\text{ or }512\text{ samples}$. |
| **Cubase Hangs on Startup: `Initializing VST3 Plugins...`** | A 64-bit VST3 plugin threw an unhandled memory exception during startup scan. | 1. Launch Cubase in Safe Mode: Hold `Ctrl + Shift + Alt` (Windows) or `Cmd + Shift + Opt` (macOS) on launch.<br>2. Check **Disable Third-Party Plugins** $\rightarrow$ Check VST Plugin Manager Blocklist. |
| **Expression Map Fails to Switch Articulations** | Keyswitch note length is 0ms or MIDI chase did not send the initial articulation on playback start. | In Project $\rightarrow$ Expression Map Setup, set **Latch Mode** to `True` and enable **Chase MIDI Controllers** in Preferences. |
| **Control Room Output Muted / Red Speaker Icon** | Listen Bus (`L`) or Talkback enabled on a channel without assigned hardware outputs. | In MixConsole $\rightarrow$ Control Room tab, click **Clear All Solos / Listens** and verify Main Output monitor routing. |
## Command Line Syntax & Safe Mode Launch
```bash
# 1. Launch Cubase 14 in Safe Mode with Preference Overrides
"C:\Program Files\Steinberg\Cubase 14\Cubase14.exe" -safe
# 2. Launch Specific Project File Directly
"C:\Program Files\Steinberg\Cubase 14\Cubase14.exe" "C:\Projects\FilmScore_Cue01.cpr"
```
### Essential File Locations
- **Cubase User Preferences**: `%APPDATA%\Steinberg\Cubase 14_64\` (Windows) or `~/Library/Preferences/Cubase 14/` (macOS)
- **Plugin Blocklist**: `%APPDATA%\Steinberg\Cubase 14_64\Vst3xBlocklist.xml`
- **MIDI Remote Driver Scripts**: `%APPDATA%\Steinberg\Cubase 14_64\MIDI Remote\Driver Scripts\`
## Agent Operational Directive
> **MANDATORY**: For large orchestral templates with hundreds of virtual instruments, always enable ASIO Guard (set to High) and activate the Steinberg Audio Power Scheme to prevent real-time DPC latency dropouts.