Max on Linux

Th8a's icon

my guess is that there are liscencing issues with ableton etc that prevent c74 from really persuing a linux port. Its not like the customer demand isnt there.

As of now, its still crashing anytime a umenu is clicked. Its quite frustrating as it seems that nothing I do has any effect. Everything works pretty smoothly, but as soon
as a umenu object is clicked, the graphics glitch and everything crashes. So close yet so far... If anyone has any advice, I'd greatly appreciate it!

bart at max (also BITter)'s icon

Dual boot is easy those day's, keep your life simple.
I am moving slowly from MacOS to Linux but MacOS stays in place purely for running Max.*
When you don't want to get involved with MacOS, remove all unneeded running apps, widgets, ..., and let Max open in fullscreen at MacOS boot. You don't have to use it, it only have to keep running Max. :-)

* Because since El Capitan, MacOS and Safari are all the time trying to connect to so many servers that i don't get work done. :-P

@AUDIOMATT: "Increasingly our customers want to build software for a variety of contexts and environments beyond the desktop." = Linux :-)

nicnut's icon

In regards to TH8A's comment regarding licensing issues with Ableton, etc. Maybe there could be a special version of Max, like Max for Live, but instead be Max for Linux. It could be different, limited, or stripped down if necessary, but at least be something that utilizes the same language and runs on Linux. Just a thought.

I am splitting my time between a Mac doing Max and a Raspberry Pi doing Pd. I really wish Max would work on Linux, the possibilities are huge, as most on this thread I'm sure know.

nick

Jeremy's icon

Our relationship with Ableton doesn't restrict our ability to develop Max for other platforms, fwiw.

The latest release of Gen's code export offers improved support for Linux and ARM platforms -- you can now run Gen-exported code on Linux-based platforms like Raspberry Pi and Bela and even bare-metal embedded systems like the Cortex M4 (for instance, in Rebel Technology's OWL Eurorack module and pedal). Over the coming days and weeks, we'll be rolling out support materials related to that, so stay tuned!

brendan mccloskey's icon

Intriguing and welcome news. Staying tuned.

bart at max (also BITter)'s icon

Nice!
But does somebody has tested Max patches in the Mod Duo?
http://moddevices.com/#revolution
On their website they stated:
"The MOD Duo utilizes an open standard for the plugins called LV2. It also features integrations for great audio technologies such as Max/MSP, Pure Data and Faust. Taking the example of a Max user that means:
With the MOD he can finally take all of his Max patches conveniently to the stage – in a pedal."

@Cycling74: Is it possible to save Max patches in this device and us them?

to_the_sun's icon

@Cycling74: Is it possible to save Max patches in this device and us them?

I believe the Mod Duo can run Max for Live devices.

to_the_sun's icon

Or at least I thought so. But now I can't find where I read that.

Th8a's icon

*UPDATE*

I have managed to get Max 7 to run somewhat smoothly in a sense. Before, no matter what, running the full Max 7 app in wine was certain to crash immediately. Now, I have it running. The catch is that UI goes black and stays that way. The program is actually still running underneath the black UI, as if some element is clicked in the dark it still responds. so it’s not a full blown crash, but rather some shortcoming with the wine gpu handling with MAX. I finally accomplished this after countless hours of trial and error… whew. I’m so close yet so far still! if anyone has any idea what component, .dll file, dependency, WINE setting or any other ideas that my help out, PLEASE hmu!

ps: maxRT is fully operational from what I can tell, with the exception of anything which uses context dropdown menus ie: . aside from that, even jitter is working with hardcore GL rendering etc.

Luke Woodbury's icon

Good work! Wish I could help, keep the updates coming!

ezel's icon

"maxRT is fully operational from what I can tell, with the exception of anything which uses context dropdown menus ie: "

same here, no umenu in maxRT on ubuntu 16.04+ wine2.2
(some companies start to sell audiosoftware for linux like.bitwig)

if i where shure i get my wish, i think i wish for
max on linux!

+1

Jose Castillo's icon

Any updates on this? I'll add myself to the list. The only reason I still have a mac is because of Max / MSP.
I'm really disliking apple as of late. Too many restrictions on their operating system. It feels more and more like an iPhone. Too many hacks to run, compile and just do simple stuff.

Please, bring Max to linux!

thispatcher's icon

+1 to Jose here. I just purchased a Dell with 32GB of ram, and its quite nice so far, save for less externals being available and more command line interfaces than i can keep track of, haha.

I'm going to try installing osx on a VM this weekend. Will post results shortly.

EDIT: So, I ended up returning the windows machine. Though I really did like the prospect of more upgradeable parts, I just could not be as productive as I am with the Mac ecosystem :/

I now have one of those touchbar macs, and, am surprised by how happy I am with it.

jml1985's icon

Please, bring Max to linux !!!

AudioMatt's icon

@Jose Castillo

My laptop was stolen by TAP airlines recently going *into* a field recording trip in Senegal. There I bought a cheap ACER laptop. Holy crap do I hate using windows. When I got back, I forked over the cash for a new (worse) macbook pro. It was entirely because of Max. Otherwise I would have gone with ubuntu or something.

Wish I wasn't tied to Apple.

Th8a's icon

Dude... I feel ya. It took me years to come to terms with your exact same dilemma. Leaving behind apple was a joy. Leaving behind Max was a heartbreak, but ultimately, for me it was way worth it in the end. Apple is notorious for brand locking and price hiking... It's kinda like quitting crack. Hard at first but rewarding down the line. New flavors of puredata like pd-l2ork are starting to close the gap between max and PD. Sure, it's still not quite as polished, but if you love modular signal flow programming and hate apple, with a little bit of adjustment to your work flow it very much suffices. In some ways I find I like pd even more. It lacks the easily built UI features of max, and the environment is generally more rough around the edges, but still fantastic. Js...

Robin Parmar's icon

@AudioMatt

" Holy crap do I hate using windows. "

You'll get used to it. It's likely only minor changes to the GUI that annoy you. Since I use Windows most often, I hate the limitations of the Mac interface. Both need replacements for the file manager and copy functionality (for a start) for me to be remotely productive.

What I do hate is when Windows uses me. It's steadily becoming more Mac-like in its assumptions about what I want to do and what apps I want to have loaded. I hate this condescending BS which is why I have somehow never bought an Apple product in my (long) computing life.

As for pd, why has no-one redesigned the frankly atrocious interface which renders worse than when I used an Amiga GEM system? And provided context-sensitive help that works? Those two things are only a summer project and would improve the UX four hundred percent.

Unfortunately I cannot use Linux because none of my media software runs and there are no decent alternatives. Which is I guess what this thread is all about.

thispatcher's icon

@Robin Parmar
As for pd, why has no-one redesigned the frankly atrocious interface which renders worse than when I used an Amiga GEM system? And provided context-sensitive help that works? Those two things are only a summer project and would improve the UX four hundred percent.

Sounds like you've got yourself a nice winter project :D

Robin Parmar's icon

Sounds like you've got yourself a nice winter project

Oh dear, not that reply!

C coding is not my specialty. Plus I donate most of my time free as it is. Shouldn't be too hard to understand that I can't be an expert at everything. :-)

daed's icon

Just adding yet another +1 to this thread. The day Max runs on desktop Linux is the day Cycling 74 gets money from me. I use PD on a daily basis and I'm even quite happy with it but the fact of the matter is: Max is a much more polished product.

The amount of people in this thread feeling stuck with an operating system they're unhappy with because they paid their hard-earned money for max is astonishing.

I can promise that I am not the only person who wants this, and this thread is not a representation of just how many people want this to happen. I've been using Linux since I was 16 and have no plans to change that. But you will have guaranteed new business from me (and likely many others) even if I don't ultimately end up using it that much. Simply because I believe in the idea of it.

Th8a's icon

Well, folks, this thread has been ongoing for quite a long time now... and so I am happy to be the one to announce that with the release of Max 8, I gave it another shot at running it in wine on a linux workstation. Low and behold: IT WORKS! And when I say it works, I don't mean it kind of works, I mean it fully works! I have it running with full jack audio and midi connectivity with zero latency via wineASIO. I even have windows VST plugins running flawlessly in the VST~ object. I don't know if C74 rewrote Max 8 to intentionally run in wine or if it's just a happy accident, but either way, THANK YOU GUYS! I have been waiting years for this! I can finally use all my old patches in a linux environment and, ofcourse, make new ones. I am super stoked on this turn of events, and if anyone out there needs help getting it running on their setup, feel free to ask. In general you will want to run the latest version of wine-staging and make sure all your proper libraries and redistributables are installed within your prefix. Well, Im off to go nerd out in patch land. Cheers all!

Robin Parmar's icon

Good to hear! I like a happy ending.

giorgioesse's icon

awesome!

AudioMatt's icon

Dude really?! What are you running on? What should our specs be? Can we get this officially supported? I feel like it would be an easy win for Cycling to just type "And linux in wine" on their front page.

Luke Woodbury's icon

That's awesome! Apparently you can run Wine on a Raspberry Pi with ExaGear, I wonder what sort of performance you would get...

giorgioesse's icon

not working for me with wine in Ubuntu 16.0.4

Th8a's icon

I am running Ubuntu 18, though my guess is that your linux distro is less important a factor than your wine setup. I am using the latest wine staging. You'll want to install winetricks and get all those runtime libraries installed. There is an article on the linvst git page that is geared towards how to set up wine to run most VSTs in linux, and the prefix I am using to run max has pretty much all of the recommended settings from that page set. https://github.com/osxmidi/LinVst. If anyones stuck feel free to hmu

