Re: [LAD] RAUL or other libraries for real this time? ;-)

2011-11-17 Thread Tim Blechmann
> Thanks Tim, I'll def check it out. What's the difference to a newbie like
> myself between yours and the one in Jack?
> 
> Congrats btw, that's awesome that your work will be in boost!

the main difference is prbly that the jack ringbuffer is plain c and prbly 
needs libjack, while boost.lockfree is a c++ library and header-only.

cheers, tim

> On Thu, Nov 17, 2011 at 2:09 AM, Tim Blechmann  wrote:
> > > part I need library help with is likely synchronization and
> > > interprocess/interthread communication. ( ie do I use the jack
> > 
> > ringbuffer?
> > 
> > > Do I look at boost queue implementations? does RAUL have a higher
> > > level
> > > convenience ring buffer?
> > 
> > my boost.lockfree library has been accepted and will be shipped with
> > future boost releases. it contains an mpmc-stack, an mpmc-queue and a
> > wait-free spsc
> > ringbuffer (same algorithm as the jack/kernel/supercollider ringbuffer).
> > 
> > git repo: http://tim.klingt.org/git?p=boost_lockfree.git;a=summary
> > (note that the addressing_reviews branch will be the one that will go
> > into boost)


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] RAUL or other libraries for real this time? ;-)

2011-11-17 Thread Tim Blechmann
> part I need library help with is likely synchronization and
> interprocess/interthread communication. ( ie do I use the jack ringbuffer?
> Do I look at boost queue implementations? does RAUL have a higher level
> convenience ring buffer?

my boost.lockfree library has been accepted and will be shipped with future 
boost releases. it contains an mpmc-stack, an mpmc-queue and a wait-free spsc 
ringbuffer (same algorithm as the jack/kernel/supercollider ringbuffer).

git repo: http://tim.klingt.org/git?p=boost_lockfree.git;a=summary
(note that the addressing_reviews branch will be the one that will go into 
boost)

cheers, tim


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-13 Thread Tim Blechmann
>> no one can write a test case which fails when
>> memory barriers are missing in a ringbuffer implementation.
> 
> That's an interesting assertion.  It's kind of tempting to write some
> buggy circular buffers and test that assumption on common hardware.

in fact, testing is not the best approach for verifying lock-free data 
structures: an implementation may work for years, if a certain condition is 
never triggered. the only reasonable way to ensure the correctness is a formal 
proof. unfortunately, most publications assume a sequencially consistent memory 
model and sometimes even avoid dealing with the ABA problem.

fortunately the atomics of c++0x/c1x will make it much clearer (and more robust 
as the memory order argument to the atomic functions defaults to sequencial 
consistency)

cheers, tim


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-12 Thread Tim Blechmann
>> using preempt_rt, the scheduling latency can be very low (like 10
>> microseconds), if cpu frequency scaling is applied or smt/hyperthreading is
>> enabled it can be as high as 250 microseconds (which is already quite
>> significant, if one is using small signal vector sizes).
> 
> That's interesting. We're actually benchmarking scheduling latency at the
> moment.

btw, i have discussed this briefly in my master thesis, section 4.1 [1]. the 
effect of the scheduling latency can also be observed in the benchmarks given 
in 
section 5.

and it would be great, if you can share your results, i'd be curious to see 
them!

cheers, tim

[1] http://tim.klingt.org/publications/tim_blechmann_supernova.pdf

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-12 Thread Tim Blechmann
>> OTOH, if you have a number of threads at the same priority
>> as Jack's and doing audio work (e.g. to use all the CPUs of
>> an SMP machine) then using locks between them (but no other
>> threads) should be OK - depending a bit on how they are used.
> 
> So, you can use locks as long as that's only meant to synchronize realtime
> threads with each other? Should some master thread (could be the JACK process
> thread) have a realtime priority slightly higher than the other (worker)
> realtime threads? What are the caveats in general?

