Re: [PD] 4-point interpolation changes timbre depending on sample rate

2021-05-04 Thread Clemens Wegener
I also think it makes sense to specify arguments to tabread~ (or delread~) to 
specify the interpolation.

Dan you are suggesting an api like this to manage code size and structuring.
I see, because when we put everything into the tabread~ (or delread~) class 
with just flags from arguments/messages, it would get hard to maintain.

E.g. for tabread:
So we would create a header „d_array.h" with the function declarations?
Should every interpolation type have its own function declaration or do we 
override for different types?
(A bit like an abstract class, but I don’t know how this works in C)
The definitions would still go into „d_array.c“?

Refactoring and testing this could take quite some time...


> Am 2021-05-04 um 04:35 schrieb Alexandre Torres Porres :
> 
> Em seg., 3 de mai. de 2021 às 12:52, Dan Wilcox  > escreveu:
> Maybe I'm opening a can of worms, but I could imagine tabread etc taking an 
> argument to specify which algorithm to use among a (small) list of those 
> available. The current algorithm would be the default so as not to break 
> existing patches. :)
> 
> I had suggested the same! ;) 
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> https://lists.puredata.info/listinfo/pd-list

___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] 4-point interpolation changes timbre depending on sample rate

2021-05-03 Thread Clemens Wegener
I think now would be a good place to pause the implementation and discuss 
if there is a need for this kind of algorithm in the PD community. 

We saw some use cases for the Whittaker-Shannon interpolation where
we gain in quality and/or speed. Namely waveguides and pitch shifters. 

Is there anything else, where we would like to use this interpolation kernel?
Like in general resampling?
In the tabread~ for sample playback?
Are there really quality or speed issues that we could solve there?

For our use case the code I submitted is good enough. But I would be happy 
to spend more time optimizing if there is a need / a broad use of that 
algorithm.
In that case we need another restructuring and some help from somebody
who is very proficient in writing pd source code. :)

Chuck, I commented your last message below!

> Am 2021-05-03 um 03:52 schrieb Charles Z Henry :
> 
> On Sun, May 2, 2021 at 4:28 PM Clemens  wrote:
>> 
>> When there is no aliasing to worry about, i might set the cutoff to pi
>> again...
>> On low sample rates (22kHz), the lower cutoff is definitely noticeable.
> 
> I like this thesis you posted earlier
> https://www2.spsc.tugraz.at/www-archive/downloads/Mueller11_DopplerSRC_0.pdf
> 
> f(at) <-> 1/|a|*F(w/a)
> This (and two formulas that follow) is listed as Smith's algorithm.  I
> actually got to speak with Julius Smith at the 2012 LAC about this
> formula.  I asked, can't we do any better in terms than O(a*n) number
> of computations for a>1?  He said nope!, but I still have some
> questions there.  Playback with speeds less than 1 always use O(n),
> rather than O(a*n).  I wrote an anti-aliasing external tabread4a~ that
> implements this formula per sample and works pretty well, except it
> becomes expensive when you transpose a few octaves up.

I guess that’s the code you are referring to (?):
https://lists.puredata.info/pipermail/pd-list/2007-03/048397.html 
<https://lists.puredata.info/pipermail/pd-list/2007-03/048397.html>

Is it using a lookup of the sync table at certain fixed points?
If so, would it be „compatible“ in the sense that these points are part 
of the lookup table in delreadsinc~?

> 
> For a variable delay line (like vd~), the paper's contents are more
> relevant and maybe you should consider writing a vdsinc~ object next
> (once you've optimized this one).  delread is more like a fixed,
> stationary delay line, and I think it's better to default as a literal
> interpolator (LP_SCALE = 1).

Ok. That’s what I thought as well. Still I would need to read a bit more  
about the subject to understand how the variable delay case relates to 
down-/upsampling. In tabread4a~ you derive the sampling factor from 
the difference in delay time, right?

> 
>> Btw. I just implemented sharing of the interpolation table of the
>> delreadsinc~ object according to your suggestions.
>> It counts the number of references and frees the pointer when no object
>> uses it anymore.
> 
>I read through the changes.  For those reading along see the rest
> at line 348 of d_delay.c at
> https://github.com/chairaudio/pure-data/blob/feature/delreadsinc/src/d_delay.c
> (in progress, current code re: the tables pasted below).
>1. I wonder is this global table properly scoped for Pd.  I
> seriously don't know.  But it could be used for multiple objects,
> vdsinc~, tabreadsinc~, etc So you ought to think about how it
> could be re-used between classes and choose a scalable approach now.

Good question. :) I’m not sure if Miller has suggestions or examples how 
global variables are handled in PD.

>2. I think the declared LP_SCALE variable is a bad approach as
> currently implemented.  You can't change it at runtime.  It can be
> used in the perform routine instead, with an additional argument to
> set the cutoff frequency per object.  This is also good for your
> testing, as you'll be able to put objects with different LP_SCALE
> values side-by-side for comparison.

That’s right, LP_SCALE should be tunable in real-time. 
I think that would need only little change to the code. 

>3. I'm convinced this is the right approach for making an optimal
> interpolator.  Adding more length pays off over upsampling, because
> you evaluate the convolution at a fewer number of points.  Your
> implementation needs a lot of tuning---you can squeeze out more
> performance.  Focus on the inner most loops.  Also, you'll have to
> compare some arm vs intel/amd platforms at some point.  I think you're
> closer to the beginning than the end.  This is maybe not what you
> wanted to research in the first place

When it gets down to processor specific optimization, I’m not sure how 
much the compiler does already and if it’s really worth the effort. 
I would 

Re: [PD] 4-point interpolation changes timbre depending on sample rate

2021-05-02 Thread Clemens
When there is no aliasing to worry about, i might set the cutoff to pi 
again...

On low sample rates (22kHz), the lower cutoff is definitely noticeable.

Btw. I just implemented sharing of the interpolation table of the 
delreadsinc~ object according to your suggestions.
It counts the number of references and frees the pointer when no object 
uses it anymore.


Best wishes,
Clemens

Am 29.04.21 um 21:03 schrieb Charles Z Henry:

On Thu, Apr 29, 2021 at 12:08 PM Clemens Wegener  wrote:


Also: Is it really mandatory to choose a filter cutoff below pi, when the input 
and output Sample rates match? For a simple static delay that should be the 
case.

There is an exact requirement when what you're making is an
interpolator:  it has to pass through all the original points!
For that to happen, your interpolating kernel i(t) must have
i(t)=1,   t=0
i(t)=0,  for non-zero integer values of t

An interpolator will have a cutoff freq at exactly pi rad/sec

So, if you're changing the cutoff frequency or amplitudes, it won't be
an interpolator.  It will just be some kind of table reader.
And that's good for performance, I'd say, but your users will have to
know that (and you'll have to justify the choice if it's for an
academic purpose)


--
—

  |\
  | \
C | H\
 / \ |
/   \|
   |\ A /|
   | \ / |
   |  |  |
I | R
  |

The Center for
Haptic Audio Interaction Reseach

http://www.chair.audio
https://twitter.com/ChairAudio
https://www.facebook.com/chair.audio


+49 3643 583940




___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] 4-point interpolation changes timbre depending on sample rate

2021-04-29 Thread Clemens Wegener
@Miller, I just saw your message - we will try that asap!


Hello Chuck, 

Good point! Thanks for these thoughts, there is no good reason to duplicate the 
table with each object, apart from initially being too lazy to code it 
correctly.  

I will have a look at the code again and see which solution I can arrive at! 
Method 3. sounds a bit like the unique pointer idea in modern C++…

There is another thing that I struggle to understand: (I already posed this 
question on Github)

Should the sinc interpolation change its filter characteristics when you change 
the delay time?
If that is the case, the code would need a little bit of adaption.

From what I understand, increasing the delay time is like downsampling (is 
it?). Now, I wonder how exactly delay time and sample rate are related 
mathematically. E.g. if I took the derivative of the delay time, would I get 
something that is proportional to the change in sample rate?

I read about the filter curve adaption during downsampling here:
https://www2.spsc.tugraz.at/www-archive/downloads/Mueller11_DopplerSRC_0.pdf 
<https://www2.spsc.tugraz.at/www-archive/downloads/Mueller11_DopplerSRC_0.pdf>
...but how would that apply to delay time interpolation?

Also: Is it really mandatory to choose a filter cutoff below pi, when the input 
and output Sample rates match? For a simple static delay that should be the 
case.

Best wishes, 
Clemens


> Am 2021-04-29 um 17:55 schrieb Charles Z Henry :
> 
> It's sort of disappointing that it has to be so expensive, but you do
> what you have to to get the quality and consistency of the sound.  The
> question of whether there is an optimal interpolating kernel (which
> I'd like to work on) isn't really going to help you in the near term.
> It's enough just to find a solution that works well and performs well.
> 
> You've got a scalability issue when using multiple instances of delreadsinc~:
> Each new instance recalculates the table when created.  The table is
> stored in the struct _sigvdsinc so it is also duplicated for each
> instance beyond the first.
> So, I propose a few other choices:
> 1.  Calculate the table during setup and add a class method that
> returns a pointer to that table, so that a new object doesn't
> calculate the table.  It just points at the existing table.  This
> option would use memory, even if the object is never used, and would
> not free the table under any circumstances (not great, but easy)
> 2.  Add a class method that returns NULL if the table has not been
> created or a pointer to the existing table and a class method to set
> the pointer.  The first instance of the object used would run the
> initialize_sinc_table function, but each additional instance would
> not.  The table hangs around for future use, even if the instances are
> deleted.
> 3.  Add the class methods in 2. plus methods to keep a count of the
> number of instances.  Then, when the last instance is deleted, the
> table is freed and the pointer re-assigned to NULL.
> 
> By my approximation, that table uses about (4*4096*10) 160 kB (or 320
> kB in double precision).  I'm not real clear on the differences in
> stack, static array allocation, and dynamic allocation in
> behavior/performance.  I know it's there, just can't seem to digest it
> when I look at it.  You might have had some reasons in mind to
> allocate the array the way you did--I'd like to learn more about this
> 
> Best,
> Chuck
> 
> On Wed, Apr 28, 2021 at 2:27 PM Max  wrote:
>> 
>> Hi Chuck,
>> 
>> Clemens isn't on the list (yet), he sent me some measurements he made in
>> response to your post.
>> 
>> All at 48kHz.
>> 
>> https://cloud.yuca.biz/s/WZseAmBQm9z6NdL
>> 
>> he says he can't hear a difference with 10 samples cutoff@pi and 14
>> samples cutoff@0.85*pi
>> It sounds better than than delread4~ from 6 samples cutoff@pi upwards.
>> 
>> greetings,
>> Max & Clemens
>> 
>> 
>> 
>> On 28.04.21 17:56, Charles Z Henry wrote:
>>> I read through the code in your d_delay.c for the delread_sinc 
>>> implementation.
>>> It's a 22-point interpolator--very high quality and it looks like a
>>> good implementation
>>> 
>>> The Hermite spline is the best 4-point cubic interpolator, but the
>>> point of those polynomial interpolators is just to be cheap, and good
>>> enough for regular usage.  It doesn't require a table, so it also
>>> doesn't need as much cache space
>>> 
>>> I don't think it's *the* optimal 4-point interpolator.  It's just the
>>> best cubic polynomial 4-point interpolator.  You could re-use your
>>>

Re: [PD] malinette isn't running on Ubuntu studio 18.04

2019-05-28 Thread Clemens

Hi,

Thank you very much!

I can open the"start-malinette-sh" by the terminal and can run 
malinette, but I'm still getting an error-message at the terminal


open: /etc/pd/gem.conf: No such file or directory
open: /home/clemens/.pd/gem.conf: No such file or directory
open: ./gem.conf: No such file or directory

Cheers

Clemens



Am 28.05.19 um 00:51 schrieb Jérôme Abel:

Hi,

I don't know if I understand well your feedback.

Malinette-soft includes last Pd.0.49 inside. The script 
"start-malinette-sh" must be launched by a Terminal or simply by Right 
Click > Open With > Other Application ... > Terminal, not with Pd or 
Purr-Data.


Or it seems that Gem is not loaded correctly. You could download it 
via "Help > Find externals" and replace it in 
"malinette-soft-master/externals/Gem" to see if it is ok.


You could use your own Pure Data of course with the "malinette-ide" 
flavor, but you will need to include all libraries. See 
"malinette-soft-master/malinette-ide/INSTALL.md"


Best.





___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] malinette isn't running on Ubuntu studio 18.04

2019-05-27 Thread Clemens















Hello list,

I followed Enrikes suggestion who recommended 
malinette-soft-linux-master on the Pd-mailing-list.


I downloaded the malinette lib "malinette-soft-linux-master", which 
looks really amazing!


I opened the start-malinette.sh file to open the patch and Purr Data 
opened and gave me the following message:


Welcome to Purr Data Pd has started the GUI canvasinfo: v0.1 stable 
canvasinfo methods: args dir dirty editmode vis pdinfo: v.0.1 stable 
pdinfo methods: dir dsp version classinfo: v.0.1 stable classinfo 
methods: size objectinfo: v.0.1 stable objectinfo methods: class 
[import] $Revision: 1.2 $ [import] is still in development, the 
interface could change! compiled against Pd-l2ork version 2.9.0 
(20190507-rev.22573662) PD_FLOATSIZE = 32 bits sys_nmidiin 1, nmidiindev 
1 working directory is /home/clemens/Pd/malinette-soft-linux-master 
Opened Alsa Client 128 in:1 out:1 ALSA: set output channels to 4 
Moonlib: can't load library libdir loader 1.10 compiled on Sep 13 2018 
at 20:17:19 compiled against Pd version 0.48.0. GEM: Graphics 
Environment for Multimedia verbose( -1):GEM: ver: 0.93.git 438dab3 
verbose( -1):GEM: compiled: Sep 13 2018 verbose( -1):GEM: maintained by 
IOhannes m zmoelnig verbose( -1):GEM: Authors : Mark Danks (original 
version) verbose( -1):GEM: Chris Clepper verbose( -1):GEM: Cyrille Henry 
verbose( -1):GEM: IOhannes m zmoelnig verbose( -1):GEM: with help by 
Guenter Geiger, Daniel Heckenberg, James Tittle, Hans-Christoph Steiner, 
et al. verbose( -1):GEM: found a bug? miss a feature? please report it: 
verbose( -1):GEM: homepage http://gem.iem.at/ verbose( -1):GEM: 
bug-tracker http://sourceforge.net/projects/pd-gem/ verbose( -1):GEM: 
mailing-list http://lists.puredata.info/listinfo/gem-dev/ verbose( 
-1):GEM: compiled for MMX/SSE2 architecture verbose( -1):GEM: using SSE2 
optimization verbose( -1):GEM: detected 4 CPUs libdir_loader: added 
'cyclone' to the global objectclass path libdir_loader: added 'zexy' to 
the global objectclass path libdir_loader: added 'creb' to the global 
objectclass path libdir_loader: added 'cxc' to the global objectclass 
path libdir_loader: added 'iemlib' to the global objectclass path 
libdir_loader: added 'list-abs' to the global objectclass path 
libdir_loader: added 'mapping' to the global objectclass path 
libdir_loader: added 'markex' to the global objectclass path 
libdir_loader: added 'maxlib' to the global objectclass path 
libdir_loader: added 'memento' to the global objectclass path 
libdir_loader: added 'mjlib' to the global objectclass path 
libdir_loader: added 'motex' to the global objectclass path 
libdir_loader: added 'oscx' to the global objectclass path 
libdir_loader: added 'pddp' to the global objectclass path 
libdir_loader: added 'pdogg' to the global objectclass path 
libdir_loader: added 'pixeltango' to the global objectclass path 
libdir_loader: added 'rradical' to the global objectclass path 
libdir_loader: added 'sigpack' to the global objectclass path 
libdir_loader: added 'smlib' to the global objectclass path 
libdir_loader: added 'unauthorized' to the global objectclass path vbap 
- v1.1 - 14 Aug. 2014 - (c) Ville Pulkki 1999-2006 (Pd port by HCS) 
libdir_loader: added 'pan' to the global objectclass path freeverb~ v1.2 
libdir_loader: added 'hcs' to the global objectclass path libdir_loader: 
added 'jmmmp' to the global objectclass path libdir_loader: added 
'ext13' to the global objectclass path libdir_loader: added 'ggee' to 
the global objectclass path libdir_loader: added 'ekext' to the global 
objectclass path libdir_loader: added 'disis' to the global objectclass 
path libdir_loader: added 'lyonpotpourri' to the global objectclass path 
pdlua 0.9 (GPL) 2014-2018 Martin Peach et al., based on lua 0.6~svn 
(GPL) 2008 Claude Heiland-Allen  pdlua: compiled for 
pd-0.48 on Sep 13 2018 20:18:55 Using lua version 5.3 pdlua: using 
JavaScript interface (Pd-l2ork nw.js version) error: #!/bin/bash: no 
such object Or I get the message: error: couldn't create "path"


When I open the start-malinette.sh by Pd, I get a huge amount of 
couldn't create messages.

This is the compete error list

  gemglutwindow
... couldn't create
  GLdefine GL_LINEAR
... couldn't create
  GLdefine GL_EXP
... couldn't create
  GLdefine GL_EXP2
... couldn't create
  GLdefine GL_COLOR_BUFFER_BIT
... couldn't create
  GLdefine GL_DEPTH_BUFFER_BIT
... couldn't create
  GLdefine GL_STENCIL_BUFFER_BIT
... couldn't create
  GEMglMatrixMode GL_MODELVIEW
... couldn't create
  GEMgluLookAt 0 0 4 0 0 0 0 1 0
... couldn't create
  GEMglLoa

Re: [PD] monitoring function REC-Play for looper

2018-11-08 Thread Clemens

Thank you very much for your detailed explanations,

they were very helpful for my understanding!!

Cheers Clemens


Am 08.11.18 um 14:05 schrieb Roman Haefeli:

On Thu, 2018-11-08 at 13:23 +0100, Clemens wrote:

But what do you mean with "fan-outs"?

A fan-out in Pd usually means that a single outlet is connected to two
or more inlets. IOhannes strongly advises you to get rid of them,
because the order the many inlets receive the message from the outlet
is not defined. This is the single-most frequent source of bugs in Pd
patches.



and how can I get rid of them?

Replace any occurrence of a fan-out by an appropriate [trigger] object.

Example:

[bla]
|\
| \
|  \
[y] [x]

should be replaced by:

[bla]
|
[trigger anything anything]
| |
[y]   [x]

(use mono space font for this ASCII-art to make sense)

Roman


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] monitoring function REC-Play for looper

2018-11-08 Thread Clemens

But what do you mean with "fan-outs"?

and how can I get rid of them?

The toogle is at the end of the line, no data continues through?

Could you send me an example?

Thanks for your support and for your suggestions !!

Cheers

Clemens

Am 07.11.18 um 22:45 schrieb IOhannes m zmölnig:

On 11/7/18 10:09 PM, Clemens wrote:

Hi list,

I found a way to switch on and off the toogle when you push rec or play

(see attached patch)

you still have fan-outs.
you should really get rid of them. *always*.

apart from that, once you click on "play", the two buttons will do the
same. is this what you want?


but if you press rec or play two times ( maybe by accident) the same is
happening

but I want to have a control unit, that the rec toogle is switch on only
when the looper is in rec mode

the same for the play mode


well, you should start thinking about what you actually mean by "record
mode" and "play mode".
e.g. when is the looper in "record mode", when is it not.
how are they mutually exclusive?
i which mode is the system if you press "record" and wait for 100seconds?
in which mode is the system, if you press "record" and 50ms afterwards
press "play"? what is the state after another 5000ms? after another
100seconds?
in which mode is the system, if you press "play" and 50ms afterwards
press "record"? what is the state after another 5000ms? after another
100seconds?
in which mode is the system, if you press "play" and 5000ms afterwards
you press "play" again?


but anyhow: if you send bang-messages to a toggle it will toggle. if you
don't want to toggle it, you have to set it to a fixed value (e.g. by
sending it that value)


i hope this helps.
gfamsdr
IOhannes


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] monitoring function REC-Play for looper

2018-11-07 Thread Clemens

Hi list,

I found a way to switch on and off the toogle when you push rec or play

(see attached patch)

but if you press rec or play two times ( maybe by accident) the same is 
happening


but I want to have a control unit, that the rec toogle is switch on only 
when the looper is in rec mode


the same for the play mode

any ideas?

any suggestions??

Thanks

cheers

Clemens



Am 07.11.18 um 11:41 schrieb IOhannes m zmoelnig:

On 07.11.18 10:17, Clemens wrote:

Nice,

well, in both #1 and #2, you are doing the very same, regardless of
whether the user pressed "play" or "record".
since both buttons trigger the same actions, it is not surprising that
you get the same result (actually, it would be very disturbing if you
didn't)
#3 correctly turns on the select toggle. so i don't know what is wrong
with that solution (apart from the fan-out)

so exactly what is the problem?


as a side-note, you should get rid of the fan-outs in all of your
attempts and replace them with trigger. always.

asdrm,
IOhannes


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list
#N canvas 72 263 1031 384 10;
#X obj 211 85 adc~;
#X obj 270 116 bng 15 250 50 0 empty empty record 20 7 1 8 -262144
-1 -1;
#X obj 270 143 bng 15 250 50 0 empty empty play 20 7 1 8 -262144 -1
-1;
#X obj 229 112 vsl 12 48 0 1 0 0 empty empty gain 16 8 1 8 -262144
-1 -1 0 1;
#X obj 200 209 dac~;
#N canvas 96 181 925 431 sampler 0;
#X obj 78 28 sig~;
#X obj 78 52 lop~ 2;
#X obj 63 80 *~;
#X obj 207 6 inlet p;
#X obj 153 6 inlet r;
#X obj 31 6 inlet~;
#X obj 73 278 outlet~;
#X obj 78 6 inlet gain;
#X obj 64 105 tabwrite~ looper001;
#X obj 72 159 tabplay~ looper001;
#X obj 81 131 table looper001 2.646e+06;
#X text 240 132 60 sekunden;
#X obj 410 24 bng 15 250 50 0 empty empty record 17 7 0 10 -262144
-1 -1;
#X floatatom 469 154 0 0 0 0 - - -;
#X obj 469 62 line;
#X msg 469 39 0 \, 60 6;
#X obj 670 24 bng 15 250 50 0 empty empty play 17 7 0 10 -262144 -1
-1;
#X msg 670 111 0;
#X obj 469 129 spigot 1;
#X obj 410 91 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 410 111 1;
#X floatatom 657 147 0 0 0 0 Laufzeit - -;
#X obj 552 353 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 552 249 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 573 246 bang: start;
#X floatatom 657 272 6 0 0 0 - - -, f 6;
#X obj 391 286 line;
#X msg 391 264 0 \, 60 6;
#X floatatom 391 346 5 0 0 0 - - -, f 5;
#X obj 391 319 spigot 1;
#X msg 472 301 0;
#X msg 442 300 1;
#X obj 552 300 delay 6;
#X obj 657 169 * 1000;
#X obj 575 336 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 575 365 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 657 190 + 5;
#X obj 330 144 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 73 251 *~;
#X msg 97 186 1 \, 0 100;
#X obj 113 233 line;
#X msg 113 208 0 \, 1 1000;
#X floatatom 226 298 0 0 0 0 - - -;
#X msg 226 271 60;
#X obj 226 320 -;
#X obj 226 216 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 226 254 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 226 234 metro 10;
#X floatatom 226 344 5 0 0 1 Restzeit - -, f 5;
#X floatatom 197 344 0 0 0 0 Laufzeit - -;
#X connect 0 0 1 0;
#X connect 1 0 2 1;
#X connect 2 0 8 0;
#X connect 3 0 9 0;
#X connect 3 0 16 0;
#X connect 4 0 8 0;
#X connect 4 0 12 0;
#X connect 5 0 2 0;
#X connect 7 0 0 0;
#X connect 9 0 38 0;
#X connect 12 0 15 0;
#X connect 12 0 19 0;
#X connect 12 0 39 0;
#X connect 14 0 18 0;
#X connect 15 0 14 0;
#X connect 16 0 17 0;
#X connect 16 0 23 0;
#X connect 16 0 37 0;
#X connect 16 0 41 0;
#X connect 17 0 18 1;
#X connect 18 0 13 0;
#X connect 18 0 21 0;
#X connect 19 0 20 0;
#X connect 20 0 18 1;
#X connect 21 0 33 0;
#X connect 21 0 44 1;
#X connect 21 0 49 0;
#X connect 22 0 30 0;
#X connect 23 0 27 0;
#X connect 23 0 31 0;
#X connect 23 0 32 0;
#X connect 25 0 32 1;
#X connect 26 0 29 0;
#X connect 27 0 26 0;
#X connect 29 0 28 0;
#X connect 30 0 29 1;
#X connect 31 0 29 1;
#X connect 32 0 22 0;
#X connect 32 0 34 0;
#X connect 33 0 36 0;
#X connect 34 0 35 0;
#X connect 34 0 23 0;
#X connect 34 0 37 0;
#X connect 36 0 25 0;
#X connect 37 0 9 0;
#X connect 38 0 6 0;
#X connect 39 0 40 0;
#X connect 40 0 38 1;
#X connect 41 0 40 0;
#X connect 42 0 44 0;
#X connect 43 0 42 0;
#X connect 44 0 48 0;
#X connect 45 0 47 0;
#X connect 46 0 43 0;
#X connect 47 0 46 0;
#X restore 210 172 pd sampler;
#X obj 497 70 bng 15 250 50 0 empty empty record 17 7 0 10 -262144
-1 -1;
#X obj 625 70 bng 15 250 50 0 empty empty play 17 7 0 10 -262144 -1
-1;
#X obj 497 196 tgl 50 0 empty empty R 17 26 0 30 -258113 -257985 -262144
1 1;
#N canvas 0 50 450 250 (subpatch) 0;
#X coords 0 1 100 -1 400 250 1 0 0;
#X restore 389 38 graph;
#X obj 663 196 tgl 50 0 empty empty P 17 26 0 30 -4160 -258113 -262144
0 1;
#X obj 541 155 spigot;

Re: [PD] monitoring function REC-Play for looper

2018-11-07 Thread Clemens

Nice,

thank you for your support!

Am 07.11.18 um 09:50 schrieb IOhannes m zmoelnig:

On 07.11.18 09:39, Clemens wrote:

The attached patch is the original patch.

so show us your attempts in solving the problem.
it's really hard to tell what you did wrong without seeing what you did.

gfamsdr
IOhannes


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list
#N canvas 73 58 1225 712 10;
#X obj 211 85 adc~;
#X obj 270 116 bng 15 250 50 0 empty empty record 20 7 1 8 -262144
-1 -1;
#X obj 270 143 bng 15 250 50 0 empty empty play 20 7 1 8 -262144 -1
-1;
#X obj 229 112 vsl 12 48 0 1 0 0 empty empty gain 16 8 1 8 -262144
-1 -1 0 1;
#X obj 200 209 dac~;
#N canvas 0 58 1366 710 sampler 0;
#X obj 78 28 sig~;
#X obj 78 52 lop~ 2;
#X obj 63 80 *~;
#X obj 207 6 inlet p;
#X obj 153 6 inlet r;
#X obj 31 6 inlet~;
#X obj 73 278 outlet~;
#X obj 78 6 inlet gain;
#X obj 64 105 tabwrite~ looper001;
#X obj 72 159 tabplay~ looper001;
#X obj 81 131 table looper001 2.646e+06;
#X text 240 132 60 sekunden;
#X obj 410 24 bng 15 250 50 0 empty empty record 17 7 0 10 -262144
-1 -1;
#X floatatom 469 154 0 0 0 0 - - -;
#X obj 469 62 line;
#X msg 469 39 0 \, 60 6;
#X obj 670 24 bng 15 250 50 0 empty empty play 17 7 0 10 -262144 -1
-1;
#X msg 670 111 0;
#X obj 469 129 spigot 1;
#X obj 410 91 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 410 111 1;
#X floatatom 657 147 0 0 0 0 Laufzeit - -;
#X obj 552 353 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 552 249 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 573 246 bang: start;
#X floatatom 657 272 6 0 0 0 - - -, f 6;
#X obj 391 286 line;
#X msg 391 264 0 \, 60 6;
#X floatatom 391 346 5 0 0 0 - - -, f 5;
#X obj 391 319 spigot 1;
#X msg 472 301 0;
#X msg 442 300 1;
#X obj 552 300 delay 6;
#X obj 657 169 * 1000;
#X obj 575 336 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 575 365 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 657 190 + 5;
#X obj 330 144 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 73 251 *~;
#X msg 97 186 1 \, 0 100;
#X obj 113 233 line;
#X msg 113 208 0 \, 1 1000;
#X floatatom 226 298 0 0 0 0 - - -;
#X msg 226 271 60;
#X obj 226 320 -;
#X obj 226 216 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 226 254 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 226 234 metro 10;
#X floatatom 226 344 5 0 0 1 Restzeit - -, f 5;
#X floatatom 197 344 0 0 0 0 Laufzeit - -;
#X obj 1198 272 tgl 30 0 empty empty R 10 15 0 15 -262144 -258113 -258113
0 1;
#X obj 1108 206 bng 15 250 50 0 empty empty record 17 7 0 10 -262144
-1 -1;
#X obj 1184 204 bng 15 250 50 0 empty empty play 17 7 0 10 -262144
-1 -1;
#X obj 1159 272 tgl 30 0 empty empty P 10 15 0 15 -262144 -4160 -4160
0 1;
#X obj 1078 505 f;
#X obj 1126 509 + 1;
#X obj 1078 456 bng 15 250 50 0 empty empty record 17 7 0 10 -262144
-1 -1;
#X obj 1078 574 mod 2;
#X floatatom 1078 624 5 0 0 0 - - -, f 5;
#X obj 1078 649 tgl 30 0 empty empty R 10 15 0 15 -262144 -258113 -258113
0 1;
#X obj 918 500 f;
#X obj 954 502 + 1;
#X obj 918 451 bng 15 250 50 0 empty empty play 17 7 0 10 -262144 -1
-1;
#X obj 918 548 mod 2;
#X floatatom 918 631 5 0 0 0 - - -, f 5;
#X obj 933 603 sel 1;
#X obj 1192 358 tgl 50 0 empty empty empty 17 7 0 10 -258113 -1 -1
0 1;
#X obj 978 567 sel 0;
#X floatatom 978 590 5 0 0 0 - - -, f 5;
#X msg 837 463 0;
#X obj 918 656 tgl 30 0 empty empty P 10 15 0 15 -262144 -4160 -4160
0 1;
#X msg 1106 483 bang;
#X obj 1091 597 sel 0;
#X obj 867 103 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 867 124 f;
#X floatatom 867 219 5 0 0 0 - - -, f 5;
#X floatatom 910 124 5 0 0 0 - - -, f 5;
#X obj 867 80 inlet;
#X text 862 49 Counter;
#X obj 866 289 outlet;
#X obj 866 270 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 970 85 bng 15 250 50 0 empty empty record 17 7 0 10 -262144
-1 -1;
#X obj 811 80 bng 15 250 50 0 empty empty play 17 7 0 10 -262144 -1
-1;
#X obj 817 325 tgl 50 0 empty empty empty 17 7 0 10 -4160 -1 -1 0 1
;
#X obj 936 291 outlet;
#X obj 936 272 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 887 327 tgl 50 0 empty empty empty 17 7 0 10 -258113 -1 -1 0
1;
#X obj 936 250 sel 1;
#X obj 866 248 sel 2;
#X obj 801 156 + 1;
#X obj 867 187 mod 3;
#N canvas 0 50 450 250 (subpatch) 0;
#X coords 0 1 100 -1 250 400 1 0 0;
#X restore 787 23 graph;
#X text 791 27 1.);
#X text 831 443 reset;
#N canvas 0 50 450 250 (subpatch) 0;
#X coords 0 1 100 -1 400 250 1 0 0;
#X restore 792 441 graph;
#X text 797 442 2.);
#N canvas 0 50 450 250 (subpatch) 0;
#X coords 0 1 100 -1 250 250 1 0 0;
#X restore 1047 173 graph;
#X text 1055 174 3.);
#X connect 0 0 1 0;
#X connect 1 0 2 1;
#X connect 2 0 8 0;
#X connect 3 0 9 0;
#X connect 3 0 16 0;
#X connect 4 0 8 0;
#X connect 4 0 12 0;
#X connect 5 0 2 0;
#X connect 7 0

Re: [PD] monitoring function REC-Play for looper

2018-11-07 Thread Clemens

The attached patch is the original patch.

Am 07.11.18 um 09:34 schrieb IOhannes m zmoelnig:

On 07.11.18 09:21, Clemens wrote:

I want to have a monitoring function to see if the looper is in record
mode or in play mode

and if the the looper is switched on or not.

The patch has got two bangs, one for rec and one for play and what ever
I tried, either both toogles are switched on or not any.

i don't see any toggles in your patch.

gasdmr
IOhannes


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] monitoring function REC-Play for looper

2018-11-07 Thread Clemens

Hi List,

I want to add a control toogle to a looper patch created by Andy Farnell,

I attached the patch.

I want to have a monitoring function to see if the looper is in record 
mode or in play mode


and if the the looper is switched on or not.

The patch has got two bangs, one for rec and one for play and what ever 
I tried, either both toogles are switched on or not any.


Any suggestions?!

Thank you very much in advance!

Clemens

#N canvas 564 242 450 300 10;
#N canvas 1 58 450 300 sampler 0;
#X obj 138 94 sig~;
#X obj 138 118 lop~ 2;
#X obj 123 146 *~;
#X obj 124 171 tabwrite~ \$0-a1;
#X obj 131 211 tabplay~ \$0-a1;
#X obj 267 72 inlet p;
#X obj 213 72 inlet r;
#X obj 91 72 inlet~;
#X obj 131 232 outlet~;
#X obj 138 72 inlet gain;
#X obj 159 191 table \$0-a1 88200;
#X connect 0 0 1 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 4 0 8 0;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 7 0 2 0;
#X connect 9 0 0 0;
#X restore 33 147 pd sampler;
#X obj 32 31 adc~;
#X obj 112 69 bng 15 250 50 0 empty empty record 20 7 1 8 -262144 -1
-1;
#X obj 112 89 bng 15 250 50 0 empty empty play 20 7 1 8 -262144 -1
-1;
#X obj 52 58 vsl 12 48 0 1 0 0 empty empty gain 16 8 1 8 -262144 -1
-1 0 1;
#X obj 34 193 dac~;
#X connect 0 0 5 0;
#X connect 0 0 5 1;
#X connect 1 0 0 0;
#X connect 2 0 0 2;
#X connect 3 0 0 3;
#X connect 4 0 0 1;
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] type size of a commentary

2018-09-21 Thread Clemens

Well,

I can create >> comment << in different sizes,

but no other words

Is there something to notice about the writing?

I put in an Object and wrote >> comment 0 40 << and I got >>comment<< in 
the corresponding size


but when I do so with another name it is always the same size!!

Cheers

Clemens


Am 21.09.2018 um 12:09 schrieb Johnny Mauser:

Also you canuse canvases and its naming for this.

Derek Kwan mailto:derek.x.k...@gmail.com>> 
schrieb am Fr., 21. Sep. 2018, 12:01:


Clemens mailto:reinkl...@online.de>> writes:

> Hello list,
>
> is there a way to add some words to the surface of a patch like
adding
> a commentary,
>
> but with a lager type size?
    >
    > Just for clarity reasons.
>
> Cheers
>
> Clemens

Check out [comment] in the Cyclone library.

Derek

-- 
Derek Kwan

www.derekxkwan.com <http://www.derekxkwan.com>



___
Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list
UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] Slider/Knob

2018-09-21 Thread Clemens

Hello Oliver,

is it possible to add the name of the knob to the knob (surface), like 
you can do with a H-slider e.g.?


Just for clarity reasons?

Cheers

Clemens






___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] type size of a commentary

2018-09-21 Thread Clemens

Hello list,

is there a way to add some words to the surface of a patch like adding a 
commentary,


but with a lager type size?

Just for clarity reasons.

Cheers

Clemens




___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] Slider/Knob

2018-09-07 Thread Clemens

Hello List,

I would like to use knobs instead of sliders,

where can I find them?

Cheers

Clemens



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] message: can't load library

2018-09-03 Thread Clemens

Hello list

I'm running the currently Version 0.48.1 on OS Ubuntustudio 18.04 ( the 
currently version)


I downloaded libraries by the find externals function,

saved them in the home/Clemens/Pd/externals folder,

this is the folder Pd created by itself ,

put a tick in the "Should newly installed libraries be added to Pd's 
search path?"


restarted PD

and get the message: freeverb: can't load the libary, and the same 
message with ggee, iemnet, jmmmp. mjlib, moonlib, pan,pduino.


But I don't get a message like this for the libraries cyclone, Gem, pdpv 
and zexy!!


What is the mistake or what is going wrong?

And I get the message: 'deken-plugin.tcl' already loaded, ignoring: 
'/usr/lib/pd/extra/deken-plugin/deken-plugin.tcl-- what does this meam?


Thank you very much?

Clemens




___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] Pd-extended or Pd??

2018-08-24 Thread Clemens

Hello List,

I was told Pd-extended isn't stable like Pd, what do you think?

Which software do you recommend to a beginner?

My OS is Ubuntu-Studio and the main use is for live-electronics.

And can you recommend a tutorial about: HOW to install PD and all the 
libs! What is about deken??


Thank you very much!

Clemens


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list