Re: [PD] I am a new user confused as to why I cant get GEM object to work.

2009-02-24 Thread Simon Wise
Max wrote:
 There is no need for X11 if you want to use GEM.
 only PDP/PidiP and Gridflow depend on X11, but you said you want to run 
 GEM.
 
 the errors you posted suggest that you probably use a build for intel in 
 a PPC machine or the other way round.
 make sure you have downloaded the right version for your architecture:
 http://puredata.info/downloads

it seems that Gem also depends on X11 libraries - for the font stuff I 
guess??, quoting the earlier post ...

 Just installed X11 from OSX 10.4 dvd
 
  I get the following on start up
 
  libdir loader $Revision: 1.8 $
 written by Hans-Christoph Steiner h...@at.or.at
 compiled on Jul 29 2008 at 03:24:20
 compiled against Pd version 0.40.3.extended
  /Applications/Pd-extended.app/Contents/Resources/extra/Gem/
  Gem.pd_darwin: dlopen(/Applications/Pd-extended.app/Contents/
  Resources/extra/Gem/Gem.pd_darwin, 10): Library not loaded: /usr/
  X11R6/lib/libfreetype.6.dylib
   Referenced from: /Applications/Pd-extended.app/Contents/Resources/
  extra/Gem/Gem.pd_darwin
   Reason: no suitable image found.  Did find:
 /usr/X11R6/lib/libfreetype.6.dylib: mach-o, but wrong architecture
  Gem: can't load library

the 10.4 DVD may be the wrong version, or possibly this library is left 
over from an earlier attempt to install X11?


Simon

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


Re: [PD] symbol anxiety

2009-02-24 Thread Frank Barknecht
Hallo,
Mathieu Bouchard hat gesagt: // Mathieu Bouchard wrote:

 On Mon, 23 Feb 2009, Phil Stone wrote:

 Oh!  Very good.  I didn't realize that an identical symbol would get  
 re-used.  For completeness' sake, I will make a new [ps-stopwatch] that 
 does not leak (and is plain vanilla, to boot).

 Yes, it's re-used, which sort of goes with the fact that it doesn't get 
 de-allocated, but that is also because it's less trouble (for pd itself) 
 to have eternal symbols than mortal symbols.

 But the re-use also goes with the fact that it's easier and faster to  
 compare two symbol addresses (t_symbol *) than two string contents, and  
 if pd _ensures_ re-use, then two identical addresses _mean_ two identical 
 strings.

 But all this pd symbol concept comes essentially as-is from 1961 LISP. It 
 was then adopted by LOGO and Smalltalk in addition to all of the LISP  
 variants, and then by Ruby, and then the Ruby guys figured out that in 
 the end, a symbol type could be pretty useless if you had a good enough 
 string type, so they almost merged them. Most other languages just have 
 had a string type and improved on that instead of having symbol-vs-string 
 or just symbols. All this to say I'm in favour of replacing symbols with  
 strings (while still calling them symbols just because).

Is there a difference between symbols and immutable strings like Lua
or Java have them?

Ciao
-- 
 Frank BarknechtDo You RjDj.me?  _ __footils.org__

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


Re: [PD] phase-canceling

2009-02-24 Thread Frank Barknecht
Hallo,
Derek Holzer hat gesagt: // Derek Holzer wrote:

 multiply the mic signal by -1 using [*~ -1], then add it back to the 
 original signal using [+~]

Or multiply by 0. :)

Ciao
-- 
 Frank BarknechtDo You RjDj.me?  _ __footils.org__

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


Re: [PD] phase-canceling

2009-02-24 Thread Derek Holzer
simple answers for apparently simple questions! ;-)

d.

Frank Barknecht wrote:
 Hallo,
 Derek Holzer hat gesagt: // Derek Holzer wrote:
 
 multiply the mic signal by -1 using [*~ -1], then add it back to the 
 original signal using [+~]
 
 Or multiply by 0. :)
 
 Ciao

-- 
derek holzer ::: http://www.umatic.nl ::: http://blog.myspace.com/macumbista
---Oblique Strategy # 191:
You don't have to be ashamed of using your own ideas

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


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread Sebastien Lelong
Hi Frank, hi guys,

Many, many thanks for your explanation and your example ! I've finally
understood how to use [trigger] objects and store value in a [float] (I have
to admit I needed quite a lot of time, a paper and a pen: I must be very
slow thinking in Pd :)). Indeed, a nice exercise.

I have one question though (not related to [trigger]). In your example, as
in Martin's, you use $0-a16 to name the array. I understand $0 is used when
building an abstraction and creating multiple instances of this abstraction.
My question is how can I configure this array, from the parent (from the
patch using the abstraction) ? For instance, I'd like to add xticks,
ylabel, etc... I usually use a message, like:
_
[array1 ylabel -1 0 1 (

but the same with $0-a16 obsviously doesn't work, since $0 is not known (I
understand it's a counter incremented at each creation). Is this possible to
do this ?


Cheers,
Seb


Hallo,
 Sebastien Lelong hat gesagt: // Sebastien Lelong wrote:

  Thanks for your help. I'm getting things that kind of scroll...
 building
  an horrible patch :) Some values are random, I guess I have a problem
 when
  access extremities of the array. I'm sure there's something simpler,
  probably using trigger, but I can't figure out how I could use a trigger
  here. Could you give one last hint ? I guess I need to learn how to
 think
  pure data...

 Indeed: Understanding triggering and execution order brings you much
 closer to thinking in Pd. There are only two things to remember: The
 left inlet of (most) objects is hot, the right is cold and lets you
 use an object as a storage container.

 OTOH the right outlet of (most) objects fires before the left one.
 This holds especially true for the [trigger] object whose main purpose
 is to control the order in that your patch cords get activated.

 Both facts are nicely combined in the scrolling table solution in the
 attached patch. The top [trigger] object shows how sometimes in Pd you
 have to think far ahead: Its right outlet stores a number in a float
 object below that gets used much later.

 The lower trigger object (abbreviated as [t ...]) shows another common
 idiom: It's followed by crossed patch cords. You will often see this
 when something is stored for a moment and the previously stored value
 is used instead.

 Anyway the attachement shouldn't be to hard to folllow with its
 comments, but feel free to ask any questions. Getting it is
 important here. :)

 Ciao
 --
  Frank BarknechtDo You RjDj.me?  _ __footils.org__

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




-- 
Sébastien Lelong
http://www.sirloon.net
http://sirbot.org
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread cyrille henry
hello,

have you tried to look at mapping/timeroll object.
it's exactly what franck describ...
cyrille


