hello there,
we are writing here a software that requires capturing code to stream live
voice from one machine and play it on the another machine through a
network.
can anybody enlighten us for a library or a method we can use to capture
the voice and stream it on the /dev/dsp??
as soon as we get this working, we will go through some advanced stuff,
and we will be sharing this with you later.
thanks and regards.
--
(o_
//\ Ghaith Nasrawi
V_/_ The American University in Cairo
"In all matters of opinion, our adversaries are insane."
Oscar Wilde
Hello,
the german magazine KEYBOARDS has answered a readers question
about audio and linux with tremendous ignorance. I think this
is a good chance to push linux to the attention of "the masses".
Here is the full text of question and answer (first in german,
so anyone can correct my errors ;-).
--- KEYBOARDS --------------------------------------------------
Leserbrief:
Habe mir schon ein paar Mal KEYBOARDS am Kiosk geholt, weil mich
gerade das Thema Recording und Computer interessiert. Einige
Artikel waren für mich recht interessant. Nur vermisse ich
gänzlich Vergleiche mit Linux. Ist es Absicht, dass dieses
aufsteigende System nicht erwähnt wird, oder traut sich keiner ran?
Seit einigen Monaten steige ich auf Linux um, nur meine
Musik-Geschichte hängt hinterher. Dabei gibt es in SuSE eine
Menge Musik-Software und Synthesizer, und ich habe gelesen, dass
einige Programme bald zur Marktreife gelangen. Von Verkäufern
höre ich, dass sie nicht am Linux interessiert seien, weil man
da nix mehr verdiene. Von anderen höre ich, Linux sei kein
Multimedia-System. Desinformation auf der ganzen Linie ...
Rainer Hain (KEYBOARDS):
Das Ganze ist ein recht kompliziertes Thema. Linus Thorvald
selbst hält Linux nicht für Audio oder generell für
Multimedia-Anwendungen geeignet. Low-Latency ist mit den
aktuellen Kerneln schlicht nicht zu machen, schon gar nicht
Multichannel.
Dazu kommt dann, dass ein Setup von Linux heute zwar simpel
ist, aber nur, solange man nicht von einem Standard-SuSE
abweicht. Und das muss man, wenn man Audio und MIDI betreiben
will. Deshalb springt kaum ein Sequenzer-Hersteller drau an, die
fürchten den ungeheuren Support-Aufwand. (Man erkläre dem User
mal am Telefon, dass er ein Make-File ändern muß und wie er dann
die Sources neu kompiliert ...)
Deshalb gibt es auch kein Package, was auch nur entfernt an
Cubase oder Logik herankäme.
An der Treiberunterstützung hapert es halt auch. Ich habe
hier zwar eine gute Auswahl an gängigen Interfaces (Audio und
MIDI), aber für keines davon gibt es Linux-Treiber.
--- english translation ----------------------------------------
Reader:
Sometimes I have bought Keyboards cause I'm especially
interested recording and computer. Some articles seemed to me
very interesting. But I deeply missed any comparisons with
linux. Is it intended that this rising system is not mentioned
or does noone felt able to do it?
Since some month I'm migrating to linux -- only my musical
things are left behind. Despite SuSE having a lot of music
software and synthesizers; and I read about some programs coming
to end-user stability soon. From dealers I hear, that they are
not interested in linux cause there is nothing to earn. Other
people say, linux is not a multimedia system. Desinformation
all along the line.
Rainer Hain (Keyboards):
This is a very complex matter. Linus Thorvald himself considers
linux not to be suited for audio or universally multimedia
applications. Low-latency cannot be achieved with current
kernels especially not multi-channel.
On top of that comes the fact, that a setup of linux is quite
simple today, but only if you don't leave the standard SuSE.
But this must be done to work with audio and midi. Therefore
hardly any sequencer manufacturer uses linux -- they fear the
tremendous support effort. (try to explain a user on the phone,
that he has to change a makefile and how he must compile the
sources ...)
Therefore there is no package that can hardly reach the level
of Cubase or Logic.
The driver support also is a problem. I have a great variety
of popular interfaces (audio and midi) but there is no linux
driver for one of them.
----------------------------------------------------------------
I hope we are able to shape a convincing answer!
Yours
Uwe Koloska
--
voiceINTERconnect www.voiceinterconnect.de
... smart speech applications from germany
Hello. I picked the text below from xine-devel, but I picked it too
late. If this topic has been discussed here, I have missed the thing.
If Europe gets the software patents, I'm willing to archive
any withdrawn software to our archive site ftp.funet.fi.
There they may wait another 20 years for reappearence.
What to do if Europe gets the software patents and your
software is requested to be taken away from public?
How far one should go in order to get the case officially
reported? At least, one should not take anything away
upon an e-mail request as then nothing is officially reported.
It is important to get the cases reported each time so that
the cases can be analysed later by the researchers.
Juhana
[ someone wrote in xine-devel ]
>The European Parliament will debate and probably decide on a proposal
>for a software patent directive on September 1st. If this directive is
>passed, things like algorithms and business methods such as Amazon
>One Click Shopping will become patentable in the European Union just
>like they already are in the United States.
>
>Read more about the issue here: http://swpat.ffii.org/index.en.html
Hi, I wrote a simple but very efficient real time safe memory allocator
in C++ that is useful in real time audio apps where you need to allocate
objects dynamically.
(badly enough there are still too many audio developers that
call new,delete, malloc() and free() within the audio RT thread !)
It works by pre-allocating a fixed pool of elements which can then
dynamically allocated and freed.
The alloc() and free() have fixed execution times and are inlined
thus if you look at the resulting assembly code it takes only
8-9 instruction for full allocation/deallocation.
It has the limitation that the pool contain elements of
the same datatype/size. Each element is a node of a doubly linked
list (the free-list) so keep in mind that if you create a pool
of N elements with s=sizeof(your_datatype).
The total memory usage is (N+2)*(s+8).
So it is not ideal to create large memory pools of chars (1 byte)
because for each char you would need 1+8 bytes of mem.
But for larger data structures it is ok.
creation of the memory pool:
RTMemoryPool *mypool=RTMemoryPool<your_datatype>(number_of_elements);
allocation of a element:
my_datatype *element=mypool->alloc();
freeing of an element:
mypool->free(element);
destruction of the memorypool: (frees up all the memory):
delete mypool;
Using the RTMemoryPool class requires only the inclusion of
the rtmemorypool.h header file, no .cpp files required.
You can download the RT memory allocator (which contains an small
example that user the class)
here:
http://www.linuxdesktop.it/download/rtallocator-0.0.2.tgz
if you find bugs or have suggestions let me know.
(write to benno@ and not sbenno@ because I do not read that mailbox,
too much spam).
cheers,
Benno
-------------------------------------------------
This mail sent through http://www.gardena.net
Hi,
Just a compilation fix:
* fixed a missing parameter that stopped compilation with recent GCC
versions
http://pkl.net/~node/alsa-patch-bay.html
Bob
--
Bob Ham <rah(a)bash.sh>
Can you say "death chambers at Guantanamo with no real trial"?
Greetings:
While profiling FLAC I discovered that the format includes a metadata
format for including cue sheet data for use in CD mastering
applications. When I looked for a Linux-based cue sheet editor I found
only the very outdated CDB (CD Builder), which, true to its author's
advice, will not build under GTK 1.2 or 2.x. I thought perhaps JAM would
concern itself with cue sheet data but I think that's not its domain
(the FLAC docs note that the cue sheet data is intended for CD authoring
apps).
Btw, I downloaded and tried running some Windows-based cue sheet
editors under WINE, with varying success, but none were completely
useful. Maybe I should update my WINE installation again, but I'd prefer
a Linux-based solution anyway.
Sorry for the cross-post, I thought perhaps someone on LAD might be
developing such a creature (?). Do any users on LAU utilize a cue sheet
editor for any of their work ?
Best regards,
== dp
>
>Hello,
>
>the german magazine KEYBOARDS has answered a readers question about audio
>and linux with tremendous ignorance. I think this is a good chance to push
>linux to the attention of "the masses".
>
>Here is the full text of question and answer (first in german, so anyone
>can correct my errors ;-).
>
>... snip
well the answer from the guy is in my opinion correct atleast for now.
You need a LL-patch to get audio work as desired and AFAIK there is
no main stream distro with that patch already applied.
Please dont misunderstand me, i love audio on Linux but there is still
some work to do until its is ready for "anyone". And i think thats what
the answer was about.
- Stefan
_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
Greg Reddin wrote:
> Is there a web resource or book or something where one can learn
> about these programming caveats for audio developers? I knew nothing
> of this problem, but it makes sense when you mention it.
I don't think that there is an all-in-one howto around, most infos
are scattered around the net (and most issues can be solved
with a bit of knowledge of the real time paradigm and a bit of
common sense)
>
>
> Or do I just have to do this for a few years and learn the hard way?
> :-)
Most developers seems to do so, they are just too lazy to think
about the constraints that real time programming imposes.
They believe they can make full use of the operating system,
call any system calls they like, C++ constructors, malloc()s etc,
accesss to mutexes locked by low priority GUI threads
and then after wonder why their application does not work with
low latencies or why there are sporadic dropouts they cannot get rid of.
most problems go away if you increase the buffer sizes (thus latency)
to let's say 20-50 msec, but as we know any soft-instrument with
bigger than 15-20msec latencies becomes unplayable
(measured by professional standards).
Anyway there are not many rules to follow:
run the audio thread SCHED_FIFO
(and do not use SCHED_FIFO on other threads, except
when you know exactly what you are doing).
in the audio thread just do not call any system calls except
read/write to the audio device .
especially file system ops memory allocation, calling C++
constructors/destructors (cause memory allocation/deallocation)
etc. Basically any operation that could possibly be blocked
because it has to wait for some event, data, etc.
Do all communication between audio thread and other threads
via lock free FIFOs or shared mem.
Avoid mutexes like they were radioactive material.
(there are a few execptions where they are allowed
like using mutexes between two real time threads where you know
that they will not tie up the CPU for more than a certain amount of time,
or using pthread_mudex_trylock() in the audio thread that
tries to acquire the mutex but if it fails it returns immediately
without stalling).
For example Ardour is well designed in this regard, and this is why
Paul is an experianced programmer (and probably learned some RT issues
the hard way too).
Unfortunately many audio apps on linux do not meet "low latency standards"
or better are not designed with real time safeness in mind and I think
it is one of the obstacles that keep them out of the professional
domain making them look like a toy.
It is sad because there are many nice apps with an excellent
sound generation engine, but often the framework around that engine
is weak.
It does not that actually that much energy to fix it but people
seem either too lazy to do that or either do not know what the
RT-safeness guidelines are. I never understood it ...
it is much more complex to desing a synthesis algorithm, etc
than just avoiding a few mutexes and use a lockfree-fifo instead etc.
Anyway I agree it would be cool to have page on the LAD site that
explain all these issues and provide source for some basic routines
and classes. This would prevent that the mistakes are made
all over again.
cheers,
Benno
http://linuxsampler.sourceforge.net
-------------------------------------------------
This mail sent through http://www.gardena.net
Hallo,
hat jemand von euch in der aktuellen Keyboards die Antwort von
Herrn Hain auf die Leseranfrage zu Linux und Audio gelesen? Die
strotzt ja nur so von Unwissen, das schier danach schreit eines
besseren belehrt zu werden. Vielleicht könnten wir ja gemeinsam
eine Antwort erarbeiten.
Bei Interesse könnte ich heute abend auch den Text von Frage und
Antwort hier posten (leider gibt's die Leserbriefe nicht auf der
Keyboards Webseite).
So long
Uwe
--
voiceINTERconnect www.voiceinterconnect.de
... smart speech applications from germany