Sunday, January 1, 2012

Eigenharp 2012 Preview

Eigenharp Developers Conference, Open Source, 2.0 and Other Sundries

The first ever Eigenharp Developers Conference will be happening the last weekend in January in the UK. Why is there a developers conference? Well if you've been following the Eigenharp, the software was promised to be made Open Source even since the original announcement. That did in fact happen this year.

In fact, anyone can view the source here on GitHub.

EigenD on GitHub

A group of programmers and musicians interested in extending the platform are travelling to a lodge outside of London for a deep dive into the EigenD internals. I'm travelling from West Coast USA to be there. I really cannot wait.

From davek4981 youtube channel

"Mark playing Building Steam With A Grain Of Salt by Dj Shadow on the Eigenharp Alpha"

We've always been told that there is untold power lurking inside the EigenD host software. However, in the early days this was mostly hidden behind a user interface that was not yet mature. If you've read my previous posts, you can see the progression of the software and usability that has culminated in a 1.4.x release of EigenD. This release is quite complete as a stable and mature platform for the Eigenharp. There are different available factory setups that come with the three Eigenharp models. Users have the ability to customize these setups creating a library of custom setups that can be called up at will. 1.4.x represents the end of the 1.x line. It delivers the initial vision of having an instrument and host that allow a musician to go out and perform live without being a slave to a laptop screen like most electronic musicians. The midi and plugin support is top notch with best in class support of all the different possible tweak points that an electronic musician might expect in a performance rig. Add to that the Stage app which can run on an iPhone, iPad for remote control of performance and sound parameters, makes a very solid performance setup. 1.4.x is Open Source which gives some peace of mind regarding long term support of the platform. As good as 1.4.x is, it does represent as far as the platform can be taken without some major changes and re-plumbing that will occur in 2.0. As can be imagined. A lot has been learned from actual users. Most notably the original concept for a tool called Workbench which allows extensive customization of the system was scrapped before the product was released, this was due to it not being ready for prime time. The usability was apparently not good. Without workbench, 1.4.x cannot fulfill the entire vision of unlocking much of the power within EigenD so that users can innovate beyond the factory setup frameworks. With the prerelease of EigenD 2.0, we see a Workbench worth waiting for and a reworked engine that addresses many of the sharp edges regarding customization and the use of the Belcanto language for interacting with the platform.

Why did Eigenlabs create it own host software in the first place? When I say host, I mean the software necessary to actually be a sound source for audio and a host for audio plugins like VSTs, AUs as well as the ability to play back samples from sound fonts and loops.

We've been told that the reason for EigenD is that such an instrument needs a very high bandwidth and low latency environment for dealing with the large volumes of performance data moving through the instrument. If the instrument was forced to communicate with a separate host via midi or Open Sound Control, the latency would be increased and the performance data would have to be severely trimmed down.

In the early days of EigenD, this custom host approach was definitely a liability. Why would a company produce a complex host when so many mature DAWs were already on the market? With the first release of EigenD, yes the instrument would play the factory sounds and built in instruments with extreme control and finesse, but connecting to the outside world of sounds was obtuse and did not provide the same experience. With 1.4.x, we have a complete and capable host that shows benefits over existing DAWs even controlling sound sources like VSTs and AUs which DAWs have down pat. For example its possible to map all the control points on the instrument to VST parameters, poly aftertouch etc at a high data rate, higher than DAWs will deal with gracefully. Such an approach falls down when trying to do the same with an external host such as Ableton Live. Furthermore, the latency when using an external host starts to border on the unacceptable. EigenD has a latency of @7ms from key press to audio. 7ms is extremely fast and gives you a very immediate connection to the control of sound as if you were in fact playing a physical instrument such as the guitar or piano.

Boiling the Ocean

You can like or dislike the Eigenharp concept but few people that understand the challenges would argue against the fact that it is an amazing accomplishment. If you were to set out on a mission to produce a controller that was going to make loads of money in the market in the short term, this would not be it. This vision was not about taking shortcuts. It wasn't solely about making money. It was about creating something significant with a no compromises approach. Having no compromises also meant a daunting full circle vision for the combination of hardware and software. The hardware certainly delivered from day 1. The software is still moving to encompass the full vision. In technology there is always the fear of "Boiling the Ocean" which happens when the goals are so large that they are almost impossible to achieve. This opens you up all sorts of problems. If the instrument hits the market before the vision is realized, users don't care about your vision, they care about what they can do today. If the hear of this vision, then they suddenly will hold the company to fulfilling these promises forever, even if the product direction completely changes. The Spectralis is a really good example of this. For years the user base has been complaining about not getting promises that are years old, even as the software is more mature than the original promises. It's painful to watch unfold. How can this be prevented?

From what I've seen, the problem with large visions and promises is that the end users do not have visibility or control over their own destiny. They feel they are on the outside looking in wishing for things to happen that they have no stake in. Meanwhile, said company insiders see how amazing the technology is, how hard they are working and don't see how the users can be frustrated when they are working so hard to deliver features. There isn't an ecosystem that encourages experimentation, direct customer feedback, sharing and a shared goal of making things better. Instead it's US and THEM. They are the ones that need to do things, WE are the ones sadly waiting for THEM to bring out new features. When such a dynamic is setup, there is literally nothing a company can do to satisfy users. There is always potential that is unfulfilled, and nothing a company can do can satisfy users.

Enter Open Source

So why Open Source? If a user is not technical then why do they care at all that there is source code? Open Source is a big topic so we will not dive in too deeply. Let's make a few high level points first. Open Source does not mean free. Just because you can read the source code and build it yourself if needed does not mean the software is not paid. Open Source means just that, you can read the source code. You can build it yourself.

Open Source allows for a few things. One is transparency. Everyone can see the efforts going into the platform. There aren't insiders and outsiders anymore. The black box is now a transparent box, at at least more transparent than before. There are of course technical barriers but at least the user community becomes involved in a meaningful way. Just the gesture is a sign of trust and can build bridges to your users.

Open Source is an insurance policy. How many promising and ambitious platforms have gone the way of the Dodo? If a company calls it quits, at least the user base can take over managing the source code for the platform and keep the technology alive, even if forward progress is impeded. It's not a nice thought, but it does remove a major barrier to spending a ton of coin on a platform whose lifespan is unknown.

Open Source creates an ecosystem. Obviously only a small percentage of technical users can properly read and do anything with the source code, however this can lead to a multi level ecosystem where the very technical part of your user base can do experiments, build useful things for the community and communicate their findings to the next strata of power users, who similarly experiment and communicate even more useful things to the non power users.

Open Source Commercial Software

There is some perception that Open Source projects are all very difficult and technical to use, because they are free and contributors don't have the time to make them glossy like a commercial product. Remember that Open Source does not equal free. Eigenlabs will still be the primary driving force and control point for the development of the software. In fact, contributions from outside developers will likely be quite small. This is fine. It allows for development of polished commercial software with the benefits of an open ecosystem that encourages exploration, innovation, transparency and sharing.

Building Ladders

If we have one set of users looking at source code and feeling empowered and another set feeling excluded, we have not connected or empowered our community.

We need to be building ladders. Yeah, another silly analogy from the software technology business. If you are standing on a rung and the next one is 10 ft up, you haven't created a system that users can progress through or in which communication and sharing can occur.

If we have very technical users on one side and non-technical users on the other. How are they connected? There needs to be a bridge in which all users can benefit. This bridge is a new application in the Eigenverse called Workbench and it will be part of EigenD 2.0.

EigenD 2.0

Eigenlabs has just done a limited prerelease of 2.0 to the developers who will be attending the developers conference in Jan. This will allows those developers to get acquainted with the capabilities of the 2.0 platform before the conference starts.

2.0 fills in the missing link between what the platform is capable of and what a user can do with it. The infinite configurability of the core platform was never properly exposed in earlier software versions. I for one was extremely skeptical that Eigenlabs could pull off this type of vision. Why should they even make things more configurable? Shouldn't they make things easier and more intuitive for the non technical user?

Yes they should, but what I see now is that even Eigenlabs itself needed to get to 2.0 in order to have the tools to bring about transformation of the platform and to improve the out of the box experience for the non-technical.

Enter Workbench

With workbench I can see how easy it is going to be to fine tune and improve and expand the range of what is possible while improving the whole experience.

Workbench is a new program added to the platform for admittedly the power-user. Workbench presents a Bidule-like component and wires view of all the building blocks of the platform and the connections between those components.

Looking at a Factory setup in workbench shows you just how much work EigenD is doing under the covers to bring everything together into a performance setup.

The thing about workbench is that it is actually quite intuitive. Simple rewiring is fairly straightforward. More complex components are grouped into reusable components called Rigs. The atomic units of functionality are called agents. Agents connect to other agents and provide useful bits of functionality.

The benefit for the average non technical user of having Workbench is that it is now quite trivial to create very targeted components of functionality that are shareable as Rigs.

Some examples would be, a Rig that simulates strumming a guitar. A Rig that simulates a microtonal drum surface. A Rig that connects to Analog equipment via control voltages. A Rig that performs as a drum machine or a sample masher ala Monome.

Video of Geert Bevin interacting with a custom microtonal hang drum surface

The other thing workbench can do is make things that are extremely simple and lightweight.

For example. I want a setup that simply is a midi control surface with no additional layers of complexity.

Geert Bevin controlling a Moog analog synth with the Eigenharp

I remember seeing Imogen Heap on David Letterman perform with the Monome. She had custom software developed that grouped the small buttons into larger button surfaces that were easier to hit. The setup was made into something very simple and foolproof to use under the stress of playing live. Many electronic performers have similar strategies for creating ways to make live performance more predictable. EigenD 2.0 should make this sort of thing a lot easier to accomplish, even for those with limited technical ability.

