Hi all,
The denormal problem with freeverb/ardour on P-4's is killing me.
Since CMT plugin development seems to be a little stagnant, I decided
to take it into my own hands a bit, but I might need a little help from
a kind someone out there. Is there anyone who can give me a tip on
proper syntax for changing the denormals.h file in freeverb (assuming
this is where the problem lies)?
Details:
On this list and/or posts elsewhere I found that the denormals.h file
for freeverb doesn't work too well with some newer gcc compilers; one
recommendation was to exchange the first statement below with the second
definition:
#define undenormalise(sample) if(((*(unsigned
int*)&sample)&0x7f800000)==0) sample=0.0f
static inline float
undenormalise(volatile float s)
{
s += 9.8607615E-32f;
return s - 9.8607615E-32f;
}
I tried changing it out one-for-one, but.. no good. Ardour still
zombifies after reverb tails die out. Maybe there is somewhere else
that needs changing wrt denormals, or maybe I am just clueless :).
Anyway, I then tried using something like the following....but still no
good, [ardour now doesn't zombify, it's just that freeverb sounds like
@$!&].
#define static inline float undenormalise(volatile float s) { s +=
9.8607615E-32f; return s - 9.8607615E-32f; }
You can probably see that I have no idea what I'm doing, but this seems
like it should be so _simple_. Maybe now is the time to go read up on C++.
Thanks,
Neil
Steve,
OK. I put your denormal-zeroing function w/SSE into the freeverb.cpp
code, and when compiling with the SSE option and calling
set_denormal_flags() in the activateFreeverb3 function (see below), I
get this error wherever asm is called:
freeverb/freeverb.cpp: In function `void set_denormal_flags()':
freeverb/freeverb.cpp:48: error: can't find a register in class `BREG'
while reloading `asm'
Do you have an idea of what might be wrong?
Here is where I put the call to your function. Does this make sense?
void
activateFreeverb3(LADSPA_Handle Instance) {
Freeverb3 * poFreeverb = (Freeverb3 *)Instance;
poFreeverb->mute();
/* call the Steve Harris denormal zeroing function w/SSE flag */
set_denormal_flags();
}
--Neil
PS: Maybe we should move this discussion to just linux-audio-dev for now
PPS: For reference, this is your function for zeroing denormals w/SSE
that I am using:
#ifdef __SSE__
#include <xmmintrin.h>
#endif
void set_denormal_flags()
{
unsigned long a, b, c, d;
#ifdef __SSE__
asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (1));
if (d & 1<<25) { /* It has SSE support */
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (0));
if (b == 0x756e6547) { /* It's an Intel */
int stepping, model, family, extfamily;
family = (a >> 8) & 0xf;
extfamily = (a >> 20) & 0xff;
model = (a >> 4) & 0xf;
stepping = a & 0xf;
if (family == 15 && extfamily == 0 && model == 0 &&
stepping < 7) {
return;
}
}
asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (1));
if (d & 1<<26) { /* bit 26, SSE2 support */
_mm_setcsr(_mm_getcsr() | 0x40);
}
} else {
fprintf(stderr, "This code has been built with SSE support, but
your processor does not support\nthe SSE instruction set.\nexiting\n");
exit(1);
}
#endif
}
-------------Steve Harris wrote:---------------
For something like a reverb the best option is going to be to build with
SSE maths and call the function I posed here a week ago or so. There are
so many places where denormals can occur in reverbs that youre going to
burn a load of CPU trying to kill them.
OTOH I'm not sure how that function would interact with the host when
loaded as a plugin
Hi All -
Thanks to the assistance of Nick Dowell at Focusrite
I have working MIDI over USB for Novation ReMOTE 25 Audio
AKA X-Station. The attached patch builds and runs cleanly
using the latest Fedora Core 3 update kernel (2.6.10 #741).
I don't have the MIDI only device or the Speedio to test
with but if they operate as Nick describes these should
also do MIDI over USB with my patch.
I don't think I broke anything but if anybody can
check out this patch with other devices, particularly Roland
and MIDIMAN devices I'd be much obliged.
Thanks,
ccb
Hello all,
After having struggle a lot in order to make ecasound and ardour working
on my Gentoo (Christopher is it working well with your's ?) I have decided
to use another strategy to setup my Dub Soundsystem.
I have choosen :
always TerminatorX (Tx) to play the tracks and MuSE 0.7.1 to do the rest.
The problem is that MuSE does a strange thing. Let me explain :
I have 2 stereo tracks
track 1 connected to Tx without effect
track 2 connected to Tx with the Glame Bandpass Analog Filter
So, if I activate the plugin of the track 2 the track 1 looks mono and I
can hear that the effect is also acting on it.
is this a bug in MuSE or it is the Glame Bandpass Analog Filter to claim
the fault ?
Best regards
Philippe
PS : it would be nice if the interface window of a plugin closes when we
remove the plugin from the track :)
Hi!
I tried to use the cvs snapshot from the 13th of June last year to do some
work. But it wouldn't accept commands.
I did:
$ linuxsampler
It told me that everything was well. Then I connected to it with telnet:
$ telnet localhost 8888
That succeeded, too. Then I tried just writing a comment:
# this is a comment
Still worked, but when I tried to put any real command to it, it just said:
ERR:0:Unknown command.
Or something like it. I took the commands from the draft. But the sampler
even wouldn't accept "quit". I tried quit, Quit and QUIT and the same with
single and double quotes.
Any fix for this? I need to use the text-mode (telnet way).
Kindest regards
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net - the Linux TextBased Studio guide
http://www.notam02.no/arkiv/src/snd/
Snd-ls v0.9.2.0
---------------
Released 21.1.2005
Contains
--------
Snd v7.10 from 20.1.2005
About
-----
Snd-ls is a distribution of the sound editor Snd, made by Bill
Schottstaedt. Its target is people that don't know scheme very well, and
don't want to spend too much time configuring Snd. It can also serve as a
quick introduction to Snd and how it can be set up.
Install
-------
1. Edit the file config.scm, for configuration settings.
2. Run ./build
3. Run ./install as root.
It is not necessarry to uninstall any previously installed versions of
Snd. Snd-ls should not interfere with already installed versions.
After installing, the name of the executable is "snd-ls".
To uninstall, run ./uninstall
Required packages
-----------------
guile
gtk-2
jack
libsamplerate
ladspa
liblrdf
fftw3
libxt-dev
(guile-devel, gtk-2-devel, liblrdf-devel and gcc is also needed at
runtime)
Changes
-------
0.9.2-beta1 -> 0.9.2.0
-Updated SND to v7.10 from 20.1.2005. Many important changes.
0.9.1.5 -> 0.9.2-beta1
-Updated SND to v7.8 from 12.8.2004. Many important changes.
0.9.1.4 -> 0.9.1.5:
-Made the apply-button always apply to selection if there is a selection.
0.9.1.3 -> 0.9.1.4:
-Removed some options from the edit-menu that interfered with the way
snd_conffile works.
0.9.1.2 -> 0.9.1.3:
-Made the insert-option in the edit-menu insert monofiles into the
currently selected channel.
-Added libxt-dev to the list of required packages. (Thanks to robin)
-Made mono-files play in both left and right channel when using Jack.
0.9.1.1 -> 0.9.1.2:
-Short fix for the nodeline-class.
0.9.1 -> 0.9.1.1:
-Fixed Append File edit-menu option.
-Workaround for trouble with ladspa default settings.
0.9.0 -> 0.9.1:
-Official announced.
-Upgraded SND from 20.7.2004 to 2.8.2004
-Huge amount of testing at Notam by 14 unexperienced guinea pigs for
a whole week; many bugs fixed.
Links
-----
Snd: http://ccrma.stanford.edu/software/snd/
Guile: http://www.gnu.org/software/guile/guile.html
Credits
-------
Snd is made by Bill Schottstaedt. This small package is put
together by Kjetil Matheussen / Notam, with consulting
help from Bill Schottstaedt.
--
>From: Mario Lang <mlang(a)delysid.org>
>
>[1] http://delysid.org/tuneit.html
First, I have one more project:
-Overview file format for libsndfile; e.g., (min,max,rms) per block;
the overview file would be used, e.g., for fast waveform drawing
Then, thanks. I will check the pitch detectors you have.
I have collected papers on pitch detectors if you want
take a look at them -- I will check too, of course.
Do you know how your code could be changed to the formant
detector? It must be a harder project. Two first formants
should be tracked.
Juhana
--
http://music.columbia.edu/mailman/listinfo/linux-graphics-dev
for developers of open source graphics software
Hello,
qsampler gives me this strange error:
Loading gig file 'NON_MODAL '/home/fons/FreePiano.gig''...gig::Engine error: Failed to load instrument, cause: Can't open "NON_MODAL '/home/fons/FreePiano.gig'"
I've no idea where the 'NON_MODAL' thing is coming from, or how to
get rid of it...
--
FA
...with some info:
http://eel.olofson.net/
>From the index page:
"The Extensible Embeddable Language
EEL is a scripting and programming language, designed
specifically for hard real time applications.
The primary target areas of application are control
engineering and audio synthesis, but EEL should also
be suitable for game scripting and for adding
scripting capabilities to real time multimedia
applications."
//David Olofson - Programmer, Composer, Open Source Advocate
.- Audiality -----------------------------------------------.
| Free/Open Source audio engine for games and multimedia. |
| MIDI, modular synthesis, real time effects, scripting,... |
`-----------------------------------> http://audiality.org -'
--- http://olofson.net --- http://www.reologica.se ---
Hi folks
I wanna collect some info of all my *.mp3 such as
lenght (sec), samplerate(hz) , nubmer of channels (m/s), birtrate(VBR/hz)
and maybe something else.
Which #include <hdr.h> , typedef , and functions() i need use ?
Recursive dir search i have yet.
Any ideas ?
Tnx in advance
Alf
------