Re: [PD] [*] vs [*~]

2007-01-01 Thread Frank Barknecht
Hallo,
Patco hat gesagt: // Patco wrote:

 Patco a écrit :
 The most deluding stuff is $0 for my concern, it's very harassing to 
 not being able to use it in messages.
 all the other craps are quite tolerable here with last versions.
 [i $0]
 |
 [$1(
 
 is harassing/boring too.

What about this?
 
 [bang(
 |
 [list append pd-$0-happy-new-year and all the best for 2007!]
 | 
 [print]

Ciao
-- 
 Frank Barknecht _ __footils.org_ __goto10.org__

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


Re: [PD] [*] vs [*~]

2007-01-01 Thread Patco

Frank Barknecht a écrit :

Hallo,
Patco hat gesagt: // Patco wrote:

  

Patco a écrit :

The most deluding stuff is $0 for my concern, it's very harassing to 
not being able to use it in messages.

all the other craps are quite tolerable here with last versions.
  

[i $0]
|
[$1(

is harassing/boring too.



What about this?
 
 [bang(

 |
 [list append pd-$0-happy-new-year and all the best for 2007!]
 | 
 [print]


Ciao
  

This is pretty elegant!
Thanks.


[r number of pd-list users]
|
[until]
|
[t a b]
|  |
| [i 0][+1]
|  |
| [s $0demux]
[list append pd-$0-happy-new-year 2007]
|[r $0demux]
| |
[demultiplex]
| ..|
[s user1] [s usern]

Cheers.
Pc.





___ 
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! 
Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses 
http://fr.answers.yahoo.com



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


Re: [PD] [*] vs [*~]

2007-01-01 Thread Hans-Christoph Steiner


On Dec 31, 2006, at 4:32 PM, Mathieu Bouchard wrote:


On Sun, 31 Dec 2006, Hans-Christoph Steiner wrote:

On Dec 30, 2006, at 5:27 PM, Mathieu Bouchard wrote:

But how does the type of those cords represent anything else than  
limitations of the implementation? How does the choice of  
considering those things as distinct types, and the choice to not  
auto-convert between types, constitute wise design decisions,  
beyond just being things that we have to accept as fact in the  
context of Pd?


Its a design choice, its part of the language.


This is not an answer to any of the above questions,
Unless you're asserting that I should not ask such questions.

Any implementation would have to include that in order to be  
compatible.


And that's false, unless you include as a requirement that programs  
that fail to run with pd should also fail with any replacement of  
pd (which is usually not something considered a requirement).


Removing type constraints doesn't break compatibility,
It's not like removing all type information, which would break the  
parts of programs that make decisions based on type information.



You are free to believe anything you want.  But if you look at all  
the implementations of Java, C, C++, etc. you will see that they all  
handle strong typing, static typing, whatever the exact same way with  
only minor caveats here and there that are usually labeled as  
incompatible.


.hc



 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada





If nature has made any one thing less susceptible than all others of  
exclusive property, it is the action of the thinking power called an  
idea, which an individual may exclusively possess as long as he keeps  
it to himself; but the moment it is divulged, it forces itself into  
the possession of everyone, and the receiver cannot dispossess  
himself of it.- Thomas Jefferson




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


Re: [PD] [*] vs [*~]

2007-01-01 Thread Hans-Christoph Steiner


On Dec 31, 2006, at 5:09 PM, carmen wrote:

Yes, a lot of this kind of stuff is done for efficiency's sake,  
like messages vs. audio rate data.


also for efficieny's sake (on the implementation side), some of the  
newer graphical dataflow / patcher engines consider them one and  
the same, and solve the rate-efficiency issue by allowing a mix of  
a wide range of threads of varying execution rate (chuck calls them  
Shreds) in synch in the same subpatch...


Since there is often talk of threading on here, I want to clarify  
ChucK's shreds a bit. ChucK does not use threads like pthreads, or  
Mac OS X/Windows threads.  Its shreds are more like Windows 3.1  
threads, i.e. cooperative or non-preemptive as they put it.   
Basically, its structured quite similarly to Pd, Csound, etc., except  
that the scheduler is more flexible and exposed. Plus, you have to  
handle a lot of the scheduling.


.hc



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





[W]e have invented the technology to eliminate scarcity, but we are  
deliberately throwing it away to benefit those who profit from  
scarcity.-John Gilmore




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


Re: [PD] [*] vs [*~]

2006-12-31 Thread Hans-Christoph Steiner


On Dec 30, 2006, at 5:27 PM, Mathieu Bouchard wrote:


On Thu, 28 Dec 2006, Hans-Christoph Steiner wrote:

Much more importantly, the thick coords represent that a different  
data type is passing thru the coords.  It's not really an issue of  
representing the implementation, instead it's representing that  
those two types of coords can not be intermixed.


But how does the type of those cords represent anything else than  
limitations of the implementation? How does the choice of  
considering those things as distinct types, and the choice to not  
auto-convert between types, constitute wise design decisions,  
beyond just being things that we have to accept as fact in the  
context of Pd?


Its a design choice, its part of the language.  Any implementation  
would have to include that in order to be compatible.


.hc



 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada





Computer science is no more related to the computer than astronomy is  
related to the telescope.  -Edsger Dykstra




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


Re: [PD] [*] vs [*~]

2006-12-31 Thread Hans-Christoph Steiner


On Dec 30, 2006, at 10:41 PM, David NG McCallum wrote:


On 27/12/06, Tim Blechmann [EMAIL PROTECTED] wrote:

 Do you mean that it would be difficult to figure out what's a  
DSP object

 and what's not, in terms of figuring out what's in the DSP chain?

from the user point of view, i think, it's a good idea, to have a
specific separation between dsp and messaging, because both work with
very different concepts.


Maybe I shouldn't be jumping into this discussion so late, with little
programming knowledge, but…

If we're to think about the metaphor of dataflow languages, which is
essentially modelled after electronics and circuits (and I'm thinking
about analogue circuits, although I'm sure a similar argument could be
made for digital), then there should be no difference between
control and audio, because they're the exact same thing.

We might think that separating control and audio makes perfect sense
from a user standpoint---I even think so. But I'm pretty sure that we
only think that way because we've learned to think within the dataflow
paradigm. If this distinction never existed, we wouldn't think twice
about mixing the types, because there wouldn't be any types.

I remember learning the difference between floats and ints. From a
user's standpoint, why bother? I remember resigning myself to well
that's annoying, but I guess it's necessary. Why does Pd not
distinguish, but Max does?

As far as I understand, the difference between control and audio data
exists purely for computational efficiency, and has no real conceptual
basis. (Maybe I'm asking for a beatdown with that statement…)


Yes, a lot of this kind of stuff is done for efficiency's sake, like  
messages vs. audio rate data.  Its hard to get around that.  But the  
strong types of symbol vs. float are an human-computer interface  
question.


.hc



D!


--
__ _  _  _  __ _
http://sintheta.org

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





[W]e have invented the technology to eliminate scarcity, but we are  
deliberately throwing it away to benefit those who profit from  
scarcity.-John Gilmore




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


Re: [PD] [*] vs [*~]

2006-12-31 Thread Hans-Christoph Steiner


On Dec 30, 2006, at 5:14 PM, Mathieu Bouchard wrote:


On Thu, 28 Dec 2006, Hans-Christoph Steiner wrote:
Pd is strongly typed, so floats and signal data are different  
types, just like floats and symbols.


What is a type? (without just giving a list of the existing types  
in pd)


What does strongly typed mean?

Have you read what I wrote to you, about strongly typed being  
vague wording?


I think the wikipedia page does a pretty good job of describing it:

http://en.wikipedia.org/wiki/Strong_typing

The bullet points in particular.

.hc



 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada





Terrorism is not an enemy.  It cannot be defeated.  It's a tactic.   
It's about as sensible to say we declare war on night attacks and  
expect we're going to win that war.  We're not going to win the war  
on terrorism.- retired U.S. Army general, William Odom




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


Re: [PD] [*] vs [*~]

2006-12-31 Thread Mathieu Bouchard

On Sun, 31 Dec 2006, Hans-Christoph Steiner wrote:

On Dec 30, 2006, at 5:14 PM, Mathieu Bouchard wrote:
Have you read what I wrote to you, about strongly typed being vague 
wording?

I think the wikipedia page does a pretty good job of describing it:
http://en.wikipedia.org/wiki/Strong_typing
The bullet points in particular.


No, not the bullet points, I mean like the part at the end that says:

« For this reason, writers who wish to write unambiguously about type
  systems often eschew the term strong typing in favor of specific
  expressions such as static typing or type safety. »

However, after dealing with types that long, I've come to believe that 
static typing is vague too.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-31 Thread Mathieu Bouchard

On Sun, 31 Dec 2006, Hans-Christoph Steiner wrote:

On Dec 30, 2006, at 5:27 PM, Mathieu Bouchard wrote:

But how does the type of those cords represent anything else than 
limitations of the implementation? How does the choice of considering those 
things as distinct types, and the choice to not auto-convert between types, 
constitute wise design decisions, beyond just being things that we have to 
accept as fact in the context of Pd?


Its a design choice, its part of the language.


This is not an answer to any of the above questions,
Unless you're asserting that I should not ask such questions.


Any implementation would have to include that in order to be compatible.


And that's false, unless you include as a requirement that programs that 
fail to run with pd should also fail with any replacement of pd (which is 
usually not something considered a requirement).


Removing type constraints doesn't break compatibility,
It's not like removing all type information, which would break the parts 
of programs that make decisions based on type information.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-31 Thread carmen
 Yes, a lot of this kind of stuff is done for efficiency's sake, like messages 
 vs. audio rate data.

also for efficieny's sake (on the implementation side), some of the newer 
graphical dataflow / patcher engines consider them one and the same, and solve 
the rate-efficiency issue by allowing a mix of a wide range of threads of 
varying execution rate (chuck calls them Shreds) in synch in the same 
subpatch...

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


Re: [PD] [*] vs [*~]

2006-12-31 Thread Patco

Patco a écrit :
The most deluding stuff is $0 for my concern, it's very harassing to 
not being able to use it in messages.

all the other craps are quite tolerable here with last versions.

[i $0]
|
[$1(

is harassing/boring too.





___ 
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! 
Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses 
http://fr.answers.yahoo.com



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


Re: [PD] [*] vs [*~]

2006-12-30 Thread Mathieu Bouchard

On Thu, 28 Dec 2006, Hans-Christoph Steiner wrote:

Much more importantly, the thick coords represent that a different data 
type is passing thru the coords.  It's not really an issue of 
representing the implementation, instead it's representing that those 
two types of coords can not be intermixed.


But how does the type of those cords represent anything else than 
limitations of the implementation? How does the choice of considering 
those things as distinct types, and the choice to not auto-convert between 
types, constitute wise design decisions, beyond just being things that we 
have to accept as fact in the context of Pd?


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-30 Thread David NG McCallum

On 27/12/06, Tim Blechmann [EMAIL PROTECTED] wrote:


 Do you mean that it would be difficult to figure out what's a DSP object
 and what's not, in terms of figuring out what's in the DSP chain?

from the user point of view, i think, it's a good idea, to have a
specific separation between dsp and messaging, because both work with
very different concepts.


Maybe I shouldn't be jumping into this discussion so late, with little
programming knowledge, but…

If we're to think about the metaphor of dataflow languages, which is
essentially modelled after electronics and circuits (and I'm thinking
about analogue circuits, although I'm sure a similar argument could be
made for digital), then there should be no difference between
control and audio, because they're the exact same thing.

We might think that separating control and audio makes perfect sense
from a user standpoint---I even think so. But I'm pretty sure that we
only think that way because we've learned to think within the dataflow
paradigm. If this distinction never existed, we wouldn't think twice
about mixing the types, because there wouldn't be any types.

I remember learning the difference between floats and ints. From a
user's standpoint, why bother? I remember resigning myself to well
that's annoying, but I guess it's necessary. Why does Pd not
distinguish, but Max does?

As far as I understand, the difference between control and audio data
exists purely for computational efficiency, and has no real conceptual
basis. (Maybe I'm asking for a beatdown with that statement…)

D!


--
__ _  _  _  __ _
http://sintheta.org

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


Re: [PD] [*] vs [*~]

2006-12-30 Thread Mathieu Bouchard

On Sat, 30 Dec 2006, David NG McCallum wrote:

If we're to think about the metaphor of dataflow languages, which is 
essentially modelled after electronics and circuits (and I'm thinking 
about analogue circuits, although I'm sure a similar argument could be 
made for digital), then there should be no difference between control 
and audio, because they're the exact same thing.


If pd's message system was designed while thinking of any kind of 
hardware, it must've been MIDI hardware (nevermind undo the MIDI 
revolution...)


while analogue circuits can transmit float-like messages by sending 
appropriate events (either in the data wire or as an auxiliary wire), they 
lack the dynamic range and the precision of the floats or even the 
integers. Fixing that requires a digital protocol, which is also what is 
required for supporting symbols. G-Pointers (at the heart of so-called 
Data Structures) require more than just a digital protocol, they require a 
common digital memory accessible by any object that is supposed to work on 
them.


The main differences between messages and signals, is that messages have a 
very variable rate, an execution order, and more flexible feedback than 
signals. Also, the variable rate can convey meaning: there's a big 
difference between getting no message, and getting an empty (bang) 
message.


Dataflow as a concept is not limited to a metaphor of electronic circuits, 
though lots of dataflow systems limit themselves like that. IMHO, dataflow 
is about outlets and inlets being connected and something (possibly 
anything) getting sent from outlet to inlet.



[...] because we've learned to think within the dataflow paradigm.


Actually you may call it the Miller paradigm instead: afaik, it's very 
appropriate to do so (factually speaking).


If this distinction never existed, we wouldn't think twice about mixing 
the types, because there wouldn't be any types.


Mostly agreed.

As far as I understand, the difference between control and audio data 
exists purely for computational efficiency, and has no real conceptual 
basis. (Maybe I'm asking for a beatdown with that statement?)


Trouble comes when you try to emulate messages using signals... 
efficiently... and without making things much more complicated than using 
messages. In the end, what's important is not so much to make the system 
simple, it's about making the system such that it makes the 
problem-solving simple.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-28 Thread Tim Blechmann
  why is there no |!/~| object like in max/msp?
 
 I don't know. Where's the [swap] that can support signals? ;)

well, a |swap| object itself is not a really good solution without an
optimizing compiler for the dsp chain ...

  and why is expr~ so slow?
 
 I don't know, this might deserve a look (or a rewrite).

sample-wise dsp processing is usually way slower than block-wise. iirc,
i read something about a factor 2 ...

t

--
[EMAIL PROTECTED]ICQ: 96771783
http://www.mokabar.tk

The aim of education is the knowledge, not of facts, but of values
  William S. Burroughs


signature.asc
Description: This is a digitally signed message part
___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-28 Thread Tim Blechmann
  If there was no DSP chain, or if the chain included all of the non-DSP, 
  we might delay such determination until later... (but should we?)
  if there was no dsp chain, it would be easier to utilize several audio 
  threads (see jackdmp) ... caching would definitely be worse, though ...
 
 But what if there was one dsp_chain per thread, and that when the 
 dsp_add() phase happens, it adds to one of several dsp_chains depending on 
 some kind of load-balancing metric?

i'm not sure, if you can use traditional dsp chains for multi-threaded
systems. probably you'd be better off, if you implement some
multi-threaded graph traversal, so that parallel nodes can be run on
separate cores. 
for now, i see several problems though:
- the scheduling overhead of traversing a graph in contrary to iterating
over an array
- i'm not sure, if current general purpose operating systems are able to
allow a thread scheduling, that's fine enough, maybe a linux-rt kernel
with high-resolution timers and dyntick would be required for lowest
latencies ...

tim

--
[EMAIL PROTECTED]ICQ: 96771783
http://www.mokabar.tk

Your mind will answer most questions if you learn to relax and wait
for the answer.
  William S. Burroughs


signature.asc
Description: This is a digitally signed message part
___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-28 Thread Roman Haefeli

--- Tim Blechmann [EMAIL PROTECTED] schrieb:

   and why is expr~ so slow?
  
  I don't know, this might deserve a look (or a
 rewrite).
 
 sample-wise dsp processing is usually way slower
 than block-wise. iirc,
 i read something about a factor 2 ...

afaik, [expr~] does non-recursive / block-wise
processing, whereas [fexpr~] does sample-wise /
recursive processing. so, your explanation would apply
to [fexpr~], if i am not totally wrong.

roman




___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.yahoo.de

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


Re: [PD] [*] vs [*~]

2006-12-28 Thread Hans-Christoph Steiner


On Dec 27, 2006, at 12:01 PM, Mathieu Bouchard wrote:



I have some newbie questions here...

why is it that [*] is only for floats, whereas if you want to  
multiply two signals one has to use [*~] ?


Pd is strongly typed, so floats and signal data are different types,  
just like floats and symbols.


And then why is it that [*~] can multiply a signal by a float, but  
[*] can't do that?


And then why is it that [*~] can't multiply a float by a signal,  
the signal has to be on the left? Why is it that if I want to  
divide a float by a signal, then I have to explicitly cast the  
float to signal (using [sig~]) or use [expr~] ?


The right inlet is generally matched to the first argument in the  
object box.  In this context, it makes sense to have only [*~]'s  
right inlet violate the strict typing because you can't type signal  
data into the object box.


.hc



 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC  
Canada___

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





Computer science is no more related to the computer than astronomy is  
related to the telescope.  -Edsger Dykstra




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


Re: [PD] [*] vs [*~]

2006-12-27 Thread Kyle Klipowicz

Haha at first I didn't see who posted this and thought, 'what a newb...'

Now I'm thinking that some philosophic sparring of Pd fundamentals is about
to begin.  I'll make some popcorn and watch this one from the sidelines...

~Kyle


On 12/27/06, Mathieu Bouchard [EMAIL PROTECTED] wrote:



I have some newbie questions here...

why is it that [*] is only for floats, whereas if you want to multiply two
signals one has to use [*~] ?

And then why is it that [*~] can multiply a signal by a float, but [*]
can't do that?

And then why is it that [*~] can't multiply a float by a signal, the
signal has to be on the left? Why is it that if I want to divide a float
by a signal, then I have to explicitly cast the float to signal (using
[sig~]) or use [expr~] ?

_ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada

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






--

http://theradioproject.com
http://perhapsidid.blogspot.com

(()()()(()))()()())(
(())(())()(((
))(__
_())(()))___
(((000)))oOO
___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Tim Blechmann
some follow-ups:

 why is it that [*] is only for floats, whereas if you want to multiply two 
 signals one has to use [*~] ?

why do patch cords have different width?

 And then why is it that [*~] can multiply a signal by a float, but [*] 
 can't do that?

why can |*~| multiply two signals, but why can't |*~ 1| do that?

 And then why is it that [*~] can't multiply a float by a signal, the 
 signal has to be on the left? Why is it that if I want to divide a float 
 by a signal, then I have to explicitly cast the float to signal (using 
 [sig~]) or use [expr~] ?

why is there no |!/~| object like in max/msp? and why is expr~ so slow? 

why are the inlets of |pow~| reversed?

--
[EMAIL PROTECTED]ICQ: 96771783
http://www.mokabar.tk

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


signature.asc
Description: This is a digitally signed message part
___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Georg Holzmann

Hallo!

Hm ... what do you want to say ?
You want polymorphism ?

LG
Georg

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


Re: [PD] [*] vs [*~]

2006-12-27 Thread carmen
 I have some newbie questions here...
 
 why is it that [*] is only for floats, whereas if you want to multiply two 
 signals one has to use [*~] ?
 And then why is it that [*~] can multiply a signal by a float, but [*] can't 
 do that?

because according to Pd rules its not OK to confuse the user with seperate 
objects/operators for floats vs ints or symbols vs strings, but ok for signals 
vs floats?

why is it that [*] can't multiply a list by an integer? or is that what you 
mean by signal, a list of floats?

 And then why is it that [*~] can't multiply a float by a signal, the signal 
 has to be on the left? Why is it that if I want to divide a float by a 
 signal, then I have to 
 explicitly cast the float to signal (using [sig~]) or use [expr~] ?

the main reason i can think of is it's a lossy operation if the return value is 
a float. what value for the signal are you operating on - the value of the 
first sample in the DSP block? the average of all the samples in the block? the 
* vs *~ distinction might be useful to specify a desired return type..

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


Re: [PD] [*] vs [*~]

2006-12-27 Thread Charles Henry

What about efficiency?  There may be certain advantages to defining
the data types, and constraining _inlets_ and atom types during
editing, rather than at run time.  (that's just a guess)



 Hm ... what do you want to say ? You want polymorphism ?

I say what I say. I'm asking, would we prefer polymorphism in this
particular circumstance, and why or why not.

(Of course I want polymorphism, but I don't want to push that into the
question, else the question would be less questioning.)

(In PureUnity I have to do strange hacks so that a box can be [+] or [+~]
depending on the context, because I can't be satisfied just doing
copy+paste and adding/deleting the ~ sign wherever needed: it's ugly to
have to do that).


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


Re: [PD] [*] vs [*~]

2006-12-27 Thread Tim Blechmann
On Wed, 2006-12-27 at 13:43 -0500, Mathieu Bouchard wrote:
 On Wed, 27 Dec 2006, Georg Holzmann wrote:
 
  Hm ... what do you want to say ? You want polymorphism ?
 
 I say what I say. I'm asking, would we prefer polymorphism in this 
 particular circumstance, and why or why not.
 
 (Of course I want polymorphism, but I don't want to push that into the 
 question, else the question would be less questioning.)

well, does polymorphism improve the expressive power in terms of
determination between messaging and dsp?

t

--
[EMAIL PROTECTED]ICQ: 96771783
http://www.mokabar.tk

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


signature.asc
Description: This is a digitally signed message part
___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Mathieu Bouchard

On Wed, 27 Dec 2006, carmen wrote:

Matju wrote:
why is it that [*] is only for floats, whereas if you want to multiply 
two signals one has to use [*~] ? And then why is it that [*~] can 
multiply a signal by a float, but [*] can't do that?
because according to Pd rules its not OK to confuse the user with 
seperate objects/operators for floats vs ints or symbols vs strings, but 
ok for signals vs floats?


Well, signals have also that special mojo that makes their execution order 
fly high above the mortal mofos like floats and stuff... that would be a 
reason to keep them different.



why is it that [*] can't multiply a list by an integer?


[*], like many arithmetic classes, interpret a 2-element list as if it 
were:


[unpack]
 ||
[* ]

there's a lot of implicit [unpack] all over pd. If lists are to be 
supported in [*], we need to have them implemented differently... have 
another kind of list, a list-atom (A_LIST), but then, because it means 
a new way of interacting with atoms (unlike strings that can be 
handled just like symbols), it has to be given a new selector. This 
can't be 'list' because it's a conflict with an existing name that has 
different expectations (the existing 'list' is closer to 'anything'; 
the new selector goes with a single A_LIST element instead of having 
the message be the collection).



or is that what you mean by signal, a list of floats?


It could be, but there are three major distinctions:

 1. that list is float-only, stored as t_float[] instead of t_atom[].
 2. that list would be A_LIST so that it doesn't get caught in [unpack].
 3. that list has the mojo.

And then why is it that [*~] can't multiply a float by a signal, the 
signal has to be on the left?
the main reason i can think of is it's a lossy operation if the return 
value is a float.


The assumption that you are making is interesting: you assume that in this 
case the output would/could be a float, according to some unspecified rule 
which appears to be that the output type follows the type of the left 
input.


In MAX (and jMax), float vs int is decided by the right input, not the 
left one.


In GridFlow's [#], output size is determined by left input, which is sort 
of suggesting that output type should also be determined by left input 
(although this feature has not been implemented there).


In Pd, the mode of [*~] (and such) is determined by right input. Actually, 
I should stress that this is determined by right argument, which then 
forces a specific right inlet type. I don't remember whether MAX/jMax's 
float-vs-int input type can be changed at runtime, but for atom-vs-signal 
I think I recall that they do it like Pd.


what value for the signal are you operating on - the value of the first 
sample in the DSP block?


In the logic of [#], it would be the first sample, because [#] causes an 
implicit [#redim] on its right input.



the average of all the samples in the block?


That wouldn't be so often useful for sound, would it? In any case, it's 
the same difference as between those two:


  [#downscale_by 64]
  [#downscale_by 64 smoothly]

the * vs *~ distinction might be useful to specify a desired return 
type..


... but that's only one way to specify a rule. doing it by the type of the 
right input (inlet and/or argument) is another way.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Mathieu Bouchard

On Wed, 27 Dec 2006, Tim Blechmann wrote:


well, does polymorphism improve the expressive power in terms of
determination between messaging and dsp?


I can't answer because I can't guess what you mean by determination 
here.


Do you mean that it would be difficult to figure out what's a DSP object 
and what's not, in terms of figuring out what's in the DSP chain?


Why do we need a DSP chain? Why do those tilde have the mojo dsp_chain() 
stuff while the message mofos don't deserve such a cache-locality?


If there was no DSP chain, or if the chain included all of the non-DSP, we 
might delay such determination until later... (but should we?)


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Tim Blechmann
On Wed, 2006-12-27 at 15:40 -0500, Mathieu Bouchard wrote:
 On Wed, 27 Dec 2006, Tim Blechmann wrote:
 
  well, does polymorphism improve the expressive power in terms of
  determination between messaging and dsp?
 
 I can't answer because I can't guess what you mean by determination 
 here.
 
 Do you mean that it would be difficult to figure out what's a DSP object 
 and what's not, in terms of figuring out what's in the DSP chain?

from the user point of view, i think, it's a good idea, to have a
specific separation between dsp and messaging, because both work with
very different concepts.

 Why do we need a DSP chain? Why do those tilde have the mojo dsp_chain() 
 stuff while the message mofos don't deserve such a cache-locality?

well, computing audio signals is usually way more expensive then
computing messaging. for my personal performance patch, the messaging is
usually less than 2% of the cpu usage...

 If there was no DSP chain, or if the chain included all of the non-DSP, we 
 might delay such determination until later... (but should we?)

if there was no dsp chain, it would be easier to utilize several audio
threads (see jackdmp) ... caching would definitely be worse, though ...

t

--
[EMAIL PROTECTED]ICQ: 96771783
http://www.mokabar.tk

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


signature.asc
Description: This is a digitally signed message part
___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Mathieu Bouchard

On Wed, 27 Dec 2006, Tim Blechmann wrote:

Matju wrote:

why is it that [*] is only for floats, whereas if you want to multiply two
signals one has to use [*~] ?

why do patch cords have different width?


Because Miller added that in 0.35 or 0.36 or some other release. But more 
deeply: because it reflects the nature of the implementation of pd or of 
its limitations. If it wanted to make more distinctions, it could have 
separated the patchcord types by message types and add several kind of 
zigzags, stipples, colours, etc. For example, in this diagram,


  http://www.videogamecritic.net/images/coleco/jumpman_junior.gif

There are short zigzag cords vs long zigzag cords, and those inform the 
user about what those cords are for. (The red vs green distinction is 
optional, so that the visual appearance of the diagram communicates the 
same information if a two-tone display is used.)



why is there no |!/~| object like in max/msp?


I don't know. Where's the [swap] that can support signals? ;)


and why is expr~ so slow?


I don't know, this might deserve a look (or a rewrite).


why are the inlets of |pow~| reversed?


Because it was supposed to be called [!pow~] instead?


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


I'd rather have your confusion, than the certainty that some people 
offer...


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [*] vs [*~]

2006-12-27 Thread Mathieu Bouchard

On Wed, 27 Dec 2006, Tim Blechmann wrote:

from the user point of view, i think, it's a good idea, to have a 
specific separation between dsp and messaging, because both work with 
very different concepts.


But of the difference between dsp and messaging, which ones of the very 
differences of the very different concepts need to be emphasized, and 
which ones need to be downplayed? Just because there are differences, 
doesn't mean they need to be outlined in bold or tilde.


Why do we need a DSP chain? Why do those tilde have the mojo 
dsp_chain() stuff while the message mofos don't deserve such a 
cache-locality?


well, computing audio signals is usually way more expensive then 
computing messaging. for my personal performance patch, the messaging is 
usually less than 2% of the cpu usage...


Ok, but messaging tends to happen in bursts. In a single-thread system, 
this has to happen between the processing of two blocks. If a [metro] gets 
only triggered every 100 blocks, that's 200% of CPU usage which ends up 
delaying the next block, so latency has to be increased in order to remove 
jitter.


If there was no DSP chain, or if the chain included all of the non-DSP, 
we might delay such determination until later... (but should we?)
if there was no dsp chain, it would be easier to utilize several audio 
threads (see jackdmp) ... caching would definitely be worse, though ...


But what if there was one dsp_chain per thread, and that when the 
dsp_add() phase happens, it adds to one of several dsp_chains depending on 
some kind of load-balancing metric?



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


Damn right.

 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list