novation automap external?

lut lei's icon

I'm just wondering if anyone have made an external which communicate with the Novation Automap Server?

For those who's not familiar with the concept, it's a system which allows two-way communication between plugins and some sequencers, and the Novation hardware controllers that supports this. In my case a Novation Remote SL.

I found a thread with a help-patch and a template, and it works great, (thanks Mitch!) but I though it would be even better if parameter names and values could be sent to the controller via the software.

BTW, here is the thread containing the template and the help-file I mentioned:

fairesigneaumachiniste's icon

The automap is just a sysex command to the controller. Because the SDK is not available (still) we can only attempt to figure it out from trial and error.

I have somewhere an analysis of the sysex dump command and I had relative success sending commands to my controller but the problem is that it isn't possible to update individual values and a whole template has to be 'dumped' to the controller and stored and memory.

While this works, it isn't ideal. If I can find the analysis I can perhaps make a quick patch if you wish.

bdc's icon

Cheers

Brad

----- Original Message -----
From: fairesigneaumachiniste
Date: Tuesday, September 23, 2008 2:45 pm
Subject: [maxmsp] Re: novation automap external?

>
> The automap is just a sysex command to the controller. Because
> the SDK is not available (still) we can only attempt to figure
> it out from trial and error.
>
> I have somewhere an analysis of the sysex dump command and I had
> relative success sending commands to my controller but the
> problem is that it isn't possible to update individual values
> and a whole template has to be 'dumped' to the controller and
> stored and memory.
>
> While this works, it isn't ideal. If I can find the analysis I
> can perhaps make a quick patch if you wish.
>

Anthony Palomba's icon

Finally! I can not wait to try this. I would love to be able to
write text to my Remote SL.

Anthony Palomba's icon

Writing to the SL displays

To clear a display, send the following message:

F0 00 20 29 03 03 11 04 PID 00 02 02 (04/05) F7 (left / right)

To write text to the display, a message must be formed as follows. “pos” is the position to write to, rowID id the row to write to, defined as follows:
1         2
3         4

Then, the message text (ASCII) followed by F7.

F0 00 20 29 03 03 11 04 PID 00 02 01 pos rowID 04 (t e x t) F7

Does [sxformat] support hex input?

lut lei's icon

Quote: fairesigneaumachiniste wrote on Tue, 23 September 2008 22:42
----------------------------------------------------
> The automap is just a sysex command to the controller. Because the SDK is not available (still) we can only attempt to figure it out from trial and error.
>
> I have somewhere an analysis of the sysex dump command and I had relative success sending commands to my controller but the problem is that it isn't possible to update individual values and a whole template has to be 'dumped' to the controller and stored and memory.
>
> While this works, it isn't ideal. If I can find the analysis I can perhaps make a quick patch if you wish.
----------------------------------------------------

No need for an analysis, as the aforementioned link shows;) I thought the SDK had been available all the time.

So are you saying that it's possible to do the two-way communication via pure maxing? As described on this page http://developer.novationmusic.com/doku.php?id=remote_sl_compact_development

Doing it without making an Automap Connection to the (automap) Server?

Mitch Turner's icon

Glad you liked the Max abstraction for the Remote Zero SL. I've got one for Pd as well. Not sure anyone here would want a copy, but if you do let me know.
Mitch

mmturner
(At)
mindspring
(dot)
com

lut lei's icon

Quote: Mitch Turner wrote on Wed, 24 September 2008 20:31
----------------------------------------------------
> Glad you liked the Max abstraction for the Remote Zero SL. I've got one for Pd as well. Not sure anyone here would want a copy, but if you do let me know.
> Mitch
----------------------------------------------------

Thanks! I haven't used PD for months now, but I'll let you know if I find a need for it;)

fairesigneaumachiniste's icon

Yes it's entirely possible. Before the SDK was available (it wasn't available according to Novation support a month ago) I had full communication between Max and my Remote ZeroSL from just Max/MSP.

