While reading over the ladspa v1.1 header, i noticed that hint number 0x2C0
is defined as follows:
/* This default hint indicates that the Hz frequency of `concert A'
should be used. This will be 440 unless the host uses an unusual
tuning convention, in which case it may be within a few Hz. */
#define LADSPA_HINT_DEFAULT_440 0x2C0
These "LADSPA_HINT_DEFAULT_..." hints tell a host how to set the values
for a port when the user doesn't supply any values.
But then it hit me, "what kind of port could have a default defined as
440 HZ, concert A?" Clearly, the only reasonable use for a port of this type
is to control the pitch of an instrument-type object. Any ladpsa plugin that
has a port with hint DEFAULT_440 set, be it a true synthesis-engine with no
audio input ports, or some sort of tonal filter, can be used to generate
coherent melodic output (ie tunes,songs,melodies,pitched-vocalizations...).
This is important because it means that we can implement _right_now_
ladspa instruments that can be used without the user having to hook up
control A to port B or generally know what the hell they're doing. In fact,
the sine oscillator plugin, provided by Richard Furse as an example plugin
for the ladspa sdk, is a reference example that host programmers can code
off of _right_now_. Just remember that each ladspa plugin instance is a
single voice, so polyphony must be implemented in the host. Fortunately,
this is not that hard(*).
The DEFAULT_440 hint took me by surprise because there aren't many ladspa
virtual synths out there. With the use of this hint, coding a synth is about
as simple as we would expect from ladspa: very. Many projects with
integrated softsynths could put some of their core dsp routines into ladspa
plugins and start seeing immediate benefits because the widespread use of
the ladspa format facilitates sharing plugins between apps. Once again, this
is all completely possible _right_now_ with the current version of ladspa.
What's even better is that ladspa instruments will be automatically
ported to the new XAP plugin format when it becomes available. This is
because one of the first XAP plugins will be a plugin to "wrap" LADSPA
plugins inside an XAP plugin. Plugin developers will then be able to choose
whether to fully move to the new plugin architecture, continue using ladspa,
or, (isn't linux great:) both.
For the record, the XAP standard has settled on using linear pitch
instead of pitch in HZ. linear pitch is defined as a floating point value,
with 0 = 440 hz, and scale 1.0/octave. (example 440 hz = 0 lin pitch, 220 hz
= -1 lin pitch, 110 hz = -2 lin pitch, 55 hz = -3 lin pitch). As you can
see, the mapping between linear pitch and HZ is an isomorphism, so
translation between the two is not much of an issue.
Remember that each ladspa plugin instance is only ONE voice in a possibly
polyphonous instrument. This means that plugin authors do not need to worry
about the MIDI standard (voice_on, voice_off) at all if they don't want to.
Translating from midi to ladspa is one of the host's burdens. I have placed
a simple scheme for doing this at
http://soundtank.sourceforge.net/input_maps
---jacob..................
(*) to make a host use multiple ladspa plugin instances as a single
polyphonous instrument do the following:
-make a linked list of all the plugin instances as you activate them
-make a linked list called active_instances and one called
inactive_instances
-add all plugin instances to the inactive_instances list
-have your realtime thread move instances from inactive_instances to
active_instances when it activates them to handle a MIDI voice_on event, and
back when a MIDI voice_off arrives saying that the note is finished. I have
placed a simple scheme for handling input events at
http://soundtank.sourceforge.net/input_maps
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
Hi all,
I've posted gwc-lib on:
http://gwc.sourceforge.net/
This is an EXTREMELY crude release from the standpoint of documentation
at least, (and it took *forever* to get this far), and ..., but I want
to allow for input into the API.
It so far only includes the denoising algorithm. I do plan to include
the declicking and decrackling algorithms.
What got me motivated was 3 things:
1) Conrad Parker's intitial query into getting the algorithms into
sweep, and subsequent private emails helping me understand many issues.
2) Erik de Castro Lopo's release of Libsamplerate
3) Paul Davis' great post (spurred by libsamplerate) on linux-audio-dev
about how sharing these basic algorithms in a library format has really
made it a better world for all of us:
http://eca.cx/lad/2003/01/0006.html
In theory, there are only 2 files you need to look at to start playing
around - gwc_lib.h which describes the API (sorta), and denoise.c, which
is an example of how to use the algorithm. The basic idea is you
initialize the algorithm with parameters, feed it noise samples via
buffers, then start using it by writing and reading buffers. There
appears to be a small performance hit by using the buffers on the order
of 10%.
If you've a mind, please grab it and let me know how it goes. Fire back
ideas about the API. And, no, I'm not gonna LADSPA-ize it.
Cheers,
Jeff Welty
I'm trying John Hall's book Programming Linux Games, which recommends
using libsndfile to load sound files. Unfortunately, the API has changed
since the book as written, and I can't seem to get projects to compile
with it now. There don't appear to be any instructions on the library's
homepage about linking.
Hall just says to compile the project with the -lsndfile flag. This
doesn't seem to work now - the resulting project doesn't link the object
in. The library does seem to be correctly installed
I found a message from the library's author
http://www.eca.cx/lad/2002/Mar/0311.html
which says to link the program with
gcc `sndfile-config --libs` file1.o file2.o -o program.
I don't seem to have the sndfile-config utility, which was suppoed to
get installed along with the library.
Running ./configure created makefiles in some of the subfolders in the
installation folder. I'm mainly interested in the examples folder, but I
get errors when I try to compile them with the makefile, assuming this
is what I am supposed to do.
I'd appreciate any advice.
Rohan Parkes
Melbourne
Australia
> > i remember i have read a statement about a lock free ringbuffer
> > implemented in C somewhere.
>
> courtesy of paul davis:
>
> you should use a lock free ringbuffer. we will be adding example code
> to the example-clients directory soon. existing code is in ardour's
> source base (for C++). the example code will be in
> example-clients/capture_client.c.
>
> where ardour is ardour.sf.net. (i doubt there is anything hugely non-C in
> the ringbuffer code proper).
maybe it's just me, but I can't find said file...?
Hi,
Thought I'd share some info about a site I just read about
www.linuxfund.org. They apparently are able to hand out funds to (some
of the) projects that apply for it. Funds seems to be handed out with a
voting system. The grants are on the order of $1000 which isn't that bad
for hacking students :).
So, if anyone thinks they'd be helped by a grant for their projects, be
sure to check it out. I have no idea what the criteria are to be accepted.
/Robert
Forget it guys, I'll do it by myself. I really don't care anymore if I
am the only person who ever uses it.
I just wanted some tools that did what I want the way I want it. Since I
can't run Rebirth on Linux I made a tool like it but not copying it. I
don't want to get into trouble with them. It doesn't violate any
copyright laws that I know of.
I'm not really looking for anything, but it would sure be nice to have 1
person out of the 50 a day who download a day send me an email saying
hello how are you. That is what drives me nuts. Software doesn't grow on
trees and I spent 6 hard months of intense work getting something like
this to come togethor.
Peace
--
Nick <nicktsocanos(a)charter.net>
http://plugin.org.uk/releases/0.4.0/
This one is a very experimental release, hence the .0, its even more
likly to cause pain and death than other releases :)
I've attached a list of the plugins against what state I think there in,
for the people who want to help by testing, it should save you some
time by weeding out the very simple and definatly broken ones. Please test
against this version, not previous ones.
It includes rough support for gettext, so, in theory the plugins can be
localised without support from hosts. If people want to provide
translations, look in the po directory, I think theres everything you
need, but I've never used gettext before, so I may have messed up.
I've done some significant work on the compressors, most notably SC4,
(stereo, no sidechain) which has a continuously variable RMS/peak control
and a magick 'fast' mode: when the attack time is set to very low it
behaves more like a limiter. This feature seems to be present on a lot of
hardware compressors.
SC4 now has ID 1882, so you should move away or delete the old sc4_1434.so
file. It wasn't strictly neccesary to rename the file, but it would be
confusing (to me) if I didn't.
The others all have slightly faster responses and less damping after I
found out that you were /supposed/ to get pumping with fast envelopes :)
I ran through them with demolition
(http://www.ecs.soton.ac.uk/~njl98r/code/ladspa/) and fixed a lot of crash
bugs, so things should be more stable once the major code changes settle
down.
There is still no support for the beta FFTW (version 3), or OSX. I wanted
to get this release out this week, they should be supported in the next
version.
Summary:
please test, especially the compressors
translations welcome
- Steve
Hi.
I released ZynAddSubFX 1.2.1, a powerfull synthezier
for Linux and Windoze.
Get it from:
http://zynaddsubfx.sourceforge.net/
News:
- improved filter interpolation
- bugfix: wav header is written correctly
- bugfix: NRPN works correctly (eg:the
controller was 0x98 instead of 98), now you can
controll all effects parametrer realtime via MIDI
- bugfix: pitch bend works OK in windows
- added master fine detune (-64..63 cents)
- it is possible to swap effects or copy them
- started to port ZynAddSubFX to VST (not
functional, yet)
- the resonace can protect the fundamental freq.
against damping
Paul.
__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com