It is currently Tue Jan 22, 2019 6:41 pm


ScopeSync - Max For Live patches

The latest ScopeSync news
  • Author
  • Message
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:07 pm

I'm pleased to announce that we now have a pretty stable Max for Live to Scope Modular control/MIDI system up and running. There were a few roadblocks along the way, mainly due to my incompetence while learning Max, but it seems like it's good enough for people to start playing around with. The following posts will give a little bit more detail around what it does and how to use it.

I've attached two zip files to this post:
ScopeSync-M4L.zip
A set of 4 Max for Live patches, supporting 16, 32, 64 and 128 controls respectively.
(43.67 KiB) Downloaded 372 times

bcmodular-MaxPackage.zip
Max package dependencies that need installing to make use of the M4L patches
(33.33 KiB) Downloaded 366 times


Installation instructions
Using these patches requires a full installation of Ableton Live with Max For Live (included in Ableton Live Suite), as well as the Java Runtime (download here)

To install, copy the bcmodular-MaxPackage.zip file into your C:\Users\<username>\Documents\Max\Packages directory (assuming you're on Windows 7 or later) and unzip it there. Then you can just unzip the ScopeSync-M4L.zip wherever you like to keep your M4L patches. Easiest option is in the Presets folder of your Ableton User Library.

There is a separate forum post containing the Scope half of this solution, now also called ScopeSync, but composed of a set of modules for the Scope Modular system.

Some screenshots

SS16.png
SS16.png (15.73 KiB) Viewed 14051 times

SS32.png
SS32.png (18.89 KiB) Viewed 14051 times

SS64.png
SS64.png (19.15 KiB) Viewed 14051 times

SS128.png
SS128.png (21.91 KiB) Viewed 14051 times
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:25 pm

Hooking it up
Let's start by using the ScopeSync64 patch. As you can see, it has controls labelled from A1 through to H8, grouped into 2 sets of 8 across each of 4 tabs. These match up to the labelling within the associated ScopeSync64 module in Scope. To get started, you can just load this up into a MIDI channel in Ableton Live and select an appropriate pair of ASIO channels (not ones that are hooked up to your speakers or headphones, or you'll get some nasty noises!) The easiest way to this is by setting "Audio To" to "Ext. Out" for the MIDI channel and then picking the relevant pair below that are connected in to the Data and Dest connections of the ScopeSync64 module in a Scope Modular patch (Data = L, Dest = R).

You'll then have 8 BC Pipe outputs in your Modular patch that can be split into individual control connectors using the Pipe module. There will also be a MIDI output.

In the ScopeSync modules, you can switch the sets of controls that they are listening to using the popup menu (accessed by clicking on the BC link). In the 16 control version, you will get pairs to choose from, the 32 control version will offer sets of 4 and sets of 8 in the ScopeSync64. If you want to use the ScopeSync128 M4L patch, you will need to use a pair of ScopeSync64 Scope modules + a MIDI merger for the two MIDI outputs.

Basic usage
At this point, you can just start twisting knobs or sending MIDI in the Max for Live patch and the control signals and MIDI will automatically start to be passed to Scope. If you happen to have connected a new ScopeSync module up and the controls are out of sync, you can use the Snapshot button on the ScopeSync patch to send an update with all settings from the patch.

Note that snapshot won't work to sync after changing values on the Scope side, as the synchronisation will not detect a change in settings. You can just manually change a value on the Max for Live patch to resync it.

You can also automate the controls either using other MIDI plugins (e.g. LFOs) or by creating automation lanes. All 64 controls should appear in the automation list.
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:28 pm

Editing the patch
I created the ScopeSync16 as a simpler introduction to being able to customise the interface and settings of the patch without having to have a deep understanding of the workings of Max.

To get started, load up the ScopeSync16.amxd patch into a MIDI channel as above and click on the Edit button (highlighted in red below):

SS16-EditButton.png
SS16-EditButton.png (15.8 KiB) Viewed 14051 times

This will launch the Max editor and you'll see something like the image in the next post.
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:29 pm

SS16-Edit.png
SS16-Edit.png (23.49 KiB) Viewed 14051 times

Now click on each of the highlighted links in order (Unfreeze patch and switch to Patcher view). This will take you to the next view:
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:39 pm

SS16-Patch-Edit.png
SS16-Patch-Edit.png (76.03 KiB) Viewed 14051 times

Now you can see the guts of the basic patch and how it hooks into the mxj~ Java object. It's actually pretty simple, there are 16 controls and whenever you change a value, it sends a message into the Java object, with the format "<ctrl> <value>". Setting control A1 to maximum will send a message "A1 1.000000" (the control values are sent as floating point values between 0.0 and 1.0).

