how to communicate with novations automap

ring's icon

Hi!

my idea is that it would love to control my M4L devices with a nocturn via novation's automap instead of ableton's "blue hand" device control because of 3 advantages:

1. I could have more than 8 dials. I also could have knobs (both buttons and toggles).

2. There wouldn't be the midi limitation of 128 steps

3. The pages would only be initialized if I drag in my M4L-device.

Unfortunately this is only possible with vst-plugins, which have a *.dll.
I thought about having and old pluggo communicating with a newer M4L-device via send/receive as both work in a max runtime area. But they're not compatible.

Any suggestions for a M4L device pretending to be a vst-plugin?

thanks,
ring

xanadu's icon

Hi,

Using Automap directly would be very nice indeed.

I did some work for good communication for MFL with my Nocturn. It works via a MIDI Remote Script that attaches itself to a MIDI Effect emulating the Nocturn. There are just 8 knobs, 8 buttons and a slider. Communication is both ways so the Nocturn leds are updated when the knobs on the emulator are changed. A second version uses 2 pages on the Nocturn and sports 16 knobs, 16 buttons and the slider.

You have to attach the knobs and buttons to something else to make these devices to good use.

597.Nocturn.zip
zip
Griotspeak's icon

if you use live.* objects or pattrs, automap should see them just like a notmal VST.

you can't really page up or down, so 8 seems to be the limit with this method, but i have a sl Mkii and it shows parameter names.

ring's icon

dear xanadu,

I can't get this to work. As far as I understand it should open a certain *.automap in the automap server when I drag in the device called "MFL_Nocturn_MIDI_Surface.amxd", right?

Do I have to put the files into certain paths? (I know, the *.pyc-folder is in the C:programsAbleton\Live 8.1.3ResourcesMIDI Remote Scripts)

Thank you!
ring

xanadu's icon

(Please skip this posting and read the next one)

617.Automap.jpg
jpg
xanadu's icon

Hi ring,

This is for PC only, I don't have access to a Mac.

The files in M4L_Nocturn MIDI Remote Script go to the folder:
C:Program FilesAbletonLive 8.1.3ResourcesMIDI Remote ScriptsM4L_Nocturn

In Live you open Options -> Preferences (Ctrl,). The device MFL Nocturn is added to the control surfaces and wired to Automap MIDI, both input en output.

You open the automap view (View Button on the Nocturn). Then press User, Chan.1 Novation MIDI. Then you open one of the .automap files form the menu File -> Open and selecting one of the .automap files from the .ZIP.

The .amxd files from the 'Basic MFL Devices for Nocturn' in the .ZIP go to the Live Library folder, in my case this is
Z:Live8LibraryPresetsMIDI EffectsMax MIDI EffectMFL Nocturn

Now you should be able to open these patchers on a MIDI-track and attach a blue hand from the Nocturn to them. Perhaps this works automatic, else you click with the right mouse button on the top of the patcher and then select attach Lock to Control Surface X (MFL Nocturn).

I hope this will help you to get things going.

Kind Regards,

Xanadu

619.Automap.jpg
jpg
ring's icon

dear xanadu!

thank you for the instructions. But still I can't get it to work.
I remembered that ableton has python compiler inside, so I thought that it might turn into problems if I put both the *.py and the *.pyc files in the remote script folder. But it makes no difference if I only put the *.pyc files in the folder.

I had a look at the log.txt. It says that an error occurs in the script:

5594 ms. RemoteScriptError:   File "
5594 ms. RemoteScriptError: 
5594 ms. RemoteScriptError: ", line
5594 ms. RemoteScriptError: 1
5594 ms. RemoteScriptError: 

5595 ms. RemoteScriptError:
5595 ms. RemoteScriptError: import M4L_Nocturn MIDI Remote Script
5595 ms. RemoteScriptError: 

5595 ms. RemoteScriptError:
5595 ms. RemoteScriptError:
5595 ms. RemoteScriptError:
5595 ms. RemoteScriptError:
5595 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5596 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5597 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5598 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5599 ms. RemoteScriptError:
5600 ms. RemoteScriptError:
5600 ms. RemoteScriptError: ^

5600 ms. RemoteScriptError: SyntaxError
5600 ms. RemoteScriptError: :
5600 ms. RemoteScriptError: unexpected EOF while parsing
5600 ms. RemoteScriptError: 

5679 ms. MemoryUsage: V: 248 MB, R: 71.9 MB, P: 88.5 MB
5683 ms. LSongAgent: Begin Constructing

I also don't understand exactly what your scirpt is doing. You say it attaches ITSELF to a MIDI effect. What does that mean?
Does it need the Midi-in- and output of the containing track or could it also be a audio effect?

I guess, for controlling the appointed device we could also use the framework classes and the python scripts from ableton. We would only have to remove the limit of 8 parameters to adapt it to the nocturn.
(Sorry! I'm really not into python, so I just can guess what could be possible.)

I had an idea: if we could open a specific *.automap in the automap server from M4L or via Python, and if that would only communicate with a certain M4L-device (e.g. with the same name) then we could "reproduce" the functionality of the real automaps they use for vst-plugins. (You would drag in a M4L device and it would automatically open the corresponding *.automap with the same name in the automap server.)

Tell me what you think!
ring

xanadu's icon

Unfortunately I must admit there is a bug in the .ZIP I published. I'm figuring this out.

ring's icon

That would be great, xanadu!

I'm trying another way meanwhile...

acatcalledanarchy's icon

Hi Xanadu / Ring

This would be exactly what I'm looking for as well...

You guys have fun now, speak soon...

Peace, love and flowers,

A Cat Called Anarchy

ring's icon

I'm trying to get deeper into python scripting. (Untill now I've been walking on tippy-toes in really cold water)

But I succeeded making a device control script (meant for controlling M4L-devices). It has 8 dials AND 8 KNOBS- just like the nocturn! So it always controls the first 16 parameters of a device.

Now the big challenge is to open/close *.automaps in the server from the python script (and link it to the name of the device you drag in.)

cheers,
Simon

xanadu's icon

Hi Simon,

Why do you want to open/close .automaps? My guess is that it is easier to change the wiring in MFL.

xanadu's icon

The day before yesterday I wrote:

Unfortunately I must admit there is a bug in the .ZIP I published. I'm figuring this out.

The problem seems to be that the folders in
C:Program FilesAbletonLive 8.1.3ResourcesMIDI Remote Scripts
are not allowed to have spaces in their names. When there is a space the Python code is not compiled, but the folder name is added to the Control Surface dropdown. When you choose it Live will crash.

So the privious .ZIP is not buggy. But always name the control surface MFL_Nocturn!