[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[psynth-devel] On the future of the Psychosynth UI, opinions needed

From: Juan Pedro Bolivar Puente
Subject: [psynth-devel] On the future of the Psychosynth UI, opinions needed
Date: Tue, 21 Sep 2010 23:54:43 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20100805 Icedove/3.0.6

Hash: SHA1


As some of you know, in a few months heavy activity in this project is
to be expected because it is going to be the topic of my Master Thesis

The whole core of the project is going to be almost rewritten in order
to add the following functionality:
- - A new basic sound proccessing library inspired by Boost.GIL image
processing library.
- - Midi and sequencing support.
- - Plugin and LADSPA support.
- - Polyphony.
- - Hierarchical patches.
- - Saving/Loading patches.

This will for sure heavily influence the high level API that interfaces
with the 3D UI so most of the UI code will be affected too. Therefore,
the UI will be almost for sure rewritten too.

The current UI, as Alexander knows well, has several problems. The worst
of all is called CEGUI, a bad widget library filled with bugs that
hinders usability. Also, CEGUI releases are heterogenous and create a
maintenance hell for packages. Also, Ogre, even though it is a great
scenegraph library for games, it causes maintenance problems and is
often too heavy for the lightweight usage that we are doing. Alexander
suggested kicking 3D out of the project and, after thinking a lot about
it and asking a lot of people, I have come up to the following decision:

*The next Psychosynth UI is not going to be 3D*

This opens a new widest range of possibilities and allows us to
concentrate on the original goals: to provide a innovative and
collaborative (i.e. touchable?) interface.

However, there are big constraints for the new toolkits to be used. One
of them is time. In around 9 months or even less I will have to
implement all the previously described changes and the new UI. That is a
big challenge, therefore, rapid development is one of the biggest needs.
Next, multitouch is probably the only way we can really provide a usable
experience for Psychosynth, therefore a library that either already
implements multitouch or is easy to adapt for so is good. While
GNU/Linux is the main target, cross-platform support is probably the
only way to attract the majority of musicians who use crappy operating
systems and enlighten them with the great powers of Software Freedom :D

I, therefore, encourage anyone following the development to propose
their ideas and thoughs on which toolkits and designs of the new
interface. On the toolkits discussion, I make the following proposals
for debate:

- - LibNui:

This library looks very pretty and audio applications already use it. It
is written in C++ and works well on IPhone, etc. Sadly, while it claims
to work properly on GNU/Linux, even the examples included in the source
distribution work very badly on my Debian installation. Moreover, it is
not distributed with biggest distributions.

- - Clutter:

This looks really promising. It support multi-touch already on
GNU/Linux, but I suspect that it does not on other platforms. It is
written in C, which is a very unproductive language, but have both C++
and Python bindings. While C++ bindings seem to be barely maintained,
the Python bindings are a bit better and I am strongly considering
writing Python bindings for the 'libpsynth' and writting the whole UI in
Python, which is a language that I really enjoy.

But it has some drawbacks. The most important is that, "MX", the only
reasonable widget toolkit that I have found for it, does not have any
language binding --it is in C only. Therefore we may have to write some
widgets for it.

We can use it inside GTK, which might be a solution for some parts of
the UI, we would like to avoid GTK as much as possible to provide a more
interactive experience. Another solution would be to use GTK /inside/
the Clutter scenegraph, as I have seen in some examples, but support for
that seems experimental and not supported by the bindings.

I think that Alexander works near to people related to GTK mulitouch and
Clutter so it would be very good if you could provide more insight on
the suitability of this and other libraries.

Thanks a lot for reading this and I look forward to hear everybody's
comments :-)


Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla -


reply via email to

[Prev in Thread] Current Thread [Next in Thread]