This software package contains libraries and programs that should make
it easier to write LV2 plugins and GUIs.
Download it: http://ll-plugins.nongnu.org/hacking.html
Read documentation: http://ll-plugins.nongnu.org/dox/lv2-c++-tools/
Or read a nice tutorial: http://ll-plugins.nongnu.org/lv2pftci/
To build and install, run
./configure
make
su -c 'make install'
You can pass some options to configure, e.g. --prefix=/usr to install
everything in /usr (the default is /usr/local).
This is a development tool, but I'm sending it to the LAU list as well
in case there are any not-yet-hackers who would like to start writing
effects or synths. It's easy, I promise. Here's the code you would need
to write for a simple gain effect:
#include <lv2plugin.hpp>
#include "gain.peg"
class Gain : public LV2::Plugin<Gain> {
public:
Gain(double rate) : LV2::Plugin<Gain>(p_n_ports) { }
void run(uint32_t nframes) {
for (uint32_t i = 0; i < nframes; ++i)
p(p_out)[i] = p(p_gain) * p(p_in);
}
};
static int _ = Gain::register_class("http://my.plugin/");
And here's the code you would need for a GUI for a synth plugin with a
button that sends a test tone:
#include <lv2gui.hpp>
#include "mysynth.peg"
class MySynthGUI : public LV2::GUI<MySynthGUI, LV2::WriteMIDI<true> > {
public:
MySynthGUI(const std::string& URI) : m_button("Click me!") {
m_button.signal_pressed().connect(mem_fun(*this, &MySynthGUI::send_note_on));
m_button.signal_released().connect(mem_fun(*this, &MySynthGUI::send_note_off));
pack_start(m_button);
}
protected:
void send_note_on() {
uint8_t event[] = { 0x90, 0x40, 0x40 };
write_midi(p_midi, 3, event);
}
void send_note_off() {
uint8_t event[] = { 0x80, 0x40, 0x40 };
write_midi(p_midi, 3, event);
}
Gtk::Button m_button;
};
static int _ = MySynthGUI::register_class("http://my.gui/");
See? Trivial. Read more in the tutorial linked above.
--ll
...for those who do not follow the LV2 mailing list.
1. EVENTS
There is an extension for sending arbitrary events to and from plugin
ports here: http://lv2plug.in/ns/ext/event#EventPort
This extension specifies how to send MIDI events using those ports:
http://lv2plug.in/ns/ext/midi#MidiEvent
MIDI event support is implemented in Elven, Ingen, lv2_jack_host (and
more?) and a couple of experimental plugins (a virtual keyboard, a basic
drum machine, some MIDI utilities, some synths).
There is no published OSC event type spec yet, but there are
experimental hosts that are sending OSC to and from plugins and GUIs
using the event ports.
2. UIS
Here is an extension that defines a framework for embedded LV2 (G)UIs:
http://lv2plug.in/ns/extensions/ui
So far there is only a Gtk+ 2.0 GUI type specified, but others would be
easy to add if someone writes up a spec for them. This is supported by
Elven, Ingen (and more?) and a couple of plugins (e.g. above mentioned
virtual keyboard and synths).
There are also a bunch of other extensions for port grouping, saving and
restoring the internal state of a plugin, and other stuff. See
http://lv2plug.in for more information.
Hi Everyone!
Sorry, it's not exactly audio itself: But has anyone of you experience with
the cortado-java-applet? It's the multimedia-player applet, that's written by
the gstreamer guys.
The questions I have:
1. Can anyone recommend a certain version of it? - The version I have requires
a VERY NEW java.
2. Does anyone know if there are constraints on the size of it? - I planed to
put it in the upper left corner of a site. It's supposed to be roughly 20% by
20% of the browser-window. Is that too small?
Sorry for asking this, but as a lot of you know, I'm blind and I can't
really control, what I'm doing here.
Kindest regards and any help is appreciated!
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de
Hello all,
Some updates on <http://www.kokkinizita.net/linuxaudio/downloads>:
jmeters-0.2.0
- VU-meter scale replaced by a new one which does
not have the -20dB threshold. Now it will also
move for low-level sounds, and fall back much
more naturally.
- PPM now has the same size as VU. Old one still
available as ppm2.
- Added options to set jack client name and update
rate.
- Bugfix for Makefile, PNGs now get installed in
$(PREFIX)/share instead of /usr/share.
aeolus-0.8.1
- Aeolus-0.8.0 added Midi over Jack support but was
announced on the Aeolus list only IIRC. With 0.8.1
it's official.
- Major cleanup and bugfixes.
- Replaces 0.6.6. as the supported release.
ambdec-0.2.0
- Bugfixes, new collection of config files.
MCP-plugins-0.4.0
- Major cleanup (after 5 years or so).
- Added triple chorus. Same as chorus2 but has three
outputs. Pan L,C,R for a nice stereo effect.
clthreads-2.4.0
- Cleanup.
clxclient-3.6.1
- Cleanup.
- Probably fixes a bug that occurs only when running
in KDE (windows not repainting when exposed).
Many thanks to all who contributed by providing feedback,
bug reports and patches.
The two libs and ambdec now also have an OSX Makefile and
the necessary #ifdefs to make them compile. This is very
experimental. I will provide *no* support for this except
to OSX developers who can provide the required technical
feedback.
Ciao,
--
FA
Laboratorio di Acustica ed Elettroacustica
Parma, Italia
Lascia la spina, cogli la rosa.
As a learning exercise, I made a LADSPA plugin that adds its inputs. I
figured it would be reasonable to call such a thing '+'. Some plugin hosts
don't like that (I was less surprised by the ones that could not handle the
name '<'). This is the LADSPA_Descriptor.Label property. ladspa.h says
"Labels must not contain white-space characters.". Is it unreasonable to
expect to be able to have symbols as plugin labels, or parts of plugin
labels? So this is more of a "what do you think" then a right/wrong answer
kind of thing.
Also, though ladspa.h does not say I cannot write my plugin library in such
a way as to create resources shared by all the instances of my plugins
within one host (say, a shared OSC connection?), would that be acceptable?
Would that break hosts? What about per plugin GUI? If I just made a Makefile
variable for a GUI to launch for a ladspa plugin, if I did not want the
overhead of the full DSSI interface (or if I wanted to use the plugin in a
non DSSI compatible host), would that be beyond the pale for a LADSPA
plugin?
Also, now that GMPI seems all but officially dead, does anyone think DSSI
will be supplanted (or "disposed of", as its name would imply)? What is the
general developer feeling regarding LADSPA/DSSI/LV2? I leave VST out of this
list, because I don't think Linux distros can even legally distribute vst.h.
Hi,
Is there a recognized method for calibrating a sound card?
e.g.
For Playback, one sends a sample .wav PCM file to the sound card, then
measure the analog output from the line-out.
If the sound card itself provides 0dB of Gain, what should be the
measured figure?
Can this be done with a simple AC volt meter?
There seems to be some debate, with regards to ALSA, as to whether the
line-out is at the correct level if one sets all the ALSA mixer controls
to 0dB.
James
The first (beta) release of Jmeters is available at
<http://www.kokkinizita.net/linuxaudio/downloads>
Jmeters is a Jack multichannel audio level meter app.
It looks very similar to meterbridge since it uses the
same pixmaps.
This first release offers VU, PPM and stereo versions of the
same. The stereo versions have two indicator needles on the
same scale. I've never seen a twin VU, but stereo (or M/S)
PPMs *do* exist. Later releases will add bargraph meters,
digital peak indicators for the analog ones, and a stereo
correlation meter.
The main difference to meterbridge is that Jmeters has the
correct ballistics for both the VU and the PPM.
The VU meter measures the average of the absolute value of
the signal, 'average' meaning a second order filter that
reaches 99% in 300ms and overshoots between 1.0 and 1.5%.
It is calibrated to indicate 0dB for a sine wave at -10dB
w.r.t. digital full scale (which is +/-1 peak in this case).
The particular VU scale used is not entirely linear and
starts at -20dB (it's one designed for a passive VU meter
with a diode bridge), so the meter will not move at all
for inputs below that level. Later versions may use a
VU scale designed for an active meter which doesn't have
this threshold.
The PPM is a pseudo-peak meter. It will indicate 80% of
the steady-state value for a 10ms burst, and fall by 24db
in 2.8s. Each scale division (1..7) represents 4dB. It is
calibrated to indicate '7' (+12 dB on the EBU scale) for
0dB FS.
For speech and music with distinct short peaks the PPM
will usually indicate higher. For music with continuous
long notes, and for heavily compressed signals the VU
indicates higher. Both meters require some 'getting used
to' in order to read them correctly.
You can modify the calibration by using the -g(ain) option,
but it should normally not be necessary.
Enjoy !
--
FA
Laboratorio di Acustica ed Elettroacustica
Parma, Italia
Lascia la spina, cogli la rosa.
The 1.0.10 package released a few weeks ago seems to have some packaging
issues (missing files etc...). Therefore a new package has been uploaded
that should fix these issues.
Available at sourceforge:
https://sourceforge.net/project/showfiles.php?group_id=117802
Greets,
Pieter
> jack_capture
> :
> *Added the --meterbridge / -mb option, which automatically
> starts Steve Harris' meterbridge (http://plugin.org.uk/meterbridge/)
> and constantly connects them to the same ports as jack_capture
> is connected to.
Nice - this will save me the hassle of starting meterbridge manually when
setting up for recording and having to make sure that meterbridge's channels
actually match jack_capture's channels.
Thanks for the update!
jonathan
> I'm just playing devil's advocate here, but the Linux audio community
> hasn't exactly been lacking in this area:
>
> http://www.linuxaudio.org/
>
> Is a portal to all kinds of things related to Linux audio (including
> this mailing list).
>
> Not to mention the http://linux-sound.org/ site also.
Let me take this one step further and state that the entire linux-sound.org
database has been ported over into apps.linuxaudio.org with full user access
to maintaining/altering the content which makes linux-sound maintenance
unnecessary (esp. since Dave has effectively decided not to keep it up to
date as often as he would like to). I think it would be nice if we all put
efforts towards a common goal, especially since linuxaudio.org is all about
the community. If there is an aspect of the lao domain you don't like, you
are more than welcome to contribute...
That being said, as always, we continue to be in dire need of
assistance/support in making linuxaudio.org better. This is why I perceive
the fragmentation of community resources to be moving us farther away from
the place where we ought to be and where the consolidated online presence
would be truly useful and meaningful to a community as small as ours.
Best wishes,
Ivica Ico Bukvic, D.M.A.
Director, Linuxaudio.org
Virginia Tech
Dept. of Music - 0240
Blacksburg, VA 24061
(540) 231-6139
(540) 231-5034 (fax)
ico(a)linuxaudio.org
www.linuxadio.org