[LAD] Re: retuning examples

2024-07-02 Thread Florian Paul Schmidt

On 7/1/2024 10:04 PM, Thomas Brand wrote:

On 2024-07-01 15:44, Fons Adriaensen wrote:

Comments welcome, and of course I still need some more
vocal tracks to test...

Ciao,


WOW the pitch shifting sounds very crisp! This is very promising.


+1 Very promising indeed!

Kind regards,
FPS

--
https://blog.dfdx.eu
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] [ANN]: ASCIIChanges

2024-02-23 Thread Florian Paul Schmidt



Hi,

this might be interesting for someone besides me:

https://github.com/fps/asciichanges

It's a PEG for representing chord changes in ASCII.

Here's a small website that plays some notes generated from an entered tune:

https://fps.github.io/asciichanges/

Kind regards,
FPS

--
https://dfdx.eu
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] Re: EQ Matching

2023-06-06 Thread Florian Paul Schmidt

Hi Fons,

thanks for your comments! Sorry for replying so late ;)

On 5/21/2023 11:24 AM, Fons Adriaensen wrote:

On Sat, May 20, 2023 at 05:15:03PM +0200, Florian Paul Schmidt wrote:


1. Are there any glaring oversights with this approach?


The minimum phase step is not really necessary, you could just use the
linear phase version, the output of the IFFT rotated by half its size.


Yeah, I want to use this in a real-time context though, so the initial
delay in the linear-phase version is non-acceptable.


If you do the minphase operation, the best way to do this using an FFT
that is at least 4 times as long as your IR. In other words, take the
linear phase version in the time domain, add zeros, then do the
minphase calculation.


Yeah, I will try and incorporate that!


This probably should not depend on the absolute values, just on the
ratio, i.e. the calculated gain. If r = s2 / s1 you could impose a
smooth maximum:

g = r / sqrt (1 + M * r * r)with M in the range 1e-3 to 1e-2

Or you could even reduce the gain if r is really very high (which
probably means there is nothing of value in s1 at that frequency:

g = r / (1 + M * r * r * r) with M in range 1e-5 to 1e-4

Try this in gnuplot:

plot [0:100] x / sqrt (1 + 1e-2 * x * x), x / sqrt (1 + 1e-3 * x * x)
plot [0:100] x / (1 + 1e-4 * x * x * x), x / (1 + 1e-5 * x * x * x)

to get an idea of what these will do.


Looks good!


Average levels in the two input files should be more or less
matched, before applying any of these.


Couldn't I just compute the sum of the squares of the fft bins to get
the total energy in both s1 and s2 and normalize both to e.g. 1?

Kind regards,
FPS

--
https://dfdx.eu
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] EQ Matching

2023-05-20 Thread Florian Paul Schmidt

Hi LAD,

I'm working on a (very simple) EQ-matching plugin and wanted to check my
understanding/approach and I also have a question. Here's what I do:

1. Analyze spectrum 1 using 50% overlapping blocks each windowed with a
Hann window followed by an FFT and then using the absolute value to get
the magnitude response of each block. Then finally I calculate the
average of all those magnitude responses.

2. Analyze spectrum 2 using the same approach as for spectrum 1

3. Calculate the bin-wise ratio of spectrum 2 / spectrum 1

4. Calculate a linear phase filter response by using the IFFT of the
aforementioned magnitude response ratio and then doing the ifftshift dance

5. Calculate a minimum phase filter response from the magnitude response
ratio by
taking the complex log followed by an IFFT, then folding the negative
time components onto the positive ones, followed by an FFT, complex
eponentiation and a final IFFT. In code:

f = IFFT(exp(FFT(fold(IFFT(log(s))

where s is the magnitude response ratio.

The code implementing this is found here:
https://github.com/fps/fps-plugins.lv2/blob/master/eq_match.h

The plugin using it is not done yet.

So here are my questions:

1. Are there any glaring oversights with this approach?

2. What is a sensible approach to regularize this approach. If spectrum
1 has any components near zero magnitude then the division is ill
suited. It works fine for my experiments with distorted guitars, but I
wonder whether I should e.g. just clamp the values of spectrum 1 to
something like -70 dB?

3. If the user wants to smooth the spectrum before calculating the
responses what would be sensible approaches? I thought about smoothing s
with a filter that has a varying bandwidth when expressed in FFT bins or
Hz, but constant, when expressed in e.g. octaves or decades. I'm not
sure how to do that though. Any thoughts?

To finish this email, here is one example (you can play them e.g. by
using mplayer on the console):

1. A guitar recording played through some distortion:
https://github.com/fps/fps-plugins.lv2/blob/master/input.wav?raw=true

2. The same guitar recording played through some distortion and then a
cabinet IR:
https://github.com/fps/fps-plugins.lv2/blob/master/output.wav?raw=true

3. The same guitar played through the recovered filter after matching 1
to 2:
https://github.com/fps/fps-plugins.lv2/blob/master/matched.wav?raw=true


Kind regards,
FPS
--
https://fps.io
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] Re: stereospread.lv2 - Stereo spreading plugin (conjugate random phase all-pass filter pair)

2023-05-16 Thread Florian Paul Schmidt

Hi Fons!

On 11/16/2022 2:14 PM, Fons Adriaensen wrote:

On Wed, Nov 16, 2022 at 12:51:44PM +0100, Florian Paul Schmidt wrote:

2. If you measure this, you will also note amplitude differences between
L and R outputs. This is to be expected. Even if the two filters have
exact unity gain (and just a phase shift) at each frequency corresponding
to an FFT bin, the resulting filter will not be all-pass.


Thanks for this comment. It took me a while to grok what you meant. It's
not all-pass because we're in the DFT-World where the FFT-bins are just
_samples_ of the real spectrum. So between these samples non-unity gain
shows up. One way of measuring this would be to use a much longer FFT to
increase the frequency resolution, right?

Kind regards,
FPS


--
https://dfdx.eu
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] Re: Admissable clock inaccuracy for MIDI

2023-02-22 Thread Florian Paul Schmidt

Hi Jeanette,

On 2/21/2023 12:36 AM, Jeanette C. wrote:

[...]


With the standard chrono and thread library my ticks are usually out by
anything between 150.000 to 290.000 nanoseconds. Using boost a tick is
out anything between 110.000 to 124.000 nanoseconds. Yes, much better.
But, assuming that I correct the drift, does it make a difference for
MIDI instruments?

I know one of my MIDI instruments with a clock sync'able delay can be
rather touchy with MIDI clocks, but are there good estimated guidelines
experience values how precise ticks should be?


the kind of precision required for timers depends very much on what
precisely you are trying to do. Are you trying to implement MIDI Time
Code (MTC) or MIDI Clock (MC)? Are you trying to implement changing the
timing of incoming MIDI events? Or something else completely?

Kind regards,
FPS

--
https://dfdx.eu
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


Re: [LAD] stereospread.lv2 - Stereo spreading plugin (conjugate random phase all-pass filter pair)

2022-11-18 Thread Florian Paul Schmidt

Hi Fons,

On 11/16/2022 2:14 PM, Fons Adriaensen wrote:

On Wed, Nov 16, 2022 at 12:51:44PM +0100, Florian Paul Schmidt wrote:



1. If I understand this correctly the L and R outputs have opposite phase
shifts. That means they will not sum to the input. Just assume the L
shift is 90 degrees. then R is -90, and they will just cancel.


If I limit the phases to the interval (-pi, pi) then for each fft bin
(with phases theta and -theta respectively for the L and R channels),
then summing the filtered L and R signals results in a gain of
2*cos(theta) in that respective frequency bin - the extremum being the
mentioned cancellation, i.e. gain 0, when the phases are -pi/2 and pi/2
respectively.

This gain can be cancelled by scaling the magnitude of the fft bin by
1/(2*cos(theta)). This then ensures summing to the original signal.

The price for this is that in the "spread" channels the amplitude is not
1 for all fft bins, i.e. there is (additional) amplitude ripple. This
ripple is larger for bigger relative phase shifts (and approaching
infinity for pi, i.e. -pi/2 in one channel and pi/2 in the other). I
found in listening tests that limiting the relative phase shift to pi/2
gives acceptable results, even if the ripple approaches 40%.

It is a subtle effect nonetheless, but it really comes to life when
splitting a guitar signal to stereo this way and then heavily distorting
both channels individually. This destroys the sum-to-original property
but the sum seems still pleasantly devoid of the typical haas-filtering
phase effects.

Kind regards,
FPS

P.S.: I updated the code in the repository with these changes if someone
wants to test it out..


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


[LAD] relative_dynamics.lv2

2022-11-17 Thread Florian Paul Schmidt


Hi,

this is another "weird" plugin which I finally found the time to
implement. It's a dynamics processor that doesn't care about absolute
thresholds. It just computes two envelopes, env1 and env2, filtered with
exponential smoothing filters with different time constants t1 and t2
(usually t1 < t2). Their ratio r is computed and the audio signal is
then multiplied by 1/r.

https://github.com/fps/relative_dynamics.lv2

Some additional controls (clamping of the resulting factor and optional
delaying of the original audio relative to the envelopes) are provided
for fun and profit..

Kind regards,
FPS

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


[LAD] stereospread.lv2 - Stereo spreading plugin (conjugate random phase all-pass filter pair)

2022-11-16 Thread Florian Paul Schmidt


Hi,

I wrote a small plugin for spreading mono content to stereo and I would
like to receive some feedback on it from people more knowledgable in DSP
matters than me.

It has one nice property: It spreads the signal over the spectrum by way
of a conjugate pair of random phase all-pass filters, and since it's a
conjugate pair it sums back to unity when down-mixing to mono. So, no
ugly comb filter effects like when downmixing a Haas-expanded signal.

https://github.com/fps/stereospread.lv2

The page has an example sound..

How it works:

It's actually rather simple:

1. create a vector of random phases (matlab notation):

filter_length = 1000;
spread = pi;

hfft1 = exp(-1i*(spread*rand(filter_length,1) - spread/2));

And for the second filter just take the complex conjugate:

hfft2 = conj(hfft1);

This ensures that what is a phase theta in the first filter becomes a
phase of -theta in the second filter, and summed that just gives a phase
of 0.

2. Then assemble the coefficients such that it corresponds to a fft of a
real signal and do the inverse fft (possibly I have a small error here
which i needed to fix with the 'symmetric' flag in matlab):

f1 = ifft([1; hfft1; conj(hfft1((end-1):-1:1))], 'symmetric');
f2 = ifft([1; hfft2; conj(hfft2((end-1):-1:1))], 'symmetric');

3. The two IRs f1 and f2 implement the pair of filters and can be
applied via convolution (which the above plugin does).

It seems to be possible with little ill effect to reduce the length of
the filter down to a size of 50 samples or so by just cutting it off
before the convolution.

What do you think?

Kind regards,
FPS

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


Re: [LAD] A short technote on digital state-variable filters

2021-01-14 Thread Florian Paul Schmidt

FYI - Naive LV2 implementation:

https://github.com/fps/state-variable-filter.lv2

Regards,
FPS

P.S.: PRs welcome ;)

On 1/13/2021 12:16 PM, Florian Paul Schmidt wrote:

Hi Fons,

I have a question (sanity checking my understanding) regarding the
implementation: You note in your introduction that the SV-Filter
provides lowpass, highpass and bandpass outputs. If I wanted to provide
all three to the user then this could be done with the following C-Code,
right (adapted from your individual examples)?

d0_high = 1 - c1 / 2 + c1 * c2 / 4;

d1_band = 1 - c2;
d0_band = d1 * c1 / 2;

d0_low = c1 * c2 / 4;
d1_low = c2;

for (i = 0; i < n; ++i)
{
 x = inp[i] - z1 - z2;
 out_high = d0_high * x;
 out_band = d0_band * x + d1_band * z1;
 z2 = c2 * z1;
 out_low = d0_low * x + z2;
 z1 = c1 * x;
}

Regards,
FPS

Oh, looking at it again, and if I'm not completely confused, this should
also be equivalent:

for (i = 0; i < n; ++i)
{
 x = inp[i] - z1 - z2;
 z2 = c2 * z1;
 out_high = d0_high * x;
 out_band = d0_band * x + d1_band * z1;
 out_low = d0_low * x + z2;
 z1 = c1 * x;
}


On 11/19/2020 10:05 PM, Fons Adriaensen wrote:

Hello all,

Some people have asked me to provide a bit more documentation
on the state-variable filters I used in zita-eq1 and zita-jacktools.

So I've written a short technical note on this. You can find it at

<http://kokkinizita.linuxaudio.org/papers/digsvfilt.pdf>

Ciao,



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


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


Re: [LAD] A short technote on digital state-variable filters

2021-01-13 Thread Florian Paul Schmidt

Hi Fons,

I have a question (sanity checking my understanding) regarding the
implementation: You note in your introduction that the SV-Filter
provides lowpass, highpass and bandpass outputs. If I wanted to provide
all three to the user then this could be done with the following C-Code,
right (adapted from your individual examples)?

d0_high = 1 - c1 / 2 + c1 * c2 / 4;

d1_band = 1 - c2;
d0_band = d1 * c1 / 2;

d0_low = c1 * c2 / 4;
d1_low = c2;

for (i = 0; i < n; ++i)
{
x = inp[i] - z1 - z2;
out_high = d0_high * x;
out_band = d0_band * x + d1_band * z1;
z2 = c2 * z1;
out_low = d0_low * x + z2;
z1 = c1 * x;
}

Regards,
FPS

Oh, looking at it again, and if I'm not completely confused, this should
also be equivalent:

for (i = 0; i < n; ++i)
{
x = inp[i] - z1 - z2;
z2 = c2 * z1;
out_high = d0_high * x;
out_band = d0_band * x + d1_band * z1;
out_low = d0_low * x + z2;
z1 = c1 * x;
}


On 11/19/2020 10:05 PM, Fons Adriaensen wrote:

Hello all,

Some people have asked me to provide a bit more documentation
on the state-variable filters I used in zita-eq1 and zita-jacktools.

So I've written a short technical note on this. You can find it at



Ciao,



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


Re: [LAD] WIP, RFC: jack2_split

2020-07-23 Thread Florian Paul Schmidt

Hi Fons,

thanks for your quick reply and insightful comments!

On 7/23/20 2:16 PM, Fons Adriaensen wrote:

A few comments:

* Doesn't jack2 have this built-in ? I seem to remember something called
   'loopback ports', but it has been some time...
   So you start jack2 with the required number of loopback ports, then
   connect A -> writable side of loopback ports, and readable side -> B.


That would make some sense. I saw the --loopback option on jack2's
commandline help, but didn't find it documented in the man page and
always wondered about its semantics. When I wrote this little tool I
completely forgot about --loopback though :)


* Since this is just a buffer, the '-split' name seems a bit misleading.


I didn't come up with a better name yet. I'll look into the loopback
ports. If those do precisely what I want then looking for a better name
is moot anywys.


* I'm not convinced that the logic used in your current implementation
   will do the right thing in all cases (but I could be mistaken).


I'm not convinced either SMP code is hard. But I *almost* convinced
myself that with sequential consistency for both loads and stores it
should work out.


   The reliable way to organise this would be to use a dummy port in
   reverse direction on both clients and connect those.


OK..

Thanks again and

regards,
FPS

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


[LAD] WIP, RFC: jack2_split

2020-07-23 Thread Florian Paul Schmidt


Hi,

I had a hunch that's there is a way to trade latency for parallelism in
serial jack graphs (at least on jack2/jackdmp setups). Comments welcome..

https://github.com/fps/jack2_split

README.md below:

jack2_split

A program that facilitates parallelism in serial jack graphs by
introducing latency. Only useful for jack2/jackdmp - it does nothing but
add latency in jack1 setups.

What?

If you have a jack processsing graph that looks like this:

capture -> A -> B -> playback

where A and B are jack clients, then A and B must be scheduled in series
due to the linear dependency.

Running A and B serially might produce xruns (i.e. violate the
scheduling deadline imposed by jackd) while running only A or only B
might not.

jack2_split can be used to remedy the situation by using the following
graph:

capture -> A -> jack2_split -> B playback

jack2_split breaks the serial dependency by registering two jack clients
which respectively only have terminal input and output ports. It copies
the buffers from its inputs to its outputs after the current process
cycle. This introduces one additional period of latency into the graph,
but allows jack2/jackdmp to schedule A and B in parallel (e.g. on two
cores).

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


Re: [LAD] CMake & ncurses

2016-11-12 Thread Florian Paul Schmidt
On 11/08/2016 07:09 PM, Will Godfrey wrote:
> Apparently the upcoming versions of openSUSE Leap don't have a .pc file for
> ncurses, and CMake's findpackage() requires that.
> 
> Does anyone know of an alternative method of configuring CMake for ncurses?
> 
> Will.
> 

https://cmake.org/cmake/help/v3.0/module/FindCurses.html

CMake seems to have its own module for that..

Have fun,
Flo

-- 
https://fps.io



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


Re: [LAD] [LAU] [ANN] Musical Artifacts: new release with updated design

2015-09-10 Thread Florian Paul Schmidt

Hi, sorry, that I don't have much to add besides: Awesome!

Sent with AquaMail for Android
http://www.aqua-mail.com


On September 9, 2015 6:07:50 AM lucas z  wrote:


Hello again! I come back to you all with a *kind of* new release of the
website, because the project doesn't really have releases, it just stays
there...

https://musical-artifacts.com/ is a place to collect free 'musical
artifacts', that is, pre-sets, configuration files, soundfonts, etc. make
them searchable and taggable and give credit to authors.

This **release** features a new redone design which encourages browsing
through all the tags, apps, and categories. So give it a try! The site
currently has ~100 artifacts, but it's growing steadily as I add them and
the first people are starting to contribute!

The full changelog is here: https://diasporabr.com.br/posts/799925

The code and more info is here:
https://github.com/lfzawacki/musical-artifacts

As always, feedback and contributions are welcome!



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

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


Re: [LAD] [LAA] CLAP, new virtual instrument and effect plugin interface proposal

2015-01-03 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 03.01.2015 12:48, Alexandre Bique wrote:

>> 3] It would make plugin development easier if it was required to
>> call deactivate() on a plugin before clap_destroy'ing it. The
>> additional burden on the host would be small. Is there a good
>> reason for it to be this way?
> 
> I did it this way for robustness reasons. Because even if the host
> has a bug in his destroy code path and forgets to deactivate, the
> plugin must handle this case correctly.

OK, let me put it this way. It really is a number's game. Let's take a
successfull plugin standard like VST. There's thousands, maybe tens of
thousands of plugins, but maybe tens to hundreds of hosts. So there's
an order of magnitude or two difference.

