Re: [linux-audio-dev] Additional LADSPA hints

2003-01-25 Thread Alexander Ehlert
On Wed, Jan 15, 2003 at 10:23:37PM +, Steve Harris wrote:
> That sounds useful, but its a seperate issue. I cant think of a way of
> generalising it... maybe OPTIONAL? i.e. this plugin will still do
> something useful if this port isn't connected.

I just might be a bit late giving my 2cents to this discussion, but I
rather read this list on a non regular basis, too much to do at
university... Anyway, why a introduce a ladspa hint for such specific
features. Anyway the Sidechain port has a label called "Sidechain", so every
host wanting to provide special support for the label can just check for
it and use it. In GLAME you can just build up a custom network
integrating whatever effects and connecting them how you like. And than
just save it and use it as new effect.

Cheers, Alex



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-22 Thread Steve Harris
On Tue, Jan 21, 2003 at 11:02:08 -0800, robbins jacob wrote:
> However, it seems that plugin writers are more comfortable interpreting 
> port type=audio to mean that the rate of the port is audio rate. Steve 
> suggests that it is splitting hairs to try to absolutely determine whether 
> an audio-rate port is for audio or control content. If this is the case 
> then we should just leave 2 port types and add a hint for audio-rate ports 
> that they should be used for control data.
> 
> I feel I must warn that this will make the ladspa_port_types audio vs 
> control a little misleading to people when they first read the header. If 
> the port type is chosen to be audio and not data then the port should be 
> for audio and not data, right? In short I think adding a third port type 
> would keep the header self-consistent, whereas adding a hint that overrides 
> and reverses the port type is twisting the standard to match current useage.

Not at all, the /type/ indicates what data you should expect (a vector of
LADSPA_Data or a single value), whereas the hint indicates likely usage.
Continuous control is a common term than implies a stream of data.

In any case this will not be directly visible to users.

- Steve



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-21 Thread robbins jacob


To my own surprise I have to object to the suggestion: /* 
AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled 
by a high time res. slider or control data, but shouldn't be connected to 
the next audio signal by default. I can't think of any simple examples off 
hand, but combined with MOMENTARY it could be used for sample accurate 
tempo tapping. */

As is see it, this declares that an audio port should be used for control 
data.



Yes. At present, ladspa allows two types of port: LADSPA_PORT_CONTROL (one 
value per block) LADSPA_PORT_AUDIO (array of values per block) However, 
some plugin authors (myself included) wanted finer control over the 
parameters, so we 'overloaded' the AUDIO port to allow per-sample control 
data. This has been used in many libraries: cmt, swh-plugins, blop, and it 
works fine in hosts that allow direct wiring: SpiralSynthModular, 
AlsaModularSynth, gAlan.


However, other hosts such as Ardour and Ecasound do not have the same 
direct wiring functions, and instead treat any AUDIO ports as exactly that 
(making them available as Effect Sends or similar). The purpose of the new 
hint is to accommodate these hosts:



LADSPA_PORT_CONTROL (one value per block for control data) 
LADSPA_PORT_AUDIO (array of values per block for audio
data)

LADSPA_PORT_CONTINUOUS_CONTROL (array of values per block for control

data)


This is what I'm getting at: the original suggestion was to introduce a 
LADSPA_HINT for continuous control which would be applied to ports of type 
LADSPA_PORT_AUDIO. I think that this is misleading because I interpret port 
type = audio to mean that the port is for audio content as opposed to 
control content. I agree with the proposal as you present it here, adding a 
new port type (not a new hint).

However, it seems that plugin writers are more comfortable interpreting port 
type=audio to mean that the rate of the port is audio rate. Steve suggests 
that it is splitting hairs to try to absolutely determine whether an 
audio-rate port is for audio or control content. If this is the case then we 
should just leave 2 port types and add a hint for audio-rate ports that they 
should be used for control data.

I feel I must warn that this will make the ladspa_port_types audio vs 
control a little misleading to people when they first read the header. If 
the port type is chosen to be audio and not data then the port should be for 
audio and not data, right? In short I think adding a third port type would 
keep the header self-consistent, whereas adding a hint that overrides and 
reverses the port type is twisting the standard to match current useage.


--jacob robbins.





