How To: Linux & Artiphon Configuration Software
A Story First
About a year ago, I got an Artiphon Instrument 1 and was pretty pleased with it. One major for me was that the only 'Compatible' platform I had for the Artiphon INSTRUMENT 1 Editor was my Windows desktop. I had reached out to find out if any Development work was being performed toward Linux & Android, to which I was informed there wasn't any. So being a software engineer albeit a newer one, I thought it would be cool to attempt to write my one program to do that and forgot about it for a while.
A couple months ago, I finally figured it was a good time to look into it again. It started with some USB traffic sniffing. Finding out that what I was looking at, which turned out to be MIDI System Exclusive commands. Learning a smidge about Midi. Managing to send Midi SysEx command to the Artiphon using Linux program 'amidi'. And then, I felt it was time to look into technologies that I could use to accomplish this task. I stumbled upon Electron and started reading. Eventually, I decided it would be a good Idea to see if I could scrape some data that might help me program my app and I discovered that the Artiphon INSTRUMENT 1 Editor also uses Electron. And so, I am able to provide the steps I used to get the Artiphon INSTRUMENT 1 Editor to work on Linux. This may be a bit of a hack, so use at your own risk. I still want to take a crack at making an Android app of it at some point, but it will take a long time to go through minified Javascript....and I'm fine getting it to work on Linux, for now.
Enough Talking! Show Me The Steps Already!
-
Use your package manager to install npm, node.js, and p7zip
-
Use npm to install asar (use sudo if you get a permission error, or try google)
$ npm install -g asar
-
Download “Artiphon INSTRUMENT 1 Editor Setup 1.0.20.exe”. Assuming it saved to your ~/Downloads.
-
Change directory to your “Downloads” folder.
$ cd ~/Downloads
-
Use 7-zip to extract “Artiphone INSTRUMENT 1 Editor Setup 1.0.20.exe”
$ 7z x 'Artiphon INSTRUMENT 1 Editor Setup 1.0.20.exe'
-
Change directory into the “$PLUGINDIR” directory that gets created.
$ cd ./\$PLUGINDIR
-
Use 7-zip to extract “app-64.7z” that is in that folder.
$ 7z x app-64.7z
-
Change directory into the “resources” folder.
$ cd resources
-
Use asar Utility to extract “app.asar”
$ asar extract app.asar app
-
Change directory into the “app” folder.
$ cd app
-
Open with text editor the “package.json” file. The path of this file should be
~/Downloads/$PLUGINSDIR/resources/app/package.json
. -
Edit the “package.json” file to look like this (format is a little messed up but will still work):
{ "name": "artiphon-editor", "productName": "Artiphon INSTRUMENT 1 Editor", "version": "1.0.20", "description": "Artiphon Preset Editor for INSTRUMENT 1", "main": "./main.js", "scripts": { "start": "electron ." }, "author": { "name": "Artiphon Inc.", "email": "contact@artiphon.com", "url": "http://artiphon.com" }, "dependencies": {} }
-
Use npm to install any dependencies.
$ npm install
-
Use npm to start the application using the start script we just added.
$ npm start
-
Give it a few seconds to open. Plug-in you Instrument 1 by USB and watch as the program works.
Why?
Linux has a bunch of free and open source software for making music. Even has a whole distribution for it (Ubuntu Studio). It was frustrating to be bound to platforms officially supported when the device is mostly functional on other platforms.
What's Next
Personally, I'd like to avoid having to deminify javascript. It is almost as bad as working on decompiled C code. Anyhow, it would be too much work without assistance from the official developers.
Anyhow, I hope curiosity didn't kill the cat! And that this help other Linux musicians