JACK recording/playing programming in C + Ubuntu (GNU/Linux)
Its very difficult to use the work "JACK" in google and programming and audio, most results appear to give me windows tutorials/questions that relate to how to properly plug-in your audio jack or there are ones similar to mine "Line-in with Audio jack programming". How ever I can't find any tutorials on the audio sound system called "JACK" and I need to know how to initialize, list sound cards, pick a sound card from that list and then record and playback my chosen input/output.
So far my only resources are the following for JACK programming.... http://jackit.sourceforge.net/cgi-bin/lxr/http/source/example-clients/capture_client.c http://www.alsa-project.org/~tiwai/alsa-driver-api/ch01.html#id292665 http://www.alsa-project.org/~tiwai/alsa-driver-api/re01.html
The capture_client.c I think is built to work in any situation so I'm confused on what is actually going on line by line. Which is why I'd hope to find a JACK tutorial. I need RAW audio data so I can manually encrypt it into packets so I'm thinking I need JACK scince I've found out Gstreamer only uses low-level encryption, ALSA is a pain to write code for(takes forever) but it actually worked though, and all the other audio libraries just plain are not for my situation or just stink.
This is where i bagan learning. He goes through compiling and the actual code.
when searching the internet try using jackd (short for jack daemon).
Jack is designed primarily for being able to chain several applications together into a single signal chain. As such the daemon handles the hardware ports usually by utilising alsa depending on the audio hardware. The daemon sets the sample rate and format, the format is always normalised float and the sample rate is set by the user. This eliminates sample rate and format conversions between applications.
It sounds like either you are going to have to think outside the box to get jackd to work for you or the functionality needs to be included in the daemon (jack already has the ability to send audio data over a network for instance) or jackd really just isn't suitable for your purposes.