_
Add photos to your messages with MSN 8. Get 2 months FREE*.  
http://join.msn.com/?page=features/featuredemail



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-20 Thread torbenh
On Sun, Jan 19, 2003 at 06:44:36PM +, Steve Harris wrote:
> My main concern abou htis hint is that it artificially introduces a
> distinction that isn't really there. Its fine as long as no modular host
> ever prevents me form wiring an audio output to hinted continuous control
> input or vice-versa.

i dont consider evaluating that hint in gAlan... its fine with me...




Re: [linux-audio-dev] Additional LADSPA hints

2003-01-19 Thread Steve Harris
On Fri, Jan 17, 2003 at 10:28:44 -0800, robbins jacob wrote:
> To my own surprise I have to object to the suggestion:
> /*
> AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled 
> by a high time res. slider or control data, but shouldn't be connected to 
> the next audio signal by default. I can't think of any simple examples off 
> hand, but combined with MOMENTARY it could be used for sample accurate 
> tempo tapping.
> */
> 
> As is see it, this declares that an audio port should be used for control 
> data. I oppose because it is ugly to declare a port one thing in its 
> PortDescriptor only to reverse this in the PortRangeHint. Furthermore, this 
> ugliness is likely to cause problems in hosts that do not parse this hint 
> value*.

I really dont understand where your coming from with this. There are
allready several LADSPA plugins that take control data from audio ports,
its not an unusual thing tho do. This hint would reduce potential user
confusion if anything as single stage plugin appliations would stop
presenting them as audio ports.

My main concern abou htis hint is that it artificially introduces a
distinction that isn't really there. Its fine as long as no modular host
ever prevents me form wiring an audio output to hinted continuous control
input or vice-versa.

- Steve



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-19 Thread Mike Rawes
On Fri, 17 Jan 2003 10:28:44 -0800
"robbins jacob" <[EMAIL PROTECTED]> wrote:

> To my own surprise I have to object to the suggestion:
> /*
> AUDIO_RATE_CONTROL. Hints than an audio control should/could be
> controlled by a high time res. slider or control data, but shouldn't
> be connected to the next audio signal by default. I can't think of any
> simple examples off hand, but combined with MOMENTARY it could be used
> for sample accurate tempo tapping.
> */
> 
> As is see it, this declares that an audio port should be used for
> control data. 

Yes. At present, ladspa allows two types of port:

LADSPA_PORT_CONTROL (one value per block)
LADSPA_PORT_AUDIO   (array of values per block)

However, some plugin authors (myself included) wanted finer control over
the parameters, so we 'overloaded' the AUDIO port to allow per-sample
control data. This has been used in many libraries: cmt, swh-plugins,
blop, and it works fine in hosts that allow direct wiring:
SpiralSynthModular, AlsaModularSynth, gAlan.

However, other hosts such as Ardour and Ecasound do not have the same
direct wiring functions, and instead treat any AUDIO ports as exactly
that (making them available as Effect Sends or similar). The purpose of
the new hint is to accommodate these hosts:

LADSPA_PORT_CONTROL(one value per block for control data)
LADSPA_PORT_AUDIO  (array of values per block for audio
data)
LADSPA_PORT_CONTINUOUS_CONTROL (array of values per block for control
data)

Hinting a port with this new hint would allow such a host to treat these
ports as per-sample controls, and not audio ports, and perform the right
actions. It would require existing plugin libraries to change their
hints.

> I oppose because it is ugly to declare a port one thing in its 
> PortDescriptor only to reverse this in the PortRangeHint. Furthermore,
> this ugliness is likely to cause problems in hosts that do not parse
> this hint value*.

PortRangeHints, if given, only specify minima and maxima for an input
port, and are semantically the same for both port types. Can you
elaborate on this?

> I believe that the true intention here was to undo the requirement 
> that data ports can only have one value per run() block, but the
> author realized that undoing that requirement has significant
> implications. The primary problem occurs when the plugin assumes a
> particular control is continuous but the host abides by ladspa.h v1.1
> which does not allow more than one control value per block. The plugin
> will treat that control port's data pointer as if it pointed to an
> array of the blocksize passed to run(), but the host will have only
> allocated a single value so there is a memory error.

The host should allocate a single value for ports hinted as
LADSPA_PORT_CONTROL, and allocate an array of sample_count for those
hinted as LADSPA_PORT_AUDIO, as per ladspa.h. For ports hinted with the
new hint, an array of sample_count should be allocated.

> (*)I argue that turning audio ports into data ports will cause enough
> host incompatibility problems that you might as well do it correctly
> IF you really feel it's worth it to add this feature. Here are some 
> incompatibilities which arise from using audio ports as continuous
> control ports:
> -the host doesn't parse the hint and sends audio to the control
> resulting in caucophonous output.
> -the host does realize it shouldn't send audio to the "audio" port but
> 
> doesn't have a facility for sending control data arrays to audio
> ports, so the user is unable to manipulate some of the controls on the
> plugin. Plugin writers are more likely to use continuous controls for
> important plugin features which warrant the extra detail, so
> unmodified hosts will be unable to accomodate very useful plugins that
> do who-knows-what.

This is what we want to avoid. It is only a problem for hosts that
automatically insert plugins into an audio stream. To do this, we need
to make a distinction between AUDIO ports, and per-sample CONTROL ports
and only use AUDIO ports for audio data. This is what the new hint would
deliver.

>   Basically, introducing arrays of control data will force ALL
>   reasonable 
> hosts to adapt to handle that ability. So I believe we are better off 
> keeping ladspa.h straightforward and self consistent by eliminating
> the strict single control value requirement and dealing with the
> issues involved, as opposed to maintaining a false veneer of backwards
> 
> compatibility by allowing use of audio ports for control data.

I agree. But sometimes, per-sample control isn't needed and/or wanted
(due to seldom changing values, cpu usage and so on). So I think having
three hints is still needed.

>   What are the issues involved with eliminating one control value per
>   block? 
> I think that all you need to do is remove it and add a data port hint 
> CONTINUOUS which means the host _must_ attach that control port to a
> whole block's worth of data for each run. As i said be

[linux-audio-dev] Additional LADSPA hints

2003-01-17 Thread robbins jacob
To my own surprise I have to object to the suggestion:
/*
AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled 
by a high time res. slider or control data, but shouldn't be connected to 
the next audio signal by default. I can't think of any simple examples off 
hand, but combined with MOMENTARY it could be used for sample accurate tempo 
tapping.
*/

As is see it, this declares that an audio port should be used for control 
data. I oppose because it is ugly to declare a port one thing in its 
PortDescriptor only to reverse this in the PortRangeHint. Furthermore, this 
ugliness is likely to cause problems in hosts that do not parse this hint 
value*. I believe that the true intention here was to undo the requirement 
that data ports can only have one value per run() block, but the author 
realized that undoing that requirement has significant implications. The 
primary problem occurs when the plugin assumes a particular control is 
continuous but the host abides by ladspa.h v1.1 which does not allow more 
than one control value per block. The plugin will treat that control port's 
data pointer as if it pointed to an array of the blocksize passed to run(), 
but the host will have only allocated a single value so there is a memory 
error.

(*)I argue that turning audio ports into data ports will cause enough host 
incompatibility problems that you might as well do it correctly IF you 
really feel it's worth it to add this feature. Here are some 
incompatibilities which arise from using audio ports as continuous control 
ports:
-the host doesn't parse the hint and sends audio to the control resulting in 
caucophonous output.
-the host does realize it shouldn't send audio to the "audio" port but 
doesn't have a facility for sending control data arrays to audio ports, so 
the user is unable to manipulate some of the controls on the plugin. Plugin 
writers are more likely to use continuous controls for important plugin 
features which warrant the extra detail, so unmodified hosts will be unable 
to accomodate very useful plugins that do who-knows-what.

 Basically, introducing arrays of control data will force ALL reasonable 
hosts to adapt to handle that ability. So I believe we are better off 
keeping ladspa.h straightforward and self consistent by eliminating the 
strict single control value requirement and dealing with the issues 
involved, as opposed to maintaining a false veneer of backwards 
compatibility by allowing use of audio ports for control data.

 What are the issues involved with eliminating one control value per block? 
I think that all you need to do is remove it and add a data port hint 
CONTINUOUS which means the host _must_ attach that control port to a whole 
block's worth of data for each run. As i said before, this kills backwards 
compatibility of hosts, but you are going to do that for the majority of 
hosts anyway if you reappropriate audio ports for control data and 
reappropriating audio ports is ugly.

