Forum rss-feed


Pico: 2.0.x changes and those without workbench left behind =I

Most Recent

written by: TheTechnobear

ah, i see the talker phrases are pre-compiled with connections, that makes alot of sense.
but still, importing rig is no different from adding a rig and subsequent components in WB... for this operation, the talkers would also (under current implementation) need 'recompiling'

i can see for a pluggable rig changeable at performance time, this would be inefficient/undesirable and you would need to abstract these connections ... and therefore how you would get then to the idea of 'talker ports' or similar. as you first mentioned, though this then brings up a whole raft of other interesting issues.

hmm, definitely something I will take a look into later :)

so do you guys manually duplicate the rigs within the factory setups? or do you something like hack the setup file?

The reason I was asking all this, is I want to create a setup which basically was like the factory setup, but had you mod synth in each rig, I was then going to tailor each mod synth a bit.
I know i can do this all manually in workbench, but then thought 'wouldnt it be nice to copy/paste, import/export rigs'.
anyway will do manually for now, as have some interesting ideas i want to play with :)

source code, im fine thanks, basically along with the videos, seems to be pretty clear, i seem to be able to find my way around it, only occasionally getting a bit lost in the python (which is not really my thing :)), think my next step will be to build a simple agent - but i think I should get back to improving my playing skills!

written by: chlip

Wed, 2 Jan 2013 15:59:18 +0000 GMT


it's been a while, so nice to see everyone again, and let's start with a problem =))

it seems that all the action moved to workbench, which is OK and beautiful, but… paying for pico workbench to just tweak small things seems unreal and belcanto magic doesn't work anymore, as so much has changed in wiring - it's quite impossible to find out, what's where.

so… here is some questions/suggestions:

1. is there any way to dump/debug current wiring via belcanto?

2. maybe there could be a workbench-view-only option for those who did not get their hands on tau/alpha just yet? =)

3. clear manual or just more examples about triggering things would help, however with workbench around it's probably a waste of energy. but again, not really for the pico owners. we'll get the taus asap, I prommise.

so for the time being – the particular small one – please tell me how to make it work again without workbench:

adding an octave change (or any change) via external midi. worked like a charm on 1.4.x (with the "when 52 octave up" thing), stopped working completely on 2.x

and maybe a general question - why not to put those two octave changing notes in the midi chart by default? =>

that's for the starters of this particular coming back =)


written by: niksilver

Wed, 2 Jan 2013 18:15:02 +0000 GMT

Hi Pete

I'm a Pico user without Workbench. I'd like to get Workbench, but I tell myself I need to get better with the Pico first. But that doesn't stop me being fascinated about how EigenD works inside. In response to your three queries...

1. There are commands available which dump the internals of EigenD. They are described very well at the videos of DevCon 2012, and see in particular the one entitled "EigenD Internals Part 1". Also, I wrote up a brief guide to some of the commands on the wiki, as well as a guide to Belcanto syntax.

2. The dump of some of the above commands is not very user-friendly, and I've found myself writing a sort of "EigenD explorer" to make better sense of them. I'll release this in a few weeks -- at the moment it's just scratching a personal itch in my spare time, and it's not really intended to be used by others, but no doubt it will be of some interest.

3. More and better documentation is always welcome ;-) I hope others will contribute to the wiki as they/we discover more together.

written by: keyman

Thu, 3 Jan 2013 13:40:58 +0000 GMT

Hi Pete...

Let me know what else I could add to the "midi input controller" and so create a new setup with workbench.

John wrote here in this post about Belcanto/workbench

written by: chlip

Thu, 3 Jan 2013 15:14:30 +0000 GMT

Hi guys,

Thanks for the replies, I'll go through the DevCon material, maybe I'll find what I'm looking for. I did my reading/watching of belcanto material already, somehow missed that one =)

The thing is – belcanto wiki/reference is nice, but the examples are quite scarce. (And again I do understand that the workbench is the solution, but I costs almost a Pico, so until it's Tau, I'll be crack the belcanto as heavy as I can). If there were more examples for the 2.0.x, maybe that would be easier.

But still seeing the world from pico perspective, what would be great:

