Hi all,<div><br></div><div>So I'm writing some LV2 plugins to wrap up the <a href="http://aubio.org/">Aubio audio analysis library</a>, 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.  </div>

<div><br></div><div>I was thinking that maybe it would output MIDI, as midi matches the "event based" aspect of beat detection.  Perhaps sending out <a href="http://en.wikipedia.org/wiki/MIDI_beat_clock">MIDI beat clock signals</a>?  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?</div>

<div><br></div><div>It seems like maybe some sort of LV2 specific extension might be in order?  The <a href="http://lv2plug.in/ns/ext/event/#EventPort">Event Port</a> 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?</div>

<div><br></div><div>Of course, this raises the question: Is a port specific for "beats" even necessary?  I can think of a few cases: </div><div><ul><li>DAW uses beat signals to set up markers on a track</li><li>

DAW uses beat signals to break a percussive track up into beats.</li><li>Delay effect uses beat signals to have a timed delay</li><li>Automatic drummer adds on a percussion part to audio with varying tempo</li><li>? other beat-synchronous effects?</li>

</ul><div>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.</div>

</div><div><br></div><div>Jeremy Salwen</div><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8">