Re: [LAD] Is this sort of window function used? (can't identify)

2019-04-16 Thread Nikita Zlobin
On Mon, 15 Apr 2019 16:25:06 +0200
Diemo Schwarz  wrote:

> that's a perfect question for music-dsp (list and archive, start at
> https://www.musicdsp.org)... ...Diemo
> 
> 
> On 15/04/19 13:51, Nikita Zlobin wrote:
> > While experimenting with window functions for spectral analyzis, I
> > compared Hann, Sin and Lanczos. It is easy to notice, that Hann is
> > really same as sin(x)^2. Lanczos is tiny bit better, because its
> > sides are tiny bit smoother, compared to sin(). It seems, that
> > unsmoothed corners between sides and zero axis for sin() is reason
> > why sides are so high, compared to Hann. Hamming and more over
> > Gaussian have ideal smooth sides, but narrower middle (probably
> > this one reason why central leaf is wider for them).
> > 
> > Just for experiment i tried to change sin(x)^2 to just sin(x)^f,
> > where 1.0f < f < 2.0f. And it looks like any f>1 causes derivative
> > to be =0 at zero axis. The only thing, affected by exact amount in
> > this range, is how fast it will become zero. While it is easy to
> > notice with Hann example, factor around 1.2 or 1.1 make it hard to
> > notice without very deep zoom. With f=1.25 or 1.26 it nearly
> > reproduces Lanczos, thought difference may be noticed, if plotted
> > at the same time. Though still not have enough precise integral for
> > weakening correction, i noticed that side leafs falldown slightly
> > faster than for Hann.
> > 
> > Now I'm curious, is such function is in use? I don't know how to
> > call it for search request. E.g., after reinventing Welch window by
> > just multiplicating y=2x with y=2-2x, I already knew it is
> > parabola. For sin(x)/x i know it is sinc. But what is sin(x)^y, at
> > least at some 'y' between 1 and 2 ?
> > 
> > I feel, that this is also something reinvented. Just like writing
> > sin(x)^2, i discovered later that it is Hann. Need help.
> > 
> > One of professors, who are still aware of signal processing stuff,
> > adviced me to reed this book (found localized to russian):
> > https://www.scirp.org/(S(351jmbntvnsjt1aadkposzje))/reference/ReferencesPapers.aspx?ReferenceID=34577
> > 
> > but i still have to find time to learn it (besides of deepening my
> > math knowledge).  

I just found, that I erroneously wrote x*pow(x, e), thus automatically
incrementing total exponent (and also why weakening coefficient did not
match). With e=1..2 it just balances between sine and hann
(so essentially :) ).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Is this sort of window function used? (can't identify)

2019-04-15 Thread Nikita Zlobin
While experimenting with window functions for spectral analyzis, I
compared Hann, Sin and Lanczos. It is easy to notice, that Hann is
really same as sin(x)^2. Lanczos is tiny bit better, because its sides
are tiny bit smoother, compared to sin(). It seems, that unsmoothed
corners between sides and zero axis for sin() is reason why sides are
so high, compared to Hann. Hamming and more over Gaussian have ideal
smooth sides, but narrower middle (probably this one reason why central
leaf is wider for them).

Just for experiment i tried to change sin(x)^2 to just sin(x)^f, where
1.0f < f < 2.0f. And it looks like any f>1 causes derivative to be =0
at zero axis. The only thing, affected by exact amount in this range,
is how fast it will become zero. While it is easy to notice with Hann
example, factor around 1.2 or 1.1 make it hard to notice without very
deep zoom. With f=1.25 or 1.26 it nearly reproduces Lanczos, thought
difference may be noticed, if plotted at the same time.
Though still not have enough precise integral for weakening correction,
i noticed that side leafs falldown slightly faster than for Hann.

Now I'm curious, is such function is in use? I don't know how to call
it for search request. E.g., after reinventing Welch window by just
multiplicating y=2x with y=2-2x, I already knew it is parabola. For
sin(x)/x i know it is sinc. But what is sin(x)^y, at least at some
'y' between 1 and 2 ?

I feel, that this is also something reinvented. Just like writing
sin(x)^2, i discovered later that it is Hann. Need help.

One of professors, who are still aware of signal processing stuff,
adviced me to reed this book (found localized to russian):
https://www.scirp.org/(S(351jmbntvnsjt1aadkposzje))/reference/ReferencesPapers.aspx?ReferenceID=34577

but i still have to find time to learn it (besides of deepening my
math knowledge).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] How do you improve optimization for integer calculations?

2019-04-14 Thread Nikita Zlobin
On Sun, 7 Apr 2019 22:27:34 +0200
Maarten de Boer  wrote:

> > Looks like you propose to use intel-specific intrinsics. I already
> > looked gcc docs in hope to find something similar, but only found
> > vectorization section, from C extensions. Hoped to see something
> > probablt gcc-specific, but not intel-spec.  
> 
> I am not sure if I understand what you mean, but Intel’s SSE
> intrinsics are well supported by gcc.
> 
> This might be a good read:
> https://www.it.uu.se/edu/course/homepage/hpb/vt12/lab4.pdf
> 
> 
> > […] Probably -O3 shuffled code too hard to
> > correctly represent in debugger even with -g :/   
> 
> Instead of using the debugger to look at the assembly, you could use
> objdump -S -l on the object file
> 
> -S, --source Intermix source code with disassembly
> -l, --line-numbers Include line numbers and filenames in output
> 
> Good luck.
> 
> Maarten
> 


Thanks for advises. It is probably time for some feedback about solving.

While it is not about audio, i hope it will be useful here too, as it
is about more common gcc simd usage. In two words, i found way to
involve packed simd way without using intrinsics.

I casually found SIMD intrinsics in 'info gcc', C extensions / Target
builtins, with mmx/sse in x86 builtins (__builtin_ia32_paddb and such).
However I hoped for less restricting solution. And this is time when i
got real meaning of gcc vector extension __attribute__(( vector_size
(2^n) )).

After I involved this, I god so wanted packed instructions, both for
float and int code versions. What is interesting, float variant before
improving was 2/3 times slower than int-based variant (I'm in maze, why
that isolatex pxor xmm0, xmm0 instruction would ever appear without
other SIMD code). After rewriting float variant with vector ext it
barely was close to unmodified int variant by performance :) .

Int variant also got some SIMD ops (only FP, there are no scalar SSE
ops for int, probably because make no sence). And it is still forward,
related to FP variant :) . It only seems, that I now stucked at data
transfer speed bootleneck.

For exact example, my code is like this:

/**/
typedef uint16_t v8u16 __attribute__(( vector(16) ));

v8u16
vect1 = {...some uint8_t values...},
vect2 = {same.},
vect3 = {...};
vect1 = (vect1 + vect2 + vect3) / 3;

/** writing vect1 elements back to dynamic memory **/

Each value in vector is filled from byte value, loaded from dynamic
memory. Speedup is noticed even when using only half of vector's
capacity, and it is still tiny bit better, then if just using MMX
4*uint16 way. But when trying to use full capacity, speedup is
negligible. My cpu is Intel B950, sandybridge. I'm pretty sure, without
this bootleneck or with more complex processing, speedup would be more
notable.

Also another factor here appears to be dynamic memory access order. The
above example is almost exact excerpt from my code, with some omitions
to save space. Data from dyn mem are processed by bocks of 3*4 uint8_t
(3 ARGB32 pixels). Each block is distributed between all 3 vectors so,
that it occipes exactly 4 matching elements in each, allowing to load 2
blocks in 3 x 128bit vectors. Bit if i try to do it in single step
during initialization, for each vector needs to jump between 2 blocks
during init (could be more for avx2 and avx512, though I lack them).
This reduces performance even lower than before code vectorization.

The only way to not lose it is seems to do half-initialization, with
following per-element init like:
vect1[4] = , vect1[5] = ,
and so on.

What is really good with these vectors - they are safe to be used even
if target arch doesn't support necessary vector size or has no SIMD
ever. According to 'info gcc':

> Specifying a combination that is not valid for the current
> architecture causes GCC to synthesize the instructions using a
> narrower mode.  For example, if you specify a variable of type `V4SI'
> and your architecture does not allow for this specific SIMD type, GCC
> produces code that uses 4 `SIs'.

