Re: [PD] [PD-announce] Chocolate et Coffee

2014-01-13 Thread Pierre Guillot
Hi,
I may have been sensitive, I needed 2 days break, sorry. If we focus on the
important facts, I received really constructive feedbacks and I've been
able to improve the library for the next release.

Joao suggestions :
- The properties window will have a fixed size.
- We can set (in the code) if we want a color picker, checkbox, menu or
textfield for each property.
- The id name becomes receive symbol and there's also an send symbol.

IOhannes suggestions :
- The c/tcl library is now named CicmWrapper (The repository name will
change with the next release)
- If it seems better to change the libray name, Chocolate can become
CicmGUI ?

About the right click during runmode, It's possible to change it but I
don't really like it. Do you think that's really important ?

To include in Pd-ext, it's possible to only include Chocolate, I just have
to replace all the c.prepend and c.loadmess with prepend and init. I
received mails and some users like c.patcherargs and the double click of
the coffee objects but they can download and add the library manually.
To include in Vanilla, you're right, the best is to ask to Miller.

If we want to replace the vanilla GUIs, two suggestions for the moment :
 - We keep the the vanilla GUIs and we just replace the shortcut, we won't
have any problem to load previous patchs and users will use the new GUI for
their new patchs (Secure and easy to do, we can also have an option to
replace or not the vanilla shortcuts).
- We overwrite the vanilla classes then every objects will replaced but the
users will lose the properties (size, font, color, etc...).
Another idea is to add a menu option or to offer 2 libraries with one that
overwrite classes.

Cheers


2014/1/10 Jonathan Wilkes jancs...@yahoo.com

  On 01/10/2014 12:50 PM, Dan Wilcox wrote:

 I don't have any plans, I was only responding in a hypothetical manner.
 I'm busy on a show right now and can't do pd dev. A better person to ask is
 Miller ...


 I must have misunderstood-- the way you wrote that made it sound like
 there is a process by which the community gets things included into Pd
 Vanilla.  If such a process existed wouldn't one of the dupes IOhannes
 cites already be included in Pd Vanilla after over a decade now?

 Instead, I think Pierre has taken the only sensible approach to making a
 library that works with both Pd-Vanilla and Pd-extended.  You simply code
 up the stuff that's been missing forever-- some of it probably in less time
 than it takes to respond to questions about dupes.  Then you ship the
 library, and it just works without users having to find other libraries.

 -Jonathan



  On Jan 10, 2014, at 12:48 PM, Jonathan Wilkes jancs...@yahoo.com wrote:

 What is your plan for getting the necessary features into Vanilla so that
 such dupes are no longer necessary to include in a library like this?


   
 Dan Wilcox
 @danomatika
 danomatika.com
 robotcowboy.com







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


Re: [PD] [PD-announce] Chocolate et Coffee

2014-01-13 Thread i go bananas
i very much doubt miller will include stuff in vanilla that's not backwards
compatible.  seeing as how these objects don't even work with my
(relatively) recent 0.42.5 version, i can't see how they'd pass.




On Mon, Jan 13, 2014 at 6:00 PM, Pierre Guillot guillotpier...@gmail.comwrote:

 Hi,
 I may have been sensitive, I needed 2 days break, sorry. If we focus on
 the important facts, I received really constructive feedbacks and I've been
 able to improve the library for the next release.

 Joao suggestions :
 - The properties window will have a fixed size.
 - We can set (in the code) if we want a color picker, checkbox, menu or
 textfield for each property.
 - The id name becomes receive symbol and there's also an send symbol.

 IOhannes suggestions :
 - The c/tcl library is now named CicmWrapper (The repository name will
 change with the next release)
 - If it seems better to change the libray name, Chocolate can become
 CicmGUI ?

 About the right click during runmode, It's possible to change it but I
 don't really like it. Do you think that's really important ?

 To include in Pd-ext, it's possible to only include Chocolate, I just have
 to replace all the c.prepend and c.loadmess with prepend and init. I
 received mails and some users like c.patcherargs and the double click of
 the coffee objects but they can download and add the library manually.
 To include in Vanilla, you're right, the best is to ask to Miller.

 If we want to replace the vanilla GUIs, two suggestions for the moment :
  - We keep the the vanilla GUIs and we just replace the shortcut, we won't
 have any problem to load previous patchs and users will use the new GUI for
 their new patchs (Secure and easy to do, we can also have an option to
 replace or not the vanilla shortcuts).
 - We overwrite the vanilla classes then every objects will replaced but
 the users will lose the properties (size, font, color, etc...).
 Another idea is to add a menu option or to offer 2 libraries with one that
 overwrite classes.

 Cheers


 2014/1/10 Jonathan Wilkes jancs...@yahoo.com

  On 01/10/2014 12:50 PM, Dan Wilcox wrote:

 I don't have any plans, I was only responding in a hypothetical manner.
 I'm busy on a show right now and can't do pd dev. A better person to ask is
 Miller ...


 I must have misunderstood-- the way you wrote that made it sound like
 there is a process by which the community gets things included into Pd
 Vanilla.  If such a process existed wouldn't one of the dupes IOhannes
 cites already be included in Pd Vanilla after over a decade now?

 Instead, I think Pierre has taken the only sensible approach to making a
 library that works with both Pd-Vanilla and Pd-extended.  You simply code
 up the stuff that's been missing forever-- some of it probably in less time
 than it takes to respond to questions about dupes.  Then you ship the
 library, and it just works without users having to find other libraries.

 -Jonathan



  On Jan 10, 2014, at 12:48 PM, Jonathan Wilkes jancs...@yahoo.com
 wrote:

 What is your plan for getting the necessary features into Vanilla so that
 such dupes are no longer necessary to include in a library like this?


   
 Dan Wilcox
 @danomatika
 danomatika.com
 robotcowboy.com








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


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


Re: [PD] [PD-announce] Chocolate et Coffee

2014-01-13 Thread Dan Wilcox
Well, backwards compatibility can have reasonable limitations and perhaps this 
is one.

On Jan 13, 2014, at 6:18 AM, i go bananas hard@gmail.com wrote:

 i very much doubt miller will include stuff in vanilla that's not backwards 
 compatible.  seeing as how these objects don't even work with my (relatively) 
 recent 0.42.5 version, i can't see how they'd pass. 
 
 
 
 
 On Mon, Jan 13, 2014 at 6:00 PM, Pierre Guillot guillotpier...@gmail.com 
 wrote:
 Hi,
 I may have been sensitive, I needed 2 days break, sorry. If we focus on the 
 important facts, I received really constructive feedbacks and I've been able 
 to improve the library for the next release.
 
 Joao suggestions : 
 - The properties window will have a fixed size.
 - We can set (in the code) if we want a color picker, checkbox, menu or 
 textfield for each property.
 - The id name becomes receive symbol and there's also an send symbol.
 
 IOhannes suggestions :
 - The c/tcl library is now named CicmWrapper (The repository name will change 
 with the next release)
 - If it seems better to change the libray name, Chocolate can become CicmGUI ?
 
 About the right click during runmode, It's possible to change it but I don't 
 really like it. Do you think that's really important ?
 
 To include in Pd-ext, it's possible to only include Chocolate, I just have to 
 replace all the c.prepend and c.loadmess with prepend and init. I received 
 mails and some users like c.patcherargs and the double click of the coffee 
 objects but they can download and add the library manually. 
 To include in Vanilla, you're right, the best is to ask to Miller.
 
 If we want to replace the vanilla GUIs, two suggestions for the moment : 
  - We keep the the vanilla GUIs and we just replace the shortcut, we won't 
 have any problem to load previous patchs and users will use the new GUI for 
 their new patchs (Secure and easy to do, we can also have an option to 
 replace or not the vanilla shortcuts).
 - We overwrite the vanilla classes then every objects will replaced but the 
 users will lose the properties (size, font, color, etc...). 
 Another idea is to add a menu option or to offer 2 libraries with one that 
 overwrite classes.
 
 Cheers
 
 
 2014/1/10 Jonathan Wilkes jancs...@yahoo.com
 On 01/10/2014 12:50 PM, Dan Wilcox wrote:
 I don't have any plans, I was only responding in a hypothetical manner. I'm 
 busy on a show right now and can't do pd dev. A better person to ask is 
 Miller ...
 
 I must have misunderstood-- the way you wrote that made it sound like there 
 is a process by which the community gets things included into Pd Vanilla.  If 
 such a process existed wouldn't one of the dupes IOhannes cites already be 
 included in Pd Vanilla after over a decade now?
 
 Instead, I think Pierre has taken the only sensible approach to making a 
 library that works with both Pd-Vanilla and Pd-extended.  You simply code up 
 the stuff that's been missing forever-- some of it probably in less time than 
 it takes to respond to questions about dupes.  Then you ship the library, 
 and it just works without users having to find other libraries.
 
 -Jonathan
 
 
 
 On Jan 10, 2014, at 12:48 PM, Jonathan Wilkes jancs...@yahoo.com wrote:
 
 What is your plan for getting the necessary features into Vanilla so that 
 such dupes are no longer necessary to include in a library like this?
 
 
 Dan Wilcox
 @danomatika
 danomatika.com
 robotcowboy.com
 
 
 
 
 
 
 
 
 ___
 Pd-list@iem.at mailing list
 UNSUBSCRIBE and account-management - 
 http://lists.puredata.info/listinfo/pd-list
 
 


Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com





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


Re: [PD] libpd separating gui from core

2014-01-13 Thread Dan Wilcox
As Hans has proposed for years, IMO this is really the only way to perhaps 
solve the PD gui development doesn't move fast enough problem in the long 
term. In this case, Miller would have the core (in libpd)  the pd-vanilla 
wrapper gui formally separated while everyone else can then use the same libpd 
core within other flavors. The DSP core is the heart and soul and I see no 
reason to try and change that in any way.

On Jan 13, 2014, at 1:54 AM, Jonathan Wilkes jancs...@yahoo.com wrote:

 #2 is hard.  Where would you start and how would you proceed?


I think what makes sense is to list out the main interfaces to the DSP core 
that are currently being used by TCL. In the simplest case, we could literally 
create wrapper functions which emulate the tcl argument lists. libpd currently 
wraps the formal message sending, midi,  processing areas. I think now we need 
to see if it's possible to wrap the DSP graph editing/manipulation, canvas, 
patch loading/saving, etc.

Conceptually, I know the tcl/tk-ism for the canvas, object positions, etc are 
fully baked into how everything works and I don't see a reason to try and 
change that. Again, perhaps the easiest method would be formalize those 
conventions via function wrappers which work 1-1 within the existing tcl/tk gui 
but perhaps require some adaptation for other gui frameworks. In other words, 
trying to find the least intrusive way to do this as I believe Martin has 
already done with the existing work in libpd.

I truly respect Miller's work with Pure Data and understand the need to move 
slowly to maintain the highest possible backwards compatibility with all 
existing computer music pieces made in Pure Data. So far libpd has proven we 
can abstract some of the Pd core functionality without affecting Pd-vanilla, so 
I think it's possible to look for the next steps.

The recent point of not being able to run GEM  an audio heavy patch on the 
same pd instance is really not a fault of the core but of the gui 
implementation. I have used libpd within OpenFrameworks for a number of 
computer vision + sound apps so I know it's definitely possible.

Again, I'm only theorizing. I'm pretty familiar with how the iem guis are coded 
after emulating them in ObjC for PdParty, but I haven't delved into the nit and 
grit of the core yet. At least I can say now that the paradigms make more sense.

As reference, last summer I updated some pretty hairy C code in RTCmix so that 
it would build as a library on Windows in MinGW: 
https://github.com/CreativeInquiry/RTcmix I have access to a triple boot 
machine to test code on Win/Mac/Linux which I regular use for OpenFrameworks 
work. So if I seriously gave this a shot, it wouldn't be a look, it works on 
my machine, but I haven't tried it on OS A, B, 


Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com





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


Re: [PD] groove machine how to: keep metro and a loop in sync

2014-01-13 Thread Funs Seelen
Hi Filippo,

You're welcome.

You probably forgot to reply-to-all, but I added pd-list to the
conversation. I hope you don't mind, but I do this ...
a) to prevent ten people to answer the same question, not knowing that nine
others are or have been spending time to do exactly the same, and
b) for the archive. It's annoying if you have a problem, search the web,
and do find your question, but not the answer, since it is not made public.

On Mon, Jan 13, 2014 at 5:48 PM, Filippo Beck Peccoz m...@fbpsound.comwrote:

 Hi Funs and thanks a lot for the message! Sorry if I'm launching noob
 questions at you, but so far I've only used a tabplay~ object and a metro
 with a set bpm, and triggered both of them at the same time- this is
 obviously not ideal..although it almost works the fade into and out of
 the drum loop should be perfectly timed, especially for this kind of
 application.

 I am, however, a little lost as to how extrapolate bar/beat information
 from the objects you suggested. I'm sure it's super easy and I'm missing
 something obvious. Why do you put the 1000 in the message that goes to the
 line object?


I assumed you were reading the table with [tabread~] or [tabread4~]. For
looping purposes it is common to use [phasor~] in combination with one of
these two. If the loop should last 1 second (1000 ms) its frequence should
be 1 Hertz (cycle per second). So the equivalent for the argument `1' for
[phasor~] would be `1000' (milliseconds) for [line~]. Translation is done
using the following function: y = 1000 / x, where x is the length of the
time interval in ms and y the frequency in Hz (note that x = 1000 / y).
This one second sample was just an example. [soundfiler] outputs the length
of your sound sample in dsp samples.

I don't understand what you mean by `bar/beat information', for I can't
precisely imagine what you are building.

Regards,
Funs
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [PD-announce] Chocolate et Coffee

2014-01-13 Thread João Pais

is it possible/feasible to add a switch so that "old" objects don't get replaced by the new ones? e.g. by analysing the parameters of the creation objects? if so, and someone delivers the code for this (I don't know how to do it myself), there might be a better chance of these objects making it into vanilla. (or not?)Well, backwards compatibility can have reasonable limitations and perhaps this is one.On Jan 13, 2014, at 6:18 AM, i go bananas hard@gmail.com wrote:i very much doubt miller will include stuff in vanilla that's not backwards compatible. seeing as how these objects don't even work with my (relatively) recent 0.42.5 version, i can't see how they'd pass.
On Mon, Jan 13, 2014 at 6:00 PM, Pierre Guillot guillotpier...@gmail.com wrote:
Hi,I may have been sensitive, I needed 2 days break, sorry. If we focus on the important facts, I received really constructive feedbacks and I've been able to improve the library for the next release.

Joao suggestions :- The properties window will have a fixed size.- We can set (in the code) if we want a color picker, checkbox, menu or textfield for each property.- The id name becomes receive symbol and there's also an send symbol.

IOhannes suggestions :- The c/tcl library is now named CicmWrapper (The repository name will change with the next release)- If it seems better to change the libray name, Chocolate can become CicmGUI ?

About the right click during runmode, It's possible to change it but I don't really like it. Do you think that's really important ?To include in Pd-ext, it's possible to only include Chocolate, I just have to replace all the c.prepend and c.loadmess with prepend and init. I received mails and some users like c.patcherargs and the double click of the coffee objects but they can download and add the library manually.

To include in Vanilla, you're right, the best is to ask to Miller.If we want to "replace" the vanilla GUIs, two suggestions for the moment :- We keep the the vanilla GUIs and we just replace the shortcut, we won't have any problem to load previous patchs and users will use the new GUI for their new patchs (Secure and easy to do, we can also have an option to replace or not the vanilla shortcuts).

- We overwrite the vanilla classes then every objects will replaced but the users will lose the properties (size, font, color, etc...).Another idea is to add a menu option or to offer 2 libraries with one that overwrite classes.

Cheers2014/1/10 Jonathan Wilkes jancs...@yahoo.com


  

  
  
On 01/10/2014 12:50 PM, Dan Wilcox
  wrote:


  
  I don't have any plans, I was only responding in a hypothetical
  manner. I'm busy on a show right now and can't do pd dev. A better
  person to ask is Miller ...

I must have misunderstood-- the way you wrote that made it sound
like there is a process by which the community gets things included
into Pd Vanilla. If such a process existed wouldn't one of the
"dupes" IOhannes cites already be included in Pd Vanilla after over
a decade now?

Instead, I think Pierre has taken the only sensible approach to
making a library that works with both Pd-Vanilla and Pd-extended.
You simply code up the stuff that's been missing forever-- some of
it probably in less time than it takes to respond to questions about
"dupes". Then you ship the library, and it "just works" without
users having to find other libraries.

-Jonathan


  

  On Jan 10, 2014, at 12:48 PM, Jonathan Wilkes jancs...@yahoo.com
wrote:
  
  What
  is your plan for getting the necessary features into
  Vanilla so that such dupes are no longer necessary to
  include in a library like this?



  


  
  Dan Wilcox
  @danomatika
  danomatika.com
  robotcowboy.com
  
  

  

  
  


  


  


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


Dan Wilcox@danomatikadanomatika.comrobotcowboy.com

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


Re: [PD] groove machine how to: keep metro and a loop in sync

2014-01-13 Thread Brian Fay
I'm not super-familiar with the guts of Pd's scheduling system, but I think
that if one metro object outputs a bang to separate tabplay~ objects, both
should start playing at exactly the same time.

While using line~ or phasor~ can lead to more robust samplers (allowing you
to adjust playback speed, etc.), I think tabplay~ should be perfectly
adequate for this patch.

Filippo, it would help us to see your patch and the samples you are using,
so that we could get a better idea of how the loops are getting out of sync.

-Brian


On Mon, Jan 13, 2014 at 12:45 PM, Funs Seelen funssee...@gmail.com wrote:


 Hi Filippo,

 You're welcome.

 You probably forgot to reply-to-all, but I added pd-list to the
 conversation. I hope you don't mind, but I do this ...
 a) to prevent ten people to answer the same question, not knowing that
 nine others are or have been spending time to do exactly the same, and
 b) for the archive. It's annoying if you have a problem, search the web,
 and do find your question, but not the answer, since it is not made public.

 On Mon, Jan 13, 2014 at 5:48 PM, Filippo Beck Peccoz m...@fbpsound.comwrote:

 Hi Funs and thanks a lot for the message! Sorry if I'm launching noob
 questions at you, but so far I've only used a tabplay~ object and a metro
 with a set bpm, and triggered both of them at the same time- this is
 obviously not ideal..although it almost works the fade into and out of
 the drum loop should be perfectly timed, especially for this kind of
 application.

 I am, however, a little lost as to how extrapolate bar/beat information
 from the objects you suggested. I'm sure it's super easy and I'm missing
 something obvious. Why do you put the 1000 in the message that goes to the
 line object?


 I assumed you were reading the table with [tabread~] or [tabread4~]. For
 looping purposes it is common to use [phasor~] in combination with one of
 these two. If the loop should last 1 second (1000 ms) its frequence should
 be 1 Hertz (cycle per second). So the equivalent for the argument `1' for
 [phasor~] would be `1000' (milliseconds) for [line~]. Translation is done
 using the following function: y = 1000 / x, where x is the length of the
 time interval in ms and y the frequency in Hz (note that x = 1000 / y).
 This one second sample was just an example. [soundfiler] outputs the length
 of your sound sample in dsp samples.

 I don't understand what you mean by `bar/beat information', for I can't
 precisely imagine what you are building.

 Regards,
 Funs


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


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


Re: [PD] libpd separating gui from core

2014-01-13 Thread Jonathan Wilkes

On 01/13/2014 09:32 AM, Dan Wilcox wrote:
As Hans has proposed for years, IMO this is really the only way to 
perhaps solve the PD gui development doesn't move fast enough 
problem in the long term. In this case, Miller would have the core (in 
libpd)  the pd-vanilla wrapper gui formally separated while everyone 
else can then use the same libpd core within other flavors. The DSP 
core is the heart and soul and I see no reason to try and change that 
in any way.


Sorry, I don't know quite what you're referring to here.  The only two 
examples I gave-- $@ and [initbang] wouldn't change anything in the DSP 
core.




On Jan 13, 2014, at 1:54 AM, Jonathan Wilkes jancs...@yahoo.com 
mailto:jancs...@yahoo.com wrote:



#2 is hard.  Where would you start and how would you proceed?


I think what makes sense is to list out the main interfaces to the DSP 
core that are currently being used by TCL.


I think by DSP core you're referring to:
* DSP graph stuff
* message dispatching system
* various widgetbehaviors and data structures parentwidgetbehaviors
* all the gui logic in g_editor.c
* gui queuing stuff, array selection/manipulation logic, mouse motion 
callbacks, and probably other things I'm forgetting


Is this correct?

In the simplest case, we could literally create wrapper functions 
which emulate the tcl argument lists. libpd currently wraps the formal 
message sending, midi,  processing areas. I think now we need to see 
if it's possible to wrap the DSP graph editing/manipulation, canvas, 
patch loading/saving, etc.


I'm not clear on what libpd actually includes.  For example, does all 
the logic from g_editor remain intact?


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


[PD] Check for batch and/or nogui mode from Patch

2014-01-13 Thread Thomas Mayer
Hi,

is there a way to get information on whether Pd has been started with
-batch or -nogui from inside a patch?

I am trying to make unit tests by starting a Pd instance in batch mode
from Python, and comparing the output from [stdout] to the desired
result, and I want Pd to close itself via [; pd quit(. When Pd is not
running in batch mode, then I want to stop this message from being sent
with a [spigot], something like:

[loadbang]
|
[message for object(
|
[object-to-test]
|
[t b a]
| |
| [stdout]
|
|  [test-for-batch-mode]
|  |
[spigot]
|
[; pd quit(

Thanks,
Thomas
-- 
We left all that stuff out. If there's an error, we have this
routine called panic, and when it is called, the machine crashes,
and you holler down the hall, 'Hey, reboot it.' (Dennis Ritchie)
http://www.residuum.org/

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


Re: [PD] groove machine how to: keep metro and a loop in sync

2014-01-13 Thread Filippo Beck Peccoz
Thank you Funs for pointing the reply-all thing out, sorry! Now sending to the 
whole list :)

I'd be happy to keep tabplay for this since it seems solid and easy to work 
with, but will have to look deeper into the phasor~ solution, it looks very 
interesting.

Brian, thanks for your suggestions, and here is the patch with a test loop.

https://fbpserver.dyndns.org/pydio/data/public/366c84.php

It's messy but I commented a bit to show the way- I'm still thinking about how 
to integrate some sort of dynamic difficulty level that gradually introduces 
longer stretches of silence, but that is not hardcoded like it is here.

After a while, the fade kicks in just a tad early, it seems to me. The basic 
functions are there, but it's weird that it seems to slide a bit. Or am I going 
crazy? :)


Cheers,

Filippo


Filippo Beck Peccoz
Game Audio

www.fbpsound.com
Twitter: @fbpsound
Skype: fbpsound
Mobile: +49-(0)1520-4004143
Studio: +49-(0)89-80033204
Fax: +49-(0)89-99752164




On Jan 13, 2014, at 7:22 PM, Brian Fay ovaltinevor...@gmail.com wrote:

 I'm not super-familiar with the guts of Pd's scheduling system, but I think 
 that if one metro object outputs a bang to separate tabplay~ objects, both 
 should start playing at exactly the same time. 
 
 While using line~ or phasor~ can lead to more robust samplers (allowing you 
 to adjust playback speed, etc.), I think tabplay~ should be perfectly 
 adequate for this patch.
 
 Filippo, it would help us to see your patch and the samples you are using, so 
 that we could get a better idea of how the loops are getting out of sync.
 
 -Brian
 
 
 On Mon, Jan 13, 2014 at 12:45 PM, Funs Seelen funssee...@gmail.com wrote:
 
 Hi Filippo,
 
 You're welcome.
 
 You probably forgot to reply-to-all, but I added pd-list to the conversation. 
 I hope you don't mind, but I do this ...
 a) to prevent ten people to answer the same question, not knowing that nine 
 others are or have been spending time to do exactly the same, and
 b) for the archive. It's annoying if you have a problem, search the web, and 
 do find your question, but not the answer, since it is not made public.
 
 On Mon, Jan 13, 2014 at 5:48 PM, Filippo Beck Peccoz m...@fbpsound.com 
 wrote:
 Hi Funs and thanks a lot for the message! Sorry if I'm launching noob 
 questions at you, but so far I've only used a tabplay~ object and a metro 
 with a set bpm, and triggered both of them at the same time- this is 
 obviously not ideal..although it almost works the fade into and out of the 
 drum loop should be perfectly timed, especially for this kind of application.
 
 I am, however, a little lost as to how extrapolate bar/beat information from 
 the objects you suggested. I'm sure it's super easy and I'm missing something 
 obvious. Why do you put the 1000 in the message that goes to the line object?
  
 I assumed you were reading the table with [tabread~] or [tabread4~]. For 
 looping purposes it is common to use [phasor~] in combination with one of 
 these two. If the loop should last 1 second (1000 ms) its frequence should be 
 1 Hertz (cycle per second). So the equivalent for the argument `1' for 
 [phasor~] would be `1000' (milliseconds) for [line~]. Translation is done 
 using the following function: y = 1000 / x, where x is the length of the time 
 interval in ms and y the frequency in Hz (note that x = 1000 / y). This one 
 second sample was just an example. [soundfiler] outputs the length of your 
 sound sample in dsp samples.
 
 I don't understand what you mean by `bar/beat information', for I can't 
 precisely imagine what you are building.
 
 Regards,
 Funs
 
 
 ___
 Pd-list@iem.at mailing list
 UNSUBSCRIBE and account-management - 
 http://lists.puredata.info/listinfo/pd-list
 
 

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


Re: [PD] libpd separating gui from core

2014-01-13 Thread Dan Wilcox
Woops, forgot the reply-all.

On Jan 13, 2014, at 2:25 PM, Jonathan Wilkes jancs...@yahoo.com wrote:

 On 01/13/2014 09:32 AM, Dan Wilcox wrote:
 As Hans has proposed for years, IMO this is really the only way to perhaps 
 solve the PD gui development doesn't move fast enough problem in the long 
 term. In this case, Miller would have the core (in libpd)  the pd-vanilla 
 wrapper gui formally separated while everyone else can then use the same 
 libpd core within other flavors. The DSP core is the heart and soul and I 
 see no reason to try and change that in any way.
 
 Sorry, I don't know quite what you're referring to here.  The only two 
 examples I gave-- $@ and [initbang] wouldn't change anything in the DSP core.

I wasn't referring to anything in particular, only in general.

 
 On Jan 13, 2014, at 1:54 AM, Jonathan Wilkes jancs...@yahoo.com wrote:
 
 #2 is hard.  Where would you start and how would you proceed?
 
 
 I think what makes sense is to list out the main interfaces to the DSP core 
 that are currently being used by TCL.
 
 I think by DSP core you're referring to:
 * DSP graph stuff
 * message dispatching system
 * various widgetbehaviors and data structures parentwidgetbehaviors
 * all the gui logic in g_editor.c
 * gui queuing stuff, array selection/manipulation logic, mouse motion 
 callbacks, and probably other things I'm forgetting
 
 Is this correct?

Yes, minus the widgets and gui queuing stuff, etc. I'm talking about finding a 
way to separate the strictly gui stuff from the DSP graph. I recognize that 
some of that is required, so I'm trying to think pragmatically. Obviously 
you're a better judge of that as you have more experience with the code in the 
area.

 In the simplest case, we could literally create wrapper functions which 
 emulate the tcl argument lists. libpd currently wraps the formal message 
 sending, midi,  processing areas. I think now we need to see if it's 
 possible to wrap the DSP graph editing/manipulation, canvas, patch 
 loading/saving, etc.
 
 I'm not clear on what libpd actually includes.  For example, does all the 
 logic from g_editor remain intact?

Yes. Everything is still there. It merely abstracts sending messages and midi 
into and out of the libpd instance. I don't see why we couldn't do the same 
with what's needed by an external gui wrapper around it.


Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com





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


Re: [PD] Check for batch and/or nogui mode from Patch

2014-01-13 Thread Cyrille Henry

hello,

the most simple solution is to add a message at startup :
pd -batch -send testquit bang

[loadbang]
|
[message for object(
|
[object-to-test]
|
[t b a]
| |
| [stdout]
|
|   [r testquit]
|   |
|  [1 
|   |
[spigot 0]
|
[; pd quit(

cheers
c


Le 13/01/2014 20:26, Thomas Mayer a écrit :

Hi,

is there a way to get information on whether Pd has been started with
-batch or -nogui from inside a patch?

I am trying to make unit tests by starting a Pd instance in batch mode
from Python, and comparing the output from [stdout] to the desired
result, and I want Pd to close itself via [; pd quit(. When Pd is not
running in batch mode, then I want to stop this message from being sent
with a [spigot], something like:

[loadbang]
|
[message for object(
|
[object-to-test]
|
[t b a]
| |
| [stdout]
|
|  [test-for-batch-mode]
|  |
[spigot]
|
[; pd quit(

Thanks,
Thomas



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


Re: [PD] Check for batch and/or nogui mode from Patch

2014-01-13 Thread Roman Haefeli
On Mon, 2014-01-13 at 20:26 +0100, Thomas Mayer wrote:
 Hi,
 
 is there a way to get information on whether Pd has been started with
 -batch or -nogui from inside a patch?

Though I consider Cyrille's approach the clean way for your specific
purpose, there is also a way to check for '-batch' without help from
outside. Measure [delay 1000] with [realtime] and if the result is
orders of magnitude smaller than '1000' (say 0.4), Pd has most likely
been started with '-batch' (assuming it didn't do much during the 1000ms
logical time). 

Roman





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


Re: [PD] libpd separating gui from core

2014-01-13 Thread Jonathan Wilkes

On 01/13/2014 03:11 PM, Dan Wilcox wrote:

Woops, forgot the reply-all.

On Jan 13, 2014, at 2:25 PM, Jonathan Wilkes jancs...@yahoo.com 
mailto:jancs...@yahoo.com wrote:



On 01/13/2014 09:32 AM, Dan Wilcox wrote:
As Hans has proposed for years, IMO this is really the only way to 
perhaps solve the PD gui development doesn't move fast enough 
problem in the long term. In this case, Miller would have the core 
(in libpd)  the pd-vanilla wrapper gui formally separated while 
everyone else can then use the same libpd core within other flavors. 
The DSP core is the heart and soul and I see no reason to try and 
change that in any way.


Sorry, I don't know quite what you're referring to here. The only two 
examples I gave-- $@ and [initbang] wouldn't change anything in the 
DSP core.


I wasn't referring to anything in particular, only in general.


Then what do you think of $@ or [initbang]?  Are there good reasons 
for them not being in the core?  What about infinite undo? Or symbols 
that don't cause memory leaks?






On Jan 13, 2014, at 1:54 AM, Jonathan Wilkes jancs...@yahoo.com 
mailto:jancs...@yahoo.com wrote:



#2 is hard.  Where would you start and how would you proceed?


I think what makes sense is to list out the main interfaces to the 
DSP core that are currently being used by TCL.


I think by DSP core you're referring to:
* DSP graph stuff
* message dispatching system
* various widgetbehaviors and data structures parentwidgetbehaviors
* all the gui logic in g_editor.c
* gui queuing stuff, array selection/manipulation logic, mouse motion 
callbacks, and probably other things I'm forgetting


Is this correct?


Yes, minus the widgets and gui queuing stuff, etc. I'm talking about 
finding a way to separate the strictly gui stuff from the DSP graph. I 
recognize that some of that is required, so I'm trying to think 
pragmatically. Obviously you're a better judge of that as you have 
more experience with the code in the area.


In the simplest case, we could literally create wrapper functions 
which emulate the tcl argument lists. libpd currently wraps the 
formal message sending, midi,  processing areas. I think now we 
need to see if it's possible to wrap the DSP graph 
editing/manipulation, canvas, patch loading/saving, etc.


I'm not clear on what libpd actually includes.  For example, does all 
the logic from g_editor remain intact?


Yes. Everything is still there. It merely abstracts sending messages 
and midi into and out of the libpd instance. I don't see why we 
couldn't do the same with what's needed by an external gui wrapper 
around it.


Hm... I didn't realize that.  That being the case, you could certainly 
go ahead and figure out some interim way of sending and parsing tcl 
messages using whichever gui toolkit you prefer. However, it's worth 
understanding a bit about why Pd-l2ork has diverged somewhat from the 
code you'd be wrapping (in no particular order, and definitely not 
exhaustive):
* displacing selected objects requires a message from core - gui for 
every single object that is selected.  Here's such a message for 
displacing [clip] by one pixel:


.x9892638.c move .x9892638.t9896128 1 0
.x9892638.c coords .x9892638.t9896128R 40 37 72 54
.x9892638.c itemconfigure .x9892638.t9896128R -dash 
.x9892638.c coords .x9892638.t9896128o0 40 53 47 54
.x9892638.c coords .x9892638.t9896128i0 40 37 47 38
.x9892638.c coords .x9892638.t9896128i1 52 37 59 38
.x9892638.c coords .x9892638.t9896128i2 65 37 72 38

Compare to Pd-l2ork for the same action:
.xa261e08.c move selected 1 0

And here's the Pd-l2ork message for displacing 100 selected [clip] 
objects by one pixel:

.xa261e08.c move selected 1 0

(Compare to 36K of messages that Vanilla must send in order to do the 
same thing.)


It's even worse for Put menu arrays.  Just fire up Pd with the -d 3 
flag and look at

what gets sent from core - gui every time you move the array one pixel.

* Vanilla only has a single undo level.  So if you want the gui with 
libpd to be at all modern you'll have to either a) add undo facilities 
to the core or b) code up a completely separate model of Pd objects in 
whatever language your gui uses.  matju took route b in DesireData-- 
if you can still dl it, look in poe.tcl-- it's a tcl object-oriented 
library that keeps track of objects/canvases/etc.  (Tcl/Tk 8.6 includes 
an object-oriented library in the core, so maybe this is easier to do 
now.) Ivica took route a in Pd-l2ork.  Maybe there's some easier way 
to do this, but if you go a different route make sure it's maintainable.


* Most of the vanilla stuff doesn't even make use of the sys_queuegui 
functionality which (as far as I understand it) can filter out needless 
calls to the gui.


* If you don't want to make changes to the core libpd stuff, the 
problems mentioned above still cause dropouts.  The core is sending (and 
the gui is receiving) enormous amounts of data over a socket while the 
audio engine is trying to meet deadlines.  

Re: [PD] libpd separating gui from core

2014-01-13 Thread Dan Wilcox

On Jan 13, 2014, at 5:05 PM, Jonathan Wilkes jancs...@yahoo.com wrote:

 On 01/13/2014 03:11 PM, Dan Wilcox wrote:
 Woops, forgot the reply-all.
 
 On Jan 13, 2014, at 2:25 PM, Jonathan Wilkes jancs...@yahoo.com wrote:
 
 Sorry, I don't know quite what you're referring to here.  The only two 
 examples I gave-- $@ and [initbang] wouldn't change anything in the DSP 
 core.
 
 I wasn't referring to anything in particular, only in general.
 
 Then what do you think of $@ or [initbang]?  Are there good reasons for 
 them not being in the core?  What about infinite undo?  Or symbols that don't 
 cause memory leaks?

Those would definitely be nice to have. I don't know what $@ refers to, is it 
the object arguments as a list?

 On Jan 13, 2014, at 1:54 AM, Jonathan Wilkes jancs...@yahoo.com wrote:
 
 Yes. Everything is still there. It merely abstracts sending messages and 
 midi into and out of the libpd instance. I don't see why we couldn't do the 
 same with what's needed by an external gui wrapper around it.
 
 Hm... I didn't realize that.  That being the case, you could certainly go 
 ahead and figure out some interim way of sending and parsing tcl messages 
 using whichever gui toolkit you prefer.  However, it's worth understanding a 
 bit about why Pd-l2ork has diverged somewhat from the code you'd be wrapping 
 (in no particular order, and definitely not exhaustive):

[snip]

That's all good info to know, thanks. I'd imagine libpd would't need to handle 
*move functions though. Does the dsp graph rely on positioning? I thought only 
via connections. I'd imagine the gui wrapper should only worry about 
positioning and simply update those changes when saving. 


Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com





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


[PD] UDP vs TCP, for OSC networking

2014-01-13 Thread Jonghyun Kim
Hi list,

I'm sending data between two computers, in every 10ms. For fast networking,
TCP is better result? I don't know which is better. Most tutorials show
example of OSC with UDP. Why?

Thanks,
Jong
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] libpd separating gui from core

2014-01-13 Thread Dan Wilcox
Ah wait, duh. Of course the graph needs to know positioning, that's how it 
determines execution order or independent blocks of objects right?

On Jan 13, 2014, at 5:14 PM, Dan Wilcox danomat...@gmail.com wrote:

 Does the dsp graph rely on positioning? I thought only via connections. I'd 
 imagine the gui wrapper should only worry about positioning and simply update 
 those changes when saving.


Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com





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


Re: [PD] UDP vs TCP, for OSC networking

2014-01-13 Thread Scott R. Looney
hi, i'm not an expert on PD but my feeling was that TCP does error checking
while UDP does not, and that at least is one reason why TCP should be
slower than UDP in a typical networking situation.

scott


On Mon, Jan 13, 2014 at 2:20 PM, Jonghyun Kim agitato...@gmail.com wrote:

 Hi list,

 I'm sending data between two computers, in every 10ms. For fast
 networking, TCP is better result? I don't know which is better. Most
 tutorials show example of OSC with UDP. Why?

 Thanks,
 Jong

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


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


Re: [PD] Check for batch and/or nogui mode from Patch

2014-01-13 Thread Thomas Mayer
Hi,

On 13.01.2014 21:20, Cyrille Henry wrote:
 hello,
 
 the most simple solution is to add a message at startup :
 pd -batch -send testquit bang

thanks, that worked liked a charm. Minor correction though: The command
line is

pd -batch -send testquit bang

 
 [loadbang]
 |
 [message for object(
 |
 [object-to-test]
 |
 [t b a]
 | |
 | [stdout]
 |
 |   [r testquit]
 |   |
 |  [1 
 |   |
 [spigot 0]
 |
 [; pd quit(

And now: Unit testing PuREST JSON,
Thomas
-- 
Ich komme aus dem Staunen nicht heraus.
Dann bleib halt drin, du Seppel
(Dietmar Dath - Die Abschaffung der Arten)
http://www.residuum.org/

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


Re: [PD] libpd separating gui from core

2014-01-13 Thread Jonathan Wilkes

On 01/13/2014 05:14 PM, Dan Wilcox wrote:


On Jan 13, 2014, at 5:05 PM, Jonathan Wilkes jancs...@yahoo.com 
mailto:jancs...@yahoo.com wrote:



On 01/13/2014 03:11 PM, Dan Wilcox wrote:

Woops, forgot the reply-all.

On Jan 13, 2014, at 2:25 PM, Jonathan Wilkes jancs...@yahoo.com 
mailto:jancs...@yahoo.com wrote:


Sorry, I don't know quite what you're referring to here.  The only 
two examples I gave-- $@ and [initbang] wouldn't change anything in 
the DSP core.


I wasn't referring to anything in particular, only in general.


Then what do you think of $@ or [initbang]?  Are there good reasons 
for them not being in the core?  What about infinite undo?  Or 
symbols that don't cause memory leaks?


Those would definitely be nice to have. I don't know what $@ refers 
to, is it the object arguments as a list?


On Jan 13, 2014, at 1:54 AM, Jonathan Wilkes jancs...@yahoo.com 
mailto:jancs...@yahoo.com wrote:


Yes. Everything is still there. It merely abstracts sending messages 
and midi into and out of the libpd instance. I don't see why we 
couldn't do the same with what's needed by an external gui wrapper 
around it.


Hm... I didn't realize that.  That being the case, you could 
certainly go ahead and figure out some interim way of sending and 
parsing tcl messages using whichever gui toolkit you prefer.  
However, it's worth understanding a bit about why Pd-l2ork has 
diverged somewhat from the code you'd be wrapping (in no particular 
order, and definitely not exhaustive):


[snip]

That's all good info to know, thanks. I'd imagine libpd would't need 
to handle *move functions though. Does the dsp graph rely on positioning?


It does for [inlet~] and [outlet~]

And for message dispatching [inlet] and [outlet].

There are also objects like [cnv] and some externals which can use and 
report object position in the flow of an object chain.


I thought only via connections. I'd imagine the gui wrapper should 
only worry about positioning and simply update those changes when saving.



Dan Wilcox
@danomatika
danomatika.com http://danomatika.com
robotcowboy.com http://robotcowboy.com







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


Re: [PD] UDP vs TCP, for OSC networking

2014-01-13 Thread Ryan Smith
Pretty much. TCP ensures that every packet gets there intact. You have
a back and forth between the server of the packet and the client to
make sure. UDP just sends the packet where you ask, and doesn't
confirm whether it makes it at all. Generally for most OSC use the
number of packets you're sending isn't going to be high enough that
packet loss is an issue and most people use UDP since it will be
faster. Then if you're running into packet loss, for whatever reason,
try switching to TCP.

On Mon, Jan 13, 2014 at 2:44 PM, Scott R. Looney scottrloo...@gmail.com wrote:
 hi, i'm not an expert on PD but my feeling was that TCP does error checking
 while UDP does not, and that at least is one reason why TCP should be slower
 than UDP in a typical networking situation.

 scott


 On Mon, Jan 13, 2014 at 2:20 PM, Jonghyun Kim agitato...@gmail.com wrote:

 Hi list,

 I'm sending data between two computers, in every 10ms. For fast
 networking, TCP is better result? I don't know which is better. Most
 tutorials show example of OSC with UDP. Why?

 Thanks,
 Jong

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



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


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