While porting AlsaModularSynth modules to LV2 plugins, I was wondering
something... AMS has some similar modules where the only thing changing is
the number of inputs (Mixer with 2, 4 or 8 inputs), the number of outputs
(CV source with 2, 4 or 8 outputs) or the number of VCOs/Envs/etc.
(DynamicWaves with 4, 8 or 16 VCOs).
In AMS there is only one class for such plugins and AMS would pass the
number of inputs/outputs/sections/etc. when creating the different modules.
I couldn't find an easy way to reproduce this in LV2 plugins, therefor so
far I have been creating different LV2 plugins for each and everyone of
them and doing a lot of copy/past/editing.
That let me to wonder if there wouldn't be a better way.
The pros:
- it's easier to maintain if I have only one class
- it's a lot less boring than doing a lot of copy/past/editing - I have
been doing it only for simple ones so far like Mixers or CV source, but now
I'm starting to port DynamicWaves which is way more complex
The Cons:
- I have the feeling that gaining on code simplicity actually decrease the
performance when the plugin is running - i can imagine it to be less
strainuous on the CPU to have simple code instead of dealing with loops and
arrays
Being a rare case I can't imagine the need to have this supported directly
in LV2, but I was wondering if people with more talent than me in creating
audio software might have some advice?
Aurélien
I don't know if anyone here has heard about this. I discovered the link quite by
accident.
http://lkml.iu.edu/hypermail/linux/kernel/1411.3/02866.html
If you're using 3.17 it might be an idea to step back to 3.16, which so far
seems to be OK. I've been using 3.16 for several months now and not had any
problems.
--
Will J Godfrey
http://www.musically.me.uk
Say you have a poem and I have a tune.
Exchange them and we can both have a poem, a tune, and a song.
Aw, snap!
Wait, there's no big deal (nor chromium's) cosmic (mis)alignment
being announced here now. Rest calm. Sorry to delude some of you :)
But, there's one (notable) leap on this tiny side and part of the
universe... (or is it a multiverse? move along...) What I really want to
tell is all about this happening and none else's freaking business:
Qtractor 0.6.4 (baryon throne beta) is released!
Release highlights:
* Punch-in/out over loop-recording/take modes (NEW)
* Latch/momentary MIDI Controllers toggle mode (NEW)
* JACK client/port pretty-name (metadata) support (NEW)
* Custom style and color themes (NEW)
* Mixer strip multi-row layout (NEW)
* Muted audio tracks monitoring on playback (FIX)
* Clip fade-in/out resize on time-stretch (FIX)
As for the clueless (as if there's any):
Qtractor is an audio/MIDI multi-track sequencer application written
in C++ with the Qt4 framework. Target platform is Linux, where the Jack
Audio Connection Kit (JACK) for audio and the Advanced Linux Sound
Architecture (ALSA) for MIDI are the main infrastructures to evolve as a
fairly-featured Linux desktop audio workstation GUI, specially dedicated
to the personal home-studio.
Well, although this being yet another milestone--if one may call it
that way--it also makes it official (yes, deeply engraved in stone) and
definitive as a migration to Git can be, as for source-code control and
management (it's a dirty job I know, but someone has to do it, right?).
Nevermind. It's done.
Meanwhile, please, don't ever hesitate to ask whether any of the
above does affect you some way or another. Or maybe anything else, yay?
Indeed, the puzzled you feel, the better :)
Website:
http://qtractor.sourceforge.net
Project page:
http://sourceforge.net/projects/qtractor
Downloads:
http://sourceforge.net/projects/qtractor/files
- source tarball:
http://download.sourceforge.net/qtractor/qtractor-0.6.4.tar.gz
- source package (openSUSE 13.2):
http://download.sourceforge.net/qtractor/qtractor-0.6.4-14.rncbc.suse132.sr…
- binary packages (openSUSE 13.2):
http://download.sourceforge.net/qtractor/qtractor-0.6.4-14.rncbc.suse132.i5…http://download.sourceforge.net/qtractor/qtractor-0.6.4-14.rncbc.suse132.x8…
- quick start guide & user manual (see also: the wiki):
http://download.sourceforge.net/qtractor/qtractor-0.5.x-user-manual.pdf
- wiki (help wanted!):
http://sourceforge.net/p/qtractor/wiki/
Weblog (upstream support):
http://www.rncbc.org
License:
Qtractor is free, open-source software, distributed under the terms
of the GNU General Public License (GPL) version 2 or later.
Change-log:
- Fixed some old loop-recording clip drawing glitches.
- Current assigned track/channel instrument definition names for MIDI
controllers, note keys, RPN and NRPN, are now in effect on the MIDI clip
editor drop-down lists, whether available.
- Clip/Take/Range... input dialog values are now properly sanitized as
long to prevent invalid take/folding ranges.
- Audio capture/export file type default now set to "wav".
- Extending punch-in/out over loop-recording/takes modes.
- Make audio tracks monitoring always flow while playback is rolling,
independently of their mute/solo state.
- Fixed undo/redo conversion of audio clip offsets under (automatic)
time-stretching eg. due on tempo changes. (ticket by Holger Marzen, thanks).
- Latch/momentary MIDI Controllers toggle mode introduced (a request by
AutoStatic aka. Jeremy Jongepier, thanks).
- JACK client/port pretty-name (metadata) support is being seamlessly
introduced. (EXPERIMENTAL)
- Audio frame/MIDI time drift correction is now an option on
View/Options.../MIDI/Playback/Enable MIDI queue time drift correction.
- Transport auto-backward feature now honoring last position playback
was started.
- Introducing brand new application user preferences on
View/Options.../Display/Options/Custom style and color themes (eg.
"KXStudio", by Filipe Coelho aka. falkTX).
- Mixer widget gets automatic multi-row strip layout.
- Clip fade-in/out now follows time-stretch resizing, via
shift/ctrl+click and drag one of its edges.
- Fixed a typo causing FTBFS when VST plug-in support is explicitly
disabled (./configure --disable-vst).
See also:
http://www.rncbc.org/drupal/node/834
Enjoy && have plenty of fun.
--
rncbc aka. Rui Nuno Capela
The Guitarix developers proudly present
Guitarix release 0.32.0
For the uninitiated, Guitarix is a tube amplifier simulation for
jack (Linux), with an additional mono and a stereo effect rack.
Guitarix includes a large list of plugins[*] and support LADSPA / LV2
plugs as well.
The guitarix engine is designed for LIVE usage, and feature ultra fast,
glitch and click free, preset switching, full Midi and/or remote
controllable (Web UI not included in the distributed tar ball).
Here is the " Ultimate Guide to Getting Started With Guitarix
<http://libremusicproduction.com/articles/ultimate-guide-getting-started-gui…>"
This release fix the bug #16 "empty effect menu with clear-skin option",
add new tuning scales (19- and 31-TET) to guitarix and Gxtuner.lv2,
add Midi Clock and Jack Transport support to guitarix and move a couple
of controllers from
unit:ms|hz to unit:bpm, so that they could easy synced with the Midi
Beat Clock.
and introduce a new LV2 plug:
* GxMultiBandReverb
Please refer to our project page for more information:
http://guitarix.sourceforge.net/
Download Site:
http://sourceforge.net/projects/guitarix/
Forum:
http://guitarix.sourceforge.net/forum/
Please consider visiting our forum or leaving a message on
guitarix-developer(a)lists.sourceforge.net
<mailto:guitarix-developer@lists.sourceforge.net>
regards
hermann
Is there a way to retrieve this info (and others, ideally) from the
host, thus removing the need for a "midi channel" control port?
Also, is there a way to tie the "volume" controller of the host (in
Qtractor's case, the volume fader of the mixer strip) to one "volume"
control port of the plugin, thus removing the need for the "control
mode" control port ?
Yes because you see, here in my Qtractor (latest SVN - but it has always
been that way) I can either edit the plugin (about 50% of my plugins
behave that way) controls but then the mixer's volume is inoperant, or
control the volume w/ said mixer but NOT the plugins controls. How can I
have my cake and eat it?
Ta-ta
--Phil
Hey list,
I'd like to be able to stream DTS-HD Master Audio bits out the HDMI port
in their compressed form - not decompressed to LPCM. I'll let the
receiver handle the decoding.
From what I can gather, this may be possible with the ALSA API,
provided the HDMI port is >= 1.3 and the audio card supports high
bit-rate (HBR).
Is my thinking way off? Is there a more suitable API or approach for
this? If it requires specific hardware, I am less concerned about that
as I am the feasibility of the end goal.
Regards,
--
Kip Warner -- Senior Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
Hi
I try to fetch the bpm from the Midi Clock, and stumble over "jitter".
So I start to collect data for a larger amount of time, but it wouldn't
help.
Here is what I do:
else if ((in_event.buffer[0] ) == 0xf8) { // midi beat clock
clock_gettime(CLOCK_MONOTONIC, &ts1);
time0 = (ts1.tv_sec*1000000000.0)+(ts1.tv_nsec);
static int collect = 0;
static int bpm = 0;
bpm += ((1000000000 / (time0-time1) / 24) * 60); // nanosec
to bpm
collect+=1;
if (collect >=30) {
set_bpm_val(bpm/collect);
collect = 0;
bpm = 0;
}
timed = time0-time1;
// printf("Midi clock event %X time0 %f time1 %f timed %f
ts1.tv_nsec %lu\n",in_event.buffer[0], time0, time1, timed, ts1.tv_nsec);
time1 = time0;
} else if ((in_event.buffer[0] ) == 0xfa) { // midi clock start
printf("Midi clock start\n");
//set_ctr_val(MIDICLOCK, 1);
} else if ((in_event.buffer[0] ) == 0xfb) { // midi beat
clock continue
//set_ctr_val(MIDICLOCK, 1);
printf("Midi clock continue\n");
}else if ((in_event.buffer[0] ) == 0xfc) { // midi beat clock
stop
//set_ctr_val(MIDICLOCK, 0);
printf("Midi clock stop\n");
} else {
printf("CC number %x\n", in_event.buffer[0] );
}
tim0 and time1 are set as double.
I experience jitter around 1 or 2 beats around the "original bpm set in
the master.
When master is set to 360 I receive 374.
How do you usually fetch the bpm from Midi Clock, any pointer will be
welcome.
regards
hermann
Hi LADs
This is an invitation for all those who are interested in the Control Chain system, the MOD approach to external hardware controllers.
The Control Chain interface was conceived with the LV2 control ports properties in mind. It tries to dis-abstract the LV2 Control structure in tangible (and material) form.
The first purpose of the Control Chain was to connect the MOD and its external peripherals. The MIDI system is very generalistic and we didn’t want to design a “MIDI Clone”. As the LV2 standard enables the developers to add important metadata to describe the Control Ports, the MOD platform makes use of all this info to offer a good user experience to the musicians.
A good example is the footswitch. The Control Chain footswitch has built in its firmware different behaviours depending on port properties. It alternates the state of toggles controls, it can trigger an event, it can run the items of an enumeration list and it can also measure time and offer TapTempo for time based units.
All this is accomplished with the same physical actuation - the pressing of the button - but according to the control that has been addressed to it. The GUI decides which actuator it offers the user for each of the Controls.
The physical interface of the Control Chain devices is an RS-485 full-duplex serial line running at 1Mbit/sec. Currently up to eight devices can be daisy chained and by use of the RJ-45 cable we also power the devices ( 1 pair for input,1 for output and 1 for power supply).
After some development we came to the conclusion that such a protocol could be extended for virtual devices in the GUI as well and this would make the development of plugins interfaces much easier.
The reason for sharing this with the Linux Audio community is to involve as much people as possible in electing the needed features for the plugins.
At this current state, the Control Chain supports only Input ControlPorts. People have been asking about the Tuner and other plugins that have Control Outputs.
So we’re opening up the discussion to set the requirements and possibilities that shall be implemented.
The discussion is to happen on our mailing list:
http://portalmod.com/cgi-bin/mailman/listinfo/developers <http://portalmod.com/cgi-bin/mailman/listinfo/developers>
and at the #portalmod IRC channel @ freenode.
Hope to see you all there
Kind regards
Gianfranco
The MOD Team
Good morning lads,
among the people still using LADSPA, either directly or wrapped into
more fashionable plugin APIs, is anyone actually dependent on
run_adding()?
(Asking, of course, because I intend to drop support for it.)
Thank you,
Tim