1. octave changes via midi (as the 1.4 solution is not working, and it's quite crucial with small keyboard). I think that one is quite universal, so could be there forever.

[and a belcanto formula how to add new ones to the new factory defaults)

2. master volume listening for one CC to connect any universal expression pedal would be nice, too.

and for the belcanto missing examples:

I'd love to know the illuminator changes formula, so it would be possible to tweak the already downloaded pressets from here or build own ones.

I've made a few illuminator tricks, but I'm still missing the when-key changes or when-scale changes change map trick.

set and start playing the-web-illumination trick would be also nice to know, curl is nice, but why write applescript to run something inside =)) (like: when C#, scroll some bars, just for the whistles).

That one I'm still hoping to read through, but maybe there is an example I've missed for simple ones like:

"when scale changes, set illumination map"
or "when key changes set illumination map"

generally when->do things, and more not only the saved setups – but belcanto formulas to dig into.
plus a screenshot of pico factory-1 and pico factory-2 in Workbench on 2.x would be really helpful.

so much from the pico perspective, and again - I do understand it's easier in Workbench. i'm thinking about it as powering a bit the default pico setup and possibilities, and not loosing the things already covered in 1.4.x

Thanks a lot =)


written by: 0beron

Thu, 3 Jan 2013 15:40:53 +0000 GMT

If you're thinking of the tonic highlight functionality, that's actually not part of the illuminator, instead it's a built in part of the scaler agent. It currently just lights the tonic notes of the scale only, this is hard coded and not easy to change.

At the moment the illuminator agent is capable of static patterns, and a 'choose' mode that lets you light keys in a fixed pattern that you select on the pico itself. To get the dynamic behaviour like geert's twitter feed you need to drive the illuminator from some external script.

written by: keyman

Thu, 3 Jan 2013 15:50:07 +0000 GMT

I have to say this.... With so much ideas, better is to really get workbench and the sky is the limit.
One time purchase, you won't regret neither your Pico!

written by: geert

Thu, 3 Jan 2013 16:02:51 +0000 GMT

Pete, just to make sure you're aware of the Workbench pricing for EigenD 2 Pro, it's £139 with 6 months of free upgrades. It continues working afterwards though, so the entry for using Workbench still is far from the price of a Pico.

written by: chlip

Thu, 3 Jan 2013 19:45:33 +0000 GMT

@0beron: but wouldn't it be possible to do "when something, light course 1 key 1?" and "when something else course 1 key 2?" in belcanto? =) I'm pretty sure I'll get there.

@keyman, @geert: I'd love to change my never claimed honorable-mention-bag for even-without-updates-workbench, giving back all crazy setups _with_heavy_descriptions_ =) [you know, rich pico setups repository] but seriously - given the fact it's Poland, £139 just after spending £49 for the base update is not that reasonable with only 18 keys to play with. So the plan is to squeeze it as much as possible and get Tau with Workbench on the achievement wave. Till then – fight hard to make it with Belcanto =)

At the moment I would really appreciate a fix for the midi-octaves switching which the update broke and maybe a master volume. Then I will gladly fight with the lights in belcanto to make my sense of achievement greater. =]


written by: geert

Fri, 4 Jan 2013 09:46:55 +0000 GMT

Hi Pete,

If you just bought an upgrade to EigenD 2 Base, you should see a discounted upgrade to the Pro version in the software products page when you're logged in. It takes into account the remaining support time you still have for the base product.

Most of Belcanto is documented in the wiki pages, a few things aren't (because they're much too error prone in Belcanto alone - like setting up talkers) or have changed based on the setup that's used. Apart from some syntax changes, the main changes between the previous setups are really because the setups aren't the same as before. The right Belcanto syntax is tied to the available agents in the setup, how they're named, how they're configured and how they're connected together. Documenting this for each and every setup has proven very labour intensive and Workbench is the tool we developed to make this easier, it automatically documents any setup in a visual way.

To change octaves in MIDI, you need to create additional talker keys and add the appropriate actions to them. The talker keys that trigger on MIDI should always have 1 for the column and the MIDI note number as the row. Once you add those, you should get those triggers working.

If you want examples of Belcanto in use for EigenD 2.0, there's a collection of scripts that ships with EigenD both for certain configuration changes and for factory setup upgrades. You can find them in the EigenD installation or probably easier online at GitHub:

Hope this helps,


written by: chlip

Fri, 4 Jan 2013 10:21:06 +0000 GMT

@geert: once again, I do understand the only logical solution is workbench. still, just for setting up octaves and playing with lights for the moment is not enough to spare additional 99. but let's kill the money thing and get to code, as I really get the economic side =)

All I need for the moment is a possibility to dump the current setup visually to be able to tweak it just a bit OR a new receipe to tweak midi triggering, OR just an addition of octaves (preferably in a part of code on github, which I did browse quite a lot, did my homework =)).

You see, from my perspective it's a bug – something that worked perfectly on 1.4 now is broken after paid upgrade, and the only answer from you is "oh, pay twice that again and you'll get workbench and do everything =)". some day I will, now I just need a fix.

