On 01 Apr 2003 22:57:28 -0500
Nick <nicktsocanos(a)charter.net> wrote:
> I am writing audio applications that are real-time.
> I had been using Port Audio which is really very good, even without root
> priviledges, it does a very good job. I want to support other sound
> drivers, in case someone doesn't have Port Audio or can't get it to
> work.
>
> I have just built my ALSA driver, it works ok, but I am getting terrible
> latency problems and buffer underruns. The thing is it is a real-time
> application, it must get audio to the card as soon as possible. Why is
> it that OSS with Port Audio works so well, and my ALSA setup is
> suffering?
>
> Is there something I need to do to ALSA to get near real-time
> performance from it? I have heard people mention patching their kernel
> for low latency. I have Jack but I have not started working with it yet.
> Should I dump ALSA and just go for Jack? Is there something I need to do
> to my kernel to get better performance? I would get Planet CCRMA if it
> supported my OS, but it doesn't, so I have to tweak my box manually.
High Nick !
At the moment there are two different approaches for low-latency in the
linux-kernel.
The first is from Ingo Molnar; it's quite simple but efficient (conditional
scheduling at critical places).
You can get it at
http://people.redhat.com/mingo/lowlatency-patches/lowlatency-2.4.0-test7-A0
The second is made by Robert Love, it makes real heavy Changes in the Kernel
which have a noticeable negative impact on overall System-througput, but the
results are quite amazing !
The Patch is integrated int the 2.5-Kernel (CONFIG_PREEMPT), patches for 2.4
are available at
ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/
I use Robert's patch with the 2.5-Kernel since half a year without Problems;
The interactive response of the Sytem under high loads is now MUCH better.
Lacking real real-time Software i don't know if it helps there too.
If the low-latency patches for the Kernel don't cure your Problem, consider
testing a new 2.5.6x-Kernel; the scheduler was really improved in the last
months ...
Hi,
Thanks for quick the feedback.. Sox seems to come the closest to what I want
such a program to do.
---
Roel / Utopia Sound Division
http://www.utopiasd.com
I am writing audio applications that are real-time.
I had been using Port Audio which is really very good, even without root
priviledges, it does a very good job. I want to support other sound
drivers, in case someone doesn't have Port Audio or can't get it to
work.
I have just built my ALSA driver, it works ok, but I am getting terrible
latency problems and buffer underruns. The thing is it is a real-time
application, it must get audio to the card as soon as possible. Why is
it that OSS with Port Audio works so well, and my ALSA setup is
suffering?
Even if I set the frame rate higher (the number of frames to the card) I
still get buffer underruns. I am talking maybe 70 milliseconds now. This
is sad, because I know with DirectX I can get about 35 ms timing with it
on this machine.With ASIO I have done better than that.
Even running as root and scheduling the app to real-time priority (50) I
get buffer underruns. So, something must not be right with my setup.
I have tried setting the frames written to all sorts of latencies, and
it does reduce the drop outs, but I am still getting them. I tried
buffering the sound and dropping it in blocks, but it wasn't working
correctly. This is a bit disappointing so far.
Is there something I need to do to ALSA to get near real-time
performance from it? I have heard people mention patching their kernel
for low latency. I have Jack but I have not started working with it yet.
Should I dump ALSA and just go for Jack? Is there something I need to do
to my kernel to get better performance? I would get Planet CCRMA if it
supported my OS, but it doesn't, so I have to tweak my box manually.
Thanks
--
Nick <nicktsocanos(a)charter.net>
Hi,
I'm looking for a command-line/console mode program which is available for
Linux and Windows which can resample samples (e.g. 48 Khz to 22 Khz) and to
some 'equalizer' processing to those samples. The result should of course be
written to the disc again. I'm looking for such a program for the use in the
installer of a commercial set of piano instruments which we want to make
available under windows and linux (currently only in the soundfont format,
but the product isn't released yet).
The program doesn't have to be free to use and I'm willing to pay for it's
use as long as the price isn't above my budget (around 100 euros).
---
Roel / Utopia Sound Division
http://www.utopiasd.com
Hello all,
I'm preemptivly asking a question that'll hopefully be put to
good use this week. I found a nice deal on a Delta44 off Ebay the other
night, and jumped on it. Can't wait until it shows up!
However, I'd like to *add* it to my machine, and keep me SB Live
for some stuff like everyday listening and perhaps some cheap output
monitoring. I've had friends tell me this doesn't work in Windows
because Windows will only record at the lowest-common-denominator
capabilities of all cards in the system (ie, 16/44 in a system with an
Delta44 and an SBLive).
Is this an issue with either ALSA or OSS in Linux 2.4? Also, I
know there are emu10k1 audio routing utilities, and I know there are
envy24 audio routing utilities. Is there a way I can route audio
between the two cards at all?
--
Ross Vandegrift
ross(a)willow.seitz.com
A Pope has a Water Cannon. It is a Water Cannon.
He fires Holy-Water from it. It is a Holy-Water Cannon.
He Blesses it. It is a Holy Holy-Water Cannon.
He Blesses the Hell out of it. It is a Wholly Holy Holy-Water Cannon.
He has it pierced. It is a Holey Wholly Holy Holy-Water Cannon.
He makes it official. It is a Canon Holey Wholly Holy Holy-Water Cannon.
Batman and Robin arrive. He shoots them.
On Mon, 31 Mar 2003 22:59:35 -0500
Ivica Bukvic <ico(a)fuse.net> wrote:
> I am trying to compile Gem from source (for Pd), and while it does compile
> without any problems at runtime (pd -lib Gem) I get the following issue:
>
> /usr/lib/pd/extra/Gem.pd_linux: /usr/lib/pd/extra/Gem.pd_linux: undefined
> symbol: __ctype_toupper_loc
> /usr/lib/pd/extra/Gem: can't load library
It seems that you have used the headers of an old glibc when compiling and try
to run with a newer glibc.
__ctype_toupper_loc was introduced in September 2002 glibc (don't
know the version-number).
Execute the file /lib/libc.so.6, it will tell you its version.
I don't know a way to look up the Version of your installed Header-Files
from glibc, maybe you can ask your Package-Manager.
Anyway, your Headers and Librarys MUST match !
> I tried building the static version, but then I get the following error:
> g++ -o Gem.pd_linux -L/usr/X11R6/lib -L../../../GemLibs/liborb ../Manips/*.o
> ../Particles/*.o ../Base/*.o ../MarkEx/*.o ../Pixes/*.o ../Controls/*.o
> ../Nongeos/*.o ../Geos/*.o ../openGL/*.o -shared -lquicktime -lmpeg3 -lorb
> -lglib -lgltt -lttf -ljpeg -ltiff -lpng -lglut -lGLU -lGL -Wl,-Bstatic -lz
> -lm -Wl,-shared -Wl,-export-dynamic -lXxf86vm -lXext -lX11
> /usr/bin/ld: cannot find -lgcc_s
> collect2: ld returned 1 exit status
Your gcc was configured with "--enable-shared" to use a shared libgcc (called
libgcc_s; only used for C++), but can't find it. See below
Also you dont really try to build the static version, as -shared -Wl,-shared
-Wl,-export-dynamic shows.
> I then checked
> ld -lgcc_s
>
> And the only thing I got was:
> ld: warning: cannot find entry symbol _start; not setting start address
> Now, could someone please tell me what the heck does this mean???
You have invoked the linker ld, ist is used to link a prog, not to query
dependencies
> ldd /usr/lib/libgcc_s.so gives:
> libc.so.6 => /lib/i686/libc.so.6 (0x4001a000)
> /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
You have the needed lgcc_s in a place where the linker normaly looks for it.
But
> /usr/bin/ld: cannot find -lgcc_s
says, that he can't find it ? Very strange ...
Try to alter the specs-file from your gcc, it should be in the syme location
as libgcc.a (try gcc --print-libgcc-file-name).
The specs file contains a line like
*libgcc:
-lgcc
replace -lgcc with the following line
"%{!shared:-lgcc} %{shared:/usr/lib/libgcc_s.so}"
(only valid for gcc3, i don't know if older gcc's use the same Syntax !!)
In case of an accident (the file is very sensible with spaces)
you can reconstruct the original specfile with
gcc -dumpspecs > specs; or simply delete the file, gcc has a copy of it
built in.
You my also have a look in the linker-scripts from ld, there location depends
on the configuration binutils, search for elf_i386*.
Then look if the SEARCH_DIR-Entrys includes "/usr/lib".
But the best thing you could do to solve your Problem is to reinstall your
glibc, glibc-devel, gcc, g++ and binutils-packages, when this does not not help,
consider switching to another distribution ...
Regards
Norbert
greetings all!
i am a bit of a controller freak and have just started looking into the
iCubeX system (http://www.infusionsystems.com/index.shtml). i used to
roll all of my own control devices, but i am a bit short on time as of
late (full time jobs tend to do that). i'd like to give this thing a
chance.
i see that paul davis (you rock, dude) wrote a gnu/linux editor for the
device that controls a limited subset of its features, but it looks like
the software hasn't been touched for some time.
i am interested in using it with pd primarily and possibly jmax. my
question is this: does anyone out there have any experience to share
with me re: using this gadget with gnu/linux /only/. i don't do windows
at home, so i'd like to know what i can expect.
anywho, enough of that...so, anyone know anything about this doo-dad?
thanks!
j.c.w.
Hi all,
This is the issue I've been dealing with for the past couple of hours. I am
using mostly vanilla Mdk 9.0.
I am trying to compile Gem from source (for Pd), and while it does compile
without any problems at runtime (pd -lib Gem) I get the following issue:
/usr/lib/pd/extra/Gem.pd_linux: /usr/lib/pd/extra/Gem.pd_linux: undefined
symbol: __ctype_toupper_loc
/usr/lib/pd/extra/Gem: can't load library
I've tracked this one to the gcc library (please correct me if I am wrong).
However, there are no errors at compile time:
g++ -o Gem.pd_linux -L/usr/X11R6/lib -L../../../GemLibs/liborb ../Manips/*.o
../Particles/*.o ../Base/*.o ../MarkEx/*.o ../Pixes/*.o ../Controls/*.o
../Nongeos/*.o ../Geos/*.o ../openGL/*.o -shared -lquicktime -lmpeg3 -lorb
-lglib -lgltt -lttf -ljpeg -ltiff -lpng -lglut -lGLU -lGL -lz -lm -Wl,-shared
-Wl,-export-dynamic -lXxf86vm -lXext -lX11
I also tried adding all over the place -lgcc like this:
g++ -o Gem.pd_linux -L/usr/X11R6/lib -L../../../GemLibs/liborb ../Manips/*.o
../Particles/*.o ../Base/*.o ../MarkEx/*.o ../Pixes/*.o ../Controls/*.o
../Nongeos/*.o ../Geos/*.o ../openGL/*.o -shared -lgcc -lquicktime -lmpeg3
-lorb -lglib -lgltt -lttf -ljpeg -ltiff -lpng -lglut -lGLU -lGL -lz -lm
-Wl,-shared -lgcc -Wl,-export-dynamic -lgcc -lXxf86vm -lXext -lX11
and the compile is successful, but I still keep getting the same error.
I tried building the static version, but then I get the following error:
g++ -o Gem.pd_linux -L/usr/X11R6/lib -L../../../GemLibs/liborb ../Manips/*.o
../Particles/*.o ../Base/*.o ../MarkEx/*.o ../Pixes/*.o ../Controls/*.o
../Nongeos/*.o ../Geos/*.o ../openGL/*.o -shared -lquicktime -lmpeg3 -lorb
-lglib -lgltt -lttf -ljpeg -ltiff -lpng -lglut -lGLU -lGL -Wl,-Bstatic -lz
-lm -Wl,-shared -Wl,-export-dynamic -lXxf86vm -lXext -lX11
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [Gem.pd_linux] Error 1
I then checked
ld -lgcc_s
And the only thing I got was:
ld: warning: cannot find entry symbol _start; not setting start address
Now, could someone please tell me what the heck does this mean???
ldd /usr/lib/libgcc_s.so gives:
libc.so.6 => /lib/i686/libc.so.6 (0x4001a000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
At this point, I am confused and do not know what to do. I tried upgrading
ldconfig, ld, and am currently recompiling gcc from a cooker source (which is
taking a lot of time). So, I would greatly appreciate any help I can get on
this issue, since the whole idea of linking is not so clear to me.
Finally, I would appreciate the explanation of -Bstatic flag which seems to
invoke -lgcc_s that is subsequently not found for whatever reason, despite
the fact the ld otherwise finds it (with the aforementioned warning though).
Any help on this issue is greatly appreciated! Sincerely,
Ico
Hello,
I'm am sure this is off topic but I am desparately seeking help.
I am trying to figure out how the mixer/preamp/input card will coincide
with each other.
If I have a card with 4 inputs (either midiman digital or SB lives), I
will be needing preamps. I looked at the M-Audio Audio Buddy, which seems
like it simply has 2 XLR inputs and 2 1/4" outputs. That part is
straightforward and I understand.
However, I was looking at mixers and I got lost. I looked at a Eurorack
(cant remember which model) for around $170. It had 4 XLR inputs, and the
box said it had 4 mic preamp inputs. But, how do the outputs work? I was
looking for 4 1/4" jacks marked "output 1" "output 2" and so forth. Where
am I lost?
Please forgive me for asking such newbie questions. I simply do not know
where else to turn. I've searched the net high and low and didn't find the
answers.
Thank you very much in advance,
Bryan