Hello LADies and LADdies!
What is new on the SuperCollider front?
I've seen there are some new files up on the page and will try to
compile them later today.
Take care,
Miha...
I'm trying to run a low latency kernel and audio applications on a
crusoe processor laptop.
Yes, I'm crazy.
I have patched a 2.4.20 kernel with the low latency, preemption, and
variable hz patches, as well as a modification to the alim15x3 DMA code
and an extra entry in the "unusual USB devices" list. I'm running recent
CVS checkouts of ALSA from Planet CCRMA.
The kernel works well, and the low latency patches really make the
system more responsive even under load. However, when I run
latencytest0.42/do_test blah blah, the system hangs while playing the
sound. It does not even display the xperf window. After a very long
time, Control-C stops the process.
When I run jack -R (jack 0.55) and freqtweak, freqtweak claims it gets
"shut down" by jack the first time I try to start it. The second time I
try to start it, it connects to jack and plays for a few seconds, but
then audio stops and the system hangs. I need to use sysrq or a power
cycle to restart.
I can send pretty good beer, the alim15x3 patch, and any other clues to
anyone who can help me with this.
--
(jfm3 2838 BCBA 93BA 3058 ED95 A42C 37DB 66D1 B43C 9FD0)
I have already got the sound data from sound card into
the buffer, and I've also finished it to encode the
data to gsm and send to another server. Right now I
need to store the sound data to some .wav file in the
server. How can I do it, ether from memory buffer or
gsm? Are there any API to do it?
Thanks.
__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/
After trying to track down the cause of xruns, I was just wondering if there
is a way to run... I dunno, kinda like a meta test for jack and see just why
you are xrun'ing?
I know people have probably asked this umpteen times, but I was wondering if
there was a way to say, automate various tests and keep a load on jack and
watch to see if it xruns during any of the tests...
Then, after it's done, it gives you a report of what you need to do to tweek
your system.
Just thinking outloud.
Jonathan
Hi all,
Some fixes and extra bits for the midi stuff; makes things much more
responsive.
* icon and .desktop get installed properly
* much more graceful handling of jackd shutdowns
* midi thread will now try and use SCHED_FIFO. If you run jackd with
jackstart (or as root, but you don't want to do that :) then you
don't need to do anything to enable this as jackd will give the
appropriate rights to jack rack.
Bob
--
Bob Ham <rah(a)bash.sh>
> I have a short, simple question:
>
> Would anyone around here care for ALSA drivers for
the Echo
> (formerly Event/Echo) line of studio audio
interfaces?
>
>
> (We're talking about the original Darla/Gina/Layla,
as well as the
> new 24 bit interfaces.)
>
> I have an old 20 bit Layla. I have their C++ driver
source, which has
> been released under some BSD/MIT style licence. I
have kernel hacking
> experience. I still have some hard feelings, I
think...
I have an Echo Darla card that I used to use with
CEPro and Win98. I have converted this system over to
Linux - but alas there is not ALSA driver for the
Darla. :-( I would love to see an ALSA driver for it.
__________________________________________________
Do you Yahoo!?
Yahoo! Shopping - Send Flowers for Valentine's Day
http://shopping.yahoo.com
>> you can't declare a variable except at the top of a block. Newer
>> compilers let you, and I think C99 supports it. Don't count on it
>> yet, too many people with old compilers.
>Yes. That'll be it. Dang. I've obviously been doing too much C++
>recently... I'll fix it and put out another release...
For gcc3 at least, CFLAGS=-std=gnu99 makes this work. Personally I like
it, maybe its time to switch to gcc3?
Hi there, I'm just a humble hobbyist coder.
I'm looking for some coders who can spare some time to help me with a
program I've been writing.
It is basically a C++ modular synth /sequencer /sampler which only generates
wav files. Not for people with decent computers (ie not me), but for those
of us with heaps of crap which refuse to do anything except a handfull of
audio channels and fx in cubase in windows, (works better than linux equiv
on same machine - sorry)
But I've decided to write the program in Linux using anjuta because I'd
rather do that than learn visual C & mfc, and I'd rather use Linux.
My program keeps going wrong, now it's decided that it will transpose all
notes up four octaves for now apparent reason.
if anyone can is willing to help I'd much appreciate it.
thanks
james Morris
sirromseventyfive
_________________________________________________________________
MSN Messenger - fast, easy and FREE! http://messenger.msn.co.uk
Hi all,
A couple of days ago Steve Harris posted results from a quick benchmark on
on the jackit-devel mailing list.
On Wed, 12 Feb 2003 23:57:02 +0000
Steve Harris <S.W.Harris(a)ecs.soton.ac.uk> wrote:
> Just to follow up, I rebuilt my test code on gcc3, and it went from C++
> being around 30% slower, to about 1% faster, which is what I expected to
> see in the first place. I guess they fixed the optimizer deficiency.
As a C fan I was rather curious about this. I didn't want people getting the
wrong impression that C++ is automatically faster than C (it isn't) or that in
the long term improvements in the C++ compiler will make it faster than C
(it won't). So I asked Steve for more details and he pointed me at the code:
http://plugin.org.uk/filter/
and suggested that further discussion of this issue should probably be moved
from the jackit-devel list to this one. So here we are. (Steve, please don't
take this as a slight on you, I simply want to get the facts right).
For those interested, my machine is a dual 450Mhz PIII, with SCSI disks,
2.4.20 kernel and running Debian Testing. All compilers and toolchain
programs are from Debian Testing; none have been compiled from source.
Debian is rather nice in that it allows more than one compiler to be
installed on a machine at anyone time. Here are the compilers I used for
my testing:
erikd@coltrane > gcc-2.95 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20011002 (Debian prerelease)
erikd@coltrane > g++-2.95 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20011002 (Debian prerelease)
erikd@coltrane > gcc-3.2 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.1/specs
Configured with: /mnt/data/gcc-3.1/gcc-3.2-3.2.1ds2/src/configure -v
--enable-languages=c,c++,java,f77,proto,objc,ada --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-java-gc=boehm --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.2.1 20020924 (Debian prerelease)
erikd@coltrane > g++-3.2 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.1/specs
Configured with: /mnt/data/gcc-3.1/gcc-3.2-3.2.1ds2/src/configure -v
--enable-languages=c,c++,java,f77,proto,objc,ada --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-java-gc=boehm --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.2.1 20020924 (Debian prerelease)
And here are the results running Steve's tests (neglecting the Objective
C tests because my system seems to be missing something):
Compiler Program Cycles
-------- ------- ------
gcc-2.95 ansic.c 85058
g++-2.95 cpp.C 90719
gcc-3.2 ansic.c 196581
g++-3.2 cpp.C 85042
Thats all a little strange. So lets look at the code. In cpp.C, Steve
defines a Lowpass class and its process member functions like this:
class LowPass {
private:
float ym1;
float a;
public:
void setA(float newa);
void reset();
float process(float x);
};
float LowPass::process(float x)
{
float y = ym1 * (1.0f - a) + x * a;
ym1 = y;
return y;
}
while the C version is defined like this:
typedef struct {
float ym1;
float a;
} lowpass;
float lowpass_process(lowpass *this, float x)
{
float y;
y = this->ym1 * (1.0f - this->a) + x * this->a;
this->ym1 = y;
return y;
}
So what is going on here? Well my guess is that both versions of g++ and the
older version of gcc are applying an optimisation that the new gcc isn't and
my guess is that the missing optimisation is function in-lining. So why was
in-lining present in gcc-2.95 and absent in gcc-3.2? Thats probably because
gcc-3.2 is working towards compliance with the C1999 ISO Standard. In C99,
inline is a new C keyword.
If I now change the lowpass_process function as follows:
inline float lowpass_process(lowpass *this, float x)
{
float y;
y = this->ym1 * (1.0f - this->a) + x * this->a;
this->ym1 = y;
return y;
}
and add -std=c99 to the gcc-3.2 command line, the new results are:
Compiler Program Cycles
-------- ------- ------
gcc-3.2 ansic.c 86299
g++-3.2 cpp.C 85042
So, g++-3.2 is still beating gcc-3.2. However, if g++ is in-lining one
function, its probably in-lining them all. Adding inline to all functions
in ansic.c gets these results:
Compiler Program Cycles
-------- ------- ------
gcc-3.2 ansic.c 85044
g++-3.2 cpp.C 85042
which is a 0.002 percent difference. My guess is that even this small
difference is purely in the start-up code which is completely irrelevant
when the speed that matters is in the processing loop.
This little exercise shows that there is more to benchmarking than just
getting results. Once you have results, you have to:
1) Compare the results with other results (ie gcc-3.2 and g++-32. vs
gcc-2.95 and g++-2.95).
2) Analyze the results and figure out why you get the results you get
(in this case, by compiling to assembler it would have obvious that
gcc-3.2 was not by-default in-lining functions while the others were).
I think that for applications like audio processing where speed is one of
the main goals benchmarking is extremely important. Personally I would
love to see more people do it properly and publish their results like I
did here:
http://www.mega-nerd.com/FPcast/
Results like these are repeatable and verifiable.
Cheers,
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam(a)mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
When a user mailbombs me with 100,000 messages, we
call it denial of service and the guy can be thrown
in jail. When 100,000 SPAMMERS send me one mail each,
we call it marketing.