Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread torbenh
On Mon, Jun 15, 2009 at 04:37:09PM +0200, Lennart Poettering wrote: On Mon, 15.06.09 15:34, Stéphane Letz (l...@grame.fr) wrote: What I'm personally trying to achieve is a more flexible way (compared to what is currently a bit hard-coded in JAKC2 SVN) so that a DBus control component

[LAD] [SUMMARY] LADSPA extension for periodic control values?

2009-06-18 Thread Jörn Nettingsmeier
hi everybody! thanks for sharing your thoughts! Jörn Nettingsmeier wrote: consider the case of periodic control values of LADSPA plugins, for instance the azimuth in a horizontal panner or the phase shift in a phaser. currently, they are usually marked as BOUNDED_BELOW and BOUNDED_ABOVE, but

Re: [LAD] [SUMMARY] LADSPA extension for periodic control values?

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Jörn Nettingsmeier netti...@folkwang-hochschule.de hi everybody! thanks for sharing your thoughts! Jörn Nettingsmeier wrote: consider the case of periodic control values of LADSPA plugins, for instance the azimuth in a horizontal panner or the phase shift in a phaser.

Re: [LAD] LADSPA extension for periodic control values?

2009-06-18 Thread David Robillard
On Wed, 2009-06-17 at 03:07 +1000, Fraser wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 David Robillard wrote: Sounds an awful lot like units to me... degrees out of 360 is a cyclic unit Declaring the control as being in some angle UOM isn't enough to know if the control is

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 16:09, torb...@gmx.de (torb...@gmx.de) wrote: I think org.jackaudio.service should be fine. I don't think this automatic logic needs to work on non-D-Bus jack builds. As I see it you don't need to make any changes on jack for this to work. All I need is the guarantee that

Re: [LAD] GIl, python, threading, and IPC

2009-06-18 Thread David Robillard
On Wed, 2009-06-17 at 17:16 -0800, Patrick Stinson wrote: While CPython is more than capable of running fast enough in the audio thread for control-rate (MIDI) work eeehhh no ;) Python is nowhere even remotely near realtime safe, unless you're doing some clever allocation stuff etc.? -dr

[LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Jörn Nettingsmeier
hi everybody! as discussed in another thread, i would like to propose a new LADSPA release 1.2, which should include the following changes: 1. addition of a port range hint flag LADSPA_HINT_PERIODIC to denote periodic behaviour of a control port to be added to the

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Jussi Laako
Lennart Poettering wrote: PA does not use fixed block sizes. We always use the largest chunk sizes the applications pass to us and break them up into smaller pieces only when really necessary. We really try our best not having to touch/convert/split/copy user supplied PCM data if we don't have

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Jörn Nettingsmeier
Fons Adriaensen wrote: On Thu, Jun 18, 2009 at 06:28:32PM +0200, Jörn Nettingsmeier wrote: 2. addition of a port range hint flag LADSPA_HINT_ENUMERATED to inform hosts that an integer-type port (as denoted by LADSPA_HINT_INTEGER) should be annotated with a set of labels rather than

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Fons Adriaensen f...@kokkinizita.net: On Thu, Jun 18, 2009 at 06:28:32PM +0200, Jörn Nettingsmeier wrote: 2. addition of a port range hint flag LADSPA_HINT_ENUMERATED to inform    hosts that an integer-type port (as denoted by LADSPA_HINT_INTEGER)    should be annotated with a set

Re: [LAD] [SUMMARY] LADSPA extension for periodic control values?

2009-06-18 Thread Paul Davis
2009/6/18 Stefano D'Angelo zanga.m...@gmail.com: You might want to talk to Richard Furse as well about this, who is the author of LADSPA and IIRC he told me he wasn't reading LAD mails lately. You can find his email at the bottom of the main www.ladspa.org page. Richard is one of the authors

Re: [LAD] [SUMMARY] LADSPA extension for periodic control values?

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Paul Davis p...@linuxaudiosystems.com 2009/6/18 Stefano D'Angelo zanga.m...@gmail.com: You might want to talk to Richard Furse as well about this, who is the author of LADSPA and IIRC he told me he wasn't reading LAD mails lately. You can find his email at the bottom of the

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Luis Garrido
This has been debated already. Several times. For instance, please follow this (long) thread: http://lists.linuxaudio.org/pipermail/linux-audio-dev/2004-March/006948.html While I think that each side of the argument has its merits, in the end to me it all boils down to: is lrdf simple and

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Thu, Jun 18, 2009 at 07:55:21PM +0200, Stefano D'Angelo wrote: Host will need to use the value (UpperBound + 1) no matter where these strings get stored. A host looping over the port data should just initialise a pointer: const char **enum_labels = descriptor-PortNames +

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 13:51, Paul Davis (p...@linuxaudiosystems.com) wrote: On Thu, Jun 18, 2009 at 12:21 PM, Lennart Poettering mz...@0pointer.dewrote: This is a bit more complex than you might think. Jack's thread management is very unflexible and insists on controlling the entire

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Luis Garrido luisgarr...@users.sourceforge.net This has been debated already. Several times. For instance, please follow this (long) thread: http://lists.linuxaudio.org/pipermail/linux-audio-dev/2004-March/006948.html While I think that each side of the argument has its merits,

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Stefano D'Angelo zanga.m...@gmail.com: 2009/6/18 Luis Garrido luisgarr...@users.sourceforge.net This has been debated already. Several times. For instance, please follow this (long) thread: http://lists.linuxaudio.org/pipermail/linux-audio-dev/2004-March/006948.html While I

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Paul Davis
On Thu, Jun 18, 2009 at 2:45 PM, Lennart Poetteringmz...@0pointer.de wrote: So, how would I use this? I figure something like this: snip void* my_thread(void*arg) {    for (;;) {        n = jack_cycle_wait(client);        process_my_data(n);        jack_cycle_signal(client, 0);        

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Tim Goetze
[Fons Adriaensen] This makes is backwards compatible, as no new field is required in the descriptor struct. AFAICS, binary compatibility is not compromised by an expanded descriptor struct, as long as additional members are appended to the struct. (That is not to say it's hugely preferable

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Fons Adriaensen f...@kokkinizita.net: On Thu, Jun 18, 2009 at 07:55:21PM +0200, Stefano D'Angelo wrote: Host will need to use the value (UpperBound + 1) no matter where these strings get stored. A host looping over the port data should just initialise a pointer: const char

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Thu, Jun 18, 2009 at 08:46:28PM +0200, Stefano D'Angelo wrote: 3. Do as Fons suggested (which to me sounds like make that tiny part of the API a bit counter-intuitive); It's just a conceptual change. The port_names array becomes a general-purpose string table, the first NPORT values are the

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Fons Adriaensen f...@kokkinizita.net: 5. Add something like this to the API: struct {   float value;   const char *name; } ladspa_port_value_enum; struct ladspa_port_value_enum * ladspa_get_port_value_enums(unsigned long descriptor_index, unsigned long port_index); Would not

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 20:12, Jussi Laako (ju...@sonarnerd.net) wrote: Lennart Poettering wrote: PA does not use fixed block sizes. We always use the largest chunk sizes the applications pass to us and break them up into smaller pieces only when really necessary. We really try our best not

Re: [LAD] GIl, python, threading, and IPC

2009-06-18 Thread Albert Graef
David Robillard wrote: Python is nowhere even remotely near realtime safe, unless you're doing some clever allocation stuff etc.? I don't know the internals of the CPython interpreter, but I'd say it's safe to assert that Python does its own memory management. Python should be perfectly capable

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 14:49, Paul Davis (p...@linuxaudiosystems.com) wrote: So, to map this to JACK, I would prefer if jack_cycle_wait() would also exist in a non-blocking variant. i.e. something that can return 0 if there's nothing to process, but doesn't necessarily wait. that's not

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Thu, Jun 18, 2009 at 08:54:39PM +0200, Stefano D'Angelo wrote: You would have to add the names in order of (port index, value), starting from PortNames + PortCount... is this really so intuitive to someone who occasionaly does C? Should someone who 'occasionaly does C' write a plugin host

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Thu, Jun 18, 2009 at 08:53:27PM +0200, Tim Goetze wrote: [Fons Adriaensen] This makes is backwards compatible, as no new field is required in the descriptor struct. AFAICS, binary compatibility is not compromised by an expanded descriptor struct, as long as additional members are

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Jussi Laako
Lennart Poettering wrote: If an application can send PA data in larger blocks then we are happy about it and take it. Of course, if the application needs low latencies then it shouldn't pass huge blocks to us, but instead many No, generally data needs to be fed _to_ application immediately

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Damon Chaplin
On Thu, 2009-06-18 at 20:58 +0200, Stefano D'Angelo wrote: 2009/6/18 Fons Adriaensen f...@kokkinizita.net: 5. Add something like this to the API: struct { float value; const char *name; } ladspa_port_value_enum; struct ladspa_port_value_enum *

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 23:27, Jussi Laako (ju...@sonarnerd.net) wrote: Lennart Poettering wrote: If an application can send PA data in larger blocks then we are happy about it and take it. Of course, if the application needs low latencies then it shouldn't pass huge blocks to us, but instead

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Damon Chaplin da...@karuna.eclipse.co.uk: On Thu, 2009-06-18 at 20:58 +0200, Stefano D'Angelo wrote: 2009/6/18 Fons Adriaensen f...@kokkinizita.net: 5. Add something like this to the API: struct {   float value;   const char *name; } ladspa_port_value_enum; struct

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Fons Adriaensen f...@kokkinizita.net: On Thu, Jun 18, 2009 at 08:53:27PM +0200, Tim Goetze wrote: [Fons Adriaensen] This makes is backwards compatible, as no new field is required in the descriptor struct. AFAICS, binary compatibility is not compromised by an expanded

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Florian Schirmer
Hi, On 18.06.2009, at 22:27, Jussi Laako wrote: No, generally data needs to be fed _to_ application immediately when it becomes available after A/D conversion (PCI DMA completion interrupt). Application(s) process the data and it is ought to go to D/A conversion on next hardware

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/18 Tim Goetze t...@quitte.de: [Stefano D'Angelo] Note: a weird host could copy make a copy of the descriptors (I see nothing claiming this should not happen in the header file), thus ABI would be broken... this could maybe happen in LADSPA hosts written in non-C languages (why does Java

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Arnold Krille
Hi, On Thursday 18 June 2009 23:16:53 Tim Goetze wrote: [Stefano D'Angelo] Note: a weird host could copy make a copy of the descriptors (I see nothing claiming this should not happen in the header file), thus ABI would be broken... this could maybe happen in LADSPA hosts written in non-C

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Thu, Jun 18, 2009 at 10:50:45PM +0200, Stefano D'Angelo wrote: Now, suppose you wanted to add other kind of stuff in some future to ports: if they are strings, you could do this thing once again (maybe, maybe not), if they are not strings (e.g. units of measure as an enum), how to do that

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Paul Davis
On Thu, Jun 18, 2009 at 3:12 PM, Lennart Poetteringmz...@0pointer.de wrote: On Jack we have jack_frames_since_cycle_start(), would it be considered an ugly hack if I use that to implement a similar logic? for (;;) {    n = jack_client_wait()    process(n);    jack_cycle_signal();    while

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Thu, Jun 18, 2009 at 11:23:52PM +0200, Arnold Krille wrote: But if the plugin is v1.2 and the host is v1.1 doesn't this mean the host only used v1.1 at compile time? Then on copying the struct or on doing pointer- arithmetic it will only know the old size of the struct and definitely

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Damon Chaplin
On Thu, 2009-06-18 at 23:23 +0200, Stefano D'Angelo wrote: Sorry, didn't see that. Well, I guess there's no problem on the plugin side then... any other possible problems on the host side? In case there are none, we could add an array or another callback. You'd need a way to let the host

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 17:41, Paul Davis (p...@linuxaudiosystems.com) wrote: On Thu, Jun 18, 2009 at 3:12 PM, Lennart Poetteringmz...@0pointer.de wrote: On Jack we have jack_frames_since_cycle_start(), would it be considered an ugly hack if I use that to implement a similar logic? for (;;)

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Krzysztof Foltman
Stefano D'Angelo wrote: You're right. Well, I vote for the extra function and leaving descriptor untouched too. The extra function seems best to me as well. Sort of DSSI-like approach (and DSSI obviously works!). Krzysztof ___ Linux-audio-dev

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Fons Adriaensen
On Fri, Jun 19, 2009 at 12:13:26AM +0200, Stefano D'Angelo wrote: 2009/6/18 Fons Adriaensen f...@kokkinizita.net: Plus, you can't change the name of the parameter (PortNames) in the descriptor, without breaking API, which is weird. You can. Fields are not referred to by name in compiled

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Fri, 19.06.09 01:56, Jussi Laako (ju...@sonarnerd.net) wrote: Lennart Poettering wrote: Yeah? And this matters how to PA? Only in a way as I said, goals of JACK and PA are different, they try to solve different problem and naturally use different means to achieve these goals. This

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Fri, 19.06.09 01:23, Fons Adriaensen (f...@kokkinizita.net) wrote: On Fri, Jun 19, 2009 at 12:33:24AM +0200, Lennart Poettering wrote: This is basically what happens. However in PA we are much more dynamic than JACK generally is. JACK clients generally just have a single stream of

Re: [LAD] [RFC] LADSPA 1.2

2009-06-18 Thread Stefano D'Angelo
2009/6/19 Fons Adriaensen f...@kokkinizita.net On Fri, Jun 19, 2009 at 12:13:26AM +0200, Stefano D'Angelo wrote: 2009/6/18 Fons Adriaensen f...@kokkinizita.net: Plus, you can't change the name of the parameter (PortNames) in the descriptor, without breaking API, which is weird.

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Paul Davis
On Thu, Jun 18, 2009 at 7:43 PM, Lennart Poetteringmz...@0pointer.de wrote: snip for (;;) {    n = jack_client_wait()    process(n);    jack_cycle_signal();    while (jack_frames_since_cycle_start() threshold) {        if (no_private_events_to_process())                break;        

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Lennart Poettering
On Thu, 18.06.09 19:57, Paul Davis (p...@linuxaudiosystems.com) wrote: On Thu, Jun 18, 2009 at 7:43 PM, Lennart Poetteringmz...@0pointer.de wrote: snip for (;;) {    n = jack_client_wait()    process(n);    jack_cycle_signal();    while (jack_frames_since_cycle_start()

Re: [LAD] [Jack-Devel] jack2's dbus name

2009-06-18 Thread Paul Davis
On Thu, Jun 18, 2009 at 8:27 PM, Lennart Poetteringmz...@0pointer.de wrote: But for MIDI time is critical. For my control events it is not. That's why I'd like to handle them after the _signal() invocation. fair enough, but you definitely cannot use jack_frames_since_cycle_start() there. there