hi.
netjack-0.12 is released.
Netjack is a jack-driver which uses the network card. On the other end
of the network there is a normal jack-client.
So its possible, to share a single soundcard between several laptops.
This release finally handles the packet disordering UDP does.
Thus high channel counts can now be achieved. However a 24ch in/out
link over 100Mbit gave me a major "net xrun" storm on vanilla 2.6.15
kernel. At a roundtrip latency of 2.9ms that is. It was reliable with
5.8ms.
16 channels gave me some "net xruns", which i could not hear though.
i expect this performance to increase when using an rt-kernel with the
network-irq set to rt-prio.
So please report back.
Additionally to the audio transport, netjack provides sample accurate
transport syncronisation. The roundtrip latency is compensated for.
get it while its hot at:
http://sourceforge.net/project/showfiles.php?group_id=140191
there is no link on http://netjack.sf.net because the project shell
servers are down.
--
torben Hohn
http://galan.sourceforge.net -- The graphical Audio language
Hello all,
i try to implement the reading of audiofiles with ringbuffers.
For this, i need two threads: a main process thread , which is triggered from
jack every 1024 samples for example. This reads from a ringbuffer.
And a worker thread which fills this ringbuffer.
Now the question:
- The worker thread is faster then the jackthread. (Sure, it should be). What
is the usual way to pause the workerthread and wake up again, when the
ringbuffer needs more data.
-Which size should the ringbuffer have.
- How should the ringbuffer be initilized when starting to play?
- Any small program to have look into or a good inroduction into pthreads?.
thanks c~
Hi,
Are there any people on this list who would be able to help test a Linux
ALSA driver for the EMU1212m.
I am now in a position to write a driver that works for this sound card.
I currently have SPDIF output working, but other support will follow
soon after that.
I do not have an AudioDock or any ADAT equipment, so I would need
particular help with testing that.
Kind Regards
James
ROSEGARDEN 1.2.4 RELEASED
Miscellaneous locations -- Bastille day, 2006
The Rosegarden team are pleased to announce the release of version
1.2.4 of Rosegarden, an audio and MIDI sequencer and musical notation
editor for Linux.
http://www.rosegardenmusic.com/
The 1.2.4 release addresses several issues with the prior 1.2.3
feature release. 1.2.4 introduces no new application features.
Fixes in this release include, briefly:
* Avoid crash on startup if /dev/snd/seq does not exist
* Fix incorrect sequencer status report ("no driver")
* Fix MIDI Text Marker export
* Fix text encoding for Lilypond 2.6 (UTF8 instead of ISO-8859-1)
* Fix stuck notes in matrix after pressing a stop button
* Fix crash when erasing a duplicated key signature
* Fix crash when switching documents with a tempo editor window open
* Fix incorrect sorting and insertion logic in marker editor
* Fix hang in main canvas when a segment has zero duration
* Fix audio preview display for repeating audio segments
* Update percussion matrix when a different drum mapping is selected
* Avoid crash when deleting a device with percussion matrix open
* Fix matrix display for notes outside range of current key mapping
* Ensure correct segment is acted on when clicking overlapping segments
* Fix sequencer crash when playing back tiny audio files
* Avoid display hang when too many segments overlap
* Fix several build system bugs, and compilation with gcc-4.1.2
This release also includes several new MIDI device definition (.rgd)
files, as well as updates for Catalan, Russian, Swedish, Czech and
Italian translations, and a completely new Finnish translation from
Heikki Johannes Junes.
Special thanks go to Pedro Lopez-Cabanillas for preparing the release.
For more information about Rosegarden and what it can do for you,
please see
http://www.rosegardenmusic.com/
Rosegarden is Free Software under the GNU General Public License.
A thought occured to me recently...
If I am writing an application which needs to stream a large wav file,
I am having to write something which reserves some memory, and loads
pieces of the wav file from disk on request. Say I need to be able to
jump around the file a bit, I would have to detect when the piece is
not available and load it in as appropriate.
... which I realized is exactly what the OS VM paging system does.
So, has anyone tried using memory-mapped files for streaming audio
data? (obviously, I mean, in a non-realtime thread, using a buffer).
Or would this be totally inefficient?
I was thinking it could really simplify programming, just directly
accessing parts of the wav file as needed, and letting the OS load it
up into physical memory when it wants to.
Just curious.
Steve
Hi!
I am trying to notify a high priority (nice -20 or nice -19) thread from
a realtime thread (from a jack callback to be precise). Of course I want
the realtime thread to not block, but I want the high priority thread to
react as soon as possible. For the first implementation, I used a
condition, and pthread_cond_signal. But as I can't aquire a mutex within
the realtime thread, at least not always (at most with trylock()), this
results in racy code.
Also, it doesn't integrate well with poll(), which the high priority
process should be able to use. So basically I want to switch to a pipe
write() instead of pthread_cond_signal.
Now the question is: am I producing priority inversion, then? I've seen
that the kernel code of pipe write has code like
mutex_lock(PIPE_MUTEX(*inode));
(in fs/pipe.c, linux-2.6.16.16), so can this mutex cause priority
inversion?
However, on the other hand, I examined the code of
glibc-2.3.6/ntpl/sysdeps/pthread, and found in pthread_cond_signal.c:
__pthread_cond_signal (cond)
pthread_cond_t *cond;
{
/* Make sure we are alone. */
lll_mutex_lock (cond->__data.__lock);
/* Are there any waiters to be woken? */
if (cond->__data.__total_seq > cond->__data.__wakeup_seq)
{
/* Yes. Mark one of them as woken. */
++cond->__data.__wakeup_seq;
++cond->__data.__futex;
/* Wake one. */
lll_futex_wake (&cond->__data.__futex, 1);
}
/* We are done. */
lll_mutex_unlock (cond->__data.__lock);
return 0;
}
So it looks like there is some kind of low level mutex locking involved
even when signalling a condition. Can't this also lead to priority
inversion?
So what is the best way to achieve that some lower priority thread will
definitely wakeup from a realtime priority thread, without causing
priority inversion, under recent linux kernels?
Cu... Stefan
--
Stefan Westerfeld, Hamburg/Germany, http://space.twc.de/~stefan
Hello,
I am looking for a cross-platform implementation of an atomic
integer.
Under Linux, a build an c++ class "atomic" around asm/atomic.h,
(which I can use as if it where an int), but I'd like to have a
solution that also works on Windows XP and Mac OS X.
Thanks for any suggestions,
Maarten
> > In any case, Linux Sampler and Kontakt are
> > different sorts of samplers at this point. Linux Sampler is more in the spirit
> > of Gigasampler, and Kontakt is more like an emulation of a hardware sampler (but
> > vastly more flexible).
>
> The key words there are "at this point." As noted, the *long-term*
> potential of Linux Sampler is probably still much greater than Kontakt-in-wine.
Agreed. Maybe time is best spent improving linux sampler. Then again, good VST
has benefits, although I do see how it may hurt the long term goals of free
software. I'm just not sure if the best way to help free software is to limit
it's ability to integrate with proprietary software.
> >
> > Noted. However, I remain unconvinced that Linux Sampler is intended to be a
> > drop-in replacement for something like Kontakt.
>
> I don't think it's intended to be a drop-in replacement for Kontakt; I
> think it's just intended to be cool.
I can appreciate that.
-Forest
http://ccrma.stanford.edu/~kjetil/src/
jack_capture
*************************************************************************
jack_capture is a small program to capture whatever sound is going out to
your speakers into a file without having to patch jack connections, fiddle
around with fileformats, or set options on the argument line.
This is the program I always wanted to have for jack, but no
one made. So here it is.
Changes 0.2.4 -> 0.3.1:
-----------------------
*Reduced CPU usage a lot because of better disk handling. (25% -> 1%)
*Make sure the rest of the recorded file is not garbage in case of an
overrun.
*Added the port argument, which can be specified many times and accepts
both input and output port names (including regexp expressions). This
makes jack_capture to completely replace jackrec.
*Rewrote buffer handling. Silence is now inserted when underruns occure.
Previously, the file became shorter than the recording in case of
underrun. It can still happen though, but much more seldom, and a
warning about that will be printed to the terminal.
*Last rests of jackrec code has been rewritten. Well, all the code with
substance, at least.
*Nicified code a lot.
*More efficient way of handling overruns.
*Fixed really stupid compilation error. Thanks to Dragan Noveski for
spotting it.
das_watchdog
*************************************************************************
Whenever a program locks up the machine, das_watchdog will temporarily
sets all realtime process to non-realtime for 8 seconds. You will get an
xmessage window up on the screen whenever that happens.
Changes 0.2.2->0.2.3
--------------------
*Fixed commandline arguments for increasetime, checktime and waittime.
*Nicified source a bit
Mammut
*************************************************************************
Mammut will FFT your sound in one single gigantic analysis (no windows).
These spectral data, where the development in time is incorporated in
mysterious ways, may then be transformed by different algorithms prior to
resynthesis. An interesting aspect of Mammut is its completely
non-intuitive sound transformation approach.
Changes 0.21->0.22
------------------
*Added patch and instructions from Owen Green on how to make mammut
compile on OSX. Thanks! (Sorry, I forgot to release this version for
almost a year...)
A bit late, but maybe still of interest.
A number of pictures from LAC2006 may be downloaded from
<URL: www.q2s.ntnu.no/~asbjs/pictures_lac2006_asbjorn-sabo.tar >.
(The file is around 9MB.)
* netjack workshop
* Linux sound night
* various
With thanks for and interesting conference and nice company there!
Asbjørn Sæbø