msnf's icon

Hi TH8A,
how can I contact you with private message?
Your posts are very interesting and I would like to know more in details if it's possible
(technical specifications, etc....)
thank you in advance!

brunatius's icon

Hi @TH8A, if you could detail a bit your install that would be great. I'm trying to run the Max/MSP based Haken Continuum Editor and it's not working at all.. :( I have been on the fence upgrading to Max 8 since I am working so much in linux these days. I'd happily test and upgrade to 8 if a linux version were in the plans!

Th8a's icon

hey all, sorry for the delayed response. Ive been allover the place and havent been on the internetz much lately. I can confirm that max 8 runs reasonably well under wine. So far, the only reproducible crash I have been able to uncover is when attempting to use the hid object. Everything else that I have tried works. I'll do my best to walk you through the setup. I am using ubuntu 18.04, but the setup should be somewhat similar for any distro, provided you are able to track down the appropriate packages/repositories respectively.
Assuming that your linux environment is all set up and ready to go, the first thing you'll want to do is head on over to winehq and install the latest version of wine-staging. From there, make sure that you also install winetricks and any library that your distro provides that deals in handling microsoft code ( ie: wine-mono, gecko, microsoft-core-fonts etc.) The font handling packages are particularly important. I just used synaptic package manager, ran a search for wine and installed any and all packages that compliment wine that I could find.
Once all that is done, open up terminal and create your prefix. so...
WINEARCH=win64 WINEPREFIX=/path/to/your/prefix/folder winecfg
now, your'll see the wineconfig app. The first thing to do is set your windows version to windows 10. Then, switch over to the staging tab and enable all the checkboxes there. Next, go to the libraries tab and follow all of the override instructions and recommendations found here https://github.com/osxmidi/LinVst under the section labeled "Common problems and possible fixes." This step also optimizes a prefix for using windows VST plugins in your DAW of choice via linVST. groovy.

Once all that is handled, close winecfg, go back to your terminal and
WINEPREFIX=/path/to/your/prefix/folder winetricks

select default prefix
Install component or library

You'll see a big list of windows components to install. The most notably important ones to install are as follows:
vcrun6
all vbrun packages
all msruntime redist packages
core fonts
DirectX
Xact
msXML
mf (media foundation)
msdac (ms data access)
riched
mscvrt
video codecs
mspatcha
flexgrid control
wininet
winhtml

I may have missed something but I think thats everything. These also make most windows games run in the prefix. If after you install these your still experience crashes, you can start wine in a terminal and look at the crash dump to get a hint as to which other packages still may need to be installed.

If some of the installs fail, dont get hung up. just move through the list as best you can and as long as you have th ms runtime packages, fonts and internet support libraries (wininet winhtml) you should be good.
Thats is! now install max using msiexec and approach the moment of truth to see if it runs.

It is likely that you'll need to fiddle and tweak things til it works, as every system is different and thises things rarely work on first attempts. Stay vigilant, steadfast the course and you'll be rewarded with max on linux

I realize my instructions are a little shoddy, but that is how I set everything up to tbe best of my recollection. If you fun into trouble or have questions, you can hit me on my soundcloud https://soundcloud.com/joefabioth8a or just ask here, understanding ofcourse that I do not check either message box all that frequently.
Hope that helps.
Cheers!

msnf's icon

Great! Thanks Th8a.
Simple question: can you explaine how do yuo install asio 64 bits ?
For the moment I installed Max8 simply with PlayOnLinux on Ubuntu Studio 18.10, but there is no possible to install asio64... and impossible to have more then one midi inputs to Max...
best

Th8a's icon

@brunatius - I'm afraid there still is no native Max version for linux, and i don't think there are any plans to release one. Max 8 runs well in wine with the setup that I described above, but Max 7 will unfortunately not run well enough to use.

I should also mention that there is still one thing that isn't working properly, and that is the autocomplete function in object boxes. I worked around it just by typing my code into a text editor and then copy paste into object boxes. That is one snag I forgot to mention, and If anyone finds a fix I'd love to hear it.

@MSNF - There is a 64 bit version of wineasio that you will need to compile and install manually. It does not exist on winetricks or POL, unfortunately. You can find the source here: https://github.com/wineasio/wineasio.
If you use Ableton live under wine, many people (myself included) experience problems with midi using wineasio64. It otherwise works great. If you want ASIO drivers to work with Ableton, use the FLStudio ASIO drivers. They work well and produce reasonable latency when recording. Also, wineasio is not really needed to produce multiple midi outputs in wine. MIDI in linux is better handled by ALSA, where wineasio+jack simply deals with low latency audio. If you are looking to wire up complex midi setups, and assuming that you are running jack audio, you might try this solution:


sudo apt-get install a2jmidid
sudo modprobe snd-virmidi
a2jmidid --export-hw &

now there should be some virtual midiports visible to your setup which you can use to bounce midi signals around. Then, in max you can use the midiinfo object to enumerate a list of virtual inputs and outputs .

If you are not already, I'd also recommend getting the KXstudio repositories installed and using one of their programs like Cadence and Carla to control your audio and midi configurations. Carla is a MSP ui like max that lets you cable midi and audio around the linux environment. It's quite good.
(From KXstudio website:)
# Install required dependencies if needed
sudo apt-get install apt-transport-https software-properties-common wget

# Download package file
wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_9.5.1~kxstudio3_all.deb

# Install it
sudo dpkg -i kxstudio-repos_9.5.1~kxstudio3_all.deb

If you're using a system newer or equal to Debian 9 (Stretch) or Ubuntu 16.04 (Xenial) you'll also need to enable GCC5 packages.
You can do so by installing this deb file - kxstudio-repos-gcc5.deb, or manually by running this:

# Install required dependencies if needed
sudo apt-get install libglibmm-2.4-1v5

# Download package file
wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos-gcc5_9.5.1~kxstudio3_all.deb

# Install it
sudo dpkg -i kxstudio-repos-gcc5_9.5.1~kxstudio3_all.deb

sudo apt-get update

#install cadence and carla
sudo apt-get install cadence carla


That should straighten out your situation. Hope that helps.
Cheers

msnf's icon

Thank you for this help TH8A!
I confirm the problem with autocomplete function in object boxes...
but Max8 is working well - last problem is asio for latency and two midi input (don't need the outputs).
I use Ubuntu Studio 18.10 (with RT kernel, jack and patchages installed). I tried AVLinux (wineasio is installed), but there are too much problems with my hardware... but maybe it could be a good solution for somebody who would like to test.
I will try to compile and install manually asio64, thanks for the insctructions.
In my case the midi inputs in Max with "patchage" are fixed and there are only one inputs, but I will try your method or I will try to merge two midi inputs into patchage, but for the mment I have some instability when I merge two outputs.
Another question abpout MIDI:
Do you use the midi controlers? - and of yes are the connexions stables? (I mean if there are not deconnexions of midi from external controlers)
Cheers

Th8a's icon

I have had no problems at all with midi in MAX. I have multiple ins and outs configured. Interestingly, max does not seem to require the use of patchage or carla for midi port routing. It can be configured from within the max patch. The connections will not be visible in your session manager, but the data gets to where it needs to go and without latency. There are a few points on midi function with max in wine that i can point out. First. make sure that whatever hardware or virtual ports that you intend to use is set up and visible to
ALSA/a2jmidid before you start max. The [loadbang]-- [midiinfo]---[umenu]---[midiin] setup will detect available ports at startup and populate the umenu with the entries just as it would in windows, and the umenu can then be used to switch inputs and outputs as normal, but any changes in hardware/ports will not be detected until you restart max - even if you send [midiinfo] a refresh message. If you are experiencing shoddy connections, it's not likely coming from Max. Check your ALSA setup, physical connections etc. Note that jack midi drivers do not work in many cases, so in cadence or qjackctl, set midi drivers to 'none' and make sure ALSA is enabled with the a2jmidid --export-hw running. ALSA is by far your better bet for handling midi. Use jack for audio and ALSA for midi.

In mac, Max can make it's own named midi ports via system messages. This is not so in wine and i dont think it is so in windows either. Rather, create a virtual port with whatever means you like, export the hardware with a2j and then start max. Here is a patch I use to handle midi in max.

j-midiin.maxpat
text/plain 16.26 KB

j-midiout.maxpat
text/plain 12.39 KB


Th8a's icon

*UPDATE*
Someone posed the question on another thread about the authorization packages under linux/wine. As of now, the trial period on my installation ran out and I am finding that reauthorizing is problematic. It would seem that the jweb object that the authorization patch uses is not working. Also, an error message about CEF missing appears in the console.
*EDIT*
My mistake. The authorization process works just fine. It would seem I bumped a setting from my prefix out of place somehow and that was causing the problem. upon setting up a fresh prefix, it all works fine. Keep a backup of your prefix once everything is working - would be my advice.

Augustine Bannatyne - Leudar's icon
furiousgreencloud's icon

Also this https://www.youtube.com/watch?v=ATnpEOo3GJA

Basically you can virtualize MacOS on linux, and pass through USB ports.

Th8a's icon

I remember attempting something like this early on when I was trying to get my max patches working in linux so I could use them with bitwig etc. I basically did exactly this, only I used virtualbox instead of KVM, I sent midi and audio data over the COM ports instead of USB ports, shared hard drive connections via FUSE and SSHFS and of course OSC via the virtual bridged network... Then I had a PureData patch catching the output of the virtual COM ports and translating it to data streams to be sent through the JACK bus... I didn't do the whole separate GPU thing, which is cool, but you still need to divide your CPU and ram to run the vbox... All said and done, my setup actually worked if not for the fact that running a heavy OS like OSX in a Vbox wasn't already slow and full of latency, paired with the bottleneck of streaming through slow ass COM ports. lol. For zero latency audio applications, I can't recommend it unless you have yourself a BEAST of a computer. even then, the setup is INSANE and frustrating at every step. At that point, you may as well just build a hackintosh and link them through the network, but then that defeats the idea of running max in linux. While the VR approach is super cool, I'd state my opinion that wine is probably more practical and efficient at the time of this posting. Now when things like Docker get good enough to run OSX apps in containers, THAT is when shit is gonna get reeeaaal good. Ofcourse, apple will likely call that piracy, which is probably why its not already happening and I wouldnt hold my breath for it... but hay, just sayin.

daniel puig's icon

Hi !

I've managed to run Max 8 on Ubuntu 19.10 based on THBA posts from february, thanks! Here is a first tutorial based on his indications and other research, trial and error. Please, help improving it and share.

TUTORIAL
Max 8 on Ubuntu 19.10 via Wine (works for Ubuntu 18.04 and newer)

***
Brief: This tutorial will show you one way of installing and running Max 8 (Cycling’74, proprietary) under Linux Ubuntu 18.04 or newer via Wine, using Wineconfig, Winetricks and Q4wine, as well as the command line (Terminal). This tutorial is open to collaboration. The installation is a long and complicated process and is not for newbies/newcomers. I’m not a Linux expert.

***
Original post by TH8A on Cycling’74 Forums (look feb’19) and other sources (thank you all!):
https://cycling74.com/forums/max-on-linux
https://wiki.winehq.org/Ubuntu
https://github.com/osxmidi/LinVst
https://kx.studio/Repositories
Information on packages in developer's websites and GitHub.

***
This installation was done on a ASUS Vivobook X510ur (Intel Core i7-7500U CPU 2.70GHz × 2, 8GB RAM, NVidia GeForce 930MX, onboard Intel HD 620 graphics) with Ubuntu 19.10 Eoan (x86-64), low-latency linux kernel and Cinnamon desktop environment (4.0.10).

***
Important:
-
For this installation process, you must be running Ubuntu in a 64 bits architecture. If you are running on a 32 bits architecture, many steps have to be adapted and are not covered here.
- Your Linux installation must already run smoothly with your hardware. This is very important and avoids problems.
- Windows or MacOS may be in dual-boot. Wine will run only on Linux and you will have to authorize your copy of Max 8 from there, if you wish to edit patches after the 30 days trial period.
- After this installation, Max 8 startup is slow, as well as rendering the first windows (console and first patch). I have not done any systematic testing of latency or any technical issues. “Could not load package ‘VIDDLL’, OS version unsupported” is the only error that appears on console after installation, running different (and heavy) patches with no problems, including gen~ and mc objects. Will update as soon as I figure it out and as soon as I can test more (may take a while).
- If you decide to continue, please note that I can give no support to your installation, but am opened to questions. You may need to understand better the commands used and packages installed, so as to adapt them to your hardware.

***
You will need:
-
At least two and a half hours, plus patience to read information on packages.
- A computer running Ubuntu 18.04 or newer, in 64 bits architecture.
- The installation file for Max 8 on Windows (zip) that can be downloaded at Cycling’74 (here).
- Internet connection.

***
Step 0) Backup your data

Please, don’t skip this step. Let’s hope nothing goes wrong, but no one can guarantee that!

Step 1) Install Wine (WineHQ)

Once installed, Wine offers a translation layer between Linux and Windows software and doesn’t have a user interface apart from the software you are opening.
There are 3 versions of Wine. The one to be installed is called “staging” and you should take care not to install packages from other versions (stable and devel).
Winetricks gives you access to many tools and is necessary to run Max and other software. Wine’s configuration on the command line is pretty scary and you can use Winetricks for that. Q4wine will be used to run Max 8 installer, but also helps with configurations.

1.1) The installation process is described in WineHQ website. Follow from there the link and instructions to install libfaudio0 as a dependency. After that, follow the steps below (1.2 to 1.6, adapted from there).
https://wiki.winehq.org/Ubuntu

1.2) If you have previously used a Wine package from another repository, remove it and any packages that depend on it (e.g., wine-mono, wine-gecko, winetricks), as they may cause conflicts, i.e., you will do now a clean install.

1.3) Enable 32 bits architecture:
sudo dpkg --add-architecture i386

1.4) Download and add the repository key:
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key

1.5) Add the repository for your distribution.
    For Ubuntu 19.10 Eoan:
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ eoan main'

    For Ubuntu 19.04 Disco:
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ disco main'

    For Ubuntu 18.04 Bionic:
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'

1.6) Update and install.
sudo apt update
sudo apt install --install-recommends winehq-staging winetricks q4wine

If there are missing dependencies, install them and repeat the last two commands (update and install). If an error persists, look for help on WineHQ website or Ubuntu forums.

Step 2) Enable KX Studio repositories

KX Studio repositories are mentioned in different places as having all the necessary libraries organized for working with audio in Wine. Go to their website and follow the instructions to enable their repositories.
https://kx.studio/Repositories

Step 3) Install other Wine libraries via Synaptic

This step complements Wine installation. You want to install any packages that your distro provides, that handle microsoft code. Open Synaptic, search for “wine” and enable all packages that have references to wine-staging or to gecko, mono, pango and fonts; plus these: wine64 and wine64-tools. Do the same for “microsoft” and look specially for any system fonts support; plus this: cabextract. If you are in doubt, select the package and read the infos on the lower part of the window. Unless you know otherwise, prefer stable to development packages, the latest versions and don’t install potential conflicts. Click on Apply and wait for Synaptic to install them, then exit. This is a very important step, do it carefully.

Step 4) Create a prefix in Wine and run Winetricks

4.1) On Terminal, you will create a prefix folder in Wine’s folder and a prefix to run the Winetricks app (a prefix is Wine’s grouping of resources to run your software). To do this from the Terminal, just substitute ‘daniel’ for 'your-user-name'.
cd /home/daniel/.wine
sudo mkdir ~/.wine/prefix
cd prefix
sudo WINEARCH=win64 WINEPREFIX=/home/daniel/.wine/prefix winetricks

It takes a while to open, but Winetricks app should be running now and show a window with options.

4.2) On Winetricks main window, check ‘Select the default wineprefix’ and click ‘OK’. On the next window, check ‘Run winecfg’ and click ‘OK’.
Winetricks window will close and after a (long) while, Wineconfig window will open (your first Windows software running on Ubuntu?). It will prompt that no gecko and mono libraries were found and ask if you want to install them. Click to install every time. On the ‘Applications’ tab, choose ‘Windows 10’ as operating system. On the ‘Staging’ tab, enable all checkboxes. Click ‘Apply’ and ‘OK’. You will exit Wineconfig and after a while, Winetricks window opens again.

4.3) On Winetricks main window, check ‘Select the default wineprefix’ and click ‘OK’. On the next window, check ‘Install a Windows DLL or component’ and click ‘OK’. An extensive list will open and you need to select the packages that complement Wine’s installation in order to run Max 8. Select packages related to those listed below and the ones you know are necessary (please, share your knowledge). If you are in doubt, read carefully all infos. Unless you know otherwise, prefer stable to development packages, the latest versions and don’t install potential conflicts. This is also a very important step, do it carefully. You can return to Winetricks at any time if something goes wrong with any installation: just cancel it, and restart Winetricks by typing ‘winetricks’ on the Terminal, then uncheck the component that is giving you trouble and redo the process. It is a good idea to take note of your selections, since Winetricks does NOT store all of them when restarted. Click ‘OK’ and wait for all installations to finish. Many will ask you to accept steps in their installation process, don’t leave the computer unattended. If any errors popup, note them down and try to fix them later. First check these:
gdiplus
mspatcha
vb6run
vcrun2013
vcrun2015
vcrun6
vcrun6sp6
wininet

Now, go back up the list and check packages you can find related to:
Codecs (not all of them work)
Flexgrid control
Fonts
Media Foundation
MS Data Access
MS XML
RichEdit
Runtimes
Xact
[We are trying to figure out if there is a definitive list. Please, check the list a few posts below and post your comments/experience. Thanks!]

Step 5) Reboot - Restart your system

After restart, open a Terminal and run the commands below.
sudo apt update
sudo apt upgrade
sudo apt autoremove
This can be substituted by (-y = yes to all prompts, no chance to review infos):
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Step 6) Install Max 8 with Q4wine (easy, but carefull)

6.1) Extract Max 8 windows installer .zip file to a folder you can easily access. You should have an .msi file as result.

6.2) Run Q4wine, by typing ‘q4wine’ on the Terminal. It will run some routines and open Q4wine window.

6.3) Now, on the menu, go to ‘File’ > ‘Run...’ and it will open a new window. On the ‘Program’ field, click the button to the right and select the .msi file you have extracted. Leave the other fields as they are and click ‘OK’.

6.4) This will open the Max 8 installer after a long wait – the whole process is a patience test. Follow the installation steps, but change the installation path, very important! Wine will install Max 8 into your default prefix (the one created above and ready with the Winetricks components installed) with a path for Windows system that has to be translated to Linux. That means that you have to delete the “ “ sign from Cycling74s name, because it has a different meaning for Linux. In my case, from ‘C:\Program Files\...\Cycling’74\Max 8’ , I’ve changed to ‘C:\Program Files\...\Cycling74\Max8’. Leave 'Run Max 8 after installation' checked, click to install. After installation, there is a long wait until Max 8 really starts, where nothing happens. But, it works! You can test your patches now. It is wise to shut everything down and restart the computer before running Max again.

Step 7) Reboot - Restart your system and run Max 8 from the desktop shortcut

:) Hope everything went well! and you can load your Max 8 patches on Linux.

If not, try reading attentively all information given by Wine or the Terminal. Review all steps and look for more information regarding your problem. If a problem with your PREFIX pops up, Q4wine can help to solve.

Please consider sharing your knowledge and helping out to solve any issues.
***

Ko Sv's icon

@DANIEL PLUIG thanks , but your instructions are nearly impossible to decode!
please try to format it better. it should be a step by step installation guide.
besides, it does not work for me.
ah yes and never run wine as root!
cheers

Ko Sv's icon

PS. can you please dump all your added libs in winecfg?

brunatius's icon

Thanks @Daniel, this appears to sum up quite a bit of the previous scattered information. Just out of curiosity, did it occur to you to try and create a docker image? That's the first thing that came to my mind after reading your lengthy description :) I'd be happy to give it a shot :-)

daniel puig's icon

Hi, KO SV and Brunatius,
I did my best, sorry. Hope you'll find your way, but it's not a simple process. English is not my first language, so feel free to help. I'll try to upload the winecfg dump.
As for Docker, I haven't tried it yet and know very little about it. Please, go ahead!

midinerd's icon

@KO SV and @DANIEL PLUIG:

- Daniel, thanks for taking all of this time to painstakingly give over reproduction steps to get Max running on Wine.
- KO SV: They aren't impossible to decode. They are complicated.

@DANIEL PLUIG: A few of the sections don't match the bulleted-step pattern the documentation has. So that might be confusing . Beyond the lofty task that you've actually achieved which is amazing.

@KO SV: - Give a more detailed error report about the exact point in which you were confused so that Daniel doesn't have to revise the entire setup. Over time, it will most likely marinade into a more fixed set of steps, but this is developer territory and not some end-user one-click solution.

daniel puig's icon

Thanks, Midinerd!
I've changed the numbering, hope it gets more transparent. If you follow the installation, you'll understand why I've divided it like that.
KO SV,
Haven't found a way of dumping that list. But I doubt it would help a lot, since it is partially hardware and distro dependent. You should be able to make it work with the tutorial's indications. It's not as difficult to decide as it seems -- the list is lengthy, that's all.

Ko Sv's icon

oh man, I just deleted a long text, so I'll make it short:

MIDINERD
Im currently on Arch linux, so I do not expect single click solutions..
and complicated and complex are two different things!

And I do not have any significant errors. It just don't execute. So some lib is missing..

DANIEL PUIG
this is NOT distro dependant. These are sandboxed libs that wine is using on every distro.
so pls take a note of exactly which ones are installed and post those.

then we need to figure out which lib are needed and in which order.

cheers

Ko Sv's icon

if you don't wanna type make screenshots ;)

daniel puig's icon

[TUTORIAL is above]

Yes, screenshots!
I had the experience that different hardware and distro saw a different list and needed different parts. Apart from that, my list is a result of much trial and error, so... If you have experience, even to try it on Arch, you might figure it out much better. I read about the packages, but still couldn't figure some of them out with my limited windows knowledge. Good luck!

[We are trying to figure out if there is a definitive list. Please, check the list below and post your comments/experience. Thanks!]

***
From Terminal ('winetricks list-installed')

Using winetricks 20190912 with wine-4.19 (Staging) and WINEARCH=win64
vcrun2013
vcrun2015
iertutil
wininet
gdiplus
vcrun2008
dirac
dirac
l3codecx
ffdshow
cinepak
mspatcha
msvcirt
msls31
riched20
mf
mfc40
mfc42
msflxgrd
msftedit
mshflxgd
msxml6
ogg
qasf
qcap
qdvd
qedit
quartz
quicktime76
gmdls
hid
vb6run
vcrun6
vcrun6sp6
xact
xact_x64
xinput

Ko Sv's icon

ok, i tried the package list but with no success..
I'm not able to install:
"xact", "xact_64" and have some serius issues with "hud" (wine crash, etc).
i don't think you need some of them, f.e. xinput . well if you need xbox controller, but we are trying to do a basic install.

I had to install the vkd3d package manually on my linux system.

Ko Sv's icon

DANIEL PUIG
could you pls also make a "screenshot" from the winecfg -> packages?
not the "winetricks install dll" thing.

Robin Parmar's icon

OK someone needs to say it.... a great alternative to all these headaches is Windows. Max and every other piece of music software runs just fine. I realise this is a thread on Linux, but the recent posts make me cringe, remembering my own nightmares with that OS.

Don't get me wrong, Linux is perfect for the server and for domestic desktop duties. But for music? Not so much. Either hack forever with Wine or get used to lesser tools. (As pd is a lesser Max.)

On Win10 I run Max, Reaktor, and Samplitude. No, I cannot do without those on Linux. As a bonus, I can still run old apps from as far back as the nineties... unlike the compatibility mess that is the Mac OS.

The only PITA is that Microsoft is slowly going the Apple route of pretending they know more about how you want to run your computer than you do. Be sure to check out how to put Windows Update under your own control.

Besides this, Windows is free to try with no time limit. Licenses are available very cheap. And few people realise that you can download a Linux subsystem from the Windows Store! Best of both worlds with no hacking.

daniel puig's icon

hi, KO and Robin,

There is a SOLUTION here, not headaches. KO is finding his own... lol ... really funny... wrong attitude and wrong place ;)

Have you noticed that this thread comes from 2012, seven years ago, and that we are on THE place to discuss Max? And no one has come with a better solution! That the tutorial is for UBUNTU, not Arch? I'm an artist-composer-professor using Linux for my production: no regrets whatsoever! I've spent 5 months in my spare time to figure this out, reading a lot and going deep into some issues in 3 different distros and machines. You've complained about the tutorial and that there was no list. I've said the list wouldn't be useful but posted after you insisted. Now you complain about the list. Please, follow every little step first and try to solve yourself, then post your impressions or questions.

If you've opened Wineconfig, you know there is no list to dump and all the configuration is described on step 4.2 (TUTORIAL above).

Ko Sv's icon

DANIEL PUIG
well, thank you for your personal opinion on me!
but, my dear colleague, as professor we should follow basic principals on how we
distribute information.
to have the right package list is the most important thing in your "tutorial".
the screenshot idea was actualy a joke... funny that you did it though.. ;)

the way you obtain the packages you've installed with winetrick is:

winetricks list-installed

pay attention to get packages from the right wine environment!
the way you do this is:

winetricks prefix=myMaxENV list-installed

ROBIN PARMAR
windows isn't the main subject here..
or are you trying to sell me a windows license? ;)


daniel puig's icon

Thanks for the command! ... ah, about sharing information, yes.
Of course I agree with you and have edited the screenshots post.

Th8a's icon

wow! It's awesome to see people here going through it to get Max and Linux to hang out with one another. Perhaps I can help clarify some things, as I've been running max along side my fully capable audio production rig in Linux for about 4 years now... and audio production is what I do for a profession, so believe me when I say, I need it to work right and take it pretty seriously.

Also, just wanna say that daniel puig's tutorial is legit. It may seem crazy if you are unfamiliar with linux and wine, but rest assured, following his steps is a good bet to get this working. I'll just add some pointers and tips from my own experience in doing this to hopefully help out or clear up any confusion

Firstly, wine and the libraries within wine are not distro specific. Once wine is up and running on any distro, the libraries in wine that you would use something like winetricks or playonlinux to install will be the same, with one major exception: your graphics card.

Obviously, your going to need a driver for your graphics card that jives well with your linux distro, AND in many cases, wine packages that enable wine to utilize and take advantage of said graphics card. In my case, I use an NVIDIA gtx1060 with the NVIDIA proprietary drivers, along with winevulkan, wined3d etc. Getting all of that working properly is a bit out of the scope of this tutorial, as it's gonna vary based on your setup and theres a ton of info out there on how to get it all working... my point here is simply to make sure that it *is* working before you attempt to run max well. Most of the info out there to making this work properly is given in the context of gamers trying to get their favorite videogames for windows to run in Linux... take advantage, man. take advantage.

In the latest versions of wine Staging, a lot of the previously necessary libraries now have their functionality built in. I have found that installing too many packages on top of that will stop max from booting or cause problems... So, as an update to my previous list of libraries to install with winetricks, here is my current semi-definitive list:

All available VCredist and MSruntime packages should be installed.
Beyond that, keep it minimal. My winecfg libraries tab includes only the following:

iertutil (native, builtin)
libcef (native,builtin)
winhttp (native,builtin)
wininet (native, builtin)

If your savvy, then you probably recognize that these packages are mostly there to help max's web browsing and internet connectivity functions to work... meaning these are mostly about being able to authorize a paid max subscription.

Another important tip I can give you all is to keep max in it's own separate, clean prefix which uses only the libraries that work. If you have a main prefix with a bunch of games and windows apps installed in it like I do, know that a prefix can get misconfigured, corrupted or simply have settings inadvertently changed when you use a single prefix for many different things. For a lot of games, VST plugins, etc, this wont bother things, but I find MAX to be a little bit finicky in wine prefixes that are having their settings constantly tweaked. The easiest way to do this is as follows:

(in terminal)
WINEPREFIX=/home/$USER/YourPrefix/ winecfg
## this will create a new clean prefix at the path specified and open an instance of winecfg for that ##prefix.
(now, close winecfg, and do the following)
export WINEPREFIX=/home/$USER/YourPrefix/
## this sets the environment variable $WINEPREFIX to your new prefix for that terminal session, meaning that after you run this, any wine command you issue from within that terminal session will use the specified prefix as default. This will revert back to the user default setting once you close that session or reboot.##
(next, in the same terminal session)
winetricks
(install the desired libraries through winetricks, then close out of winetricks back into terminal. Download the max8 install file, unzip it so you have the .msi file. For the sake of this post, lets say you have it in your ~/Downloads folder. So, in terminal do)

cd ~/Downloads/
msiexec -i Install-Max8.msi

( msiexec is a built in program with wine that runs .msi files. You can use q4wine as Dan the man suggested, if you like.)

From there, after a bit of wait, you should see the max install wizard show up. Go through the install like normal. Once finished, go back into winecfg, select the libraries as stated above and reboot your system for good measure.

Finally, you are going to want an easy way to launch your newly installed Max8.exe from the proper prefix. If you just go and run it without specifying the correct prefix, it will run it in your default prefix, which does not have all of the registry keys and proper configuration, so it will not work. We do this with terminal.

WINEPREFIX=/home/$USER/YourPrefix/ wine "/home/$USER/drive_c/Program Files/Cycling 74/Max8/Max8.exe"

You can also create a start script or .desktop file that launches it, so you can just click an icon or call a script instead of typing all that each time. The way I'd do that is this way:

## create a text file containing the command to launch max with a specific prefix ##

echo "WINEPREFIX=/home/$USER/YourPrefix/ wine "/home/$USER/drive_c/Program Files/Cycling 74/Max8/Max8.exe"" >Max-8-launch

## set the newly created text file permissions to executable ##

sudo chmod +x Max-8-launch

## and thats it. Now you can put that file on your desktop and double click it to start max, or copy it to /usr/bin/ and type it in terminal to launch max from the right prefix.

Hope that helps

Th8a's icon

For Robin Parmar, who suggests Using windows to save headaches, I get why youd say that, as trailblazing the OS less traveled is not for everyone... and for me, 'just using windows' means you save some headaches, and take on a crazy migrane! lol. Obviously, anyone who would go through this much crap to do what they want done in linux instead of windows has their reasons.... I certainly have a long list of mine... But most importantly, let me dispel the belief that linux is not a capable audio production OS. On the contrary, once the headaches and learning curves are overcome, it is a RIDICULOUS audio work station! It's complete with many fully capable DAWs, both commercial like Bitwig and open source, like Ardour, immense VST compatibility through wine, airwave and linvst, along with LADSPA and LV2 plugins, hard and soft low latency audio at a kernel level (my latency clocks in at 4ms), full on inner app audio and midi communication via the JACK+ALSA audio system, immense support for audio hardware out of the box that many companies have dropped driver support for in newer versions of OSX and Windows, and all of this in a free and open source environment. No one would argue that linux isn't both faster and lighter weight than windows or mac... plus linux does not suffer nearly as much from malware, viruses etc, Theres a lot of reasons to use linux, and once you apply that to audio production, it's fantastic. The more people who get hip to it, the more support it will get and it will only continue to get better. It's just a big learning curve... but worth it. js...

daniel puig's icon

Wow, that helps a lot!! Thank you THE man TH8A !!!
:)

Ko Sv's icon
[1116/225318.159:ERROR:mf_helpers.cc(14)] Error in dxva_video_decode_accelerator_win.cc on line 379

someone have a clue why I've got this error?
Ko Sv's icon

btw.the code formating features are horrible..

Ko Sv's icon

this are my logs that are generated when max attends to start (in the Max.exe directory):
DANIEL PUIG or TH8A
could you post yours?

Max_d3d11.log:

info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_1
info: D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_1
info: Device properties:
info: Device name: : Intel(R) HD Graphics 5500 (Broadwell GT2)
info: Driver version : 19.2.4
info: Enabled device extensions:
info: VK_EXT_conditional_rendering
info: VK_EXT_depth_clip_enable
info: VK_EXT_host_query_reset
info: VK_EXT_shader_viewport_index_layer
info: VK_EXT_transform_feedback
info: VK_EXT_vertex_attribute_divisor
info: VK_KHR_create_renderpass2
info: VK_KHR_dedicated_allocation
info: VK_KHR_depth_stencil_resolve
info: VK_KHR_descriptor_update_template
info: VK_KHR_draw_indirect_count
info: VK_KHR_driver_properties
info: VK_KHR_get_memory_requirements2
info: VK_KHR_image_format_list
info: VK_KHR_maintenance1
info: VK_KHR_maintenance2
info: VK_KHR_sampler_mirror_clamp_to_edge
info: VK_KHR_shader_draw_parameters
info: VK_KHR_swapchain
info: Device features:
info: robustBufferAccess : 1
info: fullDrawIndexUint32 : 1
info: imageCubeArray : 1
info: independentBlend : 1
info: geometryShader : 1
info: tessellationShader : 1
info: sampleRateShading : 1
info: dualSrcBlend : 1
info: logicOp : 1
info: multiDrawIndirect : 1
info: drawIndirectFirstInstance : 1
info: depthClamp : 1
info: depthBiasClamp : 1
info: fillModeNonSolid : 1
info: depthBounds : 0
info: multiViewport : 1
info: samplerAnisotropy : 1
info: textureCompressionBC : 1
info: occlusionQueryPrecise : 1
info: pipelineStatisticsQuery : 1
info: vertexPipelineStoresAndAtomics : 1
info: fragmentStoresAndAtomics : 1
info: shaderImageGatherExtended : 1
info: shaderStorageImageExtendedFormats : 1
info: shaderStorageImageReadWithoutFormat : 0
info: shaderStorageImageWriteWithoutFormat : 1
info: shaderClipDistance : 1
info: shaderCullDistance : 1
info: shaderFloat64 : 1
info: shaderInt64 : 1
info: variableMultisampleRate : 1
info: VK_EXT_conditional_rendering
info: conditionalRendering : 1
info: VK_EXT_depth_clip_enable
info: depthClipEnable : 1
info: VK_EXT_host_query_reset
info: hostQueryReset : 1
info: VK_EXT_memory_priority
info: memoryPriority : 0
info: VK_EXT_shader_demote_to_helper_invocation
info: shaderDemoteToHelperInvocation : 0
info: VK_EXT_transform_feedback
info: transformFeedback : 1
info: geometryStreams : 1
info: VK_EXT_vertex_attribute_divisor
info: vertexAttributeInstanceRateDivisor : 1
info: vertexAttributeInstanceRateZeroDivisor : 1
info: Queue families:
info: Graphics : 0
info: Transfer : 0
info: DXVK: Read 0 valid state cache entries
info: DXVK: Using 2 compiler threads

Max_dxgi.log:

info: Game: Max.exe
info: DXVK: v1.4.4
warn: OpenVR: Failed to locate module
info: Enabled instance extensions:
info: VK_KHR_get_physical_device_properties2
info: VK_KHR_surface
info: VK_KHR_win32_surface
info: Intel(R) HD Graphics 5500 (Broadwell GT2):
info: Driver: 19.2.4
info: Vulkan: 1.1.102
info: Memory Heap[0]:
info: Size: 4723 MiB
info: Flags: 0x1
info: Memory Type[0]: Property Flags = 0xf
info: Memory Heap[1]:
info: Size: 1024 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0xf
info: Adapter LUID 0: 0:3f7

Th8a's icon

@KO SV - So it's looking from these logs like there is something going on with the graphics drivers - which - in wine, tends to be one of the most common hang ups. It would appear that you are attempting to load DXVK which is a library that (if i am not mistaken,) is meant to run Direct X through NVIDIA's proprietary vulkan graphics engine, which is commonly a great way to improve the performance of newer 3d games. winevulkan, DXVK and D3D is why games like DOOM 2016 perform better in wine than they do in windows, even though it was built for windows. That said, your graphics card is an Intel HD 5500... While not an expert on the matter, im pretty sure that your graphics card does not have vulkan capabilities. You'll want to double check that. If I am correct, then you will want to disable DXVK or any other vulkan/nvidia libraries that may be active in your prefix and run max using just directX. I think you can go back as early as DirectX 10, possibly even 9 and still run - especially if you are not needing to use a lot of max's graphical or jitter objects. Make sure your graphics drivers are fully working and updated in linux with no conflicts. Then, Try creating a fresh prefix and don't install vulkan or DXVK. Just install direct X and the MS redistributables and try running it. Add additional libraries only if necessary for some reason. While you are at it, when you launch max, do so in a terminal window so you can look at wine's output as well as the log file that Max creates. Often, the output of wine in terminal will offer hints about what libraries or configuration tweaks are needed. a lot of times, a wine program not starting or crashing can be as simple as a font that needs to be installed. Sometimes it's a missing .dll file which is needed from some redristributable. If it throws an error that says something like "cannot find xxx.dll" and you don't know what that dll is and it isnt showing up winecfg, look it up to see what package it's part of, install that and set overrides in winecfg to make sure it's loading it with the prefix. In your case, though, I think just making a clean prefix, install max fresh, install redist packages and be sure to specify the right prefix when running wine, and it should work. Let me know if that doesn't do the trick.

Th8a's icon

further pitfalls to look out for:

The libraries wininet, ierutil and winhttp are important as well. When Max launches, it phones home to check the account status and registration. If it cannot do this due to missing libraries or functionalities, then it will hang for a time and crash, or just hang until force quit. libcef is needed to allow maxes java based browser object to work, and you'll need that to register your copy of max.

as of now, the [hid] object will crash max. If you need these types of functionalities, there are other objects that can be a workaround.

The autocomplete functions of text in the object box does not work right. As soon as it grabs a possible word to autocomplete, it will set that object as if you pressed enter, even if you didnt. This makes it impossible to work with in most cases, so just type in a terminal or text editor window and copy paste into the object box. Im still looking for the fix on this one...

MIDI ports are only detected when you start max. Refreshing will not update any changes. If you swap out MIDI devices while max is running, you'll need to restart it before it grabs the new list.

make sure you are using the latest wine staging version from the wineHQ repository - NOT the ubuntu repository, as it is usually outdated. From my experience, that is super important.

Another strong reason to keep max in its own prefix is for use alongside other wine based programs, such as VST plugins. If you are running Max alongside a DAW with linvst based plugins, every plugin will be running on one wineserver, but max will be running on a separate instance of wineserver. We all know VSTs can be glitchy and unstable - even when used in their intended OS. This is true with wine also. If a DAW project is open with lots of VSTs running and any one of them spazes out, it won't crash max with it. This is good because we all know how it feels to lose patchwork to a crash. It also allows you to restart the wineserver with all of your VSTs to get your session going again without effecting max.

Augustine Bannatyne - Leudar's icon

TLDR; Will Max work natively on Linux yet or not ?

Th8a's icon

sadly, no. I haven't heard of any plans from c74 to release a native linux version either... hence, all this effort.

Augustine Bannatyne - Leudar's icon

ah ok. Shame but I appreciate it might be a LOT of work for them to develop this for Linux and they are running a buisiness - will it be economically worth it for them ? Obviously for us having Max running on an operating system thats actually stable would be great. Its also worth noting though that a lot of 3rd party externals, drivers etc dont wotk on linux - and my experience of wine and audio drivers hasd not always been great - though that was a while ago - I think RME did quite well with native drivers when I was using soundscape renderer.

daniel puig's icon

Hi,
I've been working on the updates given by TH8A, they really help a lot. So, if anyone has followed the tutorial, it's only a matter of creating a new prefix, install Max and the packages he listed and so on. Those packages that remain selected in Winetricks after restarting, are those that it managed to install. Apart from the great knowledge on prefixes, which is really important (I didn't plan to have any other app), I've found out that:
- pango functionalities seem to be now included in Wine;
- VIDDLL is a Max package that comes bundled and can be installed via Max's own Package Manager - does not work on my machine yet, with the error "OS unsupported";
- MS Access runtime is not needed; -> correct?
- directshow runtime will install amstream, qast, qcap, qaud, qedit, quartz; (directshow remains unselected, as uninstalled, after installation // does it mean that there will be updates? );
- wininet will install ierutil alongside;
- vcrun2005 does not install for x64 systems;
- vcrun2013 and vcrun2015 install a workaround (37781) for x64 systems;
- that there is another step missing in the Tutorial, which is to install corefonts via Winetricks. -> correct?
- I can't find libcef in any list on winetricks or q4wine. -> any clues?
Max does run anyway, though.

Working out TH8A's list with those observations, seems to boil down to these - please check if it works for you:
directshow
libcef
vcrun2003
vcrun2008
vcrun2010
vcrun2012
vcrun2013
vcrun2015
vcrun2017
vcrun6
winhttp
wininet (ierutils)

Do you think this could be needed?
l3codecx - MPEG Layer-3 Audio Codec for Microsoft DirectShow (2010)

And, as for the auto-completion problem, @TH8A, could you tell us what you've tried? Thank you all for the help and TH8A for taking the time to share so much information!

daniel puig's icon

By the way, if anyone wants to remove the installation done with the Tutorial above, it can be done with these commands:
## Uninstall Q4wine, Winetricks and Wine
sudo purge q4wine winetricks winehq-staging
## Remove gecko and mono
sudo remove gecko* mono*
## Remove leftover libraries
sudo apt autoremove
## Update your repository information and upgrade if needed
sudo apt update
sudo apt upgrade
## Restart your machine
reboot
You might need to delete your prefixes, if you want, depending where you placed them.

daniel puig's icon

One last update,

There seems to be a problem with Q4wine maintaining Windows 10 as the OS for a created prefix. After configuring as Windows 10 in Winecfg and working on the prefix with Q4wine, it shows Windows XP as the OS when logging into Winecfg again.

A workaround is:
- In Q4wine, before closing, go to the 'Setup' tab, select the 'Settings' folder, look for 'win10' on the list to the right and double click. It will open a Terminal, run the routines for that setting and close.
Reopening Winecfg should show Windows 10 as the OS. I'm not yet sure, but it seems this only has to be done once for a prefix.

Best!

Th8a's icon

Yea, I get the vid.dll error too, but from what I can tell, it doesn't seem to effect anything.

So libraries in wine can be a bit tricky. Heres what I know about using them to get stuff working. It's not always an exact science in my experience.

installing certain libraries or packages in winetricks can automatically change the windows version in winecfg. That's an example of how using the same prefix for too many things can bite you in the ass. The version of windows selected in wine tends to reap minor to no difference in how things run. It usually is only relevant for programs that check the version of windows for compatibility... a sort of environment variable. If you set the version to winXP and try to install max, it will throw an error message stating that windows 7 is the minimum requirement and close. beyond that, it can alter the version of certain libraries that a program may choose to use, but mostly won't make much difference.

so, MSdac (microsoft access) wont hurt anything, and there are a number of programs and VSTs that require that library. I'm not sure if it's necessary for max though. libcef is a library related to google chrome.. the chromium library I think. It's what max, steam, and many other programs use for it's embeded web browser capabilities. I think I actually pulled that .dll file from a windows install folder for steam, and then installed it in the max prefix manually. It fixed an issue I was having at one point, but i'm not sure that it is still needed, as whatever the issue was that I was having seems to have been resolved in a later wine update. If you still do need to manually install something, it's good to know that you are not limited only to things available in winetricks or lutris or playonlinux etc. You can install any windows .dll file you might need manually by placing a copy of the dll file in it's respective Windows system folder, and registering it to the windows registry by calling regsvr32 in terminal, like this

regsvr32 xxx.dll

sometimes you'll need to register a dll twice, one as x32 and one as x64, like when installing wineasio. The good way to do that is

regsvr32 xxx.dll && wine64 regsvr32 xxx.dll

You can also utilize a dll file by for a specific app without installing it globally by simply placing it in the same folder as the .exe file for whatever app you are running.

This stuff probly wont be necessary just to get max running in wine, but you seem gung-ho about understanding the libraries in wine, so I figure this info will likely help you somewhere down the line, especially if you plan to use a lot of VSTs. and I can save you the hard time it took me to figure all this shit out. lol

Generally, the rule of libraries to install in a prefix that I follow is this: install as little as possible. Try running whatever your looking to have running and look at the terminal output of wine to see if it tells you anything is missing or not working right. 'Guess and check' is something I may do if I'm out of other ideas. Sometimes you get lucky, but it's usually best to take a more conservative approach.

Don't forget about .dll overrides also. Sometimes you'll want to switch a .dll to favor builtin libraries over native ones, vice versa, or disable them altogether. The more mature wine gets, the less this seems to be necessary, but if in a pinch, understanding where a native or builtin library would work better can be helpful. A native library means that wine uses the actual .dll file that windows has installed. A builtin library is dll made by the wine devs to serve as an intermediary compatibility layer between the functions called by windows and their linux equivalent. In most cases, these days, the setting that is usually best is the (native, builtin), in which it will try to utilize the native library first, and the builtin as a fallback.

Lutris and Playonlinux are also invaluable tools for getting things in wine to run. Lutris is more geared towards gaming, but POL makes managing many prefixes and running multiple instances of wineserver with mixed versions of wine far easier than q4wine or purely terminal. For enthusiastic winos, it's a must.

As for your question regarding video codecs, I find it to be not necessary in most cases. Video codecs come into play when you have an app that does something with video or audio files that are made with a specific kind of encoding. a codec is like a driver in that it tells your graphics and sound card how to decode a given type of media. These are often proprietary and therefore cannot be distributed with an OS out of the box unless the OS has licensed it with the company that created it to do so. Part of what you pay for with a Windows license are various codecs that windows paid their creator to distribute because they are considered standard, like .avi or .mpg files. Unless your doing video editing or playing a video game that has cutscenes which play from some specific media encoding, you won't likely need to install these. Wine pulls a lot of the codecs it needs from the linux system through builtin .dll files, so once again, most of what youd need is already built in to wine.

hope thats helpful.

Th8a's icon

@augustine - Yea, I jumped ship from apple and started using linux maybe five years ago now. I admit, it was dismal back then. I'm quite amazed at how far things like drivers and compatible apps have come in linux over that time. In the beginning it felt like I was a caveman trying to transition to being vegan. Now, I don't really want for anything in linux, save a very rare case of plugin or video game that will - for whatever reason - just refuse to run. I see less and less of these cases with every update though...

daniel puig's icon

@TH8A Thank you so much, such valuable infos!! Playonlinux is great!

After all, it seems the packages list can't be definitive... for a tutorial, it must stay open and indicate what anyone needs and the options one has.

I have been using linux and macos alongside since 2014. Recently, bought an asus laptop and left windows in dual-boot just for Max. I totally agree with your perspective on linux! It's amazing what has been achieved. In some ways, it proves that a collective non-linear development is very effective, but not for capitalistic criteria.

If you find it a good idea, I could start a new version of the tutorial and we could finish it together. Maybe posting it somewhere else too?

Th8a's icon

Sure, dude. I'm always willing to share what I know about these things. That's the FOSS way, am I right? Being as that the 'ins-and-outs' of running Max in wine are similar to the 'ins and outs' of running things with wine in general, perhaps it'd be good to extend the tutorial to cover a serious audio producer's workflow in Linux. There isn't a whole lot of information out there on transitioning to linux from an audio producer's perspective, and much of what is out there is either outdated or too advanced for beginners. I know, because I had a hell of a time getting from where I was in the beginning to where I am now with running my entire studio in Linux. For anyone interested in any of this, here is my story and why I feel that this is an important undertaking.

I used to be an apple user. For many years, Apple was where it was at for audio and video production in that there weren't any really great alternatives. Some people used Windows for audio, but that was generally frowned upon in the industry, and not entirely without good reason. Sure, to buy an apple rig was far far more expensive than a windows rig... but back then, it felt like it was worth it for the ease of use... slick designs... stability, third party developer support etc. During those days, I simply didn't know all of the things I know now. All I knew was that I was a music producer who wanted only to be successful in the industry in making music.

Then, one day I had this idea for a plugin that would change the way I could create. I thought to myself, "There must be some plugin out there already that does what I am thinking of..." I searched and searched only to find that there were a few plugins or programs that touched on my idea, but none that actually did it. So there was nothing that did this idea of mine, which I was now feeling like I absolutely *needed* to be able to do. Finally, I rolled up my sleeves and decided that I will have to develop it myself. I knew nothing of coding or app development. My first prototype build was using the apple Logic environment. That was my first run with MSP style programming. Surprisingly, it worked pretty well. The menus and buttons looked like they were from 1993, it could only be used as a template in Logic, but it worked.

Then Logic X came out, and apple decided that user friendliness was the most important aspect of all things apple, thus the wacky and mysterious back end environment in Logic was to be neglected, and eventually removed from Logic completely in later releases. To me, this meant that it was time to broaden my horizons, and that I would need to learn to create my plugin using something else... While I still knew nothing of coding, my deep delve into the logic environment led me to believe that I was pretty okay at modular signal flow style programming... and so naturally I found my way to MaxMSP. That would spark my interest in the development world and begin a long chain reaction of tech tinkering and programming pursuits, which quickly became an all consuming obsession for the next few years. (Seriously, I lost girlfriends over this shit. lol)

It was then that I started learning and trying to teach myself at a rapid rate. Weekends that I'd normally be out as a young twenty-something, getting smashed and chasing ass with my friends, suddenly began to blur into sleepless weeknights, spent alone in front of my computer monitor running 'OSX mountain lion' from a home made hackintosh, reading, soldering, breadboarding, and more than anything, patching in Max.

I had built a functional version of my original plugin Idea, but it didn't stop there. I was ripping apart old electronics and harvesting components to build synthesizers... breaking out Raspberry pis and arduinos to automate and control my home from a website on my smart phone... Even using my new found knowledge to exact revenge on my pain in the ass neighbors, monitoring the RF waveforms of their wireless car alarms, garage door openers and gate-clickers with software defined radios as part of an elaborate (albeit harmless) prank (that I promise was well deserved.) The more that I learned about tech, the more I started to understand that being tech savvy in today's world is almost like having a super power.

Then, it started to occur to me that with great power comes great responsibility... but many entities with - perhaps the MOST power in the tech world - don't treat that responsibility with respect, but instead use it solely for capitalist gains, often at the expense of everyone or even the earth itself. From data harvesting and mass surveillance, to brand locking and planned obsolescence... hording of relevant technology for personal gain... I started to understand how companies like Apple, who I had thought were my friends... the good guys... were actually some of the biggest offenders. Where I once saw user-friendliness as a user friendly thing, I started to realize that enjoying the capabilities of computers in such a user friendly way comes at a great cost... a cost that was becoming more and more apparently 'user hostile.'

I mean, think about it... the entire world is now run on technology and the internet. Four something billion people connected to the internet, swiping away each day at their tiny pocket sized supercomputers, each with enough processing power to put early NASA's mainframe to shame... all interconnected through a network of people, devices, IOT, databases, AI... Dependent on their computers increasingly for common daily tasks, like driving somewhere with directions, applying for jobs, managing finances, and so on... Yet, for all of these people who would be all but lost without their hi tech devices, relatively very few of them have any idea how to actually operate or use their devices beyond what has been carved out and sold to them by mega-capitalist corporations, Companies that compulsively dumb down end user experiences - even at the expense of a functionality, are enabling people to grow more and more dependent on technology that they have virtually no control over, or even hindering them from asserting control over their digital lives.

This is dangerous beyond words.

Tech is only getting more advanced and ever present in all aspects of our lives. Soon, things like AI will be largely loose in the wild... and we will live in a world (if we don't already,) where people are not using technology... but instead being used by technology. Used by technology that is controlled by governments, corporations, AI and black-hat hackers, all of which have the lines that distinguish them from one another being blurred more and more. A vast mass majority of people beholden to tech that they know nothing about, don't feel they need to know anything about, and hold the attitude of not even wanting to learn about. Do you see where I am going with this??

An app can be user friendly - fine - but learning how to build, control and understand the technology behind an app should more pressingly be user friendly. The world is headed down a dark path here, and what it needs are technology platforms like linux which are transparent and don't simply assume the end user to be an idiot, but demands proof!

Once I realized all of this, I abruptly and painfully abandoned apple and started learning how to conduct my business in Linux. It was not easy. I realize that it is insane and unrealistic to expect most people to care enough about this to go through what I went through to assert my digital freedom. That said, as things develop, linux is getting better and easier, while the current dominating operating systems are becoming more and more invasive, restrictive, expensive and insecure to the point that even the common person is starting to feel it. Linux is most likely to be the next OS of the masses, and when that shift occurs, all the great commercial development that mac and windows users enjoy will follow suit. The shift has already started in many departments... and I'd like to help move it along however I can... and what I have that could still be of value is knowledge of audio production. Haha... I taught music production in Logic Pro professionally at a school using my hackintosh laptop... The owner of the school decided to hire me based on the fact that he liked my music, and was quite impressed to see Logic pro running stabilly on an HP probook. As soon as the school sought endorsement from apple, the same owner fired me from that job for that fact I ran Logic pro on an HP probook. Now, I wanna free all of music production, education and record sales from the clutches of companies like Apple...

(Large exale) And THAT is why I feel this shit is so important.

Thanks to anyone who actually read all of this. To those who skipped to the end, it's my long winded way of saying

Yup, I'm down.

daniel puig's icon

@Th8a , just let me start by telling you, that I live and was born in Brazil... well, Brasil. If anyone knows some portuguese, might suspect that our country's name has something to do with fire, actually red shinny embers. That's how we feel right now. Our insanely neofascist government is a product (byproduct??!!!) of everything you denounced so well.

Yes, I do believe as well, that linux is gonna be the next hegemonic OS, diverse as it is. Actually, I see it happening down deep in Bahia every day, trust me. From indigenous to poor students and spreading among difficulties.

So, from my FOSS side and with a similar story to yours, not so intense, let's do this shit!

winehq.org has accepted my request to maintain Max's page on their AppDB. It would be great to post a tutorial there and all the testing anyone could contribute with. But, as you said... it will probably be more of a lonesome way. And I'm totally in for an extended tutorial!

Best! and thanks for the inspiration, don't stay down, man!

Augustine Bannatyne - Leudar's icon

@THBA I certainly did read all of that and agree with you entirely. I would just add being able to produce your own food and energy would also be desirable as well as our own tech. Anyway I digress...

Th8a's icon

@Augustine - I see your point... and it is a practical point in the current way of the world... We have all grown accustomed to the comforts and convenience that the capitalist economy has afforded us, as well as felt the bitter injustices it facilitates. Like all open systems in the known universe, man kind is evolving, and that evolution takes place over stages of breakdown and reorganization. That is, we build a system to survive the environment, it works well enough to facilitate growth and progress until that growth and progress outgrows the system which cultivated it. When that happens, the system starts to break down. Once the system breaks down, either over a series of small readjustments to increasing entropy. or all at once in a chaotic hot mess, out of necessity a new system invariably rises to replace the old one and the process repeats, albeit at a larger scale... And so your point is practical right now, but perhaps is rooted in the state of a ripened system that is clearly not sustainable for all that much longer. People making their own food is not unlike how the world was for most of history... and making power is something that technology has long figured out how to do, save only that it is not deemed 'economically viable' under the current system, since solar panels are all expensive and stuff. That is, I suppose, a perfect example of how capitalism led to great innovation, and then proceeded to clip it's balls. It is, rather fortunately or unfortunately, a mathematical fact that we had all better start finding ways to produce and make available the consumers needs in more efficient ways, or eventually face a system breakdown of the latter variety. For this reason, I try to be prepared for the systems of the future, knowing full well that most people won't do the same... based on the patterns in the world that I've been spotting, the future economy will be a sort of sharing economy, where people crowd pool automated cars, 3d print shared blueprints of designer shoes, check out tools and equipment from repositories, recycle and upcycle things as much as possible rather than throw them away and so on... I mean, it's gonna kind of have to be something like that if we are going to continue our modern ways of life as the population grows and lifespans increase with the precious resources that remain. The alternative would be a consolidation of wealth to an elite ruling class minority, which is not too far fetched when you think about it. I'm not trying to preach here that 'everybody should do or think like me,' indeed, to each their own. That said, we don't make our own electricity, but we still enjoy it... You nor I created or maintain Linux, yet we still use it... Both are the innovations of others, only one is given freely while the other is privatized and monetized... If I ever invented something as important to the world as electricity or Linux... well, I'd like to think I'd give it away. For now, what I can contribute is an effort to help make something that is seen as accessible only to a few nerdy types to be accessible to everyone so that they may reap the benefits also. I suppose I'm just an optimist...

Th8a's icon

@Dan - I don't know that my experience in all of this is 'more intense.' lol. Brazil sounds like a pretty goddamned intense place to me! I've always wanted to march with a batucada troop... Anywho, it's good that someone FINALLY is looking over the winehq page for max! anything I can offer, feel free to ask.

johannes's icon

Max 8 is running on Xubuntu 18.04, Liquorix Kernel, KXStudio repos and Wine Staging 4.21 quite well. I've used 64 bit only.
It runs with audio-in and -out, VIDDLL, Open GL3, and e.g. FTM and mubu.
Autocompletion and umenu is working.
Of course some things may not work but I just haven't found them today.

I've followed the instructions here at the forum and I've done a few additional things which are listed below. The wine prefix I'm using is MAX.
---

Find the wine version you want to use and hold it after installation (I did this because current version 5 was not working for me):

To find out which versions are available:
aptitude versions winehq-staging

To install chosen version (e.g. 4.21):
aptitude install winehq-staging=4.21~bionic

To hold (no automatic upgrade):
sudo apt-mark hold winehq-staging
---

Install wineasio-amd64 and execute:
wine64 regsvr32 wineasio

I'm using KXStudio with Cadence.
My configuration is:
ALSA Audio Bridge Type: ALSA -> JACK (Plugin)
PulseAudio is started and bridged to JACK

The ZOOM UAC-2 USB audio interface is running at 48KHz with a Buffer Size of 64.

Max 8 audio configuration:
Driver ad_portaudio ASIO
Input Device: WineASIO Driver
Output Device: WineASIO Driver
Sampling Rate: 48KHz
Vector Sizes: 64
Scheduler in Overdrive: on or off
Audio Interrupt: off (much better results)

---

Some packages I've installed via copying from a windows installation were not loadable because of "unsupported OS". Workaround: I've edited their json files this way:

"windows" :         {
            "min_version" : "none",
            "platform" : [ "ia32", "x64" ]
        }
---

I was getting an error message regarding a missing "VCRUNTIME140_1.dll" until I've installed the file VC_redist.x64.exe from here:

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

this way:

wine VC_redist.x64.exe
---

"hid" is making problems, it crashes when starting winetricks. Eventually it is because of the usage of a 64 bit prefix. I don't know how to remove it from the prefix but Max 8 is running anyway.

"Unhandled exception: unimplemented function hid.dll.HidD_GetHidGuid called in 64-bit code (0x000000007104f4fd)."
---

List of the installation via winetricks:

winetricks prefix=MAX list-installed

Using winetricks 20180217 - ... with wine-4.21 (Staging) and WINEARCH=win64
------------------------------------------------------
7zip
corefonts
dirac
ffdshow
gdiplus
gmdls
hid
l3codecx
mfc40
mfc42
mf
msflxgrd
msftedit
mshflxgd
msls31
mspatcha
msvcirt
ogg
qdvd
qedit
quartz
quicktime76
riched30
vb2run
vb3run
vb4run
vb5run
vb6run
vcrun2003
vcrun2005
vcrun2008
vcrun2010
vcrun2012
vcrun2013
vcrun2017
vcrun6sp6
vcrun6
xact
xinput
---

Laurens Inauen's icon
Th8a's icon

can confirm MAX 8 running well in MX linux 19, liquorix kernel, KXstudio repos enabled, winehq staging 5.0 rc6

@JOHANNES - Excellent information, my friend. Do you know which step in your instructions specifically makes the autocomplete function work correctly? Despite my best efforts, I still can't track that problem to a specific package or library...

Roman Thilenius's icon


copy protection scheme? package manager?

... jit.desktop? :P

Th8a's icon

copy protection/account verification works. Package manager also works, provided you use packages that support the respective arch of your wine prefix. jit.desktop also appears to be working on my setup (NVIDIA 1060 6gb,) though is a bit choppy from what I see, having just tested it in the help patcher. Probly could be improved with some fine tuning

Roman Thilenius's icon

very cool.

johannes's icon

@TH8A - sadly I don't know the particular install./config. step regarding the autocomplete function.

Maybe of interest:
To open and view or edit a file (.js, .csd) from within Max it is (1.) needed to install the appropriate Windows application or (2.) to tell Wine to open the dedicated Linux application. As far as I can see there is no easy way to tell Wine to open a file with a particular Windows applications as "Open with" from the context menu is not implemented.

1.: I've installed Inkscape for Windows with Wine and now I can view the faustgen~ rendered SVGs. But I would not know how to change this association back to another application easily and complete.

2.: It is about editing the registry. E.g. to open a Csound .csd file with the default Linux application, via "open" message or a double-click on a csound~ object, a text file with the file extension .reg has to be created and imported into the registry. I just imported a file csd.reg with the content below and it is working. Of course, backup the registry before!
--
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.csd]
@="txtfile"
"Content Type"="text/plain"
[HKEY_CLASSES_ROOT\txtfile\Shell\Open\command]
@="winebrowser \"%1\""
--
cheers

johannes's icon

@TH8A
- deleted/edited -
i thought i found the autocompletion "thing" but i just found out i will stay with wine 4.21 staging.
after having upgraded to wine/winehq version 5.1 autocompletion was not working for me, too. now back with wine/winehq version 4.21, everything installed as mentioned in my first posting, autocompletion is working again.

Th8a's icon

Interesting. I usually find wine updates to fix more than they break, but every now and then there is that exception. Thanks for the info. Functioning autocomplete will make my life much easier! I'll give it a shot later and report my findings.

johannes's icon

The 2 winecfg options located: winecfg-tab "Graphics" - area "Window settings", named "Allow the window manager ...", they influenced the behaviour regarding the autocomplete function when I was testing wine 5.1. I'm sorry not to be able to be more specific - but with wine 4.21 both are selected and autocomplete works.

Th8a's icon

Can confirm: wine staging 4.21 seems to run Max 8 more smoothly than other versions I have tested, including newer versions as of this post, AND the autocomplete function in object boxes works as it should. @JOHANNES, you are the friggin MAN!

giorgioesse's icon

I see that the topic is popular... and I don't see why C74 is not releasing for linux, maybe it's time to wake them up all together

dhjdhjdhj's icon

Probably the same reason most commercial products are not released on Linux. Most Linux users expect/want free!

———-
and I don't see why C74 is not releasing for linux

-—

giorgioesse's icon

this is nonsense... commercial games are already on linux

Augustine Bannatyne - Leudar's icon

IdI'd certainly feel safer running permanent installations on Linux than Windows 10. It all boils down to time and money. Is it worth their while as a business?

johannes's icon

@Th8a
yeah x3! that's really great!

@daniel puig
I think that's something for the wine hq application database

It could also be from interest for people involved in developing MOD / LV2 plugins.
Because possible, now you can develop, deploy, test, develop, deploy.... gendsp code even with GUI elements (through editing the .ttl file) without leaving Linux.

https://wiki.moddevices.com/wiki/Max_gen~#Compiling_the_plugin

dhjdhjdhj's icon

As we say, the plural of anecdote is not data.

The Linux desktop has less than 2% of the marketshare. I don’t know how many commercial games (who has time?) are on Linux nor their quality but I’ll bet a significant percentage of them is either useless or has been pirated.

Commercial developers who need to make a living from their work have to look at the potential ROI of their efforts. Windows has about 78% of the market, OS X has about 18% and the rest is Linux + other misc. OSs (e.g. Chome book) and much of that last group wants FOSS so the actual potential market is even smaller. That group also spend a lot of time cloning commercial products and so you also have to compete with “free”, even if they are not quite as good. Lots of people are willing to just use PD even though it is not nearly as good as Max.

At this point, IMO, rhe development and support efforts still make it rather unattractive except perhaps for very niche (and expensive) domains.



————-
this is nonsense... commercial games are already on linux

giorgioesse's icon

Open steam... KSP one of the best selling games on the market is also for Linux.
Piracy happens most likely on windows.

dhjdhjdhj's icon

Yes, I know about Steam. I repeat my comment that the plural of anecdote is not data. There are a couple of plugins available as well (U-he, Modartt, for example) but these (anecdotal) example are just not significant evidence of a worthwhile investment.