< Back to IRCAM Forum

Creating a multi-platform max for live device

Hi, Forgive me for asking so many questions on the forum, I am an intensive spat user!

I wish to create a windows / mac compattible AMXD

However, when I add both the MXE externals, and the MXO externals to my max project, and freeze the device this isn’t enough it seems.

I know that spat on windows needs depencencies to run, but how does this work if the m4l device is frozen? Can I add the depencencies to the AMXD?

The windows version does not want to work.

  • I have Visual c++ dist kit
  • I have Spat installed in the max packages folder

Do I actually need the spat package when the device is frozen?

Greetings, Marijn

Hi,
For Windows, you’d also need all the DLLs that are in the “support” folder of spat.
I’m not sure if they can be included in the AMXD or if you need to copy them in a specific folder (i.e. in a folder where Max can load them – not the Max application, but the Max executable that is shipped/bundled with Ableton Live).
I dont have access to a Windows computer at the moment, so I cannot test. But I guess a bit of trial-and-error should give you the answer.

Also : I dont know if it’s possible to create one single AMXD for both Mac and Windows. Maybe ? No idea.

Best,
T.

Hi,

I tried to make a cross-plateform device but you can’t include all the DLLs in it, even if you work “properly”, that is to say, build a Max project first, but Max crashes at freeze… too heavy or too many files, I don’t know.

So it’s excluded, so on PC you need the support folder in the path… or simply the Spat.

As for the mxo, it seems that including them allows the device to work under Mac OS… this remains to be seen case by case for mxe64…

best,

Jerome

I managed to make it work!

My device was also crashing on freeze. For me, fixing the structure of my project:

  • Patchers
  • Media
  • Externals

After I restructured my project so that all the spat externals (XMO and XME) are in the externals folder. After doing this, max was able to build the m4l device. And IT WORKED! on both windows and mac. It is not clear to me if I even need the spat library, because when I take it out of: My documents / max 8 / packages, the whole thing still works.

Greetings, Marijn

1 Like

Hi.

Did you fail to build your device from MacOS or from Windows ?

Thanks

Hi, I am interested in this.

@beller, I guess it failed on windows, since you only have DLLs on windows (?)

@marijn, Here is something to think about and check, if you can: It is possible that it still works because it is loading the externals not from your device but from your max installation. Can I ask you to try to switch ableton live’s preferences to use built in max installation that is shipped with ableton instead of your main max installation? That built in installation should not have access to the packages and program files (e.g. DLLs) installed on the main installation.

Thank you

1 Like

I think it works because I loaded the MXE and the MXO files into my AMXD as shown in this tutorial:

Greetings, Marijn

@marijn wow, that’s and oldie (can’t believe it’s practically 10 years old)
That’s very good news then :slight_smile:
Thank you.

1 Like

old, but is still works!

I’m actually interested by the question this topics is raising.
In theory spat licence doesn’t allow us users, to distribute, send and whatsoever any of its externals through any ways. Freezing an amxd is intended for device distribution towards other users that are not required in consequence to get third party library to make the device working in Ableton. It’s a great thing as it allows quick installation and share

For most of third party library, it’s ok. But In the case of spat, to my understanding but i might be wrong, it involves that adding its dependencies in an amxd, even just one, is pointless as users will anyways required to get the library from the forum and comply with the licence to remain in the legality.

So finally, preparing just the amxd based on the top level patcher without adding any spat dependencies to the project and leave user getting the library on the machine where they will run this m4l seems necessary. I dont see other solution. Is that correct?

1 Like

Hi Fraction, That is correct. Spat5 is needed to Run the AMXD.
So I think it is perfectly legal to put spat5 into an AMXD, as the licence agreement still is needed from the original spat5 download.

It would be another matter if you would sell the m4l device in a commercial product. I think. Personally I have been struggling to find answers to the legal questions on spat5 distribution. But my understanding is that as long as I mentioned the Ircam forum logo, and I did not sell it as a commercial product, there would be no problem.

