Hi, all, I am working on a live music visualization project in Java (technically Processing, but we're using Eclipse) that requires audio input from multiple mics at the same time. We had a good system going with Beads and JACK, but I would like to be independent of JACK -- it has been flaky and I simply don't trust it in a professional setting. However, I haven't been able to access multiple lines from my DAC within Java. I can get the Mixer that corresponds to it, open a TargetDataLine, get the data from an AudioInputStream into a buffer, but this all corresponds to the first mic only. Is there a way that I can grab a different line while remaining in Java, or will I have to do some combination of C/PortAudio-or-equivalent with JNI? Thanks! - Emily M. |
--
You received this message because you are subscribed to the Google Groups "JAudioLibs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaudiolibs+...@googlegroups.com.
To post to this group, send email to jaudi...@googlegroups.com.
Visit this group at https://groups.google.com/group/jaudiolibs.
For more options, visit https://groups.google.com/d/optout.
Hi,
On 16 November 2016 at 23:02, Oliver Bown <ol...@icarus.nu> wrote:
> Yeah Java has never properly handled integration with devices and the only successful solution I’ve found is to work with Jack.
Or use Linux! Both JavaSound and JACK work pretty well here. Unless
you need a particular bit of commercial software I'd never use a
consumer OS for building performance or interactive tools.
> Currently on a Mac Jack is a really random mixed bag and is in quite a state of disarray in its development. I found myself having to fiddle with different legacy versions, then someone actually posted me a working zip on FB!
Yes, I don't know what's going on there at the moment. But worth
following up on the JACK mailing list. As you say, there are
definitely working options around so I don't know why they're not
official downloads.
> If there is a community need to do a whip round and commission the production of an awesome general purpose Java IO then I’d certainly chip in. I think a JNA interface to RTAudio or PortAudio, like Neil has done with Jack, would be killer. The user installs the required libraries via a package manager, and Java finds them in standard system locations. Seems like a better strategy than trying to package and link libraries in jars or something horrible like that.
I've looked at building some audio server implementations using
PortAudio and JNA in the past, but the stumbling block IMO is the lack
of official binary downloads. RTAudio might be harder with JNA - not
sure if it exports a C API. Mapping C++ with JNA, or JNI, is more
awkward. Incidentally, both already have Java bindings and don't seem
to have got much traction.
I disagree with you on the package manager approach. There's not just
the problem that consumer OS's are moving away from this approach to
the self-contained application. JAR files are actually pretty good
for this - look at how JNA and lots of other native mappings do
automatic extraction and loading of native libraries from JARs. IIRC
JNA actually includes a library to do this for any additional
libraries.
The other option might be to map audio API's directly as AudioServers
using JNA - this might actually be better as it doesn't require
additional native libs at all.
Best wishes,
Neil
--
Neil C Smith
Artist & Technologist
www.neilcsmith.net
Praxis LIVE - hybrid visual IDE for creative coding - www.praxislive.org