yes and no: it is perfectly fine to use locks to use multiple real-time 
threads, 
but the thread A fails to acquire a lock, it will be suspended and woken up 
once 
thread B releases the lock. the time between `B releases the lock' and `A 
resumes its execution' is the scheduling latency, which is both os and hardware 
related.
using preempt_rt, the scheduling latency can be very low (like 10 
microseconds), 
if cpu frequency scaling is applied or smt/hyperthreading is enabled it can be 
as high as 250 microseconds (which is already quite significant, if one is 
using 
small signal vector sizes).

however one can avoid the scheduling latency by using spinlocks if one can 
ensure that none of the synchronized threads can be preempted. personally i 
achieve this by (a) using real-time scheduling, (b) using not more real-time 
threads than physical cores and (c) pinning the rt threads to separate cores.

tim


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-11 Thread Tim Blechmann
>> and the NPTL code in glibc *seems* to perform a memory barrier only on
>> sem_post().
> 
> Wouldn't that seem quite natural ? Semas provide one-way communication.
> It's the sem_post() that means there is an event to be seen by some
> other thread. So it has to make sure that any data related to it is
> visible to the receiver. The receiver taking the event (returning
> from sem_wait()), or checking for it (calling sem_wait()), is not
> meant to be an event for the other side. You need a second sema if
> events have to go both ways.

from my understanding, sem_post() implies a write barrier (stores have been 
executed before sem_post()) and sem_wait() a read barrier (loads have to be 
executed after sem_wait()).

tim

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-10 Thread Tim Blechmann
> >> > the main problem is the lack of a memory model for multi-threaded
> >> > applications at the level of the language (c or c++). fortunately this
> >> > is about to change with c++0x and probably c1x.
> >> 
> >> So in 10 years we will be able to rely on a conformant compiler being
> >> available on all relevant platforms :)
> > 
> > http://www.chaoticmind.net/~hcb/projects/boost.atomic/
> 
> if it all works ... very nice.
> 
> but note that its only been tested on a couple of versions of gcc on a
> couple of *nix-ish platforms.

the number of supported compilers in the documentation is outdated. it supports 
the most commonly used compilers and multiple architectures.
if a compiler is not supported natively, it uses a fallback implementation 
based 
on a pool of spinlocks, which of course is not lock-free, but c++0x doesn't 
guarantee lock-freedom either ...

i've been using it for quite some time in boost.lockfree (in a slightly 
modified 
version).

tim


signature.asc
Description: This is a digitally signed message part.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-10 Thread Tim Blechmann
> > the main problem is the lack of a memory model for multi-threaded
> > applications at the level of the language (c or c++). fortunately this
> > is about to change with c++0x and probably c1x.
> 
> So in 10 years we will be able to rely on a conformant compiler being
> available on all relevant platforms :)

http://www.chaoticmind.net/~hcb/projects/boost.atomic/


signature.asc
Description: This is a digitally signed message part.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-10 Thread Tim Blechmann
> Ah. pthread_mutex_lock() / unlock(), as EXTERNAL functions, will never
> be optimized away or inlined. Now, being all sequence points, if you
> simply do
> 
> pthread_mutex_lock();
> xval = x;
> pthread_mutex_unlock();
> 
> the compiler is not allowed to move statements out the locked section
> or reorder them in any way (without need for any volatile qualifiers).

the hardware would be allowed to reorder them ... this is the reason why mutex 
implementations involve memory barriers ...

the main problem is the lack of a memory model for multi-threaded applications 
at the level of the language (c or c++). fortunately this is about to change 
with c++0x and probably c1x.

tim

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] a *simple* ring buffer, comments pls?

2011-07-08 Thread Tim Blechmann
>> > I thought a "lock-free" ring buffer was supposed to be
>> > the easy solution!
>> 
>> It is... when you re-use one that's already been written and
>> debugged.  ;-)
>> 
>> Why not copy/paste the JACK ringbuffer (C) or even Ardours
>> (C++ Container)?
> 
> Here's another C++ one, for the record:
> 
> http://svn.drobilla.net/lad/trunk/raul/raul/RingBuffer.hpp

