Hi,
QjackCtl 0.2.14 has been released. No big features, only a bunch of
optimizations and cleanups. Check it out:
http://qjackctl.sourceforge.net
From the change log:
- Put a limit on XRUN callback messages and statistics report rate,
preventing the potential hosing of the GUI due to a XRUN cascade storm.
The maximum reasonable report rate has been fixed to be one XRUN callback
occurrence per second.
- Set to ignore the SIGPIPE ("Broken pipe") signal, where available, as
the default handler is usually fatal when a JACK client is zombified
abruptly.
- All conection view items are now sorted in natural case insensitive
order, not just as audio port names as was before.
- Got rid of those nonsense paranoid and rather stupid pseudo-mutex
guards on the connections management framework and event notifications
(nuff said :).
- Optional confirmation warning on audio server shutdown, if there's some
audio clients still active and connected (as suggested by Sampo
Savolainen).
- Check for <jack/statistics.h> on configure time (as of JACK 0.99.42+ CVS).
- "Unlock memory" server setup option was added, allowing the release of
memory used by common toolkit libraries (GTK+, Qt, FLTK, Wine) that were
being superfluously locked on every GUI JACK client; number of periods
has now the minimum allowed value of 2; server start delay widget
converted to spinbox; setup dialog layout slighly changed.
- Removed stand-alone usx2y driver support. Since JACK 0.99.41+ CVS, the
special "rawusb" support on the Tascam US-122/224/428 USB Audio/MIDI
interface controllers have been merged and properly integrated into the
regular alsa backend driver. Being still experimental, this special mode
of operation is now triggered only when "hw:N,2" is specified as the alsa
device name (N = soundcard index of snd-usb-usx2y module).
- Messages window limit is now enforced only when the line count exceeds
in one third the user configured line count maximum; if Qt 3.2.0+ is in
use, the QTextView widget is otherwise set to the optimized Qt::LogText
format.
- XRUN status items are kept double-dashed if none has been detected.
Enjoy.
--
rncbc aka Rui Nuno Capela
rncbc(a)rncbc.org
Hi,
i wonder if there's a way to grant a process priority over all other
processes when it comes to disk i/o.. Somewhat similar like SCHED_FIFO
scheduling for cpu priorities.
This would be very useful especially for high reliability hard disk
recording. I mean it would be simply great to record 24 tracks in ardour
and not having to worry about disk underrun [or overrun] when a cronjob
kicks in that scans the whole filesystem..
I heard and read a bit about the new io schedulers in the 2.6.x kernels,
but i wasn't able to find any infos specifically on this subject..
So anyone knows more? Please let us know! Maybe current io-schedulers
actually take the cpu priorities [nice level or relatime priorities]
into account when assigning io bandwidth to processes, but if so i
wouldn't know where to look to find out..
Thanks,
Flo
--
Palimm Palimm!
http://affenbande.org/~tapas/
On Sun, 23 Jan 2005 10:44:48 +1100
Cal <cal(a)graggrag.com> wrote:
> Indeed it does, so let's not stir it up again unnecessarily!
Sorry, i did not see a reply in that thread.
Flo
--
Palimm Palimm!
http://affenbande.org/~tapas/
Hi,
I compiled the CMT plugins with the g++ options -msse2 and -march=i686
and the freeverb denormals problem (seen with ardour on a dual Xeon
machine) seems to be _almost_ entirely fixed. Also, I don't see any
weird problems with the ardour host (yet :). But, I still see the DSP
load increasing from around 5% to about 15%, although now it is _much_
farther along in the tails of the reverb than before and I get _zero_
xruns. [before, the DSP shot up to 60-90% with tons of xruns and
usually the zombification of ardour].
Much cooler.
--Neil
PS: I also am using the new undenormalize inline function described in
an earlier message.
On Sat, Jan 22, 2005 at 03:17:28PM +0100, Christian Schoenebeck wrote:
>> I think for such an important piece like freeverb it might be worth
to add
>> architecture dependant assembly optimizations. E.g. with SSE(1) you
simply
>> have to change the SSE control register to get rid of the denormal
problem.
>> With that no denormal fixes for individual sample points are necessary
>> anymore which definitely pays off in performance.
Agreed, but I'm not sure how doing that will affect the host - ie does
-mfpumath=SSE (or whatever the option is) always leave the FPU stack in a
sane state when control goes back to the host? I dont think it would
normally return the FPU to 387 mode, which might do bad things to the
host occasionally.
OTOH it might be fine, I dont understand the interaction with the 387 and
SSE.
- Steve
Hi all,
The denormal problem with freeverb/ardour on P-4's is killing me.
Since CMT plugin development seems to be a little stagnant, I decided
to take it into my own hands a bit, but I might need a little help from
a kind someone out there. Is there anyone who can give me a tip on
proper syntax for changing the denormals.h file in freeverb (assuming
this is where the problem lies)?
Details:
On this list and/or posts elsewhere I found that the denormals.h file
for freeverb doesn't work too well with some newer gcc compilers; one
recommendation was to exchange the first statement below with the second
definition:
#define undenormalise(sample) if(((*(unsigned
int*)&sample)&0x7f800000)==0) sample=0.0f
static inline float
undenormalise(volatile float s)
{
s += 9.8607615E-32f;
return s - 9.8607615E-32f;
}
I tried changing it out one-for-one, but.. no good. Ardour still
zombifies after reverb tails die out. Maybe there is somewhere else
that needs changing wrt denormals, or maybe I am just clueless :).
Anyway, I then tried using something like the following....but still no
good, [ardour now doesn't zombify, it's just that freeverb sounds like
@$!&].
#define static inline float undenormalise(volatile float s) { s +=
9.8607615E-32f; return s - 9.8607615E-32f; }
You can probably see that I have no idea what I'm doing, but this seems
like it should be so _simple_. Maybe now is the time to go read up on C++.
Thanks,
Neil
Steve,
OK. I put your denormal-zeroing function w/SSE into the freeverb.cpp
code, and when compiling with the SSE option and calling
set_denormal_flags() in the activateFreeverb3 function (see below), I
get this error wherever asm is called:
freeverb/freeverb.cpp: In function `void set_denormal_flags()':
freeverb/freeverb.cpp:48: error: can't find a register in class `BREG'
while reloading `asm'
Do you have an idea of what might be wrong?
Here is where I put the call to your function. Does this make sense?
void
activateFreeverb3(LADSPA_Handle Instance) {
Freeverb3 * poFreeverb = (Freeverb3 *)Instance;
poFreeverb->mute();
/* call the Steve Harris denormal zeroing function w/SSE flag */
set_denormal_flags();
}
--Neil
PS: Maybe we should move this discussion to just linux-audio-dev for now
PPS: For reference, this is your function for zeroing denormals w/SSE
that I am using:
#ifdef __SSE__
#include <xmmintrin.h>
#endif
void set_denormal_flags()
{
unsigned long a, b, c, d;
#ifdef __SSE__
asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (1));
if (d & 1<<25) { /* It has SSE support */
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (0));
if (b == 0x756e6547) { /* It's an Intel */
int stepping, model, family, extfamily;
family = (a >> 8) & 0xf;
extfamily = (a >> 20) & 0xff;
model = (a >> 4) & 0xf;
stepping = a & 0xf;
if (family == 15 && extfamily == 0 && model == 0 &&
stepping < 7) {
return;
}
}
asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (1));
if (d & 1<<26) { /* bit 26, SSE2 support */
_mm_setcsr(_mm_getcsr() | 0x40);
}
} else {
fprintf(stderr, "This code has been built with SSE support, but
your processor does not support\nthe SSE instruction set.\nexiting\n");
exit(1);
}
#endif
}
-------------Steve Harris wrote:---------------
For something like a reverb the best option is going to be to build with
SSE maths and call the function I posed here a week ago or so. There are
so many places where denormals can occur in reverbs that youre going to
burn a load of CPU trying to kill them.
OTOH I'm not sure how that function would interact with the host when
loaded as a plugin
Hi All -
Thanks to the assistance of Nick Dowell at Focusrite
I have working MIDI over USB for Novation ReMOTE 25 Audio
AKA X-Station. The attached patch builds and runs cleanly
using the latest Fedora Core 3 update kernel (2.6.10 #741).
I don't have the MIDI only device or the Speedio to test
with but if they operate as Nick describes these should
also do MIDI over USB with my patch.
I don't think I broke anything but if anybody can
check out this patch with other devices, particularly Roland
and MIDIMAN devices I'd be much obliged.
Thanks,
ccb
Hello all,
After having struggle a lot in order to make ecasound and ardour working
on my Gentoo (Christopher is it working well with your's ?) I have decided
to use another strategy to setup my Dub Soundsystem.
I have choosen :
always TerminatorX (Tx) to play the tracks and MuSE 0.7.1 to do the rest.
The problem is that MuSE does a strange thing. Let me explain :
I have 2 stereo tracks
track 1 connected to Tx without effect
track 2 connected to Tx with the Glame Bandpass Analog Filter
So, if I activate the plugin of the track 2 the track 1 looks mono and I
can hear that the effect is also acting on it.
is this a bug in MuSE or it is the Glame Bandpass Analog Filter to claim
the fault ?
Best regards
Philippe
PS : it would be nice if the interface window of a plugin closes when we
remove the plugin from the track :)
Hi!
I tried to use the cvs snapshot from the 13th of June last year to do some
work. But it wouldn't accept commands.
I did:
$ linuxsampler
It told me that everything was well. Then I connected to it with telnet:
$ telnet localhost 8888
That succeeded, too. Then I tried just writing a comment:
# this is a comment
Still worked, but when I tried to put any real command to it, it just said:
ERR:0:Unknown command.
Or something like it. I took the commands from the draft. But the sampler
even wouldn't accept "quit". I tried quit, Quit and QUIT and the same with
single and double quotes.
Any fix for this? I need to use the text-mode (telnet way).
Kindest regards
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net - the Linux TextBased Studio guide