Greetings:
The Linux soundapps site is now mirrored in Europe at the following URL :
http://linuxsound.atnet.at
Please update your bookmarks. The www.linuxsound.at URL is no longer
in use.
The hosting site contacted me regarding the outdated material that was
still displayed, and I have brought the site into sync with the US and
Japanese mirrors. This time for sure...
Best regards,
Dave Phillips
Hi!
The usual spinboxes with their tiny up/down arrow buttons
made me think about an alternative.
Since using more height than a textfield has would make
layout very troublesome, my solution is placing the
buttons horizontaly.
http://wrstud.urz.uni-wuppertal.de/~ka0394/forum/04-06-20_spinbox_set_02.png
I think the variations with arrows are less pleasant to
look at. Using - and + also avoids confusion with option
menus. But I would like to hear everyone's opinion on that.
I don't know if showing the value as bar in the background
is a good idea in the end, because it might be confusing (?)
The right ones show highlighting (and the usual cursor
change) on mouse-over.
Mousewheel should work on mouse-over (no clicking required)
just like is the case with GTK+ spinboxes (can't test other
toolkits now).
The minus key should be reserved for entering the minus sign.
Middle mouse button should be reserved for paste, right one
for context menu (besides copy/paste it could contain
max, min and 50% commands).
So only clicks with modifier keys are left.
I would propose Ctrl leftclick on -/+ buttons for larger
steps.
---
Thorsten Wilms
forget all that ranting i made about jack_frames_since_cycle_start().
jack_frame_time() is an interpolated function that can be safely
called from any thread (its not RT-safe, but it is fast), and will
return a monotonically increasing frame counter. i wrote it.
--p
I wonder how to find out which frame_time corresponds to the first frame in the buffer passed to the process callback..
Is it possible at all? does jack use an internal frame counter which corresponds to jack_frame_time?
Thanks
Florian Schmidt
--
Palimm Palimm!
>From: Tim Hockin <thockin(a)hockin.org>
>
>> Quick question: disk thread may suspend if there are no disk use.
>> How the disk thread is woken up to read the lock-free buffer?
>
>Semaphore. Every time you put something into the buffer, up() the
So, one thread for RT-audio, one thread to watch and suspend on
semaphores, and one thread to select() on FDs (for communication
from the application and from the semaphore watcher).
Which one is better?
(1) RT-audio thread ---> pipe ---> select() thread
(2) RT-audio thread ---> semaphore --> semaphore watcher thread
--> pipe --> select() thread
Of course, better for RT-audio thread. While the case (2) is
more complex, it could be better for RT-audio thread.
How this all is done in Ardour? I browsed the source but there are
a lot of stuff there. How about LinuxSampler?
Juhana
Specimen is a MIDI controllable SoftSampler for GNU/Linux systems.
Features added since 0.3.0 include:
* Portamento
* Per-parameter LFOs with delay and attack
* LFOs may be "global" (voice independent) or per-voice
* LFOs may be constrained to oscillate between 0 and 1 instead of -1
and 1
* ADSRs have gained delay and hold phases
* Most parameters can be velocity sensitive to a user-specified degree
* LFO/ADSR amounts for pitch are now entered in half-steps
* A sample's pitch may be adjusted within a user-definable range
You can download the latest tarball (some assembly requried) from
www.gazuga.net, or directly below:
http://www.gazuga.net/files/specimen-0.4.0.tar.gz
The focus of the 0.4.x series is the GUI, so if you've got a gripe or
a wish about that, now's the time to pipe up. As always, my inbox is
wide open to suggestions and bug reports.
-Pete
Anyone knows a library (or an algorithm or something) for CPU efficient
pitch-shifting?
Essentially, i want to take arbitrary audio input and pitch shift it
just a little bit, indeed very little - the shift should be so small as
it would not even qualify as out-of-tune for most practical purposes
(provided that the original sound is perfectly in-tune). A shift not
bigger than the usual tuning error of ordinary unplugged instruments.
I also need to vary the shift, not too fast (the pitch shifting
modulator will change the shift up and down a couple times per second or
less), but still change it dynamically.
The algorythm should be efficient enough to allow real-time processing
of at least 16 sound channels simultaneously, and still leave some CPU
power untouched.
All this should be incorporated into a LADSPA plugin that i plan to
build (and it's only a part of the functionality).
--
Florin Andrei
http://florin.myip.org/
New releases of Aeolus and Jaaa are now available at
<http://users.skynet.be/solaris/linuxaudio>
Aeolus-0.2.0
------------
- bugfixes,
- some new stops,
- added tuning and temperament controls,
- added controls for tremulant speed and intensity.
Still no manual :-( but it's coming...
This will be a stable release for some time. The next major step
is to add the 'chiff' generators, and this will require a lot a
research and work. First step is to make recordings of real pipes
and analyse them to find the noise spectra. I'll probably be
making recordings of the Metzler organ in the Antwerp cathedral
during the coming months. Then it's back to the drawing board.
The target is to make this work for LADconf 3...
Jaaa-0.1.0
----------
Some bugfixes, no new features. Adapted to the new shared libs,
see below. There's a minimal manual in the README.
Shared libraries
----------------
libalsadrv.so used by earlier releases is replaced by clalsadrv-0.0.1,
libclthreads and libclxclient have been are upgraded to 0.0.2.
Please delete all earlier versions of these libs, they are now useless.
The so-names are now correct, and Aeolus and Jaaa will link with the
*.so.0 files. I had this completely wrong in the first release
(thanks to Fernando for complaining about this :-).
--
Fons
Hi
After way too long, a new release of the BLOP LADSPA Plugin set.
Orginally named Bandlimited LADSPA Oscillator Plugins, but there's more
than oscillators... they're more useful in a modular host, such as
Spiral Synth Modular, gAlan, Alsa Modular Synth etc.
Plugins in the set:
New since last release:
* Quantiser (quantise to arbitrary values in a range)
* Signal Tracker (envelope follower, sample+hold, track+hold, ...)
* DAHDSR envelope generator
* Difference and Ratio utility plugins
Existing ones, with less bugs I hope:
* Bandlimited DCOs (wavetable based):
- Sawtooth
- Square
- Pulse with variable width
- Triangle with variable slope (Saw->Triangle)
* Analogue-style step sequencer
* Fast'n'Dirty Moog 4 Pole implementation
* Two ADSR envelope generators
* Random wave generator
* A mono amplifier
* Non-bandlimited square and pulse clock oscillators
* 1V / Octave CV to Frequency converter
* Control rate to Audio rate interpolator
* Sum and Product utility plugins
Some plugins come in control and audio rate variations.
RDF metadata is also included if your host supports it.
All plugins pass the demolition test:
http://www.ecs.soton.ac.uk/~njl98r/code/ladspa/demolition.html
Website:
http://blop.sourceforge.net
-
Myk
>From: Joshua Haberman <joshua(a)reverberate.org>
>
>Also, I have a strategy in mind for gracefully degrading when the GUI
>thread can't pull data from the FIFO fast enough (again, for VU meters
One could use plain variables for the VU values.
Engine updates them. And GUI reads them. GUI may not
get all values, but the most important temporary max level
changes so slowly that GUI does not skip on that.
Another choise is to resample the VU signals to low enough rate
in the engine. If 30 frames per second is the display refresh
rate, then using rate 20 Hz for VU signals allows GUI to catch
up if VU freezes.
>that the loads and stores are observed in the required order, you have
>to use memory barriers (again, in theory). See:
>
>http://en.wikipedia.org/wiki/Memory_barrier
What it means practically? Any code? (Cannot check wikipedia now.)
One could write some ID numbers to the buffer next to the buffer
pointers. If the ID number is not what it should, then the problem
has been recognized. What to do in this situation? If it is
a non-realtime thread (disk thread), the disk thread could idle
a bit or do something else. But if it is the realtime audio thread,
then what? Any this kind of trickery could be slower than any
memory barriers, guess.
Quick question: disk thread may suspend if there are no disk use.
How the disk thread is woken up to read the lock-free buffer?
Are the following yes or no?
(1) audio thread sends SIGCONT signal to disk thread,
(2) audio thread sends sys/msg.h message to disk thread,
(3) audio thread sends one byte via a pipe to disk thread,
(4) disk thread uses timer to wake up itself.
Something else?
Audio thread sends the wake up relatively rarely. So, if pipe has
a small buffer, then pipe could be practically lock-free. How it is?
Juhana