Every plugin has to have this extra check. What are the chances that a
few plugin authors forget to do this check? What are the chances that
a few hosts get this wrong? What are the chances that plugins get
fixed? What are the chances that hosts get fixed? Also it's just
boilerplate code. If every plugin has to do it, then it shouldn't have
to do it at all since it clearly can be automated. And the automation
in this case is just the host calling deactivate before destroy.

Give the plugin authors as much guarantees as possible.

With the proposed way around plugins might work in some hosts that
honour the standard, but not in others (I.e. ones that do call
deactivate() before destroy() vs. those that do not). If you make
calling deactivate() before destroy() a requirement this whole problem
just goes away. It makes life easier for the plugin developer while
not making life _much_ harder for the host dev. Also it's trivial to
implement a test plugin for host devs to use that checks things like
this - one that does basically just copy input to output but checks
that lifecycle requirements are met by the host:

- - abort() on calling process() before activate
- - abort() on calling destroy before deactivate()
- - etc..

Have fun,
Flo
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJUp/nYAAoJEA5f4Coltk8Zk+AH/0mnqvtw09iw2Mccyj4UTzBY
xgm7n0i9N664e2qk2a0JrmRs/gOxAy1ddMGiNbXzgfI+mMqdh1XRlIgm0APcu+mK
xAyxsYQuNVM88wq1kVVETAve/dvdAqMVYFkwViR5a7HlPPZVzj0vAsbAJT8HNWE3
O9oayGVDkzvY30ax13ktrFGSiMgiY1qEZq9DhapxTSwr929LnIGHzCWNSEXTepxi
iSF/5k4j61V/zEFCNjL1/gHOdvANwKTbSQTXcNUY8RrbiR6vU18H/7wEypIbNI9a
4s4lHdzw4paAcIuj/Xvjqc8NUGi67z6BGRKqDU9y6jPg99T7vqX4lFCIScFV2go=
=0gbu
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAA] CLAP, new virtual instrument and effect plugin interface proposal

2015-01-03 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Sending this to LAD (additionally to replying to the author directly)
as I cannot post answers to LAA and maybe it's interesting to keep
this discussion on LAD..

On 29.12.2014 16:48, Alexandre Bique wrote:
> Hi,
> 
> I worked on a new plugin interface, it is not yet finished and set 
> in stone, but ready enough to gather initial feedback and advice.
> 
> The specification is hosted on github: 
> https://github.com/free-audio/clap and is available under the MIT 
> license. There is a generated specification document at: 
> http://free-audio.github.io/clap/
> 
> I hope that you'll find it interesting and give it a chance. 
> Thanks.
> 
> Regards,
> 

Hi, I'm just skimming over the generated docs. Generally it's a
laudable effort but maybe a few years too late. I guess many people in
the linux audio community would agree that there is no lack of plugin
standards :) Some remarks:

1] The generated docs display rather badly in my browser as I cannot
move the separator between the two "lanes" which results in the left
one not being readable at least partly.

http://i.imgur.com/4MhRWvf.jpg

(yes, this is a two monitor setup with an upright 4:3 monitor on the
left :))

2] It would be cool if clicking on a function name in the left panel
would take you to the function declaration in the right panel. E.g.
clap_create.

3] It would make plugin development easier if it was required to call
deactivate() on a plugin before clap_destroy'ing it. The additional
burden on the host would be small. Is there a good reason for it to be
this way?

4] The plugins collection query mechanism (with index 0) seems a
little "hackish". Why not have extra functions for it?

5] tunning -> tuning (spelling)

6] Adding to 3]: Change some of the "should not" to "must not" as it
would make the API semantics clearer. Example:

"Also deactivate() should not be called if the plugin is not
activated. Yet the plugin should handle a call to deactivate() even if
it is not activated."

How should it handle it? It would be simpler to just make this a "must
not". Little additional burden on the host while making every single
plugin easier to implement and less error prone..

That's it for now (it's how far I got into reading the spec). Have fun,
Flo
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJUp8xtAAoJEA5f4Coltk8ZCogIALDFJMjfOrg3jeGrp6IB6dk/
3LvICyE53XrdjZsBqbETAPY6LAIf5HOwuoyU8JbBPECirILKM0T5diK/+G9CMTJL
gx93UTWkdWVFivVI79y5Rys+Fj3fRBpknBXttplATBohIeMWvam8ey2F5/6UN82H
y3IVPp+y9CXsEZ6Ekv/Z25S5FWlBQ7X2mdojafWnxk8euJedPSAUFF3248LHvAaX
oeNZkMX7KANlw+3r/8R0mOhez/Z1p016Q5/Ckc1U/t6kHoAeSHNSDmL1ONS/0hzL
VEcVHjLoxSDpW3D2NksKtkTK6w98xHS7BQtG9Rm8c2h0ReA6JWXunE2MClbltVI=
=jS92
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Linux audio jobs/companies?

2014-10-14 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 29.09.2014 12:34, Ralf Mardorf wrote:

>>> Lip-sync is an issue, assumed you should have the abilities to
>>> fix it, you likely would find a job.
>>> 
>> 
>> Can you elaborate on that? What exactly is the problem? And what
>> kind of solutions are people looking for?
> 
> I don't know if the Linux kernels used for audio-video consumer
> gear are used for audio and video processing, perhaps they are just
> used to provide menus etc., but since the end of the 90s I never
> experienced the good audio and video sync we had with German
> terrestrial analog television. All analog and digital satellite and
> digital terrestrial receivers I've seen didn't provide acceptable
> sync. Assumed at least some of those receiver should do the audio
> and video processing using Linux too, a smart solution to fix such
> issues, not by just providing fixed delays, but by detecting the
> exact drift and automatically fixing it, might be from interest for
> the consumer gear companies. Perhaps, they wouldn't care about a
> smart way to fix it, OTOH for colour correctness at least Germany
> cared, so we once upon a time got PAL.
> 

Sorry for not coming back to you earlier. I would suppose it's just
laziness on the part of the receiver manufacturers. If the receiver
manufacturers were willing to shell out the money to get it done
right, they would have done so. So I don't see any job opportunities
here..

And if it's a problem with the underlying stream specifications or how
the stations broadcast them, then it will probably never get fixed :)

Regards,
Flo
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJUPVu7AAoJEA5f4Coltk8ZC6sH/AvJA2pyp3hGV8kHFlNSmqB+
lB0PzC0k1aq0rPLmvmV1morm2ei40CJF7w1UswnCfjW6t6vmJn1mVdg+omyjoQsn
ylEuFyX4qLV9lUI/Sm6fMbL2ZtuVag+H2cA4Kv9BrUrYDvLjyTcl0MpQqSmzwaQH
k5MeTTds0dE2vDiB9EnakGhbHcBeX+sZSTvHU3STsSNKvd0S0eUW4xOWhUYdkoCi
eVxK/aYBccjtwZwXhv5SBDFuyulZPwoV8PZ9WXeLEI8V+W28N07heT6IweTakBhq
3MVGzeTXMseOxb8AGwcIWD2r6ZsZlbl7/5TcPYwe2314eFQXngWRFkOogy6kn0M=
=iT6x
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Experience driven design and Linux Audio

2014-10-01 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 01.10.2014 12:03, Harry van Haaren wrote:

> Flo wrote:
>> I'm an enthusiast and I don't need shiny tools and integration. I
>> need well designed (software design, separation of concern,
>> multiple ways of interfacing, language bindings, etc.) building
>> blocks to tinker and experiment with.
> And I understand that there is a need for software to cater for
> your use case, or preferred workflow too. That's the lower-left
> quadrant in the talk: "Open Features-driven" tools. Very powerful
> when in very capable hands.
> 
> Its users who would prefer a smooth experience that do not have 
> software available to them on linux audio right now. And its
> designing and building software in that domain that I'm interested
> in (both as "me", and OpenAV).

Thats's cool. I actually prematurely stopped my point there. I was
gonna say that my idealism doesn't extend to providing non-enthusiasts
tools that they can use. And I'm pretty sure many other enthusiasts
and tinkerers share that point.

I was also gonna say that if people like polished closed software on
closed systems better than open source stuff, that's fine, too.

The important point was though that left to their own devices the
non-enthusiasts will be slaughtered by the software they use and maybe
we have a responsibility to protect them from themselves.

But then: Where's the resources for doing that work coming from?

Flo
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJUK/s6AAoJEA5f4Coltk8ZAwcH/jB3kGFYBwqQwbUHg49eZuvD
j+31I5+oiozipL9umw0Gr/D0JyHDeAc998UAJlRUFKkcL95nsCBpnU4AQrllK4Rd
o+H3Hla+aCT8AX0px5rrA6CCao9X0YgljpxvFhYdNMFL9C1rDulzJPOOW051rqPX
wIjay4uknn+v9+my7iiFJyZBVCrRz2McmMPQ8AalBsln7hNQ1ieHuzEehpqP8CPy
ERmInVhCrxmYRj26eGAzUYF5x1MgkgJUePdEuY7F8PHGLhQTH7Gbtl0xtNQqA0Wh
3XAa7fiE9zPL1NMAYj12NU9HvThOw+K0y9aCrxcbvyrDYKFkWWkzA+u/VZmuR1w=
=bsn5
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Experience driven design and Linux Audio

2014-10-01 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 30.09.2014 15:58, Harry van Haaren wrote:

> https://www.youtube.com/watch?feature=player_detailpage&v=ldhHkVjLe7A#t=1625
>
> 
> 
> To bring this discussion to a productive start, I'd like to
> concider the tools we have available as the linux-audio community:
> they certainly have features, and empower the user to own thier
> tools, and the data used with those tools.
> 
> Should we improve experience for users? Should we design
> "experience driven open" software? Should we forward the UX of
> Linux Audio to the "age of experiences"?
> 
> What do users know, that developers might not? What is it that
> needs to change? Are there even issues here? If so, how do we (the
> community as a whole) try to solve this?
> 
> 
> I hope this is a productive and inclusive discussion, and politely 
> request remaining on topic ;) To a fruitful discussion, -Harry
> 

I was disagreeing with everything he said from the get go (or rather
from the time you linked to). I'm an enthusiast and I don't need shiny
tools and integration. I need well designed (software design,
separation of concern, multiple ways of interfacing, language
bindings, etc.) building blocks to tinker and experiment with.

The one thing that struck a chord though were his last remarks and he
surely wasn't the first to mention those points :) If the open, libre,
software environment doesn't appeal to the non-enthusiast masses, they
are led to the altar of getting their liberties butchered, as is
apparent with modern OSs like OS X and windows, iOS and android and
the popular applications on those platforms.

I'll watch the rest of the talk later, when I'm not busy with getting
food on my table creating non open software on the linux platform ;) I
wonder how he wants to solve problem of funding. Polish and
Integration is a monumental task eating tons of resources. Ain't no
enthusiast got time for that (unless they find a way of financing)..

Regards,
Flo

-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJUK8UsAAoJEA5f4Coltk8ZlFYH/0KJONGEho+84ZHu7PUrxwJF
R6nK09AlyRlR2Hd/Dq7UP6Mqdr9+sFX6bbZCiQ6QfNtqti+qqdMmrQkfzmOGsgJ/
jBO4M3BU2nS23rQgjSnN/V2O+xejSXZSPTdqf9gepMIqnuEfqxmsqQsg/zvnBzOj
UuSBT+m8zvnrWuUoI3fH2rYFzJBEie70ap4/fzkk+8up4EJ3jjn8Yur087QrTDK+
cq6Jkmzd8waXKXP/g93tWoAW9CDK5f1xx8WIfumpSQdZ6qbj9uaDnAHfW6pMIdJJ
Ma+jLrmObx7y+V0nEyEGCNl041Ekhogrrzn0nfBjlr4rmMOhSvccIvrcauK/BtA=
=VYjt
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Linux audio jobs/companies?

2014-09-29 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 27.09.2014 16:59, Ralf Mardorf wrote:
>> A lot of consumer audio-video stand alone gear is using Linux,
>> e.g. television satellite receivers. IMO this market might be
>> more interesting when searching for a job, than the pro-audio
>> market or Internet presences are.
> 
> Lip-sync is an issue, assumed you should have the abilities to fix
> it, you likely would find a job.
> 

Can you elaborate on that? What exactly is the problem? And what kind
of solutions are people looking for?

Flo


-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJUKTL2AAoJEA5f4Coltk8ZViwH/27gHPiFKZVQA4Rid6EA/PA5
wUIxhQhzWNq6UdsJ19FgRTDG2S8w3jNEn4rnXi5AuVAHQbh3lk8xx67FwMW9N5c9
jtLXxul2kAVceUfhZvHYg6TYRT3e5yQfPILXUySouxuR4esw9THsDHOueCuz7wUp
i+Ykcx+69q65blPkN0Gnf/M0t7fyH1WgnRMDAMTKkYPlrv1NtMqNklPO8IVRzgNl
gZcwN54Kmny2pwUH4B3PUeazOZMOoRWYXIi3yncvLpSAZIGPHB6ERlK3PnS4arU6
8R9EiUKzVGkcJ/v4A2iRSnrufMZ2p7rkX+8an95AXyCh1VYEUEoCx4Z3sZZsrZI=
=ilJU
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Releasing source code is not enough, I think...

2014-01-21 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Sorry for the duplicate, John, pressed the wrong button ;D

On 21.01.2014 14:11, John Rigg wrote:
> I'm inclined to agree with Fons here. There seems to be a growing 
> culture of expecting Windows-style hand-holding for free software. 
> In the Windows (and Mac) world you pay money for this. I think
> it's unreasonable to expect the same level of support from unpaid 
> developers. (If they have the time to do it that's great, but it 
> shouldn't be taken for granted).

Interesting. I had a discussion on a related topic with Filipe on IRC
just a few days ago: What kind of choices should a software make for
the user? In our example it was the usability (inversely correlated to
the number of actions required by the user (mouse clicks, etc.)) of
e.g. a free connection patch canvas vs. e.g. a mixer strip which
restricts the signal flow to be linear for a usecase of e.g. adding a
plugin to a plugin host and getting sound out of it.

My opinion is: It is very much OK for a software to make choices to
streamline common usecases if it happens to be not at the expense of
the freedom to accomplish the more complex task. In our example this
would be a mixer strip abstraction over the free patch canvas, but
where the user has the option to change to the free patch canvas if
desired.

I see it somewhat similarly here. Providing binaries for software does
not restrict the user from downloading the source package and
compiling the software itself. We're not discussing providing binaries
ONLY, but providing binaries as convenience for a common usecase.

Have fun,
Flo


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJS3paqAAoJEA5f4Coltk8ZQMYH/1d4BRXndqF8QKzYgdngNtz4
dL+e9+qIREx56fD14Keu0XCrjh+YxaUiDUr6UE+FmqZV6kVWh0ChjYKDPfsz+jPb
kPtEsWT3M6iDK6mMATui1gpYbpmZQQic1bmdZuOgsd/2UmzXsJ6U7PWUd7wCTh3L
FMlFXlTgGBtjN9GxnszUuasqyWhmLP34LlCa0fyg0OumY/Rf/ilIJt/Yoke9vBj9
w/FlpjSLYDM9Bhu4Ha6ZPsHEW1ocoYsrJi3FqOy2UhT5+JKdRQeSNHXZ8Qw5PJ7N
6SbDdF9pzJpKm+RbYUSy1j+WigEcJMsdll6TZaxY0Q9HmzHI93/CcLwt3C3ipMg=
=SNAv
-END PGP SIGNATURE-
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] zita1 RIP

2013-09-06 Thread Florian Paul Schmidt

On 05.09.2013 23:08, Fons Adriaensen wrote:

On Thu, Sep 05, 2013 at 01:53:33PM -0700, J. Liles wrote:
  

Another one bites the dust... Should've run Non on it instead. Seriously
though, it's a shame. Fortunately,  there are still quite a few
motherboards out there with at least one PCI slot. I trust you had
everything backed up!

Almost... Lost two evenings of work on AP algorithms, but I
have some 30 pages of scribbled notes about that, and the
(Python) code itself wasn't that complicated, I'm rewriting
it right now. Still, should learn to backup every day.

Ciao,



Hi,

sure, regular full backups are a great thing. But there's one simple 
thing I like to do especially with code: Setup your repositories on a 
different machine (like a rented root server, or a public hoster like 
github). Then always push your commits regularly (oh, it compiles again 
- push it :D). Makes working on different machines easy, too. It's 
simpler than setting up and adhering to a strict backup plan and it's 
naturally incremental and closely tied to the development process.


Reminds me: I have to throw on my full backup again..

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


Re: [LAD] [ALPHA] ladspa.m.lv2 - Some questions :D

2013-05-09 Thread Florian Paul Schmidt

On 05/09/2013 11:16 PM, David Robillard wrote:

I do use the worker extension. The only problem I saw was when I tried
to integrate the patch_set messages in that same loop.
There shouldn't be a difference.  Assuming that, in the integrated case,
you're scheduling the exact same work (easy enough to check) nothing
should be any different, unless something is wrong with the asynchronous
work stuff and some really fine timing problems are happening...
everything looks good though, the work stuff shouldn't be affected by /
affect state...

What kind of problem?




For some reason patch setting didn't work in this case at all. I 
sprinkled some debugging output into the code to see what was up. It 
seems the load_instrument function never got called. But before putting 
any more effort into diagnosing the problem, I'll take your work as to 
that it should really work that way, too. I'll just assume that I messed 
up somewhere else and see if I can try to widen my understanding of the 
worker extension (I basically built this plugin based on the eg-sampler 
plugin from the lv2 distribution, so some parts I just copied and pasted 
with only minor adjustments)..


Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [ALPHA] ladspa.m.lv2 - Some questions :D

2013-05-09 Thread Florian Paul Schmidt

On 05/09/2013 10:46 PM, David Robillard wrote:

(Sorry for the late reply, I don't monitor LAD very closely these days)

You should be able to handle all the events in one loop.

However here you seem to be iterating over all events *for every frame*?
That would cause a problem with loading since you'll issue a ton of
identical load requests, but it also probably isn't what you want for
MIDI either.  You'll trigger everything repeatedly and the timing is
wrong.  I think you need to unify your two loops here.


Nope, I do not iterate over all events in every frame. Before iterating 
over the frames I get the first event and then on every frame I iterate 
over those events that have that frame time.. This is similar to how the 
jack_midi example code does it..


// First the worker events stuff ONCE per run() call

LV2_ATOM_SEQUENCE_FOREACH(self->control_port, ev)
{
[...]
}


// Then the iteration over the frames...

LV2_Atom_Event *ev = 
lv2_atom_sequence_begin(&(self->control_port)->body); [...]


for (unsigned frame_index = 0; frame_index < sample_count; ++frame_index)
{

[...]

while (false == lv2_atom_sequence_is_end(&(self->control_port)->body, 
self->control_port->atom.size, ev) && ev->time.frames == frame_index)

{

[...]

ev = lv2_atom_sequence_next(ev);

} [...]
// Did we reach the end of a chunk or the last of the sample_count?
if (0 == (frame_index + 1) % buffer_size || sample_count == frame_index + 1)
{
process(self, frame_index % buffer_size + 1, chunk_index * buffer_size);
++chunk_index;
}
}




The general pattern for sample-accurate event receiving is work through
time in the event loop, outputting everything up to the current event.
So you start with t=0.  The next event loop in the loop is at t=5, so
render the output for 0..5, process the event (to e.g. trigger a voice
or whatever), then continue.  After the loop output everything from the
last event to the end of the cycle.

So your event processing loop is your processing loop, and proceeds in
'chunks' delimited by events.

The magic of the worker extension is you can do non-RT things like load
new sample banks, which will happen RT-safe (with latency) if running
realtime, but if freewheeling (e.g. for export) the scheduled work will
execute immediately/synchronously.  Thus you can get sample accurate
exporting, e.g. with a patch load at t=0 and a note on at t=1 the note
is guaranteed to play with the new patch (in the export).  You don't
need to worry about this, but it's why things are the way they are...
plus it's pretty cool :)

Hopefully that makes sense, the simplest example of how to do this is in
the metro example:

http://lv2plug.in/browser/trunk/plugins/eg03-metro.lv2/metro.c#L296


I do use the worker extension. The only problem I saw was when I tried 
to integrate the patch_set messages in that same loop.


Flo

--
Florian Paul Schmidt
http://fps.io

___
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 Florian Paul Schmidt

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

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [ANN] - Introducing the MOD - Your LV2 plugins at your feet

2013-05-02 Thread Florian Paul Schmidt

On 05/02/2013 10:34 PM, Gianfranco Ceccolini wrote:

Dear Linux Audio users and developers


We at AGR/HackLab are very proud to announce our newest creation: the MOD.


In a nutshell, the MOD it is a programable Linux based hardware 
processor/controller with LV2 support.



It’s main objective is to take the processing of any LV2 plugins to 
the stage.




Hi, it seems you guys made a wet dream I had for many many nights come 
true :D I can't make it to LAC, but I'm eagerly awaiting news on specs, 
pricing, etc..


Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [ALPHA] ladspa.m.lv2 - Some questions :D

2013-04-23 Thread Florian Paul Schmidt

On 04/23/2013 12:47 PM, hermann meyer wrote:

Am 22.04.2013 07:33, schrieb Florian Paul Schmidt:




Hi

I'm far from being a waf expert, but I will try to help you out here:
You can use

conf.env['cshlib_LINKFLAGS'].append("-fPIC")

or

conf.env['shlib_LINKFLAGS'].append("-fPIC")

or

conf.env['cxxshlib_LINKFLAGS'].append("-fPIC")

somewhere in the  def configure(conf): part to set the link flag

and you can use in the obj = bld

cflags = '-Wall -O3 -march=native',

or

cxxflags = '-Wall -O3 -march=native',


depending on your seated
 obj = bld(features = 'c cshlib',

or

obj = bld(features = 'cxx cxxshlib',


Hi, thanks for the info, but I would expect that there's a maybe more 
portable way, at least for the -fPIC option>


Flo

--
Florian Paul Schmidt
http://fps.io

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


[LAD] [ALPHA] ladspa.m.lv2 - Some questions :D

2013-04-21 Thread Florian Paul Schmidt


Hi,

These last few days I found some time to work on ladspa.m.lv2, an LV2 
plugin to load ladspa.m.proto instrument definition files:


https://github.com/fps/ladspa.m.lv2

It is in a somewhat usable state, i.e. used in ardour3 it loads the 
example instrument generated by this python script:


https://github.com/fps/ladspa.m.proto/blob/master/example_instrument.py

which is a very simple polyphonic sawtooth synth with exponential 
envelopes and an echo with differing delay times per voice. There's 
still some things to do (e.g. expose control ports, implement 
All-Notes-Off midi messages, lots of optimizations - right now I care 
more for correctness than for efficiency, etc.) and I also have some 
questions:



1] This one is regarding waf. I'm not used to writing wscript files and 
I adapted the whole thing from the example sampler from the 
LV2-distribution. I wonder how I can make waf to use e.g. -fPIC and 
other compiler flags needed for my 64-bit system. Right now I have put a 
little makefile into the repository which passes the missing options 
along as CXXFLAGS environment variable. This is a dirty hack. So if 
anyone waf guru might want to take a look, I'd be so ever grateful.


https://github.com/fps/ladspa.m.lv2/blob/master/makefile

https://github.com/fps/ladspa.m.lv2/blob/master/wscript


2] I'm a little bit puzzled by how the patch_set messages together with 
the LV2 worker extension works. If you take a look at this run() function


https://github.com/fps/ladspa.m.lv2/blob/master/instrument.cc#L702

you'll see that I have an extra LV2_ATOM_SEQUENCE_FOR_EACH at the start 
of the function to process the patch_set messages. I tried to integrate 
that into the loop later on (that iterates over the sample_count frames 
and lets the midi events take effect at their respective frame), but 
once I do that, patch loading stops to work. I must be missing something 
fundamental. So if any LV2 guru might want to take a look, I'd be very 
grateful, too


Thanks and have fun,

Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] Laborejo 0.7: Non-Session-Manager support, Playback Cursor, Numpad Palette

2013-04-21 Thread Florian Paul Schmidt

On 04/20/2013 10:22 PM, Nils Gey wrote:

Laborejo 0.7 is released.

Together with a new website design http://www.laborejo.org comes a new release 
of the Music Notation Workshop.
Besides the usual fixes and small enhancements please focus your attention on 
the following new features:
   -Non Session Manager support. Start Laborejo through the NSM Gui and it will 
be under session management
  
   -Numpad Palette and corresponding shortcuts. A gui widget shows you what musical objects your numpad will insert.

You can change the palette through the menu or by switching through with 
numpad-plus and numpad-minus.

   -A moving playback cursor, showing you which part of Bachs "Kunst der Fuge" 
you currently don't understand


Laborejo -Music Notation Workshop- is a graphical user interface for Lilypond, 
a MIDI creator and finally a tool collection to inspire and help you compose. 
You get beautifully engraved notation through Lilypond and nice ways to control 
the playback without ever leaving a notation-based environment.

Latest Screenshot:
http://www.laborejo.org/latestscreenshot.png

Hi, great work on the website. Looks very nice. And also kudos for 
working on Laborejo. It's a very useful project


Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] test 1/2

2013-04-17 Thread Florian Paul Schmidt

On 04/17/2013 04:02 PM, Nikita Zlobin wrote:

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


They do.. Or at least this one and the other one [;D] did..

Flo

--
Florian Paul Schmidt
http://fps.io

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


[LAD] [ALPHA] ladspa.m.*

2013-04-02 Thread Florian Paul Schmidt


Hi,

after a somewhat productive weekend I'm happy to announce some alpha 
quality software (i.e. bug ridden, not feature complete) for your 
consideration and feedback :)


But: release early, release often XD

I went a little overboard with modularization and separation of 
concerns, so in the end it became four packages (with possibly one more 
in the future - a LV2 plugin to load the synths/instruments). 
Documentation is also very much lacking, but each package contains at 
lease a single example file to illustrate the usage.




* ladspa.m - https://github.com/fps/ladspa.m

ladspa.m is a header only c++ library to build and run general synthesis 
graphs made up out of LADSPA plugins. The interface is kept deliberately 
kept simple and unsafe, as it is expected that one uses higher level 
tools to build these synthesis graphs (e.g. using a library on top op 
ladspa.m.swig or ladspa.m.proto).





* ladspa.m.swig - https://github.com/fps/ladspa.m.swig

ladspa.m.swig are SWIG generated python bindings for ladspa.m. This 
allows building and running general synthesis graphs made up of LADSPA 
plugins from within python. This requires ladspa.m. NOTE: I just saw 
that the swig interface definition lacks the ability to connect outside 
buffers onto plugin ports. This will be fixed in the next few days..





* ladspa.m.proto - https://github.com/fps/ladspa.m.proto

ladspa.m.proto contains google protobuf definitions for general 
synthesis graphs made up of LADSPA plugins. It also contains a 
definition for an instrument file format. This library does not depend 
on either of the two above. It becomes useful with the last package 
(ladspa.m.jack) and possibly in the future with an LV2 plugin to load 
and run these (to be announced when done). The python bindings generated 
for ladspa.m.proto can be used to generate synth and instrument files 
that can be loaded by ladspa.m.jack. The instrument file definition 
allows for polyphony while at the same time putting no constraints on 
the inner structure of the instrument (each voice is made up out of 
plugins, they can be identical or not between all voices)..


An example is included which defines a simple sawtooth instrument with 
exponential envelopes and with 5 identical voices except for a different 
delay setting on each voice.


https://github.com/fps/ladspa.m.proto/blob/master/example_instrument.py

Pipe its output into a file called e.g. instrument.pb. This you can then 
load into ladspa.m.jack.instrument.


Here's a little example of the generated instrument file loaded into 
ladspa.m.jack.instrument and playing a little 120bpm loop (from ardour3) 
with it:


https://soundcloud.com/fps-2/t-m

This also highlights the need for a higher level interface on top of it 
to ease the process..





* ladspa.m.jack - https://github.com/fps/ladspa.m.jack

ladspa.m.jack is a library which allows loading ladspa.m.proto synth and 
instrument definition files into jack hosts that are provided as example 
clients.


ladspa.m.jack.synth allows loading a synth definition file and run it in 
the jack graph.


ladspa.m.jack.instrument allows loading an instrument definition file 
and provides a midi in port which allows playing the synth.





But like I said this is all ALPHA software and I just announce it 
because someone else might have fun with it. Please report all issues 
that you find either per email to me, on LAD or LAU or on the issue 
trackers of the github projects..


Have fun,
Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] simple silence detection tool

2013-02-10 Thread Florian Paul Schmidt

On 02/10/2013 08:38 AM, Jeremy Hansen wrote:

I'm looking for a simple tool where I can point it at an http audio stream, 
define a number of seconds to detect silence and exit with a non-zero status if 
silence is detected.  It seems like this should be easy but I've been search 
high and low for such a utility and nothing simple exists.  Unfortunately I'm 
not much of a developer, but this doesn't seem like it would be that difficult. 
 Maybe it's harder than I think, hence no tool that I can find.



Probably noone needed this precice functionality yet. I would look for 
options to assemble this from lower level components:


1] A tool that can read from an http stream and write it into a pipe 
(maybe mplayer/mencoder)


2] A tool to convert the stream from the compressed format into a very 
low samplerate simple to parse format that reads from that pipe and 
writes to another.. (mencoder)


3] A small bash script or python or whatever floats your boat program 
that takes the low samplerate, simple to parse output and detects 
silences in it. If the silence is "true" silence, something as simple as 
searching for a long enough string of 0-bytes is enough..


Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [LAU] jackdbus eating 100% cpu after a while

2013-02-09 Thread Florian Paul Schmidt

On 02/09/2013 01:36 PM, Adrian Knoth wrote:

On Sat, Feb 09, 2013 at 01:24:22PM +0100, Florian Paul Schmidt wrote:


I use very large period sizes, 1024 or even 2048. The problem of
jackd starting to eat 100% cpu occurs usually when I'm done with my
current work (recording something or fiddling around) and just leave
it running idly.

This sounds a bit like denormals.

Which CPU? Just to be sure.




Cheers



Yeah, I thought about denormals, too. But it takes a few hours to kick 
in. Never happened with jack1.



processor   : 3
vendor_id   : AuthenticAMD
cpu family  : 16
model   : 10
model name  : AMD Phenom(tm) II X4 960T Processor
stepping: 0
microcode   : 0x1bf
cpu MHz : 800.000
cache size  : 512 KB
physical id : 0
siblings: 4
core id : 3
cpu cores   : 4
apicid  : 3
initial apicid  : 3
fpu : yes
fpu_exception   : yes
cpuid level : 6
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl 
nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lahf_lm 
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch 
osvw ibs skinit wdt nodeid_msr cpb hw_pstate npt lbrv svm_lock nrip_save 
pausefilter

bogomips: 6000.24
TLB size: 1024 4K pages
clflush size: 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate cpb

Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [LAU] jackdbus eating 100% cpu after a while

2013-02-09 Thread Florian Paul Schmidt

Hi James,

On 02/09/2013 01:11 PM, James Stone wrote:
Hi Flo, I am also running Ubuntu 12.10 and using jackdbus. It is 
really nice for things like playing along to youtube videos.. On my 
computer, I noticed that jack does have a tendency to lockup after a 
while when jackdbus is running. I had the feeling that it might be 
something to do with latency, as I found it is impossible to start 
jack at very low latencies with jackdbus running. I was using 128 
samples which seemed to be OK, but at that latency, the lockups 
occurred after some time. I tried increasing latency to 256 
samples/44.1k. Following this, it seems to operate fine (at least I 
have had no more dropouts), but it is all a bit fiddly to get it to 
work properly, and I would probably disable pulse if I wanted to do 
serious recording etc without the mixing capabilities that jackdbus 
adds.. James 


I use very large period sizes, 1024 or even 2048. The problem of jackd 
starting to eat 100% cpu occurs usually when I'm done with my current 
work (recording something or fiddling around) and just leave it running 
idly. Then when I return to my computer after a few hours jackd sits 
there happily eating cpu. It has the side effect of heating my room, but 
heating with electricity is expensive and thus I'd rather avoid it ;D



Have fun,
Flo


--
Florian Paul Schmidt
http://fps.io

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


[LAD] jackdbus eating 100% cpu after a while

2013-02-09 Thread Florian Paul Schmidt


Hi,

I was a long term jackd1 user and my first action on a new linux 
installation (mostly using Ubuntu) was normally to remove pulseaudio as 
it was badly configured and/or buggy. Things have changed and I really 
started to like PA for everyday stuff. And then jackdbus came along 
which together with the device reservation API and the jackd sinks 
promised to make using these two things together more easy. This mostly 
works fine, except for the device reservation bug in PA which is easy to 
work around though:


- Make sure no audio process is actively using the soundcard you want 
jackd to use

- Run pulseaudio -k
- Run jack_control start


I have noticed some issues with jackdbus though:

a] jack_control start sometimes doesn't work at all after the first time 
it failed to aquire the device. A killall -9 jackdbus is in order to 
restore it


b] after some hours of operation jackdbus starts to eat 100% cpu on two 
of my four cores.


Are these known issues? I use Ubuntu 12.10 and jackd:

fps@mango 12:08:21 .../Games/Xonotic/ $ jackd -v
jackdmp 1.9.9
[...]

How to diagnose the 100% cpu thing more closely? The 
~.log/jack/jackdbus.log shows nothing suspicious.


Thanks and regards,
Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] So what do you think sucks about Linux audio ?

2013-02-05 Thread Florian Paul Schmidt

On 02/05/2013 06:15 PM, Paul Davis wrote:




On Tue, Feb 5, 2013 at 11:55 AM, Jostein Chr. Andersen 
mailto:jost...@vait.se>> wrote:




* A very geeky community. I see very often the answer:
  "read the ALSA matrix" when a poor newbie or a
  curious person asks for the best soundcards for Linux.
  That something works in Linux does not mean
  that it's good for AUDIO recording and studio work
  in general.


so how does this look?

http://ardour.org/files/aspecs.png



Looks great :D Thinking about getting a 1818VSL now for use on my 
desktop and laptop..



Flo





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



--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] What KvR didn´t understand.

2013-01-07 Thread Florian Paul Schmidt

On 01/07/2013 06:24 PM, Nils Gey wrote:

On Mon, 07 Jan 2013 18:15:13 +0100
Ove Karlsen  wrote:


You are hereby banned from heaven.

You don't have the authority to ban anyone from heaven.
Only I have the authority because I am the only living descendent from the 
children of Jesus and Mohammed when they met on the holy toilet.


I am honoured that the most WTF-worthy troll-sh*t-storm I ever 
personally witnessed on LAD is a direct consequence of my little 
innocent announcement :D


Have fun flaming,
Flo

/me grabs another bag of popcorn

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [ANN] ladspamm - a small c++ library for handling LADSPA plugins

2013-01-07 Thread Florian Paul Schmidt

On 01/07/2013 12:05 PM, Ove Karlsen wrote:

Mentioning LADSPA in 2013 is wildly outdated don´t you think?



Yeah, I wondered whether to put the following remark at the top of the 
mail: "I know this is probably ten years too late..." but decided 
against it since I still find the simplicity of LADSPA to be appealing 
for a range of tasks..


[snipped the rest of the post as it wasn't related to ladspamm]

Have fun,
Flo


--
Florian Paul Schmidt
http://fps.io

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


[LAD] [ANN] ladspamm - a small c++ library for handling LADSPA plugins

2013-01-07 Thread Florian Paul Schmidt


Hi,

GIT repo:

https://github.com/fps/ladspamm

DOXYGEN docs (very minimal):

http://fps.github.com/ladspamm

For my own small side projects I needed a little c++ wrapper lib around 
LADSPA plugins. Since someone else might be interested in it, too, I put 
it on github.


ladspamm::world world;

ladspamm::plugin_instance instance(
 world.libraries[0]->plugins[0], 48000
);

instance.activate();

instantiates and activates the first found plugin in the first found 
library..


This is version 0.0.1 so expect bugs and missing features..

Have fun,
Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] Announcing PHASEX-0.14.96

2012-12-30 Thread Florian Paul Schmidt

On 12/30/2012 05:58 PM, SxDx wrote:

same error here. auto[conf|make] is not my thing,
so I don't know how to fix it.

The following seems to do the trick. Don't know if it's
the correct solution though.

diff --git a/src/Makefile.am b/src/Makefile.am
index 2bd2cbd..c4c740e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -52,7 +52,7 @@ endif
  
  AM_CFLAGS   = @PHASEX_CFLAGS@

  AM_CPPFLAGS = $(EXTRA_CPPFLAGS) @PHASEX_CPPFLAGS@
-AM_LDFLAGS  = $(INTLLIBS) @PHASEX_LIBS@
+phasex_LDADD= $(INTLLIBS) @PHASEX_LIBS@
  
  
  clean-local:



That works indeed (for others: you need to run configure again, after 
this).. Dunno if it's the right thing to do.


Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] Announcing PHASEX-0.14.96

2012-12-30 Thread Florian Paul Schmidt

On 12/30/2012 11:38 AM, Florian Paul Schmidt wrote:

On 12/30/2012 05:42 AM, William Weston wrote:

Happy New Year!


To you, too :D





Sources are available via git:

 git clone https://github.com/williamweston/phasex.git


Sadly the build fails. After installing all dependencies indicated by 
configure I get this (sorry, thunderbird has started messing up 
formatting heavily at some point in the past):




http://pastesite.com/86896

Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] Lv2 Toolkit v1.0.3 (lvtk) Released

2012-12-22 Thread Florian Paul Schmidt

On 12/22/2012 04:25 AM, Michael Fisher wrote:

Hello LAD,

LVTK v1.0.3 is out.  For those who aren't already aware, LVTK is the
successor to lv2-c++-tools.

Info and source download:
http://lvtoolkit.org/releases/lvtk-v1-0-3

Important Fixes:
- Fixed UI compiler errors with -Wl,nodelete.
- Accurate MIDI triggering in the Synth base class
- Fixed GtkUI mixin bug that was causing crashes when a plugin is
unloaded while UI is still open.



Looks very interesting, complete with documentation, etc. Good job :D 
Will try this out for the Echo-State-Network synth I'm working on :D


Flo

--
Florian Paul Schmidt
http://fps.io

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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-12 Thread Florian Paul Schmidt

Hi Kjetil, thanks for your response :D

On 11/12/2012 09:52 AM, Kjetil Matheussen wrote:

processing. But an often needed use case is just a linear chain of
effects which in radium involves lots of clicking and shifting nodes
around to keep the graph in an orderly state. In renoise you have a
linear DSP chain per track.

http://tutorials.renoise.com/wiki/Track_DSPs

This is really useful and allows for quick exploring of sounds. In an
ideal world we could have the cake and eat it, too. I.e. have a full
graph for complex situations and a per Instrument linear effects chain
which facilitates easy adding/removing/reordering of effects..


-  I really dig the ability to have a graph of nodes for audio

I've tried to have one's cake and eat it too. :-)

* If you right click on a connection between two object, the new object
  is inserted in between those two objects.
* If you drop an object on a connection, the object will insert itself
  in between those two objects.
* If you delete an object in between two other objects, the connections
  on both sides will connect.

These tricks should make the number of operations needed to edit a linear
chain of effects similar to Renoise.



Yes, it makes editing the graph a bit easier, but it doesn't rival the 
ease of operation that a linear view provides for the often needed 
usecase of linear effect chains, since I find myself reordering the 
nodes of the graph quite often to keep the graph tidy. I urge you to try 
this out in Renoise and compare the workflow with radium for that usecase.


BTW: Having these operations as you outlined above is similar to how 
Blender does its node graph, which is very useful and a feature which I 
would like to see in Ingen, too :D






- Renoise also has the notion of Meta Devices of which some
functionality can be replaced by having a full graph of nodes, but
again it's just very usable to just throw an LFO device into the
effects chain which modulates some effect parameter..

http://tutorials.renoise.com/wiki/Meta_Devices



Thanks, that's interesting.


Once I discovered that in Renoise it made adding some variation to a 
track very simple :D Also triggering/modifying effects parameters on 
track events like note on/off, etc. is very useful, too..






- Renoise also has this nice edit step feature which I haven't found
in radium yet. Press, for example, Ctrl-4, and after you enter a note
the cursor jumps to the 4th line below it. This allows for super easy
filling e.g. a Bassdrum/Hihat pattern. Go to the first line of the
pattern on the Bass drum track and just hold Y (C note) and it fills
the pattern. Then go to line 3 on the Hihat track and hold down Y to
fill hihats on the off beats..



Great tip. Shouldn't be too hard to implement.


Cool :D



- On my laptop screen estate is precious. While I like the ability to
use F7, F8, F9, F10 to toggle the different sections of the GUI I'd
really prefer to have these shortcuts to show the section exclusively.
E.g.

F7, F8, F9. F10 - switch to the respective Part of the GUI and show
it only. Pressing it again will toggle back to showing the selection
of views as by the point below...

Shift + F7, F8, ... - Toggle the respective part of the GUI



That sounds simple. I'll try that.
You can also define your own keyboard configuration by editing 
bin/keybindings.conf.
There are no functions available to show a section exclusively yet 
though, but I'll

add it.



Cool, thanks for that :D Also it's good to hear that the key bindings 
are configurable. So I will twiddle those a bit..





- It would be nice to have tooltips over each element of the GUI.
What are these sliders at the top of each track, etc? How do the lanes
right of the note lanes work? It would make the GUI more discoverable



Sometimes, you get help in the text at the bottom left of the screen.
It will tell you that those two sliders are for volume and panning.
It also tells you what lines right to the note track are.


Ah OK, I must have just missed that..





- Sometimes focus is in e.g. the sample selection dialog of a sample
player and it's not really obvious how to get focus back to the note
track. Or at least I was sitting here confused for a bit. Maybe
allowing explicit clicking to control focus would meet some people's
expectations more?



Agreed.



- It would be super nice if one could double click a slider in an
Effect/Instrument control to enter a value per Text. This way one
could e.g. enter 750 precisely for a delay time.



Ok.


And finally I also have another question:

Whenever I enter a note in a block playback stops. Is that intended?
Is there a way to keep playback going while editing a block?



Yes, unfortunately. The player thread doesn't support having a note
list and so fort changing while playing. Doing so requires quite a bit 
of work,
which is probably better done by rewriting the player, which should be 
done anyway

for other reasons. Earlier, there were a hack implemented which stopped

Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 05:02 PM, Kjetil Matheussen wrote:


Great to hear! It would also be great if you let me know of features
you miss from Renoise in Radium.





OK, since you asked: :D some of these might also be the result of me 
misunderstanding radium..


-  I really dig the ability to have a graph of nodes for audio 
processing. But an often needed use case is just a linear chain of 
effects which in radium involves lots of clicking and shifting nodes 
around to keep the graph in an orderly state. In renoise you have a 
linear DSP chain per track.


http://tutorials.renoise.com/wiki/Track_DSPs

This is really useful and allows for quick exploring of sounds. In an 
ideal world we could have the cake and eat it, too. I.e. have a full 
graph for complex situations and a per Instrument linear effects chain 
which facilitates easy adding/removing/reordering of effects..


- Renoise also has the notion of Meta Devices of which some 
functionality can be replaced by having a full graph of nodes, but again 
it's just very usable to just throw an LFO device into the effects chain 
which modulates some effect parameter..


http://tutorials.renoise.com/wiki/Meta_Devices

- Renoise also has this nice edit step feature which I haven't found in 
radium yet. Press, for example, Ctrl-4, and after you enter a note the 
cursor jumps to the 4th line below it. This allows for super easy 
filling e.g. a Bassdrum/Hihat pattern. Go to the first line of the 
pattern on the Bass drum track and just hold Y (C note) and it fills the 
pattern. Then go to line 3 on the Hihat track and hold down Y to fill 
hihats on the off beats..


- On my laptop screen estate is precious. While I like the ability to 
use F7, F8, F9, F10 to toggle the different sections of the GUI I'd 
really prefer to have these shortcuts to show the section exclusively. E.g.


F7, F8, F9. F10 - switch to the respective Part of the GUI and show it 
only. Pressing it again will toggle back to showing the selection of 
views as by the point below...


Shift + F7, F8, ... - Toggle the respective part of the GUI

- It would be nice to have tooltips over each element of the GUI. What 
are these sliders at the top of each track, etc? How do the lanes right 
of the note lanes work? It would make the GUI more discoverable


- Sometimes focus is in e.g. the sample selection dialog of a sample 
player and it's not really obvious how to get focus back to the note 
track. Or at least I was sitting here confused for a bit. Maybe allowing 
explicit clicking to control focus would meet some people's expectations 
more?


- It would be super nice if one could double click a slider in an 
Effect/Instrument control to enter a value per Text. This way one could 
e.g. enter 750 precisely for a delay time.


And finally I also have another question:

Whenever I enter a note in a block playback stops. Is that intended? Is 
there a way to keep playback going while editing a block?


Thanks and Regards,
Flo
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

For me it doesn't. But just to be totally clear:


- open radium
- enter some notes
- hit right meta + space

The block plays once and then playback ends at the end of the block



That's very strange. Does the same happen if you select "Play Block" 
from the menues?


How about Continue Block (Right Shift + Space) ? Does it loop?

And what if you have a song with more than one block in the playlist 
(for instance the

demo song), does it play more than one block?


Actually false alarm. I thought right meta was Alt-Gr on german 
keyboards. But Alt-Gr + Space is mapped to Play Song from top. It seems 
I don't have a right meta..


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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 08:44 PM, Kjetil Matheussen wrote:



Just simply looping a block (to e.g. fiddle with automation, effects
parameters, etc.), without having to press right meta - space all over
again. :D Looping a range of lines in a block would be useful, too, I
guess...




You mean loop the whole block? It's actually impossible not to loop the
block... Doesn't it loop?




For me it doesn't. But just to be totally clear:

- open radium
- enter some notes
- hit right meta + space

The block plays once and then playback ends at the end of the block

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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 08:08 PM, Kjetil Matheussen wrote:



Flo

P.S.: Another question: Is there a way to loop a pattern?


You mean, for instance, loop between line 10 and 20? No, there isn't.
Do you need it as part of a song (for instance, look an area 5 times),
or just as a way to conveniently listen to a specific part of a block 
(pattern)?


If the latter, you can mark the playing start line by pressing Left 
Meta + B.

Then you can press Left Meta + Space to start playing from that line.



Just simply looping a block (to e.g. fiddle with automation, effects 
parameters, etc.), without having to press right meta - space all over 
again. :D Looping a range of lines in a block would be useful, too, I 
guess...


Just a quick heads up: This program looks really promising. I stumbled 
over it earlier, but it seems only with this release it has crossed the 
boarder of being really, really useful for me (Effects, instruments, 
samples, etc.)... Thanks for hacking it up :D


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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 07:31 PM, Kjetil Matheussen wrote:


http://files.renoise.com/demo/Renoise_2_8_1_Demo_x86_64.tar.bz2

in the Kicks folder..


These samples are included in the renoise demo download..

Thank you. I can reproduce that. But it's only happen for certain 
samples,
and it doesn't matter how many you have already played before. Try to 
open

Kick06.flac directly, and it will freeze. As far as I can see, it's
either something wrong with Kick06.flac, or something wrong with 
libsndfile,

or I've misunderstood how libsndfile works.
sf_readf_float returns 0 before the file is fully read, which it 
should not.

I've cc-ed Erik de Castro Lopo. Hopefully he can shed some light on this.

It's simple to workaround this though. I'll push a new version now.


OK, cool. Thanks :D Another tiny issue: It seems to me that the sample 
auditioning seems to play the sample twice the first time one clicks it. 
The second time one clicks it it gets played only once.. Maybe it's just 
the first buffer of it repeated. I use a large period size in jack and 
maybe that's why it's audible (2048 frames).


To reproduce:

Create a new sample player
Navigate to some folder containing .wavs with a sharp attach (to make it 
audible)
Single click a sample (attack gets played twice - a slight "stutter" is 
audible)

Single click the same sample again (it plays fine now)

Flo

P.S.: Another question: Is there a way to loop a pattern?
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 06:57 PM, Florian Paul Schmidt wrote:

P.S.: How to disconnect two nodes in the audio routing window? :D


Ah, found it in the text delivered by the Help button :D
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 06:55 PM, Kjetil Matheussen wrote:



Going through my sample collection in the sample player makes radium
hang after the third or fourth sample..


What exactly do you do? Does pressing the down key 3-4 times in a folder
of flac sound files cause the program to hang?



Click on track header -> Create new sample player. Navigate to folder, 
single click a few to audition them. On the third auditioning it hangs..





Let's see if I can get a
trace. I did, but it doesn't tell me too much..

file: Pressed "Kick06.flac2ch, 20kB"
Header id says it is not an xi instrument: "fLaC".
Num channels: 2

[Here it hangs]



Maybe you could send your samples privately. I've tried
to reproduce by browsing some flac files, but it doesn't hang
here.


These samples are included in the renoise demo download..

http://files.renoise.com/demo/Renoise_2_8_1_Demo_x86_64.tar.bz2

in the Kicks folder..

Flo

P.S.: How to disconnect two nodes in the audio routing window? :D
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 06:21 PM, Florian Paul Schmidt wrote:

On 11/11/2012 06:13 PM, Kjetil Matheussen wrote:

On 11.11.2012 17:40, Florian Paul Schmidt wrote:

On 11/11/2012 05:02 PM, Kjetil Matheussen wrote:


Great to hear! It would also be great if you let me know of features
you miss from Renoise in Radium.




Another small bugreport: Seemingly parsing of LADSPA_PATH is broken..
I had this in my environment:

LADSPA_PATH=/usr/lib/ladspa:/usr/local/lib/ladspa

Then it doesn't find the CALF plugin.. Using only /usr/lib/ladspa
fixed that..



Didn't think about having several paths separated by colons.
Fixed in git now.


Cool, another small thing (if I get on your nerves, let me know):

Going through my sample collection in the sample player makes radium 
hang after the third or fourth sample.. Let's see if I can get a 
trace. I did, but it doesn't tell me too much..


file: Pressed "Kick06.flac2ch, 20kB"
Header id says it is not an xi instrument: "fLaC".
Num channels: 2

[Here it hangs]


This seems to happen only with flac samples. They sound a bit weird in 
the playback, too..


Flo

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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 06:13 PM, Kjetil Matheussen wrote:

On 11.11.2012 17:40, Florian Paul Schmidt wrote:

On 11/11/2012 05:02 PM, Kjetil Matheussen wrote:


Great to hear! It would also be great if you let me know of features
you miss from Renoise in Radium.




Another small bugreport: Seemingly parsing of LADSPA_PATH is broken..
I had this in my environment:

LADSPA_PATH=/usr/lib/ladspa:/usr/local/lib/ladspa

Then it doesn't find the CALF plugin.. Using only /usr/lib/ladspa
fixed that..



Didn't think about having several paths separated by colons.
Fixed in git now.


Cool, another small thing (if I get on your nerves, let me know):

Going through my sample collection in the sample player makes radium 
hang after the third or fourth sample.. Let's see if I can get a trace. 
I did, but it doesn't tell me too much..


file: Pressed "Kick06.flac2ch, 20kB"
Header id says it is not an xi instrument: "fLaC".
Num channels: 2

[Here it hangs]

^CYou pressed Ctrl+C. Sending SIGINT signal to radium.

Program received signal SIGINT, Interrupt.
0x7516434e in sf_readf_float () from 
/usr/lib/x86_64-linux-gnu/libsndfile.so.1

(gdb) bt
#0  0x7516434e in sf_readf_float () from 
/usr/lib/x86_64-linux-gnu/libsndfile.so.1

#1  0x0059af8e in load_sample_with_libsndfile (data=0x264b120,
filename=0x25c63e8 
"/media/cbc5904f-b879-4bd4-937a-439cccb0f70c/Samples and 
Instruments/Renoise-Samples/Kicks/Kick06.flac")

at audio/Sampler_plugin.c:775
#2  0x0059c754 in load_sample (data=0x264b120,
filename=0x25c63e8 
"/media/cbc5904f-b879-4bd4-937a-439cccb0f70c/Samples and 
Instruments/Renoise-Samples/Kicks/Kick06.flac",

instrument_number=12) at audio/Sampler_plugin.c:827
#3  0x0059cd60 in set_new_sample (plugin=,
filename=0x25c63e8 
"/media/cbc5904f-b879-4bd4-937a-439cccb0f70c/Samples and 
Instruments/Renoise-Samples/Kicks/Kick06.flac",
instrument_number=, resampler_type=2) at 
audio/Sampler_plugin.c:934
#4  0x0048ab4d in Sample_requester_widget::handle_file_pressed 
(this=0x256f0d0, item_text=...)

at Qt/Qt_sample_requester_widget_callbacks.h:346
#5  0x0048b37b in Sample_requester_widget::handle_item_pressed 
(this=0x256f0d0, item_text=...)

at Qt/Qt_sample_requester_widget_callbacks.h:404
#6  0x0048bbe7 in 
Sample_requester_widget::on_file_list_itemPressed (this=0x256f0d0, 
item=0x217e440)

at Qt/Qt_sample_requester_widget_callbacks.h:464
#7  0x0048bb6b in 
Sample_requester_widget::on_file_list_currentItemChanged 
(this=0x256f0d0, current=0x217e440,

previous=0x2208d50) at Qt/Qt_sample_requester_widget_callbacks.h:460
#8  0x00472770 in Sample_requester_widget::qt_static_metacall 
(_o=0x256f0d0, _c=QMetaObject::InvokeMetaMethod, _id=5,

_a=0x7fffbd80) at Qt/mQt_sample_requester_widget_callbacks.h:69
#9  0x004728ac in Sample_requester_widget::qt_metacall 
(this=0x256f0d0, _c=QMetaObject::InvokeMetaMethod, _id=5,

_a=0x7fffbd80) at Qt/mQt_sample_requester_widget_callbacks.h:112
#10 0x768ee489 in QMetaObject::activate (sender=0x236e6b0, 
m=, local_signal_index=,

argv=0x7fffbd80) at kernel/qobject.cpp:3566
#11 0x7738bcdf in QListWidget::currentItemChanged 
(this=, _t1=0x217e440, _t2=0x2208d50)

at .moc/release-shared/moc_qlistwidget.cpp:247
#12 0x7738be0e in QListWidgetPrivate::_q_emitCurrentItemChanged 
(this=0x25bcda0, current=..., previous=...)

at itemviews/qlistwidget.cpp:1112
#13 0x768ee281 in QMetaObject::activate (sender=0x22ede60, 
m=, local_signal_index=,

argv=0x7fffbf40) at kernel/qobject.cpp:3547
#14 0x773798ea in QItemSelectionModel::currentChanged 
(this=, _t1=..., _t2=...)

at .moc/release-shared/moc_qitemselectionmodel.cpp:173
#15 0x773799e0 in QItemSelectionModel::setCurrentIndex 
(this=0x22ede60, index=..., command=...)

at itemviews/qitemselectionmodel.cpp:1175
#16 0x77328084 in QAbstractItemView::mousePressEvent 
(this=0x236e6b0, event=)

at itemviews/qabstractitemview.cpp:1682
#17 0x76e4d429 in QWidget::event (this=0x236e6b0, 
event=0x7fffcd90) at kernel/qwidget.cpp:8358
#18 0x7720d3b6 in QFrame::event (this=0x236e6b0, 
e=0x7fffcd90) at widgets/qframe.cpp:557
#19 0x7732189b in QAbstractItemView::viewportEvent 
(this=0x236e6b0, event=0x7fffcd90)

at itemviews/qabstractitemview.cpp:1644
#20 0x768da028 in 
QCoreApplicationPrivate::sendThroughObjectEventFilters (this=out>, receiver=0x237c020,

event=0x7fffcd90) at kernel/qcoreapplication.cpp:986
#21 0x76dfc85f in notify_helper (e=0x7fffcd90, 
receiver=0x237c020, this=0xf2dd10) at kernel/qapplication.cpp:4555
#22 QApplicationPrivate::notify_helper (this=0xf2dd10, 
receiver=0x237c020, e=0x7fffcd90) at kernel/qapplication.cpp:4531
#23 0x76e020bf in QApplication::notify (this=, 
r

Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 05:02 PM, Kjetil Matheussen wrote:


Great to hear! It would also be great if you let me know of features
you miss from Renoise in Radium.




Another small bugreport: Seemingly parsing of LADSPA_PATH is broken.. I 
had this in my environment:


LADSPA_PATH=/usr/lib/ladspa:/usr/local/lib/ladspa

Then it doesn't find the CALF plugin.. Using only /usr/lib/ladspa fixed 
that..


Flo


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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 04:30 PM, Kjetil Matheussen wrote:

Florian Paul Schmidt mista.tapas at gmx.net


fluid_sys.c:(.text+0x10fc): undefined reference to `readline'

bin/packages/fluidsynth-1.1.6/src/.libs/libfluidsynth.a(libfluidsynth_la-fluid_cmd.o): 


In function `fluid_shell_run':
fluid_cmd.c:(.text+0x1b06): undefined reference to `add_history'


Thanks, fixed in git:
https://github.com/kmatheussen/radium/archive/master.zip



Thanks a bunch man.. Now it builds and runs.. :D

Looking forward to getting the hang of it.. This looks pretty much like 
it could replace my current toy of choice Renoise, which sadly is closed 
source..


Flo


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


Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/10/2012 08:12 PM, Kjetil Matheussen wrote:


Source code:


http://dl.dropbox.com/u/4814054/radium-1.9.1.tar.gz


Hi, building from source sadly fails, too. make packages runs through 
fine, then during build:


g++ Qt/Qt_MainWindow.cpp -c `cat buildtype.opt` -DNOPAUSEPLAY 
-Ibin/packages/gc-7.2/include -IQt/ -I/usr/include/python2.7 -DGUIISQT 
-Imidi/rtmidi -DUSE_GFX_OP_QUEUE  -Werror=array-bounds -DUSE_QT_VISUAL=1 
-DUSE_GTK_VISUAL=0 -DUSE_QT_REQTYPE=1 -DUSE_GTK_REQTYPE=0 
-DUSE_QT_MENU=1 -DUSE_GTK_MENU=0 -DUSE_VESTIGE=0 -DUSE_QT4 
-DUSE_QIMAGE_BUFFER=1 -DQT_SHARED -DQT3_SUPPORT -I/usr/include/qt4 
-I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtCore 
-I/usr/include/qt4/QtGui -I/usr/include/qt4/QtNetwork 
-I/usr/include/qt4/QtSql -DQT_NO_OPENGL
g++ windows.o window_config.o list.o vector.o hashmap.o song.o blocks.o 
block_insert.o block_split.o block_delete.o block_properties.o tracks.o 
localzooms.o control.o lines.o font.o track_insert.o track_onoff.o 
settings.o notes.o notes_legalize.o wblocks.o wtracks.o sliders.o 
gfx_wblocks.o gfx_wblocks_reltempo.o gfx_statusbar.o 
gfx_tempotrackheader.o gfx_upperleft.o common.o gfx_wtracks.o 
gfx_wtrackborder.o gfx_wtext.o gfx_text.o gfx_lines.o gfx_point.o 
gfx_op_queue.o eventreciever.o reallines.o notestext.o trackreallines.o 
clipboard_range.o clipboard_range_calc.o clipboard_range_copy.o 
clipboard_range_paste.o clipboard_range_cut.o transpose.o backwards.o 
invert.o glissando.o pitchexpand.o clipboard_track_copy.o 
clipboard_track_paste.o clipboard_track_cut.o clipboard_tempos_copy.o 
clipboard_localzooms.o clipboard_block_copy.o clipboard_block_paste.o 
quantitize.o mouse.o mouse_wtrack.o mouse_wtrackheader.o 
mouse_tempoheader.o mouse_wtrackborder.o mouse_temponodeborder.o 
mouse_fxarea.o mouse_vellinenode.o mouse_vellineend.o 
mouse_vellinestart.o mouse_fxnode.o mouse_quantitize.o 
mouse_reltemposlider.o tbox.o area.o range.o debug.o memory.o 
placement.o t_gc.o cursor.o cursor_updown.o subtrack.o velocities.o 
pixmap.o scroll.o blts.o realline_calc.o gfx_subtrack.o LPB.o 
gfx_wtrackheaders.o gfx_wtrackheader_volpan.o gfx_slider.o 
reallines_insert.o gfx_shrink.o gfx_shrink_t.o gfx_request.o nodelines.o 
nodeboxes.o instruments.o patch.o fxlines.o fxlines_legalize.o 
blocklist.o scroll_play.o gfx_tempocolor.o reltempo.o temponodes.o 
tempos.o time.o time2place.o mouse_temponodes.o temponodes_legalize.o 
Ptask2Mtask.o player.o scheduler.o PEQrealline.o PEQmempool.o PEQblock.o 
PEQnotes.o PEQcommon.o playerclass.o player_startstop.o PEQvelocities.o 
PEQ_calc.o PEQfxs.o player_pause.o PEQ_type.o PEQ_calc_64bit.o 
PEQ_clock.o disk.o disk_fxs.o disk_wblock.o disk_localzooms.o 
disk_track.o disk_fx.o disk_fxnodelines.o disk_wtrack.o 
disk_temponodes.o disk_tempos.o disk_song.o disk_velocities.o 
disk_block.o disk_placement.o disk_stops.o disk_playlist.o disk_root.o 
disk_notes.o disk_lpbs.o disk_windows.o disk_warea.o disk_save.o 
disk_load.o disk_instrument.o disk_patches.o disk_slider.o undo.o 
undo_notes.o undo_fxs.o undo_temponodes.o undo_tempos.o undo_lpbs.o 
undo_notesandfxs.o undo_reallines.o undo_tracks.o undo_range.o 
undo_blocks.o undo_trackheader.o undo_reltempomax.o undo_maintempos.o 
undo_block_insertdelete.o undo_block_mergesplit.o undo_reltemposlider.o 
undo_playlist.o undo_patch.o undo_patchvoice.o undo_patchname.o 
undo_chip_position.o Qt_visual.o GTK_visual.o Qt_Main.o Qt_endprogram.o 
Qt_EventReceiver.o Qt_colors.o Qt_Menues.o Qt_Fonts.o Qt_ReqType.o 
Qt_PopupMenu.o qcolordialog.o Qt_Bs_edit.o Qt_instruments.o 
Qt_PluginWidget.o Qt_MyQSlider.o Qt_SliderPainter.o Qt_memory.o 
Qt_path_resolver.o Qt_settings.o Qt_MainWindow.o GTK_ReqType.o 
GTK_PopupMenu.o  Qt_soundfilesaver_widget_callbacks.o Qt_Semaphores.o 
radium_wrap.o api_common.o api_keyplay.o api_keyplayedit.o 
api_navigate.o api_noteedit.o api_support.o ad_noteadd.o wrapfunclist.o 
api_trackonoff.o api_zoom.o api_notemanipulate.o api_play.o 
api_clipboard.o api_undo.o api_various.o api_instruments.o 
api_requesters.o posix_settings.o posix_Player.o  X11_keyboard.o 
X11_error.o X11_disk.o X11_Qtstuff.o   disk_midi_fx.o 
disk_midi_i_plugin.o midi_fx.o midi_i_plugin.o midi_playfromstart.o 
midi_rtmidi.o RtMidi.o midi_i_input.o midi_menues.o zita_rev.o 
stk_flute.o stk_bowed.o stk_blow_bottle.o stk_bass.o stk_blow_hole.o 
stk_brass.o stk_clarinet.o stk_flute_stk.o stk_glass_harmonica.o 
stk_harpsi.o stk_modal_bar.o stk_NLF_eks.o stk_NLF_fm.o stk_piano.o 
stk_saxophony.o stk_sitar.o stk_tibetan_bowl.o stk_tuned_bar.o 
stk_uni_bar.o stk_voice_form.o faust_tapiir.o faust_system_eq.o 
faust_system_lowpass.o faust_system_lowshelf.o faust_system_highshelf.o 
faust_system_delay.o faust_multibandcomp.o audio_instrument.o 
SoundProducer.o Jack_plugin.o Bus_plugins.o VST_plugins.o 
Ladspa_plugins.o Sampler_plugin.o FluidSynth_plugin.o 
SoundPluginRegistry.o SoundPlugin.o Mixer.o get_windows_commandlines.o 
Envelope.o Resampler.o SoundFonts.o Smooth.o undo_audio_effect.o 
Sound

Re: [LAD] [ANN] Radium V1.9.1

2012-11-11 Thread Florian Paul Schmidt

On 11/11/2012 12:09 PM, Kjetil Matheussen wrote:

On 11.11.2012 12:00, Florian Paul Schmidt wrote:

On 11/11/2012 11:43 AM, Kjetil Matheussen wrote:

On 11.11.2012 11:38, Florian Paul Schmidt wrote:

Illegal instruction (core dumped)


Does your cpu have sse instructions?
(Hmm, I guess all 64 bit cpus have that)

I'll download ubuntu lts and install it in virtualbox. I tried the 
non-lts

version of ubuntu 12, and that worked, but lts seems to use an
older version of Qt, and perhaps have other differences as well.


Ah, here we go. I was just being stupid:



Thank you!
It seems like floorf crashes on your machine. (although I'm not
entirely sure the line number is correct since it was compiled with -O3)

Which CPU do you have?

And why does this happen?
Radium is compiled with "-O3 -mtune=generic -msse"
Shouldn't that make it run on all CPUs that have sse instructions?



Find /proc/cpuinfo below. Sadly I don't know the reason for this crash.. 
Maybe Fons knows something as it's in the Zita-Code?


Flo

fps@olive:~/local/opt/radium64_dist$ cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 16
model   : 10
model name  : AMD Phenom(tm) II X4 960T Processor
stepping: 0
microcode   : 0x1bf
cpu MHz : 800.000
cache size  : 512 KB
physical id : 0
siblings: 4
core id : 0
cpu cores   : 4
apicid  : 0
initial apicid  : 0
fpu : yes
fpu_exception   : yes
cpuid level : 6
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl 
nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lahf_lm 
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch 
osvw ibs skinit wdt nodeid_msr cpb npt lbrv svm_lock nrip_save pausefilter

bogomips: 6026.08
TLB size: 1024 4K pages
clflush size: 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate cpb

processor   : 1
vendor_id   : AuthenticAMD
cpu family  : 16
model   : 10
model name  : AMD Phenom(tm) II X4 960T Processor
stepping: 0
microcode   : 0x1bf
cpu MHz : 800.000
cache size  : 512 KB
physical id : 0
siblings: 4
core id : 1
cpu cores   : 4
apicid  : 1
initial apicid  : 1
fpu : yes
fpu_exception   : yes
cpuid level : 6
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl 
nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lahf_lm 
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch 
osvw ibs skinit wdt nodeid_msr cpb npt lbrv svm_lock nrip_save pausefilter

bogomips: 6026.53
TLB size: 1024 4K pages
clflush size: 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate cpb

processor   : 2
vendor_id   : AuthenticAMD
cpu family  : 16
model   : 10
model name  : AMD Phenom(tm) II X4 960T Processor
stepping: 0
microcode   : 0x1bf
cpu MHz : 800.000
cache size  : 512 KB
physical id : 0
siblings: 4
core id : 2
cpu cores   : 4
apicid  : 2
initial apicid  : 2
fpu : yes
fpu_exception   : yes
cpuid level : 6
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl 
nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lahf_lm 
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch 
osvw ibs skinit wdt nodeid_msr cpb npt lbrv svm_lock nrip_save pausefilter

bogomips: 6026.53
TLB size: 1024 4K pages
clflush size: 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate cpb

processor   : 3
vendor_id   : AuthenticAMD
cpu family  : 16
model   : 10
model name  : AMD Phenom(tm) II X4 960T Processor
stepping: 0
microcode   : 0x1bf
cpu MHz : 800.000
cache size  : 512 KB
physical id : 0
siblings: 4
core id : 3
cpu cores   : 4
apicid  : 3
initial apicid  : 3
fpu : yes
fpu_exception   : yes
cpuid level : 6
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm 3dnowe

Re: [LAD] [ot] A little help with fourier-transformations

2012-08-28 Thread Florian Paul Schmidt

Hi Julien,

On 8/28/12 3:36 PM, Julien Claassen wrote:

Hello Flo!
  Sorry, IRC is not very comfortable for me. Mail - as a strictly 
sequential - form of communication is much easier and in this case 
clearer tome. But thanks for the kind offer. Are you familiar with the 
basics of FT yourself?

  Warmly yours
Julien



Yep, it's a bit rusty, but I'm sure we might point you in the right 
directions. So just go ahead and ask :D


Flo


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


Re: [LAD] [ot] A little help with fourier-transformations

2012-08-28 Thread Florian Paul Schmidt

Hi,

come to #lad and mention the topic. We might be able to help ya out. 
Might be easier in IRC than per mail..


Flo

On 8/28/12 3:24 PM, Julien Claassen wrote:

Hello everyone!
  I have something not realted to Linux. It's mainly how to read a few 
things. Anyone knowledgeable about fourier-transformation in general 
here, who might wish to help me?
  Background is a university exam, that I have to take, but only 
having had the script and not having found the right information 
anywhere else, I'd like to know, how to read/speak a few things mainly.

  Thank you for being with me so far.
  Kindest regards
Julien

050e010d0f12010401-0405-0d09-030f12011a0f0d-
Such Is Life: Very Intensely Adorable;
Free And Jubilating Amazement Revels, Dancing On - FLOWERS!

   Find some music at   
http://juliencoder.de/nama/music.html
---
"If you live to be 100, I hope I live to be 95 and 37 days,
so I can be sure, there's someone at your site, who loves you."
(Not Winnie the Puh)
___
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] [Android|OT?] CamSynth - Just an experiment

2012-07-28 Thread Florian Paul Schmidt

On 07/28/2012 04:54 AM, Tim Westbrook wrote:
What hardware is required for this ? it won't install on my samung 
galaxy y - which has a camera, speaker and presumably mic. 



Ah, there might be something wrong with the manifest when I uploaded it 
to google play. Can you try the debug build


http://fps.io/~tapas/CamSynth.apk

Just open the link with the browser on your device..

Flo

P.S.: On a sidenote: Is your device x86 based? Because I build the 
jni-part only for arm..

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


Re: [LAD] Leslie and convolution

2012-07-26 Thread Florian Paul Schmidt

On 07/26/2012 07:04 PM, Julien Claassen wrote:

Hello Flo!
  OK, I'm with you so far. So I suppose, that it is possible to 
process the IR of a time-variant system. The question is: Is it done 
in any library already optimised for the audio domain?

  Thanks and best wishes
   Julien



I sense a misunderstanding. With a single constant kernel you can only 
model time-invariant systems. A Leslie is NOT time-invariant. I.e. the 
response changes with time (the speaker rotates). So what you could do 
as a workaround would be to get IRs from the Leslie at various 
positions. Then convolve your input signal with each of them and mix the 
outputs together with the mixing coefficients being a periodic function 
of time.. You could probably get away with calculating only a few of the 
convolutions if your mixing coefficients are sparse, i.e. you only 
crossfade between two consecutive (in time) output signals.. (keep in 
mind the window length of the convolution kernel, though)..


It's of course a tradeoff - You need quite a few IRs to make the 
transitions smooth.. But then it's just a matter of hacking some code 
around an existing convolution engine..


But this could be done with shelf solutions

Flo


=-=-=-=-=-=-=-=-=-=-=-=-
Such Is Life: Very Intensely Adorable;
Free And Jubilating Amazement Revels, Dancing On - FLOWERS!

==  Find my music at  ==
http://juliencoder.de/nama/music.html
.
"If you live to be 100, I hope I live to be 100 minus 1 day,
so I never have to live without you." (Winnie the Pooh)



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


Re: [LAD] Leslie and convolution

2012-07-26 Thread Florian Paul Schmidt
Convolution with a constant convolution kernel (constant over time) 
gives you the response of a time-invariant system to the input signal. A 
Leslie is clearly not time-invariant..


Flo

On 07/26/2012 06:51 PM, Julien Claassen wrote:

Hello everyone!
  I have just asked myself, if it is a good idea to use an IR of a 
Leslie for simulating a Leslie. Correct me, if I'm bloody stupid, but 
working on the basics of convolution, it doesn't look promising. Since 
you take the IR of the Leslie and then apply the full IR to each 
sample, meaning, that you might get more of a whirling reverb? Or is 
there another technique, to apply an IR and cycles. Just one "sample" 
of the IR to one sample of the input signal.
  If I am completely wrong, a simple no will suffice. My knowledge of 
this is basic. I've only got some knowledge from a lecture called 
"signal theory' to back me up and it should probably be called "an 
introduction to" or "basics of" at that. :-)

  Warm regards
 Julien

=-=-=-=-=-=-=-=-=-=-=-=-
Such Is Life: Very Intensely Adorable;
Free And Jubilating Amazement Revels, Dancing On - FLOWERS!

==  Find my music at  ==
http://juliencoder.de/nama/music.html
.
"If you live to be 100, I hope I live to be 100 minus 1 day,
so I never have to live without you." (Winnie the Pooh)
___
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] [Android|OT?] CamSynth - Just an experiment

2012-07-25 Thread Florian Paul Schmidt

On 7/25/12 10:15 AM, hermann meyer wrote:

Am 25.07.2012 08:50, schrieb Florian Paul Schmidt:


https://play.google.com/store/apps/details?id=io.fps.camsynth


Hi

I have just try it out, funny, indeed.

Drawback was that my handy slip into standby mode and the synth is 
still running, after switch it on again I found no way to stop it, it 
wasn´ t in the task manager, and the return button wouldn´ t stop it. 
So I need to de-install it, to stop cansynth.


Anyhow, thanks for a new toy for my android, and for the "Example 
Source" :-)




Ah ok.. Thanks for the bug report. I'll look into it..

Flo


greets
hermann


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


[LAD] [Android|OT?] CamSynth - Just an experiment

2012-07-24 Thread Florian Paul Schmidt


Hi,

I don't know if this is on-topic or off-topic - technically it runs on a 
linux, but then, maybe, just, no, no Android on LAD?? :D But anyways: I 
played a little with Android Development and hacked up a little 
experimental Synthesizer app.


https://github.com/fps/android_camsynth

https://play.google.com/store/apps/details?id=io.fps.camsynth

It's free and open source and renders 8 voices (on my LG-P500) with a 
trivial (and wrong :D) synthesis method where the voice gains are 
determined by the camera image at a 8 x 8 px resolution..


I guess it's somewhat a minimal project which can be instructive to some 
(the synthesis part is implemented in C via JNI). And the code is very 
small..


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


[LAD] Virtual Analog Filters | Fwd: [music-dsp] ANN: Book: The Art of VA Filter Design

2012-05-26 Thread Florian Paul Schmidt

Maybe this is of interest to one or the other :D

Flo

 Original Message 
Subject:[music-dsp] ANN: Book: The Art of VA Filter Design
Date:   Fri, 25 May 2012 10:54:25 +0200
From:   Vadim Zavalishin 
Reply-To: 	A discussion list for music-related DSP 


To: A discussion list for music-related DSP 



Hi all

This is kind of a cross-announcement from KVRAudio, but since there are
probably a number of different people on this list, I thought I'd
announce it here as well. Get it here:

http://ay-kedi.narod2.ru/VAFilterDesign.pdf
http://images-l3.native-instruments.com/fileadmin/ni_media/downloads/pdf/VAFilterDesign.pdf
http://www.discodsp.net/VAFilterDesign.pdf (thanks to "george" for
mirroring)

There is a discussion thread at
http://www.kvraudio.com/forum/viewtopic.php?t=350246

Regards,
Vadim

--
Vadim Zavalishin
Software Integration Architect | R&D

Tel +49-30-611035-0
Fax +49-30-611035-2600

NATIVE INSTRUMENTS GmbH
Schlesische Str. 29-30
10997 Berlin, Germany
http://www.native-instruments.com

Registergericht: Amtsgericht Charlottenburg
Registernummer: HRB 72458
UST.-ID.-Nr. DE 20 374 7747

Geschaeftsfuehrung: Daniel Haver (CEO), Mate Galic
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp 
links
http://music.columbia.edu/cmc/music-dsp
http://music.columbia.edu/mailman/listinfo/music-dsp

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


Re: [LAD] ganv build error: error: ISO C++ forbids declaration of ‘cairo_region_t’ with no type

2012-01-07 Thread Florian Paul Schmidt

On 01/07/2012 01:30 AM, Diego Simak wrote:

Hi all, I don't really know if this email should be directed to LAD, or
LAU or just Drobilla devs... anyway:

I'm trying to build Ingen from SVN using all LV2 files (packages,
extensions, tools, etc.) from SVN as well.
During ganv build stage I'm getting this error:

/home/diego/Desktop/ingen/drobilla-lad/ganv/ganv/canvas-base.h:259:2:
error: ISO C++ forbids declaration of ‘cairo_region_t’ with no type
/home/diego/Desktop/ingen/drobilla-lad/ganv/ganv/canvas-base.h:259:16:
error: expected ‘;’ before ‘*’ token

.and the build just fails.

I know that there's a ticket 792 [1] opened about this issue but I would
like to know if there is some simple solution to solve this error.
I'm on Ubuntu 10.04 with libcairo2-1.8.10.


maybe it's just missing an #include that declares the type?

Flo




Thank you very much.
Diego

[1]: http://dev.drobilla.net/ticket/792


___
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] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-14 Thread Florian Paul Schmidt

On 11/14/2011 10:53 PM, Ralf Mardorf wrote:


When playing those links several times, I also got sometimes no audio
output!

Anyway! Good music!


Weird. Something must be funky with my oggenc version..

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


Re: [LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-14 Thread Florian Paul Schmidt

On 11/14/2011 07:09 PM, Florian Paul Schmidt wrote:

On 11/14/2011 07:04 PM, gene heskett wrote:

On Monday, November 14, 2011 01:03:25 PM Florian Paul Schmidt did opine:


On 11/14/2011 05:01 AM, gene heskett wrote:

On Sunday, November 13, 2011 10:46:57 PM Florian Paul Schmidt did
opine:

Played with the pclos default .ogg player.


http://shirkhan.dyndns.org/~tapas/stella.ogg
I updated the example: Lessened the breathing to something like 10db 
and

added a bass:

http://shirkhan.dyndns.org/~tapas/stella_jiss.ogg


But now the overall level is -50db.  I can just barely hear the 
.ogg.  Same

player.



Really? That's weird.. hmm.. I suck.. ;D



BTW: the ogg plays perfectly fine here with mplayer..

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


Re: [LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-14 Thread Florian Paul Schmidt

On 11/14/2011 07:04 PM, gene heskett wrote:

On Monday, November 14, 2011 01:03:25 PM Florian Paul Schmidt did opine:


On 11/14/2011 05:01 AM, gene heskett wrote:

On Sunday, November 13, 2011 10:46:57 PM Florian Paul Schmidt did
opine:

Played with the pclos default .ogg player.


http://shirkhan.dyndns.org/~tapas/stella.ogg

I updated the example: Lessened the breathing to something like 10db and
added a bass:

http://shirkhan.dyndns.org/~tapas/stella_jiss.ogg


But now the overall level is -50db.  I can just barely hear the .ogg.  Same
player.



Really? That's weird.. hmm.. I suck.. ;D

Flo


https://github.com/fps/jiss/blob/master/wicked.lua

Sounds a bit more like music now :D

Flo


Nice clean sounding synth, but as an old BC engineer, it sounds like
there is a DBX-165 compressor that is badly adjusted in the output
path.  The whole thing is breathing about 30db  with the kicker drum,
and gain recovery is about half the drum period.  If you wanted that
effect, you got it in spades, but to these ears the compression is
way overdone and I think you will find it generates ear fatigue in
the average listener quickly.

I don't enjoy raining on anybodies parade that obviously has a lot of
work in creating a creative tool like this is intended to be, so
please take this as constructively as possible.


(wicked.lua code here with some omission of some chords at the start
and some remarks in comments added):

-- some stuff :D
require "jiss"
require "jissing"

-- create engine in stopped state
e = jiss.engine()

-- setup some state that the sequences later use
-- e:run can only be used when the engine is stopped..
-- as this is executed in non-RT context it's ok to
-- create some variables and tables here..
e:run([[

   bar = 0;
   min = 20;
   max = 80;
   stella = {

   range(min, 80, min7b5(E(4))),
   range(min, 80, min7b5(E(4))),

   -- cut away quite a bit here (see wicked.lua in git clone)
   :D

   range(min, 80, maj7s11(B(4)-1)),
   range(min, 80, maj7s11(B(4)-1))

   }

]])

-- this sequence can control the others since it's processed before
-- the others in the engine
-- events string is newline sensitive. in this case the events
-- on consecutive lines are spaced 1 second apart..
-- also: loop back to 0 at time t = 8 sec
tune = seq(e, "tune", loop_events(8, events_string(1, [[

   drums1:relocate(0.0); drums1:start_(); notes:relocate(0.0);

notes:start_()

   drums1:stop_();

]])))

-- manually start this sequence and add to the engine
tune:start()

-- note that a copy is appended to the engine
e:append(tune)


-- a sequence that controls the global variable bar to advance
through the song
play(e, seq(e, "control", loop_events(1, events_string(1, [[

   bar = bar + 1; bar = (bar % #stella);

]]


-- events at fixed times. loop at t = 0.75 sec
play(e, seq(e, "notes",
loop_events(0.75, {

   { 0.125, [[ for i = 1,4 do note_on(0, 24 +

stella[bar][math.random(#stella[bar])], 30 + math.random()*64) end
]]},

   { 0.5,   [[ for i = 1,2 do note_on(0, 24 +

stella[bar][math.random(#stella[bar])], 10 + math.random()*34) end ]]
} })))

-- a drum pattern
drums = [[

   note_on(1, 64, 127); note_on(2, 64, 127)
   note_on(2, 64, 127)
   note_on(2, 64, math.random(127))
   note_on(2, 64, math.random(127))
   note_on(2, 42, 110)
   note_on(2, 64, 127)
   note_on(2, 64, math.random(127))
   note_on(1, 64, 127); note_on(2, 64, 127)
   note_on(2, 64, math.random(127))

]]

play(e, seq(e, "drums1", loop_events(1, events_string(0.125/2,
drums



-- connect all sequence outputs to jass:in
connect(e,"jass:in")

-- run the whole thing
e:start()

-- wait for the user to press enter
io.stdin:read'*l'


Have fun,

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

Cheers, Gene

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


Cheers, Gene


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


Re: [LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-14 Thread Florian Paul Schmidt

On 11/14/2011 05:01 AM, gene heskett wrote:

On Sunday, November 13, 2011 10:46:57 PM Florian Paul Schmidt did opine:

Played with the pclos default .ogg player.


http://shirkhan.dyndns.org/~tapas/stella.ogg




I updated the example: Lessened the breathing to something like 10db and 
added a bass:


http://shirkhan.dyndns.org/~tapas/stella_jiss.ogg

https://github.com/fps/jiss/blob/master/wicked.lua

Sounds a bit more like music now :D

Flo


Nice clean sounding synth, but as an old BC engineer, it sounds like there
is a DBX-165 compressor that is badly adjusted in the output path.  The
whole thing is breathing about 30db  with the kicker drum, and gain
recovery is about half the drum period.  If you wanted that effect, you got
it in spades, but to these ears the compression is way overdone and I think
you will find it generates ear fatigue in the average listener quickly.

I don't enjoy raining on anybodies parade that obviously has a lot of work
in creating a creative tool like this is intended to be, so please take
this as constructively as possible.


(wicked.lua code here with some omission of some chords at the start and
some remarks in comments added):

-- some stuff :D
require "jiss"
require "jissing"

-- create engine in stopped state
e = jiss.engine()

-- setup some state that the sequences later use
-- e:run can only be used when the engine is stopped..
-- as this is executed in non-RT context it's ok to
-- create some variables and tables here..
e:run([[
  bar = 0;
  min = 20;
  max = 80;
  stella = {
  range(min, 80, min7b5(E(4))),
  range(min, 80, min7b5(E(4))),

  -- cut away quite a bit here (see wicked.lua in git clone) :D

  range(min, 80, maj7s11(B(4)-1)),
  range(min, 80, maj7s11(B(4)-1))
  }
]])

-- this sequence can control the others since it's processed before
-- the others in the engine
-- events string is newline sensitive. in this case the events
-- on consecutive lines are spaced 1 second apart..
-- also: loop back to 0 at time t = 8 sec
tune = seq(e, "tune", loop_events(8, events_string(1, [[
  drums1:relocate(0.0); drums1:start_(); notes:relocate(0.0);
notes:start_()




  drums1:stop_();

]])))

-- manually start this sequence and add to the engine
tune:start()

-- note that a copy is appended to the engine
e:append(tune)


-- a sequence that controls the global variable bar to advance through
the song
play(e, seq(e, "control", loop_events(1, events_string(1, [[
  bar = bar + 1; bar = (bar % #stella);
]]


-- events at fixed times. loop at t = 0.75 sec
play(e, seq(e, "notes",
loop_events(0.75, {
  { 0.125, [[ for i = 1,4 do note_on(0, 24 +
stella[bar][math.random(#stella[bar])], 30 + math.random()*64) end
]]},
  { 0.5,   [[ for i = 1,2 do note_on(0, 24 +
stella[bar][math.random(#stella[bar])], 10 + math.random()*34) end ]] }
})))

-- a drum pattern
drums = [[
  note_on(1, 64, 127); note_on(2, 64, 127)
  note_on(2, 64, 127)
  note_on(2, 64, math.random(127))
  note_on(2, 64, math.random(127))
  note_on(2, 42, 110)
  note_on(2, 64, 127)
  note_on(2, 64, math.random(127))
  note_on(1, 64, 127); note_on(2, 64, 127)
  note_on(2, 64, math.random(127))
]]

play(e, seq(e, "drums1", loop_events(1, events_string(0.125/2, drums



-- connect all sequence outputs to jass:in
connect(e,"jass:in")

-- run the whole thing
e:start()

-- wait for the user to press enter
io.stdin:read'*l'


Have fun,

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


Cheers, Gene


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


Re: [LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-14 Thread Florian Paul Schmidt


Hi again, hijacking this thread to announce that I created a WIKI page 
to give a short sumary/tutorial on jiss here (WIP like everything in 
jiss right now):


https://github.com/fps/jiss/wiki

Answering your post further down:

On 11/14/2011 06:10 AM, gene heskett wrote:

Yeah, the compressor is added 'cause I happen to like that 30db

breathing sound ;D The wicked.lua jiss-script itself only sends the midi
notes out (in my case to jass which then goes through jack-rack with
reverb and compressor)

It's maybe not the best example to demonstrate jiss, cause it might put
many listeners off (especially with the clipping, too ;D). I'll upload a
cleaner rendition sometime tomorrow..

Thanks for the comment..


I almost didn't send that, but the sound reminded me of the sound I
inherited when I became the CE at WDTV-5, back in '84, here in West
Virginia.  That put me off so much I told the GM I hadn't heard so much
heavy breathing since shortly after lights out last night, when I asked for
permission to replace a brand new piece of gear with something I knew would
do the job and be essentially transparent to the listeners, an old CBS Labs
AudiMax, followed by, on the other end of the studio-transmitter microwave
path, an equally ancient CBS Labs FM Volumax.  They worked, but it was
extremely rare and took a trained ear, to detect that they were working.

As a C.E.T., I had fun keeping them running, first replacing all the small
electrolytics used for coupling capacitors with paper/mylar, which put a
stop to the twice annual rebuild by shotgunning all the caps, then
eventually the gain controlling tetrode nuvistor vacuum tube faded away
(they are made of pure unobtainium now) and I had to adapt a dual gate
Mosfet transistor to handle that.  But those 2 processors made it to about
50 years old by the time we switched to all digital in mid 2008.


I can never hope to have my software reach that age and still function 
;D Too much dirty hacking for that :D



Now I'm going to wander off topic, sort of.


Please feel free :D


Frankly, broadcasters sorely need such a characteristic device in the
digital path right now, and if some enterprising coder were to write that
code to interface with the usual EIA digital audio format, and build it
into a black box with the usual connectors on it, he/she would find
themselves busier than that famous cat on the equally famous tin roof until
they had filled up the market, which is, here in the states, 1500 to 2000
tv stations.  Multiply that by the number of channels the digital
broadcaster is using today, which for us is 4, and you'll have to hire help
building them for 2 or 3 years.


Sounds like a plan. I might actually look into that. I'm unemployed atm, 
that's why i have time to hack on jass and jiss, so creating something 
like that might be an option.. Even if it takes some serious 
research/hacking/board-design, etc.. Free time is almost all you need 
these days to create stuff. It's a bit more resource-intensive to create 
a box with the required interface, but that is kinda independent of the 
software actually running on the device..


> I don't know if there is all that much info out on the net on how the


Audimax worked, but surely any patents have long since expired.  In the
maintenance manual there was a rather complex test method to determine if
it was working correctly, but its only controls were input and output gain
T-pads so one could establish the correct internal levels for optimum
operation.

The Volumax is much easier to explain as it was designed to prevent HF over
modulation only, caused by the 17db of pre-emphasis the 75 microsecond
boost caused, allowing full mid-range levels, but rolling off the high end
to prevent the HF stuff from exceeding the allowed occupied bandwidth,
+-75khz for FM's and +-25khz for tv.  Its gain control response was sub
millisecond, both ways.  But in digital, no such control is needed, but we
surely, sorely need the equ of the Audimax.

In fact, that is one of the reasons I have remained subscribed to this
list.  If somebody does this, I will be in the GM's office asking for a
P.O. for 4 of them tomorrow morning.  So please somebody do it before I
fall over.  Now 77 YO&  diabetic, retired (insert laugh track here, they
never really let you) for 9 years, I still appear to have that sort of
clout on the 2nd floor.

Thanks Flo.




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


Re: [LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-13 Thread Florian Paul Schmidt

On 11/14/2011 05:01 AM, gene heskett wrote:

On Sunday, November 13, 2011 10:46:57 PM Florian Paul Schmidt did opine:

Played with the pclos default .ogg player.


http://shirkhan.dyndns.org/~tapas/stella.ogg


Nice clean sounding synth, but as an old BC engineer, it sounds like there
is a DBX-165 compressor that is badly adjusted in the output path.  The
whole thing is breathing about 30db  with the kicker drum, and gain
recovery is about half the drum period.  If you wanted that effect, you got
it in spades, but to these ears the compression is way overdone and I think
you will find it generates ear fatigue in the average listener quickly.

I don't enjoy raining on anybodies parade that obviously has a lot of work
in creating a creative tool like this is intended to be, so please take
this as constructively as possible.



Yeah, the compressor is added 'cause I happen to like that 30db 
breathing sound ;D The wicked.lua jiss-script itself only sends the midi 
notes out (in my case to jass which then goes through jack-rack with 
reverb and compressor)


It's maybe not the best example to demonstrate jiss, cause it might put 
many listeners off (especially with the clipping, too ;D). I'll upload a 
cleaner rendition sometime tomorrow..


Thanks for the comment..

Flo


(wicked.lua code here with some omission of some chords at the start and
some remarks in comments added):

-- some stuff :D
require "jiss"
require "jissing"

-- create engine in stopped state
e = jiss.engine()

-- setup some state that the sequences later use
-- e:run can only be used when the engine is stopped..
-- as this is executed in non-RT context it's ok to
-- create some variables and tables here..
e:run([[
  bar = 0;
  min = 20;
  max = 80;
  stella = {
  range(min, 80, min7b5(E(4))),
  range(min, 80, min7b5(E(4))),

  -- cut away quite a bit here (see wicked.lua in git clone) :D

  range(min, 80, maj7s11(B(4)-1)),
  range(min, 80, maj7s11(B(4)-1))
  }
]])

-- this sequence can control the others since it's processed before
-- the others in the engine
-- events string is newline sensitive. in this case the events
-- on consecutive lines are spaced 1 second apart..
-- also: loop back to 0 at time t = 8 sec
tune = seq(e, "tune", loop_events(8, events_string(1, [[
  drums1:relocate(0.0); drums1:start_(); notes:relocate(0.0);
notes:start_()




  drums1:stop_();

]])))

-- manually start this sequence and add to the engine
tune:start()

-- note that a copy is appended to the engine
e:append(tune)


-- a sequence that controls the global variable bar to advance through
the song
play(e, seq(e, "control", loop_events(1, events_string(1, [[
  bar = bar + 1; bar = (bar % #stella);
]]


-- events at fixed times. loop at t = 0.75 sec
play(e, seq(e, "notes",
loop_events(0.75, {
  { 0.125, [[ for i = 1,4 do note_on(0, 24 +
stella[bar][math.random(#stella[bar])], 30 + math.random()*64) end
]]},
  { 0.5,   [[ for i = 1,2 do note_on(0, 24 +
stella[bar][math.random(#stella[bar])], 10 + math.random()*34) end ]] }
})))

-- a drum pattern
drums = [[
  note_on(1, 64, 127); note_on(2, 64, 127)
  note_on(2, 64, 127)
  note_on(2, 64, math.random(127))
  note_on(2, 64, math.random(127))
  note_on(2, 42, 110)
  note_on(2, 64, 127)
  note_on(2, 64, math.random(127))
  note_on(1, 64, 127); note_on(2, 64, 127)
  note_on(2, 64, math.random(127))
]]

play(e, seq(e, "drums1", loop_events(1, events_string(0.125/2, drums



-- connect all sequence outputs to jass:in
connect(e,"jass:in")

-- run the whole thing
e:start()

-- wait for the user to press enter
io.stdin:read'*l'


Have fun,

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


Cheers, Gene


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


Re: [LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-13 Thread Florian Paul Schmidt

On 11/14/2011 04:21 AM, Florian Paul Schmidt wrote:


http://shirkhan.dyndns.org/~tapas/stella.ogg



sorry for clipping in recording :( turn your speakers down..

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


[LAD] [ANN] ALPHA: jiss - Jack Interactice Sequencing Software

2011-11-13 Thread Florian Paul Schmidt

this is totally prealpha-OMG-IT'S-FULL-OFF-FAIL-state..

https://github.com/fps/jiss

requirements: SWIG, libjack-dev and liblua5.1-dev on ubuntu..

compile with make (if it fails, you're on your own. it's a simple 
makefile though). then run in the build dir:


lua wicked.lua

if you have jass running with a piano sample on midi channel 0, a bass 
drum on channel 1 and a hihat on 2 you should get a rather weird 
interpretation of "stella by starlight", a jazz standard..


something like this (some effects added with jack-rack):

http://shirkhan.dyndns.org/~tapas/stella.ogg

(wicked.lua code here with some omission of some chords at the start and 
some remarks in comments added):


-- some stuff :D
require "jiss"
require "jissing"

-- create engine in stopped state
e = jiss.engine()

-- setup some state that the sequences later use
-- e:run can only be used when the engine is stopped..
-- as this is executed in non-RT context it's ok to
-- create some variables and tables here..
e:run([[
bar = 0;
min = 20;
max = 80;
stella = {
range(min, 80, min7b5(E(4))),
range(min, 80, min7b5(E(4))),

-- cut away quite a bit here (see wicked.lua in git clone) :D

range(min, 80, maj7s11(B(4)-1)),
range(min, 80, maj7s11(B(4)-1))
}
]])

-- this sequence can control the others since it's processed before
-- the others in the engine
-- events string is newline sensitive. in this case the events
-- on consecutive lines are spaced 1 second apart..
-- also: loop back to 0 at time t = 8 sec
tune = seq(e, "tune", loop_events(8, events_string(1, [[
drums1:relocate(0.0); drums1:start_(); notes:relocate(0.0); 
notes:start_()





drums1:stop_();

]])))

-- manually start this sequence and add to the engine
tune:start()

-- note that a copy is appended to the engine
e:append(tune)


-- a sequence that controls the global variable bar to advance through 
the song

play(e, seq(e, "control", loop_events(1, events_string(1, [[
bar = bar + 1; bar = (bar % #stella);
]]


-- events at fixed times. loop at t = 0.75 sec
play(e, seq(e, "notes",
loop_events(0.75, {
{ 0.125, [[ for i = 1,4 do note_on(0, 24 + 
stella[bar][math.random(#stella[bar])], 30 + math.random()*64) end
]]},
{ 0.5,   [[ for i = 1,2 do note_on(0, 24 + 
stella[bar][math.random(#stella[bar])], 10 + math.random()*34) end ]] }

})))

-- a drum pattern
drums = [[
note_on(1, 64, 127); note_on(2, 64, 127)
note_on(2, 64, 127)
note_on(2, 64, math.random(127))
note_on(2, 64, math.random(127))
note_on(2, 42, 110)
note_on(2, 64, 127)
note_on(2, 64, math.random(127))
note_on(1, 64, 127); note_on(2, 64, 127)
note_on(2, 64, math.random(127))
]]

play(e, seq(e, "drums1", loop_events(1, events_string(0.125/2, drums



-- connect all sequence outputs to jass:in
connect(e,"jass:in")

-- run the whole thing
e:start()

-- wait for the user to press enter
io.stdin:read'*l'


Have fun,

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


Re: [LAD] [LAU] [ANN] Jass-0.9 - Jack Simple Sampler

2011-11-12 Thread Florian Paul Schmidt

Just a quick followup here's version 0.9.1 with some important bugfixes.

http://shirkhan.dyndns.org/~tapas/jass-0.9.1.tar.bz2

Also jack_session support should be optional now (specify 
-DNO_JACK_SESSION=1 on the cmake commandline)


Flo

On 11/11/2011 08:30 PM, Florian Paul Schmidt wrote:


Hi,

I spent a few hours here and there to work on jass. Thus I give you 
release 0.9 which is fairly feature complete. But it might still have 
a gazillion of bugs. So please test, before I go 1.0..


http://shirkhan.dyndns.org/~tapas/Jass-0.9.tar.bz2

Jass - A Jack Simple Sampler

Qt4-, libsamplerate-, libsndfile-, jack_midi-, jack_session-, 
ladish-L1-enabled sampler..


Changes (AFAICT):

* graphical editors for most parameters (those can be resized to suite 
your needs)

  * waveform display to set sample start/end, loop start/end
  * keyboard widget to set note, min note and max note
  * a retarded dial_widget that is barely usable :D
* global voice allocation (you can set the global polyphony per setup 
in the xml file

* ADSR envelope that actually works
* show/hide some parameter sections

Screenshot (showing all parameter editors):

http://i.imgur.com/Ssc4F.png

Regards,
Flo
___
Linux-audio-user mailing list
linux-audio-u...@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user


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


[LAD] [ANN] Jass-0.9 - Jack Simple Sampler

2011-11-11 Thread Florian Paul Schmidt


Hi,

I spent a few hours here and there to work on jass. Thus I give you 
release 0.9 which is fairly feature complete. But it might still have a 
gazillion of bugs. So please test, before I go 1.0..


http://shirkhan.dyndns.org/~tapas/Jass-0.9.tar.bz2

Jass - A Jack Simple Sampler

Qt4-, libsamplerate-, libsndfile-, jack_midi-, jack_session-, 
ladish-L1-enabled sampler..


Changes (AFAICT):

* graphical editors for most parameters (those can be resized to suite 
your needs)

  * waveform display to set sample start/end, loop start/end
  * keyboard widget to set note, min note and max note
  * a retarded dial_widget that is barely usable :D
* global voice allocation (you can set the global polyphony per setup in 
the xml file

* ADSR envelope that actually works
* show/hide some parameter sections

Screenshot (showing all parameter editors):

http://i.imgur.com/Ssc4F.png

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


Re: [LAD] jack session compatible applications?

2011-09-18 Thread Florian Paul Schmidt

On 09/18/2011 01:40 PM, Florian Paul Schmidt wrote:

On 09/17/2011 08:03 PM, Rui Nuno Capela wrote:

On 09/17/2011 06:29 PM, m.wolkst...@gmx.de wrote:


list of jack-session supporting applications:



* hydrogen0.9.6 (svn head)
* qtractor >= 0.4.6 (as jack-session participant)
* qjackctl >= 0.3.7 (as jack-session manager)
* jass (jass session participant)
* ardour 3 (jass session participant)



haha, i meant jack session ;D


flo


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


Re: [LAD] jack session compatible applications?

2011-09-18 Thread Florian Paul Schmidt

On 09/17/2011 08:03 PM, Rui Nuno Capela wrote:

On 09/17/2011 06:29 PM, m.wolkst...@gmx.de wrote:


list of jack-session supporting applications:



* hydrogen0.9.6 (svn head)
* qtractor >= 0.4.6 (as jack-session participant)
* qjackctl >= 0.3.7 (as jack-session manager)
* jass (jass session participant)
* ardour 3 (jass session participant)

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


Re: [LAD] [ANN] QXGEdit 0.1.1 slipped out!

2011-09-17 Thread Florian Paul Schmidt

On 09/17/2011 07:08 PM, Rui Nuno Capela wrote:

Yay!

It's been a great summer and, as always, good things never last 
longer. I remember two years ago when it made its premiere, also after 
a great summer vacation and a pretty longer and rather undercover 
existence. Two years have gone by now, there's nothing to be startling 
with. All that's about to say:


  QXGEdit 0.1.1 slipped out!

If you're puzzled what this is, then don't worry nor go any further. 
This is just one extreme-niche piece of software program I've made for 
my own personal usage. But others may also feel compelled to try it 
out. I'm doin'g it just because I can :)


Now, already in its third public release, QXGEdit is a XG instrument 
editor, specially dedicated to the elderly Yamaha DB50XG. Yes, this is 
all synth-eldercare, if I may punch that line without the slightest 
lack of respect. How could it be? This is the best evidence I can show 
to the world how I love this piece of junk ;)


Only for the ones who know what I'm talking about ;)



OY cool, I still have a Yamaha DB50XG daughterboard.. I might reactivate 
it if i find a soundcard that has the fitting connector..


Flo


Website:

  http://qxgedit.sourceforge.net

Project page:

  http://sourceforge.net/projects/qxgedit

Downloads:

- source tarball:
  http://downloads.sourceforge.net/qxgedit/qxgedit-0.1.1.tar.gz

- source package (openSUSE 11.4):

http://downloads.sourceforge.net/qxgedit/qxgedit-0.1.1-3.rncbc.suse114.src.rpm 



- binary package (openSUSE 11.4):

http://downloads.sourceforge.net/qxgedit/qxgedit-0.1.1-3.rncbc.suse114.i586.rpm 



http://downloads.sourceforge.net/qxgedit/qxgedit-0.1.1-3.rncbc.suse114.x86_64.rpm 



Weblog (upstream support):

  http://www.rncbc.org

License:

  QXGEdit is free, open-source software, distributed under the terms 
of the GNU General Public License [6] (GPL) version 2 or later.


Change-log:

- Make sure Uservoice elements are selected only when available.
- Debugging stacktrace now applies to all working threads.
- libX11 is now being added explicitly to the build link phase, as 
seen necessary on some bleeding-edge distros eg. Fedora 13, Debian 6.
- Moving from old deprecated Qt3'ish custom event post handling into 
regular asynchronous signal/slot strategy.

- General standard dialog buttons layout is now in place.


Enjoy.
--
rncbc aka Rui Nuno Capela
rncbc at rncbc dot org
http://www.rncbc.org
___
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] Inter thread Communication: Design Approach

2011-09-04 Thread Florian Paul Schmidt

On 09/04/2011 02:42 AM, Paul Davis wrote:

the issues with the performance of boost::function are reasonably well
known and were well documented in the article that florian linked to,
along with a much better performing drop-in replacement.


Correction: It wasn't me ;D It was Pedro Alves who posted that link. I 
was not aware of these performance issues. And in my usecase they are 
irrelevant, so I'll stick with boost::function. For other designs it 
might be worth reconsidering though..


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


Re: [LAD] Inter thread Communication: Design Approach

2011-09-02 Thread Florian Paul Schmidt

On 09/02/2011 05:13 PM, David Robillard wrote:

On Fri, 2011-09-02 at 10:36 +0200, Florian Paul Schmidt wrote:

On 09/01/2011 10:37 PM, Harry van Haaren wrote:

[...]

Coupled with a poor man's garbage collection scheme using
boost::shared_ptr's this was a quite quick way to hack up jass. There's
no need to introduce new types if you want to do something new. Actually
there's only exactly one type that gets passed through the command
ringbuffer and that is boost::function. See e.g.

Careful doing this, note that dropping the last shared_ptr to an object
is NOT real-time (it calls delete), even if destroying the actual object
is.



yeah. that's why there's a extra reference stored in a list whenever an 
(disposable) object is created.. This list is traversed periodically 
from within the GUI thread to check whether any one's object refcount 
has dropped to 1 (not 0) and only then is that last reference removed 
from the list causing the ref count to go to 0 and the object finally 
being deleted (in the GUI thread)..


Note that all objects the engine manages in jass are stored in 
disposable which forces them to be allocated through the factory 
function that always stores an extra reference in the list..


Regards,
Flo

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


Re: [LAD] Inter thread Communication: Design Approach

2011-09-02 Thread Florian Paul Schmidt

On 09/02/2011 12:54 PM, Pedro Alves wrote:

boost::function serves this purpose for me in jass. To

create and pass a functor that assigns a new auditor generator to the
one in the engine, and then tells it to play i do for example:

write_blocking_command(assign(engine_.auditor_gen, p));
write_blocking_command(boost::bind(&engine::play_auditor,
boost::ref(engine_))); assign() is just a utility template to make
creating functors that do assignments easier.. boost::bind is used to
make all passed functors 0-ary (e.g for binding member functions to
their instance or binding arguments to the functor.. and
write_blocking_command is just a utility function that disables the GUI
until the acknowledgement from the engine has come back to the GUI,, The
command ringbuffer is just a ringbuffer holding
boost::fucntion  objects..

typedef ringbuffer  >  command_ringbuffer;

Examples from here:
https://github.com/fps/jass/blob/master/main_window.h
https://github.com/fps/jass/blob/master/assign.h
https://github.com/fps/jass/blob/master/engine.h Regards, Flo

There are alternatives (even predecessors) to boost.function that
are much faster and avoid the heap/new.  See
  for example.
(I used Don's original "Fastest Possible C++ Delegates" on an embedded
project years ago -- worked great).



Oh, thanks for the interesting read :D

Flo

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


Re: [LAD] Inter thread Communication: Design Approach

2011-09-02 Thread Florian Paul Schmidt

On 09/02/2011 12:04 PM, Fons Adriaensen wrote:

On Thu, Sep 01, 2011 at 03:54:03PM -0400, Paul Davis wrote:

On Thu, Sep 1, 2011 at 2:37 PM, Fons Adriaensen  wrote:


That's assuming that the event's virtual execute() has access to
all it needs. In all cases I've encountered that is not the case:
the event triggers something in the context where it is received
and processing it requires access to that context's data.
It's a problem for which I don't know a clean C++ solution.

depending on the exact type of thing you're talking about, isn't this
is place for closures, functors, etc. etc. ?

Yes, but

1. I find functor syntax extremely clumsy, involving the creation of
a specific derived functor class (from a template class) for each
one you need.

2. AFAIK (using the terminology of,
you can't have a TSpecificFunctor member in the event class and
initialise it, it has to be a TSpecificFunctor*. Which in turn
means that at the sender side you either have instances of all
possibly required functor classes available and assign the
TSpecificFunctor* in the event from one of them, or you have to
use new() to allocate one. The former is extremely clumsy, and
the latter shouldn't be done in a RT context.

What I'm missing in C++ is a built-in 'functor' type that can
simply be assigned from any object::method, with the user being
responsible for the existence of the object and for supplying the
right arguments at the time the functor is called.




boost::function serves this purpose for me in jass. To 
create and pass a functor that assigns a new auditor generator to the 
one in the engine, and then tells it to play i do for example:


write_blocking_command(assign(engine_.auditor_gen, p));
write_blocking_command(boost::bind(&engine::play_auditor, 
boost::ref(engine_))); assign() is just a utility template to make 
creating functors that do assignments easier.. boost::bind is used to 
make all passed functors 0-ary (e.g for binding member functions to 
their instance or binding arguments to the functor.. and 
write_blocking_command is just a utility function that disables the GUI 
until the acknowledgement from the engine has come back to the GUI,, The 
command ringbuffer is just a ringbuffer holding 
boost::fucntion objects..


typedef ringbuffer > command_ringbuffer;

Examples from here: 
https://github.com/fps/jass/blob/master/main_window.h 
https://github.com/fps/jass/blob/master/assign.h 
https://github.com/fps/jass/blob/master/engine.h Regards, Flo





Ciao,



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


Re: [LAD] Inter thread Communication: Design Approach

2011-09-02 Thread Florian Paul Schmidt

On 09/01/2011 10:37 PM, Harry van Haaren wrote:


Functors & closures, yeah I suppose... for now this system is working,
and quite easy to add new types to (does need a big recompile after a
change though.. as heaps of headers include the "Event" type, as its
pretty much to core of the Engine.. :)




Hmm, i used Functors and Closures in jass for passing commands to the 
realtime thread and wrote a small article about it.


http://178.63.2.231/~tapas/wordpress/?page_id=45

Coupled with a poor man's garbage collection scheme using 
boost::shared_ptr's this was a quite quick way to hack up jass. There's 
no need to introduce new types if you want to do something new. Actually 
there's only exactly one type that gets passed through the command 
ringbuffer and that is boost::function. See e.g.


https://github.com/fps/jass/blob/master/engine.h

and

https://github.com/fps/jass/blob/master/main_window.h

I agree that this method doesn't necessarily scale to other kind of 
applications and it also might be a bit more error prone than a well 
thought out event system using types that cover all bases, it does make 
for a quite good solution for an app of the scope of jass..


Have fun,
Flo




-Harry

PS: Nice article on "Duct tape programming":
http://www.joelonsoftware.com/items/2009/09/23.html Especially read
the paragraph beside the photo of the guy jumping



Taking a look..


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


Re: [LAD] [ANN] WIP - Jass, a Jack Simple Sampler

2011-08-12 Thread Florian Paul Schmidt

On 08/12/2011 07:49 PM, Dan Muresan wrote:

OK, here's version 0.1 of jass - jack simple sampler, the jack_session,
ladish L1, jack_midi, libsndfile, and libsamplerate enabled sample player

One problem I found was that generate_parser.sh is not included in the
build process. The jass.hxx you provide insists on xsdcxx == 3.3.0
*specifically*, with no backward (or at least future) compatibility.
HACKING mentions running generate_parser.sh if the schema changes;
instead, the most likely reason to run generate_parser.sh is the
user's installed xsdcxx version...

And, frankly, with or without the pre-generated jass.hxx from the
distribution, I still had to apt-get install xsdcxx -- so I don't see
the point of excluding generate_parser.sh from the build process...


Good point. I will adjust the build process..

Thanks for the feedback,
Flo
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [LAU] [ANN] WIP - JS-Wrap

2011-08-11 Thread Florian Paul Schmidt

On 08/11/2011 05:42 PM, Florian Paul Schmidt wrote:


In the tradition of releasing (or at least announcing)buggy, mostly 
untested software, here's:


js_wrap - a simple wrapper for non Jack-Session aware apps whose state 
can be fully specified by their commandline


Use

js_wrap -- gnome-terminal

if you want to get a gnome terminal in your jack_session.. Or

js_wrap -- a2jmidid

if you want to have the alsa to midi bridge in your jack_session..

Get the software via copy and paste of the following commands:


git clone https://github.com/fps/js_wrap
cd js_wrap
mkdir bld
cd bld
cmake ..
cd ..
make -C bld
sudo make install


sudo make -C bld install

Sorry


and get to fixing bugs ;D

In my experiments it worked just fine with gnome-terminal though there 
are some errors and the code is pretty much copy-pasta'd from 
lash_wrap... So expect breakage and panic and hilarity which will ensue..


Always use condoms,
Flo
___
Linux-audio-user mailing list
linux-audio-u...@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user


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


[LAD] [ANN] WIP - JS-Wrap

2011-08-11 Thread Florian Paul Schmidt


In the tradition of releasing (or at least announcing)buggy, mostly 
untested software, here's:


js_wrap - a simple wrapper for non Jack-Session aware apps whose state 
can be fully specified by their commandline


Use

js_wrap -- gnome-terminal

if you want to get a gnome terminal in your jack_session.. Or

js_wrap -- a2jmidid

if you want to have the alsa to midi bridge in your jack_session..

Get the software via copy and paste of the following commands:


git clone https://github.com/fps/js_wrap
cd js_wrap
mkdir bld
cd bld
cmake ..
cd ..
make -C bld
sudo make install

and get to fixing bugs ;D

In my experiments it worked just fine with gnome-terminal though there 
are some errors and the code is pretty much copy-pasta'd from 
lash_wrap... So expect breakage and panic and hilarity which will ensue..


Always use condoms,
Flo
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [ANN] WIP - Jass, a Jack Simple Sampler

2011-08-10 Thread Florian Paul Schmidt
OK, here's version 0.1 of jass - jack simple sampler, the jack_session, 
ladish L1, jack_midi, libsndfile, and libsamplerate enabled sample 
player app :D


http://shirkhan.dyndns.org/~tapas/jass-0.1.tgz

Screeny:

http://i.imgur.com/E2YDl.png

Changes:

* Multiple samples loading at once
* Fixed Parameter GUI -> engine passing
* Fixed Midi event handling
* Fixed Polyphony
* ADSR-envelope for gain
* Overall gain per sample
* File Save/Load Menu entries
* Added lots of useless GUI elements that will only make sense when 
someone hacks the functionality
* Added an unintuitive way to assign consecutive notes to consecutive 
samples (see Help->Help in Log)

* Libsamplerate support
* More stuff, I don't remember

Note that this is still alpha software..

Regards,
Flo

On 08/09/2011 04:13 PM, Florian Paul Schmidt wrote:


Hi,

I decided, on a whim [release early, release often], that the code is 
somewhat usable now. Grab the software via


git clone https://github.com/fps/jass.git

then read the INSTALL file..

https://github.com/fps/jass/blob/master/INSTALL

There might be quite a few kinks and development will stay active the 
next few days.. Patches for features/fixes gladly accepted..


A screenshot from just an hour ago or so:

http://i.imgur.com/xygf6.png

Quick Tut:

Shift-Doubleclick to audit a sample
Doubleclick to load it..

Known Bugs:
- Velocity mapping still broken (at least the GUI part)

TODO:

- Add nice piano widget to set note ranges and central note..
- Actually use libsamplerate to convert sample to jack samplerate

Regards,
Flo
___
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


[LAD] [ANN] WIP - Jass, a Jack Simple Sampler

2011-08-09 Thread Florian Paul Schmidt


Hi,

I decided, on a whim [release early, release often], that the code is 
somewhat usable now. Grab the software via


git clone https://github.com/fps/jass.git

then read the INSTALL file..

https://github.com/fps/jass/blob/master/INSTALL

There might be quite a few kinks and development will stay active the 
next few days.. Patches for features/fixes gladly accepted..


A screenshot from just an hour ago or so:

http://i.imgur.com/xygf6.png

Quick Tut:

Shift-Doubleclick to audit a sample
Doubleclick to load it..

Known Bugs:
- Velocity mapping still broken (at least the GUI part)

TODO:

- Add nice piano widget to set note ranges and central note..
- Actually use libsamplerate to convert sample to jack samplerate

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


Re: [LAD] someone can smash this seq24 bug?

2011-08-08 Thread Florian Paul Schmidt

On 08/07/2011 11:24 PM, Renato wrote:

Hello, seq24 is affected by this bug:

https://bugs.edge.launchpad.net/seq24/+bug/803385

basically with recent versions of jack, when jack transport is enabled,
seq24 doesn't start playing. This makes it practically unusable, which
is a real pity :(

any brave dev want to give him some love? eternal glory will ensue :)



What do you offer besides eternal glory? ;D Will take a look when i find 
time..


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


Re: [LAD] LAD] RT-Safe UI/Engine Decoupling using Functional

2011-08-07 Thread Florian Paul Schmidt

On 08/07/2011 10:05 PM, Paul Coccoli wrote:

On Sat, Aug 6, 2011 at 6:10 PM, Florian Paul Schmidt
  wrote:

On 08/07/2011 12:06 AM, Florian Paul Schmidt wrote:

Actually, type safety would go out of the window, as the signature of a
function is not really apparent from the symbol table. So some caution would
have to be used when sending commands, making sure that the types of
arguments are right. Before creating the boost::bind functor the raw
function pointer from dlsym would have to be cast to the right type.. Maybe
boost::bind would be the wrong approach here alltogether.. Will need to
think about it a bit more..

OMG, could this be the one single place where polish notation would have a
place? To clarify: Encode the signature of functions in the name of the
function and restrict yourself to several function signatures that cover the
kind of functions you want to expose. Then you could cast into the
appropriate type and again use boost::bind..

Ugly, am I on crack? Who knows? Going to party now. Laters,

Flo

In C++, isn't the signature of the function encoded in the symbol
table via name mangling?

This is not meant to imply that I think this is good idea...


True, except for the return type (as it's not used for function 
dispatching in C++). I guess if one really wanted one could try to do 
something crazy like that.. I don't know though, if the generity of the 
approach really counterweights the potential hazards.. :D


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


Re: [LAD] LAD] RT-Safe UI/Engine Decoupling using Functional

2011-08-06 Thread Florian Paul Schmidt

On 08/07/2011 12:06 AM, Florian Paul Schmidt wrote:

On 08/07/2011 12:03 AM, Florian Paul Schmidt wrote:
I guess though, that one could try a little dirty hack parsing the 
symbol table of the target process to simplify lookup of functions to 
call. Assume you want to be able to just send the rendering process a 
command via the network, like


["/filter_set_frequency", 1, 0.2]

(assuming OSC style commands)

meaning: call the function filter_set_frequency with the arguments 1 
and 0.2. where 1 is the number of the filter and 0.2 the frequency.. 
The rendering process would have a non-RT thread in which it receives 
network commands. The receiver process could parse the output of a 
dlsym function call on itself to get a function pointer to the 
function filter_set_frequency. Then it would use a boost::bind object 
to bind the arguments to it and pass this functor as command to the 
RT thread of the rendering process. No explicit hacking of command 
tables or what not, would be needed.. Member function handling would 
be a bit more difficult. I have to think about this a bit..


Actually, type safety would go out of the window, as the signature of 
a function is not really apparent from the symbol table. So some 
caution would have to be used when sending commands, making sure that 
the types of arguments are right. Before creating the boost::bind 
functor the raw function pointer from dlsym would have to be cast to 
the right type.. Maybe boost::bind would be the wrong approach here 
alltogether.. Will need to think about it a bit more..


OMG, could this be the one single place where polish notation would have 
a place? To clarify: Encode the signature of functions in the name of 
the function and restrict yourself to several function signatures that 
cover the kind of functions you want to expose. Then you could cast into 
the appropriate type and again use boost::bind..


Ugly, am I on crack? Who knows? Going to party now. Laters,

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


Re: [LAD] LAD] RT-Safe UI/Engine Decoupling using Functional

2011-08-06 Thread Florian Paul Schmidt

On 08/07/2011 12:03 AM, Florian Paul Schmidt wrote:
I guess though, that one could try a little dirty hack parsing the 
symbol table of the target process to simplify lookup of functions to 
call. Assume you want to be able to just send the rendering process a 
command via the network, like


["/filter_set_frequency", 1, 0.2]

(assuming OSC style commands)

meaning: call the function filter_set_frequency with the arguments 1 
and 0.2. where 1 is the number of the filter and 0.2 the frequency.. 
The rendering process would have a non-RT thread in which it receives 
network commands. The receiver process could parse the output of a 
dlsym function call on itself to get a function pointer to the 
function filter_set_frequency. Then it would use a boost::bind object 
to bind the arguments to it and pass this functor as command to the RT 
thread of the rendering process. No explicit hacking of command tables 
or what not, would be needed.. Member function handling would be a bit 
more difficult. I have to think about this a bit..


Actually, type safety would go out of the window, as the signature of a 
function is not really apparent from the symbol table. So some caution 
would have to be used when sending commands, making sure that the types 
of arguments are right. Before creating the boost::bind functor the raw 
function pointer from dlsym would have to be cast to the right type.. 
Maybe boost::bind would be the wrong approach here alltogether.. Will 
need to think about it a bit more..


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


Re: [LAD] LAD] RT-Safe UI/Engine Decoupling using Functional

2011-08-06 Thread Florian Paul Schmidt

On 08/06/2011 11:26 PM, Florian Paul Schmidt wrote:

On 08/06/2011 10:55 PM, Jeff McClintock wrote:

I'm just in the process of porting my plugin to a platform where the GUI
runs on Windows, but the Audio processing runs on an real-time optimized
Linux box.
  With the proliferation of iPads etc, I see this approach of mixing 
a cool
portable GUI with a Linux 'powerhouse' audio processor become more 
common in

studios.
  Surly passing functors (which are pointers?) to audio code running 
in a

separate address space can not work?



No, a functor (in c++-speak) is an object that has operator() and thus 
behaves in a way like a function (thus the suggestive name).. But you 
are right, with boost::bind you can _easily_ create functors that call 
preexisting functions (or member functions). And this is done via the 
address of the function.. And yeah, I think you are right about your 
assumption. For sending commands to another address space you don't 
get around serialization in some form, since you cannot just point the 
other process to the address of a function and tell it to run that 
function.. The different processes don't have this intricate knowledge 
of each other..


Now if C++ had some decent introspection calling a method in another 
process space might be more easily done (or rather: the serialization 
would become much simpler), but alas C++ lacks in that respect..


I guess though, that one could try a little dirty hack parsing the 
symbol table of the target process to simplify lookup of functions to 
call. Assume you want to be able to just send the rendering process a 
command via the network, like


["/filter_set_frequency", 1, 0.2]

(assuming OSC style commands)

meaning: call the function filter_set_frequency with the arguments 1 and 
0.2. where 1 is the number of the filter and 0.2 the frequency.. The 
rendering process would have a non-RT thread in which it receives 
network commands. The receiver process could parse the output of a dlsym 
function call on itself to get a function pointer to the function 
filter_set_frequency. Then it would use a boost::bind object to bind the 
arguments to it and pass this functor as command to the RT thread of the 
rendering process. No explicit hacking of command tables or what not, 
would be needed.. Member function handling would be a bit more 
difficult. I have to think about this a bit..


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


Re: [LAD] LAD] RT-Safe UI/Engine Decoupling using Functional

2011-08-06 Thread Florian Paul Schmidt

On 08/06/2011 10:55 PM, Jeff McClintock wrote:

I'm just in the process of porting my plugin to a platform where the GUI
runs on Windows, but the Audio processing runs on an real-time optimized
Linux box.
  With the proliferation of iPads etc, I see this approach of mixing a cool
portable GUI with a Linux 'powerhouse' audio processor become more common in
studios.
  Surly passing functors (which are pointers?) to audio code running in a
separate address space can not work?



No, a functor (in c++-speak) is an object that has operator() and thus 
behaves in a way like a function (thus the suggestive name).. But you 
are right, with boost::bind you can _easily_ create functors that call 
preexisting functions (or member functions). And this is done via the 
address of the function.. And yeah, I think you are right about your 
assumption. For sending commands to another address space you don't get 
around serialization in some form, since you cannot just point the other 
process to the address of a function and tell it to run that function.. 
The different processes don't have this intricate knowledge of each other..


Now if C++ had some decent introspection calling a method in another 
process space might be more easily done (or rather: the serialization 
would become much simpler), but alas C++ lacks in that respect..


Regards,
Flo


Jeff McClintock



From: Florian Paul Schmidt
Subject: [LAD] RT-Safe UI/Engine Decoupling using Functional
Programming and Reference Counted SmartPointers
To: linux-audio-dev@lists.linuxaudio.org
Message-ID:<4e3ca5a4.7060...@gmx.net>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Hi,

during the process of writing a new small jack sampler which fits my
workflow I came up with this little scheme to solve the UI/engine
decoupling problem. For the purpose of spreading the idea or
alternatively getting answers about how it's broken and sucks I decided
to write a little article describing it..

http://178.63.2.231/~tapas/wordpress/?page_id=45

The (largely unfinished and unusable) sampler project is here:

https://github.com/fps/jass

Let me have it..

Regards,
Flo


___
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] RT-Safe UI/Engine Decoupling using Functional Programming and Reference Counted SmartPointers

2011-08-06 Thread Florian Paul Schmidt

On 08/06/2011 04:23 AM, Florian Paul Schmidt wrote:

Hi,

during the process of writing a new small jack sampler which fits my 
workflow I came up with this little scheme to solve the UI/engine 
decoupling problem. For the purpose of spreading the idea or 
alternatively getting answers about how it's broken and sucks I 
decided to write a little article describing it..


http://178.63.2.231/~tapas/wordpress/?page_id=45

The (largely unfinished and unusable) sampler project is here:

https://github.com/fps/jass

Let me have it..


I guess I should mention the approach in a nutshell. Assiging a new 
generator (that plays a sample) to the first element of a std::vector of 
generators in the engine the UI would do e.g.:


engine.commands.write(assign(engine.gens->t[0], p));

where assign() is a function that builds a functor that dassigns the 
right argument to the left, p is a


boost::shared_ptr >

or with typedef

disposable_generator_ptr,

gens is a

boost::shared_ptr > > >

or with typedefs:

boost::shared_ptr >

or even shorter

disposable_generator_vector_ptr

Replacing the whole vector of generators with a new one (after e.g. 
loading a complete setup) wood look like:


engine.commands.write(assign(engine.gens, v);

where v would be a disposable_generator_vector_ptr.

Just calling the set_sample member of a generator would look like this:

engine.commands.write(&generator::set_sample, engine.gens->t[0]->t, s)

where s is a disposable_sample_ptr..

The ->t thingies show up, because every object is wrapped in a 
disposable which has a member t that is the "payload"..


I wonder if there's an even more elegant approach to cook down the 
verbosity a bit.. What you get, though, for the verbosity is the ability 
to call almost every member of every object in the engine's collection 
of objects without writing extra classes to define a command.. Such is 
the power of boost::bind and boost::function..


Flo

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


[LAD] RT-Safe UI/Engine Decoupling using Functional Programming and Reference Counted SmartPointers

2011-08-05 Thread Florian Paul Schmidt

Hi,

during the process of writing a new small jack sampler which fits my 
workflow I came up with this little scheme to solve the UI/engine 
decoupling problem. For the purpose of spreading the idea or 
alternatively getting answers about how it's broken and sucks I decided 
to write a little article describing it..


http://178.63.2.231/~tapas/wordpress/?page_id=45

The (largely unfinished and unusable) sampler project is here:

https://github.com/fps/jass

Let me have it..

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


Re: [LAD] prototype in header but declaration where?

2011-08-05 Thread Florian Paul Schmidt

On 08/05/2011 05:30 PM, Renato wrote:

Hi, very noob C question. I do this:

renato@acerarch /usr/include/alsa $ grep snd_seq_open *
seq.h:int snd_seq_open(snd_seq_t **handle, const char *name, int streams, int 
mode);
seq.h:int snd_seq_open_lconf(snd_seq_t **handle, const char *name, int streams, 
int mode, snd_config_t *lconf);

so I see that the function snd_seq_open has its prototype declared in seq.h... 
but
where is the actual function definition?


Do you have the sources? If not it is only in compiled form in 
libasound2.so, or whatever the lib is called on your box..


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


Re: [LAD] audio format abadie.jo

2011-07-07 Thread Florian Paul Schmidt

On 07/07/2011 01:39 AM, Tim E. Real wrote:

On July 6, 2011 07:11:49 pm Tim E. Real wrote:

Hi Florian. We meet again, on LAD!

Oops, you are not Florian the MusE devel?
Greetings anyway.
Tim.


Nah, I'm not, but be earthed greetling :D


___
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] audio format abadie.jo

2011-07-06 Thread Florian Paul Schmidt

On 06/29/2011 04:06 AM, pierre jocelyn andre wrote:

Bonjour,
j'ai créé un nouveau format audio destiné à linux. Je suis à la recherche
d'aide pour finir le langage C, pour tester, et pour créer une nouvelle
générationde carte audio. J'arrive à créer des fichier audio avec des voix
humaines de plusieurs Ko avec seulement 10 octets.
La page d'avancement de mon projet audio se trouve ici :
Http://www.letime.net/legere/index.html



Hi,

I think you'll get more responses if you state your text in english. 
Good luck,

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


  1   2   >