I've found these ladspa extension threads very interesting, despite half of
it going over my head. But it's interesting to see you all thrash it out.
That's one advantage of being the sole programmer of a project, I can just
get on with it how ever I like, especially as it's not something many people
use and certainly not rely on.
I've downloaded the diff & host.c & drive.c examples Tim posted - which I'll
look at in time....still got other stuff to do first....
>From: Tim Goetze >Date: Mon, 8 Mar 2004 18:30:01 +0100 (CET)
>i'll try to explain in terms of UI controls:
>
>MOMENTARY: a push button, sending 'yes' when pressed and 'no' when
>released.
>
>TRIGGER: a push button, sending 'yes' only at press *or* release, and
>'no' at any other point in time.
In wcnt I have an input and output type which is a 'trigger'. it is ON for
one sample only. That's it. For example, note on and note off come from
two seperare trigger outputs. This means that the adsr can be retriggered
without it thinking it's a note off. but then I don't use any midi
messaging for such events.
(There is also a 'state' which can be 'ON' for many samples, but I've not
found any use for this as far as inputs and outputs go, except perhaps
displaying whether something is 'playing' - which nothing does)
My concept of a trigger came from using a korg ms20 and ms50 expander, and I
think I may have recorded a trigger signal to see what shape it was, and it
was certainly not like a single sample at full amplitude, but generally it
has the same effect.
James.
~(sirromseventyfive)~
_________________________________________________________________
Tired of 56k? Get a FREE BT Broadband connection
http://www.msn.co.uk/specials/btbroadband
Please consider MOMENTARY from a UI point of view. A MOMENTARY would have to be a button or button like object (ncurses). In that case, the values its use implies are either hardcoded in the plugin, or previously chosen by the user. Being boolean is not a limitation on the use of the push button.
Taybin
-----Original Message-----
From: Tim Goetze <tim(a)quitte.de>
Sent: Mar 8, 2004 11:19 AM
To: Taybin Rutkin <taybin(a)earthlink.net>,
The Linux Audio Developers' Mailing List <linux-audio-dev(a)music.columbia.edu>
Subject: Re: [linux-audio-dev] +momentary, consolidated (ladspa.h.diff)
[Taybin Rutkin]
>Please make MOMENTARY imply TOGGLED. This lets older hosts degrade
>gracefully.
a recommendation, yes i think that would be very sensible indeed.
please consider that implying TOGGLED makes MOMENTARY a '1 or 0'
valued control for all time, which is an unnecessary limitation.
[Taybin Rutkin]
>The presence of both MOMENTARY and TRIGGER seems redundent. TRIGGER
>means that it's reset to 0 after one call to run() or run_adding()?
>That'll happen so fast, the user won't even notice the UI change.
>If TRIGGER is for scale values, how will it scale if it's set to 0
>after every call? The distinction between them is overlapping and
>confusing.
TRIGGER is meant to accommodate MIDI and other mechanical trigger
sources, it's not exclusively tailored for display user interface
elements. there are a number of convenient ways to represent it
on-screen though, like the good old peak meter.
in fact there already are plugins implementing the TRIGGER behaviour.
it needs official status.
more opinions please?
amicalement,
tim
The presence of both MOMENTARY and TRIGGER seems redundent. TRIGGER means that it's reset to 0 after one call to run() or run_adding()? That'll happen so fast, the user won't even notice the UI change. If TRIGGER is for scale values, how will it scale if it's set to 0 after every call? The distinction between them is overlapping and confusing.
Taybin
-----Original Message-----
From: Tim Goetze <tim(a)quitte.de>
Sent: Mar 7, 2004 7:39 PM
To: linux-audio-dev(a)music.columbia.edu
Subject: [linux-audio-dev] +momentary, consolidated (ladspa.h.diff)
attached you'll please find three files:
* a patch moving ladspa.h 1.1 to 2.0
* a program showing how a host evaluates 2.0 extensions
* a thoroughly documented example plugin making use of the extensions
changes to the patch with respect to the last version include
consolidation of the extended port info into a dedicated structure.
also included is a warning note concerning the deprecation of the
1.1 default value hints and some minor clarifications.
the patch defines HINT_MOMENTARY as asked by Taybin and Steve. it
also credits Taybin now (Steve already being credited).
-
the example plugin is written with the intention to show, in all its
sometimes gory detail, how ladspa works 'from the plugin side'. the
plugin is fully operational in hosts implementing either version of
the standard. (it doesn't even sound so bad at all :)
there are a number of more elegant ways to accomplish what the plugin
source does, but these have all been ignored for the sake of showing
exactly how things are coming together in ladspa.
-
if you expect the extension to make a plugin author's life harder by a
significant amount, i would like to ask you to go over the source code
of the example plugin and see for yourself.
all the places where the plugin refers to the 2.0 incarnation have
been marked as such. i'm confident you'll agree that words like
'invasive', 'incomprehensible', 'bloated' or 'complicating' are not
doing the extension justice.
i would also like you to consider that it is up to you, either plugin
or host author, to altogether ignore the extension and still come up
with something perfectly useful. you can always extend your work to
make use of the extension at a later date. all this takes is added
code, with no changes to what you already have.
-
my apologies offered for the obnoxious use of the '2.0' version tag
for this proposal. for sheer lack of fantasy, typing laziness and a
number of other bad habits, i couldn't come up with something better.
amicalement,
tim
ps: it is hoped that the example plugin source will be helpful to
aspiring plugin authors, no matter the fate of the extension proposal.
Please make MOMENTARY imply TOGGLED. This lets older hosts degrade gracefully.
Taybin
-----Original Message-----
From: Tim Goetze <tim(a)quitte.de>
Sent: Mar 7, 2004 7:39 PM
To: linux-audio-dev(a)music.columbia.edu
Subject: [linux-audio-dev] +momentary, consolidated (ladspa.h.diff)
attached you'll please find three files:
* a patch moving ladspa.h 1.1 to 2.0
* a program showing how a host evaluates 2.0 extensions
* a thoroughly documented example plugin making use of the extensions
changes to the patch with respect to the last version include
consolidation of the extended port info into a dedicated structure.
also included is a warning note concerning the deprecation of the
1.1 default value hints and some minor clarifications.
the patch defines HINT_MOMENTARY as asked by Taybin and Steve. it
also credits Taybin now (Steve already being credited).
-
the example plugin is written with the intention to show, in all its
sometimes gory detail, how ladspa works 'from the plugin side'. the
plugin is fully operational in hosts implementing either version of
the standard. (it doesn't even sound so bad at all :)
there are a number of more elegant ways to accomplish what the plugin
source does, but these have all been ignored for the sake of showing
exactly how things are coming together in ladspa.
-
if you expect the extension to make a plugin author's life harder by a
significant amount, i would like to ask you to go over the source code
of the example plugin and see for yourself.
all the places where the plugin refers to the 2.0 incarnation have
been marked as such. i'm confident you'll agree that words like
'invasive', 'incomprehensible', 'bloated' or 'complicating' are not
doing the extension justice.
i would also like you to consider that it is up to you, either plugin
or host author, to altogether ignore the extension and still come up
with something perfectly useful. you can always extend your work to
make use of the extension at a later date. all this takes is added
code, with no changes to what you already have.
-
my apologies offered for the obnoxious use of the '2.0' version tag
for this proposal. for sheer lack of fantasy, typing laziness and a
number of other bad habits, i couldn't come up with something better.
amicalement,
tim
ps: it is hoped that the example plugin source will be helpful to
aspiring plugin authors, no matter the fate of the extension proposal.
[Fons Adriaensen]
>On Fri, Mar 05, 2004 at 09:56:01PM +0100, Tom Szilagyi wrote:
>
>> I think the "dead end" has just been reached...
>
>Yes. Steve has made his position very clear: he opposes any change
>to ladspa.h. Much as I respect Steve for all his contributions to
>Linux Audio, I think this is misguided and I do not share his
>opinion on what is 'meta' and what is not (and I sort of enjoyed
>Tim's posting an this subject).
thanks. i haven't given up on Steve yet. i admit he's stubborn, but
that simply behooves a good brit. he's also a bright mind, so he'll
realize sooner or later when he's supporting the wrong ideas.
unfortunately, his support for the ladspa 1.1 default value hack back
in the day has shown that 'sooner or later' sometimes means 'after the
milk has been spilled'.
maybe he's still shocked by the damage done to ladspa then, and his
consequence is to keep ladspa from changing at all now. i do not know.
(my apologies offered, Steve, for this rude, amateur public attempt at
understanding your motives.)
[good points about the other proposals elided]
>3. Then there is Tim's proposal, which allows for arbitary 'scale
>points' and which I think is clean and elegant, but that has the
>disadvantage of being much more invasive, as it introduces new
>fields and structs. And that IMHO means that its chances of being
>accepted as a de facto standard are impaired - there will inevitably
>be some commotion before this happens, and Tim's idea, even if it
>is in fact straightforward and logical, offers much more lines of
>attack to those that would resist any change. And that is not
>because there is any real problem with it, but only because it is
>a lot more ambitious than what I dared to propose.
thank you for the favourable review.
i would prefer the term 'expansive' instead of 'invasive' for the
patch: it doesn't change a thing about ladspa as it is now. you can
patch all or only some of your local copies of ladspa.h, issue a
'make' for the projects affected, be they host or plugin, without
experiencing any problem at all.
i've also tried to show that there is no mutual exclusion between
the patch and RDF; in fact it remains to be shown that there even is
friction between the two. on the contrary, they'll mix well.
>To my own surprise, I find myself talking politics. This is starting
>to look like the US presidential campaign, so I'd better stop.
let's thank god this is not even half as grave as the US choice of
president. :)
to expand on the political aspect on this: since we'll never agree on
what goes into it at what does not, by far the most democratic option
is to let everyone have their *positive* will.
this is what the patch does: it realizes all concepts wished for so
far by all the plugin and host authors present on this list.
people who have gone over the patch will agree that it does so without
bloating ladspa.h, or if you prefer hard numbers:
-rw-r--r-- 1 lad lad 27447 Mar 5 15:21 ladspa.h.orig
-rw-r--r-- 2 lad lad 31478 Mar 6 01:09 ladspa.h
the patch even removes the need for the default value hack in ladspa.h
in the long run.
let's also not forget the most invasive change the patch introduces is
the TRIGGER and/or MOMENTARY hint bit; this is the only thing that
*can* cause problems between a 2.0 plugin and a 1.1 host, and it is
being agreed upon (in essence, not in implementation) by everybody so
far.
-
once again, my apologies offered for a long-winded post. i would like
to conclude it with another political statement:
live and let live.
be glad your wishes can be realized, and don't dispute the right of
others to see theirs realized as well.
vriendelijk,
tim
New Yorkers for Fair Use Call to General Assembly
-------------------------------------------------
Internet Commons Congress 2004
March 24-25, 2004, Outside Washington, DC
Scheduled Sessions/Participants:
http://www.internationalunity.org/schedule.htmlhttp://www.internationalunity.orghttp://www.nyfairuse.org/icc
Please forward this call to any other concerned parties you might know.
Please visit the above links to register to attend and join in the fight to
preserve the Internet commons.
Today our commons is under attack.
The attack is wide and pervasive. Even our right to own and use computers
inside our homes and offices, is under attack.
The time has come to assemble and declare our rights. We call upon
advocates and organizers, authors and cow-orkers, readers and singers,
politicians and students, grandmothers and children of all ages, and all who
support the right of free human beings to the free dissemination and use of
information rendered to the commons for the benefit of the public, to join
us at the Internet Commons Congress outside Washington DC on March 24 and
25, 2004.
We live in a time of vibrant prospects and shameful travesties, brought on
as we confront the implications of a new and broader and greater empowerment
in furtherance of our common wealth and in engagement in our common
governance.
Today we possess:
- The Internet: the means to disseminate and make use of published
information flexibly and powerfully, on a worldwide scale
- Computers: tools to process, select, combine, analyze and synthesize
information at the digital and logical level, and
- Logical Freedom: the power to devise means of applying these tools
through the free use and expression of logic in code
But today we also confront:
- attempts to create irrational and wildly artificial legal and regulatory
trammels on new conventions, such as VoIP, in order to keep control of the
world's communication channels in the hands of old oligopolies, monopolies,
and tyrannical governments
- an intransigent U.S. Federal Communications Commission, arrogating to
itself an unprecedented authority to declare exclusive rights policy and to
regulate the design of digital devices on that basis
- consolidated mass media and entrenched communications monopolies that
subvert principles of the public interest with the willing concurrence of
complaisant regulators and legislators
- elected representatives who have made plain their intention to enact a
new exclusive right to factual information in databases
- forceful attempts in Europe to subvert the law banning patents on
software, by patent establishment professionals and the large companies they
serve
- specious arguments by public servants and privileged contractors for the
supposed reliability of "new voting technology"
- attempts by the Bio-Medical Cartel and others to seize the fruits of
logical, biological, medical, and pharmaceutical researches carried out at
publically financed institutions of science and learning
- an already well advanced and well funded plan to impose a redesign of
home computer hardware so that running software that you choose would be
made impractical, and analyzing and processing information in the manner you
choose would be made impossible; the new design, backed by laws such as the
DMCA, would result in the emplacement of wiretap and remote control hardware
and supporting software in every new low cost home computer sold in 2006
- massive ongoing and systematic violations of contract law and antitrust
law and consumer protection law by Microsoft and its partners, by means of
which most home users are left with no choice but to run Microsoft operating
systems: most people are not offered any choice of operating system at point
of sale of the hardware, and are therefore induced to employ systems that
are difficult to use and easily parasitized, systems that are indeed so bad
because Microsoft need not compete
- a hundred million dollar campaign of barratry and red-baiting conducted
by SCO, acting as agent for the convicted monopolist Microsoft, to induce
businesses and individuals to steer away from exercising free control of
their logic devices, away in particular from GNU/Linux operating systems;
the assault led by SCO is only one of many of similar scale
All these issues and more are part of a broad struggle by all the people, we
who treasure our freedom and who wish to remain free to use our Net and our
computers in all the ways that are both fit and just.
We call all ready advocates and concerned constituencies to assemble at the
Internet Commons Congress this March 24 and 25, 2004. Here we will forge a
bond in our common cause of information freedom, detail our missions and
callings and summon each other to join in common cause.
Please click here for details regarding venue, schedule, logistics:
http://www.nyfairuse.org/icc/
Registration for attendance is free: http://www.nyfairuse.org/icc/reg.xhtml
Those in attendance will issue calls for action, as shall we. We call all
free citizens to join the struggle against englobulation of our Commons and
our computers by the loose association and alliance of cartels, oligopolies,
monopolies, and parts of governments, that seek to keep or take control of
all the communications systems of the world.
At the moment New Yorkers for Fair Use knows of a few efforts which we will
forward at the Congress:
- Continued Actions for Refunds: We hope to prepare materials to move the
FTC, Congress of the USA folk, the Federal antitrust team, and the judge in
the Microsoft case to consider effective action on the basis of gross
violations of both the 1994/1995 consent decree, and the recent conviction
of Microsoft. This effort needs several score affidavits dealing with
anti-competitive practices at point of sale of low cost computer hardware.
- Education of Regulators and Legislators and Attorneys about Home
Computer Hardware: We will explain and demonstrate the boot process today on
untrammeled hardware and what the boot process would be like on Palladiated
hardware, that is, hardware with hard DRM.
- Procurement Policy Education and Action: We seek to collect and analyze
the grossly inequitable policies and procedures by which vendors of source
secret softwares keep their special privileged position in the machine rooms
and desktops of government agencies.
- Education of Regulators and Legislators and Judges about the Net: We
will explain the fundamental principles which, for more than thirty years,
have supported the psychic and moral and legal and engineering foundations
of our Net. A popularly reported on issue directly connected with these
principles is the "issue of Voice Over Internet Protocol".
These four actions have been mentioned because organizations, tribes, and
individuals from New York City have recently been working on these four
efforts. We know that other efforts will also be carried forward at the
Internet Commons Congress. Come and help!
--
New Yorkers for Fair Use
http://www.nyfairuse.org
[CC] Counter-copyright: http://realmeasures.dyndns.org/cc
I reserve no rights restricting copying, modification or distribution of
this incidentally recorded communication. Original authorship should be
attributed reasonably, but only so far as such an expectation might hold for
usual practice in ordinary social discourse to which one holds no claim of
exclusive rights.
BEAST/BSE version 0.6.1 is available for download at:
ftp://beast.gtk.org/pub/beast/v0.6/
or
http://beast.gtk.org/beast-ftp/v0.6/
This is a development version of BEAST/BSE, the BEdevilled Audio SysTem
and the Bedevilled Sound Engine. BEAST is a powerful music composition
and modular synthesis application released as free software under the
GNU GPL and GNU LGPL, that runs under unix.
The project is hosted at:
http://beast.gtk.org
A mailing list is available at:
http://mail.gnome.org/mailman/listinfo/beast/
This new development series of BEAST comes with a lot of
the internals redone, many new GUI features and a sound
generation back-end separated from all GUI activities.
Outstanding new features include support for skins, many sample
file formats, MIDI file import abilities, an improved piano roll
widget, the track editor which allows for easy selection of
synthesisers or samples as track sources, loop support in songs
and unlimited Undo/Redo capabilities.
Overview of Changes in BEAST/BSE 0.6.1:
* Added suid wrapper which acquires nice level -20, then drops privileges
* Improved latency/block-size handling of the synthesis engine
* Fixed i18n bug which prevents demo song from loading in non-C locales
* Added i18n support for enum values
* Support for more note formats like Cis-1, C#-1, #C-1
* SFI cleanups [Stefan Westerfeld]
* Restructured sfidl and fixed lots of bugs [Stefan]
* Switched core language bindnig to C++
* Added support for per-part scripts
* New harmonic transposition script which allows to convert between major,
minor, dorian, phrygian, lydian, mixolydian and locrian scales [Stefan]
* Added experimetal pattern editor prototype
* Added keybinding editor to preferences dialog
* Added ComboBox widgets to the GUI
* Updated Catalan translation [Xavier Conde Rueda]
* Updated Czech translation [Miloslav Trmac]
* Updated Serbian translation [Danilo Segan]
* Updated Dutch translation [Kees van den Broek]
* FreeBSD fixes [Rasmus Kaj]
* Lots of GUI fixes
---
ciaoTJ
Hi all,
tap-plugins 0.4.1 is out:
* Added TAP Equalizer/BW, which is identical to TAP Equalizer but
provides separate controls to set the bandwidth of each EQ band
filter.
* Fixed yet another crashing bug in TAP Reverberator (which appears
to be introduced upon fixing the previous crashing bug).
Hopefully no more crashing in my favorite plugin :)
Tom
TRIGGER, or MOMENTARY in my patch (http://www.mail-archive.com/linux-audio-dev@music.columbia.edu/msg11074.html), should really be 804, because it implies TOGGLED.
-----Original Message-----
From: Tim Goetze <tim(a)quitte.de>
Sent: Mar 5, 2004 10:40 AM
To:
The Linux Audio Developers' Mailing List <linux-audio-dev(a)music.columbia.edu>
Subject: +trigger, Re: [linux-audio-dev] ladspa.h.diff
>the attached patch proves that LADSPA can be extended without breaking
>binary compatibility. i've compiled plugins against a patched ladspa.h
>and run them in hosts compiled against ladspa.h version 1.1 without
>experiencing any problems.
attached is the same patch extended to define a TRIGGER hint.
amicalement,
tim