I'm writing a library in ruby for dealing with audio data, and I'm faced
with a design decision.
For several reasons, the best thing to use in ruby for numerical data is
NArray[1] which is implemented in C for efficiency. So my code is
basically a wrapper around NArray which gives some more specific
functionality.
I want to support multichannel data, and this is where the design
decision comes. Most of the time I've seen code that handles
multichannel information in an interleaved fashion (each frame is
consecutive samples in the array), but I have once or twice seen
channels placed end-to-end or in different arrays altogether. It will of
course be possible to extract and/or merge channels to deal with
libraries (e.g. libsndfile, which I will also be wrapping) or existing
code that works one way or the other, but I wonder which should be the
internal format to use.
What are your thoughts? What is best practice on multichannel audio, or
is it always application-specific?
For a fluctuating peek (think CVS, although I use darcs) into what I'm
doing, check out http://hans.fugal.net/src/ruby-audio
1. http://www.ir.isas.ac.jp/~masa/ruby/index-e.html
--
Hans Fugal ; http://hans.fugal.net
There's nothing remarkable about it. All one has to do is hit the
right keys at the right time and the instrument plays itself.
-- Johann Sebastian Bach
Hi,
QjackCtl 0.2.19 has been released.
The Qt(cutie)-based GUI control panel for the JACK Audio Connection Kit
service has come of age. You can grab it right away from the "official"
home site:
http://qjackctl.sourceforge.net
Release notes as taken straight from the change-log:
- Connections widget views are now properly refreshed after renaming
client/ports (aliases).
- Disabled system tray and ALSA sequencer support on configure time,
whenever building for MacOSX as default.
- Fixed the major issues with selecting an audio interface on Mac OSX;
the button the right of the interface combo is now much better looking
than it was before; input/output channel counts are also updated
automatically now (thanks to Jesse Chappell for the patch).
- Prevent the setting of the coreaudio device id on the jackd command
line (-n) whenever the default interface is being selected.
- The connections and patchbay windows are now allowed to have a wider
connection lines frame panel; splitter width sizes are now persistent
across application sessions (thanks to Filipe Tomás for the hint).
- Activation toggling feedback on the patchbay widget has been fixed;
additionally and as found convenient, the most recently used patchbay
definitions can now be loaded immediately by selecting from a drop-down
list widget, which replaces the old static patchbay name status text,
and adds a lil'icon too :)
- All widget captions changed to include proper application title prefix.
- Attempt to bring those aging autoconf templates to date; sample SPEC
file for RPM build is now being included and generated at configure time.
- The current selected device is now shown with a checkmark on the
device selection menu(s), while on the settings dialog.
- Set to use QApplication::setMainWidget() instead of registering the
traditional lastWindowClosed() signal to quit() slot, just to let the
-geometry command line argument have some effect on X11.
Enjoy,
--
rncbc aka Rui Nuno Capela
rncbc(a)rncbc.org
Hi!
I am working on a GUI designing tool for LADSPA/DSSI around Qt
designer. The idea is to extend the DSSI gui concept to LADSPA (OSC
control included) and provide a skinnable tool to manually design
GUIs. I plan also to include some user interaction enhancements.
You can see some fancy concept diagram here
http://flam.sourceforge.net/
There is some code behind it, too, but at the moment its structure is
fluctuating and no effort of autotoolization/sconification has been
done. There is a working skinnable slider and flamwizard is half
finished.
The skinnability will by provided by means of QStyle plugins. You can
have very minimalistic depictions of the UI gadgets or hardware panel
simulations.
The GUI viewer, called flammer, will allow for loading/saving presets
and load alternate GUI layouts for a given plugin at runtime.
Now I have a doubt about LADSPA_HINT_SAMPLE_RATE. To effectively
incorporate this hinting in the GUI, the host must have some means of
letting know the GUI what the current sample rate is. Is there any
standard procedure for achieving this?
Comments, ideas, please?
Cheers,
Luis
Hi all,
Denemo is really lacking alsa support. Unfortunatly Denemo has only one
coder who is working a full time job. Is there a kind soul out there who
could help implement ALSA support for Denemo. And if you live nearby I
would gladly buy you a beer of your choice :) thats if you drink beer...
Thanks
Aaron
LDAS (Low Delay Audio Streamer) is software for full-duplex
low-latency transmission of audio over IP. This is the first public
release.
At this point, the basic functionality is present -- LDAS is capable
of transmitting full duplex two-channel audio between two computers.
This has been tested using the ldas_mate binary running on two
computers equipped with SoundBlaster Live sound cards.
(Note however that the software is still in an early state. Features
are lacking, and the code is somewhat fragile.)
* Download: http://www.q2s.ntnu.no/~asbjs/ldas/ldas-0.1.0.tar
* Web page: http://www.q2s.ntnu.no/~asbjs/ldas/ldas.html
* Mailing list: https://pat.q2s.ntnu.no/mailman/listinfo/ldas-dev
* Q2S web page: http://www.q2s.ntnu.no/
LDAS is released under the GNU GPL. It comes with no warranty.
Many thanks to Lee Revell, who has taken part in the development of
LDAS. His contributions have been very valuable, and a great help in
getting this far.
LDAS is developed at Centre for Quantifiable Quality of Service in
Communication Systems (Q2S), at the Norwegian University of Science
and Technology.
Asbjørn Sæbø
--
Asbjørn Sæbø
Post.doc.,
Centre for Quantifiable Quality of Service in Communication Systems
Norwegian University of Science and Technology
Hello all!
Please excuse me for a little off-topic post. I've just upgraded my Mandriva
distro from 2005 to 2006, and now AMS won't start:
[artemio@localhost ams-1.8.7]$ ams
QMultiInputContext::changeInputMethod(): index=0, slave=xim
LADSPA_PATH: /usr/lib/ladspa/
loadPath: /home/artemio/audio/patches/AMS/,
savePath: /home/artemio/audio/patches/AMS/
Alsa_driver: detected more than 1024 playback channnels, reset to 2.
ALSA lib pcm_mmap.c:368:(snd_pcm_mmap) mmap failed: Invalid argument
Alsa_driver: can't set playback hardware parameters.
Can't connect to ALSA
What can this mean? Other audio apps making use of ALSA work just fine
(Hydrogen, ZynAddSubFx, etc.).
Thanks for any help,
Artemiy.
>From: James Courtier-Dutton <James(a)superbug.co.uk>
>
>It was just an example. The actual range depends on the sound card
>hardware, but the typical limit is something like -60 dB or -80 dB.
Do you process each channel with audio software prior mixing?
If yes, then I would suggest to fix the hardware levels to
the optimum level, and use gains only in software.
As FA wrote, soundcards most likely do not have click-free mutes
and smooth gains. When the hardware is fixed, you may do faded
mutes in software with good quality.
Fixing the hardware input and output levels makes sense to me.
The input devices all have fixed SNR -- it does not help to
crank up the soundcard input level as it brings the noise up.
The output would be fixed for the same reasons.
Also, fixing the output prevents you accidentally damage the
speakers and your ears. When you crank up the gain in software,
you may have a software limiter prior the monitor outputs.
Once I watched when a friend mastered CDs. The fades were
auditioned by cranking up the level on the mixer desk. A couple of
times happened that the level was not set back to normal position
when needed. :-| By fixing the hardware (including external mixer
desk) in the audio path, you may have full control with the software.
Soundcards are not optimal for listening fades. Only software gain
allows one to audition the fades. With hardware gain the sound can
be muddy, but most likely your card cannot make +64 dB gains
needed in listening the fades.
Cards equipped with an user-programmable dsp chip allows one to move
the code from the software to the firmware. I'm in understanding
that in SB Live all hardware gains are actually software gains.
I.e., they have fixed the hardware.
Juhana
--
http://music.columbia.edu/mailman/listinfo/linux-graphics-dev
for developers of open source graphics software
Hi,
I am an ALSA developer. I was hoping that someone on this list would
have experience with professional mixing desks.
I would like to duplicate the behavior of professional mixing desks in
the alsa mixer controls.
I am only interested in gain control at this point.
There are effectively two separate but linked controls for each gain
control.
a) Mute control
b) Gain control in dB.
If I have a gain control that starts at 0 dB, with each step down by 1
dB until -40dB. With DSPs, it is very easy to add the next step down as
being the mute level. E.g. Sample * gain_multiplier where for the mute
level, gain_multiplier = 0.0, thus resulting is a zero sample output.
My question is really what should I do when the gain_multiplier is 0.0
Do I:
a) Limit the range of the gain control to 0dB to -40 dB and have a
separate Mute control.
b) When the gain control has a gain_multiplier of 0.0, automatically
activate the Mute control.
c) Some other method.
Thank you
James
Dear friends,
I have managed to contact the guy (Sebastian Gottschall,
brainslayer/at/braincontrol/dot/org) who is converting the UltraMaster Juno6
synth to windows VST format and I got the original sources from them.
According to his saying, the original authors allowed him to publish the
sources as GPL so there should be no worrying even though each and every file
in there contains the old restricting license notice.
You will find the sources at my web site:
http://artemio.net/projects/juno6/download/source/juno-1.0.1.tar.bz2
I have made an attempt to build Juno6, but AFAIK it is based on glibc 1.x and
many C expressions they have are obsolete. But I believe that with some
little tweaks the code will compile, though I myself won't be able to help.
What I want to ask, is someone interested in resurrecting this nice synthie?
First step would be to make it compile with the current feature set. Then see
if it's possible to add ALSA MIDI and audio support, and so on (maybe add
DSSI too, etc.). I would assist in providing a dedicated web site and hosting
for it, no probs.
Again, it's a very nice synth with fat and warm sound, I think it really is
worth the work.
With best wishes,
Artemiy.