I'm running an ALSA -> PulseAudio -> Jack bridge setup on an Ubuntu 18.04
x86 laptop. Sound played via ALSA directly seems to be much louder than via
Jack, eg.:
gst-launch-1.0 audiotestsrc freq=200 volume=1.0 ! alsasink
is much louder than
gst-launch-1.0 audiotestsrc freq=200 volume=1.0 ! jackaudiosink
I've looked at every volume knob I can find (via alsamixer, qasmixer, pactl
list, etc.), and they're all at 100%. Does the PulseAudio -> Jack bridge
have a volume parameter hidden in a config file, or something like that?
Thanks.
Hello,
we run a DAW (LMMS) with jack and would like to exploit multiple cores.
Currently, we have one jack process (using `jack_set_process_callback`)
and multiple other processes that share all the work. The problem is
that only the jack process has RT prio. Imagine the following example:
* 4 threads, of which one is the jack thread, 3 have lower priority
* 4 tasks (e.g. 4 instruments play one note each)
* the realtime process is finished quickly, the other threads get
preempted by the kernel
These are situations where using such non-realtime helper threads can
threaten realtime behaviour. What is the best practice?
* Is it possible/good to use multiple rtprio threads controlled by jack?
(multiple clients, or multiple threads in one client)
* Should we keep using our non-rt helper threads?
* Should we be single-threaded, to have a (probably) longer average
time, but a better worst-case time?
* Should we start with helper threads and only the last few jobs will
only be run by the realtime thread (to avoid problems like in the
example)?
Many thanks on advance!
Johannes
Hi *,
I wanted to start a discussion of what kind of AVB connectivity makes the most sense for jack.
But please keep in mind what AVB is and isn't.
a) Fully functional Backend
b) Media Clock Backend with AVB jack clients
pro a)
- the AVDECC connection management could be done seamlessly in a jack way
- out of the box avb functionality
con a)
- only one talker/listener, single audio interface
- huge programming effort
- no dynamic audio mapping
pro b)
- multiple talkers/listeners with multiple audio interface using alsa api
- avoiding huge code addition to the backend, thus much easier to maintain
- AVDECC handling per client for dynamic audio mapping
con b)
- cpu load... price for multiple talkers/listeners
I'm excited to hear your opinions!
Best,
Ck
--
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
R
Op di 25 jun. 2019 22:44 schreef <jack-devel-request(a)lists.jackaudio.org>:
> Send Jack-Devel mailing list submissions to
> jack-devel(a)lists.jackaudio.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
> or, via email, send a message with subject or body 'help' to
> jack-devel-request(a)lists.jackaudio.org
>
> You can reach the person managing the list at
> jack-devel-owner(a)lists.jackaudio.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Jack-Devel digest..."
>
>
> Today's Topics:
>
> 1. Re: Korg nanoKONTROL2 and Native Instruments Komplete Audio 6
> MIDI issues (Brian Hechinger)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 25 Jun 2019 16:21:58 -0400
> From: Brian Hechinger <wonko(a)4amlunch.net>
> To: jack-devel(a)lists.jackaudio.org
> Subject: Re: [Jack-Devel] Korg nanoKONTROL2 and Native Instruments
> Komplete Audio 6 MIDI issues
> Message-ID: <e8b019d8-4bcb-9981-9c62-01f1111633a3(a)4amlunch.net>
> Content-Type: text/plain; charset=utf-8; format=flowed
>
> Huh, telling the ASLA-MIDI bridge to Export HW Ports fixed everything.
>
> *shrug*
>
> -brian
>
> On 6/22/19 5:26 PM, Ralf Mardorf wrote:
> > On Sat, 22 Jun 2019 15:39:24 -0400, Brian Hechinger wrote:
> >> So if amidi can list them why don't they show up in Claudia? I'm
> >> confused.
> > I've got an Arch Linux and an Ubuntu install, but even for the Ubuntu
> > install I'm neither using UbuntuStudioControls nor Cadence.
> >
> > https://help.ubuntu.com/community/UbuntuStudio/UbuntuStudioControls
> > https://kx.studio/Applications:Cadence
> >
> > I would disable all autostarts and manually start one after the other by
> > command line, jackd 2 instead of jackdbus and then a2jmidid.
> >
> > Keep in mind that issues are expected:
> >
> https://lists.ubuntu.com/archives/ubuntu-studio-users/2019-June/011434.html
> >
> > It was mentioned several times on the Ubuntu Studio mailing lists, that
> > there are problems with Ubuntu Studio in combination with kxstudio
> > repositories.
> > _______________________________________________
> > Jack-Devel mailing list
> > Jack-Devel(a)lists.jackaudio.org
> > http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
>
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Jack-Devel mailing list
> Jack-Devel(a)lists.jackaudio.org
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
>
>
> ------------------------------
>
> End of Jack-Devel Digest, Vol 155, Issue 8
> ******************************************
>
On Sat, 22 Jun 2019 15:39:24 -0400, Brian Hechinger wrote:
>So if amidi can list them why don't they show up in Claudia? I'm
>confused.
I've got an Arch Linux and an Ubuntu install, but even for the Ubuntu
install I'm neither using UbuntuStudioControls nor Cadence.
https://help.ubuntu.com/community/UbuntuStudio/UbuntuStudioControlshttps://kx.studio/Applications:Cadence
I would disable all autostarts and manually start one after the other by
command line, jackd 2 instead of jackdbus and then a2jmidid.
Keep in mind that issues are expected:
https://lists.ubuntu.com/archives/ubuntu-studio-users/2019-June/011434.html
It was mentioned several times on the Ubuntu Studio mailing lists, that
there are problems with Ubuntu Studio in combination with kxstudio
repositories.
On Sat, 22 Jun 2019 13:39:00 -0400, Brian Hechinger wrote:
>wonko@deepthought:~$ amidi -l
>Dir Device Name
>IO hw:0,0,0 nanoKONTROL2 MIDI 1
>IO hw:1,0,0 Komplete Audio 6 MK2 MIDI 1
>wonko@deepthought:~$
>
>I'll try to reboot but I'll also try the USB power thing you mentione
In my experiences, if USB bus power is the culprit, amidi doesn't list
the devices.
So my previous setup was a Creative Labs SB1095 and the nanoKONTROL2.
The nanoKONTROL was showing up via the ALSA-MIDI bridge and I was using
it to control Ardour.
I replaced the SB1095 with a Native Instruments Komplete Audio 6 and
now the nanoKONTROL no longer shows up as a MIDI device. The ALSA-MIDI
bridge is running because I get the passthrough device in Claudia. The
Audio6 doesn't show up as a MIDI device either.
The weird thing is when I first got the Audio6 I unplugged the SB and
plugged in the Audio6 and it did show up as a MIDI device. JACK
*really* dislikes having its audio device removed out from under it I
noticed so audio never worked again after that. :)
I kept the Audio6 plugged in and rebooted. I got audio working but MIDI
never came up on either the nanoKONTROL or the Audio6.
I'm completely stuck now and don't know what to do, please help!!
Thanks!
-brian
Hello everyone,
I want to suggest to add the aubio tools (https://aubio.org/) to the
utilities section on the jack applications page
(http://www.jackaudio.org/applications/).
The tools can be used for audio labbeling. I personally use aubiotrack
from the aubio-tools package (standard package in ubuntu) to sync music
to lights in realtime together with QLC+ using aubiotracks midi output.
Aubio comes with jack support.
Best regards
Tobias (topas-rec)
Hello all.
I have embarked on a long journey of porting my radio automation and
mixing system from OSX (making extensive use of Apple's CoreAudio API)
to a Linux/JACK/gstreamer system and potentially, making it a cross
platform application. The application is actually a collection of
programs, ranging from a studio UI, library management UI, database
back-end, and an faceless audio-engine/mix system. I am currently
working on the audio-engine port, since potentially I could port that
and continue to use the old UIs on Macs until I can get those ported as
well.
In order to make this manageable, I decided to pull some audio features
out of my existing audio-engine, notably AudioUnit effects hosting, IAX
phone support, and multiple audio-device support. I should be able to
add VL2 effects hosting and IAX back in at some point. But for the
short term, I can use jack to host effects in another program for now,
and just give up IAX/asterisk integration. The multiple audio-device
support, via my own clock drift measurement and re-sampling scheme, is
a loss for now, but it looks like alas-in and alas-out programs could
be stop-gap approaches to that, and appears to use a similar underlying
approach.
So far, the porting is going much faster than I had expected. Jack2 is
a very clean and well though out API. It is not unlike CoreAudio, only
it's MUCH easier to use. Leveraging JACKs inter-application audio
routing, I have further broken my audio-engine down into a mixing
system and control session host, with separate programs executed for
playing and recording/streaming audio content. This a very nice, clean
way to break thing up, made possible by JACK. Thanks.
That is the big picture. I have come across some questions that I need
a little help with, all regarding the start-up process of the jackd
server:
1) At first, JACK seems to be designed for a single jackd server
running on a system, with the server control API lacking, as far as I
can tell, a method to control multiple servers by name. But then, with
the name command line option, I can actually run multiple servers tied
to different audio devices. Does the server control API simple not
support names at this point? Maybe this is just how JACK evolved,
originally one jackd per machine, then named server support added, but
not fully implemented across all the API?
2) Again, with the named server: I can start a named jackd server. I
can connect to it using QjackCtl by setting the name property in
the advanced tab of QjackCtl settings. But when I try to connect to the
named server from my audio-engine application, via a jack_client_open()
call, passing the name char string, my application instead tries to
start up a jackd server instance, using the command noted in the jackd
man page (first line of $HOME/.jackdrc). Is this a bug, or am I
missing some detail?
3) Regarding the jack_client_open() behavior when no server is yet
running: the function call does seem to execute the first line of
$HOME/.jackdrc and start the jackd server running. However, it
appears to inherit all the file descriptors from my application. This
is a problem because my application is designed to self-restart on a
crash. With jackd holding my application's TCP control socket open, my
application can't restart (bind again to the desired TCP port) until
after I kill the jackd process. I assume the auto-jackd startup code
is forking and execing, and the code simply isn't closing the parent's
file descriptors. Is this a bug or intentional? Is there a way I can
detect if a jackd server is running ahead of time, so I can start the
server myself using my own fork/exec which would closing my descriptors
on the child, then, once I know jackd is running, call
jack_client_open() in my app?
4) because my audio-engine is a faceless application, and can be run
without a desktop session, I need it to be able to connect to a jackd
server run by other users, or to start a jackd server that can be used
by other users. I can verify that with Ubuntu 18.10, I can not start
jackd from a user account, then connect to it from my application
running as a different user, even if I run my app as root, not that I
intend to do that as a real world workaround. Is there some approach,
group permissions possibly, to allowing other users to access a jackd
server?
5) Wishful thinking: Give jackd the ability to read QjackCtl config
files, so I could configure things from the GUI, then stop jackd and be
able to restart it from the server-control API or command line with a
command line option pointing to a config file. Better yet, make a
persistent JACK-aware place to store such file in the file hierarchy.
Thanks,
Ethan Funk