Had the idea that you could kill denormals without branching
if you didn't mind "injuring" nearby numbers that weren't
quite denormal:
/* branch-free denormal killer */
inline float FlushToZero( volatile float f )
{
f += 9.8607615E-32f;
return f - 9.8607615E-32f;
}
/* end */
This function leaves anything higher than 9.8607615E-32
(ie 2 ** -103) completely unchanged. Numbers below this
value lose one bit of precision for each binary order of
magnitude they are below it. This has the effect that
denormal numbers lose *all* their precision, ie they
become zero.
Simon Jenkins
(Bristol, UK)
Too everyone who's waited with bated breath for this day to come
(primarily me), rejoice in the first beta release of Specimen, a midi
controlled audio sampler for GNU/Linux systems.
Features as listed on the webpage:
# ALSA sequencer interface support.
# Audio output via ALSA or JACK.
# Individual panning and volume controls for each patch.
# High quality cubically interpolated pitch scaling.
# Sample start/stop and loop points.
# Three playback modes; "normal" just plays the sample, "trim" plays
the sample and stops early if so instructed, "loop" plays the sample
for the requested duration.
# Patch bank saving and loading in the "beef" file format.
Check out www.gazuga.net for more and to download the source. I'm
gonna spend the next few days giving the program a usability test and
creating a demo song that does it justice, so keep your ears open for
some homegrown UHB in the not-too-distant future.
[pb]
creamcheese...
little bit twee, perhaps, but, nice and pleasant, definately category C for
chilled, reminded me of aphex twins rarer chilled moments. I liked it.
But the ending , suffered a little from what I've come up against when I've
done tracks, and thats not quite knowing how to end it? leaving it slightly
unresolved sounding. But that's after just one listen, so don't take what I
say too seriously ;)
jwm ~(sirromseventyfive)~
>Would this (http://dis-dot-dat.net/creamcheese.mp3) do for b or c?
>The call seems to want classical for category b, so probably c would
>fit best.
>
>If anyone else would like to have a listen, I'd appreciate that very
>much. Comments, criticism, cheques are all gratefully accepted :)
_________________________________________________________________
Express yourself with cool new emoticons http://www.msn.co.uk/specials/myemo
Sorry, forgot to mention I liked the putch bends too!
~(sirromseventyfive)~
_________________________________________________________________
It's fast, it's easy and it's free. Get MSN Messenger today!
http://www.msn.co.uk/messenger
Hello,
as announced earlier, the 2nd Linux Audio Developers conference
will take place from 29. April to 2. May 2004
at ZKM (Center for Art and Media), Karlsruhe, Germany.
In addition to the "Call for Papers" there is also a "Call for Music".
Both are open until 29. February. We are looking for music that has been
done with Linux Audio software and intend to present it in a concert at
the "Kubus" concert hall of ZKM. "Live" performance with Linux Audio
software is welcome as well.
More information on the conference, registration, accomodation and the
"Call for Music" is available from www.zkm.de/lad
The current list of speakers (in alphabetical order) and talks is as follows:
Fons Adriaensen, 1) AEOLUS - a church organ in your PC
2) Using JAAA for audio measurements
Frank Barknecht, Rapid and Reuseable Audio Development With Pd
Julien P. Claassen, Linux console - a textbased studio
Paul Davis, Adding MIDI to a Digital Audio Workstation
Orm Finnendahl, 1) Linux as a Workstation for Composers
2) PD Workshop
Bob Ham, LADCCA
Steve W. Harris and
Jörn Nettingsmeier, Audio Engineering in a Nutshell
Steve W. Harris, JACK, JAMin, Mastering
Takashi Iwai, ALSA Sucks? - Trouble Shooting for Your Healthy Music Life
Jaroslav Kysela, ALSA project - the last year
Victor Lazzarini, Developing Spectral Signal Processing Applications
Matthias Nagorni, Introduction to Modular Synthesis
Han-Wen Nienhuys, LilyPond, a modular, extensible and programmable compiler
for high-quality music notation
Dave Phillips, 1) Keynote: One Year After:
Notable Linux Audio Development in 2003
2) Still Nailing Jelly: An Update on Linux Audio
Documentation Projects
Abstracts and links to the respective projects are available at
www.zkm.de/lad
Matthias
--
Dr. Matthias Nagorni
SuSE Linux AG
Maxfeldstr. 5 phone: +49 911 74053375
D - 90409 Nuernberg fax : +49 911 74053483
Hi,
just back from NAMM, just a few infos for the interested people:
Lionstracs had a booth demoing a preliminary version of the
Mediastation X-76 ( http://www.lionstracs.com )
I've read a thread here about people complaining about the
price of the keyboard. ( $12,000).
I fully agree, the problem was the distributor trying to ask
an exaggerated price.
Too many men in the middle (distributor, retailer) each one wants a big
cut of the pie while the producer of the actual iron usually earns only
a fraction of the price the user pays.
But you know since the distributor hosted Lionstracs at his booth you
cannot complain about the price they want to set :-)
Anyway see Domenico's (Lionstracs head) posting:
http://www.lionstracs.com/index.php?name=PNphpBB2&file=viewtopic&t=7
the new price will be around $6200 which is much more in line with
current keyboards.
AFAIK: Korg's flagship the PA X-Pro is about $4500, add mp3 playback
expansion, sample RAM expansion (from 16MB to 32MB :-) ) and you
get into the $5000 - $5500 which is comparable to the Mediastation X-76
price but the X-76 much more iron (256 DSP voices vs 64, 512MB sample
RAM vs 48MB sample ROM, not to mention what you can do in software with
the Athlon 2400+ CPU (LinuxSampler, softsynths, ardour etc).
Anyway if you want to see a couple of videos of the Mediastation X-76 in
action (with crappy audio since it was taken with a camcorder in the
noisy NAMM halls):
(the guys were playing the keyboard over an mp3/wav song that ran in the
background, changing the sounds interactively (mostly by pressing one
single button , eg organ family, and then select organ patch)
You can play them with mplayer/xine too but I think you need the win32
codecs installed.
Length: 2:22 size 23MB
http://www.lionstracs.com/~demos/video/x76smooth1.AVI
Length: 4:58 size 48MB
http://www.lionstracs.com/~demos/video/x76delmar1.AVI
(The GUI at 3:00 in the second video is Paul Davis that tells the
keyboarder to shut up with his 120dB noise :-) )
Domenico told me probably they will sell individual parts too so people
can build their own keyboard without paying an arm and a leg.
(eg case + MIDI keys + LCD , custom VGA with Linux supported GFX chip etc)
As said this company tries to be open as possible and its success
depends on the success of linux audio too, so I think it's in their
interest to support LAD people.
For example developers could get discounted keyboards in exchange of
code etc, there are many possibilities.
Domenico is in talks with Mathias Nagorni about coming at the upcoming
ZKM with a Mediastation to show it off and that he can meet developers
offer some paid work for developing new apps (or adapt existing ones)
for the keyboard etc.
BTW: many top engineers of the big 3 keyboards makers came to see the
X-76, seemed quite puzzled that a penguin-powered keyboard exists :-)
regarding LinuxSampler & NAMM read this:
http://sourceforge.net/mailarchive/forum.php?thread_id=3758500&forum_id=127…
I was quite surprised about the positive reaction.
Other Linux stuff was Plugzilla, a hw expander (a Linux PC) that runs
VST plugins (I've meet Marc Lindahl and Joe, very nice people), then
there was the Muse Research box which is AFAIK similar to Plugzilla and
the Hartmann Neuron was there too but I have not had the time to chat
with them.
(it is linux powered too but they don't tell you so on their website).
ok shutting up :-)
cheers,
Benno
http://www.linuxsampler.org
First of all, a big thank-you goes to Steve Harris for checking my RDF.
Second, tap-0.2.0 is out:
* New plugin TAP Scaling Limiter
This should be an efficient tool for those who want to
maximize the loudness of their mixes without audible artifacts,
but can be used for other things as well
* Added a Bode diagram of the TAP Equalizer filters to the manual.
* Changed versioning from x.y-z to x.y.z. Thanks to Frank Barknecht
and others for complaining, and sorry I wasn't aware of this problem.
The almost but not completely unmemorizable URL is still:
http://www.hszk.bme.hu/~st444/tap/tap.html
(but i'm thinking about whether i should put it up on SourceForge...)
Tom
I just completed a successful run of ecasound with my guitar_mix.ecs
(attached) on my new box. This is a 15 minutes 5 track session, 4 tracks
from disk, one live jack input. Three outputs: stereo wav, mono wav and
live monitor. It uses amplify and panning effects controlled by ecasound
generic oscillators.
Details on the new box and it's current configuration:
asus a7v8x-x
athlon XP 2800+ (2071.203 MHz)
1.5GB PC2700 RAM
12GB / /dev/hda2 (actually a 40G disk)
160GB /mnt/audio/ /dev/hdc1
drives tuned
2GB swap /dev/hda1
onboard via8235
(M-Audio Delta-66 w/omni i/o -- still in old box)
(ymfpci guillemot maxisound fortissimo -- midi only -- still in old box)
debian testing (sarge)
2.6.1 (pre-empt on -- kernel.org sources compiled via make-kpkg)
realtime-0.0.2 lsm
alsa-1.0.2 (drivers, lib, envy24control, tools)
drivers:
./configure --with-isapnp=no --with-sequencer=yes --with-oss=no \
--with-cards=dummy,virmidi,ice1712,ymfpci,via82xx
libsndfile-1.0.5
from tar.gz. debian only had 1.0.4
jack-0.94.0
./configure --enable-capabilities --enable-optimize \
--with-default-tmpdir=/mnt/ramfs/ --disable-portaudio
ecasound-2.3.2
./configure --enable-pyecasound --disable-oss --disable-arts \
--with-largefile
I started jackd via jackstart like so:
jackstart -v -R -d alsa -d via82xx -r 44100 -p 128 -n 3
I run the ecasound session from a script that does some pre and post
processing. It assembles the 4 wav input files from other wav's and cuts
the output files down to randomly selected 5 minute chunks, fades in and
out the beginnings and ends, normalizes and encodes the stereo wav to ogg.
The whole session ran on this onboard soundcard without xruns. I
switched desktops numerous times in openbox3 and even switched out of X
to tty2 to login and change my hostname back (I had changed it while in
X and new apps weren't able to start because they couldn't connect to
the display. duh ... 8) ). The session ran flawlessly.
I'm not exactly sure what the stats jackd puts out when run verbosely
mean, but I know the results I saw mean I'll be able to run this session
with many more effects at lower latency than I could on my old box ...
_And_ I don't have to do it as root! yay! :)
The old box is a PII 400 w/768M PC100 RAM. On that box the whole session
including pre and post processing takes around 21 minutes. On the new
box that overhead is cut way down with the whole session taking only 16
minutes 20 seconds (only 1 min, 20 more than the actual recording time).
While running jackd reports load averaging (just measured visually from
jackd output, not hard numbers) around 7.5 with max usecs ~220. On the
old box using my delta66 I have to run at -p 256 to avoid xruns in this
session, load averages around 22 and max usecs around 1350. Admittedly,
much of this performance gain is related to the new hardware. But, still
, it's very cool that all this newish stuff (lsm, latest alsa, latest
ecasound, latest jackd, 2.6 kernel) is working well
In other testing with the via chip I've had jack running as low as -p 32
-n 3 with just a couple jack_metro's connected. I have to go down to -p
16 to get a few xruns. Not until -p 8 do things start to get really bad.
/proc/interrupts says the card's on IRQ 4, too.
I have a few more things to install, configure and test before I move my
delta66 and midi setup over to the new box. But, these initial tests are
very exciting. I just had to share. Thank you to all the developers for
all this excellent software. And thanks to all the list members, too. :)
-Eric Rz.
# eric(a)zhevny.com guitar_mix chainsetup file
### general
-b:128 -B:rtlowlatency -n:guitar_mix -X -t:902.802
### audio inputs
-a:1,6,11 -i:track1.wav
-a:2,7,12 -i:track2.wav
-a:3,8,13 -i:track3.wav
-a:4,9,14 -i:track4.wav
-a:5,10,15 -i:jack_alsa
#-a:5,10,15 -f:16,1,44100 -i alsahw,0
### audio outputs
# live output
-a:1,2,3,4,5 -f:16,2,44100 -o jack_alsa
#-a:1,2,3,4,5 -f:16,2,44100 -o alsahw,0,0
# file outputs
### FIXME: change this output to .ogg when crop and fades work
-a:6,7,8,9,10 -f:16,2,44100 -o:/mnt/audio/in_progress/guitar_mix/stereo_out.wav
-a:11,12,13,14,15 -f:16,1,44100 -o:/mnt/audio/in_progress/guitar_mix/mono_out.wav
### chain operators and controllers
# live output
-a:1 -erc:1,2 -epp:0 -kos:1,0,100,0.02,0 -ea:0 -kos:1,0,200,0.01,0
-a:2 -erc:1,2 -epp:0 -kos:1,0,100,0.04,0 -ea:0 -kos:1,0,200,0.02,0
-a:3 -erc:1,2 -epp:0 -kos:1,0,100,0.06,0 -ea:0 -kos:1,0,200,0.03,0
-a:4 -erc:1,2 -epp:0 -kos:1,0,100,0.08,0 -ea:0 -kos:1,0,200,0.04,0
-a:5 -erc:1,2 -epp:50 -ea:205
# stereo file out for .ogg
-a:6 -erc:1,2 -epp:0 -kos:1,0,100,0.02,0 -ea:0 -kos:1,0,200,0.01,0
-a:7 -erc:1,2 -epp:0 -kos:1,0,100,0.04,0 -ea:0 -kos:1,0,200,0.02,0
-a:8 -erc:1,2 -epp:0 -kos:1,0,100,0.06,0 -ea:0 -kos:1,0,200,0.03,0
-a:9 -erc:1,2 -epp:0 -kos:1,0,100,0.08,0 -ea:0 -kos:1,0,200,0.04,0
-a:10 -erc:1,2 -epp:50 -ea:205
### crop and fade in/out
### generate an effects preset file for this in preprocessing
#-a:6,7,8,9,10 -ea:0 -kl:1,0,100,4,0,0,10,1,290,1,300,0
# mono file out for pool
-a:11 -ea:0 -kos:1,0,200,0.01,0
-a:12 -ea:0 -kos:1,0,200,0.02,0
-a:13 -ea:0 -kos:1,0,200,0.03,0
-a:14 -ea:0 -kos:1,0,200,0.04,0
-a:15 -ea:205
### crop and fade in/out
### generate an effects preset file for this in preprocessing
#-a:11,12,13,14,15 -gc:$pos,300 -ea:100 -klg:0,0,100,4,0,0,10,1,290,1,300,0
> that's interesting. elk-scheme says about this:
>
> > (exact? (* 0 440.0))
> #f
>
> guess something to be fixed, if #t is the R5RS answer...
Actually, R5RS says:
An operation may, however, return an exact result if it can prove
that the value of the result is unaffected by the inexactness of its
arguments. For example, multiplication of any number by an exact
zero may produce an exact zero result, even if the other argument is
inexact.
In some environments this sort of thing can be a fast path. This
actually is exactly what some people really do not like about R5RS.
Personally, the fact that both Stalin and mzscheme actually exist
suggests a curious sort of happiness...
Regards,
Rohan
This reminds me of pop music, "I'm no fucking Buddhist, but this is
enlightenment"... :?
Hello, I am trying to create a very simple midi filter client for the
alsa sequencer based on aseqview-0.1.4. I have alsa 0.9.8. This code
shows the input and the output port in aconnect when executed. And, when
the raw_midi client is connected The callback does get called when I
play keys on my piano. However, Its as though the message is getting
sent back to this client and not on to the next client. The
process_event function keeps getting called over and over again with the
same message when I hit one piano key. It's as though it is sending
itself the message. Any Ideas are greatly appreciated. -Garett
#include "portlib.h"
int process_event(port_t *p, int type, snd_seq_event_t *ev, int
*priate_data)
{
port_write_event(p, ev, 0);
}
int main()
{
unsigned int caps = SND_SEQ_PORT_CAP_WRITE |
SND_SEQ_PORT_CAP_SUBS_WRITE | SND_SEQ_PORT_CAP_READ |
SND_SEQ_PORT_CAP_SUBS_READ;
port_client_t *client = port_client_new("MIDI filter",
SND_SEQ_OPEN_DUPLEX);
port_t *port = port_attach(client, "FILTER port", caps,
SND_SEQ_PORT_TYPE_MIDI_GENERIC);
int *priv_data;
/* add callback */
port_add_callback(port, PORT_MIDI_EVENT_CB,
(port_callback_t)process_event, priv_data);
port_client_do_loop(client);
return port_detach(port);
}