Having a quick glance at the SDK it looks like my patches are still relevant so I can add a few improvements.

fairesigneaumachiniste's icon

You don't need to send as hex. Just use an integer box with the display set as hex to get the right number.

Quote: Anthony Palomba wrote on Wed, 24 September 2008 00:41
----------------------------------------------------
> Writing to the SL displays
>
> To clear a display, send the following message:
>
> F0 00 20 29 03 03 11 04 PID 00 02 02 (04/05) F7 (left / right)
>
> To write text to the display, a message must be formed as follows. “pos” is the position to write to, rowID id the row to write to, defined as follows:
> 1         2
> 3         4
>
> Then, the message text (ASCII) followed by F7.
>
> F0 00 20 29 03 03 11 04 PID 00 02 01 pos rowID 04 (t e x t) F7
>
>
>
> Does [sxformat] support hex input?
>
>
>
----------------------------------------------------

Anthony Palomba's icon

Did anyone get this working? Do you have to update the
RemoteSL OS to 2.0 for this to work?

Anthony Palomba's icon

Has anyone had any luck with this?

I tried entering the following command in to sxformat...
[sxformat] 240 0 32 41 3 3 17 4 PID 0 2 1 $i1 $i2 4 hello 247

and got...

sxformat: sxformat: bad argument PID

Does anyone know what "PID" means? The novation documentation
does not specify...
http://developer.novationmusic.com/doku.php?id=remote_sl_compact_development

johnpitcairn's icon

I believe "PID" may be the Novation "Product ID" required. Given it's a single byte, maybe try the numbers 0 and up until you get one that works for your specific SL model?

Anthony Palomba's icon

Hey you guys just wanted to give you an update. I was able
to contact Novation and they explained things a bit better.
I am happy to say I am now able to write text to my RemoteSL!

I have attached an example patch that shows the basic
functionality. The "PID" ended up being the host id. I
included a summary of the documentation at their site.
Give it a try!

Some things to keep in mind...
All text has to be converted to ASCI. It would probably be a
good idea to have some javascript do this.

When you send it an online message, it switches to the automap
template for that host. For Logic it is 39. This is not so
nice because it means that it does not match the nice template
and patch that Mitch wrote.

That being said, it does indeed work. This patch is just a
starting point. One problem is that I would like to be able
to send variable length strings to the RemoteSL. But sxformat
forces me to use $i values, which means I can only write
strings of a fixed length. Is there a way I can send sxformat
a list of values that it would send, instead of the
list that I instantiated the object with?

njazz's icon

thanks a lot, very nice patch!!!!!!!

Some my thoughts on the topic if anyone will find that useful:

After some time i discovered that standard automap feature of displaying text being quite useless in some concert applications when i need very fast changes and have to know exactly where am i. As example - i use max+novation to process sound from piano i'm playing and the usage of my notebook screen for that sort of indication becomes much more comfortable.
So maybe it's a good idea to use the whole displays to show just text instead of parameter names and values.

The really cool thing might be a connection to that automap 2.0 server with several layouts, but not sure if that mixture of software will work good - i guess it's better to do similar things (parameters routing) just in one program. I'm now using the lowest row of buttons for switching layouts, this way controlling 8 separate subpatches. i pack all parameters into 1 list and then use a router to distribute it, every subpatch gets a list and takes separate parameter using zl nth. A sort of extremely inefficient code for cpu, but actually this runs quite smooth.

lut lei's icon

Just upgraded to Automap 3, and the patch is still working. Thanks for sharing Anthony!

Navid's icon

wow, this is news to me. Where can I find and download the external btw? and
written patches or help files if possible.

thanks,
-Nav

On Thu, Feb 12, 2009 at 4:07 PM, Lut Lei wrote:

>
> Just upgraded to Automap 3, and the patch is still working. Thanks for
> sharing Anthony!
>

lut lei's icon

There's no external, but there are some really helpful patches, and an accompanying template to be found in this thread. It enables communication between Max and and Novation midi-hardware supporting Automap, and makes it possible to write to the LCD-display of the device from your patches.

Mitch Turner's icon

Navid,
I'm not sure if my patch is the one you are looking for but here is a link to it.
http://home.lagrange.edu/mturner/MitchWebSite/max%20msp%20stuff_files/RemoteSL_Patcher.zip

It comes with a SYX file that must be uploaded on the ReMoteSL, I have no idea if it still works with the latest version of ReMoteSL software. I have not really kept up with recent changes.

Anyway, hope it works for you,
Mitch

Bryan Dodson's icon

Hello, I came across this thread last night after being frustrated with Automap server for so long... and I spent several hours probing and prodding, and wrote a few patches to assist in writing to my machine. I use every controller on my 25SL, and it does not require a SYX file, there are default values for each of the controls. I have a few patches set up that are heavily integrated with my environment, and would take quite a bit of tweaking to get ready for others to use. I can give you a brief description of what each one does though, and if anyone is interested, let me know and I'd be more than happy to upload them. As much as I take from these forums (I've been maxing for about a month, and you guys' help has been invaluable), I'd love to finally give something back.

ezctl [arg] - creates a new object with 8 outlets that will output the value of its corresponding controller, determined by arg - d=dial (0.-1.), b, b2, b3, b4 = a row of buttons (outputs 1 when pressed,0 when released), p=potentiometers (outputs delta in increments of 0.01), s=sliders, t=transport, sb=side buttons

ReMOTETemp - outputs tempo determined by knob or tap. I can't figure out how to send a tempo to the machine to initialize though, anyone else figure that one out?

ReMOTEDisp [row] - creates a new object with 1 inlet, which takes in a list in the format {x, text} where x is a number 1 to 8 and text is no more than 8 characters. (will truncate anything longer).
requires argument to specify row because sysex can only take in 9 arguments, and 8 of them are characters so I use the last one for the offset. the display is 72 characters long, so its possible to neatly fit an 8-character string over each column of controls with a space between.

ReMOTELong [row] - writes up to 72 characters to row specified in arg.

In my environment I have a toolbox patch that's open anytime I'm using max, and it has a ReMOTEDisp object for each row that receives messages to row1, row2, row3, row4. this also allows me to store anything printed in a coll, and dump the coll to recall the screen's state should anything happen.

Axiom-Crux's icon

can I get the sysex lcd writer patch?

Anthony Palomba's icon

I already attached it to this thread. Look a several postings
above this one.

emj_antonin's icon

I wonder if somebody succeeded in managing the bank select option that is present on the HUI-Logic-DP automap presets... in other words is it possible to assign more than 8 faders to as many Max sliders?

thanks

Anthony Palomba's icon

Here is the RemoteSL test patch the demonstrates writing to the screen...

433.RemoteSL_test.maxpat
Max Patch
krodelabestiole's icon

ive just got a 25sl mkii
wondering
is there a way to light on and off led buttons from max (using sysex or midi or nrpn or whatever) ?
i found nothing that seems to look like that in the manual...

efiocco's icon

Hi,
I'm trying to send to my Zero SL MKII a feedback for the enconders' ring-led, in the midi programmer ref. doc they say it should be a simple cc msg on ch 16, cc #112 - 119 (for each of the 8 encoders) and value 0 - 11.
I can't make it working, it seems the controller only care about these cc when in automap mode.... please help! bests

caninc's icon

Hello,

Does anyone has any experience with embedding a patch into Zero SL MKII? I'm currently working on this sampler-like module in max, I'll try to embed it into MKII including lcd, 8 different track, configured EQ and effects. I believe I need to deal with sysex connection first, anyway I'll keep you posted with progress if anyone is interested, any suggestions are welcome.

Cheers