electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
 Forum index » Instruments and Equipment » Alesis Andromeda
Chrome-based A6 Editor & Librarien WIP
Post new topic   Reply to topic
Page 1 of 1 [14 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Thu Oct 06, 2016 5:51 am    Post subject: Chrome-based A6 Editor & Librarien WIP
Subject description: A user-configurable Chrome-based app running on OSX, Linux & Windows.
Reply with quote  Mark this post and the followings unread

Hey all,

Boele Gerkes' A6 editor for iOS is great, but I would really want one that runs on both OSX and Windows (possibly Linux).

I believe the right platform for implementation is the Chrome Browser, since it provides MIDI access to hardware devices in JavaScript. This would benefit everyone, because Chrome runs on all platforms.

I used to be a web developer years ago (PHP/JavaScript) so I do have some programming skills. I need to re-learn a couple of things though, because I've been out of the loop since around 2010.

I would like this thing to be an Editor AND a Librarian, possibly with a Cloud-Based patch exchange platform. This will propel the A6 into the future!

Since I'm also playing in a band and producing an album, my time is limited. I will very likely need help:

- Full MIDI, Sysex, CC and NRPN implementation of the Instrument
- Graphics, since I'm lacking visual design skills
- Maybe GUI programming -- I can do that myself, but it would likely speed up the project if someone could help with this.

I'm willing -- even itching -- to start developing this over the coming winter. But please be aware that this project may die as most others -- I can't make promises. I can only say that I really really WANT this Editor/Librarian to happen.

What do you say?

Cheers,
Helge

Last edited by Helge Kautz on Sun May 14, 2017 1:14 pm; edited 1 time in total
Back to top
View user's profile Send private message
tmste



Joined: Aug 17, 2009
Posts: 26
Location: Italy

PostPosted: Tue Oct 11, 2016 1:09 pm    Post subject: A6 chrome editor Reply with quote  Mark this post and the followings unread

Why not?
Back to top
View user's profile Send private message
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Fri Oct 28, 2016 12:57 am    Post subject: Reply with quote  Mark this post and the followings unread

I started exploring WebMIDI & JQuery recently. Seems promising, Chrome can talk to my Andromeda with no problem!

My plan is to first create a Parameter-Only Editor (no GUI, just the names of the parameters in a very long list with input fields (dropdown, text, radio button, etc). It will look very similar to the parameter-only view of plugins in Logic Audio Pro.

Once this is working properly, one can start thinking about a proper GUI.

Cheers,
Helge



EDIT: I am also thinking about putting this future Editor into a Raspberry Pi (with 32GB Flash, Wifi, USB-MIDI, Ethernet & HDMI) and install the Pi inside the Andromeda.
Back to top
View user's profile Send private message
gauthier



Joined: Sep 19, 2016
Posts: 22
Location: france
G2 patch files: 2

PostPosted: Fri Nov 11, 2016 11:38 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi, I just accidentally an andromeda, and I'm looking forward digging into the patch format.

I'd like to parse the modulation routes of a patch, as it is quite tedious to define them on the synth, or just to get an overview of all of those (say what are all the destinations of LFO1, that kind of questions)

In the documentation there are 36 sections of modulation, and there is a source and destination byte for each, but I don't understand what they correspond to.

Anyone dug into the binary format yet?

Are you guys on any slack or irc channel to hangout and discuss between software guys?
Back to top
View user's profile Send private message
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Thu Apr 20, 2017 4:39 am    Post subject: Reply with quote  Mark this post and the followings unread

Hey all, Gauthier msg'd me recently, and we're now both looking into the details of an editor/librarian.

I've recently converted the actual sysex implementation PDF from Alesis into XML and JSON (with only minimal manual interaction). In theory, this data scheme contains everything needed to control the instrument via NRPN and/or Sysex. I'm reasonably confident that I can come up with a proof-of-concept editor soon. It will be based upon Chrome, WebMIDI and possibly the Webaudio-Controls framework for GUI interaction. It'll be cross-platform (Win, OSX, Linux, maybe even mobile). It'll also be ugly, since I'm not a graphical artist...

But the devil is in the details, so don't hold your breath just yet Smile
Back to top
View user's profile Send private message
MusicMan11712



Joined: Aug 08, 2009
Posts: 1082
Location: Out scouting . . .

PostPosted: Thu Apr 20, 2017 5:37 am    Post subject: Reply with quote  Mark this post and the followings unread

Helge Kautz wrote:
. . . It will be based upon Chrome, WebMIDI and possibly the Webaudio-Controls framework for GUI interaction. . . .

But the devil is in the details, so don't hold your breath just yet Smile

Mainly with E-Mu sysex, I have dabbled with Ctrlr and the Jazz-Soft plug-in (though with browser-based buttons, not a sophisticated GUI). I have thought of converting my web pages to use WebMIDI and would be very interested in any insights you might have (now or in the future) on using WebMIDI with sysex. If there isn't a WebMIDI topic in the forum, perhaps you would start one (or contribute to it, if there already is one).

I am aware of a GUI editor for the Casio VZ line using the Jazz-Soft plug-in and I think it's handy to have browser-based tools like this. If it would be helpful to your design of the GUI, I can grab some screen shots--thought it is really basic, not fancy at all.

Steve
Back to top
View user's profile Send private message
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Thu Apr 20, 2017 5:57 am    Post subject: Reply with quote  Mark this post and the followings unread

MusicMan11712 wrote:
I am aware of a GUI editor for the Casio VZ line using the Jazz-Soft plug-in and I think it's handy to have browser-based tools like this. If it would be helpful to your design of the GUI, I can grab some screen shots--thought it is really basic, not fancy at all.


I'm not a graphical designer at all, so I am planning on creating only a very crude version, comparable to the Sliders-only view of AudioUnits in Logic Pro.

Actually, the data structure that I have derived should lend itself well to auto-organizing everything into around 40 tabs (think: OSC1, OSC2, LFO, ENV1, ...) without much human interaction. This will not look too great, of course.

But if this proof-of-concept does work, I'll get back to the community to ask for help in making it look nice.

As for WebMIDI, what I can say is that it does work and I can talk to the A6 fine, but that's about all that I've done so far. This will change soon, maybe already tonight Smile

Helge
Back to top
View user's profile Send private message
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Mon May 08, 2017 4:18 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hey there,

this indeed works! As I wrote earlier, I converted the sysex/nrpn section of the a6 midi spec into xml, and sending those values to the a6 does indeed work fine. The unit displays and modifies whatever value it is supposed to according to the xml! So the next thing I'm going to do is write some code that automatically generates an edit page for each section of the synth from the xml. It will be non-graphical for the time being, just entering numbers, but turning that into a GUI should be easy at this point.

The great thing about all of that is that not so much needs to be done manually. That might save dozens or maybe hundreds of hours that I wouldn't otherwise have.

Helge
Back to top
View user's profile Send private message
rh2y



Joined: May 08, 2007
Posts: 218
Location: Pittsburgh, USA
Audio files: 5

PostPosted: Thu May 11, 2017 6:47 pm    Post subject: Reply with quote  Mark this post and the followings unread

Helge Kautz wrote:
Hey there,

this indeed works! As I wrote earlier, I converted the sysex/nrpn section of the a6 midi spec into xml, and sending those values to the a6 does indeed work fine. The unit displays and modifies whatever value it is supposed to according to the xml! So the next thing I'm going to do is write some code that automatically generates an edit page for each section of the synth from the xml. It will be non-graphical for the time being, just entering numbers, but turning that into a GUI should be easy at this point.

The great thing about all of that is that not so much needs to be done manually. That might save dozens or maybe hundreds of hours that I wouldn't otherwise have.

Helge


Sounds great; I'm staying tuned in to this thread!

_________________
Shameless plug: http://www.soundcloud.com/rh2y

Shameless-er plug: http://www.evatontechnologies.com/

Music: https://atomstomolecules.bandcamp.com/releases
Back to top
View user's profile Send private message Visit poster's website
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Sun May 14, 2017 4:20 am    Post subject: Reply with quote  Mark this post and the followings unread

This also works: I made a script that generates a full non-graphical editor from the XML! All parameters that are on the panel and in the menus of the display are repesented and they work.

BUT here comes the next challenge, which seems to be mathematical in nature: In some cases, there seems to exist no one-on-one relation between data sent and what the A6 display actually shows. Some sort of logarithmic scaling is applied to (some) of the incoming data. The MIDI implemtation documentation is silent about that.

Take for example the Clock BPM rate. The spec says it accepts values between 60 and 65535. If you turn the clock knob on the unit, the display shows values between 0.45 BPM and 500.00 BPM. The scaling between those two ranges, however, appears to be non-linear. I created a circular dial and connected it to the Clock parameter via sysex. While starting point and endpoint of the dial indeed display the max and min values, the scaling is way off. It's in the two-digit numbers for 3/4 of the dial, and then very rapidly proceeds to to 300, 400, 500 in the last 1/4 of the dial, all the while the data being sent from my editor is linear all the way through.

I understand why this is desirable on the unit's front panel from a usability standpoint (available turning space for pot travel vs. most commonly used range of values), but I don't understand why they decided to implement this also via sysex. Without further information on the math involved, one cannot simply send, say 160 to the unit and expect it to actually be set to 160 BPM. Hence, no one-on-one relation between values sent and values displayed.

I don't think that I will be able to work out the math that is involved, but I might be able to find a work around (a lookup-table of some sort).

In any case, I'll continue with what I have. In the worst case, some parameters in the editor don't reflect the unit's display faithfully, but most will. And if someone in the community is mathematically minded, this can be solved later on.

Helge
Back to top
View user's profile Send private message
MusicMan11712



Joined: Aug 08, 2009
Posts: 1082
Location: Out scouting . . .

PostPosted: Sun May 14, 2017 5:12 am    Post subject: Reply with quote  Mark this post and the followings unread

Congrats on the successes so far. As for the relationship between numerical values [sometimes accessible though either sysex bulk dumps of sysex parameter changes] and display value, I have seen this on other gear I have played with. It's hard when the manufacturer doesn't provide either (1) a table (as Casio did) or (2) a formula (as I have seen with E-Mu gear).

Just wondering if you can chart some numbers in various ranges and decrypt the formula used, not just the end points.

Quote:
the scaling is way off. It's in the two-digit numbers for 3/4 of the dial, and then very rapidly proceeds to to 300, 400, 500 in the last 1/4 of the dial.

If you will be making a look-up table, perhaps you can choose some ranges [low, middle, high--several sub-ranges for each] to chart [maybe both from the data side as well as the display side] before you make a complete look up. Perhaps if you post the charts here, those who like to play with numbers (e.g., looking for patterns) can derive the formula.

Also, if you can find the author of the OS, maybe you can ask about the formula.

Steve
Back to top
View user's profile Send private message
Pollux



Joined: Apr 10, 2013
Posts: 64
Location: USA

PostPosted: Sun May 14, 2017 11:26 am    Post subject: Reply with quote  Mark this post and the followings unread

I dont have the code in-front of me, but when developing my Editor, the BPM parameter threw me for a loop too! What ended up solving my issue was a formula that was pounded into my head all throughout middle-school.....it was a mind-fuck moment as I never thought I'd have any practical use for :

y = mx + b

_________________
Checkout the Limited Edition Analog Astronauts 2023 Spring Collection
Back to top
View user's profile Send private message
Helge Kautz



Joined: Jul 04, 2012
Posts: 23
Location: Düsseldorf, Germany

PostPosted: Sun May 14, 2017 12:39 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hey guys, thanks a lot to both of you! I wish I had paid more attention in my math classes at school... but better learn now than never Smile Other parameters are easier than Clock BPM, btw. I'm adding scaling/treatment tags to the XML from which my editor is generated, so this should all be easily tunable.

What I'm also adding is the ability to define multiple Simplified Panels, additionally to the full panel. You could have a Minimoog like panel, or a JX-8P like panel, or anything else you like. Unneeded parameters are set to sensible values and hidden away. This is specified via a separate, user-editable XML file.

I've recently chosen a free responsive UI library as a GUI framework, and I'm confident to have a working public alpha sometime.... soon-ish. It will run on anything that runs Google Chrome. No VST/AU plugin, though. I'm not that good a coder :-/ Also, I want to reduce programming time as much as possible, because it keeps me from making music. But I need the darn editor & librarian, because the A6 panel drives me nuts Smile

Cheers from Germany,
Helge
Back to top
View user's profile Send private message
kcoul



Joined: Jun 10, 2017
Posts: 9
Location: Canada

PostPosted: Fri Nov 17, 2017 12:37 pm    Post subject: Reply with quote  Mark this post and the followings unread

Helge - this XML document of the spec is very interesting. I am hoping to put some pressure on Ableton to add NRPN support to their sequencer (they are adding sysex for Live 10 but leaving NRPN broken... smh...) and the right way to do it is to develop a Max4Live device that adds NRPN support as well as possible and shows them how little they would need to do to get it working (since my device will have definite problems with latency as well as a maximum of 30 automation lanes for conversion from 10bit NRPN... I will be converting to/from CC0/32 through CC31/63 but Mod Wheel is hardwired to CC1 I think and Ribbon must take a pair as well)

I have been working with some javascript code for filtering out NRPN from the datastream for conversion to regular 14bit CC, that I'll convert to C code to optimize a bit.

But once this is done the next step will be to make a front end for the Andromeda to better grapple with the sheer amount of NRPN sources available. It sounds like parsing this XML document would save a lot of time.

I'm also realizing just now that NRPN sources that do not make use of 10bit resolution could be mapped to regular CCs.

At any rate, I don't think a very large of parameters could be sequenced at the same time as eventually the A6 would struggle to keep up. I suppose that's why it has the TX Thin option, and, I wonder if anyone has tested how many simultaneous incoming value streams the A6 can handle before it lags.

Either way, I think it's a clear difference in purpose between Editor/Librarian and my intention for sequencing/automation with DAWs that don't support NRPN like Ableton. I don't think people want to automate a million parameters at the same time so maybe the device will be suitable until Ableton gets around to fixing NRPN natively.

One other question I have besides sharing of this XML document, is, can anyone confirm that the A6's CC support is limited to the following:
- Mod Wheel (7bit)
- Ribbon (14bit full length, or 2x 7bit in split mode)
- 8 CC mod sources A-H

It will be important when doing this NRPN-CC-NRPN conversion to not use the CC lanes already occupied by the above
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic
Page 1 of 1 [14 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Instruments and Equipment » Alesis Andromeda
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use