Re: [linux-audio-dev] Project: modular synth editor

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Project: modular synth editor
From: Mike Rawes (mike_rawes_AT_yahoo.co.uk)
Date: Wed Jan 14 2004 - 17:14:59 EET


Hi

 --- Dave Robillard <drobilla_AT_connect.carleton.ca> wrote:
> On Tue, 2004-01-13 at 11:09, Juhana Sadeharju wrote:
> > Hello.
> >
> > I feel we should write a modular synth editor from scratch.
> > I have checked many existing systems but none is good enough.
> >
> > The editor would just be the editor. There would not be
> > anything related to audio processing. Developers could use
> > the editor in any project, audio or not.
> >
> > The editor would handle GUIs such as in
> > AlsaModularSynth,
> > Arts,
> > Galan,
> > Gdam,
> > Glame,
> > NMEdit,
> > PD,
> > Quasimodo,
> > SpiralSynthModular.
> >
> > Also we should have an API and a script in the system.
> >
> > I can set up a project folder to our ftp site, ftp.funet.fi,
> > for resources (manuals and screenshots of existing systems, research
> > papers). Coding should happen in some CVS site.
> >
> > Any comments?
> >
> > Regards,
> > Juhana

I'm chiming in because I've had this kind of thing in the 'planning stage'
(read: too slack to do anything :) for a fair while.

[...]
> I can't really tell if you're talking about a modular softsynth (ala ssm
> and ams) or an editor for hard synths (Nord modular?), but I definately
> think something needs to be done on the "virtual modular (soft) synth"
> front. (So I'll just go off on a tangent here)
>
> The way I see it, the existing efforts all fail in one major way:
> LADSPA utilisation (well, ssm is getting better here but the polyphony
> thing ruins it's potential). We have this nice plugin API and _TONS_ of
> plugins that use it, I think we need (I /know/ I need anyway ;) ) a
> SIMPLE modular synth app that uses LADSPA plugins (almost) exclusively.

I need one too. I've done lots of 'bitwork' in ssm, galan and ams (mostly ssm)
- a few random noises for miscellaneous purposes :). I've also done a bit of
coding work on the SSM LADSPA plugin (RDF categories, GUI generation).

It's certainly possible to get a virtual studio set up using a combination of
various existing apps with a bit of effort (thanks to JACK). And I'm sure that
if I put the effort to learn it properly, PD would be very close to ideal.
However, the idea of a dedicated, simple modular synth is compelling.

> Why have yet another app-specific plugin format? Stupid, stupid.
> That's what LADSPA is for. A nice side effect of this app's existance
> would be way more nice LADSPA plugins for us all to play with how we
> choose. The fact that the existing modular synths have their own
> oscillators (and scores of other plugins) in their own formats seems
> pretty stupid to me.

I think the main reason for this (for SSM at least) is firstly that LADSPA
support came after the app was developed, and secondly LADPSA plugins don't
have GUIs - these have to be generated, with limited success. SSM is great in
this regard - the native plugins all have really cool GUIs.

Another issue is that LADSPA plugins cannot be used for sample playback, as
loading samples is impossible unless you stream the data in a la SooperLooper
(http://essej.net/sooperlooper).

> I don't think an app like this need be that complicated: all it really
> needs to do (in the audio engine) is allow connecting LADSPA plugin
> "ports" to other plugins. LADSPA being what it is; that's not such a
> difficult task (and most of the code could be borrowed from existing
> projects anyway).

Agreed - at the lowest level it's a directed graph traversed in topological
order - a solved problem. The complicated bit is the interface and additional
functionality (subpatches etc), which is what differentiates existing synths.

> (If you think this is just a stupid idea you should probably stop
> reading now...)

Not at all. It's a great idea.

> [...]
> Anybody with more ideas/criteria for the
> perfect modular synth?

OK here I go: From my notes (and fuzzy memory :), what I'd like is a simple cli
program that communicates via some form of IPC. OpenSoundControl (OSC) would
seem to be a good mechanism, as it's quite widely supported and should be
sufficient for all that would be required.

The key here would be to develop an API (I suppose more accurately an ACI -
application Control interface) to cover all intended functionality, which would
include:

* Querying installed LADSPA plugins
    Including RDF categorisation
     http://plugin.org.uk/lrdf
* Instantiating (adding) plugins and removing them
* Connecting / disconnecting ports
    including 'translation' between different port types, e.g.
      Control rate <->Audio rate
      Range hint scaling (e.g. mapping a +/- 1.0 audio
       signal to a logarithmic 5 octave frequency
       range) - AlsaModularSynth has a wise approach
       of standardising the scales - 1 'Volt' per
       octave for frequency etc. much like the old
       hardware modulars.
* Managing inputs/outputs
    JACK for audio (be it actual audio, or control
     values at audio rate)
    OSC 'ports' for control-rate connections
    MIDI connections
    OSS / ALSA audio I/O ?
    LADCCA, iirc, is designed for controlling
     LADSPA plugins remotely - worth checking out anyway
     http://pkl.net/~node/ladcca.html
* Creation and management of subpatches
    A nice feature would be any subpatches automatically
     become available as plugins as they are created,
     presented alongside vanilla LADSPA ones.
    Maybe have a 'publish subpatch' function that lets
     you slot in a subpatch into the RDF heirarchy as well.
* Setting up polyphony
    Either for the whole graph or just portions of
     it - think multiple synths and an effects unit
     in a single graph.
* Querying state (e.g. for presentation in a GUI)
    Pretty much everything:
      Connection state
      Names of plugins / ports / subpatches
      Inputs and Outputs
      Subpatches
      ...

Interfaces (Graph wiring GUI, Scheme scripting, custom hardware box or
whatever) could then be implemented as independent OSC clients.

I agree with your points, besides the Audio + MIDI I/O - I feel these would be
better implemented as non-plugins. There's also the sample load / save /
playback issue to consider.

> For the record, absolutely no disrespect towards authors of existing
> efforts (ams, ssm, both great and certainly have their plusses), I
> probably wouldn't have known what a modular synth was if it wasn't for
> you guys ;). Gratitude..

Indeed. There's a lot of good ideas in all these apps - it's worth considering
whether efforts could be directed to improving these, rather than starting
totally from scratch. However, this is likely to be more difficult!

> (Also, yes, I'm actually a coder, and yes, I'm willing to take this on
> (time being limited as it may be).. I'm not one of those self-appointed
> open-source-developer-dictators ;) )

I'm willing to help as well - I've been slacking off on this issue for too
long...

-
Myk

________________________________________________________________________
Yahoo! Messenger - Communicate instantly..."Ping"
your friends today! Download Messenger Now
http://uk.messenger.yahoo.com/download/index.html


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Jan 14 2004 - 17:16:46 EET