Hi,
I wrote some code (in C++) using JACK1 API. It was quite easy to do that
with a plenty of example files.
Recently, I tried to utilize C++ libraries provided in JACK2 because I
don't like mixing OO code with C api. There are a lot of C++ classes in
JACK2 but I'm not able to link/include them.
For example: instead of #include <jack/jack.h> I'm trying to #include
"jack2/JackServer.h".
There are no example files.
What am I doing wrong? Or is it a bad way of using JACK2?
Thanks,
Vaclav
And finally, for the wrap of the pre-LAC2015@JGU-Mainz [1] release
party, no other than the 'crown jewel' of the whole Qstuff* bunch ;)
Qtractor 0.6.6 (lazy tachyon beta) is out!
Release highlights:
* LV2 and VST plugins GUI position persistence (NEW)
* MIDI clip editor record/overdub note rendering (FIX)
* VST plugin recursive discovery/search path (NEW)
* VST-shell sub-plugins support (FIX)
* also some old and new lurking bugs squashed.
Qtractor [2] 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 [3]) for audio and the Advanced Linux Sound
Architecture (ALSA [4]) for MIDI are the main infrastructures to evolve
as a fairly-featured Linux desktop audio workstation GUI, specially
dedicated to the personal home-studio.
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.6.tar.gz
- source package (openSUSE 13.2):
http://download.sourceforge.net/qtractor/qtractor-0.6.6-16.rncbc.suse132.sr…
- binary packages (openSUSE 13.2):
http://download.sourceforge.net/qtractor/qtractor-0.6.6-16.rncbc.suse132.i5…http://download.sourceforge.net/qtractor/qtractor-0.6.6-16.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 really 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 [5]) version 2 or later.
Change-log:
- MIDI clip record/reopen to/from SMF format 0 has been fixed.
- LV2 and VST plugins GUI editor widget position is preserved across
hide/show cycles.
- Added application description as freedesktop.org's AppData [6].
- Added a "Don't ask this again" prompt option to zip/archive extrated
directory removal/replace warning messages.
- MIDI clip editor (aka. piano-roll) gets lingering notes properly shown
while on record/overdubbing.
- Current highlighted client/port connections are now drawn with thicker
connector lines.
- Fixing segfaults due to QClipboard::mimeData() returning an invalid
null pointer while on Qt5 and Weston.
- Return of an old hack/fix for some native VST plugins with GUI editor,
on whether to skip the explicit shared library unloading on close and
thus avoid some mysterious crashes on session and/or application exit.
- Force reset of plugin selection list when any of the plugin search
paths change (in View/Options.../Plugins/Paths).
- Recursive VST plugin search is now in effect for inventory and
discovery on path sub-directories (VST only).
- Non-dummy scannig for regular VST, non-shell plugins, were doomed to
infinite-loop freezes on discovery, now fixed.
References:
[1] LAC2015@JGU-Mainz - Linux Audio Conference 2015
The Open Source Music and Sound Conference
April 9-12 @ Johannes Gutenberg University (JGU) Mainz, Germany
http://lac.linuxaudio.org/2015/
[2] Qtractor - An audio/MIDI multi-track sequencer
http://qtractor.sourceforge.net
[3] JACK Audio Connection Kit
http://jackaudio.org
[4] ALSA, Advanced Linux Sound Architecture
http://www.alsa-project.org/
[5] GPL - GNU General Public License
http://www.gnu.org/copyleft/gpl.html
[6] AppData Specification
http://people.freedesktop.org/~hughsient/appdata/
See also:
http://www.rncbc.org/drupal/node/879
Enjoy && keep the fun.
--
rncbc aka. Rui Nuno Capela
Hi,
io GNU/Linux 2015.01 has been released (32 and 64-bits).
io GNU/Linux is a Live DVD/USB based on Debian Sid and focused on multimedia.
This new version includes an installer (without support for EFI/GPT based
systems for now)
Kernel 3.16.7-ck7, Jack2 as default sound server, e18 as desktop environment
and a big collection of installed software... Full persistence for USB install
(with encryption) and more cool stuff...
For more infos: manual, packages list, screenshots, video etc... Check:
-> http://io.gnu.linux.free.fr/ (work in progress)
-> https://sourceforge.net/projects/io-gnu-linux/
Feedbacks welcome, enjoy :)
MK
I just bought the drumdrops mapex samples to create a kit in Hydrogen...
They are gonna be great with the direct/overhead/room functionaly in Hydrogen.
The set comes with Round Robin and with a bit of thinking I came up
with 2 possible design to get this functionality in.
COMPLEX:
- Add a list of samples in the Layer object ; the sampler will chose
randomly one sample of the list when the instrument layer is played
- GUI wise, when a user click edit/delete layer, a form will popup
asking the user which of the sample he wants to edit/delete
The pros is that data structure wise it is really clean:
Instrument->Components->Layers->RoundRobin->Samples
The cons is that GUI wise it's not very clear for the user what's
going on, and it asks for more development.
SIMPLE
- Increase the number of layer per instrumebr to 64
- A check box is added in the instrument to active round robin
- If round robin is activated, layers that share the same velocity
range will be played randomly. If round robin is not activated, the
layers that share the same velocity range are player simultaneously
The pros is that the changes are very minimum to Hydrogen can be
implemented in a couple of hours. In addition it is simpler for the
user to see what's going on (checkbox and the visual of layers).
So what do you guys think?
I wouldn't mind coding the simple options, cannot wait to put all the
samples i just bought into this!
Aurélien
Hi, some internal functions are globals and I think it is not what you want
(jack2 seems ok).
For example, a naive way to forbid the creation of other jack clients is:
# tested with jack 0.124.1
gcc -ljack private_club_mode.c
./a.out # prints "JACK compiled with System V SHM support."
echo $? # 0
jack_lsp # no more clients please, segfault (jack_client_open_aux)
/* private_club_mode.c */
#include <jack/jack.h>
int jack_register_server(const char *, int);
int main() {
return jack_register_server("umpa", 0xDADA);
}
Tito