dotherightthing / traktor-live-v3

0 stars 0 forks source link

Traktor Live v3

GitHub release GitHub issues

Traktor Pro mix template using multiple MIDI controllers. This is a 'fork' of https://github.com/dotherightthing/traktor-live-v2/ and changes the supported MIDI controllers, and removes ClyphX Pro (see https://github.com/dotherightthing/traktor-live-v2/issues/11). Includes Ableton Live starter file.

I've documented this for my own benefit, but please help yourself to any part you find useful.


This project is no longer maintained - please see version 4.


Purpose

The purpose of this setup is to replace Traktor Pro’s Remix Decks and Loop Recorder with Ableton Live.

Replace Traktor Pro’s Remix Decks

Traktor Pro’s Remix Decks mostly work fine when resampling directly from a deck.

However when keylock pitching is used, the recorded pitch often does not match the source deck.

Replace Traktor Pro’s Loop Recorder

To capture global FX like reverb and gating, Traktor Pro’s Loop Recorder must be used.

The Loop Recorder is problematic because it records loops slightly too long. Samples glitch on repeat and drift out of sync with the source material.


Components

  1. Physical Sound Card:
    • Macbook Pro (15-inch, 2018 / macOS v10.15.7)
    • External Headphones (headphones or Minirig plugged into headphone jack)
  2. Virtual Sound Card:
  3. DJ Decks and MIDI Clock:
  4. Mixer and Sampler:
  5. Controller Mapping:
  6. Controller Overlay:
  7. Mix Recorder:
  8. Launch Script:
  9. Further Reading

1. Physical Sound Card

MacBook Pro

This setup is for the Traktor Kontrol Z1. Mixing is only done on headphones, so the master mix goes to both Left and Right channels (for monitoring and recording with Audio Hijack) and cueing goes to the Right channel (this is not recorded). This is a variation on the split cue approach.


2. Virtual Sound Card

Rogue Amoeba Loopback

Loopback allows additional stereo pairs to be added to an existing sound card. These pairs can then be used for internal routing via input and output settings in Traktor Pro and Ableton Live.

Some web tutorials use Jack Audio instead. I prefer Loopback’s routing UI.

In order to be able to choose which Traktor Pro deck to sample from, both decks are routed to Ableton Live.

Project file

3. DJ Application and MIDI Clock

Native Instruments Traktor Pro


4. Mixer and Sampler

Ableton Live

Project file
  1. ableton-live/traktor-live-v3 Project/traktor-live-v3.als

Contains a 2 channel mixer and an 8 channel sampler (Deck A x3 + Deck B x3 + Resample x1 + Chop x1).

Audio
Screenshot of Ableton Live's Audio Device window Screenshot of Ableton Live's Input Config window Screenshot of Ableton Live's Output Config window
  1. Driver Type: CoreAudio
  2. Audio Input Device: Traktor Live v1 (8 In, 8 Out)
  3. Audio Output Device: Traktor Live v1 (8 In, 8 Out)
  4. Channel Configuration
    1. Input Config:
      • 3/4: Traktor Pro Deck A
      • 5/6: Traktor Pro Deck B
    2. Output Config:
      • 1/2: Live Out
      • 7/8: Live Cue R (channel 8)
UI (top left)
  1. Click Ext so that it lights up - Ableton Live will now follow the Sync source (Traktor Pro Virtual Output)
  2. Global launch quantisation: 1 Bar

Plugins

VU Meters

These use the midiAudioToCC VST, which is part of the PIZ MIDI plugins package by Paul Cecchetti.

In order to display a VU Meter for a visual control:

  1. Create an Audio track which takes input from one of the sampler tracks
  2. Put an instance of midiAudioToCC on this Audio track.
  3. MIDI map the controller's encoder to the Envelope L control
  4. Toggle on Monitor for this track
  5. Mute this track
  6. The signal level will display on the control when the track is not muted

5. Controller Mapping

Ableton Live MIDI setup (Traktor)
Screenshot of Ableton Live's MIDI configuration

The default ClyphX Pro 'controller' is primarily used to sync MIDI clock between Traktor Pro and Ableton Live (MIDI input).

Additionally, ClyphX Pro is used to send scripted MIDI messages to Traktor Pro (MIDI output). When this is done, channel 16 is used to make it clear that Traktor Pro is being targetted. See also the M4L Device on the master channel.

Note: MIDI Clock Sync Delay was initially set using Traktor Pro's internal mixer, with Cue out used to sync Traktor Pro and Ableton Live's metronomes. Ableton Live now functions as the external mixer and syncing does not appear to be an issue anymore.

Traktor Pro Controller Manager Device Setup

Push the Learn button in this Traktor device, then use the control which you wish to map to it.


Native Instruments Traktor Pro Controller Manager

Part of Traktor Pro 3: https://support.native-instruments.com/hc/en-us/articles/209590569-How-to-Use-the-Controller-Manager-in-TRAKTOR

.tsi templates map control surfaces and supporting software to Traktor Pro's interface API.

  1. traktor-pro/clock.tsi - for MIDI clock sync (TBC - if not for another project)
  2. traktor-pro/clyphx-pro-v1-0.tsi - for sending MIDI from Live to Traktor
  3. traktor-pro/korg-nanokey-studio-v1.tsi - key adjust
  4. traktor-pro/traktor-live-v3.tsi - Traktor Settings (Preferences > Export)
  5. traktor-pro/traktor-kontrol-z1-default.tsi - default mappings (unit is used in MIDI mode)
Project file
  1. Preferences > Import > traktor-pro/*.tsi
Miscellaneous settings

KORG nanoKEY Studio

The nanoKEY is only used to pitch loops in Traktor, via key adjust.

KORG KONTROL Editor configuration files
  1. The scene's data: korg-kontrol-editor/traktor-live-v3.nanokey_st_data
  2. Set containing all scenes: korg-kontrol-editor/traktor-live-v3.nanokey_st_set

Double-click to open the set files, then select Communication > Write Scene Data.


Native Instruments Traktor Kontrol X1

Features
Ableton Live MIDI setup

N/A

Traktor Pro Controller Manager Device Setup

Native Instruments Traktor Kontrol Z1

See https://github.com/dotherightthing/traktor-live-v3/blob/main/ni-kontrol-z1/README.md

--

Ableton Push2

Ableton Live MIDI setup

Midi Fighter Twister

Ableton Live MIDI setup

The project uses three MFTs (Midi Fighter Twisters), but the Midi Fighter Utility only supports one. Therefore the four available banks of stock CCs are split between the MFTs:

Each MFT does identify itself uniquely (Midi Fighter Twister, Midi Fighter Twister #1, Midi Fighter Twister #2) but these identities are not locked to the physical hardware and can shift and change. Therefore the mappings for each MFT are shared with every MFT - i.e. the XTA/XTB/XTC folders are clones.

At the launch of the project, each MFT should be switched to Bank 1, 2 or 3. This should happen automatically via the STARTUP_ACTIONS, or press one of the 3 buttons on each MFT's side.

When configured to send out MIDI messages, each MFT uses the following;

Default settings are applied on $RESET$. Live's Save as Default Configuration function does not appear to work properly with this device.


Native Instruments Maschine Mk 1

See ni-maschine-mk1/README.md

6. Controller Overlay

The worst part about customising generic MIDI controllers is remembering what everything does.

Custom physical overlays solve these labelling issues. They look nice, can be switched out quickly, and are great for protoyping.

Inkscape

Inkscape is a cross-platform vector editor.

Cricut

The Cricut Maker is a consumer level cutting machine.

Cricut Design Space is the companion software for the Cricut range.

Project files

  1. KORG nanoKEY Studio
  2. Traktor Kontrol X1 Mk2
    • cut file: svg-overlays/traktor-kontrol-x1.svg (custom)
  3. Midi Fighter Twister
    • cut file: svg-overlays/MFT-v2.svg (custom)
    • print file: svg-overlays/MFT-v2-A4.svg

The process to generate an overlay is as follows:

Process

Create a cut file

Create a cut file by extracting SVG designs from hardware manuals (below), or by creating an SVG from scratch using Inkscape and a ruler.

  1. Create a baseplate to match the top of your controller
  2. Create and place shapes for the various faders, knobs, encoders and switches (with end caps removed)
  3. Group these shapes
  4. Duplicate the baseplate and the shapes group and hide the originals so you can edit them later as required
  5. Select the original shapes group, then select Path > Combine
  6. Remove the shapes from the baseplate by selecting the combined shape and the baseplate, then selecting Path > Difference
Generate an SVG from a PDF hardware manual (optional)
  1. File > Import
    1. Select page
    2. Internal import
    3. Uncheck 'replace fonts & embed images'
    4. Precision: 2.0 (default)
  2. Fix dimensions
    1. Select objects on page
    2. COMMAND + G to group
    3. Transform > Scale
    4. Set width and height to the dimensions in the owner manual
    5. Scale proportionally
  3. Outline the physical controls
    1. View > Display mode > Outline
    2. Double-click parts to edit them directly
    3. Use +/- to zoom in/out
    4. Click near letters, click inside shapes
    5. Use delete to delete lines that won't be cut
    6. Use node editing tools to ensure that cut paths are unbroken
  4. Edit objects
    1. Object > Objects...
    2. Maximise the panel (close other panels)
    3. Click 3D rectangle layer icon to select that object
    4. Select all g... objects and ungroup them
    5. Delete all g... layers (empty groups)
    6. Optimise one of each individual control (e.g. channel strip)
    7. Group each individual control
    8. Use guides to position copies of these in their original positions
  5. Export SVG
Create a print file

Create a separate print file by duplicating the cut file and adding additional layout to match that created by Cricut Design Space's Print Then Cut process.

This mitigates unresolved text degradation caused by Cricut Design Space at print time, otherwise text labels could be added directly to the cut file.

The dimensions below are taken from a PDF generated by Print Then Cut (System Dialog > Print > PDF).

  1. Create an A4 file in Inkscape (209.903mm x 296.686mm)
  2. Create a box and give it a black stroke of 1.5mm
  3. Resize the box so that it is 7mm larger than your baseplate on all sides, and position it in the same way
  4. Check that the stroke is still 1.5mm and the gap is still 7mm
  5. Group the box and baseplate
  6. Position the group at 11.994mm from the top and left of the canvas
  7. Add one or more groups of text labels to describe the various controls and modes of operation.
  8. Print the A4 page using Cricut Design Space with the System Dialog option, and the laser printer's Graphics Quality > Text option (I chose a Brother laser printer for sharper text)
Cut the cut file
  1. Load the cut file into Cricut Design Space
  2. Change the dimensions to match Inkscape
  3. Set position to 0, 0
  4. Hide any layers/groups which were previously hidden in Inkscape (SVG text layers are automatically removed)
  5. Select Flatten
  6. Select Make It > Continue
  7. For Print, select I've Already Printed
  8. Affix the printout to a Cricut cutting mat
  9. Set Base Material
  10. Load mat and press Go
  11. Optionally repeat with a sheet of plastic to create a second protective layer
  12. Peel the overlay off the cutting mat so the cut sections separate

Note: Cricut Maker does have a pen attachment, but I use this sparingly as 'pen' lines for text labels add complexity to the file and dramatically increase loading times.

Apply overlay
  1. Remove any blocking controls (e.g. fader handles) from the controller
  2. Slide the overlay over the top of the controller
  3. Reattach any blocking controls onto the controller

7. Mix Recorder

Rogue Amoeba Audio Hijack

While Ableton Live can be used to record the evolving mix and any automation, the playback head jumps to the beginning of the arrangement timeline when Traktor Pro is requested to send a Master Clock Sync message to Ableton Live.

This runs the risk of overwriting existing audio later in the mix.

One solution is to use an external recording app, however free macOS apps provide limited control over what can be recorded.

For example, Quicktime can't distinguish between the individual channels used by the Loopback device, while Audacity can only record all of them at once.

Audio Hijack offers two alternatives to this:

  1. record directly from an application (e.g. Ableton Live)
  2. record from specific virtual output channels (e.g. channels 1+2 of a Loopback device)

In addition Audio Hijack makes it clear when it is recording, by optionally displaying level meters in the macOS menu bar.

Project file
  1. audio-hijack/traktor-live-v3.ahsession

8. Launch Script

NPM

Project files
  1. package.json
  2. scripts/install.sh
  3. scripts/run.sh
Commands
  1. npm run install - install configuration files
  2. npm run open - open applications and templates
  3. npm run refresh - reinstall configuration files, reopen applications and templates

9. Further Reading

FAQs

Why can't I hear recording clips in Ableton Live?

Press the sync button to sync playback with Traktor Pro.

Why can't I hear FX trails after crossfading

Ensure that both 'A' and 'B' crossfader assigns are unchecked on both FX channels.

Why can't I hear any sound, or only briefly before it cuts out?

Toggle the On-Off switch in the Monitor column (Z1 device) of Loopback.

References

  1. How to Sync Ableton Live and Traktor Pro - The Right Way | DJ Endo
  2. Ableton Live Looping Setup - Hands Free! Ableton and ClyphX-Pro
  3. traktor-live-v2 (original Github project)
  4. etc..