dotherightthing / traktor-live-v2

2 stars 0 forks source link

Screen To Push 2 Display #10

Open dotherightthing opened 2 years ago

dotherightthing commented 2 years ago

Ableton Push 2 for Traktor 3 replaces Push 2 Live/Native mode to repurpose the Push 2 as a Traktor controller. It is designed to be run while Traktor is running and Ableton Live is not. It is not designed to be used in Ableton Live in Push 2 User mode.

I'm looking for more of a hybrid solution - my audio is routed into Live to improve the resampling capabilities, so I'm only using Traktor for Deck A/B transport and looping and do need to be running Ableton Live at the same time.

However an appealing aspect of Ableton Push 2 for Traktor 3 is that it implements Screen To Push 2 Display, in order to display Traktor's decks, file browser etc on Push 2's screens.

Is it possible to reuse this functionality in a hybrid Traktor/Ableton Live setup?

dotherightthing commented 2 years ago

imp.push

Installation

  1. Download imp.push from https://www.theimpersonalstereo.com/max-externals/ (not https://github.com/pixsperdavid/imp.push)
  2. cp -r ~/Downloads/imp.push ~/Documents/Max\ 8/Packages

Screen To Push 2 Display

Installation

  1. git clone git@github.com:DJUnit27/screen-to-push-2-display.git ~/Websites
  2. open ~/Websites/screen-to-push-2-display/Screen\ To\ Push\ 2\ Display.maxpat

Coordinates

The author of Ableton Push 2 for Traktor 3 uses these settings: X 13, Y 170, W 1736, H 437.

The 'Main display' is used from System Preferences > Display > Display Settings, so coordinates will differ depending on the connected hardware.

If an external monitor is connected (my Dell U2518D has a resolution of 2560x1440), resize the Traktor window down to the size it would be if displayed on the laptop (my 15-inch, 2018 Macbook Pro has a resolution of 2880x1800 Retina).

A quick way to resize a window is to use Better Touch Tool > Preferences > Window Snapping & Moving. This allows a window to be quickly resized to half of the display width (1280x720 on the Dell).

Mappings

  1. Click Show Mappings (faders icons on right of Max window)
  2. If the above is empty: click Assign MIDI Map (piano keys icon at bottom of Max window) > click the Max control to assign > select Enable for Mapping > push a button on your MIDI controller

Issues

If Live is already open, imp.push generates an error

imp_push: Failed to open Push 2 device, may be in use by another application

  1. Editing the patch to remove port "Ableton Push 2 Live Port" and leave only port "Ableton Push 2 User Port" doesn't help.
  2. Changing the Push 2 Control Surface port from Live to User in Ableton Live > Preferences > Link/Tempo/MIDI doesn't help
  3. Removing Track and Remote from Ableton Push 2 User Port in Ableton Live > Preferences > Link/Tempo/MIDI doesn't help

See also https://github.com/pixsperdavid/imp.push/issues/3#issuecomment-716075450:

The issue is that only one application can access a USB device at once. To get around this (and this is how I think P2D has implemented it) you would need to implement an intermediary which intercepts the connection from Live and allows you to combine it with data from imp.push. The task of creating this considerably dwarfs the roughly 8 hours I spent creating the object in the first place!

There is no option to see the default Live visuals in any of the Display views

Perhaps the patch could be edited to remove one of the Display views?

See also https://github.com/pixsperdavid/imp.push/issues/3#issuecomment-716073374:

To be truly useful in Live I think you need to be able to switch between an imp.push view and the native device view, and developing something like that is a much larger task than the entire current imp.push code! Plus I'm not convinced there's a non-hacky way to do it...

dotherightthing commented 2 years ago

P2D

I already own P2D Session2 +, which displays the session view in Push 2 via a button combo while Ableton Live is running.

However I didn't realise that the underlying component from Sigabort is actually free to download, and can be used for other purposes: P2D - Access to your Push2 Display.

P2D+

P2D+ is an additional component that can be installed to provide true screen sharing with Live. With this you can control the visible region of your render on the P2D display and also blend between your display and that of Live. P2D+ is included in any P2D product purchased from Isotonik Studios.

However note that while Screen To Push 2 Display Grabs a rectangular area of the screen and streams it to Push 2's display., P2D+ lets you control the visible region of your render on the P2D display. Does "render" mean a part of the screen, or does it refer to graphics that have been generated from API calls in your Max patch's code? P2D Session2 + seems to be the latter as its UI looks different to the one provided by Ableton.

Installation

  1. Download/buy P2D+
  2. cp /Applications/Ableton\ Live\ 11\ Standard.app/Contents/Push2/Push2DisplayProcess.app/Contents/Libraries/libusb-1.0.dylib /Applications/Ableton\ Live\ 11\ Standard.app/Contents/Push2/Push2DisplayProcess.app/Contents/Libraries/libusb-1.0.dylib-bak
  3. cp libusb-1.0.dylib /Applications/Ableton\ Live\ 11\ Standard.app/Contents/Push2/Push2DisplayProcess.app/Contents/Libraries

The p2d-plus files in P2D Session2 + don't come with any demo max patches (I'm unsure if these have been stripped out?), so it's not clear how one would use this. I tried opening the Max patch for P2D-Session and was faced with this:

P2D-Session (C) Sigabort, Lee Huddleston, 2015-21

No portion of this product is to be copied, distributed, or used in your own products without express permission of the author.

So much for reverse engineering.

And:

A commercial license allows you to distribute the product as part of your own developments. This license is required whether your products are free or charged. Please contact ... for more details.

P2D-Multi

This purchase comes with demo files so could be a better bet. If there is a lot of programing to be done then it feels like a but of a time sink at the moment, given that I have an iPad which I could use with Mira to create a custom interface for my mixer setup using Max objects.

Ran some of the included max patches and couldn't get anything but the loading animation to appear. Also note that the whole screen was taken over by PD2, so PD2+ is definitely needed for use with Live.

dotherightthing commented 2 years ago

Other options:

Rack macros / Macrobat sender/receiver

Control things on different tracks from one master track, eg both Deck A and Deck B EQs.

Push Hacker 2

Control things on different tracks from the standard Push 2 controls.