Sebastien Lelong a écrit :
 Hi Frank,
 
 
 Thanks for your help. I'm getting things that kind of scroll... 
 building an horrible patch :) Some values are random, I guess I have a 
 problem when access extremities of the array. I'm sure there's something 
 simpler, probably using trigger, but I can't figure out how I could use 
 a trigger here. Could you give one last hint ? I guess I need to learn 
 how to think pure data...
 
 Anyway, thanks again.
 
 Cheers,
 Seb
 
 
 
 Hallo,
 Sebastien Lelong hat gesagt: // Sebastien Lelong wrote:
 
   I've recently discovered Pure Data as versatile platform I could
 use to
   build a robotic GUI. The idea is to collect data from a robot,
 send it to an
   OSC (open source control) server, get the data in pd~ and deal
 with it. One
   important aspect would be to plot data, in real-time, so the
 graph scrolls
   from right to left, and data is appended to the end of array
 (right) (well,
   I hope what I write is understandable...).
  
   So far so good, I've been able to build all the OSC part, and
 even plot
   things in a array in pd~, but I can only find a way to plot data
 from left
   to right, and when array's end is reached, clear it and start
 from beginning
   again. In other words, I can't make it scroll...
 
 One simple way to make it scroll would be to use [list-lastx
 TABLESIZE] from the [list]-abs collection. Just prepend a 0 to the
 outgoing list and send it to a receiver named after the table like this:
 
  [table DATA 16]
 
  [r ROBOT]
  |
  [list-lastx 16]
  |
  [list prepend 0]
  |
  [s DATA]
 
 Alternatively do it manuall. The basic algorithm is this:
 
 If a new ROBOT-float comes in store it. Then start a loop over the table
 where you
 
 1) read out the current element with [tabread]
 2) store it in the right inlet of a [float]
 3) write the new value into the table with [tabwrite]
 4) increment your counter
 5) repeat using the float stored in 2) as the new value.
 
 This is a good excercise to get familiar with the [trigger] object and
 Pd's execution order.
 
 Ciao
 --
 Frank
 
 ___
 Pd-list@iem.at mailto:Pd-list@iem.at mailing list
 UNSUBSCRIBE and account-management -
 http://lists.puredata.info/listinfo/pd-list
 
 
 
 
 -- 
 Sébastien Lelong
 http://www.sirloon.net
 http://sirbot.org
 
 
 
 
 ___
 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] I am a new user confused as to why I cant get GEM object to work.

2009-02-24 Thread chris clepper
On Tue, Feb 24, 2009 at 3:11 AM, Simon Wise simonzw...@gmail.com wrote:


 it seems that Gem also depends on X11 libraries - for the font stuff I
 guess??, quoting the earlier post ...


That is only because it is built incorrectly.
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pd and tcp: what to do against crashes?

2009-02-24 Thread Martin Peach
Roman Haefeli wrote:
 On Mon, 2009-02-23 at 19:05 -0500, Martin Peach wrote:
 Roman Haefeli wrote:
 On Mon, 2009-02-23 at 21:03 +, Martin Peach wrote:
 OK I fixed it now in svn. It works on debian. The select() call was not 
 being done properly. Now I need to test it on Windows again.
 hey, many thanks! it works. now i wonder, what happens, if the message
 is triggered: 'tcpserver_send_buf: client 1 not writeable'. does that
 indicated, that the buffer is cleared? does it mean, that when this
 message appears, that at least one message didn't come through?

 Right now it means that the message is dropped. I can't see a way of 
 holding on to it that wouldn't end up crashing Pd eventually if you keep 
 sending to an unconnected client.
 
 do i understand correctly, that if the buffer is full, there is a time
 limit for it to become emptied and if it is not emptied in that given
 time interval, the content is cleared? if this is true, i think, the one
 second interval is way to short. for instance, if a state dump happens
 in netpd (probably several hundred messages), it could well be, that the
 connection is not fast enough send enough messages in the given time, so
 they would be dropped. i guess, for my on practice, i change the code to
 use a much longer time interval.

But then it would hold up the whole process for even longer.

 
 what is not solved yet: similar to the previous version, a drop-out
 occurs, whenever a buffer overrun happens. unlike before, it is not
 possible, that pd hangs forever anymore (it will only hang at most for
 the given time limit), but there is still no mechanism provided to
 generally avoid drop-outs. 
 

Better to have it output a message immediately that states it is unable 
to deliver the data.

 somehow i need to design netpd in way, that as soon as one single
 message is lost, the connection should be shut down and established
 again, and the client should then again sync with other clients.
 otherwise very bad things could happen (patches are not transmitted
 completely and loading incomplete patches causes pd crashing). 

 Well the easiest thing would be to have [tcpserver] close the connection 
 itself when that happens.
 
 it's just too easy to trigger that. i think, it would lead to too many
 unwanted disconnects. 
 
  The next best would be to have it output a 
 message on a 'status' outlet that you could use to close the connection.
 
 personally, i find this the much better idea.
 

Yes, I'm gonna work on that.

 before the change i could be sure, that either all messages came through
 or the server crashed at some point, if messages could not be delivered.
 now, since the server doesn't crash anymore, i need to know, if messages
 were dropped. how can i know?
 
 At the moment it prints to the Pd window, which isn't much use for 
 control purposes. As I said, for me the easiest and most logical thing 
 is to have the connection closed automatically, but then you have to 
 keep track of the connection count to know whether it happened.
 What do you think?
 
 without knowing how hard it would be to implement, the best solution IMO
 (and the only one, that addresses all of above issues) would be, if the
 whole buffering would happen in the pd patch itself, so that the patch
 could adapt itself to the current network conditions. translated into
 features, this would mean, that [tcpserver] needs to provide information
 about its inner buffer state. the most simple and probably most
 effective thing i can think of, would be an additional outlet, that
 sends a bang every time, when the inner buffer is completely emptied. i
 don't know, if it has several buffers, one for each client; if so, then
 probably a number (socket number) would be more appropriate than a bang.
 this way, a patch can send only as many messages, as the bandwidth
 allows. also it would give the possibility to the patch to decide, what
 time interval of not being able to send messages is appropriate to shut
 down the connection. the time interval could be dynamically set without
 the need to change the code of [tcpserver]. 

The buffer is maintained by the TCP stack. There is no way of knowing if 
it is empty, only if it can accept more.

 
 i see, that implementing those features would make the use of and the
 programming around [tcpserver] much more complex, although it would make
 it much more powerful. personally, i am all for giving the most control
 to the patch programmer, since i believe, that only then pd can be used
 for robust programming. it's probably a matter, if someone sees pd as a
 fully featured programming language or rather as a tool for fast
 prototyping or a 'quick hacking-together' à la 'reaktor'. both
 expectations are valid, but speaking for myself, i never found, that
 things were _too_ low-level in pd. 
 [tcpserver] is actually a good example for explaining what i mean: it
 was originally designed to tranport streams of data between the server
 and clients. in 

Re: [PD] symbol anxiety

2009-02-24 Thread Mathieu Bouchard

On Tue, 24 Feb 2009, Frank Barknecht wrote:


Is there a difference between symbols and immutable strings like Lua
or Java have them?


Immutable strings are deallocatable.

If this happened to pd symbols that they became deallocatable, then 
externs couldn't keep a t_symbol pointer unless they register that they 
want it to stay alive. But if pd is to have a transition like that, it 
needs to have versioning of the pd interface used by externals, so that an 
external says that it wants it new-style, and that any old-style external 
receiving a t_symbol* will cause the t_symbol to become eternal.


New-style externs would also need to init and deinit t_atom[] structures, 
whereas old-style externs don't do it. SET-macros would be required 
instead of messing with atom fields directly. Most of the extra code could 
be avoided if using C++ instead of C.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pd and tcp: what to do against crashes?

2009-02-24 Thread Roman Haefeli




--- Martin Peach martin.pe...@sympatico.ca schrieb am Di, 24.2.2009:

 Roman Haefeli wrote:
  On Mon, 2009-02-23 at 19:05 -0500, Martin Peach wrote:
  Roman Haefeli wrote:
  On Mon, 2009-02-23 at 21:03 +, Martin
 Peach wrote:
  OK I fixed it now in svn. It works on
 debian. The select() call was not being done properly. Now I
 need to test it on Windows again.
  hey, many thanks! it works. now i wonder, what
 happens, if the message
  is triggered: 'tcpserver_send_buf: client
 1 not writeable'. does that
  indicated, that the buffer is cleared? does it
 mean, that when this
  message appears, that at least one message
 didn't come through?
  
  Right now it means that the message is dropped. I
 can't see a way of holding on to it that wouldn't
 end up crashing Pd eventually if you keep sending to an
 unconnected client.
  
  do i understand correctly, that if the buffer is full,
 there is a time
  limit for it to become emptied and if it is not
 emptied in that given
  time interval, the content is cleared? if this is
 true, i think, the one
  second interval is way to short. for instance, if a
 state dump happens
  in netpd (probably several hundred messages), it could
 well be, that the
  connection is not fast enough send enough messages in
 the given time, so
  they would be dropped. i guess, for my on practice, i
 change the code to
  use a much longer time interval.
 
 But then it would hold up the whole process for even
 longer.
 
  
  what is not solved yet: similar to the previous
 version, a drop-out
  occurs, whenever a buffer overrun happens. unlike
 before, it is not
  possible, that pd hangs forever anymore (it will only
 hang at most for
  the given time limit), but there is still no mechanism
 provided to
  generally avoid drop-outs. 
 
 Better to have it output a message immediately that states
 it is unable to deliver the data.
 
  somehow i need to design netpd in way, that as
 soon as one single
  message is lost, the connection should be shut
 down and established
  again, and the client should then again sync
 with other clients.
  otherwise very bad things could happen
 (patches are not transmitted
  completely and loading incomplete patches
 causes pd crashing). 
  Well the easiest thing would be to have
 [tcpserver] close the connection itself when that happens.
  
  it's just too easy to trigger that. i think, it
 would lead to too many
  unwanted disconnects. 
   The next best would be to have it output a
 message on a 'status' outlet that you could use to
 close the connection.
  
  personally, i find this the much better idea.
  
 
 Yes, I'm gonna work on that.

juhuu!..

  before the change i could be sure, that either
 all messages came through
  or the server crashed at some point, if
 messages could not be delivered.
  now, since the server doesn't crash
 anymore, i need to know, if messages
  were dropped. how can i know?
  
  At the moment it prints to the Pd window, which
 isn't much use for control purposes. As I said, for me
 the easiest and most logical thing is to have the connection
 closed automatically, but then you have to keep track of the
 connection count to know whether it happened.
  What do you think?
  
  without knowing how hard it would be to implement, the
 best solution IMO
  (and the only one, that addresses all of above issues)
 would be, if the
  whole buffering would happen in the pd patch itself,
 so that the patch
  could adapt itself to the current network conditions.
 translated into
  features, this would mean, that [tcpserver] needs to
 provide information
  about its inner buffer state. the most simple and
 probably most
  effective thing i can think of, would be an additional
 outlet, that
  sends a bang every time, when the inner buffer is
 completely emptied. i
  don't know, if it has several buffers, one for
 each client; if so, then
  probably a number (socket number) would be more
 appropriate than a bang.
  this way, a patch can send only as many messages, as
 the bandwidth
  allows. also it would give the possibility to the
 patch to decide, what
  time interval of not being able to send messages is
 appropriate to shut
  down the connection. the time interval could be
 dynamically set without
  the need to change the code of [tcpserver]. 
 
 The buffer is maintained by the TCP stack. There is no way
 of knowing if it is empty, only if it can accept more.

i see. even knowing that it accepts more would be good to know, i guess


  i see, that implementing those features would make the
 use of and the
  programming around [tcpserver] much more complex,
 although it would make
  it much more powerful. personally, i am all for giving
 the most control
  to the patch programmer, since i believe, that only
 then pd can be used
  for robust programming. it's probably a matter, if
 someone sees pd as a
  fully featured programming language or rather as a
 tool for fast
  prototyping or a 'quick hacking-together' à
 la 'reaktor'. 

Re: [PD] phase-canceling

2009-02-24 Thread Mathieu Bouchard

On Tue, 24 Feb 2009, Frank Barknecht wrote:

Derek Holzer hat gesagt: // Derek Holzer wrote:

multiply the mic signal by -1 using [*~ -1], then add it back to the
original signal using [+~]

Or multiply by 0. :)


Then just don't connect the wire.

 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread Frank Barknecht
Hallo,
Sebastien Lelong hat gesagt: // Sebastien Lelong wrote:

 I have one question though (not related to [trigger]). In your example, as
 in Martin's, you use $0-a16 to name the array. I understand $0 is used when
 building an abstraction and creating multiple instances of this abstraction.
 My question is how can I configure this array, from the parent (from the
 patch using the abstraction) ? For instance, I'd like to add xticks,
 ylabel, etc... I usually use a message, like:
 _
 [array1 ylabel -1 0 1 (
 
 but the same with $0-a16 obsviously doesn't work, since $0 is not known (I
 understand it's a counter incremented at each creation). 

Correct!

 Is this possible to do this ?

[; array1 ylabel -1 0 1( (note the semicolon!) is the same as this: 

 [ylabel -1 0 1 (
 |
 [s array1]

because semicolon messages are just a shortcut for senders.

In object boxes like [s ...] you can use $0 variables, so inside of the
scrolling abstraction your could use: 
 
 [ylabel -1 0 1 (
 |
 [s $0-array]

Now to let something control the array from the outside, I'd recommend
to just use an [inlet]: 

 [inlet]
 |
 [s $0-array] 

Ciao
-- 
Frank

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


Re: [PD] phase-canceling

2009-02-24 Thread Lao Yu
I don't understand how multiplying the amplitude of an input by 0  
cancels phase. It results in zero output which is pretty silent but  
it doesn't cancel phase.
Regardless of the initial post, phase canceling of a signal can be  
pretty interesting when one want to 'filter out' an original sound  
and only keep the result of some processing that was applied to it.  
multiplying by 0 wouldn't achieve that - would it?

On Feb 24, 2009, at 11:24 PM, Mathieu Bouchard wrote:

 On Tue, 24 Feb 2009, Frank Barknecht wrote:
 Or multiply by 0. :)

 Then just don't connect the wire.

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


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread Frank Barknecht
Hallo,
cyrille henry hat gesagt: // cyrille henry wrote:

 have you tried to look at mapping/timeroll object.

I think, there is a minor bug in timeroll: Instead of [list apppend 0]
it should probably be [list prepend 0]

(Btw. I think the dependency of mapping on purepd is a bit, uhm,
uncomfortable.)

Ciao
-- 
Frank

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


Re: [PD] phase-canceling

2009-02-24 Thread Frank Barknecht
Hallo,
Lao Yu hat gesagt: // Lao Yu wrote:

 I don't understand how multiplying the amplitude of an input by 0  
 cancels phase. It results in zero output which is pretty silent but  
 it doesn't cancel phase.

What Derek used as an example was phase cancellation of a signal with
*itself* which is the same a muting it so I felt invited to a joke. Of
course if you have different signals and subtract them from each other
or shift their phases you usually get a non-zero result. 

Ciao
-- 
Frank

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


[PD] PD and Wiring

2009-02-24 Thread enrique franco
Hi,

Does anybody know how to read data coming from Wiring through the serial
port in PD?

Thanks,
-- 
Enrique Franco
Telefono/Phone: +572 5552334 ext 388
Webpage: http://richie.idc.ul.ie/~enrique/
http://www.iua.upf.es/~ffranco/pfm.htm
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] symbol anxiety

2009-02-24 Thread Phil Stone
Mathieu Bouchard wrote:
 On Mon, 23 Feb 2009, Roman Haefeli wrote:
 for instance, when using OSC, probably every message is a new symbol. 
 so i guess, it cannot be avoided, even if text processing is done 
 outside of pd, unless a string type is introduced (is that correct?).

 Every OSC target is a symbol, just like every receive-symbol is a 
 symbol; but furthermore, even hierarchical names like /foo/bar are 
 recorded as a single name that doesn't use foo and bar, instead of 
 using a list. Similarly, abstraction instances are _the_ way to flood 
 the table, as all the local receive-symbols and other local symbols 
 get multiplied by the number of instances.

 I proposed several solutions to this. Having deallocatable symbols 
 only is useful if you deallocate abstractions and reallocate them... 
 usually has to do with dynamic patching. The other solution would be 
 to make the symbol-table only a table of symbols, and have a separate 
 receiver-table, which would get accessed by ($0,symbol) pairs so that 
 the $0 doesn't get pasted inside of the symbol so that no more symbols 
 need be generated. That would be quite a major overhaul, but it's 
 pretty much the only real solution.

 I don't think that there's anything else in OSC that could be wasting 
 symbols. However, if you have a system where you use 100 OSC-paths 
 to represent an array of 100 numbers, you may be looking for trouble.

Since OSC messages have some value concatenated to the end, aren't they 
all potentially unique and therefore consumers of new symbols?  E.g.,  
/oscillator/frequency 440.0 and /oscillator/frequency 449.365 
require distinct symbols, don't they?  And to think I was worried about 
a little stopwatch!  :-)


Phil



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


Re: [PD] symbol anxiety

2009-02-24 Thread Phil Stone
Phil Stone wrote:
 Mathieu Bouchard wrote:
   
 On Mon, 23 Feb 2009, Roman Haefeli wrote:
 
 for instance, when using OSC, probably every message is a new symbol. 
 so i guess, it cannot be avoided, even if text processing is done 
 outside of pd, unless a string type is introduced (is that correct?).
   
 Every OSC target is a symbol, just like every receive-symbol is a 
 symbol; but furthermore, even hierarchical names like /foo/bar are 
 recorded as a single name that doesn't use foo and bar, instead of 
 using a list. Similarly, abstraction instances are _the_ way to flood 
 the table, as all the local receive-symbols and other local symbols 
 get multiplied by the number of instances.

 I proposed several solutions to this. Having deallocatable symbols 
 only is useful if you deallocate abstractions and reallocate them... 
 usually has to do with dynamic patching. The other solution would be 
 to make the symbol-table only a table of symbols, and have a separate 
 receiver-table, which would get accessed by ($0,symbol) pairs so that 
 the $0 doesn't get pasted inside of the symbol so that no more symbols 
 need be generated. That would be quite a major overhaul, but it's 
 pretty much the only real solution.

 I don't think that there's anything else in OSC that could be wasting 
 symbols. However, if you have a system where you use 100 OSC-paths 
 to represent an array of 100 numbers, you may be looking for trouble.
 

 Since OSC messages have some value concatenated to the end, aren't they 
 all potentially unique and therefore consumers of new symbols?  E.g.,  
 /oscillator/frequency 440.0 and /oscillator/frequency 449.365 
 require distinct symbols, don't they?  And to think I was worried about 
 a little stopwatch!  :-)

   
On further reflection, the OSC path (which *is* a symbol) and the value 
(which *may* be a symbol, but is more typically a float) are two list 
items, so the answer to my question is no, I think.


Phil


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


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread cyrille henry


Frank Barknecht a écrit :
 Hallo,
 cyrille henry hat gesagt: // cyrille henry wrote:
 
 have you tried to look at mapping/timeroll object.
 
 I think, there is a minor bug in timeroll: Instead of [list apppend 0]
 it should probably be [list prepend 0]
you're right.
thanks.


 
 (Btw. I think the dependency of mapping on purepd is a bit, uhm,
 uncomfortable.)
i strongly agree here.
i need your help to have Hans authorisation to remove it!

Cyrille


 
 Ciao

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


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread Martin Schied
Hi Sebastien,

 Sebastien Lelong hat gesagt: // Sebastien Lelong wrote:

   
 I have one question though (not related to [trigger]). In your example, as
 in Martin's, you use $0-a16 to name the array. I understand $0 is used when
 building an abstraction and creating multiple instances of this abstraction.
 My question is how can I configure this array, from the parent (from the
 patch using the abstraction) ? For instance, I'd like to add xticks,
 ylabel, etc... I usually use a message, like:
 _
 [array1 ylabel -1 0 1 (

 but the same with $0-a16 obsviously doesn't work, since $0 is not known (I
 understand it's a counter incremented at each creation). 
 

if there aren't too many of those arrays in your patch, probably Frank's 
solution is far more simple and convenient.

another possibility would be using creation arguments as names. you 
would then use $1-arrayname in an abstraction instead of $0-arrayname 
which uses the first creation argument of the abstraction in your parent 
patch. (so $2 stands for the second creation argument and so on)

if you create an object [myabstraction something]  in your parent patch 
you can access the array's properties by sending for example

[ylabel -1 0 1(
 |
[s something-arrayname]

or like you wrote before using
[; something-arrayname ylabel -1 0 1(]

also have a look at /doc/2.control.examples/14.dollarsigns.pd for more 
stuff with dollar signs as creation arguments. (i found it kind of 
confusing the first time, so perhaps better don't try too hard and have 
a look later again)

notice that dollar signs in messages like

[$1 $2 (

are not the same as dollar signs from creation arguments. That's one 
thing which can also seem strange when learning pd...

Just try the below to understand what dollar signs stand for in messages.

[one two three four(
 |
[$2 $3 $1(
 |
[print]

Dollar sings in messages like the above are not affected by creation 
arguments, by default they return 0 (and an error message, just click on 
the message [$2 $3 $1( directly to see that).

in the ppd_scroll abstraction you would have to change each $0-graph 
into $3-graph (because $1 and $2 are already in use) and then create 
instances of it like [ppd_scroll 10 1 myname] and send settings to 
myname-graph then.

cheers,
Martin

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


Re: [PD] Array that scrolls from right to left

2009-02-24 Thread Frank Barknecht
Hallo,
cyrille henry hat gesagt: // cyrille henry wrote:

  (Btw. I think the dependency of mapping on purepd is a bit, uhm,
  uncomfortable.)
 i strongly agree here.
 i need your help to have Hans authorisation to remove it!

Hehe, I think you two better fight it out without me. :)

But anyway I think, it would be cool if mapping could be a bit more
self-contained.  Personally I would prefer it as a vanilla library as
that would make it possible to to be used in vanilla enviroments like
RjDj or even PDa (although without [list] that would be hard). 

I guess, some externals cannot sensibly be removed, but at least
float_argument is so trivial ... Maybe just copy it over to mapping and
use it from there?

Ciao
-- 
Frank

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


[PD] [PD-announce] Fwd: NYC Blender Users's meeting: Sat. Mar. 7th 2pm

2009-02-24 Thread Hans-Christoph Steiner

Since he's showing Blender+ Pd, I thought I forward it here:

Begin forwarded message:

 From: Nick Porcaro n...@porcaro.org
 Date: February 21, 2009 7:55:49 PM EST
 To: Nick Porcaro n...@porcaro.org
 Subject: NYC Blender Users's meeting: Sat. Mar. 7th 2pm, Polytechnic  
 University,  Rogers Hall room 474
 X-Mailer: Apple Mail (2.753.1)

 The New York City Blender User's Group http://www.blendernyc.org
 is holding a meeting at Polytechnic University, Brooklyn, in Rogers  
 Hall room 474 at 2 pm.
 Saturday March 7th at 2 pm


 Directions: http://www.poly.edu/directions

 We have the space for 5 hours.

 I plan to make a presentation on the work I've been doing with the  
 Blender Game Engine and
 Pure Data http://www.puredata.org in support of free improv art/ 
 music, and Daniel Houghton will
 be discussing his short film called Pitch:
 http://download.blender.org/demo/movies/bc08/Best_short_film/Daniel-Houghton_Pitch.avi

 This gathering is for anyone interested in connecting or  
 reconnecting to the Blender community
 in New York City.  We encourage presentations of recent work, future  
 projects, and ideas for collaboration.
 However, if you would like to attend simply to listen, please do.

 Blender http://www.blender.org is a free open source 3D content
 creation suite, available for all major operating systems under the
 GNU General Public License. It compares well to software like Maya or
 3D Studio Max.

 If you want to see what Blender is capable of, see:

 Elephant's Dream: http://www.elephantsdream.org
 Big Buck Bunny: http://www.bigbuckbunny.org
 and Yo Frankie!: http://www.yofrankie.org

 These projects were all supported by the Blender Foundation,
 and you can download all the .blend files for these projects at
 the sites shown above.  Yo Frankie! is particularly interesting
 in that it represents lots of recent improvements to the Blender Game
 Engine, enabling more advanced real time support.

 Hope to see you there!

 Please RSVP, as Polytechnic has asked me for a head count.

 - Nick Porcaro







Man has survived hitherto because he was too ignorant to know how to  
realize his wishes.  Now that he can realize them, he must either  
change them, or perish.-William Carlos Williams



___
Pd-announce mailing list
pd-annou...@iem.at
http://lists.puredata.info/listinfo/pd-announce

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


Re: [PD] phase-canceling

2009-02-24 Thread yohannes
Mathieu Bouchard schrieb:
 On Tue, 24 Feb 2009, Frank Barknecht wrote:
 Derek Holzer hat gesagt: // Derek Holzer wrote:
 multiply the mic signal by -1 using [*~ -1], then add it back to the
 original signal using [+~]
 Or multiply by 0. :)

 Then just don't connect the wire.

my fafourit solution is mathieus. :-P  but then i can put the mic off.
anyway. dereks hint is what i was searching for.

thanks everybody
yo
  _ _ __ ___ _  _ _ ...
 | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
 

 ___
 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] Array that scrolls from right to left

2009-02-24 Thread cyrille henry


Frank Barknecht a écrit :
 Hallo,
 cyrille henry hat gesagt: // cyrille henry wrote:
 
 (Btw. I think the dependency of mapping on purepd is a bit, uhm,
 uncomfortable.)
 i strongly agree here.
 i need your help to have Hans authorisation to remove it!
 
 Hehe, I think you two better fight it out without me. :)
 
 But anyway I think, it would be cool if mapping could be a bit more
 self-contained.  
YES
Personally I would prefer it as a vanilla library as
 that would make it possible to to be used in vanilla enviroments like
 RjDj or even PDa (although without [list] that would be hard). 
yep, list is mandatory for most mapping stuff.


 
 I guess, some externals cannot sensibly be removed, but at least
 float_argument is so trivial ... Maybe just copy it over to mapping and
 use it from there?
yes, except float_argument, any_argument and purepd/once i don't see where to 
remove dependence.
speedlim maybe also but it is used only in the examples...

other dependence are hard to remove, or limited to specific object, or only in 
the help file.

Cyrille


 
 Ciao

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


Re: [PD] PD and Wiring

2009-02-24 Thread Hans-Christoph Steiner


There is a Firmata library for the Wiring board, you should be able to  
use that with Pduino [arduino] object.


.hc

On Feb 24, 2009, at 11:28 AM, enrique franco wrote:


Hi,

Does anybody know how to read data coming from Wiring through the  
serial port in PD?


Thanks,
--
Enrique Franco
Telefono/Phone: +572 5552334 ext 388
Webpage: http://richie.idc.ul.ie/~enrique/
http://www.iua.upf.es/~ffranco/pfm.htm
___
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


[PD] [ANN] myu Max-Unity Interoperability Toolkit v.1.0 Released

2009-02-24 Thread Ivica Ico Bukvic
It is my great pleasure to announce immediate availability of the μ [myu]
Max-Unity Interoperability Toolkit version 1.0. μ [myu] is designed to
simplify communication between the Max/MSP/Jitter http://www.cycling74.com
and Unity3D http://www.unity3d.com rapid prototyping environments.
Utilizing the TCP network packets, μ [myu] allows for easy bi-directional
control of Unity3D and Max/MSP/Jitter assets, as well as importing of
dynamic Jitter textures into Unity3D scene. Apart from the Jitter-specific
texture communication protocol, μ [myu] relies upon the netsend/netreceive
framework, thus making it also compatible with Pure-Data
http://www.pure-data.info.

Max/Msp/Jitter and Unity3D logos are trademarks of their respective owners.

WHY μ?
Max/MSP/Jitter and Pure-Data offer unprecedented flexibility in digital
signal processing, particularly audio, as well as easy integration of
external controllers and sensors, video, and 3D assets, while Unity3D is an
advanced scalable and optimized 3D gaming engine with integrated intuitive
scene editor and physics engine. By coupling their strengths μ [myu] aims to
expand their rapid prototyping potential with minimal integration overhead.

μ [myu] was developed at DISIS http://disis.music.vt.edu and is available
for download from the DISIS website
http://disis.music.vt.edu/main/portfolio.html.

For a YouTube tech demo please visit
http://www.youtube.com/watch?v=137huPA9sto.
A high-resolution video available at
http://disis.music.vt.edu/main/portfolio.html.

COPYRIGHT
μ [myu] copyright DISIS 2008.

This program is free software: you can redistribute it and/or modify it
under the terms of the version 3 of the GNU General Public License as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
more details.

For additional info on the GNU General Public License see
http://www.gnu.org/licenses/.

Questions, Comments, and PR Contacts: i...@vt.edu

Ivica Ico Bukvic, D.M.A.
Composition, Music Technology
Director, DISIS Interactive Sound  Intermedia Studio
Assistant Co-Director, CCTAD
CHCI, CS, and Art (by courtesy)
Virginia Tech
Dept. of Music - 0240
Blacksburg, VA 24061
(540) 231-6139
(540) 231-5034 (fax)
i...@vt.edu
http://www.music.vt.edu/faculty/bukvic/


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


[PD] Workarounds for number truncation 6 digits?

2009-02-24 Thread Florian Hollerweger
Hi,

I'm picking up a thread here from November last year: As IOhannes has 
pointed out at
http://lists.puredata.info/pipermail/pd-list/2008-11/065883.html
the Pd editor truncates long numbers to 6 digits (which of course has 
nothing to do with Pd's floating point resolution).

IOhannes has also noted that behind the GUI, the correct numbers (i.e. 
the ones that were initially typed) are still being used, leading to 
interesting situations like two [route 1e+06] boxes with different behavior.

However, when the patch is closed and re-opened, the _truncated_ (i.e. 
incorrect) numbers are applied. While this complies with Pd's the 
picture is the patch philosophy, it obviously can lead to problematic 
situations.

A workaround was suggested by Nick Mariette:
http://lists.puredata.info/pipermail/pd-list/2008-11/065890.html

I was wondering whether anybody else would share their strategies with 
regards to this problem?

I am guessing that another workaround would be to totally bypass the 
editor and run Pd without the GUI? (Which doesn't seem to make the 
development process very convenient, though.)

Any other ideas?

Thanks,
flo.H

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


[PD] [PD-announce] Liwoli 2009 - Call for projects - Art University Linz

2009-02-24 Thread propaganda
purrr sayz the kitty
wooof sayz the puppy
sorry sayz the cross-poster

--

Liwoli 2009 hacklab for art and open source 
23 - 26 April 2009 
Art University Linz
http://linz.linuxwochen.at

--

Liwoli 2009 is a three day long Hacklab and an open invitation to
everyone who would like to participate in an active process of learning,
producing and sharing ideas around the areas of Free/Libre Open Source
Software (FLOSS) and DIY practices in digital art and culture.

FLOSS developers, software artists such as the collective GOTO10,
activists from HAIP (Hack Act Interact Progress) and many others form
the basis for the event and will share their knowledge in the form of workshops,
presentations, installations and performances.

--

Open Call

For the event we are calling for contributions (presentations, workshops
and performances) around the FLOSS themes. This invitation is not only
for those who are interested in “Do It Yourself” and how it interrelates
with the current creative production practices, the invitation is also
directed to those who are interested in the cultural importance of
FLOSS.

Submissions Please send submissions before the 25.03.2009 to
call09-liwoli(at)servus(dot)at, with the following information :

# Title
# Format: lecture, workshop, installation, performance, presentation...
# Description of content: 
# Links to relevant material (mandatory):
# Required things: projector, sounds system, running water, compressed
# air, cheeseburgers

--

Organisers  contributors: servus.at, GOTO10, Radio Fro/Haip, Time's Up,
lugl.at. 
Host and Support by: Kunstuniversität Linz Department for Time
Based Media and the ZID der Kunstuniversität Linz 
Funds: servus.at funded by BM:UK, Stadt Linz (LinzImpuls 2008), Radio
FRO/HAIP EU - CULTURE 2007 

--

:*

 

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


Re: [PD] pd and tcp: what to do against crashes?

2009-02-24 Thread Martin Peach
Roman Haefeli wrote:
--- Martin Peach martin.pe...@sympatico.ca schrieb am Di, 24.2.2009:
  Roman Haefeli wrote:
   On Mon, 2009-02-23 at 21:03 +, Martin
  Peach wrote:
  Yes, I agree. I think a status outlet on the [tcpserver]
  could be extended later to have more messages. Some of the
  stuff that gets printed to the Pd window could go there and
  then it could be handled by the patch instead of the
  'operator'. I don't want to keep adding more
  outlets, so it would output lists with a selector, like
  [comport].

i totally agree, that instead of adding more outlets it would be better to 
provide additional information on the same outlet with appropriate 
selector.


OK it's done for now, in svn. Each time something is sent, you get a sent 
message from the status outlet that gives the number of bytes that were 
actually sent and the client number. Also a [client( message with no data 
lists the connections using a client selector.
The send function doesn't wait any more. If the number of bytes sent is 
zero, you have to try again.
It all needs to be tested...


i am very happy to notice, that we agree and that you are willing to 
address the existing issue. many thanks for your help.


You're welcome. I too prefer functional objects;)

Martin



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


Re: [PD] PD and Wiring

2009-02-24 Thread Hans-Christoph Steiner


No, it's here:

http://at.or.at/hans/pd/objects.html

.hc

On Feb 24, 2009, at 2:10 PM, enrique franco wrote:


Hans,

Does this object [arduino] come with Pd-extended?

Thanks,

Enrique

On Tue, Feb 24, 2009 at 1:31 PM, Hans-Christoph Steiner  
h...@eds.org wrote:


There is a Firmata library for the Wiring board, you should be able  
to use that with Pduino [arduino] object.


.hc

On Feb 24, 2009, at 11:28 AM, enrique franco wrote:


Hi,

Does anybody know how to read data coming from Wiring through the  
serial port in PD?


Thanks,
--
Enrique Franco
Telefono/Phone: +572 5552334 ext 388
Webpage: http://richie.idc.ul.ie/~enrique/
http://www.iua.upf.es/~ffranco/pfm.htm
___
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






--
Enrique Franco
Telefono/Phone: +572 5552334 ext 388
Webpage: http://richie.idc.ul.ie/~enrique/
http://www.iua.upf.es/~ffranco/pfm.htm






As we enjoy great advantages from inventions of others, we should be  
glad of an opportunity to serve others by any invention of ours; and  
this we should do freely and generously. - Benjamin Franklin



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


Re: [PD] phase-canceling

2009-02-24 Thread mrz
yes,i find it also not an absurd question.
I had build a loop machine, and i did want to phase cancel the sound is
coming out of the speakers to be able recording and play again new stuff
over that loop in realtime (overdubbing). But as far as i understand it is
a really complex thing to do so as chuck allready mentioned. But someone
build allready a kind of feedback canceller or is it simply not possible
in the real world?
Like, it's the best way simply EQ'ing your Soundsystem to have the best
result?

all the best,
moritz

On Mon, Feb 23, 2009 at 7:19 PM, Charles Henry czhe...@gmail.com wrote:

 Hi, yohannes

 No, it's not absurd.  Tell us a little bit more about your
 application.  I am out of the project game for now, but have some long
 term goals for solving this sort of problem.

 For example, you send a sound out your speakers.  You want to recieve
 a new sound from the room on microphone that is not the sound coming
 from the speakers.

 This becomes a system identification problem.  You need to find the
 delay between the speakers and microphone and the transfer function (a
 filter) between speakers and mic.  Then, you digitally apply the
 filter and delay to your signals as they would be played and subtract
 that copy from the signal received by the mic.

 Chuck



 On Mon, Feb 23, 2009 at 4:02 PM, yohannes this_is_...@web.de wrote:
  hello everybody,
 
  maybe sounds absurd:
 
  is it possible to cancel an whole signal of an mic input through
  phase-canceling?
 
  if yes, how can i do dat in pd?
 
 
 
  thanks a lot, yohannes
 
  ___
  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




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


Re: [PD] A non-leaky stopwatch

2009-02-24 Thread João Pais
Hi,

do you want to pack this together with pd-ext? It would be easier for  
general people to keep track of it.

João Pais

 Hello,

 Attached is a stopwatch, derived from [maketime], that doesn't pollute
 the symbol table (i.e., indefinitely leak memory), thanks to Frank B.'s
 idea for keeping the symbols re-usable.

 It has one-second grain, so it does not keep track of partial seconds
 between stops and restarts-with-no-reset.  However, it is quite accurate
 after resets and when first started.  I learned that metro sends an
 immediate bang when started -- something I had never paid attention to
 before.  So [ps-stopwatch] always skips the first bang out of [metro]
 (after reset) so that it isn't one second ahead.  It counts up to 99
 hours, 59 minutes, and 59 seconds, then wraps back to zero.

 It would be easy to make this a finer-grain stopwatch, down to the
 inherent resolution of [metro].  However, for my purposes (timing of
 live performance) one-second grain is quite adequate, and not too
 CPU-hungry.

 Thanks again to Frank for this elegant solution.


 Phil Stone
 www.pkstonemusic.com




-- 
Friedenstr. 58
10249 Berlin (Deutschland)
Tel +49 30 42020091 | Mob +49 162 6843570
jmmmp...@googlemail.com | skype: jmmmpjmmmp

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


Re: [PD] Pd-extended on Ubuntu Intrepid 64bit success

2009-02-24 Thread Hans-Christoph Steiner


Excellent, good news!  FYI: that PDP bug has been fixed in trunk, so I  
am guessing you built the Pd-0.40.3 branch.  Pd-0.40.3 has issues with  
64-bit and arrays.  P-0.41 is all good so far with 64-bit.


.hc

On Feb 23, 2009, at 11:44 PM, danomatika wrote:


Howdy all,

I got PD-extended to build a 64bit deb for Ubuntu 8.10 Intrepid  
following the guide on puredata.org: http://puredata.info/docs/developer/64BitLinux


I added a few notes to the guide and I will see what happens when I  
setup my full environment.


For pdp:
I had to add a 3rd argument to the open function on line 141 in / 
externals/pdp/modules/generic/pdp_rawout.c,
apparently creating new files now requires a permission for said  
file. I used 0666.


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






  ¡El pueblo unido jamás será vencido!


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


Re: [PD] streaming audio and video in Linux

2009-02-24 Thread Hans-Christoph Steiner


pdp_theonice~ or something like that is another.

.hc

On Feb 23, 2009, at 11:54 PM, John Harrison wrote:

Somebody was just asking me about options for streaming audio and  
video in Pd-extended. I wouldn't mind help with the answer. Here's  
what I have gathered so far.


Audio:
streamin~ and streamout~ --- but the help patches don't seem to work  
in Linux. Seems to work ok in windows.
netsend~ and netreceive~ --- not provided in pd-extended and seemed  
a bit flaky when I tried them before.
mp3streamin~ and mp3streamout~ --- help patch missing in pd-extended  
but seem to work ok outside of Windows.
mp3cast~ and friends: seems to work ok if you have a shoutcast  
server...

Video:
I couldn't find anything in Gem to stream video. Did I miss it? I  
was wondering if using pix_pix2sig~, streaming as audio, then  
pix_sig2pix~ might work.
in pdp/pidip there's pdp_i and pdp_o. I didn't find help patches for  
these in pd_extended
also in pdp/pidip there's some other's pdp_mp4live~ etc. I suspect  
the ffserver-based ones don't work in pd-extended. Not sure on the  
others.
For either audio or video maybe there's a way to send to vlc through  
the stdin or stdout, then let vlc do the streaming?


-John
--
John Harrison
http://alumni.media.mit.edu/~harrison

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






There is no way to peace, peace is the way.   -A.J. Muste


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


Re: [PD] phase-canceling

2009-02-24 Thread Martin Schied
hi,

mrz schrieb:
 yes,i find it also not an absurd question.
 I had build a loop machine, and i did want to phase cancel the sound 
 is coming out of the speakers to be able recording and play again new 
 stuff over that loop in realtime (overdubbing). But as far as i 
 understand it is a really complex thing to do so as chuck allready 
 mentioned. But someone build allready a kind of feedback canceller 
 or is it simply not possible in the real world?
it's possible: http://en.wikipedia.org/wiki/Echo_cancellation

but I'm no expert at this...

perhaps there's some reusable code of asterisk or other telephony 
software with implementations of cancellation mechanisms someone could...

Martin

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


Re: [PD] pd on Ubuntu 64bit?

2009-02-24 Thread Hans-Christoph Steiner


On Feb 24, 2009, at 1:05 AM, danomatika wrote:


On Tue, 2009-02-24 at 00:03 -0600, John Harrison wrote:



danomatika wrote:

 I made a 64bit build of pd-extended using the pd core (0.41 I  
believe)
 from the pd-extended svn and it has this table bug.  It seems to  
only

 access half of the table, at least in the C08 and C09 audio example
 patches.  They work fine in my build using pd-vanilla 0.42.4.
Wow I am surprised to hear that. I remember seeing this table bug in
0.40 but thought it disappeared on my 64 bit ubuntu Hardy build of  
0.41.
From reading some of the commit lines, it seems not all changes in  
0.41 have been merged into pd-extended yet.


There is now pd-0.41.4 extended, you need to work from that branch, or  
get the code from rsync via the auto-build server.


http://pure-data.svn.sourceforge.net/viewvc/pure-data/branches/pd-extended/0.41/

Right now, only 'pd' is in the branch, the nightly builds use  
everything else from trunk.


.hc




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







You can't steal a gift. Bird gave the world his music, and if you can  
hear it, you can have it. - Dizzy Gillespie




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


Re: [PD] startup problems

2009-02-24 Thread Hans-Christoph Steiner

I recommend not installed the XQuartz if you just want to get things  
working.  If you want to experiment, then sure, go ahead.  These  
instructions have worked on many a Tiger machine:

http://puredata.info/docs/faq/macosx

.hc

On Feb 21, 2009, at 8:33 PM, Conor Higgins wrote:

 right I will get the artist to try and install this on his machine.
 This may still not work however, as the machine he runs uses tiger and
 not leopard...

 Conor

 On 22 Feb 2009, at 00:36, Luigi wrote:


 Am 21.02.2009 um 18:20 schrieb Conor Higgins:

 Is this not the same as x11?


 nope
 there is a bug

 you are on 10.5.xx or sthg and there was a bug i remember

 Conor

 On 21 Feb 2009, at 16:10, Enrique Erne wrote:

 you could try this one:
 http://xquartz.macosforge.org/trac/wiki/X112.3.2.1


 Conor Higgins wrote:
 Hi Jack,
 we did that... it didnt work, we tried it twice in fact. Once
 before  we reinstalled the operating system, and once after we
 installed the  operating system...
 Conor
 On 21 Feb 2009, at 15:50, Jack wrote:
 You have to install X11 User from the MacOSX installation DVD.
 ++

 Jack


 Le 20 févr. 09 à 23:16, Conor Higgins a écrit :

 Hi guys,

 I am working on an art project at the moment and I am using PD
 to  design the system that we will be exhibiting, now for some
 reason  the artist can't seem to get PD to actually run properly
 on his own  laptop, a macbook 13. We have tried everything with
 regards the  startup paths, reinstalling, deleting the plist
 files, even  reinstalling the operating system just last week,
 yet we are still  getting the same problems with the software.
 Pretty much every  other library can be loaded manually, i.e
 adding it to the startup  path, except for those that involve
 video manipulation or graphics  manipulation e.g. Gem, PDP,  
 PiDiP
 etc. If you look at the startup  window image below you will see
 that the errors having something to  do with x11. We tried
 installing x11 to combat this error, but for  some reason it  
 will
 not allow us to do this either giving an error  message stating
 that a newer version of the software already  exists, which it
 doesn't... we have scanned the system looking for  it and it  
 isnt
 there. Has anybody here got an idea as to why this  is  
 happening?

 Thank you,
 Conor Higgins



 PD Part 1.tiffpd part2.tiffX11.tiff

 ___
 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



 ___
 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





All information should be free.  - the hacker ethic





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


Re: [PD] phase-canceling

2009-02-24 Thread joel silvestre
Le lundi 23 février 2009 à 23:02 +0100, yohannes a écrit :
 hello everybody,
 
 maybe sounds absurd:
 
 is it possible to cancel an whole signal of an mic input through 
 phase-canceling?
 
 if yes, how can i do dat in pd?
 

Hi yohannes,

maybe you are looking for something like an acoustic echo canceller.
Speex has one:

http://www.speex.org/docs/manual/speex-manual/node4.html#SECTION0045

maec~.c is a more than ugly very first attempt for an external quickly
written to give speex a try. 
I had quite good results, close to 20dB rejection, with only one micro
and only one speaker. Rejection is close to nothing with 2 speakers. As
I need a good rejection with 5 speakers I gave up. 

All the best,
Joël

/*
 * 
 */

#include sys/types.h
#include stdio.h
#include stdlib.h
#include math.h
#include m_pd.h
#include speex/speex_echo.h




/* pd's samplerate */
float fs;
unsigned int frame_size = 64;	// Pd block size;
unsigned int filter_length = 4410; // 100ms @ 44.1Kz

static t_class *maec_class;

typedef struct _maec
{
	t_object x_obj;
	t_float f;
  
} t_maec;


spx_int16_t *input_frame;
spx_int16_t *echo_frame;
spx_int16_t *output_frame;
spx_int16_t *deco_in, *deco_out;


SpeexEchoState *echo_state;
SpeexDecorrState *deco_state;




static t_int *maec_perform(t_int *w)
{

	/* Achtung !!!
	 * inlet and outlet buffer share the same memory !!!
	 */ 

	int n, i, j;

	n = (int)(w[15]);

	t_maec *obj = (t_maec *)(w[1]);
	t_float *in = (t_float *)(w[2]);
	t_float *echo = (t_float *)(w[3]);

	t_float *in1 = (t_float *)(w[4]);
	t_float *in2 = (t_float *)(w[5]);
	t_float *in3 = (t_float *)(w[6]);
	t_float *in4 = (t_float *)(w[7]);
	t_float *in5 = (t_float *)(w[8]);

	t_float *out = (t_float *)(w[9]);
	t_float *out1 = (t_float *)(w[10]);
	t_float *out2 = (t_float *)(w[11]);
	t_float *out3 = (t_float *)(w[12]);
	t_float *out4 = (t_float *)(w[13]);
	t_float *out5 = (t_float *)(w[14]);

/*
	for (i = 0, j = 0 ; in; i++) {
		deco_in[j++] = (spx_int16_t) floorf(0x7fff * in1[i] + 0.5);
		deco_in[j++] = (spx_int16_t) floorf(0x7fff * in2[i] + 0.5);
		deco_in[j++] = (spx_int16_t) floorf(0x7fff * in3[i] + 0.5);
		deco_in[j++] = (spx_int16_t) floorf(0x7fff * in4[i] + 0.5);
		deco_in[j++] = (spx_int16_t) floorf(0x7fff * in5[i] + 0.5);

//		echo_frame[i] =(spx_int16_t) floorf(0x7fff/5.0 * (in1[i]+in2[i]+in3[i]+in4[i]+in5[i] +0.5));
	}

	speex_decorrelate(deco_state, deco_in, deco_out, 50);

	for (i=0, j=0; in; i++){
		echo_frame[i] =(spx_int16_t) floorf((deco_out[j]+deco_out[j+1]+deco_out[j+2]+deco_out[j+3]+deco_out[j+4])/5.0) +0.5;
		j+=5;
	}*/

	for (i = 0; in ; i++) {
		input_frame[i] = (spx_int16_t) (floorf((32767.0 * in[i]) + 0.5));
		echo_frame[i] = (spx_int16_t) (floorf((32767.0 * echo[i]) + 0.5));
	}
	speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);

	for (i = 0; in; i++) {
		out[i] = (t_float) output_frame[i] / (float) 0x7fff;
	}
	
/*	for (i = 0, j = 0; in; i++) {
		out1[i] =  (t_float) deco_out[j++] / (float) 0x7fff;
		out2[i] =  (t_float) deco_out[j++] / (float) 0x7fff;
		out3[i] =  (t_float) deco_out[j++] / (float) 0x7fff;
		out4[i] =  (t_float) deco_out[j++] / (float) 0x7fff;
		out5[i] =  (t_float) deco_out[j++] / (float) 0x7fff;
	//	out5[i] = (t_float) echo_frame[i]/ (float) 0x7fff;
  
	}*/

	return (w+16);
}


static void maec_dsp(t_maec *x, t_signal **sp)
{
		dsp_add(maec_perform, 15, x, sp[0]-s_vec, sp[1]-s_vec, sp[2]-s_vec, sp[3]-s_vec, sp[4]-s_vec,
			 	sp[5]-s_vec, sp[6]-s_vec, sp[7]-s_vec, sp[8]-s_vec, sp[9]-s_vec, sp[10]-s_vec, sp[11]-s_vec, 
sp[12]-s_vec, sp[0]-s_n);
}

static void *maec_new(t_symbol *s, int argc, t_atom *argv)
{
	t_maec *x = (t_maec *)pd_new(maec_class);

	inlet_new(x-x_obj, x-x_obj.ob_pd,  gensym(signal),  gensym(signal));
	inlet_new(x-x_obj, x-x_obj.ob_pd,  gensym(signal),  gensym(signal));
	inlet_new(x-x_obj, x-x_obj.ob_pd,  gensym(signal),  gensym(signal));
	inlet_new(x-x_obj, x-x_obj.ob_pd,  gensym(signal),  gensym(signal));
	inlet_new(x-x_obj, x-x_obj.ob_pd,  gensym(signal),  gensym(signal));
	inlet_new(x-x_obj, x-x_obj.ob_pd,  gensym(signal),  gensym(signal));

	outlet_new(x-x_obj, gensym(signal));
	outlet_new(x-x_obj, gensym(signal));
	outlet_new(x-x_obj, gensym(signal));
	outlet_new(x-x_obj, gensym(signal));
	outlet_new(x-x_obj, gensym(signal));
	outlet_new(x-x_obj, gensym(signal));

	return (x);
}

void maec_length(t_maec *x, t_float f)
{
	speex_echo_state_reset(echo_state);
	deco_state = speex_decorrelate_new(fs, 5, frame_size);
	echo_state = speex_echo_state_init_mc(frame_size, f, 1, 1);
	speex_echo_ctl(echo_state, SPEEX_ECHO_SET_SAMPLING_RATE, fs);

	post(%f/n, f);
}


void maec_tilde_setup(void)
{


	fs = 44100; // sys_getsr();
	maec_class = class_new(gensym(maec~), (t_newmethod)maec_new, 0, sizeof(t_maec), 0, A_GIMME, 0);
	CLASS_MAINSIGNALIN(maec_class, t_maec, f);

	class_addmethod(maec_class, (t_method)maec_dsp, gensym(dsp), 0);
	class_addfloat(maec_class, (t_method)maec_length);

	input_frame = getbytes(frame_size *