Halebopp: composing in realtime

Two years ago, I wrote an article about a ZUI desktop system, dreaming of a framework to run ZUI applications in a shared desktop environment, being to ZUI what Gnome is to the traditional desktop paradigm. That idea is still too much for me to chew.

Since then, little has happened. Work on Aldrin had already begun and is still ongoing, yet my dream of a sequencer with a zoomable UI has not vanished. I still want to do it, I just get a headache thinking about what it should feel like to work with it. What it would look like, how a piece of music would be organized on a zoomable 2D desktop, how this could work and interact with technologies like Jeff Han's Multi-Touchscreen. It is really hard for me to figure this out, and I hope it's not just a technology searching for an application, but a work flow that benefits from a new approach to an old problem.

The goal is: composing electronic music in real time. A sequencer, which is so powerful, that you can go on stage with it and compose something entertaining and new from scratch. Even the process of composition is visual eye-candy and worth exposing on stage. If you have no experience with making electronic music whatsoever, you will be equally compelled to put your hands on it, because it's so damn easy to understand. Accessible for everybody and fun in a short term, but also serious and powerful in a long term. Codename: Halebopp - or Halebopp!

It is certain that Halebopp is going to use libzzub, and uses the Aldrin component infrastructure. I am not sure if all user interface ideas can be mapped to the libzzub library. It doesn't appear to be an optimal solution, but it probably requires less effort than writing a new backend library.

I have trouble letting go of the elements of the old paradigm: the concept of samples, of synthesizing, of instruments and effects, of signal modelling and fourier transforms, of patterns and sequences, piano rolls and trackers. Perhaps I only have to add a few new concepts, while the old ones subside.

Here are some of the new concepts:

Railroad Tracks

Halebopp Design #1: Railtrack TimelineHalebopp Design #1: Railtrack Timeline A traditional sequence view provides a dedicated vertical list of one-dimensional sequences, on which tracks or pattern references can be arranged. The horizontal axis usually equals to time, while the vertical axis equals to an instrument or effect. The playing position is usually indicated with a vertical line slowly traveling from left to right.

In our case, our sequence is not one-dimensional, but a line segment going from point A to point B on our desktop. it acts as a "railroad" for a playing position, which would travel on the line segment like a train, always in the same speed. The length of the line segment indicates the duration. As the playing position (indicated by e.g. a red dot) passes objects tagged to the line segment, it interacts and thus creates sound - kind of like sliding a metal bar over the bars of a fence while passing by: the playing cursor would be the metal bar, while the fence bars would be the objects of interaction.

When the objects on the sequence are narrowly spaced, the rhythm is fast. When the objects are widely spaced, the rhythm is slow. Traditional desktop publishing tools such as rulers, snap and grids help determining the correct spacing for quantized positions.

Track Switches

Multiple play cursors can travel on one railroad. Railroads can be split up and merged back again. When a play cursor hits a track switch, the switch may decide whether the cursor splits, merges or vanishes. Hence, you could also describe a chain of railroads as a sequence of domino stones, where at some point the chain splits, moves and possibly merges again at a later point, with an exclusive option for one cursor to wait for the other until it has arrived.

This concept might allow you to e.g. write your sequence as a tree, branching into multiple paths, as more and more instruments are involved in your compositions timeline. As the song closes, paths merge again or simply stop in their tracks, literally.

so much for now.

Comments

Hi paniq. have you thought

Hi paniq. have you thought about making zoom in and zoom out to display the traditional f2-f3-f4 buzz winows? zoom in begins to show pattern information and parameter rows as the machine boxes become transparent. meanwhile a zoom out would show you the position of each machine in a more macro sequence window style view. Just shooting the shit and waving hello. :-)

hi augias. good point.

hi augias. good point. merging f2-f3-f4 into one zoomable UI would be a good startup exercise. but how would you fit in the sequencer?

ok. first lets say the

ok. first lets say the sequence view is like it currently is in aldrin or buzz. whatever floats you boat. as you zoom out, the machines begin to move and arrange themselves into this visual frame as a sequence grid begins to appear. Machines with no patterns to speak of, they fade away, unless of course you give them one. the cool thing would be having a glimpse of the sequence, be able to trigger patterns in it, and yet still have enough machineview control to do some basic routing, gaining and panning.

cool

Your goal behind Halebopp sounds like something I've been dreaming of for a long time. I'm definately looking forward to hearing more of your ideas.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.

Back to top