And after hours of fighting with bellcanto and feeling young and beautiful I hit the wall, because it's a bit difficult to know what's the wiring in 2.0.

So. To make my question as basic as possible, why this simple, beautiful piece of code doesn't work anymore? =)

kgroup 1 listen
midi input talker listen
midi input listen
octave when 1 up
octave when 5 down

changing kgroup 1(as it seem cease to exist) to anything from main keygroup to pico keyboard 1 doesn't help, and the answer is "inappropriate use of up" every time =)


written by: TheTechnobear

Fri, 4 Jan 2013 16:11:10 +0000 GMT

have to say i sympathise with petes view, despite having splashed out for workbench for my pico. i only wanted to do a few minor changes so is rather overkill.

also, i bought pro for 6 months... now this raises a question....
if in 6 months, i decide to upgrade but to the basic, will my existing version of workbench (which does all i need), work with newer versions eigend?
ie am i locked into an old version of eigend, until i buy another pro upgrade to keep workbench working?

pete, ive been playing with bls, bcat, brpc (as per niks msg) and you can get the wiring from them, fairly easily, though i suspect i can understand it because ive seen it in workbench.

im still learning workbench/eigend at present so bit early for me to help, but are we able to share setups created via workbench with the community?

written by: mikemilton

Sun, 6 Jan 2013 19:50:31 +0000 GMT

Pete, just my 2 cents but you really are not going to just use workbench for a few settings. You will absolutely use it to explore the full setup (it would have saved those hours) and, when you do, a great many ideas will come to mind.

I personally find that it is worth what it costs as a learning / exploring tool.

Have fun


written by: earthspot

Thu, 17 Jan 2013 05:59:37 +0000 GMT

TheTechnobear said:
...are we able to share setups created via workbench with the community?

I'd like to know the answer too.

Seeing how others use eigenharp is vital for my skill development and creativity. Am I alone? Does everyone else tinker away in private and jealously guard their hard-won secrets?

I'm getting this message from all sides: "don't think Belcanto, think Workbench". But ASCII scripts are easy to share and communicate. And teach, and write cookbooks for. Plugging-up in Workbench isn't.

Plugboards are 1940s computing. Has nothing happened in IT in the last 70 years?

written by: geert

Thu, 17 Jan 2013 08:04:30 +0000 GMT

@earthspot, the biggest problem with scripts is that they only work within the exact same setup that has the same agents, with the same names and similar connections, etc ... As soon as people start modifying their setups, scripts just start failing.

EigenD setups aren't intended to be a program, they're intended and have been designed as a living environment that changes along with you as a musician. They purpose is for it to be different for everyone as they gradually change and adapt their instrument to their needs.

written by: john

Thu, 17 Jan 2013 09:22:11 +0000 GMT

The single biggest problem (aside from the serious technical issue just raised by Geert, which we have also found from experience to be a major issue) is that while a text based configuration programming language suits programmers very well, for the rest of the world it is verging on completely impenetrable. If you had been on the receiving end of the sheer mount of negativity (and musicians are nothing if not vehement in their opinions) that came our way simply because we didn't have a tool like Workbench I'm pretty sure you would also share our opinion of this. It's a common misconception amongst programmers that others share their ability to hold large abstract collections of relationships in their heads, which is a necessary skill if you're going to write code in text files. As we discovered, it might be true in principle, but in practice no-one wants to. To an extent we shared this misconception and we were roundly punished for our error.

I also have to say that, as a programmer of sorts myself, I find the building and editing of setups in Workbench massively easier than when we used to do them all in Belcanto. This is a function of the built in visibility of all changes, as you make them, and it is not really possible to have one thing without the other. We started out with Belcanto for configuration and a graphical display of the setup for visualisation (five years ago) and it was so horrible we never even released it. There are some tasks that are definitely much better suited to a GUI tool and building and maintaining a large connection graph is definitely one of them.


written by: TheTechnobear

Thu, 17 Jan 2013 11:17:11 +0000 GMT

given your latest annoucement, we can now assume everyone will have WB in the future - which is great news , and thanks again to eigenlabs shareholders!

however , i think WB lacks a couple of features for helping share setups...
lets assume ( and it is a big assumption) that rigs could form a shareable unit (reqd to protect namespace i think)
then i think WB lacks:
- copy/paste rig ... this can be seen in std setups, many rigs are very similar
- import/export rig ... useful so you can bring into an existing setup

principle being, a rig imported/pasted does not wire up it external gateway, but if its a small interface it should be simple enough for another user to wireup to thier setup :)

is this something easy to do?
unfortunately community cannot do until WB is open sourced (if it is)
hmm, unless we do it as an external agent perhaps...

