TS-MIDI Editor Tutorial: Create Custom MIDI Maps and AutomationsTS-MIDI Editor is a powerful tool for users of TS hardware and MIDI-capable setups. Whether you’re shaping live performances, streamlining studio workflows, or building complex instrument controllers, this tutorial shows step-by-step how to create custom MIDI maps and automations that save time and expand creative options.
What you’ll learn
- How TS-MIDI Editor structures MIDI data and device mapping
- Creating and saving custom MIDI maps for controllers and instruments
- Building automations (macros, sequences, and parameter sweeps)
- Best practices for performance reliability and backup
- Troubleshooting common issues
1. Understanding TS-MIDI Editor basics
TS-MIDI Editor is centered on mapping MIDI messages (note, CC, program change, NRPN/CC14, SysEx) to hardware parameters and sequences of actions. Key concepts:
- MIDI Channels and Ports: Messages are sent/received on specific channels and routed through selected input/output ports.
- Mappings: A mapping links an incoming message (e.g., CC#1 on Channel 1) to one or more target actions (e.g., change filter cutoff, send Program Change).
- Layers and Presets: Organize sets of mappings into layers or presets for different songs/patches.
- Automations: Timed or triggered sequences that send messages over time (arpeggios, sweeps, multi-step CC changes).
- Macros: Single triggers that execute multiple MIDI actions at once.
2. Preparing your setup
- Connect your TS device and other MIDI hardware to your computer or MIDI interface.
- Open TS-MIDI Editor and ensure the app detects your device. Check the MIDI I/O settings and enable the correct input and output ports.
- Set the global MIDI channel for incoming control messages if you prefer a single channel workflow, or leave per-mapping channel selection enabled for flexibility.
- Create a new project or preset to keep work organized.
Tip: Use a simple test patch (a synth or soft-synth) to verify messages while building mappings.
3. Creating a basic MIDI map
Goal: Map a hardware knob to a synth filter cutoff.
- In TS-MIDI Editor, create a new mapping (click “Add Mapping” or equivalent).
- Set the incoming trigger:
- Type: Control Change (CC)
- Number: CC#74 (example)
- Channel: 1
- Set the target action:
- Target device/port: Your synth or MIDI output port
- Message: Control Change or Real-time parameter mapping specific to the synth (e.g., CC#74 to filter cutoff)
- Value scaling: Map 0–127 to 0–127 or apply custom min/max for finer control
- Save the mapping to the preset and test: turn the knob on your controller and watch the synth respond.
Notes on value scaling and transformation:
- Linear scaling is default; use logarithmic/exponential when mapping to frequency-like parameters for more natural response.
- Add invert option if knob rotation direction is reversed.
4. Building multi-action macros
Macros let a single button press execute multiple MIDI messages (useful for patch changes, toggling effects, or setting multiple parameters).
Example macro: Switch patch, set volume, and enable a delay effect.
- Create new Macro and give it a name (e.g., “ChorusOnSwitch”).
- Add steps in sequence:
- Program Change to Channel 1, Program 10 (select patch on synth)
- Control Change CC#7 to value 100 (set volume)
- Control Change CC#91 to value 127 (enable reverb/delay send)
- Optional delays: Insert 50–200 ms pauses between steps if the target device needs time to process program changes.
- Assign the macro to a hardware button or MIDI note-on message. Test in-context.
Best practice: Keep macros idempotent (safe to run multiple times without causing unexpected states).
5. Creating timed automations and sequences
Automations in TS-MIDI Editor can step through values or play sequences triggered by MIDI or tempo.
Example: Create a 4-step CC sequence for rhythmic filter modulation.
- Create a new Automation and set its trigger:
- Trigger type: Note On (from a pad) or MIDI Clock start/beat sync
- Tempo sync: On (if you want it tied to host tempo)
- Define steps:
- Step 1: CC#74 value 30
- Step 2: CC#74 value 90
- Step 3: CC#74 value 60
- Step 4: CC#74 value 110
- Step length: ⁄8 note per step (or custom duration)
- Looping and direction: Choose forward, backward, or ping-pong to vary modulation patterns.
- Assign output port/channel and scaling if multiple destinations are required.
- Start/stop control: Map a button to toggle the automation on/off, or set it to run while a note is held.
Pro tip: Use subtle CC changes and smoothing to avoid zipper noise on analog-modeling synth parameters.
6. Advanced: Conditional mappings and stateful automations
Use conditions and state to create context-sensitive behavior.
- Conditions: Only fire mappings if a particular patch is active, a toggle is on, or a controller value exceeds a threshold.
- Stateful variables: Store simple on/off or numeric states (e.g., current bank, mode) and reference them in mappings to change behavior without reassigning hardware.
- Program-dependent mappings: Auto-switch mapping layers when receiving Program Change messages from a DAW or master controller.
Example: Create a mapping that behaves differently when “Performance Mode” is active:
- Create a boolean state “PerfMode.”
- Map a button to toggle PerfMode.
- Create two mappings for CC#1: one active when PerfMode = true (send to synth A), another when false (send to synth B).
7. Saving, backing up, and organizing presets
- Use descriptive preset names (Song_Intro, Bass_Patch, Live_Set_01).
- Export complete projects and individual presets regularly. Store versioned backups to revert if a mapping change breaks other behavior.
- For live rigs, keep a “Factory Reset” or safe preset that routes MIDI through with minimal processing as an emergency fallback.
8. Troubleshooting common problems
- No response from target device: verify MIDI I/O port, cable, channel, and that the destination device is set to receive on that channel.
- Values jumping or jittery: enable smoothing/filtering on CC inputs or increase resolution (use NRPN/14-bit CC where supported).
- Program Change ignored: add small delays after Program Change before sending dependent CCs.
- Conflicting mappings: check for overlapping mappings on the same incoming message and channel; use conditional states or layers to avoid clashes.
9. Example workflows
Live performance:
- Create a “Live” preset with macros for song changes, automations for intros/outros, and a “panic” macro that sends All Notes Off + Reset/All Controllers.
Studio sound design:
- Map multiple CCs to a synth’s macro parameters and record automation from TS-MIDI Editor into your DAW for detailed envelope editing.
Hybrid (live + DAW):
- Use MIDI Clock sync for tempo-based automations and map transport controls from the DAW to TS-MIDI Editor to keep devices synchronized.
10. Appendix — Quick reference
- Incoming types supported: Note On/Off, CC, Program Change, Pitch Bend, SysEx, NRPN/14-bit CC.
- Common CC numbers: CC#1 (Mod Wheel), CC#7 (Volume), CC#10 (Pan), CC#74 (Filter Cutoff).
- Useful defaults: 10–50 ms delay after Program Change; smoothing of 10–20 steps for analog-parameter-like control.
If you want, I can:
- Provide a step-by-step walkthrough for your exact TS hardware model and synth.
- Create downloadable preset examples (macro + automation) you can import into TS-MIDI Editor.
Leave a Reply