Re: [linux-audio-dev] Re: music widgets

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

Subject: Re: [linux-audio-dev] Re: music widgets
From: thudson_AT_cygnus.com
Date: ti syys   28 1999 - 11:59:21 EDT


Paul Barton-Davis wrote:

> Even so, I would strongly suggest that anyone thinking about this pays
> more attention to the functional hooks you want dangling from the
> widgets than their visual appearance. That enables different visual
> incarnations of the same functional widget to be created. That is:
> define the functionality presented by the widget's API, and then allow
> creativity to roam freely on the visual appearance.
>
I totally agree with this. For example, if a standard interface exists
for plugin transient generator editing, then multiple "styles" could
be created for editing them, and possibly be completely different
widget implementations.

I've been toying with ideas for a generic sysex editor/librarian. If
any of you are familiar w/ the current offerings on any platform, they
are pretty weak. The "look" is as generic as the functionality.
My idea is to use xml to describe editing parameters. However, the
presentation to the user would be a separate file, a "style-sheet."

There is actually a good open-source business model in this. Give
away the source and tools to make it a standard, and then sell
consulting services to synth manufacturers to have support for
their machines. Emagic does something similar (though closed-source
and proprietary) with their Soundiver product. Unfortunately (or
fortunate for their competition), Soundiver and Music Quest both
deliver a product that doesn't really distinguish the synth they
interface with.

Like pdb I tend to use C++, and thus think in terms of abstract
interfaces. For example our transient generator editor might
look like:

class TransientGeneratorEditor
{
  public:
    setTitle(const String& title);
    setStageCount(int i);
    setTime(int index, int value);
    setLevel(int index, int value);

    // using libSigC++-style signals
    Signal2<void, int, int> levelChanged; // args: index, level
    Signal2<void, int, int> timeChanged; // args: index, time
};

Visually I could represent this as a group box of vertical sliders,
two for each stage (time and level), or get fancy and have an
editable, graphical representation of the actual curve.

Thomas


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

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:27:12 EST