written by: NothanUmber

Thu, 17 Jan 2013 11:31:32 +0000 GMT

importing and exporting rigs was originally planned for one of the next major versions (no guarantees from the Eigenlabs side as usual). As far as I understood it's nontrivial to implement (e.g. because of talkers that have "invisible" connections - which get lost with a naive approach.
But it's definitely a very important feature to get the sharing of interesting, more complex setup parts going.

written by: chlip

Thu, 17 Jan 2013 12:09:43 +0000 GMT

@john: it's all perfectly clear, which brings me back to the main topic, leaving behind pico tweaks, as without workbench it's almost impossible to change anything, as it's impossible to get the knowledge, where everything is after a change to 2.0 (however - stage still has an ability to show active elements, so maybe that's my way of finding out what has changed before somebody kills that too =), which was not exactly how it worked in the beginning for the low budget pico. [it's quite like second VAT now, if you want' to get something done, buy workbench].

but having the whole righs in mainstage (which costs like $20, has 20gigs of instruments, fully programmable loopers and geert's midi jigger gratis] I'll stay on not having workbench until tau, still.

really, all I wanted is the midi octave switching back for pico on eigend 2.x =))

and having said that – a repository of setups for pico wouldn't be that difficult to do, you give two already, giving five more would solve most problems we have (like: 5 midi rigs + piano + cello + clarinet -- which would be the most efficient way of using pico with external tools, having the physical models and the rest on midi, best mainstage setup ever). add lights on, lights off, octaves and say, master volume via midi and we're set, no more noise from that side.

just saying =)


written by: TheTechnobear

Thu, 17 Jan 2013 13:31:56 +0000 GMT

I can understand this, as WB is v1, and also rigs are new too (pity they dont have a belcanto interface e.g for clone).
Id have thought adding export/import shouldnt be too tricky, as a rigs are serializable containers (they have to be for file saving to work).
i can imagine copy/paste may be more tricky, unless serialization can be done in memory (ie serilizable target is not limited to file) ... i could actually live without cut/paste if we had import/export... as i could do it via a file initially :)

I dont quite understand your statement about invisible talker connections?
I understand that the workspace does have quite alot of talker action, using belcanto to talk to rig names directly, which is regretable... but we have to start somewhere :)

On an related theme, I notice that the the scale (& tonic & octave) talker, just set the scale in the main keygroup, but dont pass this to the rig... how does this work? is this a hidden connection?

apologies, perhaps this is going off-topic, perhaps should be a separate topic discussed in software/workbench.

im gonna go look at the source code, and see how difficult it would be to create an agent to serialize/deserialize a rig :)

written by: john

Thu, 17 Jan 2013 14:04:22 +0000 GMT

The issue with the saving and loading of Rig's is of the Belcanto Talkers. Belcanto provides a system wide orthogonal control mechanism that is not connection based. The Talkers get their speed by an effective 'pre compilation' (which does actually create a connection, one we hide in Workbench for clarity and is just a convenient mechanism) and they make direct connections into the Rig when that happens, bypassing all the Rig encapsulation. This is part of the power they bring (so you can say suff like 'all scaler' and have it be meaningful). We have discussed this issue many times at Eigenlabs and there have been quite a number of suggestions as to how to make it work with pluggable Rigs. We have discarded most of them and the debate ended up centered around either bringing named 'Talker ports' out on to the suface of the Rigs, or making the current system work transparently. There are so many downsides to the 'Talker port' idea (think it through and you'll find them all in time) that we decided that the correct thing to do is to just make it work. This is quite possible, just either complicated or slow. It involves managing a dependency list for each Talker that keeps track of exactly what things in the system it might affect, then triggering the re-evaluation of that Talker when any of those things change, such as when any Rig is loaded or unloaded. This is possible to achieve in stages by just crudely re-evaluating all Talkers when Rig's come and go to start with, it's just likely to be slow and clunky without a proper dependancy management system as such a re-evaluation is likely, especially in bigger setups, to take some time and cause the hardware to be heavily loaded while it happens.

So in summary, loading and saving of Rigs as a plugin component is not a million miles away, but does involve a bit more trouble than you might think. It's something we've been thinking of for 2.2 or 2.3. If you want to have a look at it as a problem, please get in touch with Jim, as he's spent quite some time looking at the issues and has a good idea of the major work that needs to be done, and I'm sure that he could help get you started. It would be great to see someone working on this, if you can find the time. If you need access to the closed source part of EigenD (which will probably be released GPL later this year anyway, post foundation startup) please write to me and if you're happy to sign a contributor agreement an an NDA we can arrange that.


Please log in to join the discussions