So, theoretically it is posible to enage vector size 64 (avx512) and
still expect it working on lesser architectures. The only issue - i
can't understand wether it decreases performance for lessers, comparing
to dedicated vector sizes or vectorless code. Some times i got
slowdown, but sometimes it was just fine. Probably will need more
tests. Even finally trying some intrinsics :) (I hoped to avoid, but
why not just try).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] How do you improve optimization for integer calculations?

2019-04-10 Thread Nikita Zlobin
In Sun, 7 Apr 2019 23:06:45 +0500
Nikita Zlobin  wrote:

> I really did not recognize that nasty trick, clearing xmm0 :).
> Also i understood, why SSE can't be used there. Without integer
> division support it is undoable with SSE - replacing with
> multiplication means conversion to float.
>

I recently discovered fast integer division algorythm, allowing to
accelerate multiple divisions with same divisor. I got working this
way, but then discovered that gcc uses this method, so it is still
doable by SSE. Though from other side, i still can't find enough
places, where benefit of working with colors as single integers rather
than separate color values would be meaningful... one such place is
accumulator, used for averaging. While input is uint8_t[4], accumulator
is uint16_t[4]. I have to either work with them by elements or use
masks, bitshifts and OR for each element... just to prepare single
value and store (either uing32_t[2] or just one uint64_t).

Looks like benchmarks are necessary, along with these intrinsics, to
test, wether integer SSE really better than what gcc proposes.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] How do you improve optimization for integer calculations?

2019-04-08 Thread Nikita Zlobin
In Sun, 7 Apr 2019 22:27:34 +0200
Maarten de Boer  wrote:

> > Looks like you propose to use intel-specific intrinsics. I already
> > looked gcc docs in hope to find something similar, but only found
> > vectorization section, from C extensions. Hoped to see something
> > probablt gcc-specific, but not intel-spec.  
> 
> I am not sure if I understand what you mean, but Intel’s SSE
> intrinsics are well supported by gcc.
> 
> This might be a good read:
> https://www.it.uu.se/edu/course/homepage/hpb/vt12/lab4.pdf
> 
> 
> > […] Probably -O3 shuffled code too hard to
> > correctly represent in debugger even with -g :/   
> 
> Instead of using the debugger to look at the assembly, you could use
> objdump -S -l on the object file
> 
> -S, --source Intermix source code with disassembly
> -l, --line-numbers Include line numbers and filenames in output
> 
> Good luck.
> 
> Maarten
> 
> 
> 
> 
> 
> 

Thanks!
I tried gcc option -save-temps just before objdump, but second with
give options seems to be way more useful :).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] How do you improve optimization for integer calculations?

2019-04-07 Thread Nikita Zlobin
In Sun, 7 Apr 2019 17:13:31 +0200
Maarten de Boer  wrote:

> Hi,
> 
> 
> > […]
> >col[0] /= 9.0, col[1] /= 9.0, col[2] /= 9.0, col[3] /=
> > 9.0; 0x5a39 pxor   %xmm0,%xmm0
> > […]
> > 
> > Notice, how line, containing chain of divisions, is compiled to
> > single sse operation.  
> 
> I don’t see any SSE operation here. The pxor is just to zero the xmm0
> register.
> 
> It’s a bit difficult to know what you are doing here, not having
> context and not knowing the datatypes, but it does indeed look like
> this code could benefit from vectorisation, since you are doing
> calculation in blocks of 4. E.g. you can multiply 4 floating points
> in a single SSE instruction, add 4 floating points in a single SSE
> instructions, etc.
> 
> e.g.
> 
> __m128 factor = _mm_set_ps1 (1.0f/9.0f);
> __m128 result = _mm_mul_ps (packed, factor);
> 
> would divide the 4 floats in packed by 9. (We could use _mm_div_ps ,
> but multiplication is faster than division)
> 
> (See https://software.intel.com/sites/landingpage/IntrinsicsGuide/
>  )
> 
> Depending on your data, it might be faster to stay in the floating
> point domain as long as possible to use SSE floating point
> operations, and convert to integer at the last moment.
> 
> If you do want/need to stay in the integer domain, note that their is
> no SIMD instruction for integer division, but you could use a
> multiplication here as well:
> 
> __m128i _mm_mulhi_epi16 (__m128i a, __m128i b)
> 
> multiplies the packed 16-bit integers in a and b (so 8 at the same
> time), producing intermediate 32-bit integers, and stores the high 16
> bits of the intermediate integers in the result.
> 
> Taking the high 16 bits of the 32 bit intermediate result is
> effectively dividing by 65536. Since x/9 can be expressed (with some
> error) as x*7281/65536:
> 
> __m128i factor = _mm_set1_epi16 (7282);
> __m128i result = _mm_mulhi_epi16(packed, factor)
> 
> Of course you would have to get your 8 bit integers (I assume)
> into/out of the packed 16 bit registers.
> 
> That said, whether you want to do this kind of vectorisation by hand
> is a different matter. The compiler is pretty good in doing these
> kind of optimisations. Make sure you pass the right flags to turn on
> SSE and AVX at the levels you want to support. But it certainly is
> possible to improve what the compilers does. I have obtained
> significant speed boosts though rewriting inner loops with SSE
> intrinsics. But even if you choose to stay in C, having some
> knowledge of the SSE instruction set certainly might help.
> 
> Maarten


Thanks, Maarten.

Looks like you propose to use intel-specific intrinsics. I already
looked gcc docs in hope to find something similar, but only found
vectorization section, from C extensions. Hoped to see something
probablt gcc-specific, but not intel-spec. I made earlier experiments,
getting purest sse code, while multiplying or adding elements from
fixed-sized array, created as auto.

I really did not recognize that nasty trick, clearing xmm0 :).
Also i understood, why SSE can't be used there. Without integer
division support it is undoable with SSE - replacing with
multiplication means conversion to float.

Yet, just as experiment, i replaced this and 4 add lines with:
op[0] = (col[1] + col[2]) / 2;
to look, wether it will involve PAVGW or similar - it did not.

Can't really understand meaning of that single pxor line without other
SSE stuff. But after i changed gcc options to -O2, more meaningful
lines appeared where expected. Probably -O3 shuffled code too hard to
correctly represent in debugger even with -g :/ .

I'm now certain about to try FP way.

More about my app - i'm learning in university, for software
engineering. It so happened, that just in begining of this course i got
final decision to begin what i searched for long time ago (these
spectral editing helpers), and during session new subject appeared,
where we had to write any application, relying on input/output (such as
any GUI program), so i dedicated my plan to this.
I'm still uncertain is it ok to publish it before it is defended,
otherwise it is ready for that.

As for post-proc - i'm experimenting with subpixel rendering (my
another weakness :) ). I'm taking 3x3 pixel blocks (so-called
super-pixels) and pass them through complete chain. Probably 3x1 could
be good, it cairo has no problem rendering to surfaces with such
virtual pixel ratio, for now it is that. In my sequence image is
splited to grey minimum and color remainder, with grey mixed down at
subpixel level, while color part simply pixelated, both summed in
destination. Code chunk, i showed in previous post, is for this
remainder averaging part.

With current implementation and all cairo rendering to 3x res surf
commented out, it has ≈30% more speed comparing to simple downsampling
with cairo itself (when 3x surf itself is used as drawing source), but
this is taking in account that for n

[LAD] How do you improve optimization for integer calculations?

2019-04-07 Thread Nikita Zlobin
Hello.

I just have attempt, writing serious application, considering language
(C), tookit (gtk3, cairo, pango, etc) and that it is audio app. Besides
that many audio things use simple "float" for audio data, i noticed
some posts, where tension towards integer math appeared. While it is
not my case (my app is jack-based, and audio data have FP type
everywhere), i slightly distracted from audio side.

My app for now is spectrum analyzer, which later should evolve into
couple of spectral editing helper utilities (more exactly to generate
spectrogram and apply changes either by resynth or by filtering with
diff spectrogram).

I distracted to experiments with graphics post-processing for instant
spectrum view rendering. Due to cairo nature, color data in cairo image
surface may be at best argb32, rgb24 and rgb30 (for now i implemented
uspport only for first two). As result post-processing is all done in
integer mode. I can understand this, as i noticed that channel orders
in memory depends on endianness, what points that cairo relies more on
masks and bitshifts than for byte value arrays where is possible.

I decided to look in debugger for how gcc does optimize these ops.
Noticed following. Below is code chunk from kdbg with some asm blocks
expanded. There is only one line, where i tried to use floating point
ops, just for comparison (plus some context for better understanding).

for (int l = 0; l < 3; l++)
for (int c = 0; c < 3; c++)
{
unsigned char
* p = bpix[l][c];

col[0] += p[0] ,
0x5b27 movzbl 0x60(%rsp),%esi
col[1] += p[1] ,
0x5a34 movzbl 0x65(%rsp),%eax
col[2] += p[2] ,
0x5a42 movzbl 0x62(%rsp),%edx
col[3] += p[3];
0x5a47 movzbl 0x67(%rsp),%esi
0x5a4c mov0x10(%rsp),%rbp
}
col[0] /= 9.0, col[1] /= 9.0, col[2] /= 9.0, col[3] /= 9.0;
0x5a39 pxor   %xmm0,%xmm0
op[0] += col[0] ,
0x5b8d add%sil,0x0(%rbp)
op[1] += col[1] ,
0x5b94 add%cl,0x1(%rbp)
op[2] += col[2] ,
0x5b97 add%dl,0x2(%rbp)
op[3] += col[3];
0x5b91 add%al,0x3(%rbp)

for (int l = 0; l < 3; l++)
ip[l] += 3;
op += ch_n;
}

Notice, how line, containing chain of divisions, is compiled to single
sse operation. What is interesting, this is only asm line, involving
xmm or imm - i can't find anything else like mov, involving these
registers.

With division to integer 9 - it is still one line, but no xmm is
involved.

col[0] += p[0] ,
0x5b17 movzbl 0x64(%rsp),%eax
col[1] += p[1] ,
0x5a35 movzbl 0x65(%rsp),%eax
col[2] += p[2] ,
0x5a4a movzbl 0x7e(%rsp),%esi
col[3] += p[3];
0x5a4f movzbl 0x7f(%rsp),%ecx
}
col[0] /= 9, col[1] /= 9, col[2] /= 9, col[3] /= 9;
0x5a3a mov$0x38e38e39,%r8d
op[0] += col[0] ,
0x5b78 add%dl,0x0(%rbp)
op[1] += col[1] ,
0x5b3a add%dil,0x1(%rbp)

As for GCC opts, i used unusual combo "-march=native -O3 -g" in order
to get exhausing optimization, but still keep it readable for kdbg
disasm to get a look.

While searching for info about sse integer support, search pointed me
to wikipedia page about x86 instructions, where i found almost enough
instruction set - logical, add, sub and mul, signed and
unsigned, words and bytes (at least in SSE2 which according to
description enabled MMX set to use SSE registers, where integer support
was primary in MMX).

So, i'm in maze - why doesn't gcc involve such ops in integer mode?
Could it be possible, that what it did is better without SSE?

I'm about to eventually try more FP ops in this place but unsure, about
possible conversions, since source and dest are anyway cairo surfaces
with integer data.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Is -ffast-math safe for audio?

2018-11-23 Thread Nikita Zlobin
In Fri, 23 Nov 2018 17:56:38 +
Gordonjcp  wrote:

> On Fri, Nov 23, 2018 at 10:33:24PM +0500, Nikita Zlobin wrote:
> > In Fri, 23 Nov 2018 14:18:01 +
> > Gordonjcp  wrote:
> >   
> > > On Fri, Nov 23, 2018 at 02:09:02PM +0100, Robin Gareus wrote:  
> > > > On 11/23/2018 01:00 PM, Will Godfrey wrote:
> > > > [...]
> > > > > Thanks for going into this in such detail Robin. I never
> > > > > realised fp stuff could be *quite* so, umm, approximate!
> > > > 
> > > > Depending on context and the maths, the difference may not
> > > > matter at all, or may be off completely..
> > > 
> > > Surely the answer is just to use 16-bit ints for everything,
> > > then...? 
> > 
> > Let me note - it would be at least 32-bit int, since in 32bit float
> > significand is 23bit.  
> 
> We don't need that much precision, we only have 10-bit ears.
> 

Oh... when you wrote "for everything" - i thought, it includes
processing too, not just listening.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Is -ffast-math safe for audio?

2018-11-23 Thread Nikita Zlobin
It's probably gonna be silly question, but after short analysis i don't
see, what could be broken in this demo snippet, when float is standard
single-precision 32bit type.

I omit first case, as optimizing compiler could just optimize it to
just =1; though it could do it in second case too... (as assumed, i did
not try to compile it yet).
But even without underhood tricks - 32bit float has 23/24bit for
significand, thus

In Fri, 23 Nov 2018 14:09:02 +0100
Robin Gareus  wrote:

> On 11/23/2018 01:00 PM, Will Godfrey wrote:
> [...]
> > Thanks for going into this in such detail Robin. I never realised
> > fp stuff could be *quite* so, umm, approximate!  
> 
> Depending on context and the maths, the difference may not matter at
> all, or may be off completely..
> 
>   float a = (1 + 1e20) - 1e20;
>   float b = 1 + 1e20; b -= 1e20;
>   printf ("%f %f\n", a, b);
> 
> Any guesses what this code prints without compiling it? :)
> 
> > I was using O3. Following on from this I found that if I removed
> > either O3 or ffast-math the problem disappeared.  
> 
> OK, so SSE/AVX/compiler-intrinsics are the issue at hand.
> 
> > It's quite possible that I'm over-thinking this as there are
> > actually only a few iterations before the initial figures are
> > re-calculated, but I don't like mysteries :(
> >   
> 
> You could also disable this for a specific function only
> 
> __attribute__((optimize("-fno-fast-math")))
> void different_mysteries_here (float val)
> {
> ...
> }
> 
> ciao,
> robin
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-dev
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Is -ffast-math safe for audio?

2018-11-23 Thread Nikita Zlobin
In Fri, 23 Nov 2018 14:18:01 +
Gordonjcp  wrote:

> On Fri, Nov 23, 2018 at 02:09:02PM +0100, Robin Gareus wrote:
> > On 11/23/2018 01:00 PM, Will Godfrey wrote:
> > [...]  
> > > Thanks for going into this in such detail Robin. I never realised
> > > fp stuff could be *quite* so, umm, approximate!  
> > 
> > Depending on context and the maths, the difference may not matter at
> > all, or may be off completely..  
> 
> Surely the answer is just to use 16-bit ints for everything, then...?
> 

Let me note - it would be at least 32-bit int, since in 32bit float
significand is 23bit.

Of course, if clipping-resistance is not important (special precaucions
like keeping signal level in range of e.g. -6db or -12db could emulate
it).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Is -ffast-math safe for audio?

2018-11-23 Thread Nikita Zlobin
It could be lame question, but still... is it possible, that some
implementations (compiler/hardware) will print 1? (even 64bit doesn't
hold 20 decimal digits).?

In Fri, 23 Nov 2018 14:09:02 +0100
Robin Gareus  wrote:

> On 11/23/2018 01:00 PM, Will Godfrey wrote:
> [...]
> > Thanks for going into this in such detail Robin. I never realised
> > fp stuff could be *quite* so, umm, approximate!  
> 
> Depending on context and the maths, the difference may not matter at
> all, or may be off completely..
> 
>   float a = (1 + 1e20) - 1e20;
>   float b = 1 + 1e20; b -= 1e20;
>   printf ("%f %f\n", a, b);
> 
> Any guesses what this code prints without compiling it? :)
> 
> > I was using O3. Following on from this I found that if I removed
> > either O3 or ffast-math the problem disappeared.  
> 
> OK, so SSE/AVX/compiler-intrinsics are the issue at hand.
> 
> > It's quite possible that I'm over-thinking this as there are
> > actually only a few iterations before the initial figures are
> > re-calculated, but I don't like mysteries :(
> >   
> 
> You could also disable this for a specific function only
> 
> __attribute__((optimize("-fno-fast-math")))
> void different_mysteries_here (float val)
> {
> ...
> }
> 
> ciao,
> robin
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-dev
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] should JACK programs autostart the server?

2018-09-20 Thread Nikita Zlobin
In Thu, 20 Sep 2018 03:30:31 +
bill-auger  wrote:

> the debian maintainer of freewheeling suggested that it should
> autostart the server if it is not running (change JackNoStartServer to
> JackNullOption)
> 
> i have my opinion; but i am interested in others
> 
> 
> https://sources.debian.org/src/freewheeling/0.6.4-1/debian/patches/060_jackstart.diff/
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-dev

It's not a subject to be hated or must have, as depends on exact
situation. I made setup with desktop JACK setup, similar to kxstudio,
but different - pulseaudio constantly hangs runing with only jackdbus
module for audio devices, so when jackdbus needs to be shutdown, pulse
is over there, awaiting with nullsink for next jack run. But with
periodically runing jack - autostart would be handy, just to save a
couple of seconds, allowing to simply launch app, without worrying
about jack status.

From Rui Nuno Capella:
> b. legacy jackd *do* auto-start exactly what's in "~/.jackdrc" file; 
> fwiw. i do have this "/absolute/path/to/qjackctl --start" in there,
> so that qjackctl pops up whenever a(ny) jack client application is
> called ;) (*)

Last time i tried to argue about libjack ability to use jack via dbus
if available, i was unaware about what ~/.jackdrc allowes - would be
strange, to open qjackctk settings and... write "/usr/bin/qjackctl" to
command line :)
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] jmatconvol-0.3.1 release tarball has wrong file name

2018-06-08 Thread Nikita Zlobin
Sorry, pressed Ctrl+Enter too early:
From file output:

..jmatconvol-0.3.1.tar.bz2: gzip compressed data, last
modified: Sun Dec 7 20:13:54 2014, from Unix

I'm not sure, is it supposed to be known as release - at least i could
not find any emails from LAD, mentioning it. But it is on downloads
page.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] jmatconvol-0.3.1 is named as bzip2 archive, but it is gzip

2018-06-08 Thread Nikita Zlobin
..jmatconvol-0.3.1.tar.bz2: gzip compressed data, last modified: Sun Dec
7 20:13:54 2014, from Unix
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] broken make install in zita-ajbridge

2018-05-17 Thread Nikita Zlobin
To kokkinizita

When runing make install, resulting structure has /usr/bin as
executable and /usr/share/man/man1 as probably, some archive.

# ls -lR
.:
итого 4
drwxr-xr-x 3 root root 4096 май 17 22:34 usr

./usr:
итого 36
-rwxr-xr-x 1 root root 31480 май 17 22:34 bin
drwxr-xr-x 4 root root  4096 май 17 22:34 share

./usr/share:
итого 8
drwxr-xr-x 3 root root 4096 май 17 22:34 doc
drwxr-xr-x 2 root root 4096 май 17 22:34 man

./usr/share/doc:
итого 4
drwxr-xr-x 2 root root 4096 май 17 22:34 zita-ajbridge-0.7.0

./usr/share/doc/zita-ajbridge-0.7.0:
итого 8
-rw-r--r-- 1 root root   39 май 17 22:34 AUTHORS
-rw-r--r-- 1 root root 2185 май 17 22:34 README.bz2

./usr/share/man:
итого 4
-rw-r--r-- 1 root root 57 май 17 22:34 man1

Looks like, option -D causes to create almost complete path, without
last element (man1 and bin), so those are treated as new file names.

Separate creation of directories fixes problem, e.g. begin install
target with this:
install -m 755 -d $(DESTDIR)$(BINDIR)
install -m 755 -d $(DESTDIR)$(MANDIR)

Then it looks as must:

# ls -lR
.:
итого 4
drwxr-xr-x 4 root root 4096 май 17 22:53 usr

./usr:
итого 8
drwxr-xr-x 2 root root 4096 май 17 22:53 bin
drwxr-xr-x 4 root root 4096 май 17 22:53 share

./usr/bin:
итого 64
-rwxr-xr-x 1 root root 31480 май 17 22:53 zita-a2j
-rwxr-xr-x 1 root root 31480 май 17 22:53 zita-j2a

./usr/share:
итого 8
drwxr-xr-x 3 root root 4096 май 17 22:53 doc
drwxr-xr-x 3 root root 4096 май 17 22:53 man

./usr/share/doc:
итого 4
drwxr-xr-x 2 root root 4096 май 17 22:53 zita-ajbridge-0.7.0

./usr/share/doc/zita-ajbridge-0.7.0:
итого 8
-rw-r--r-- 1 root root   39 май 17 22:53 AUTHORS
-rw-r--r-- 1 root root 2185 май 17 22:53 README.bz2

./usr/share/man:
итого 4
drwxr-xr-x 2 root root 4096 май 17 22:53 man1

./usr/share/man/man1:
итого 12
-rw-r--r-- 1 root root   25 май 17 22:53 zita-a2j.1
-rw-r--r-- 1 root root 2018 май 17 22:53 zita-ajbridge.1.bz2
-rw-r--r-- 1 root root   26 май 17 22:53 zita-j2a.1
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Do professionals use Pulse Audio? ; xfce4-mixer

2018-04-25 Thread Nikita Zlobin
In Wed, 25 Apr 2018 11:38:47 -0700 (PDT)
Len Ovens  wrote:

> On Wed, 25 Apr 2018, Philip Rhoades wrote:
> 
> > I am not a professional LA user but I have regard for what serious
> > LA users have to say.  A post turned up on the Fedora XFCE list
> > about removing xfce4-mixer for F29 - I responded with:
> >
> > "Every time I upgrade I immediately UNinstall PA and use ALSA only
> > - so I still depend on xfce4-mixer . ."
> >
> > Someone replied that PA has greatly improved since the early days 
> > especially and "controlling streams separately is an added feature"
> > - but I can do that with the .asoundrc I have now - are there any
> > good reasons for me to reconsider the situation the next time I do
> > a fresh install?  (I realise I am likely to get biased comments
> > here but I am not going to post on a PA list . .).  
> 
> Having some kind of ALSA mixer is still required. Pulse controls
> levels as a mix of sound card and digital gain stage levels. You have
> no way of knowing what it is really doing. This is great for desktop
> use, absolutely useless for any kind of profesional use. Note that
> input levels are worse as pulse uses a mix of input level, input/mic
> boost (even on aux inputs) and digital gain stage.
> 
> An interesting experiment is to run alsamixer and watch the audio
> card control levels while adjusting pulse's one level control full
> range. Input levels on the internal audio card will see the input
> level go up then bounce to 0 as the boost is set up a notch then the
> level goes up again, then down plus more boost. I have found that
> each boost level has it's own unique noise that I can work around
> with alsamixer that pulse tramples all over.
> 
> Pulse offers no guaranty of any particular audio card being used for
> sync or of any source not having SRC applied.
> 
> Pulse offers no guaranty of no drop outs or stable latency.
> 
> Pulse offers no guaranty that some other application (skype is 
> particularely bad) will not change your audio card levels for you.
> 
> pulse makes a good audio front end for desktop applications so long
> as Jackd is it's _only_ output. The Pulse-jackd bridge appears to be
> set up as a client (using jack terms) rather than a device or back
> end. This means that even when another device connected to pulse is
> not being used for output, pulse continues to rely on it for sync :P
> This means that jack free wheel will not work correctly if pulse has
> a connection to any audio HW.

For complemention, PA may be configured to run with jack sink/source,
without alsa, udev, may be bluetooth - only necessary minimum. Not sure
about PA resampler... Some examples could be found around in web
(places like userquestions, stackexchange, etc).

One question from me - is this enough to fix pulse->jack sync,
including mentioned freewheel issue?

> 
> I personally use jackdbus as my audio server, started at session
> start. I use pulse as a desktop front end with the pulse-jack bridge,
> but with the udev and alsa modules removed so that jackd is it's only
> audio in/output. This means pulse does not ever control audio device
> levels, and free wheel works correctly.
> 
> Jack (or alsa direct) is the only way to do profesional audio is you
> want bit perfect throughput. Pulse offers no such thing. I agree
> pulseaudio has improved a whole lot, but it is no replacement for
> jack or alsa direct. Alsa direct is great except if you want to be
> able to mix two audio sources without stopping your proaudio
> application.
> 
> I have no comments on xfce4-mixer. I don't use it because I have an 
> ice1712 based card that has it's own much better control utility 
> (mudita24) and I find qasmixer (and it's extra tools) easier to use.
> I also still use alsamix in a terminal because it is faster to access
> in many cases :)
> 
> So I am not of the "pulse must be removed" community, but I still
> feel that pulse is a long way from usable in any kind of profesional
> audio (or even semiprofesional) environment. I would even go so far
> as to say it never will be because it's original design goal was as
> an easy to use desktop application/server. The possibility to do
> pro-audio would require starting over not patching.
> 
> 
> --
> Len Ovens
> www.ovenwerks.net
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-dev
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] rosegarden doesn't use system qt5 font

2018-03-11 Thread Nikita Zlobin
Problem appears only when gtk2 style is set. For kvantum it is ok.

In Sun, 11 Mar 2018 20:21:10 +
Rui Nuno Capela  wrote:

> On 03/11/2018 07:04 PM, Nikita Zlobin wrote:
> > About qtractor, if Rui Nuno Capella reads, there are few places,
> > where, where sans is forced:
> > - clock on toolbar,
> > - files list and track list use sans italic.
> > I don't know, is it sideback of setting to italic, but track list
> > ruler uses regular sans. But still, BPM display, near of clock,
> > followes system font.  
> 
> i'm here and to me all seems be point to qt5ct and not to
> qtractor--none of qtractor widgets are forced into any font style in
> particular, besides the one you can configure explicitly eg. View >
> Options... > Display > Messages.
> 
> i really don't have a clue why it's using italics anywhere in
> qtractor: whatever does, it is not in the upstream code.
> 
> byee
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] rosegarden doesn't use system qt5 font

2018-03-11 Thread Nikita Zlobin
Ok, thanks. Will look better.

In Sun, 11 Mar 2018 20:21:10 +
Rui Nuno Capela  wrote:

> On 03/11/2018 07:04 PM, Nikita Zlobin wrote:
> > About qtractor, if Rui Nuno Capella reads, there are few places,
> > where, where sans is forced:
> > - clock on toolbar,
> > - files list and track list use sans italic.
> > I don't know, is it sideback of setting to italic, but track list
> > ruler uses regular sans. But still, BPM display, near of clock,
> > followes system font.  
> 
> i'm here and to me all seems be point to qt5ct and not to
> qtractor--none of qtractor widgets are forced into any font style in
> particular, besides the one you can configure explicitly eg. View >
> Options... > Display > Messages.
> 
> i really don't have a clue why it's using italics anywhere in
> qtractor: whatever does, it is not in the upstream code.
> 
> byee
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] rosegarden doesn't use system qt5 font

2018-03-11 Thread Nikita Zlobin
Unexpected solution. Reason was gtk2 theme, selected in qt5ct. I could
not change font for gtk2 for long time, and it was Droid Sans - just
because some other systme gtkrc was loaded, where font was defined in
another class, which doesn't match with xfce settings.

After i wrote it in ~/.gtkrc-2.0, font applied to gtk2, and as result -
rosegarden was affected. By some reason, rosegarden doesn't use
qt5ct-selected font, if gtk2 style selected, but ises one from gtk2 :)
Other qt5 stuff is not affected.

After i change style to other (kvantum, cleanlooks), font from qt5ct is
used. I can see it, because qt5ct uses CMU Serif Upright Italic, while
gtk2 - concrete (by some reason it showes previous font as italic,
though it is such only by name).

In Sun, 11 Mar 2018 20:45:21 +0100
Ralf Mardorf  wrote:

> On Mon, 12 Mar 2018 00:04:31 +0500, Nikita Zlobin wrote:
> >For qt5 config i use qt5ct.  
> 
> Oops ;), I missed that :D. Yes, it's a PITA :).
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-dev
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] rosegarden doesn't use system qt5 font

2018-03-11 Thread Nikita Zlobin
It seems, that rosegarden forces gui font to be Sans. On my system
default sans seems to be droid. In qt5, with russian locale, russian
bold letters are drawen by some kind of Courier New. Regular font is
still Sans, and this bug seems to affect all qt5 stuff - i noticed it
first time in Converseen.
After i changed to Deja Vu, and yet later began to search for more
interesting fonts (up to tomorrow i had Exo), problem disappeared. For
qt5 config i use qt5ct.

Today i assidentally discovered font pair, which imho looks awesome
with programs like MuseScore and Rosegarden. I don't know, is it
intended to force some specific font... so i want to propose as variant
to use any Serif font. Last time i tried CMU fonts:
http://cm-unicode.sourceforge.net/

CMU has very interesting (imho) serif variants (though simple sans
style also presents). Especially i want to note:
- Contrete - as easy to read as any Serif, but more interesting, than
  its own CMU Serif - i.e., it looks much sharper.
- Pair of two fonts:
- - CMU Serif Upright Italic: regular ornamental font
- - CMU Classical Serif: former's italic kind (both have bold kinds)

And i would note, there is some mess in names. Thus, upright italic is
not really italic (just looks ornamental), while simple classical looks
like "CMU Serif Upright Italic" Italic :). Would be better for them, of
course to be in one "CMU Classical" font, providing as usually - 4
kinds.

This of course, is for aesthetes :)
Screenshot with musescore, with CMU Classical font:
https://musescore.org/sites/musescore.org/files/2018-03/musescore_2018-03-11_14-33-06.png

I guess (it is still my imho+taste), all these Serif/Concrete/Classical
fonts would look much better in rosegarden. Can't tell about other (even
musical) software, but for now i made "CMU Serif Upright Italic"
default font - in qt5ct, desktop appearance settings (xfce), and now
trying to get for qt4. It exactly works with qjackctl and musescore.

About qtractor, if Rui Nuno Capella reads, there are few places,
where, where sans is forced:
- clock on toolbar,
- files list and track list use sans italic.
I don't know, is it sideback of setting to italic, but track list ruler
uses regular sans. But still, BPM display, near of clock,
followes system font.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] spectmorph-0.3.3

2017-07-02 Thread Nikita Zlobin
In Tue, 20 Jun 2017 16:32:28 +0200
Stefan Westerfeld  wrote:

In addition to previous message:
options --without-lv2 and --with-lv2=no are useless, at the end of
configuration it still reports, that lv2 support is enabled. Might be
same for --without-beast, just don't have necessary version built yet.
(in portage latest is some 0.7.x)

> spectmorph-0.3.3 has been released.
> 
> Overview of Changes in spectmorph-0.3.3:
> 
> * Added portamento:
>   - VST: support MPE to perform per-voice pitch bend (can be used in
> Bitwig)
>   - new portamento mono mode (all hosts)
> * Added vibrato.
> * Internal improvements:
>   - better property abstraction for (non-linear) UI properties
>   - updated polyphase interpolator (used for vibrato|portamento)
>   - fixed a few problems when developing against spectmorph(ui) libs
>   - don't link against Qt UI library when only QtCore is necessary
> * Compile fixes for g++-6.3
> 
> What is SpectMorph?
> ---
> SpectMorph is a free software project which allows to analyze samples
> of musical instruments, and to combine them (morphing). It can be
> used to construct hybrid sounds, for instance a sound between a
> trumpet and a flute; or smooth transitions, for instance a sound that
> starts as a trumpet and then gradually changes to a flute.
> 
> SpectMorph ships with many ready-to-use instruments which can be
> combined using morphing.
> 
> SpectMorph is implemented in C++ and licensed under the GNU LGPL
> version 3
> 
> Integrating SpectMorph into your Work
> -
> In order to make music that contains SpectMorph, you currently need
> to use Linux. There are four ways of integrating SpectMorph sounds
> into music you create:
> 
> - LV2 Plugin, for any sequencer that supports it.
> - VST Plugin, especially for proprietary solutions that don't support
> LV2.
> - JACK Client.
> - BEAST Module, integrating into BEASTs modular environment.
> 
> Note that at this point, we may still change the way sound synthesis
> works, so newer versions of SpectMorph may sound (slightly) different
> than the current version.
> 
> Links:
> --
> Website:  http://www.spectmorph.org
> Download: http://www.spectmorph.org/downloads/spectmorph-0.3.3.tar.bz2
> 
> There are many audio demos on the website, which demonstrate morphing
> between instruments.

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


Re: [LAD] spectmorph-0.3.3

2017-07-02 Thread Nikita Zlobin
In Tue, 20 Jun 2017 16:32:28 +0200
Stefan Westerfeld  wrote:

Tried to build (using gentoo). No matter, in ebuild or doing manually
autoreconf, configure, make... it gives these errors:

http://codepad.org/tIdMYE9Z

before to build i checked history in gitweb, but found nothing related
since version bump

> spectmorph-0.3.3 has been released.
> 
> Overview of Changes in spectmorph-0.3.3:
> 
> * Added portamento:
>   - VST: support MPE to perform per-voice pitch bend (can be used in
> Bitwig)
>   - new portamento mono mode (all hosts)
> * Added vibrato.
> * Internal improvements:
>   - better property abstraction for (non-linear) UI properties
>   - updated polyphase interpolator (used for vibrato|portamento)
>   - fixed a few problems when developing against spectmorph(ui) libs
>   - don't link against Qt UI library when only QtCore is necessary
> * Compile fixes for g++-6.3
> 
> What is SpectMorph?
> ---
> SpectMorph is a free software project which allows to analyze samples
> of musical instruments, and to combine them (morphing). It can be
> used to construct hybrid sounds, for instance a sound between a
> trumpet and a flute; or smooth transitions, for instance a sound that
> starts as a trumpet and then gradually changes to a flute.
> 
> SpectMorph ships with many ready-to-use instruments which can be
> combined using morphing.
> 
> SpectMorph is implemented in C++ and licensed under the GNU LGPL
> version 3
> 
> Integrating SpectMorph into your Work
> -
> In order to make music that contains SpectMorph, you currently need
> to use Linux. There are four ways of integrating SpectMorph sounds
> into music you create:
> 
> - LV2 Plugin, for any sequencer that supports it.
> - VST Plugin, especially for proprietary solutions that don't support
> LV2.
> - JACK Client.
> - BEAST Module, integrating into BEASTs modular environment.
> 
> Note that at this point, we may still change the way sound synthesis
> works, so newer versions of SpectMorph may sound (slightly) different
> than the current version.
> 
> Links:
> --
> Website:  http://www.spectmorph.org
> Download: http://www.spectmorph.org/downloads/spectmorph-0.3.3.tar.bz2
> 
> There are many audio demos on the website, which demonstrate morphing
> between instruments.

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


[LAD] Does some proaudo stuff uses raw linux devices?

2017-06-12 Thread Nikita Zlobin
Hello all.

While configuring kernel, i stucked on option CONFIG_RAW_DRIVER, which
enables /dev/raw device section.

I suppose, things like linuxsampler or others, hardly working with
storage, might utilize this access way for most direct access to
samples. Or even in audio recording (only nearly imaginations).
Is it so really?

While searching in internet to learn about its real status, i got 2
facts:
- When raw device is mapped to some hda/sda dev, allowing to use it
  even bypassing disk's internal cache.
https://unix.stackexchange.com/questions/238798/what-happened-to-dev-raw
- Yet i found proposal to remove raw devices support, argumented as
  these devices have no notable use.
http://lkml.iu.edu/hypermail/linux/kernel/0505.2/1387.html
(but that discussion is sooo old...)
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] io GNU/Linux 2017.02 out :)

2017-03-06 Thread Nikita Zlobin
В Mon, 06 Mar 2017 15:24:56 +0100
io GNU/Linux  пишет:

> Hi all,
> 
> New images are ready for testing (amd64, i386)  ;)
> 
> io GNU/Linux is a Live DVD/USB based on Debian Sid and focused on
> multimedia.
> 
> -> Kernel 4.9.13 and 4.9.13-rt, Jack2+PulseAudio as default sound
> server (can be easily changed to Jack2+AlsaLoop, Jack2+ZitaBridge,
> PulseAudio or Alsa) -> Enlightenment (e21) as desktop environment and
> a big collection of installed software... Full persistence for USB
> install (with encryption) and more stuff...
> 
> For more infos: manual, packages list, screenshots, video etc...
> Visit:
> 
> -> http://io.gnu.linux.free.fr
> -> https://sourceforge.net/projects/io-gnu-linux/  
> 
> 
> Feedbacks welcome, enjoy  :)
> 
> MK
> 
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev

Hello. Broken links to hashes and packages list, on download page. Such
as this (error 404):
http://io.gnu.linux.free.fr/2017.01/io-live--2017.02--e21-k4.9.13-rt-amd64.sha256sum.html
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] can't build libffado 2.2.1 under gentoo

2016-04-13 Thread Nikita Zlobin
Hello, i'm trying to build libffado from proaudio overlay. The problem
seems to be in ffado itself.

Somewhat long time ago (about year) i could install it, but now i have
following problems on compilation:
- First, it seems, that it now uses more modern language features: the
  specified option --std=c99, added by one of ebuild's patch, as well
  as without any options (tried to build tarball with) gives long error
  list.
- With compiler flag --std=c++11 compilation continued for relatively
  long time, but then failed with following
  errors: http://pastebin.com/hkttBN9X

there seems to be one common feature: definition with "quadlet_t"
argument fails to overload same def with "byte_t" arg.

I looked to src/libutil/cmd_serialize.h, and there are four (with
original) variants for each functions... i don't understand, why only
quadlet_t - typed variant fails, while others proceed. What i found yet
is that this type is defined in raw1394 headers:

$ grep -r 'quadlet_t;' /usr/include
/usr/include/libraw1394/raw1394.h:typedef u_int32_t quadlet_t;

And what is interesting, when i tried to build from tarball manually:
$ scons -DCOMPILE_FLAGS='--std=c++11'
... that flag was not even passed to g++, so thanks for gentoo S).

-
$ gcc --version
gcc (Gentoo 4.9.3 p1.5, pie-0.6.4) 4.9.3
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] About global way for special application theming, or disvalue of hardcoded theming (was: About lobal way for application theming, or disvalue of hardcoded theming)

2013-05-17 Thread Nikita Zlobin
> No, today some of us, including myself, learned that we can use those
> apps with the desktop default themes :). Paul and Hermann explained what
> to do, at least Hermann does explain exactly what to do

I don't know, where and how it is described, how to do...
I defeated both ardours just by replacing .rc file for dark theme with symlink 
do ~/.gtkrc-2.0 (writing of path to custom rc file directly to 
ardour2_ui_default.conf is useless — it just used light theme as by default)

Ardour 2: http://wstaw.org/m/2013/05/17/plasma-desktopq20308.png
Ardour 3: http://wstaw.org/m/2013/05/17/plasma-desktopS20308.png

But i can't defeat guitarix. Creating of new skin rc file with only one 
"include" line is not enough, skin images are still used. Sadly i can't use it 
with qtcurve for now, since it crashes with X Window System error:
(guitarix:30294): Gdk-WARNING **: 
/build/buildd/gtk+2.0-2.24.10/gdk/x11/gdkdrawable-x11.c:942 drawable is not a 
native X11 window

To fix problem i just pointed include line in my new skin to one of ardour2 
themes S), then started guitarix with GTK2_RC_FILES="path to ardour theme rc" 
and applied new skin.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] About global way for special application theming, or disvalue of hardcoded theming (was: About lobal way for application theming, or disvalue of hardcoded theming)

2013-05-17 Thread Nikita Zlobin
Sorry, misprinting
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] About lobal way for application theming, or disvalue of hardcoded theming

2013-05-17 Thread Nikita Zlobin
Hello. After initial theme, "send midi message" faded through user-friendlity 
into UI issues, i recalled about one old good thing, which seems to be 
forgotten, mostly related to gtk2 pro apps theming (i don't even hope to get 
it for fltk, since utf8 support in 1.3 is already great achievement, that may 
be get for fltk1 apps now).

Some cool apps like ardour, guitarix, hybridreverb and probably, several more, 
force to use some specific theme without the ability to change it in user-
friendly way. I already got answer from ardour maintainer, where my noticement 
was treated as wishment to use global desktop application everywhere, and that 
desktop themes are inadequate for pro-audio apps.

Honestly, i would like to have different look in some cases. One well known 
case is root applications, colored to red or just more agressive/attenting 
colors than users.

On screenshot: http://wstaw.org/m/2013/05/17/plasma-desktopJ20308.png
i placed seq24 with ardour3 dark theme and gjacktransport with my default 
theme — hardcurve, which i have set globally.

I made it to demonstrate, that special application or sub-session wide look 
should not be hardcoded (otherwise we could end up like gnome3/gtk3, which as 
i heard, don't like when users customize it and break as on each new release 
of gtk3). For case of cross-platform apps, which should not look ugly on 
foreign systems, at least option to toggle between internal and system-wide 
look should always appear.

I have to implement a tool, which should allow to run application, as well as 
subsessions, with different look, while keeping user-friendly way to change 
it.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] UIs theming problem (was Re: UIs)

2013-05-17 Thread Nikita Zlobin
The biggest problem is the quality. With pixmap-based themes it may be 
achieved only when special pixmap areas are specified for borders, which are 
not scaled in certain dimentions. The only gui, which is known to support 
this, is kde plasma. As for gtk — it may require newer engine (if old good 
pixmap or pixbuf engine doesn't allow that).

In previous month i spent time, creating theme for qtcurve — "Hardcurve". 
Though published on kde-look (which is subportal of www.opendesktop.org), it 
is good for gtk as well, since qtcurve is cross-toolkit.

Very sad, that ardour doesn't allow at least to customize, wether to use or 
not included theme (like rosegarden does).

> Hi Julien :)
> 
> I'm uncertain, if I should reply off-list :S.
> There already is an issue regarding to qt apps vs gtk apps and regarding
> to different versions of gtk and qt.
> 
> When we use desktop environments global settings can fail, e.g. some
> apps might show black fonts on a black background. To avoid such issues,
> some applications, e.g. Ardour, provide themes that make sense. The
> Ardour themes aren't what I call "fancy" in a negative way, they are
> very good, "fancy" for my taste, but I guess the meaning of "fancy" is
> something else.
> 
> A bad example for what I call negative "fancy" is the GUI of e.g.
> Guitarix. The GUI is more or less photo-realistic, with shadows and
> reflections. I'm not visually impaired, resp. I won't call wearing
> reading glasses an issue, but the contrast and color of my monitor
> settings, that fit to my needs regarding to graphical art production or
> even for my audio workflow, make a GUI such as the Guitarix one hard to
> use. Guitarix does provide several GUIs too, but all of them come with,
> let's call it special FX.
> 
> For my global settings, for the desktop environment, I disabled all
> special FX, no animations, no shadows etc., but some GUIs ignore that
> and come with all this crap, e.g. Guitarix. Ardour for example doesn't
> add such special FX.
> 
> I want my Linux to be a serious production environment, it shouldn't
> become a higgledy-piggledy circus dekoration.
> 
> When I was young and leaned to use the airbrush, I just for learning
> purpose does all those shadow and reflection FX, but I never used it
> that way, when I made art. A good artist anyway use the airbrush as an
> additional tool, not to make a complete painting with it. Complete
> paintings made with airbrush only can be found on funfairs and that's
> what all those iPad and some Windows things does look like.
> 
> I hope this fashion will not become common for Linux too.
> 
> 2 Cents,
> Ralf
> 
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] XOSC - osc patchbay

2013-05-14 Thread Nikita Zlobin
> Hiho,
> 
> here's a first preview of XOSC, an OSC patchbay (partly coded during
> the LAC ;) ).
> 
> What it does:
> 
> Connect different OSC capable programs, considering the situation where
> you have two programs talking via OSC, but then want to have a third or
> fourth application to also use OSC from those same applications without
> having to rewrite code.
> 
> Solution:
> Just change the OSC messages' target host/port to XOSC's port, and
> XOSC will allow you to patch OSC between applications.
> 
> - XOSC does not require any changes to original software to use it
> - XOSC has an OSC interface to create connections.
> 
> Find it at:
> https://github.com/sensestage/xosc
> 
> 
> Basic functionality works as far as I have tested (with the included
> supercollider script).
> 
> The program runs as a command line application and has an OSC
> interface. By registering to it as a watcher another program will
> receive any updates to connection changes, e.g. to display this in a
> GUI.
> 
> I'd be happy if someone feels like implementing such a GUI. (I imagine
> some of the classes can be reused for this purpose, and there is a
> libxosc to link to)... think of an extra tab in QJackCtl (Rui will
> be happy with a patch ;) ), Patchage, or others...
> 
> * Caveats:
> Currently clients and hosts are kept in memory based on their port
> number, so possibly there are conflicts when mapping between different
> hosts. Similarly multiple programs sending the same tags might provide
> problems.
> 
> 
> Happy about feedback, suggestions, bug reports (use the issue tracker),
> and patches :)
> 
> sincerely,
> Marije Baalman
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev

Awesome! It was so waited yet two or more years ago, but then i completely 
forgot about osc, dealing with it only as way for server-client communication 
for tools like ingen and non-session-manager :) (though first usually was used 
in both-in-one mode).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Yoshimi 1.1.0

2013-05-08 Thread Nikita Zlobin
> On 05/08/2013 11:35 AM, Jeremy Jongepier wrote:
> > Dear all,
> > 
> > There she is, Yoshimi 1.1.0! Looking better than ever, working better
> > than ever, capable of doing more than ever. Simply put, better than
> > ever. Made possible by the much appreciated and very valuable help,
> > contributions and feedback from the Linux Audio community.
> > 
> > http://downloads.sourceforge.net/yoshimi/yoshimi-1.1.0.tar.bz2
> > 
> > For this release I'd like to thank the following people in particular
> > but in no particular order:
> > * Kristian Amlie for making Yoshimi less CPU hungry.
> > * Andrew Deryabin for making Yoshimi a little more CPU hungry again,
> > but for a good reason, Yoshimi now has per part JACK outputs!
> > * Nikita Zlobin for having Yoshimi handle state files better.
> > * Florian Dupeyron for his custom best of My?terious bank.
> > * Will J. Godfrey for his continuous testing and monitoring of new
> > developments.
> > * Alessandro Preziosi for Yoshimi's lovely new knobs.
> > * David Adler for the AZERTY virtual keyboard support.
> > * Rob Couto for the helpful insights and general help.
> > * Alan Calvert.
> 
> Hi Jeremy, I'm a fan of yoshimi, but sadly the build fails (ubuntu 13.04
> - 64 bit desktop):
> 
> Linking CXX executable yoshimi
> /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfltk.a(Fl_Preferences.o):
> undefined reference to symbol 'dlopen@@GLIBC_2.2.5'
> /usr/bin/ld: note: 'dlopen@@GLIBC_2.2.5' is defined in DSO
> /lib/x86_64-linux-gnu/libdl.so.2 so try adding it to the linker command line
> /lib/x86_64-linux-gnu/libdl.so.2: could not read symbols: Invalid operation
> collect2: error: ld returned 1 exit status
> make[2]: *** [yoshimi] Error 1
> make[1]: *** [CMakeFiles/yoshimi.dir/all] Error 2
> make: *** [all] Error 2
> 
> 
> Quick workaround:
> 
> CMakeLists.txt:362
> 
> target_link_libraries (yoshimi ${ExternLibraries} -ldl)
> 
> 
> Regards,
> Flo

One time i already had such problem with another software - which could not 
find a library to link.

You could indeed try to add /lib/x86_64-linux-gnu/libdl.so.2 to LD_FLAGS 
(check before, if this file exists, or find existing, probably watching 
existing executables with ldd).

This is why i don't move to bleeding-edge distro releases when they are just 
announced :) (they recommend to wait several months).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAU] jackmixdesk-0.3-r3

2013-04-17 Thread Nikita Zlobin
Is it all undefined references, that you got?
I got very much undefs for most of dependencies: jack, lash, lo (osc),
xml, also noticed pthread_create.

Full log of last command: http://codepad.org/vEcd2Fby
in this command i tried to specify full path to jack lib, but it
doesn't make any sence.

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


[LAD] test 1/2 (with fixed target e-mail strings)

2013-04-17 Thread Nikita Zlobin

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


[LAD] test 1/2

2013-04-17 Thread Nikita Zlobin
Checking, wether my messages reach lists at all.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Is dynamics interpolation available in linuxsampler?

2013-03-30 Thread Nikita Zlobin
Last time i tried to make a roll with G-Town Church Bassdrum, but it
appears ugly. Did not try to humanize timing, but expecting it much
better with interpolation. May be, it is some hidden feature, which is
not used in most freeware gig and sfz banks?
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Handling of expression controller in fluidsynth and linuxsampler

2013-03-20 Thread Nikita Zlobin
Trying to get live strings and vocal in linuxsampler, i was suprised by
fact, that this controller doesn't have effect (with all engines and
banks, including suggested for fluidsynth), but with fluidsynth all ok.

It is not clear now, how this controller should be handler at all. I
expected, that it should be same as for velocity, but set for enter
channel and variable, unlike V, specified for notes and constant).

I searched both in fluidsynth and qsynth sources to see, for handling
code, but found in fluidsynth only two constants (EXPRESSION_LSB and
EXPRESSION_MSB) and command, setting these parameters to default value
(127).

IMHO, it is very necessary for linuxsampler, and who knows, what is not
done for fluidsynth. Looks like LS devs left it for user (using
qmidiroute, mididings or sequencer's builtint converting capabilities
if available).

This link only confirms that:
http://bb.linuxsampler.org/viewtopic.php?f=6&t=207
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Proposals for JACK

2012-05-23 Thread Nikita Zlobin
В Wed, 23 May 2012 11:25:35 -0400
Paul Davis  wrote:

> On Wed, May 23, 2012 at 5:21 PM, Nikita Zlobin 
> wrote:
> 
> > В Wed, 23 May 2012 09:40:47 -0400
> > Paul Davis  wrote:
> >
> > > What is the use case for "Waiting wheel. ?"
> >
> > Just a way to prevent
> >
> 
> [  ] ?
sorry, jumped to next thing before to complete this. I meand to prevent
sound glitches when sound is still hearable. Btw, such state could be
represented by frontends as some middle between realtime and completely
free wheel.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Proposals for JACK

2012-05-23 Thread Nikita Zlobin
В Wed, 23 May 2012 09:40:47 -0400
Paul Davis  wrote:

> What is the use case for "Waiting wheel. ?"

Just a way to prevent 

> It it true that I skipped over the proposal for dynamic/on-the-fly
> backend switching. This has already been discussed and yes, it would
> be great to add it. Torben did this for his "tschak" implementation.
> Its another example of something that needs to be done, not discussed.
> 
Not just a backend. In my ideas sound card is not a backend, but just a
same client, as ardour, zynaddsubfx, etc. And any of them could serve
as clock source. E.g., if it is needed to load some project just for
mixdown, sequencer could be such source, and so - no cards is needed,
even dummy source.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Proposals for JACK

2012-05-23 Thread Nikita Zlobin
В Tue, 22 May 2012 15:08:32 -0400
Paul Davis  пишет:

> On Tue, May 22, 2012 at 7:35 PM, Nikita Zlobin 
> wrote:
> 
> > Hi all. Just returned from military services (mandatory period).
> > It is likely, that i was somehow unsubscribed from list.
> >
> > In summary, proposed changes are joined in two parts:
> > 1. A few advances for freewheel mode: waiting wheel and per client
> > free/waiting wheel mode.
> > 2. Get support for any count of "rooms", as they are called in
> > LADISH therminology, but IMHO, a bit more flexible.
> >
> 
> I'm sorry but I don't agree with any of these ideas.
> 
> One of the guiding design philosophies behind JACK's design has been
> to avoid trying to create an API that covers every possible use case,
> including all the obscure ones. We have seen several examples of this
> (the most notable being SGI's graphics API) which provide the general
> lesson that adding complexity in order to be able to satisfy the
> least common 10% of use cases invariably causes unnecessary
> complexity for the common 80%.
> 
> If you want a "room" like concept then please work on providing
> per-port metadata (I can post a header that describes a proposed
> API), because I believe that this will provide everything necessary
> to do this without JACK's involvement. This is an important addition
> to the API, and will facilitate many things that are useful and
> moderately common.

What things, you think, may need to create such all-purpose API? As for
rooms - it is just a side effect of what i propose. JACK api doesn't
need to be changed; way to select jack instance by client may be same
as today. I'm not sure even, that you read message up to end -
including proposed structure.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Proposals for JACK

2012-05-22 Thread Nikita Zlobin
Hi all. Just returned from military services (mandatory period).
It is likely, that i was somehow unsubscribed from list.

In summary, proposed changes are joined in two parts:
1. A few advances for freewheel mode: waiting wheel and per client
free/waiting wheel mode.
2. Get support for any count of "rooms", as they are called in LADISH
therminology, but IMHO, a bit more flexible.

Waiting wheel.
Like freewheel, but doesn't speed up system. When performance is
enough, behave like without any mode (produce sound). And only when it
is not enough, automatically free wheel, until performance is enough
again.

Per client time wheel management.
Clients could be joined into groups, where they have own time flow and
may interact as they are not in free/waiting wheel mode (pass
sound/MIDI each to others).

Other proposals, in two words:
- Ability to change master client (for now it is audio card) on the fly.
- Attaching of audio devices as clients with ability to change driver
  and its settings for each (i mean - for all devices; this feature
  should go with previous item).

Now about sctucture.
Some components are plugins, which are like LADSPA / LV2 / Other kinds
of audio plugins, but are optimized for use only on JACK (in short,
they are JACK modules).

JACK components:
* single plugin shell (types: plugin host, jack / alsa app) - just to
  load other plugins as audio applications, connecting them to other
  audio systems, like alsa or other jack instance, like jack app.
* Patchbay (types: plugin host, plugin). Master instance should
  be ran by already called plugin shell. Other instances may be loaded
  as plugins (making more rooms), or as jack applications. Time wheel
  mode changes affect all dependent clients, inluding other patchbays.
* JACK app interface (plugin)
* Adapter for other types of audio plugins (LADSPA, LV2, and
  so on). As you can see, such jack implementation may be jack app
  itself, and so - it is good to use existing work just as plugin host
  (like AMS, Ingen, Jost).

Such jack structure should allow easy implementation of both multiroom
session managers, like LADISH (which is forced for now to implement it
by self) and even allow nested sessions: i'm thinking about universal
modular session manager, which could be used as user session manager,
but also allow nested desktop sessions, and could be expanded by
plugins, adding integration to various systems, like X11 (to manage
windows), jack / alsa (no comments needed) and so on.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Begining of work at flowcanvas replacement

2011-05-16 Thread Nikita Zlobin
btw, my latest screenshot:
http://img101.imageshack.us/img101/9893/gmodulargraphstand4.png

(connection is created with smoother color, than free wire chunks)
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Begining of work at flowcanvas replacement

2011-05-16 Thread Nikita Zlobin
I began to work at modular, patchage-like graph (afaik, flowcanvas i
used not only for such things - project panner in ardour3 looks using
it too). This graph is based on goocanvas, driven by cairo.

Project page: http://repo.or.cz/w/gmodulargraph.git
(of course, it is just a git web interface :)

For now i implemented modules with ports and wires. Began to implement
connections. There is no library yet, it is implemented in standalone
test execuable.

Though project is called GModularGraph, some files need to be renamed
(i changed name, because it depends on project, which is not a gtk
part).

Unfortunally i will go to military service after several hours (need to
sleep yet :), so it would be nice, if someone clone it and help with
development (also there is ability to push anonimously into 'mob'
branch, thanks to repo.or.cz for this feature).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev