Re: [PD] I am a new user confused as to why I cant get GEM object to work.
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
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
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
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
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
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.
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?
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
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?
--- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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?
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
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
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
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
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
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
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?
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
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
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 *