-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Kris,
Welcome back.
On 02/17/2012 03:17 PM, Kris Calabio wrote:
> Thanks for the advice! I sent a similar e-mail to this list two years ago
> then got distracted with school, work, etc. I've since found the time and
> motivation to get back into it.
>
> I am indeed a software developer, but still a novice in many ways. My only
> experience in audio programming was making a synthesizer in PureData, but I
> want to be more fluent in C/C++ programming so I can work on making JACK
> clients.
you will like:
https://github.com/jackaudio/jack2/blob/master/example-clients/simple_client.c
> Which leads me to my next question: are most JACK applications written in
> C/C++? I understand that programming as close to the hardware as possible
> is important for performance, but what about programming in a JVM language
> (I have Clojure in mind)? How reasonable is that?
At least the DSP part of most pro-audio applications is written in C to
have tight control over worst-case execution time of the code.
The reason for this are real-time constraints: "close to hardware" here
means to have control over memory-allocation and avoid [thread] locks
[in the audio thread]. ie.
* prevent the memory needed for DSP from being paged out.
* don't do any memory alloc/dealloc operations in the audio thread
JACK assists greatly with that (calls memlock, provides lock-free
ringbuffers, etc) but you still need to know what you're doing in your
DSP code.
The above constraints rule out [most] garbage-collecting (object
oriented) languages. It is NTL possible to carefully program sound
processing in those langs but you'll need to know much more about what
happens during compilation and/or interpretation of the language. C has
the least pitfalls.
A really good general introduction and nice read is
http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing
Anyways, There are JACK bindings for a lot of languages incl. JAVA. The
most recent announcement that crossed this email-list is
https://code.google.com/p/java-audio-utils/ (I don't know if that lib
works with Clojure, but it should)
Yet all major (proper?!) sound-applications separate the audio (here:
JACK) part from the user-interface and I/O in one way or another. Mixing
languages for that is not uncommon.
ciao,
robin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEARECAAYFAk8+bnEACgkQeVUk8U+VK0JaHwCfczcirTKxlnlMu5pa5NouCKYp
jN4AoIPXdRHZ7uNqappuL4hlA1T990LI
=H9Zd
-----END PGP SIGNATURE-----
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Fri Feb 17 16:15:03 2012
This archive was generated by hypermail 2.1.8 : Fri Feb 17 2012 - 16:15:03 EET