As a word beforehand: I am a somewhat experienced C++ programmer but brand
new to developing with Jack.
I'm somewhat experienced in Using Jack audio tho.
I am rather ambitious and don't want to make stupid beginners mistakes so I
often ask super basic (some times really dumb) questions.
I will briefly talk about my current project so you maybe can suggest
something better or understand my thoughts better.
I'm pretty shure most of you guys have heard of automation tools like
autohotkey or something similar. I want to build such an automation tool
but tailored for midi devices instead of keyboards.
I want to have the ability to read information from a config file what so
ever. Actually thinking about a config script of sorts, instead of
json/yaml/toml files. (that's not the point tho)
I also want to be able to process multiple midi controllers with one
instance like autohotkey can have multiple instances running and supports
multiple scripts per instance.
I want to be able to register callbacks from the scripting engine that are
called if a message is received.
I want to support multiple instances of the same device (in my example I
use novation Launchpads).
I want to be able to have a function setup the device. For example change
modes or setup basic elements or ensure the device will have the right
firmware version for the script. (if the device supports it)
I want the Program to appear as one Jack client with one input and one
Output per midi device and optionally stereo outputs per Device.
Now I want to talk about my thoughts about the structure of my program:
First of all I will be working with C++14 or C++17. And want to get it
working at all before making it multithreaded and efficient.
I have some kind of main Class that is responsible for reading the main
config file/script and creates a vector of Device Objects.
I will call this main Class DeviceManager.
The device manager will run the main process function of jack.
It will receive midi events from all devices and will pass a vector of
vectors with raw midi data to the process function per device.
The Device object keeps a registry of callbacks and will call them from its
If I want to Send midi data or audio data to the Hardware it will push
vectors of raw midi data onto a queue and the process function will flush
the queue of one device per call.
I will have to implement my own midi clock per device (that controls the
blink and fade speed on the launchpad. It may be useful on other
Now my real questions:
Would it be better to have the Device manager pass a reference to the
Devices and run every Device in its own thread with its own process
How would I check if a external jack port exists? So it can wait until for
example a device is plugged in and comes up or a program is started.
What is the most effective way to send larger amounts of midi data?
Is there a good C++ wrapper around jack that would save me some work? I
already know about juice but I deemed it to big for the things I would use
Best regards Stefan Schmelz
The FFADO project is pleased to make FFADO version 2.4.3 available. This is
a bug-fix release to address some minor problems which have been noted in
* Profire-610: support line outs controlled with the master volume. Thanks
to Donny Yang.
* ffado-mixer: removed unnecessary import. Thanks to David Runge.
* ffado-mixer: make compatible with Python 3.8. Thanks to David Runge.
* ffado-mixer: locking fix. Thanks to Claudia Krelm for testing efforts
which lead to a solution.
FFADO version 2.4.3 is available as a tarball:
(on behalf of the FFADO project)
Dear Jack Audio folk,
I am trying to find and download the archives for all the various
Jack-related mailing lists that have existed. This way, I can search
and browse them offline.
However, I have so far been unable to find downloadable archives of the
following two mailing lists:
- "Jack-Devel" or "Jackit". According to Nabble, a list of this name
used to exist, with the email address jack-devel(a)lists.jackaudio.org .
However, http://lists.jackaudio.org no longer resolves.
- "Jackit-devel". According to Nabble, a list of this name used to
exist, with the email address Jackit-devel(a)lists.sourceforge.net .
However, although the Sourceforge still has an "info" page about that
list (https://sourceforge.net/projects/jackit/lists/jackit-devel), the
"Browse and search the list archives" link
(https://sourceforge.net/p/jackit/mailman/jackit-devel/) returns an
HTTP 404 not found error.
I would be grateful to know if downloadable archives of those two lists
exist, and where to find them.
Alternatively, if you have a local archive (e.g. in your email client),
might you be willing to export this as an mbox or a zipped maildir or
similar, and upload it somewhere I might be able to retrieve it (e.g.
Gitlab or wherever)?
Finally, if you think my request would be more likely to be answered on
a different mailing list (e.g. linux-audio-user(a)lists.linuxaudio.org),
please let me know. I'm only just starting to learn who knows what and
where they hang out, within the Linux audio community.
Many thanks in advance!
A: When it messes up the order in which people normally read text.
Q: When is top-posting a bad thing?
() ASCII ribbon campaign. Please avoid HTML emails & proprietary
/\ file formats. (Why? See e.g. https://v.gd/jrmGbS ). Thank you.
hi every one,
I have been trying to get a midi drum machine connected to Hydrogen. The
first time was not a problem through Qjackctl. second time they would not
I tried some tutorials on youtube but now I have lost the alsa tab in the
Connect screen. I thing a2jmidid -e was the command that stuffed it.
I have tried uninstalling and purgering Jack but after reinstalling it is
Can some one help or at least point me in the right direction?
I am using Ubuntu Studio based on Ubuntu 16.04.6 LTS. I haven't upgraded
due to all the unfinished projects I have going.
I made a Prototype that uses jack directly now.
I decided on working with Jack directly because I want to implement some
features that would require rewriting parts of rtmidi or portaudio for my
I want to enumerate ports and get raw ports, so I can have control over
I took a look into the rtmidi source, looking for the part how they get all
the ports that jack knows about.
I did nothing that would help me, so how could I do something about this?
I have tried the c++ version before but it was not working for me, I quite
like the python version tho.
Sadly the best performing Python code I got was too slow for me, so I opted
My application is not really a real-time one, but it would be bad if you
would see larger delays. Also I want to have a c++ project to practice ci
Thanks for your reminder tho.
I want jack to start at bood via systemd on a RPI4
but when I run qjackctl it does not see jack running (while it is)
if I start jack from the command line , qjackctl sees jack running
I tried sudo qjackctl, it crashed the RPI4
any help appreciated
Description=Jack audio server
#ExecStart=/usr/bin/jackd -T -ndefault -dalsa -dhw:0 -r48000 -p1024 -n2
ExecStart=/usr/bin/jackd -R -P20 -dalsa -dhw:0,1 -r49000 -p1024 -n2
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
In my project, I want to route the audio between audio
applications(Windows 10). I am not able initiate the audio routing unless
my audio apps are using ASIO audio drivers. Can you help me with this? I
want to route audio through applications which uses non-asio drivers.
Please advise if any alternatives are available.