rncbc / qjackctl Goto Github PK
View Code? Open in Web Editor NEWQjackCtl - JACK Audio Connection Kit Qt GUI Interface
Home Page: https://qjackctl.sourceforge.io
License: GNU General Public License v2.0
QjackCtl - JACK Audio Connection Kit Qt GUI Interface
Home Page: https://qjackctl.sourceforge.io
License: GNU General Public License v2.0
QjackCtl - JACK Audio Connection Kit Qt GUI Interface ----------------------------------------------------- QjackCtl is a simple Qt application to control the JACK sound server (http://jackaudio.org), for the Linux Audio infrastructure. Written in C++ around the Qt framework for X11, most exclusively using Qt Designer. Provides a simple GUI dialog for setting several JACK server parameters, which are properly saved between sessions, and a way control of the status of the audio server. With time, this primordial interface has become richer by including a enhanced patchbay and connection control features. Homepage: https://qjackctl.sourceforge.io http://qjackctl.sourceforge.net License: GNU General Public License (GPL) Requirements ------------ The software requirements for build and runtime are listed as follows: Mandatory: - Qt framework, C++ class library and tools for cross-platform application and UI development https://qt.io/ - JACK Audio Connection Kit https://jackaudio.org/ Optional (opted-in at build time): - ALSA, Advanced Linux Sound Architecture https://www.alsa-project.org/ Installation ------------ Unpack the tarball and in the extracted source directory: cmake [-DCMAKE_INSTALL_PREFIX=<prefix>] -B build cmake --build build [--parallel <Njobs>] and optionally, as root: [sudo] cmake --install build Note that the default installation path (<prefix>) is /usr/local . Configuration ------------- QjackCtl holds its settings and configuration state per user, in a file located as $HOME/.config/rncbc.org/QjackCtl.conf . Normally, there's no need to edit this file, as it is recreated and rewritten everytime qjackctl is run. Bugs ---- Probably plenty still, QjackCtl maybe considered on beta stage already. It has been locally tested since JACK release 0.98.0, with custom 2.4 kernels with low-latency, preemptible and capabilities enabling patches. As for 2.6 kernels, the emergence of Ingo Molnar's Realtime Preemption kernel patch it's being now recommended for your taking benefit of the realtime and low-latency audio pleasure JACK can give. Support ------- QjackCtl is open source free software. For bug reports, feature requests, discussion forums, mailling lists, or any other matter related to the development of this piece of software, please use the Sourceforge project page (https://sourceforge.net/projects/qjackctl). You can also find timely and closer contact information on my personal web site (https://www.rncbc.org). Acknowledgments --------------- QjackCtl's user interface layout (and the whole idea for that matter) was partially borrowed from origoinal Lawrie Abbott's jacko project, which was taken from wxWindow/Python into the Qt/C++ arena. Since 2003-08-06, qjackctl has been included in the awesome Planet CCRMA (http://ccrma-www.stanford.edu/planetccrma/software/) software collection. Thanks a lot Fernando! Here are some people who helped this project in one way or another, and in fair and strict alphabetic order: Alexandre Prokoudine Kasper Souren Andreas Persson Kjetil Matheussen Arnout Engelen Ken Ellinwood Austin Acton Lawrie Abbott Ben Powers Lee Revell Chris Cannam Lucas Brasilino Dan Nigrin Marc-Olivier Barre Dave Moore Mark Knecht Dave Phillips Matthias Nagorni Dirk Jagdmann Melanie Dominic Sacre Nedko Arnaudov Fernando Pablo Lopez-Lezcano Orm Finnendahl Filipe Tomas Paul Davis Florian Schmidt Robert Jonsson Fons Adriaensen Robin Gareus Geoff Beasley Roland Mas Jack O'Quin Sampo Savolainen Jacob Meuser Stephane Letz Jesse Chappell Steve Harris Joachim Deguara Taybin Rutkin John Schneiderman Wilfried Huss Jussi Laako Wolfgang Woehl Karsten Wiese A special mention should go to the translators of QjackCtl (see TRANSLATORS). Thanks to you all. -- rncbc aka Rui Nuno Capela rncbc at rncbc dot org https://www.rncbc.org
Hi friends,
One of the dealbreakers preventing me from switching to QJackCtl is there is no option to ignore "self connect requests".
Sometimes I need to restart the engine, and when that happens, there appears to be some sort of request by jack (or the hardware; not sure) to set up initial connections.
But when this happens, it messes up all the work I've done setting up connections the way I prefer. I must then select all, disconnect all, then reload my saved connections.
It's a minor inconvenience but still several clicks extra work, which I'm sure is maddening to newbies (it was to me before I realized what was happening).
As an example, here's a screenshot of the tool I currently use: Claudia:
When I select that option "Ignore all self-connect requests", no additional connections are ever made just because I restart jack or other modules. Thus, when my DAW comes back up, my previous connection state reappears instantly.
1.Ie setup audio interface a auto detect and rescan button for detecting audio interface if user start jack before they plugging in the audio interface.
Kubuntu 19.04
I'm getting this error on make:
g++: error: /usr/lib/x86_64-linux-gnu/libGL.so: No such file or directory
searching for it is seems all kind of softwares have this issue when using the NVIDIA drivers. For example here: RobotLocomotion/drake#2087
The AppImage works though.
Hi, I have Ubuntu 18.04 and I am trying the newest version (installing from source).
I did everything as the install said. When I get run $ /usr/local/bin/qjackctl
nothing happens. No output, nothing. Can you help me debug this somehow?
Also - have you considered making an appImage?
Qjackctl is using the German translation for "default" as the server name in Ardour, I guess other applications are also affected in a similar way.
See here:
Name: (voreingestellt)
http://funkyimg.com/view/2dWht
the issue is that it compares the contents of the Name field to the string "(default)"
in this case use it (voreingestellt) instead, which is simply the German translation of default.
I guess other languages are also effected.
thanks a lot to las, who detect that issue.
Hi.
On Ubuntu 18.04 (GNOME), qjackctl works except that the system tray menu does not.
What happens: I launch qjackctl, I see the app opening, and the system tray menu appears where my mouse currently is. I then have to press Escape to make it disappear.
Right clicking on the qjackctl icon in the panel doesn't bring up the usual menu. I have to double click the icon to have the window appear.
qjackctl version in ubuntu is 0.4.5, but I backported 0.5.0 from debian unstable and I get the same issue.
I can post screenshots / screencasts if needed if you have trouble understand what I tried to describe above :)
The patchbay is very useful for live performance, however patchbay profiles can be activated only via the GUI, which makes it hard to automate via scripting.
It would be nice if QjackCtl offered a way to activate patchbays on the fly, without restarting the JACK server.
I'm not asking to change the current -a
option if that means breaking some people's current setups, but maybe a new option like this:
qjackctl --patchbay-profile=Song1.xml
would be very, very useful to all people who make their own live setups without relying on DAWs.
Thank you for reading πΈ
I want to compile the source code of qjackctl. Need to know the installation requirement(with there specific version) for windows or ubuntu. Thanks in advance.
Potentially a n00b question, but are we supposed to generate the configure script ourselves from configure.ac?
Otherwise, configure script runs fine.
[root@air qjackctl-git]# make
make[1]: Entering directory /tmp/qjackctl-git' cd src/ && ( test -e Makefile || /opt/Qt/5.11.1/android_x86/bin/qmake -o Makefile /tmp/qjackctl-git/src/src.pro ) && make -f Makefile Project ERROR: Unknown module(s) in QT: dbus x11extras make[1]: *** [sub-src-make_first] Error 3 make[1]: Leaving directory
/tmp/qjackctl-git'
make: *** [src/qjackctl] Error 2
It's cool that in the Graph window one can rename the ports by double clicking on it or rightclick, Rename.
It would be even greater if the new name would be reflected elsewhere too. Renaming in the Graph could actually run jack_property to change the port metadata.
The build fails on Mac OS 10.11.5 with following error (relevant excerpt from the build log):
qjackctlInterfaceComboBox.cpp:213:21: error: variable length array of non-POD
element type 'QString'
QString hostNames[iNumHostApi];
A quick search on Google of course revealed a useful thread on Stack Overflow: https://stackoverflow.com/questions/20461424/error-variable-length-array-of-non-pod-element-type-string
This is probably due to the fact that LLVM/Clang (default compiler on Mac OS X) is a bit stricter than GCC. I've successfully built qjackctl with the suggestion in the Stack Overlfow answer. I will provide a pull request shortly.
In the FreeBSD port (with --disable-alsa_seq
) I am getting:
qjackctlAlsaGraph.cpp:356:6: error: use of undeclared identifier 'qjackctlAlsaGraph'
void qjackctlAlsaGraph::resetPortTypeColors (void)
^
qjackctlGraphForm.cpp:220:41: error: incomplete type 'qjackctlAlsaGraph' named in nested name specifier
m_ui.viewColorsAlsaMidiAction->setData(qjackctlAlsaGraph::midiPortType());
^~~~~~~~~~~~~~~~~~~
./qjackctlGraphForm.h:31:7: note: forward declaration of 'qjackctlAlsaGraph'
class qjackctlAlsaGraph;
^
qjackctlGraphForm.cpp:390:8: error: member access into incomplete type 'qjackctlAlsaGraph'
m_alsa->resetPortTypeColors();
^
Hi, WIN32 is not always defined:
https://sourceforge.net/p/mingw-w64/mailman/message/31850993/
For instance, if compiling with --std=c++11, WIN32 is not defined. On the other hannd, --std=gnuc++11 WILL define WIN32. So it's a bit random.
_WIN32 is always safe to use though.
Here's a commit you can cherry pick:
kmatheussen/qjackctl@1b3d8a1
Thank you.
Hi,
Today I was going to create some music - Started up my dedicated DAW machine and I encountered a very strange problem with qjackctl:
When I run it from console Xorg just hangs there, until I press Ctrl-C... I thought it had something to do with my IRQ prioritization on the realtime-stuff, so I logged in from another machine using ssh -X and started qjackctl from there. Then the Xorg issue occurred on THAT machine too... Everything freezes until I killed the qjackctl process. What happened here?
Very anxious for some clarification/workaround. It seems to be a GUI issue?
... I don't get anything in logs. Nor console output.
Kind regards,
/AiO
In 0.6.0.9git.407b3a after changing the preset, I can't activate it with the OK or Apply buttons because they are still greyed out. I have to press Cancel, after which the Dialog pops up "Some settings have been changed. Do you want to apply these changes?" There I can Apply them.
After choosing a different Preset, a warning notification is displayed that restarting the JACK audio server is necessary, and the QjackCtl system tray icon changes into a yellow exclamation mark.
After stopping/starting the server, the system tray does not revert back to its normal state.
Xubuntu 18.04 LTS, QjackCtl 0.6.2.
Hello Qjackctl team,
How can i translate it to brazilian portuguese or help doing?
Obrigado.
Hi Rui,
Line 7 in 61dfaf3
It looks like there is a mistake here since there isn't such a libjack2-dev
package on Debian's repos. It is probably libjack-jackd2-dev
you had in mind.
Note that there is libjack-dev
too.
If you really want to enforce building with jack2, then a libjack-jackd2-dev
build-depend sounds what you want here. They can be both listed in the debian/control's build-depends field with: libjack-jackd2-dev | libjack-dev
if needed to provide alternative.
Hope that helps.
Note that the same mistake a few lines above in: Depends: libjack2, ${shlibs:Depends}, ${misc:Depends}
which is supposed to be Depends: jackd, ${shlibs:Depends}, ${misc:Depends}
Hi all
Iβm very new to raspberry and raspbian, I followed the installation process on
https://qjackctl.sourceforge.io/qjackctl-downloads.html#Downloads
And after go to
https://qjackctl.sourceforge.io/qjackctl-index.html#Installation
I canβt proceed because I donβt know what I have to do with ./configure [- - prefix=PREFIX]
If I star only ./configure
terminal start but ending with
configure: error: qmake-qt5 not found in current PATH
and after I canβt go on with make
Could somebody explain me all the installation process. (I have the same issue when I follow the README)
Right now you can only Create (New), Load, Save and Activate patchbay profiles from the Patchbay menu. It'd be nice if there was an option to delete* them as well.
* = which asked for confirmation, of course, otherwise one could accidentally delete their beloved patches! π
I start qjackctl at every login; the window shows on every startup.
how to enable to show tray icon?
Hi,
I am wondering if there is a user manual for this program?
My specific questions are:
but I have other questions which I think could be easier answered by reading a manual.
I am currently using 0.5.0 from debian (unstable) and try to make sense of the session window. Is there an article how this works. My intent was to add a bunch of programs (for illustration vkeybd and qsynth) to be able to launch them with one click. Ideally I would also associate a patchbay config for it to active the connections. Is that possible?
Right now I can add programs, but I am not sure how to 'activate' them?
Maybe some part of the confusion is that I am not sure why is referred to by 'Infra-Client'.
This problem affects all gui, including tray icon.
After tray context menu is opened, it will close by click outside, but all following mouse and keyboard input is ignored. For keyboard - impossible to change focus or input to text fields, for mouse - heh, even cursor doesn't change between text/pointer forms when moved in/out of text entry field.
To restore input, mouse click by any button is required at any gui part. Scroll events (mouse buttons 4/5) don't work just like keyboard.
Edit (landed to enter early): after input is restored, keyboard focus change is still broken, although after some magick clicks sequence it is ok too. Tried live version as well, besides recent release.
When building qjackctl I have always built with jack1 because that was everything that was in the repository for my Linux distro, Solus. I manage to get Jack2 packaged but I don't know how to figure out how to build both jack1 and jack2 support. The two packages conflicts with each other so there is not possible to install them at the same time. What should I do?
Hi. There is a crash in the graph editor in a particular situation.
It seems in relation with client name.
In this repository is a flanger plugin realized with faust2lv2: https://github.com/linuxmao-org/greffons-faust
It's an educational-purpose source with non-english text, containing accented characters in the name. When it's instantiated, it seems to give qjackctl graph editor some trouble. (rev 17ef7ce)
These are my steps to produce a crash:
In valgrind, a memory error will be reported; see vg-log.txt.gz
In the qjackctl 0.6.1.7, in the graph window, to delete a connection, both the receiver and sender outlets need to be highlighted and the delete pressed, to delete a connection. To connect from one to the other, a cable is pulled out from a sender and dropped onto a receiver to create a connection.
From a user perspective, the previous behaviour, where dragging from a receiver to the sender deletes the connection if they're already connected, is more efficient in terms of physical movement. This build doesn't have this behaviour, i'd like it back.
In the graph window, it's totally possible to shift-select multiple items and subsequently move them as a group. Strangely when using the rubber band method to select multiple items it's not possible to move them together.
These days I can't find a modern media computer around with a resolution below 4K anymore.
But the window is still in the same pixel size, effectively dividing the window surface by 4:
This is on Ubuntu 16.04 LTS. The title bar is the normal window font size.
Admittedly, this is qjackctl version 0.4.2 build apr 7 2016 21:23:34. I see a lot of work has been done since. This version comes default from the Ubuntu repositories. This might have been solved already. I'm not sure where I can go to suggest a backport of said improvement, if it exists. I also suspect Ubuntu LTS people will start upgrading in the summer, hopefully getting a newer version of qjackctl
.
Hi Rui,
I've just seen that there is a line "JACK version support [JACK2)" which is set to "no" in my configure step.
Questions:
I found by manipulation mistake that I can create unconnected cable items in the graph.
To create one:
1- start dragging a connection out of an output audio port of choice;
2- while it's still dragging, right-click to pop up the menu;
3- left click to make the menu go away;
4- (at this point, if you click on canvas, it would disappear and return to normal)
start dragging a cable out of another output audio port, and drop it anywhere on canvas;
5- the situation as in the screenshot should be seen.
6- next, try moving the client from which these cables have been pulled, and it will crash.
Qjackctl 0.5.9
I'm new to jack.
The window shows the configured sampling rate on the window (top-right of the display "48000 Hz"):
(Don't mind the mix of resolutions - it's reported in #28)
However, jack
might ignore this for one reason or another, and the messages window seems to show this:
Starting jack server...
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Acquired audio card Audio1
Acquired audio card Audio0
creating alsa driver ... hw:PCH,0|hw:ToneLabST,0|128|3|44100|0|0|nomon|swmeter|-|16bit
configuring for 44100Hz, period = 128 frames (2.9 ms), buffer = 3 periods
This is confusing because you'll get errors like:
ERROR: playback and capture sample rates do not match (48000 vs. 44100)
And it's confusing because you think the window shows you what frequency is being used (48000Hz) while actually 44100Hz is being used and the window simply seems to show what you wrote in the settings. This would make the display more of a wishful thinking rather than an actual frequency gauge
Again, I might have interpreted this all wrong. But since I'm new to jack, I could be considered an UX tester and I'm confused. Perhaps the Window display can show both the playback and capture sample rates with a nice little alert indicator showing which hardware device is "in the wrong", because in settings you can only specify one rate, not separate rates for both capture and playback.
While checking/unckecking the new Setup... -> Misc -> Buttons -> []Β Replace Connections with Graph buttons
, we are notified that: Server settings will be only effective after restarting the JACK audio server.
.
Despite this message, the change is made instantaneously.
This is a bit confusing from a user point of view thus there is no harm here. Only reporting it here.
HTH.
I have several interfaces and I'd like QJackCtl to pick the profile automatically when I connect one of those cards and fall back to the internal soundcard when neither of the interfaces is available.
I set up a new operating system.(Archlinux)
After installing jack2 jackdmp version 1.9.14
and qjackctl 0.6.1
, but without confiuring the system for realtime, I started jack, just for fun.
The message log said RT was not possibly, as expected.
Jack started anyway and Qjackctls info in the Messages window, Status tab said "Realtime Mode: yes". Which was obviously not true.
Information-feedback to the (inexperienced) user is very important. We need to be able to trust the programs.
Could you look into that please and make sure it is reporting the correct values.
Just an idea that could maybe ease troubleshooting and performance tuning in a multi application set up.
The xrun log sometimes points a a particular application "client X did not finish in time".
It would maybe be useful to reflect this in the GUI, or in the status windows.
Something like: out of N total xruns, client X caused Z xruns etc...
Or more generally improve the information about the source of xruns - as much as possible with the jack back end messages.
Short time before I had qjackctl with enabled option to stop jack in application exit. Today I disabled this option, because need sometimes to restart qjackctl due to another clearly systray-related bug.
It is ok, if qjackctl quited first time after enabling this option. But if started during same jack run, following attempt to quit will cause it to behave as if there are unsaved settings. Problem doesn't appear if jack was not started when qjackctl started, but doesn't disappear if jack was stoped before to quit.
Turning mentioned option back on makes problem to disappear immediately (not only on next qjackctl run). It even doesn't appear if option is enabled, saved, and then immediately disabled, all during one qjackctl/jack run.
Hi,
I am using qjackctl 0.5.0.
I am trying to run the dummy driver using the GUI. This driver is translated in the selection widget. In french dummy
is translated to factice
.
Then when i start the server, jackd
looks to fail cause factice
is unknown. I guess dummy
is expected here.
20:19:43.038 /usr/bin/jackd -r -dfactice -r44100 -p1024
connect(2) call to /dev/shm/jack-1000/default/jack_0 failed (err=Aucun fichier ou dossier de ce type)
attempt to connect to server failed
jackd 0.125.0rc1
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
jackd: unknown driver 'factice'
no message buffer overruns
checking for qmake-qt5... no
checking for qmake... /usr/lib64/qt5/bin/../bin/qmake
checking for qmake... (cached) /usr/lib64/qt5/bin/../bin/qmake
checking for Qt library version >= 5.1... no; Qt 5.1 or greater is required
The solution would be passing -std=c++11 to CXXFLAGS.
I'm getting a lot of those errors in the status / Messages window, I can't switch the soundcard any more:
οΏ½[31muint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&)οΏ½[0m: Condition failed: menu
Hi,
I'm trying out linux audio, jack + MIDI for the first time, and found I can get the odd freeze in QJackCTL.
Under certain circumstances, when I start up QJackCTL it has a black window.
If I kill jackdbus in the terminal killall jackdbus -9
it carries on starting up.
Could the app continue starting up and display a message instead (or better, detect the issue and fix it) ?
Translating such a strings results in broken jackd, see pull request #53
Hi, here's a couple of quick, but important, fixes for macos. Hope it's okay I didn't make a pull request since I've cloned qjackctl a long time ago and don't want to mess with git: https://raw.githubusercontent.com/kmatheussen/qjackctl_macos/master/qjackctl.diff
Also, here's a repository to build qjackctl 0.6.0 for macos: https://github.com/kmatheussen/qjackctl_macos
I have issue with QjackCtl with preset having () in the name.
Ardour doesn't have sound output if the name of preset in QjackCtl is (default),
it's working if I erase the () in the preset name, it wors with 'default'.
Reaper (native linux version) give error message too (if thre is () ).
it was working fine with QjackCtl 5.0.0.
Please allow meta data to order ports in your patchbays, both the old one as well as the graphical.
https://github.com/drobilla/jackey/blob/master/jackey.h
/**
Order for a port.
This is used to specify the best order to show ports in user interfaces.
The value MUST be an integer. There are no other requirements, so there may
be gaps in the orders for several ports. Applications should compare the
orders of ports to determine their relative order, but must not assign any
other relevance to order values.
*/
#define JACKEY_ORDER "http://jackaudio.org/metadata/order"
This happens quite often:
23643 kjetil 20 0 658668 132428 118460 R 199.3 0.8 40:21.89 qjackctl
It started happening after I compiled 0.6.1. Tried git HEAD today, but still 200%.
I think it starts happening after having to kill a jack client. I only have the main window open.
perf top -p pidof qjackctl
-K
15.50% libc-2.18.so [.] __memcpy_sse2_unaligned β
3.33% libQt5Gui.so.5.10.0 [.] QTextBlock::textDirection β
2.54% libQt5Gui.so.5.10.0 [.] QTextBlock::position β
2.33% libc-2.18.so [.] __GI___libc_write β
1.40% libQt5Core.so.5.10.0 [.] QVariant::userType β
1.29% libc-2.18.so [.] _int_malloc β
1.23% libc-2.18.so [.] __libc_enable_asynccancel β
1.10% libQt5Gui.so.5.10.0 [.] QTextLine::layout_helper β
1.02% libQt5Core.so.5.10.0 [.] QUnicodeTools::initCharAttributes β
0.98% libQt5Gui.so.5.10.0 [.] QTextFormat::QTextFormat β
0.86% libQt5Gui.so.5.10.0 [.] QTextFormat::~QTextFormat β
0.85% libc-2.18.so [.] _int_free β
0.76% libc-2.18.so [.] malloc β
0.76% libQt5Gui.so.5.10.0 [.] QTextEngine::itemize β
0.72% libQt5Gui.so.5.10.0 [.] QTextEngine::shapeText β
0.54% libQt5Widgets.so.5.10.0 [.] QWidget::window β
0.54% libQt5Core.so.5.10.0 [.] QMetaObject::activate β
0.52% libQt5Gui.so.5.10.0 [.] QTextFormat::intProperty β
0.50% libQt5Gui.so.5.10.0 [.] QTextFrame::iterator::operator++ β
0.48% libQt5Gui.so.5.10.0 [.] QTextEngine::shapeTextWithHarfbuzzNG β
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.