Here's a screenshot of a small section of setup that uses 6 audio channels with a single AU plugin used for controlling analog modular gear via CV.

A Setup is All You need

The other problem that electronic musicians have is dealing with too many connected and separate components. There may be four or fives different pieces of software that all need to be loaded and made to communicate with each other. When settings change, there are similarly four or five separate setups that need to be saved individually in order to get back to the state you were in when you closed the software down.

EigenD provides extensive abilities for restoring a performance state to exactly the way you left it. A template may be built up using a number of reusable rigs provides the basic starting DNA templates for a performance and set of capabilities. These template becomes the starting point for any number of performance setups. Drop in plugins, samples, setup different mixes, etc. Every single parameter in the core platform as well as in the audio plugins is saved and remembered when you save a set. This includes remembering exactly the state of the instrument when you closed the setup.

Everything is Transparent

I've talked about the initial frustrations in the early software with having a black box that we knew was powerful but without the way to access that power. EigenD 2.0 is the exact opposite. Everything is transparent if you want it to be. The platform's elegance comes from the fact that the building blocks and capabilities of the system are consistent from the bottom to the top. In most DAWs, you have a layer that you can interact with and layers that are hidden and closed to you. EigenD is built from the ground up using the agent concept. Literally everything worth exploring is exposed. This is also what enables very very small and lightweight setups to be created. If you ever been frustrated waiting for a DAW to load, you can create an EigenD with an associated performance setup that loads in under a second. Similarly you can create a setup that pushes your machine to the absolute limits of its processor and memory.

Extending EigenD

For the programmers in the community, the EigenD platform can be extended by programming your own agent. Agents are the DNA of the platform and can be combined into endless combinations of functionality.

An Agent follows a pattern of development. Agents inherit common functionality from the core system, They can handle things like very precise timing and clocking functionality, audio streams, data streams, etc. Or they may handle utility tasks like controlling the key lighting, transposing a scale, etc.

Every parameter and state of an agent can be persisted in a setup or used as a control in the Stage app for live performance.

Some of you may be asking why not use something like an existing plugin API instead such as VST or AU?

Agents are far more generic and flexible than any plugin format however they are proprietary for the EigenD universe. They can be lightweight or heavyweight and connected in infinite ways. Yet they also can be full participants in the flow of all data in the system.

Plugins such as VSTs and AUs still play a very important role in EigenD, however they are used at a high level like for example as part of a Rig for playing Audio Units, or as part of an effects chain or effect insert.

Only a very small percentage of users will want to create or modify an agent, however when they do, all power users will be able to take advantage of the agent directly in Workbench and Stage to create new setups using it.


Well I did tell you it was a bold vision. One that may never pay back its initial investment in monetary terms, however I am grateful that such an instrument was created. It gives me hope that projects like the Eigenharp can still be brought into existence by the sheer audacity of vision and tireless commitment to the value of creativity and innovation without compromise. I certainly don't think every project needs large funding and a multi year skunkworks project to innovate. It does make me smile to think that such projects are still possible though.

Look at the way the Alpha sends all its data across a standard instrument cable. That protocol and data processing architecture needed to be invented and in itself is a major innovation. Yet it enables a musician to move around the stage like a guitar player would. No compromises.

Lately I've had some of the most gratifying, connected sessions with this instrument and I've crossed some invisible barrier where I am learning fast enough that I want to play it constantly. It was a slow start as an early adopter and I even gave up for awhile when the software was immature and frustrating, but now the barriers have fallen. It's truly something you can bond with as a musician that goes beyond the throw away culture of just the next plastic box. I do call it an instrument and not just a controller because it does take virtuosity to play it. The community is literally learning how to learn it. It must be practiced like a new instrument and does not mimic any other instrument in technique even if things like the breath pipe are immediately recognizable. The technique involved is both unique and authentic, meaning, this is the real deal, not a hack to simulate something else. After a while you start learning advanced techniques like string bends, slides, different gating techniques, two handed techniques, etc. These are things I certainly associate with the progression of learning a guitar, but their execution is surprising and new techniques emerge that no other instruments can do. It amazes me to have one hand playing a percussion instrument while the other is playing something with manual vibrato and subtle pitch, timbre bends. Fertile ground for experimentation.

I do now see how the original vision will become reality for users. This is an amazing instrument and platform. There is no equal anywhere. Yes it is complex, but it now hides this complexity under a mature, accessible and very capable host while allowing access and extensibility to all levels of player from beginner to pro users as well as to programmers wishing to extend the platform. Even if you never changed out a sound in the factory setup, you could play, learn and enjoy this instrument for a lifetime.

I send you off with a video from one of the initial Eigenharp demo players (Dave K.) that to me expresses the kind of sessions and experience I like to have with the instrument.

From davek4981 youtube channel.

"Iambic 9 Poetry On The Eigenharp (Squarepusher Cover) "