The "s ---queue_message" and "r ---queue_message" are just a send and receive pair that get the message into to the ScopeSync patcher. You will also see that the "midiin" object is hooked via a utility patcher called midilist and then into the Java object.

The Java object handles all of the queuing and buffering logic, so it doesn't have to pollute the UI patch.
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:46 pm

SS16-Edit-Control.png
SS16-Edit-Control.png (94.61 KiB) Viewed 14148 times

Customising Controls
Editing the display for each control is actually very simple. Just click on the control you want to change and then either open the Side Bar and click on Inspector, or press Ctrl-I to open the floating Inspector view. Then you can edit the values in the Parameter section to change the display and handling settings for the control. Here are the main ones to consider changing:

Long Name - Name of Control as displayed in the Automation chooser in Live
Short Name - Name of Control as displayed on the Max for Live patch and on Ableton Push interface
Range/Enum - Min and Max values for the control range (as displayed). N.B. The range sent to Scope is always 0.0 -> 1.0
Unit Style - Dropdown list of standard unit styles. I'm actually using a Custom style to show the % to 4 decimal places
Automapping Index - This is really cool. Setting values from 1 to 128 for distinct controls will mean they are automatically ordered in the control surfaces that Ableton natively supports. Each version of the patch is configured to map across the appropriate number of control banks (16 in the case of ScopeSync128), which can be accessed on the Ableton Push LCD display (remember to press the button that looks like an Enter key to see Banks for a device).

This page has more detail about editing some of these values: http://cycling74.com/docs/max5/vignettes/core/live_parameters.html
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync - Max For Live patches

PostTue Nov 12, 2013 8:59 pm

Technical details
- The link supports 128 controls and 1 MIDI Port (if using multiple ScopeSync modules in Scope, you must merge the MIDI to get all of the data)
- I have done everything I can to limit MIDI stuck notes and in normal use they now seem to be very occasional. However, I added the MIDI panic button just in case
- The control resolution in Max is 64bit, so it should be possible to get very accurate automation between Live and Scope. However, if you map a MIDI controller to a control and use that to change the value, you'll be limited to whatever resolution that MIDI controller has (typically 128 steps). 14-bit MIDI control should work fine, although I've not had a chance to test that out.
- I recommend using 32-bit ASIO drivers with this system (I'm using ASIO2-32Flt on 64bit and Simon is using ASIO1-32 on 32bit). The 24 bit drivers *should* work for control, but will definitely not work for MIDI pass-through.

Downsides
- Requires Max for Live (self-evidently :)), which is part of Ableton Live Suite, which is an expensive package to buy
- Also now requires Java to be installed
- Slightly fiddly to set up, as it needs ASIO connections to be used
- It's unidirectional, i.e. changing values in Scope loses the sync
- Control update frequency is "only" 690Hz (one update per control every 1.5ms) at maximum (assuming 44.1kHz sample rate). Although this is fantastic for regular automation tasks, it means it won't support audio-rate modulation.

What's next
Come up with a solution that offers a lot of the same benefits but removes the downsides. There are quite a few ways to achieve this, but it's likely that it will involve building a VST that can do something similar.
Offline
User avatar

w_ellis

  • Posts: 630
  • Joined: Sat Apr 13, 2013 5:38 pm

Re: ScopeSync + Control Source

PostTue Nov 12, 2013 9:02 pm

Anyway, that's enough waffling from me, so over to Simon to provide the latest versions of the Scope modules and to you guys to try to break it and feed back about what you do and don't like, so we can incorporate into future revisions or the next ideas. Also, given the M4L stuff is all open and it's my first patch, I'd really welcome any feedback about how I could implement it better.
Offline

jksuperstar

  • Posts: 71
  • Joined: Fri Apr 12, 2013 4:44 pm

Re: ScopeSync + Control Source

PostWed Nov 13, 2013 7:07 am

Congrats!! And thanks for you and Simon's effort! This is a great new direction for scope right now!
Offline
User avatar

sharc

Site Admin

  • Posts: 589
  • Joined: Thu Apr 11, 2013 12:02 pm

Re: ScopeSync + Control Source

PostWed Nov 13, 2013 5:18 pm

The Control Source modules can be downloaded here - High Resolution DAW Automation

Thanks for a great introductory piece Will. I even learned a few things myself just then :)
Next

Return to Announcements

Who is online

Users browsing this forum: No registered users and 1 guest

cron