the linux kernel and supercollider have their own implementations of this 
algorithm as well ... iirc it is also described in the book `the art of 
multiprocessor programming' by maurice herlihy and nir shavit.

and i would like to do some self-advertising: i have submitted some of my lock-
free data structures to boost, and they will be reviewed in the end of july 
(18th-27th). source and docs are online [1, 2] and i'd like to invite everybody 
with an interest in lock-free programming to take part in the review. all the 
provided data structures (wait-free spsc ringbuffer, lock-free mpmc fifo and 
lock-free mpmc lifo) are potentially interesting for audio applications and i 
heavily use them for my multiprocessor-aware supercollider server ...

the review itself will take place on the boost-dev mailinglist [3]

cheers, tim

[1] http://tim.klingt.org/boost_lockfree
[2] http://tim.klingt.org/git?p=boost_lockfree.git;a=summary
[3] http://www.boost.org/community/groups.html#main

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] [ann] nova-simd

2011-02-19 Thread Tim Blechmann
hi all,

for some time, i have been working on nova-simd, a cross-platform SIMD library 
library written in c++. it abstracts the platform-specific APIs and provides a 
`vec' class, which maps to a SIMD floating-point vector on the target machines 
and which can be used to formulate more complex algorithms. for some commonly 
used vector functionality, helper functions are provided, which are built using 
the vec class. 

features:
- same interface for different SIMD architectures
- supported backends: sse-family, avx, altivec, arm/neon
- some backends include vectorized implementations of libm functions
- extensively used in supercollider
- header-only c++ (no runtime dependencies, composable), no dependencies

canveats:
- little documentations/examples
- no release, no tarball, just a git repository [1] and a web interface [2]
- header-only c++ (no c support)

maybe it is useful for other people as well...

cheers, tim

[1] git://tim.klingt.org/nova-simd.git
[2] http://tim.klingt.org/git?p=nova-simd.git;a=summary

-- 
t...@klingt.org
http://tim.klingt.org

Art is either a complaint or do something else
  John Cage quoting Jasper Johns


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Basic Audio Mixing Subroutines

2010-08-13 Thread Tim Blechmann
> Does anyone know of (or is there interest in creating) a
> library of basic, low-level, audio mixing subroutines?  This
> would be analag to the BLAS[1], but for audio.
> 
> What I'm thinking is something like Ardour's SSE-optimized
> mixing subroutines... and updating it for later
> optimizations (SSE2, SSE3, ...).

i've got some c++ headers, that provide simd-fied simple mixing functions, 
but also some other vectorized functions, sse-based libm functions and so on 
...
it is based on a generic vec class, that can simply be reimplemented for 
different types/architectures, but for now only suports float/sseX

tim

[1] http://tim.klingt.org/git?p=nova-simd.git;a=summary

-- 
t...@klingt.org
http://tim.klingt.org

Music is the can opener of the soul. It makes you terribly quiet 
inside, makes you aware that there's a roof to your being.
  Henry Miller


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] any improvement on S3 suspend-resuming driver snd-hdsp ?

2010-06-11 Thread Tim Blechmann
>> Is there any improvement in recent driver iterations ? I would really
>> like to be able to suspend / resume my PC sometimes.
> 
> Add a rmmod/modprobe to your suspend/resume scripts.

... this won't work if the hdsp is used by any application, or am i missing 
something?

cheers, tim

-- 
t...@klingt.org
http://tim.klingt.org

You don't have to call it music if the term shocks you.
  John Cage


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] gcc and pointer aliasing... missing optimizations in some cases

2009-12-26 Thread Tim Blechmann
>>> Thus telling the compiler that `this` is not an alias when
>>> process() is called.
>>
>> On second thought... since those didn't work for me, perhaps part of
>> the problem is that osc_block is a global variable, and thus there's
>> no way to prove __restrict__ on it.
>>
>> -gabriel
>
> fields of structs are not unaliased, even when the pointer to the struct
> is __restrict__

did you check http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14187?

tim

-- 
t...@klingt.org
http://tim.klingt.org

You can play a shoestring if you're sincere
   John Coltrane

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-17 Thread Tim Blechmann
> +#if defined(__APPLE__)
> +#include 
> +#define MEMORY_BARRIER() OSMemoryBarrier()
> +#elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
> +#define MEMORY_BARRIER() __sync_synchronize()
> +#else
> +#warning SMP Danger: memory barriers are not supported on this system
> +#endif

there was a buggy gcc version, that didn't implement
__sync_synchronize() correctly on x86, causing errors on nehalem
machines (which don't have a shared cache).

if sse is enabled, _mm_mfence() can be used to work around this compiler
bug ...

tim

-- 
t...@klingt.org
http://tim.klingt.org

/"\  ASCII Ribbon Campaign
\ /   no HTML in email & vCards
 X no proprietary attachments
/ \ use open standards



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-16 Thread Tim Blechmann
> this was discussed at some considerable length on jack-devel last  
> year, IIRC.
> for single reader/single writer ringbuffers, i believe that we
> concluded that memory barriers are not necessary.
 No, to me the conclusion was: we can't programmatically prove that  
 memory
 barriers are needed (even on the most vulnerable architectures),  
 but the theory
 say that they are, and they should be added for correctness.
>>> My understanding matches Olivier's.  Intel processors have strong memory
>>> ordering, and so on them the jack ringbuffer is safe without memory
>>> barriers. However, some PPC processors, and SPARC V9s under linux  
>>> (but not
>>> Solaris), use weak memory ordering, and on them, the jack ringbuffer  
>>> code
>>> can theoretically fail.
>>
>> exactly, the issue may not appear on x86, because of its memory
>> consistency, weakly-ordered machines will need some barriers ...
> 
> The point is, I wrote ringbuffer stress tests, and someone reported on this 
> list
> that they succeeded on a weakly-ordered (PowerPC SMP) system, even without
> memory barriers. Anyway...

unfortunately stress tests won't necessarily show the race condition


>>> See the "ring buffer memory barriers" discussion on jack-devel back in
>>> October of last year for more information; in particular, this article
>>> by Paul E. McKenney is very helpful:
>>>
>>> http://www.linuxjournal.com/article/8211
>>
>> memory-barriers.txt of the linux kernel documentation is interesting as
>> well ...
> 
> The portaudio ringbuffer is also a good source of inspiration I think:
> http://portaudio.com/trac/browser/portaudio/trunk/src/common/pa_ringbuffer.c
> 
> In short, they use memory barriers at only three places, especially:
> 
> - "to ensure that previous writes are seen before we update the write index"
> - "to ensure that previous writes are always seen before updating the (read) 
> index."

the kfifo doesn't look too different, either ...

tim

[1]
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=kernel/kfifo.c;hb=HEAD

-- 
t...@klingt.org
http://tim.klingt.org

You can play a shoestring if you're sincere
  John Coltrane



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-16 Thread Tim Blechmann
>> Actually, his implementation is similar to ringbuffer.c in
>> libjack... and assumes that reading and writing can happen
>> atomically (as was pointed out by someone else) -- which can
>> be managed with single reader / single writer
>> requirement.[a]
>> Unless I've misunderstood the code, ringbuffer.c is /not/
>> using special atomic operations.
> 
> Why should a single-reader-single-writer ring-buffer need atomic operations?
> 
> The reader increments the read-pointer (which doesn't have to be a pointer) 
> last when its finished, 

how do you ensure, that the read pointer is incremented _after_ the data
has been written to the output?

> the writer increments the write-pointer last when it 
> has written.

likewise, how do you ensure, that the write pointer is incremented
_after_ the data has been written to the ringbuffer?

also, when reading the read/write pointers, you need to ensure, that
they are loaded, before you touch the ringbuffer.

> All other access is read-only. No problems. (At least in my app.)

your code may work on x86, not necessarily on ppc, ia64 ... and then
there is alpha ...
we are not in a world, where assembler instructions are executed one
after the other, but we have out-of-order cpus with speculation and
multi-processor systems with non-shared caches ...

hth, tim

-- 
t...@klingt.org
http://tim.klingt.org

Which is more musical, a truck passing by a factory or a truck passing
by a music school?
  John Cage



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-16 Thread Tim Blechmann
>>> this was discussed at some considerable length on jack-devel last  
>>> year, IIRC.
>>> for single reader/single writer ringbuffers, i believe that we
>>> concluded that memory barriers are not necessary.
>>
>> No, to me the conclusion was: we can't programmatically prove that  
>> memory
>> barriers are needed (even on the most vulnerable architectures),  
>> but the theory
>> say that they are, and they should be added for correctness.
> 
> My understanding matches Olivier's.  Intel processors have strong memory
> ordering, and so on them the jack ringbuffer is safe without memory
> barriers. However, some PPC processors, and SPARC V9s under linux  
> (but not
> Solaris), use weak memory ordering, and on them, the jack ringbuffer  
> code
> can theoretically fail.

exactly, the issue may not appear on x86, because of its memory
consistency, weakly-ordered machines will need some barriers ...


> See the "ring buffer memory barriers" discussion on jack-devel back in
> October of last year for more information; in particular, this article
> by Paul E. McKenney is very helpful:
> 
> http://www.linuxjournal.com/article/8211

memory-barriers.txt of the linux kernel documentation is interesting as
well ...

cheers, tim

-- 
t...@klingt.org
http://tim.klingt.org

Contrary to general belief, an artist is never ahead of his time but
most people are far behind theirs.
  Edgar Varèse



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-15 Thread Tim Blechmann
>>> http://github.com/radarsat1/dimple/blob/master/src/CircBuffer.h
>>
>> you should add memory barriers, when reading or writing to the reader or
> 
> Actually, his implementation is similar to ringbuffer.c in 
> libjack... and assumes that reading and writing can happen 
> atomically (as was pointed out by someone else) -- which can 
> be managed with single reader / single writer 
> requirement.[a]
> 
> Unless I've misunderstood the code, ringbuffer.c is /not/ 
> using special atomic operations.

the jack ringbuffer code is not multiprocessor safe then ... it is prbly
not an issue for jack1, but maybe for jack2, if it is used there ...


>> writer indices ... my implementation (without size limitation to a power
>> of two) can be found at [1]
>>
>> [1]
>> http://tim.klingt.org/git?p=boost_lockfree.git;a=blob;f=boost/lockfree/ringbuffer.hpp;h=139f79869f610c61b0d117d2836a3c8c4949db02;hb=03d4e397a74f2b85c87f6b54b4755428956ff63a
> 
> This looks nice, too.  Have you considered trying to give it 
> an interface like the existing boost::circular_buffer?
> The distinguishing feature of your implementation is that is 
> lock-free... but it's otherwise the same concept (and 
> already in Boost).

i actually tried to match the interface to boost::lockfree::fifo, which
provides a multi-producer/multi-consumer queue.


> Also, does yours have a single reader / single writer 
> requirement?

yes

> I tried to clone the git repos, but hit ^C when it was 
> 20% and 40MB (!!).  :-)

it includes the full source tree of boost (160mb on my machine)

cheers, tim

-- 
t...@klingt.org
http://tim.klingt.org

Happiness is a byproduct of function, purpose, and conflict; those who
seek happiness for itself seek victory without war.
  William S. Burroughs



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-15 Thread Tim Blechmann
> For one of my projects I once ported the kfifo implementation in the
> Linux kernel to a C++ class.  Feel free to use it if you'd find it
> useful.  (GPL)
> 
> http://github.com/radarsat1/dimple/blob/master/src/CircBuffer.h

you should add memory barriers, when reading or writing to the reader or
writer indices ... my implementation (without size limitation to a power
of two) can be found at [1]

hth, tim

[1]
http://tim.klingt.org/git?p=boost_lockfree.git;a=blob;f=boost/lockfree/ringbuffer.hpp;h=139f79869f610c61b0d117d2836a3c8c4949db02;hb=03d4e397a74f2b85c87f6b54b4755428956ff63a

-- 
t...@klingt.org
http://tim.klingt.org

art is short - life is long
  Jack Kerouac



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-15 Thread Tim Blechmann
On 12/15/2009 02:58 PM, Paul Davis wrote:
> On Tue, Dec 15, 2009 at 8:54 AM, Paul Davis 
>  wrote:
>> these concepts have been around in this community (and others) for
>> years. i suspect that it is more than a decade since the folks at
>> GRAME published their paper on lock free data structures (used in
>> MidiShare), and its probably a decade or more since LAD first
>> discussed lock free (single-read/single-writer) ringbuffers. there's
>> nothing wrong with having new eyes and new ideas but i couldn't see
>> anything from a casual glance in that paper that hasn't been
>> documented and used by people on this list for a long time.
> 
> i should perhaps note that there tends to be less use of generic lock
> free data structures because of the absence of nice libraries. maybe
> effo can be a useful addition there. its not as if its the first one,
> however.

fyi, i am working on boost-style c++ implementations of some lockfree
data structures ... the library is on the boost review queue, however
counting the number of libs in the queue and review processes per year,
it may take some time, until it is an official part of boost ..

http://tim.klingt.org/git?p=boost_lockfree.git
http://tim.klingt.org/boost_lockfree/

suggestions/thoughts/criticism is welcome ...

tim

-- 
t...@klingt.org
http://tim.klingt.org

I had nothing to offer anybody except my own confusion
  Jack Kerouac



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Atomic Operations

2009-12-12 Thread Tim Blechmann
>  + At the moment, there is no built-in support in
>C/C++ for atomic operations.  You will need to use
>a library, compiler extension, or write your own
>in assembly code.

c++0x will contain support for atomic operations, a boost-style library,
implementing the upcoming std::atomic template is currently being worked on:
http://git.chaoticmind.net/cgi-bin/cgit.cgi/boost.atomic/

hth, tim

-- 
t...@klingt.org
http://tim.klingt.org

After one look at this planet any visitor from outer space would say
"I want to see the manager."
  William S. Burroughs



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] kernel 2.6.29 rc6 no working rme multiface 1

2009-03-02 Thread Tim Blechmann
hi dmitry and michael,

i was experiencing a similar issue myself ...

> 2.6.24 works, 2.6.28 doesn't (tried 2.6.8-ARCH and 2.6.28.7-1-ARCH).
> I reported the problem to alsa-devel list, but they said I have hw
> problems (I think I do not).

could you try the patch i posted a few days ago on alsa-devel? it solved
the issue for me ...
http://article.gmane.org/gmane.linux.alsa.devel/60411

it would be very odd, if several people experience the same hardware
problem starting with recent kernel versions :)

best, tim

-- 
t...@klingt.org
http://tim.klingt.org

Desperation is the raw material of drastic change. Only those who can
leave behind everything they have ever believed in can hope to escape.
  William S. Burroughs



signature.asc
Description: OpenPGP digital signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Regarding the linux-audio lists announcing policy

