Sorry for the general-purpose nature of this post, but a couple of new posts in LAA recently piqued my interest, but I am unable to find out how to contact those developers directly with my inquiries/suggestions, so here goes (I tried posting replies in LAA, but no luck):
RE: Grainmap v0.1
I'm interested in compiling and using this, but it requires gtkmm v3.0. I know at least the latest Ubuntu stable release doesn't have that version, so I was curious why the dependency on such a recent version of gtkmm?
RE: spectmorph v0.2.0
I'm interested in compiling and using this as well, but there's a dependency on BSE v.7.2. All I want to compile is the Jack client app, so I don't see why this dependency is needed. I looked over the Makefile but couldn't find a target for just the jack client (very possible I just missed it though).
Thanks,
Michael Bechard
GRAME - Centre National de Creation Musicale - is happy to announce the release
of FAUST 0.9.43, a programming language specifically designed to develop audio plugins and
applications.
This version provides a major reorganization of the architecture system for
better modularity and Open Sound Control (OSC) support. The code generation has
been improved and the compiler offers new output possibilities for example the
complete graph of the internal signal expressions as a .dot (graphviz) file. The
libraries and the examples have been extended: Julius Smith's libraries provides
several new filters and effects (including various reverbs) and Romain Michon
has ported the Synthesis Tool Kit (STK) to FAUST.
-------------
About FAUST :
-------------
FAUST (Functional Audio Stream) is a functional programming language
specifically designed for real-time signal processing and synthesis. A
distinctive characteristic of FAUST is to be fully compiled. The FAUST compiler
translates DSP specifications into very efficient C++ code that works at sample
level. It targets high-performance signal processing applications, libraries and
audio plug-ins for a variety of audio platforms and standards. A same FAUST
specification can be used to easily generate native JACK or ALSA applications,
as well as CSOUND, LADSPA, MAX/MSP, PD, Q, SC and VST plugins.
The Faust distribution can be downloaded at:
http://sourceforge.net/projects/faudiostream
The GIT repository can be cloned with the following command :
git clone git://faudiostream.git.sourceforge.net/gitroot/faudiostream/faudiostream faust
Two mailing lists are available:
https://lists.sourceforge.net/lists/listinfo/faudiostream-develhttps://lists.sourceforge.net/lists/listinfo/faudiostream-users
In order to test FAUST without installing it, please refer to the
Online Faust Compiler (requires firefox):
http://faust.grame.fr
======================== WHAT'S NEW ==============================
----------
Compiler :
----------
- Improved loop separation algorithm
- Improved SVG block-diagrams (useless cables removed, inverters, etc.)
- Better handling of search path and default directories
- Range of input audio signals widened to (-inf,+inf).
- New -cn <name> (or --class-name <name>). It allows to specify the name of the
dsp class to be used instead of mydsp
- New -sg (--signal-graph) option to draw a graph of all internal signal
expressions as a .dot (graphviz) file.
- Several bug correction in type system and faster type system inference
algorithm
-----------
Libraries :
-----------
- effects.lib :
- new moog VCF implementation
- auto-wah effect
- passive non-linear allpass filters
- several new reverbs implementations based on feedback delay networks
including Zita Rev1
- square Rectangular Digital Waveguide Mesh
- filter.lib :
- new ladder/lattice allpass filters
- Regalia-Mitra second order peaking equalizer section
----------
Examples :
----------
- several new reverb examples
- Synthesis Tool Kit (STK) with many examples ported to Faust:
WIND INSTRUMENTS
- A simple clarinet (clarinet.dsp),
- A clarinet with a tone hole model (blowHole.dsp),
- A flute (flutestk.dsp),
- A pan-flute (flute.dsp),
- A brass instrument that can be used as a trumpet, a trombon, a french
horn, etc. (brass.dsp),
- A simple saxophone (saxophony.dsp),
- A bottle where it is possible to blow threw the neck to make sound (blowBotle.dsp).
STRING INSTRUMENTS
- An acoustic finger bass (bass.dsp),
- A bowed string instrument that can be used as a cello, a violin, etc. (bowed.dsp),
- A simple sitar (sitar.dsp),
- A nonlinear extended Karplus-Strong (NLFeks.dsp).
KEYBOARDS INSTRUMENTS
- A piano that uses commuted waveguide synthesis (piano.dsp),
- An harpsichord (harpsi.dsp).
PERCUSSION INSTRUMENTS
- A tibetan bowl (tibetanBowl.dsp),
- A wooden bare (uniBar.dsp),
- An iron bare (tunedBar.dsp),
- A glass bare (glassHarmonica.dsp),
- A set of percussion instruments that use modal synthesis (modalBar.dsp).
OTHER
- A voice synthesizer (voiceForm.dsp),
- A FM synthesizer that uses an nonlinear allpass filter (NLFfm.dsp).
----------
Tools :
----------
- faust2ladspa
- faust2dssi
- faust2supercollider
- faust2sig
- faust2sigviewer
--------------------
Architecture files :
--------------------
- Redesign of architecture files for better modularity.
- Open Sound Control (OSC) support added to several architecture files.
- Knobs added to GTK architectures
- Architecture's licenses updated
- Improved file format to save and restore applications settings
- Revised Core Audio architecture
- DSSI architecture added
- netjack architecture allowing remote audio processing over LAN
- AVOIDDENORMALS support added for puredata, ladspa and other plugins
- support for group tooltip via new declare(0, ...) mechanism
----------------
Acknowledgments:
----------------
Many persons have been contributing to the FAUST project by
providing code for the compiler, architecture files, libraries,
examples, documentation, scripts, bug reports, ideas, etc.
I would like to thank them and especially: Fons Adriaensen, Tim Blechmann,
Tiziano Bole, Baktery Chanka, Thomas Charbonnel, Damien Cramet, Etienne Gaudrin,
Albert Graef, Stefan Kersten, Victor Lazzarini, Matthieu Leberre, Mathieu Leroi,
Kjetil Matheussen, Hermann Meyer, Remy Muller, Sampo Savolainen, Nicolas
Scaringella, Stephen Sinclair, Travis Skare, Julius Smith, Michael Wilson, as
well as my colleagues at GRAME, in particular : Dominique Fober, Stephane Letz
and Romain Michon, and from the ASTREE project : Karim Barkati (IRCAM), Jerome
Barthelemy (IRCAM), Alain Bonardi (IRCAM), Raffaele Ciavarella (IRCAM), Pierre
Jouvelot (Mines/ParisTech), Alexander Mihalic (U. Saint-Etienne), Laurent
Pottier (U. Saint-Etienne)
Yann Orlarey
GRAME
>
> On 07/20/2011 10:27 AM, Maurizio De Cecco wrote:
>> I am playing around with GCC and Clang vector extensions, on Linux and
>> Mac OS X, and i am getting some strange behaviour.
>>
>> I am working on jMax Phoenix, and its dsp engine, in its current state,
>> is very memory bound; it is based on the aggregation of very small
>> granularity operations, like vector sum or multiply, each of them
>> executed independently from and to memory.
>>
>> I tried to implements all this 'primitive' operations using the vector
>> types.
>>
>> On clang/MacOSX i get an impressive improvement in performance,
>> around 4x on the operations, even just using the vector types for
>> copying data; my impression is that the compiler use some kind of vector
>> load/store instruction that properly use the available memory bandwidth,
>> but unfortunately i do not know more about the x86 architecture.
>>
>> On gcc/Linux, (gcc 4.5.2) the same code produce a *slow down* of around
>> 2.5x.
>>
>> Well, anybody have an idea of why ?
>>
>> I am actually running linux (Ubuntu 11.04) under a VMWare virtual
>> machine, i do not know is this may have any implications.
>
> Maybe. A better comparison would be: clang/Linux vs. gcc/Linux and
> clang/MacOSX vs gcc/MacOSX compiled binaries.
>
> Also as Dan already pointed out: gcc has a whole lot of optimization
> flags which are not enabled by default. try '-O3 -msse2 -ffast-math'.
> '-ftree-vectorizer-verbose=2' is handy while optimizing code.
>
> have fun,
> robin
Or you can use LLVM to *directly* generate vector code, as in the following example, result of some experiments done with Faust and it's LLVM backend:
block_code8: ; preds = %block_code8.block_code8_crit_edge, %block_code3
%20 = phi float* [ %15, %block_code3 ], [ %.pre11, %block_code8.block_code8_crit_edge ]
%21 = phi float* [ %14, %block_code3 ], [ %.pre10, %block_code8.block_code8_crit_edge ]
%22 = phi float* [ %16, %block_code3 ], [ %.pre9, %block_code8.block_code8_crit_edge ]
%indvar = phi i32 [ 0, %block_code3 ], [ %indvar.next, %block_code8.block_code8_crit_edge ]
%nextindex1 = shl i32 %indvar, 2
%nextindex = add i32 %nextindex1, 4
%23 = sext i32 %nextindex1 to i64
%24 = getelementptr float* %22, i64 %23
%25 = getelementptr float* %21, i64 %23
%26 = bitcast float* %25 to <4 x float>*
%27 = load <4 x float>* %26, align 1
%28 = getelementptr float* %20, i64 %23
%29 = bitcast float* %28 to <4 x float>*
%30 = load <4 x float>* %29, align 1
%31 = fadd <4 x float> %27, %30
%32 = bitcast float* %24 to <4 x float>*
store <4 x float> %31, <4 x float>* %32, align 1
%33 = icmp ult i32 %nextindex, %18
br i1 %33, label %block_code8.block_code8_crit_edge, label %exit_block6
In this block float* arrays are loaded, then "bitcast" in vector of 4 floats, the vector of 4 float is loaded, then manipulated with LLVM IR vector version of add, mult...etc... then stored.
The LLVM IR is still generated to use the "conservative" "align 1" option since it can not yet be sure data is always aligned. The result SSE code with then use the MOVUPS (Move Unaligned Packed Single-Precision Floating-Point Values). The next steps is to generated stuff like:
%27 = load <4 x float>* %26, align 4
so that MOVAPS (Move Aligned Packed Single-Precision Floating-Point Values) is used instead.
We already see so nice speed improvements, but the Faust vector LLVM backend version is still not yet complete...
Stéphane
For all here who don't follow the kernel lists..
Thomas Gleixner has announced a new version of the real-time patch:
https://lkml.org/lkml/2011/7/19/309
Even though most of the pro-audio-relevant preemt-rt patches are already
mainline since 2.6.39, this is still very interesting mostly because:
> What's new in 3.0-rt ?
>
> - No more split soft interrupt threads. We need to analyze whether
> this is a good decision.
>
> - softirq handling from the end of interrupt threads and on all
> thread sites where a nested local_bh disabled section ends
> ...
..and this latency plot is stunning:
https://www.osadl.org/Latency-plot-of-system-in-rack-4-slot.qa-latencyplot-…
enjoy,
robin
Hi,
I can't compile the MDA-LV2 plugins (SVN 3422).
I tried to mess around with the wscript file, but this time couldn't
find a solution...
It fails with the following error:
blablack@igor:~/src/Launchpad/mda-lv2$ ./waf configure
Setting top to : /home/blablack/src/Launchpad/mda-lv2
Setting out to :
/home/blablack/src/Launchpad/mda-lv2/build
Global Configuration
* Install prefix : /usr/local
* Debuggable build : False
* Strict compiler flags : False
* Build documentation : False
Mdala Configuration
Checking for 'g++' (c++ compiler) : /usr/bin/g++
Checking for header lv2/lv2plug.in/ns/lv2core/lv2.h : yes
Traceback (most recent call last):
File "/home/blablack/src/Launchpad/mda-lv2/.waf-1.6.6-158eec7a0749a003782d4a9a502e3d08/waflib/Scripting.py",
line 94, in waf_entry_point
run_commands()
File "/home/blablack/src/Launchpad/mda-lv2/.waf-1.6.6-158eec7a0749a003782d4a9a502e3d08/waflib/Scripting.py",
line 146, in run_commands
run_command(cmd_name)
File "/home/blablack/src/Launchpad/mda-lv2/.waf-1.6.6-158eec7a0749a003782d4a9a502e3d08/waflib/Scripting.py",
line 139, in run_command
ctx.execute()
File "/home/blablack/src/Launchpad/mda-lv2/.waf-1.6.6-158eec7a0749a003782d4a9a502e3d08/waflib/Configure.py",
line 127, in execute
super(ConfigurationContext,self).execute()
File "/home/blablack/src/Launchpad/mda-lv2/.waf-1.6.6-158eec7a0749a003782d4a9a502e3d08/waflib/Context.py",
line 87, in execute
self.recurse([os.path.dirname(g_module.root_path)])
File "/home/blablack/src/Launchpad/mda-lv2/.waf-1.6.6-158eec7a0749a003782d4a9a502e3d08/waflib/Context.py",
line 127, in recurse
user_function(self)
File "/home/blablack/src/Launchpad/mda-lv2/wscript", line 36, in configure
conf.env['pluginlib_EXT'] = pat[pat.rfind('.'):]
AttributeError: 'list' object has no attribute 'rfind'
Is anybody else facing the same issue?
Thanks in advance,
Aurélien
Hi everyone,
I want to give hdsp mixer OSC support for fader-, pan, mute and presetcontrol in both directions and input metering.
the OSC client shall be another hdsp mixer instance on the remote machine.
I wanted to know, where i can find the sources?
And if someone has some hints to do that...
Bye Ck
Hi,
Are the proceedings from the LAC printed in any journals? I know Dave did
a report this year but I'm not sure if that counts as published
proceedings when it comes to making things official.
--
Patrick Shirkey
Boost Hardware Ltd
> On 07/18/2011 04:02 AM, pshirkey(a)boosthardware.com wrote:
>>> On 07/17/2011 10:41 AM, Rustom Mody wrote:
>>>> On Sun, Jul 17, 2011 at 1:21 PM, Philipp Überbacher
>>>> <hollunder(a)lavabit.com>wrote:
>>>>
>>>>> Excerpts from Rustom Mody's message of 2011-07-17 05:33:44 +0200:
>>>>>> I am preparing to give a talk on the wider ramifications of music.
>>>>>> One of the things I wish to demonstrate is that things that look
>>>>> different
>>>>>> are merely analogs but at different scales.
>>>>>>
>>>>>> eg if something vibrates at 400Hz we hear a sound of A-flat. If it
>>>>>> 'vibrates' at 4 Hz we hear a beat.
>>>>>> In the same analogy a 2 vs 3 poly-rhythm (should?) change to a do-so
>>>>> chord.
>>>>>> And so on.
>>>>>
>>>>> I suggest you do some experiments before you give a talk. At 4 Hz you
>>>>> won't be able to hear anything, you won't even be able to reproduce a
>>>>> 4 Hz sound with common speakers.
>>>>>
>>>>
>>>> You took me quite literally, [I did put the vibrate into quotes :-) ]
>>>> Let me spell out the experiment in more detail:
>>>> Say I have a rhythm in 4/4 time -- 4 even quarter notes, bar repeating
>>>> every
>>>> second played by say a click. [What kind of click I am not very sure;
>>>> sharp
>>>> with few harmonics would be best I expect]
>>>
>>> Exactly. Just take a short audio-sample (aka grain) and trigger it
>>> repeatedly. Increase the trigger freq. (aka grain-speed) from 4 Hz ->
>>> 400Hz.
>>>
>>> Search the net for granular-synthesis. Your use-case is not the typical
>>> grain-synth application, but the principle is the same.
>>>
>>>> Now if there were some (realtime) way of sliding the tempo from 1 sec
>>>> to
>>>> millisec I expect the separate clicks would vanish into a hum at some
>>>> stage.
>>>>
>>>> This (and other such experiments) is what I want to demo.
>>>> Ive started looking at chuck.
>>>> How does it compare with puredata?
>>>>
>>>
>>> It's a bit of an apples vs oranges question.
>>>
>>> the main difference: Chuck you program in text, pure-data you
>>> graphically connect "objects" (if you know Max/MSP: pure-data is
>>> similar).
>>>
>>> AFAIK, Chuck does not offer GUI elements - you'll need to implement the
>>> slider via OSC or use a "text slider".
>>>
>>>>>> Is there some kind of software where I can make a 4 Hz beat and pull
>>>>>> a
>>>>>> slider or a freq text box entry until it sound like a A-flat note?
>>>>>
>>>>> puredata springs to mind, it's easy to use and has everything you
>>>>> need.
>>>
>>> Indeed. Though chuck, supercollider, csound,... could all do the trick.
>>>
>>> If you know neither of those. Pure-data is probably the easiest to get
>>> started with.
>>>
>>> http://www.timvets.net/video/grains.php will do what you want with Pd.
>>>
>>
>>
>> I'm not sure that does what he wants. He asked for a tool that takes an
>> existing signal/tone and then down tunes it. What you are suggesting
>> creates an emulation of that process but generates a completely new
>> signal/tone.
>>
>> It would achieve a similar sound but is functionally quite a different
>> process.
>
> You are right or course. It's not modeling the desired effect correctly;
> Yet it's close enough and much more robust and convicing for a Demo.
>
> Actually http://www.sonicvisualiser.org/ may be the tool of choice.
> Here's a video where it is used to slow down some Bach so that you can
> hear the "beating/pulsing" introduce by equal-temperament tuning:
> http://www.youtube.com/user/mcldx#p/a/u/0/uOOhvw89jc4
>
That's an interesting feature of that tool. I was not aware of that
functionality. It appears to work on the time domain not the
amplitude/phase of the signal. I assume as it uses a similar code base to
librubber band to achieve that functionality.
IIRC, It is still not quite doing what the original request appeared to
be asking for. i.e. down tuning an existing signal. ( He didn't require
time adjustment )
Would it just be a case for a pitch shifter with a automation fade curve
sone in Ardour/qtractor, etc...?
--
Patrick Shirkey
Boost Hardware Ltd