well not exactly. I ve been recently told by Ircam itself that users could get ircam spat through forum only, and in no cases it’s allowed to distribute any of its components it by other means, even with free device sharing, as each users should agree to ircam forum licence, therefore to register to it, and this seems to be the only way permitted to agree to their licence. From there they could download the library and use any device that would use spat externals. But to me, it makes everything more complicated while it’s already super complicated to spread works and developments.

Speaking of myself as i m about to share free m4l device with spat externals, it would be a relieved to be able to include externals in the amxd. That’d be the modern way as it has been designed by cycling74 and Ableton for amxd implementation. But apparently, it’s not allowed with spat.

If you have updates or thoughts regarding this, please share !

Hi,

here’s what you need if you’d like to share an .amxd,

https://forum.ircam.fr/projects/detail/ircam-forum-template-for-max4live-devices/

I just use that :

image

HIH

Jerome

1 Like

Actually no. As soon the device includes a spat external, display the icon in the ui doesnt means it allows you to distribute your own device from your own website for instance.

Okay, you want to be sure in terms of law? In principle, with a mention “Ircam Forum” you indicate that you use the Spat, for example… but you have to ask the question for the personal distribution?
My public patches are hosted by the forum…It’s simpler, you have to think about the community.

@beller : what’s your mind ?

thanks! I am currently using this:
Screenshot 2021-05-27 at 15.22.44

Would that be sufficient?

(this device is not shared publicly but is used in Tilburg University’s VR cave for educational research purposes. For this cave I have a rigged up Ableton as a middleware for Unity3D, Using spat as the spatializer engine for 42 Genelec loudspeaker). More information on this project will soon be published on the forum).

1 Like

I m not sure you get my point. I have been told that is not possible to ditribute or share spat externals through any means even with free device. It implies that freezing a device that use a spat external is irrelevant as anyways each user that will use this device will need to get the entire library and agree with the licence individualy. So its not necessary to include the externals in the device and leave it to be called from the library directly. Im afraid puting an icon as a solution is not include in spat licence. Dont get me wrong, i dont find that handy, but if this is the rule i ve been told i need to follow then i assume that should be the same for everyone

1 Like

and also to complete.

Being able to freeze a device is really robust when you want to share the tool. It gives that device certainty it will work after sharing it. If you are not able to include the externals on the device, it involves that good-working of the device will rely on user updating or not dependencies. It’s really hazardous I really dont get the point on not allowing to share spat externals through m4l device. This limitation is contre-productive. It could became a much more used library among creators. A opposite example to this, and fortunately for the dynamic of devs and creativity in the max community in general, super useful libraries such like cnmat doesnt make mandatory to have all the projects done with Open sound control for instance, to be shared through Berkeley website only. Or would we imagine juce framework to also tell to its user that they could only share the project done with it and its own libraries through its website only - like spat for instance :stuck_out_tongue: ?
Protecting intellectual property is necessary and we all have respect of what it’s done at Ircam of course. But this has to do with something else. There must be a better way ! :slight_smile: It’s only my opinion obviously.

Hi,
For Windows, you’d also need all the DLLs that are in the “support” folder of spat.
I’m not sure if they can be included in the AMXD or if you need to copy them in a specific folder (i.e. in a folder where Max can load them – not the Max application, but the Max executable that is shipped/bundled with Ableton Live).
I dont have access to a Windows computer at the moment, so I cannot test. But I guess a bit of trial-and-error should give you the answer.

Also : I dont know if it’s possible to create one single AMXD for both Mac and Windows. Maybe ? No idea.

Hi, see my comment above. it is totally possible to create a single AMXD for windows and Mac. Just add the MXE (for windows) and the MXO (for Mac) externals.

Then add the depencencies for windows

It is important that you consolidate your max project to make sure the files are will organised within the AMXD folder, then freeze your device.