As to whether I support adding CONTINUOUS data ports and breaking host 
compatibility; i haven't written my host yet so yes i support it because it 
will be easy enough to implement (or so i think :)


--jacob robbins.






_
The new MSN 8: smart spam protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread Mike Rawes
 --- Jack O'Quin <[EMAIL PROTECTED]> wrote: > Steve Harris
<[EMAIL PROTECTED]> writes:
> 
> > > On Wed, 15 Jan 2003 18:13:35 +
> > > Steve Harris <[EMAIL PROTECTED]> wrote:
> > > 
> > > > AUDIO_RATE_CONTROL. Hints than an audio control should/could be
> controlled
> > > > by a high time res. slider or control data, but shouldn't be connected
> to
> > > > the next audio signal by default. I can't think of any simple examples
> off
> > > > hand, but combined with MOMENTARY it could be used for sample accurate
> > > > tempo tapping.
> > > > 
> > > > My comments: I really like MOMENTARY and RANDOMISABLE.
> AUDIO_RATE_CONTROL
> > > > could be useful, but might be painful for hosts to implement. I dont
> have
> > > > any particular use for it right now.
> 
> > On Thu, Jan 16, 2003 at 02:38:53PM +0200, janne halttunen wrote:
> > > Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK? 
> 
> > > You'd have a buffer-full of samples and apply frequency shift to them,
> > > which would change the length of that buffer, which you couldn't give to
> > > JACK unless you do some rebuffering.
> > 
> > No, I dont think so. An audio rate control is just one that has a value
> > per sample, instead of a value per block. Its usful for things like FM
> > frequency which can be changed very quickly. Hey, I just thought of a use
> > for it ;)

More uses: 
* Vibrato/Tremolo (sounds better with continuous control)
* Fast transients (percussion synthesis)
* Smoother response to erratic input (smoothing the output from a gui
  widget makes for a nicer 'feel')

In short, I support the addition of this hint to LADSPA :)

> 
> There's a syntactic ambiguity in the name AUDIO_RATE_CONTROL.  Steve
> uses it to describe a Controller which runs at Audio Rate (i.e. sample
> clock speed).  But, Janne understood it to mean a Controller *of* the
> Audio Rate, which is not allowed.  Maybe a different name
> (CONTINUOUS_CONTROLLER?) would be clearer.

Seconded. I think including 'AUDIO' in the hint would confuse matters. A short
comment in ladspa.h could specifiy that 'continuous' means 'at audio rate'. 

Mike


__
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread Steve Harris
On Thu, Jan 16, 2003 at 10:19:38AM -0600, Jack O'Quin wrote:
> There's a syntactic ambiguity in the name AUDIO_RATE_CONTROL.  Steve
> uses it to describe a Controller which runs at Audio Rate (i.e. sample
> clock speed).  But, Janne understood it to mean a Controller *of* the
> Audio Rate, which is not allowed.  Maybe a different name
> (CONTINUOUS_CONTROLLER?) would be clearer.

Yes, agreed. The names I used were just the ones I first thought of, there
not necceserily any good :)

- Steve



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread janne halttunen
On Thu, 16 Jan 2003 16:35:37 +
Steve Harris <[EMAIL PROTECTED]> wrote:

> On Thu, Jan 16, 2003 at 05:31:56PM +0200, janne halttunen wrote:
> > > No, I dont think so. An audio rate control is just one that has a value
> > > per sample, instead of a value per block. Its usful for things like FM
> > > frequency which can be changed very quickly. Hey, I just thought of a use
> > > for it ;)
> > 
> > But how can it be used for "tempo tapping" then?
> 
> Tempo tapping is a way of determining the tempo of the musicians music,
> you tap the button in time to the music and the software then uses that to
> sync delays and similar effects. It doesn't do any time stetching.

Ah, allright.  Neat. :)


janne



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread janne halttunen
On Thu, 16 Jan 2003 10:58:40 -0500
Paul Davis <[EMAIL PROTECTED]> wrote:

> >On Wed, 15 Jan 2003 18:13:35 +
> >Steve Harris <[EMAIL PROTECTED]> wrote:
> >
> >> AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
> >> by a high time res. slider or control data, but shouldn't be connected to
> >> the next audio signal by default. I can't think of any simple examples off
> >> hand, but combined with MOMENTARY it could be used for sample accurate
> >> tempo tapping.
> >> 
> >
> >Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK?  
> >You'd have a buffer-full of samples and apply frequency shift to them, which w
> >ould change the length of that buffer, which you couldn't give to JACK unless 
> >you do some rebuffering.
> 
> this is true of *any* output paradigm. the audio interface only
> accepts N frames per second. if you had N frames to deliver in one
> second, then stretched them to N*2 frames, it will necessarily take
> you twice as long to deliver them - the interface isn't going to speed
> up for you.

Yes, but then, if you are also having input from realtime-type interface the buffer 
must be of fixed size.  

> >Correct me if I'm wrong.  We have similar issue with ecasound's Pitch Shifter 
> >operator in connection with JACK.
> 
> steve has written LADSPA pitch shifters and they work just fine with
> the fixed-sized buffer paradigm.

Yep, I was just intrigued with the tempo tapping, which cannot be achieved when in and 
out are realtime. (like jack-rack)  Or then I maybe misunderstood the term.


janne



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread Steve Harris
On Thu, Jan 16, 2003 at 05:31:56PM +0200, janne halttunen wrote:
> > No, I dont think so. An audio rate control is just one that has a value
> > per sample, instead of a value per block. Its usful for things like FM
> > frequency which can be changed very quickly. Hey, I just thought of a use
> > for it ;)
> 
> But how can it be used for "tempo tapping" then?

Tempo tapping is a way of determining the tempo of the musicians music,
you tap the button in time to the music and the software then uses that to
sync delays and similar effects. It doesn't do any time stetching.

- Steve



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread Jack O'Quin
Steve Harris <[EMAIL PROTECTED]> writes:

> > On Wed, 15 Jan 2003 18:13:35 +
> > Steve Harris <[EMAIL PROTECTED]> wrote:
> > 
> > > AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
> > > by a high time res. slider or control data, but shouldn't be connected to
> > > the next audio signal by default. I can't think of any simple examples off
> > > hand, but combined with MOMENTARY it could be used for sample accurate
> > > tempo tapping.
> > > 
> > > My comments: I really like MOMENTARY and RANDOMISABLE. AUDIO_RATE_CONTROL
> > > could be useful, but might be painful for hosts to implement. I dont have
> > > any particular use for it right now.

> On Thu, Jan 16, 2003 at 02:38:53PM +0200, janne halttunen wrote:
> > Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK?  
> > You'd have a buffer-full of samples and apply frequency shift to them,
> > which would change the length of that buffer, which you couldn't give to
> > JACK unless you do some rebuffering.
> 
> No, I dont think so. An audio rate control is just one that has a value
> per sample, instead of a value per block. Its usful for things like FM
> frequency which can be changed very quickly. Hey, I just thought of a use
> for it ;)

There's a syntactic ambiguity in the name AUDIO_RATE_CONTROL.  Steve
uses it to describe a Controller which runs at Audio Rate (i.e. sample
clock speed).  But, Janne understood it to mean a Controller *of* the
Audio Rate, which is not allowed.  Maybe a different name
(CONTINUOUS_CONTROLLER?) would be clearer.

Regards,
-- 
  Jack O'Quin
  Austin, Texas, USA




Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread Paul Davis
>On Wed, 15 Jan 2003 18:13:35 +
>Steve Harris <[EMAIL PROTECTED]> wrote:
>
>> AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
>> by a high time res. slider or control data, but shouldn't be connected to
>> the next audio signal by default. I can't think of any simple examples off
>> hand, but combined with MOMENTARY it could be used for sample accurate
>> tempo tapping.
>> 
>> My comments: I really like MOMENTARY and RANDOMISABLE. AUDIO_RATE_CONTROL
>> could be useful, but might be painful for hosts to implement. I dont have
>> any particular use for it right now.
>
>Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK?  
>You'd have a buffer-full of samples and apply frequency shift to them, which w
>ould change the length of that buffer, which you couldn't give to JACK unless 
>you do some rebuffering.

this is true of *any* output paradigm. the audio interface only
accepts N frames per second. if you had N frames to deliver in one
second, then stretched them to N*2 frames, it will necessarily take
you twice as long to deliver them - the interface isn't going to speed
up for you.

