It sounds to me like the generic "Beat" Event would be a
"TriggerEvent".
Triggers could be for clock, gates, envelopes, etc.. At least I think this
would model the way old modulars would interact fairly well. But: Is it
modeled as an audio-port with peaks to denote the triggers, or as an event
port with timed events? I'm leaning towards events personally.
-Paul
On Tue, Dec 28, 2010 at 2:29 PM, JohnLM <johnlm(a)apollo.lv> wrote:
Well I think the idea is quite good! I could think of
few more uses,
including real-time DJ "crossfade/mix" sync by beats, and such.
I haven't looked into LV2 much yet, but one thing is sure. You can't
make the plugin universal. Any host dealing with such plugin must be
aware of it's purpose whether the output is simply audio clicks or some
kind of event interface.
As much as I understand LV2 does not mandate universal-use "filter"
plugins as LADSPA did, so you're good with extending it as you see fit.
Host code modifications will be required, but if you make it generic
enough, the interface could be picked up by various projects.
On Sun, 26 Dec 2010 01:58:13 -0500
Jeremy <jeremybubs(a)gmail.com> wrote:
Hi all,
So I'm writing some LV2 plugins to wrap up the Aubio audio analysis
library<http://aubio.org/>g/>,
and I'm not sure exactly how to handle functions like "onset"
detection. Currently, it just outputs clicks to an audio port (0 when
no beat, 1 when beat is detected). However, this doesn't take
advantage of the power of LV2. It is unclear to hosts and other
plugins exactly what sort of data is coming out.
I was thinking that maybe it would output MIDI, as midi matches the
"event based" aspect of beat detection. Perhaps sending out MIDI
beat clock signals <http://en.wikipedia.org/wiki/MIDI_beat_clock>?
However, that doesn't really match the sort of data that the Aubio
functions detect. Maybe it could just send a midi note on event?
It seems like maybe some sort of LV2 specific extension might be in
order? The Event Port <http://lv2plug.in/ns/ext/event/#EventPort>
extension seems to define everything I need: sending timestamped
events with no extra information attached. The question is: does it
require some sort of further extension to define what a beat port is
in the way the MidiEvent extension does?
Of course, this raises the question: Is a port specific for "beats"
even necessary? I can think of a few cases:
- DAW uses beat signals to set up markers on a track
- DAW uses beat signals to break a percussive track up into beats.
- Delay effect uses beat signals to have a timed delay
- Automatic drummer adds on a percussion part to audio with
varying tempo
- ? other beat-synchronous effects?
Anyway, I'm wondering what you all think would be the best option, or
whether you think functionality like this is even warranted in an LV2
plugin (should analysis plugins stick to VAMP?). So let me know what
you think.
Jeremy Salwen
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev(a)lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev