I'm not an expert, but if you are looking something like AU or VST,
maybe you should consider writing an LV2 plugin (most of linux DAWs
can host LV2 plugins). An LV2 plugin is a small shared object with
a few callbacks to process sound or midi, or controls. They can have
a graphical interface too, but this is not mandatory.
main entry point url is there :
Hi,
Maybe I need to ask a different question. My goal is to stick my real
time processing algorithm in between x number of audio inputs coming
from a USB audio interface, and then send the outputs to y number of
audio outputs on the same USB audio interface. Low latency is important.
Being able to add in other processing from third parties would be nice,
but it isn’t essential.
Is writing a JACK client the right way to do this? If so, what is the
right approach? If not, what is the right way to do this?
On the Apple platform, I do this by writing an Audio Unit, and either
leverage a DAW host application like Logic or the Apple AVAudioEngine to
serve as a host for my processing algorithm. The host gets the inputs
from the audio interface, I process the audio in my Audio Unit in a
callback routine, and the host sends the outputs to the audio interface.
In Windows a similar thing happens, but with VST plugins and an ASIO
host, which is either a DAW or a custom ASIO host. I’ve done both.
So what is the best “linux way” to do this? Out-of-process seems high
overhead and not suited for low latency, so I figure I must be
misunderstanding something quite fundamental.
Thanks so much for the help, I really do appreciate it.
* Andy
*From: *Paul Davis <paul(a)linuxaudiosystems.com>
*Date: *Tuesday, January 9, 2018 at 8:22 PM
*To: *Andrew Voelkel <jandyman.voelkel(a)gmail.com>
*Cc: *Benoît Rouits <brouits(a)free.fr>fr>, linux-audio-user
<linux-audio-user(a)lists.linuxaudio.org>
*Subject: *Re: [LAU] How to get started writing a JACK app? (also what
distro for BeagleBone)
In-process JACK clients are a very special case and almost nobody
implements or uses them. They are like plugins for the JACK server, and
that's not really the point of JACK (which was designed to connect
distinct processes).
Look at the out-of-process ("normal") example(s) instead.
On Tue, Jan 9, 2018 at 9:39 PM, Andrew Voelkel
<jandyman.voelkel(a)gmail.com <mailto:jandyman.voelkel@gmail.com>> wrote:
Hi and thanks.
So looking at the in-process example, I’m guessing it compiles to a
dynamic library which the server loads? If so, how does the server
know the capabilities of the in-process client.
I’m coming from writing VST plug-ins on Windows or Audio Units on
Apple platforms, in case I sound confused.
I’m also having trouble getting used to the idea of the client being
the plug in, normally I would think the client would be what is
called the “host” on Windows or Apple, and the plug-in would closer
to a “server”. But here the terminology is reversed. Am I
understanding correctly? The “client” in JACK is the plug-in (for
in-process use), correct?
Finally, I’d like to get started seeing whether the eco-system works
for low latency with existing apps and components for diving in. Is
AVLinux the way to go, and is there any reason it will not work on
BeagleBone?
I’m not a Linux expert in case you can’t already tell! It’s not that
I have zero experience, but sometimes it’s close, depending on context.
But I do know audio, and operating system design, and threading, and
SIMD, and etc.
* Andy
*From: *Linux-audio-user
<linux-audio-user-bounces(a)lists.linuxaudio.org
<mailto:linux-audio-user-bounces@lists.linuxaudio.org>> on behalf of
Paul Davis <paul(a)linuxaudiosystems.com
<mailto:paul@linuxaudiosystems.com>>
*Date: *Tuesday, January 9, 2018 at 4:41 PM
*To: *Benoît Rouits <brouits(a)free.fr <mailto:brouits@free.fr>>
*Cc: *linux-audio-user <linux-audio-user(a)lists.linuxaudio.org
<mailto:linux-audio-user@lists.linuxaudio.org>>
*Subject: *Re: [LAU] How to get started writing a JACK app?
please. not sourceforge.
JACK code lives on github ...
https://github.com/jackaudio/example-clients
On Tue, Jan 9, 2018 at 6:21 PM, Benoît Rouits <brouits(a)free.fr
<mailto:brouits@free.fr>> wrote:
Hello Andy
as a starting point, you could look at:
http://jackit.sourceforge.net/cgi-bin/lxr/http/source/example-clients/
This is C client code samples for jack.
HTH,
Benoît
Le 09/01/2018 à 16:19, Andrew Voelkel a écrit :
Hi,____
__ __
I’m new to this list. I’m thinking of giving low latency
real time
audio in Linux another try after my last
unsuccessful
attempt a few
years ago. My goal is to put some of my own
DSP code into
a hardware
appliance and use it to process audio signals
during music
rehearsals and performances.____
__ __
I think this boils down to getting an appropriate distro,
getting
JACK working in a low latency configuration
with a
multichannel USB
interface. And then …____
__ __
Writing a JACK app to process the audio. ____
__ __
I’ve done some googling and found a lot about _/using/_
JACK, but
not much about writing a JACK app. ____
__ __
Are there any examples or tutorials out there?____
__ __
I’m already up to speed on doing C++ cross development
with
Eclipse.____
__ __
I’ve got a BeagleBone black sitting around here I could use to
experiment.____
__ __
* Andy____
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user(a)lists.linuxaudio.org
<mailto:Linux-audio-user@lists.linuxaudio.org>
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user(a)lists.linuxaudio.org
<mailto:Linux-audio-user@lists.linuxaudio.org>
https://lists.linuxaudio.org/listinfo/linux-audio-user
_______________________________________________ Linux-audio-user
mailing list Linux-audio-user(a)lists.linuxaudio.org
<mailto:Linux-audio-user@lists.linuxaudio.org>
https://lists.linuxaudio.org/listinfo/linux-audio-user