2008-07-09 Thread Tim Blechmann
>> Now regarding the fact that not everyone knows they should post on the
>> 3 lists, I don't really think that's the case. most announces I see are
>> posted at least on 2 lists. LAA is nearly always one of them. Some
>> people choose to add LAD and LAU, some choose to add also their project
>> list.
>> 
> I just ran the script again: as of July 8 2008 there are 1760 unique
> subscribers @linuxaudio.org's  4 lists (laa,lau,lad,consortium). The
> majority of users is subscribed to ONE list only.

being subscribed to a list and reading a list are two different 
things ... some people (including me) are reading the lists via gmane ...

besides ... if it is made clear that announcements are sent to the laa-
list only, people, who are interested in announcements can subscribe 
there ...
no need to force people to read mails several times, or even read mails 
one is not interested in (if someone doesn't care about announcements)

imho, double/triple-posting should be considered as `bad style' and 
should be avoided ...

best, tim

-- 
[EMAIL PROTECTED]
http://tim.klingt.org

After one look at this planet any visitor from outer space would say
"I want to see the manager."
  William S. Burroughs

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: A common plugin repository (WAS:Re: [LAD] ladspa qa?)

2007-09-06 Thread Tim Blechmann
On Thu, 2007-09-06 at 11:27 +0200, N. Gey wrote:
> Georg Holzmann schrieb:
> > yep. maybe the gstreamer way is a possible solutions, or something 
> > similar. they have three categories: good, bad and ugly (which are 
> > also different packages):
> >
> > ---8<
> > gst-plugins-good: a set of good-quality plug-ins under our preferred 
> > license, LGPL
> > gst-plugins-ugly: a set of good-quality plug-ins that might pose 
> > distribution problems
> > gst-plugins-bad: a set of plug-ins that need more quality
> > 8<
> > (http://gstreamer.freedesktop.org/modules/)
> 
> SVN is one (good) thing, but pre-packaging is very bad. Who will decide 
> whats good and whats not? There is no indipendent way for all styles of 
> music. Whats good for electro is bad for classical and so on.  So 
> prefiltering is not the right way. Reviewing afterwards regarding to 
> cases of use is a more fair system.

well, there are some points, that can be used to judge the quality of
plugins. if a filter is unstable, it is neither good for electro nor for
classical, as you don't hear anything from NANs. 

tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

Avoid the world, it's just a lot of dust and drag and means nothing in
the end.
  Jack Kerouac


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev


Re: A common plugin repository (WAS:Re: [LAD] ladspa qa?)

2007-09-05 Thread Tim Blechmann
> > I don't think it's a particularly great idea myself, it makes it
> > harder for package maintainers to track plugins if they move from one
> > package to another. If they stay in both then that's also tricky.
> 
> I assume you're imagining that the plugins would be copied to the common 
> repositories as-is; please correct me if I'm wrong.
> 
> In my mind this new codebase, although built upon existing code, would be 
> like 
> any other new plugin collection with new, individual names and everything 
> else that goes with it. Many of the existing plugin collections would become 
> abandoned by necessity, as work would be focused towards a common project, 
> but none of the new plugins would conflict with the old ones. So package 
> managers (myself included) wouldn't really have to worry.
> 
> Some older plugin sets would of course become redundant as the new common 
> collection would initially introduce much of the same stuff in new clothes. 
> But I want to stress the word _initially_ here, because from there on the 
> efforts would be much better concentrated than before.

well, it is mainly a packaging problem ... however, i don't really like
the idea of starting a new codebase, mainly because of the development
overhead ...

but there should be a way for people to find out, which plugins are high
quality plugins and which are low quality ...
imho it is somehow insane, that ubuntustudio-audio-plugins, which
provides ladspa plugins for ubuntu studio (a distribution that should
work out of the box) depends on vcf-plugins, which is an unmaintained
collection of filters, that will most probably blow your speakers, when
you try to change the parameters ...

if developers could mark unmaintained plugins as deprecated (to keep
backwards compatibility) and would try to convince distributors to ship
only plugin packages, which match a certain quality, the overall quality
of linux audio plugins would probably increase ...

cheers, tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

The price an artist pays for doing what he wants is that he has to do
it.
  William S. Burroughs


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev


Re: [LAD] ladspa qa?

2007-09-04 Thread Tim Blechmann
> > have there been some thoughts of introducing some kind of ladspa qa?
> 
> Not that I know of, but it's a brilliant idea.
> 
> I've been meaning to setup some kind of wiki based thing where users  
> can share problems/experiences, but just never had the time.

a wiki is probably a good starting point ... this may also lead to less
duplicate plugins if people collaborate ... like, there is not really
the need for 5 different lowpass filters, especially, if only 2
implementations are stable ... :/

cheers, tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

Question: Then what is the purpose of this "experimental" music?
Answer: No purposes. Sounds.
  John Cage


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev


[LAD] ladspa qa?

2007-09-04 Thread Tim Blechmann
hi all,

i'm not really familiar with the ladspa development process, but is
there any quality assurance for ladspa plugins?

i have been implementing some of my filters as ladspa plugins, but when
trying to compare them with others, i found, that some of the plugins
did not do, what i expected them to do (a white noise generator did not
generate white noise, a shelf filter was highly unstable when changing
parameters) ...

of course, all plugins are free (as in speech), without any warranty,
but i still think, that there should be a certain amount of quality
assurance, if we want people to use the ladspa plugins ...

have there been some thoughts of introducing some kind of ladspa qa?

best, tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

Desperation is the raw material of drastic change. Only those who can
leave behind everything they have ever believed in can hope to escape.
  William S. Burroughs


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev


Re: [LAD] Ardour session archiver (Was: new lossless/lossy audio compressor)

2007-08-01 Thread Tim Blechmann
On Tue, 2007-07-31 at 16:37 -0400, Paul Winkler wrote:
> On Tue, Jul 31, 2007 at 10:25:34PM +0200, Marc-Olivier Barre wrote:
> > I been thinking of the same thing... can't ardour handle FLAC files
> > natively ?
> 
> Nope. 

well, it is possible to manually convert the session audio data to flac
and change the filenames in the session files ... this works fine as
long as libsndfile supports flac ...

i'm usually doing this hack in order to avoid hard disc space when
archiving recordings ...

i'd like to see a proper 'native' support in ardour, though ... 

tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

Linux is like a wigwam: no windows, no gates, apache inside, stable.


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev


Re: [LAD] [ANN] pyliblo 0.5

2007-04-26 Thread Tim Blechmann
> For example, liblo (and thus pyliblo) takes care of things like finding a 
> free port, matching argument types, type coercion, or running the OSC 
> server in its own thread, so that the main thread can continue doing GUI 
> stuff or something.
> With pyliblo, all this requires very little effort from the programmer. 
> And IMHO it has a cleaner and more pythonic API than any of the 
> alternatives :)

i see, thanks for the insights ... 

tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

Desperation is the raw material of drastic change. Only those who can
leave behind everything they have ever believed in can hope to escape.
  William S. Burroughs


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev


Re: [LAD] [ANN] pyliblo 0.5

2007-04-26 Thread Tim Blechmann
hi dominic

On Thu, 2007-04-26 at 15:17 +0200, Dominic Sacré wrote:
> pyliblo is a Python wrapper for the liblo OSC library. It does not yet 
> wrap all of liblo's functionality, but includes everything you need to 
> send and receive almost any kind of OSC message, using a nice and simple 
> Python API. OSC can hardly get any easier :)

i'm curious, what's the advantage of pyliblo over these native python
implementations of osc?
http://space.k-hornz.de/space/uploads/OSC.py
http://www.ixi-software.net/content/body_backyard_osc.html

best, tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://tim.klingt.org

Desperation is the raw material of drastic change. Only those who can
leave behind everything they have ever believed in can hope to escape.
  William S. Burroughs


signature.asc
Description: This is a digitally signed message part
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev