JACK 0.70.4 release
JACK is a low-latency audio server, written primarily for the GNU/Linux
operating system. It can connect a number of different applications to
an audio device, as well as allowing them to share audio between
themselves. Its clients can run in their own processes (ie. as normal
applications), or can they can run within the JACK server (ie. as a
"plugin").
JACK is different from other audio server efforts in that it has been
designed from the ground up to be suitable for professional audio work.
This means that it focuses on two key areas: synchronous execution of
all clients, and low latency operation.
CHANGES:
qjackconnect/jack_lsp bug fixed.
now can use either SysV or POSIX shm methods. Linxu 2.4.4 is required
for the POSIX method. Defaults to SysV, but can be switched with a
./configure option (--enable-posix-shm)
new --enable-optimize configure time flag, for compiler optimization.
jack_set_buffer_size_callback() de-deprecated.
added port metering API.
added option --timeout (OR -t) for client timeout. The default time is
as before: 500 msec.
jack_lsp now has usage (-h or --help) and version (--version) options.
various bug fixes and documentation updates.
CAVETS:
The shm code requires the tmpfs kernel module either loaded or compiled
in. A tmpfs filesystem must be mounted as well. This can be done by
adding:
tmpfs /dev/shm shm defaults 0 0
to /etc/fstab and running "mkdir /dev/shm; mount /dev/shm".
In versions of linux prior to 2.4.4, tmpfs was known as shmfs.
Client programs compile with the previous stable release (0.61.0) will
need to be recompiled to work with 0.70.4.
Client programs now need to also link against librt. That library
should be automatically included via pkg-config.
Taybin Rutkin
hello * !
frank neumann has sent me some photos he took during the lad meeting at
the zkm in march. they have been uploaded to the lad page and can be
viewed at
http://www.linuxdj.com/audio/lad/contrib/zkm_meeting_2003/photos/frank_n_ph…
have fun.
--
All Members shall refrain in their international relations from
the threat or use of force against the territorial integrity or
political independence of any state, or in any other manner
inconsistent with the Purposes of the United Nations.
-- Charter of the United Nations, Article 2.4
Jörn Nettingsmeier
Kurfürstenstr 49, 45138 Essen, Germany
http://spunk.dnsalias.org (my server)
http://www.linuxdj.com/audio/lad/ (Linux Audio Developers)
(Sorry for reposting to LAD, I've already sent this to alsa-user but I'm
unsure which list is more appropriate so I'm trying both)
Hello,
I have a machine with two DELTA 1010LT cards and they work very well
with ALSA (using ALSA binaries from Planet CCRMA).
I would like to write a single threaded application
that is able to write on all out channels (analog outs 1-8 of card 1 and 2 =
16 channels) simultaneously.
The card's manual says that in order to synchronize two cards one should
select the first card as master and set the internal clock generation
(I do this via envy24control) and then connecting the SPDIF-OUT of card 1
to the SPDIF-IN of card 2 and set the card 2's clock source to SPDIF-IN.
So far so good (from the hardware point of view)
I managed to write ALSA code that writes to a single card:
it opens the PCM hw:0 device selects 10 channel interleaved S32_LE mode
and then writes out some data. This works perfectly for a single card.
Now my question:
I would like to extend this app so that it writes to both cards simultaneously
without going out of sync.
I assume that the SPDIF writing and clocksouce selection provides this
from a hardware point of view, but I am unsure how to proceed from with
the application code since the ALSA docs do not mention such a scenario.
currently for a single card setup,
I do the usual card setup and then sit in a while loop that does
while(1) {
snd_pcm_writei(pcm_handle, audiobuf, MY_PERIOD_FRAMES);
}
Is the following way to extend the app to two cards correct ?
call the functions to setup card 1 (hw:0)
call the functions to setup card 2 (hw:1)
while(1) {
snd_pcm_writei(pcm_handle1, audiobuf1, MY_PERIOD_FRAMES);
snd_pcm_writei(pcm_handle2, audiobuf2, MY_PERIOD_FRAMES);
}
(where audiobuf1 is the buffer sent to card 1 while audiobuf2 is
the buffer sent to card 2)
Or is some special "sync start" procedure needed ?
I remember ALSA had/has provides some functionality in this regard
but I was unable to find documentation about it.
Thanks in advance for your help.
PS: does the DELTA cards only support the interleaved mode ?
The model seems a bit inefficient since in most apps the data
sources are non interleaved audio streams.
(eg a HDR app that outputs each audio track to a different audio channel)
cheers,
Benno
http://linuxsampler.sourceforge.net
-------------------------------------------------
This mail sent through http://www.gardena.net
Just a quick notification to you all that pawfal (the webste for arty
free software types) has been reborn as a wiki, and is open for all to
use and abuse. Feel free to add information of your own - we're
especially interested in people using linux and/or free software for
artistic purposes to put links to their work there, you can create your
own wiki page etc etc.
http://www.pawfal.org
For more information, if you are new to wiki's:
http://www.pawfal.org/index.php/PawfalFaq
cheers,
dave
Hi all, I know this is off-topic, but at this point I could use any help
I could get since I am just about ready to do a clean reinstall
(Something that I do really not feel like doing right now).
I had Mdk 9.0 and upgraded it to 9.1. Since, when I have dynamically
linked apps to the /usr/lib/libc.so.6 (or /usr/lib/libc.so) I always get
the same error:
Error while loading shared libraries: /usr/lib/libc.so.6: invalid ELF
header
I tried reinstalling 9.1 glibc and glibc-devel and that did not fix it.
I also tried installing libelf rpm for mandrake and that did not do a
thing. Finally I even installed the newest cooker version of these two
files and I still come up with the same error. This brings me to a
conclusion that the problem lies somewhere else, but where?
Rebuilding of glibc from srpm eventually fails with some weird error
(can't remember it any more), so that option is out of question.
Furthermore, what is really odd, is that the clean install on another
machine of the same distro does not have this problem, yet the files in
question libc.so (and other related ones) are IDENTICAL to the ones I
have on this machine (at least they were before I installed the latest
glibc from the cooker).
I also checked binutils package and it is the same on both machines.
So what gives?
Does anyone have any suggestions as to how could I go about resolving
this issue?
Any help at this point is greatly appreciated! Sincerely,
Ivica Ico Bukvic, composer & multimedia sculptor
http://meowing.ccm.uc.edu/~ico
HI!
I'm trying to write very simple software synthesizer under Linux just for my
own educational purpose.
but one problem i came over is the following:
I made the audio thread shced_fifo with max priority. My GUI thread is
sched_other. To allow the GUI to rerspond, I thought i could just put the
audio thread to sleep for the playing length of the buffer (7ms). But the
minimum tick interval of the linux scheduler is 10ms and its not even sure
that the thread will sleep for exact 20ms. So how can I avoid underruns if
the timing is so unreliable?
Thanks in advance
Alex
Hi,
jack_input is an AlsaPlayer input plugin. Connect any JACK output port
to the alsaplayer input ports.
Pros:
* Volume / pan control through alsaplayer
* Visualize your JACK streams with alsaplayer scopes
* Feed live input to alsaplayer (line-in, mic, etc)
* Export jack streams to other audio subsystems supported by alsaplayer
(not recommended, unless output is through the same input hw)
* ???
Cons:
* alsaplayer's internal format is still 16-bit
* possible distortion if machine is heavily loaded (input overruns)
* high latency caused by aggressive internal buffering
* not configurable enough
Usage:
$ alsaplayer -ojack jack_input:
This will load the jack input plugin and create 2 new input ports:
alsaplayer_in:in_1
alsaplayer_in:in_2
Connect your output to these ports. Warning: loops are possible :-)
Download:
http://alsaplayer.org/jack_input-0.1.tar.bz2
Enjoy!
Andy @ alsaplayer.org
Is there an equivalent to sched_setscheduler() that adjusts thread priority instead of process priority? I want my audio thread to be higher priority than my drawing thread. Both threads are part of the same app (process). Is this possible in Linux v2.5?
hi...
galan-0.3.0-test3 is released...
- now supports multiple jack in and out ports.
- FFT is also supported.
- BUGFIXES
for details see http://galan.sourceforge.net
--
torben Hohn
http://galan.sourceforge.net -- The graphical Audio language
>> That said, I think Patrick is right to start thinking about this now.
Thanks.
>I think he's completely right - I'm not sure about this bank account
>thing but I do think that now is the time to be demoing, talking up and
>generally approaching people and companies about Linux music software.
>I wrote us up (and mentioned a few other apps) in the latest edition of
>Linux User - John at mstation.org has been very kind so far as well.
>Now is the right time to be talking to people and getting the
>"products" out there. If it works - why not tell people about it?
The reason I believe we need to have various bank accounts are because
we cannot afford to waste money on excessive service charges and not
everyone has access to credit cards. If we have the accounts in the
right countries then people can just donate cash.
From a professional perspective we need to show our prospective clients
that we have sound financial thinking. It's mostly a subconscious need
that consumers have. They want to know that the money they are investing
is being given to people/companies/organisations who use it. Most people
don't really care how it is used although we have the moral
justification on our side too.
This is from the Sound on Sound advertising package.
"The main target market of Sound On Sound is the professional
and semi-professional musician who is the kind of person that will have
the spending ability to purchase a large range of products from
synthesizers to samplers, mixing desks to microphones, multitracks to
monitors, effects to expanders and computer hardware and software.
They are not time wasters who do not know their profession - they are
serious and mature individuals working with a reasonable budget."
If we want to appeal to this audience we need to prove to them that they
are investing in professional audio. We need to wine them and dine them
(metaphorically). If they look into our commmunity and say these are
just amateur geeks who have made some interesting things happen it won't
work. If we take the intiative and lead them into our world they will
come at it from the perspective that we are professionals who have
created a very credible concept that we are proud of and want them to
enjoy using.
They will ask "What kind of cash have we invested" and if we come back
with "Ahh, well we don't actually have a scope on the financial side of
our open community." They are just going to look around for a while and
leave.
If we can show them that not only are we mathematics and logics wizards
but that we also have solid business sense then they are going to stick
around and see what we have to offer. A lot of them will probably invest
just to test the waters or to keep up with the play.
I want to see an advertising campaign happen that will educate and
encourage the mass of potential user to take the step. I also want to
make sure that we have covered our asses when they finally walk in
through the doors.
It's a choice between being amatuer enthusiasts or professionals.
If we come across as professionals people won't give a toss about
geekyness.
--
Patrick Shirkey - Boost Hardware Ltd.
For the discerning hardware connoisseur
Http://www.boosthardware.comHttp://www.djcj.org - The Linux Audio Users guide
========================================
"Um...symbol_get and symbol_put... They're
kindof like does anyone remember like get_symbol
and put_symbol I think we used to have..."
- Rusty Russell in his talk on the module subsystem