>Correct me if I'm wrong.  We have similar issue with ecasound's Pitch Shifter 
>operator in connection with JACK.

steve has written LADSPA pitch shifters and they work just fine with
the fixed-sized buffer paradigm.

--p



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread janne halttunen
On Thu, 16 Jan 2003 13:58:58 +
Steve Harris <[EMAIL PROTECTED]> wrote:

> On Thu, Jan 16, 2003 at 02:38:53PM +0200, janne halttunen wrote:
> > On Wed, 15 Jan 2003 18:13:35 +
> > Steve Harris <[EMAIL PROTECTED]> wrote:
> > 
> > > AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
> > > by a high time res. slider or control data, but shouldn't be connected to
> > > the next audio signal by default. I can't think of any simple examples off
> > > hand, but combined with MOMENTARY it could be used for sample accurate
> > > tempo tapping.
> > 
> > Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK?  
> 
> No, I dont think so. An audio rate control is just one that has a value
> per sample, instead of a value per block. Its usful for things like FM
> frequency which can be changed very quickly. Hey, I just thought of a use
> for it ;)

But how can it be used for "tempo tapping" then?


janne



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread Steve Harris
On Thu, Jan 16, 2003 at 02:38:53PM +0200, janne halttunen wrote:
> On Wed, 15 Jan 2003 18:13:35 +
> Steve Harris <[EMAIL PROTECTED]> wrote:
> 
> > AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
> > by a high time res. slider or control data, but shouldn't be connected to
> > the next audio signal by default. I can't think of any simple examples off
> > hand, but combined with MOMENTARY it could be used for sample accurate
> > tempo tapping.
> > 
> > My comments: I really like MOMENTARY and RANDOMISABLE. AUDIO_RATE_CONTROL
> > could be useful, but might be painful for hosts to implement. I dont have
> > any particular use for it right now.
> 
> Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK?  
> You'd have a buffer-full of samples and apply frequency shift to them,
> which would change the length of that buffer, which you couldn't give to
> JACK unless you do some rebuffering.

No, I dont think so. An audio rate control is just one that has a value
per sample, instead of a value per block. Its usful for things like FM
frequency which can be changed very quickly. Hey, I just thought of a use
for it ;)

- Steve



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-16 Thread janne halttunen
On Wed, 15 Jan 2003 18:13:35 +
Steve Harris <[EMAIL PROTECTED]> wrote:

> AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
> by a high time res. slider or control data, but shouldn't be connected to
> the next audio signal by default. I can't think of any simple examples off
> hand, but combined with MOMENTARY it could be used for sample accurate
> tempo tapping.
> 
> My comments: I really like MOMENTARY and RANDOMISABLE. AUDIO_RATE_CONTROL
> could be useful, but might be painful for hosts to implement. I dont have
> any particular use for it right now.

Not to mention that AUDIO_RATE_CONTROL would completely useless in JACK?  
You'd have a buffer-full of samples and apply frequency shift to them, which would 
change the length of that buffer, which you couldn't give to JACK unless you do some 
rebuffering.

Correct me if I'm wrong.  We have similar issue with ecasound's Pitch Shifter operator 
in connection with JACK.


janne



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-15 Thread Steve Harris
On Wed, Jan 15, 2003 at 07:48:48 +0100, David Olofson wrote:
> > AUDIO_RATE_CONTROL. Hints than an audio control should/could be
> > controlled by a high time res. slider or control data, but
> > shouldn't be connected to the next audio signal by default. I can't
> > think of any simple examples off hand, but combined with MOMENTARY
> > it could be used for sample accurate tempo tapping.
...
> Considering the sidechain deal, this *idea* seems useful - but 
> sidechains are *not* control ports, so this would still be the wrong 
> tool for that job, the way I understand it. Some other hint would 
> have to be used for that, and preferably one that's less specific 
> than "SIDECHAIN".

That sounds useful, but its a seperate issue. I cant think of a way of
generalising it... maybe OPTIONAL? i.e. this plugin will still do
something useful if this port isn't connected.
 
