Can someone please help me find a link to the open letter to kernel
developers regarding horrible latency with kernel 2.6 that Paul Davis,
Benno Sennoner and others posted to LKML in early 2004 (NOT the one from
2000) - the one that led Ingo to develop the voluntary preemption
patches.
I cannot find it with any amount of googling, and my local LKML archive
only starts in July 2004.
There was such a letter right? Am I crazy or just making this up?
Lee
Oggz 0.9.5 Release
------------------
Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
oggzdiff, oggzmerge, oggzrip, oggz-scan and oggz-validate.
liboggz is a C library providing a simple programming interface for reading
and writing Ogg files and streams. Ogg is an interleaving data container
developed by Monty at Xiph.Org, originally to support the Ogg Vorbis audio
format.
This release is available as a source tarball at:
http://www.annodex.net/software/liboggz/download/liboggz-0.9.5.tar.gz
New in this release:
* Fixed and updated Windows (Visual Studio) support
- added missing exported symbols, projects for oggz tools.
(Alex Krumm-Heller, Silvia Pfeiffer)
* Support for OggPCM (Draft 2, Main header)
OggPCM is an experimental specification for storing uncompressed
PCM audio in Ogg bitstreams.
- liboggz: Recognition of OggPCM timestamps, and support for
seeking in files that contain OggPCM logical bitstreams.
- oggzinfo: Display OggPCM header details
- oggzdump, oggzrip: New [--content-type pcm, -c pcm] option
to filter on OggPCM
- oggz-validate: Validate framing of OggPCM logical bitstreams
This version is installed on http://validator.annodex.org/ for
online validation of OggPCM files.
For more information about OggPCM, see:
http://wiki.xiph.org/index.php/OggPCM
* ./configure support for large (>2GB) files
This version adds build configuration support for large files,
allowing liboggz to operate on files >2GB. This version does
not introduce any API changes; interfaces such as oggz_tell()
continue to use off_t externally. However, sequential reading
and validation of large files is now possible.
* bug fixes and cleanups:
- oggz-validate, oggzmerge, oggzdump, oggz-scan, oggzinfo: handle
unknown content types (Ian Malone)
- remove deprecated oggzed example
- various code and documentation build cleanups
About Oggz
----------
Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
oggzdiff, oggzmerge, oggzrip, oggz-scan and oggz-validate.
liboggz supports the flexibility afforded by the Ogg file format while
presenting the following API niceties:
* Full API documentation
* Comprehensive test suite of read, write and seeking behavior.
The entire test suite can be run under valgrind if available.
* Developed and tested on GNU/Linux, Darwin/MacOSX, Win32 and
Symbian OS. May work on other Unix-like systems via GNU autoconf.
For Win32: nmake Makefiles, Visual Studio .NET 2003 solution files
and Visual C++ 6.0 workspace files are provided in the source
distribution.
* Strict adherence to the formatting requirements of Ogg bitstreams,
to ensure that only valid bitstreams are generated; writes can fail
if you try to write illegally structured packets.
* A simple, callback based open/read/close or open/write/close
interface to raw Ogg files.
* Writing automatically interleaves with packet queuing, and provides
callback based notification when this queue is empty
* A customisable seeking abstraction for seeking on multitrack Ogg
data. Seeking works easily and reliably on multitrack and multi-codec
streams, and can transparently parse Theora, Speex, Vorbis, FLAC,
CMML and Ogg Skeleton headers without requiring linking to those
libraries. This allows efficient use on servers and other devices
that need to parse and seek within Ogg files, but do not need to do
a full media decode.
Full documentation of the liboggz API, customization and installation,
and mux and demux examples can be read online at:
http://www.annodex.net/software/liboggz/html/
Tools
-----
The Oggz source tarball also contains the following command-line tools,
which are useful for debugging and testing Ogg bitstreams:
* oggzinfo: Display information about one or more Ogg files and
their bitstreams.
* oggzdump: Hexdump packets of an Ogg file, or revert an Ogg file
from such a hexdump.
* oggzdiff: Hexdump the packets of two Ogg files and output
differences.
* oggzmerge: Merge Ogg files together, interleaving pages in order
of presentation time.
* oggzrip: Extract one or more logical bitstreams from an Ogg file.
* oggz-scan: Scan an Ogg file and output characteristic landmarks.
* oggz-validate: Validate the Ogg framing of one or more files.
License
-------
Oggz is Free Software, available under a BSD style license.
More information is available online at the Oggz homepage:
http://www.annodex.net/software/liboggz/
enjoy :)
--
Conrad Parker
Senior Software Engineer, Continuous Media Web, CSIRO Australia
http://www.annodex.net/http://www.ict.csiro.au/cmweb/
Hi!
Specimen might be dead or in keep-functioning-maintainance only,
and work based on these mockups had been canceled before due to
them being too time consuming to implement and doubts on
extendability, anyway :(
BUT, instead of them just bit-rotting on my hd, I rather present
them here, since they could still be an inspiration to someone :)
1. Keys and Main:
http://xs71.xs.to/pics/06102/specimen_18_keys_main_i.png
2. Mixer and Pitch:
http://xs71.xs.to/pics/06102/specimen_18_mixer_pitch_i.png
Like in the actual Specimen, all sliders are fan-sliders.
(http://leute.uni-wuppertal.de/~ka0394/en/fan-sliders/index.html)
On the left there are 16 MIDI channels down. The numbers also
act as MIDI activity indicator (3 is receiving something).
They're followed by volume slider, mono, solo and name.
The selected channel (1) is connected to the Keys/Mixer area.
This works a bit like tabs, but allows that section to come
up from the sunken field, resulting in cleaner look.
It's all meant to be GTK theming friendly.
On the keys area, Patches are assigned to keyboard ranges.
They can be put in columns to allow layering. The base note is
marked (D here, could have made that more obvious).
The selected Patch is shown in inverted colour.
The Mixer area is a bit redundant as it is shown here.
Initialy it was meant to not just allow access to panning over
what the channels section on the left offers, but also Cut/Cut by
(a more versatile, but not exactly self explaining system than
exclusion groups, used for cutting off a open hi-hat on a closed
one and similar things). Every selection of Parameters could be
shown in that table, though.
The right section shows the selected Patch. It was a goal to
keep the Specimen window rather small to make using it with other
apps more handable, so a number of tabs were needed.
The not shown Volume, Panning, Cutoff and Resonance tabs
would be much like the Pitch one. Contents of that tab should be
pretty selfexplainatory, or it's no good anyway :)
The 3 sections layout and the Keys area where all my own idea, but
Pete Bessman's influence and decisons are all over the place.
Cheers,
Thorsten Wilms
---
http://xs.to - Free Image Hosting
Hey all,
just noticed that Roland's CG-8 Visual Synthesizer
(http://www.edirol.net/products/en/CG-8/) is yet another product based on
Linux. You can get their sources at: http://www.roland.com/support/gpl/ -
there in the first download you'll see ALSA and GTK sources. Now when will
they release a Linux-based workstation that doesn't cost like OASYS? ;-)
Artemiy.
Hello List,
I'm new to audio programming and have problems finding the right
solutions for the development I work on right now:
I need to use the left and the right audio channel seperately. The
device is an ARM based board with a AC97 soundchip. It seems to work
with OSS so far and I did choose libsdnfile to open Soundfiles and get
the PCM. As far as I learned the audio data is coded in one stream,
one sample left, one sample right. Is there a way to separately fill
the soundcard buffers with ALSA?
The only solution I can think of right now is to recode the audio
data to left only or right only and to use a library like esound to
mix them together. Is this the right way to do such a thing?
Any suggestions, pointers, hints are highly welcome.
Greetings,
Tobias
I got myself one of the PlusDeck units last summer after having received
some documentation from the product team about their serial control
protocol, so I figured that I'd have some chance at actually making a
recording program for Linux for it.
The impetus for all of this is a stack of 300 or so audio tapes that my
fiancee has, which contain mostly south Indian music recordings, including
training lessons, from her late teacher T Viswanathan. Some of those
probably don't exist anywhere else at this point, so putting them to digital
would be a good thing (tm).
Anyway, I have 2 goals.
First, the practical, get all this music to digital dumps (flac in ogg
containers for metadata seems to be the best bet). I'm trying to figure out
the best ways to do this on a Mandriva Linux 2.6.12 kernel (on an AMD64
3000+ processor running 32bit, with Via onboard sound.) The PlusDeck just
ends up being an input line jack into the sound card.
I've run some tests with ecasound both straight off the alsa device, and
through ecasound to jackd (both as root to get real time). It is hard to
tell if I'm doing better with jackd or not, but I'm making some long
recordings and letting my musical fiancee tell me if she can hear the
difference. :)
Given that I've got the serial protocol sorted out, it seems like the
practical approach is just a command line ripper that will start up all the
right audio bits, start the tape, and stop when the tape gets to the end.
Full automation is what I'm looking to create.
Is ecasound a good option here? How much better will ecasound + jackd be
over ecasound at realtime? Would building some kind of plusdeck control
plugin for another recording program make more sense? If so, which one?
Second, I'd like to turn whatever I learn during the practical phase into a
reasonable open source Linux tool for using the PlusDeck. I'd be a bit
unnerved if that required that I set up all jack & ecasound bits, as well as
kicked them off as setuid root, but better options are failing me at the
moment.
Any advice, ideas, suggestions, questions... even flames would be welcomed.
I've spent a bit of time learning more than I ever thought I'd end up
knowing about Linux audio already, and know I have a whole lot more I need
to learn still.
Thanks in advance,
-Sean
--
__________________________________________________________________
Sean Dague Mid-Hudson Valley
sean at dague dot net Linux Users Group
http://dague.nethttp://mhvlug.org
There is no silver bullet. Plus, werewolves make better neighbors
than zombies, and they tend to keep the vampire population down.
__________________________________________________________________
Tobias,
I wrote a program that does just this some years ago for IED
(www.iedaudio.com). What you are doing is not trivial. When an announcement
starts on the left channel (for example) you will want to fill the right
channel with zeroes. However you must fill the buffers in small blocks so
that if an announcement starts on the right channel, you can start stuffing
the right channel without a long delay. You might want to investigate Paul's
program JACK for this. It splits the audio into separate buffers for each
I/O.
If you really have to have it ASAP, why not just buy an IED system? :)
-Ben
Ok, given a pair of commodity Linux PC's with cheapo onboard audio
codecs capable of SPDIF input and output, assuming I sent identical
input signals into both machines and didn't perform any processing in
the middle, could I reasonably expect the output signals to be
synchronized, or should I expect unpleasant phasing / delay effects
when listening to both channels simultaneously as a result of the
inherently flakey consumer-grade codecs?
The above is a simplification that should address my major concern...
The goal here is to use a pair of redundant, inexpensive machines for
live midi-controlled (headless) playback where the physical security
of the location is lax enough that using my laptop + hammerfall would
be too risky, not to mention 35 channels worth of overkill. Ideally
these two machines would accept some sort of SPDIF format square-wave
from some low power clock logic on their inputs and play identical,
pre-cached wav files on their outputs when they recieve simultaneous
"go" signals from the MIDI playback desk.
Any experiences or opinions are welcome...
Thanks,
- Mike Piantedosi
jack.udp may be used to transmit audio between two computers, each
computer running their own jackd.
My understanding, based upon earlier threads in the linux audio lists,
is that to avoid xruns due to clock drift in this situation, the sound
cards of the two computers must be synchronised in some way, e.g. using
word clock.
Is this (still) correct? Or has jack.udp been developed to include
synchronisation?
(On a side note, it seems that Rohan Drape's web pages that are linked
to from the jack pages, http://www.alphalink.com.au/~rd/sw/jack.html,
have disappeared.)
Asbjørn Sæbø
Gerard van Dongen/Gilcher passed away on Friday the 4th of March, after
a brave battle with colon cancer. Gerard worked as a composer, musician
and computer programmer in Rotterdam as well as played live with many
improvisational and electronic musicians in the Netherlands including
Bart Maris, Tom Wouters, Joe Williamson, Henk Bakker, Peter van Bergen
and Ann LaBerge. He performed solo-concerts with electronics and/or
piano compositions and played for numerous dance and theatre
productions, produced radio-plays for the internet, and was a technical
designer and software programmer for multimedia theater. Gerard was also
an active member of the Pure Data and Linux Audio Developers
communities, and contributed code for the user interface of the Ardour
project.
Gerard kept a very positive outlook throughout his illness, and he will
certainly be missed.
Marie Louise Gilcher has organized a memorial service for Thursday, 9
March at the "Crooswijk" Cemetery in Rotterdam.
--
derek holzer ::: http://www.umatic.nl
---Oblique Strategy # 118:
"Make what's perfect more human"