How To: Linux & Artiphon INSTRUMENT 1 Editor


#1

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!

  1. Use your package manager to install npm, node.js, and p7zip

  2. Use npm to install asar (use sudo if you get a permission error, or try google)
    $ npm install -g asar

  3. Download “Artiphon INSTRUMENT 1 Editor Setup 1.0.20.exe”. Assuming it saved to your ~/Downloads.

  4. Change directory to your “Downloads” folder.
    $ cd ~/Downloads

  5. 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'

  6. Change directory into the “$PLUGINDIR” directory that gets created.
    $ cd ./\$PLUGINDIR

  7. Use 7-zip to extract “app-64.7z” that is in that folder.
    $ 7z x app-64.7z

  8. Change directory into the “resources” folder.
    $ cd resources

  9. Use asar Utility to extract “app.asar”
    $ asar extract app.asar app

  10. Change directory into the “app” folder.
    $ cd app

  11. Open with text editor the “package.json” file. The path of this file should be ~/Downloads/$PLUGINSDIR/resources/app/package.json.

  12. 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": {} }

  13. Use npm to install any dependencies.
    $ npm install

  14. Use npm to start the application using the start script we just added.
    $ npm start

  15. 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


#2

Wow – thanks so much for sharing! Super exciting :raised_hands:


#3

Turns out it is even easier to run!

Follow Steps 1 through 8 (you can probably skip 3). If you run `$ electron app.asar` from withing the "resources" folder the Artiphon INSTRUMENT 1 Editor also work.

If you want to poke around in the minified source code, then do the original steps.


#4

Gonna try it in a few days and let you know how it goes. Thank you so much!


#5

Well, got it working on Ubuntu 18.04. The software recognizes the instrument, as I can see the presets change on screen when changing them in the hardware. The computer audio is now played through the instrument speakers. But I can’t make it work as an instrument, I think I have some issue with MIDI, the audio board or something like that.

Will let you know if I can make it work and how (and if you know how, please help! hahaha)

Thanks again!


#6

This guide was really useful: http://tedfelix.com/linux/linux-midi.html

I can change the mode (grid, pad, etc), but it keeps sounding like a piano. And it has a strong white noise/scratch sound every time a note is played.


#7

@SebastianBordakevich It sounds from the poin where you are at it is a matter of using jack to hook up midi and audio to and from the appropiate synth.

If your using Qsynth you might want to load in a new soundfont file. So you can get new sounds.

Helm is also fun to to use!


#8

If you are using electron from your linux distro, the electron version may be to new for this program to work. For example, on Manjaro the current major version is 6. You can use npm to install an older version of electron. Electron version 4 seems to work properly.