> > RANDOMISABLE. Hints that its useful/meaningful to randomise the
> > port if the user hits a button. This is useful for the steps of
> > control sequencers, reverbs, and just about anything that's
> > complex. Allows you to specify which controls can be randomised
> > without anything too supprising happening to the user (eg. sudden
> > +100dB gain would be unpleasent).
> 
> That sound cool, although I'm not a great fan of random control data 
> myself.
> 
> 
> I'd rather record the "random" data, so I can edit it if needed, and 
> be sure that it'll always sound the same every time I play the song. 
> I get nervous otherwise! ;-) And I've had some bad experiences with 
> noise generators and resonant filters... In Audiality, I decided to 
> reset the NG before rendering each waveform, to guarantee that a 
> certain script always generates the exact same waveform.
> 

What was suggested is that the host would provide a control and /if/ the
user clicked it it would randomise all the hinted control once. Its just
for when you run out of inspiration or are feeling brave ;)

If you were using host automation at the time I would expect it to record
the changes and play them back. Its not like a random input that varies
every block.

FWIW I agree with you on random data streams, they should be repeatable.
My "delayorama" plugin (well, not really mine, the idea was nicked from
Waves via Paul D. IIRC) has a random bias, but its seeded from a user
controlled value, so the the "random" bias will always be the same.

- Steve



Re: [linux-audio-dev] Additional LADSPA hints

2003-01-15 Thread David Olofson
On Wednesday 15 January 2003 19.13, Steve Harris wrote:
> There have been a few suggestions recently, I'l try to summarise
> them for comment.
>
> MOMENTARY. A hint to suggest that a control should behave like a
> momentary switch, eg. on for as long as the user holds down the
> key/mouse button/whatever. Useful for reset or sync controls for
> example. Would be useful in the DJ flanger. Only applies to TOGGLED
> controls.

This sounds like a nice, clean and useful feature.


> AUDIO_RATE_CONTROL. Hints than an audio control should/could be
> controlled by a high time res. slider or control data, but
> shouldn't be connected to the next audio signal by default. I can't
> think of any simple examples off hand, but combined with MOMENTARY
> it could be used for sample accurate tempo tapping.

I'm not sure... What does it *really* mean? Sure, "this is an audio 
rate control" - but that only suggests to hosts that it *might* be a 
bad idea to assume that it should be connected to an audio port... 

Considering the sidechain deal, this *idea* seems useful - but 
sidechains are *not* control ports, so this would still be the wrong 
tool for that job, the way I understand it. Some other hint would 
have to be used for that, and preferably one that's less specific 
than "SIDECHAIN".


> RANDOMISABLE. Hints that its useful/meaningful to randomise the
> port if the user hits a button. This is useful for the steps of
> control sequencers, reverbs, and just about anything that's
> complex. Allows you to specify which controls can be randomised
> without anything too supprising happening to the user (eg. sudden
> +100dB gain would be unpleasent).

That sound cool, although I'm not a great fan of random control data 
myself.


I'd rather record the "random" data, so I can edit it if needed, and 
be sure that it'll always sound the same every time I play the song. 
I get nervous otherwise! ;-) And I've had some bad experiences with 
noise generators and resonant filters... In Audiality, I decided to 
reset the NG before rendering each waveform, to guarantee that a 
certain script always generates the exact same waveform.



//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! .
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---



[linux-audio-dev] Additional LADSPA hints

2003-01-15 Thread Steve Harris
There have been a few suggestions recently, I'l try to summarise them for
comment.

MOMENTARY. A hint to suggest that a control should behave like a momentary
switch, eg. on for as long as the user holds down the key/mouse
button/whatever. Useful for reset or sync controls for example. Would be
useful in the DJ flanger. Only applies to TOGGLED controls.

AUDIO_RATE_CONTROL. Hints than an audio control should/could be controlled
by a high time res. slider or control data, but shouldn't be connected to
the next audio signal by default. I can't think of any simple examples off
hand, but combined with MOMENTARY it could be used for sample accurate
tempo tapping.

RANDOMISABLE. Hints that its useful/meaningful to randomise the port if
the user hits a button. This is useful for the steps of control
sequencers, reverbs, and just about anything that's complex. Allows you to
specify which controls can be randomised without anything too supprising
happening to the user (eg. sudden +100dB gain would be unpleasent).

--

My comments: I really like MOMENTARY and RANDOMISABLE. AUDIO_RATE_CONTROL
could be useful, but might be painful for hosts to implement. I dont have
any particular use for it right now.

- Steve