Hello, greetings from Belgium,
I am starting with Pd and have some questions:
Pd instances and sync them?
Pd unload some objects, open other patches, connect them?
(if not, I can use OSC)
Kind regards, Xavier Miller.
2010/11/30 Xavier Miller xavier.miller@cauwe.org
Hello, greetings from Belgium,
I am starting with Pd and have some questions:
- does Pd support multi-threading? If not, is it possible to launch many Pd
instances and sync them?
take a look at the [pd~] object or you can simply run multiple pd instances and send messages between them...
unload some objects, open other patches, connect them?
Yes, though you have to take care a bit. If you load huge files or create or delete many tilde objects, the dsp engine may be interrupted. look at "dynamic patching", or 'pd-msg' stuff
- can Pd run without GUI, even without X support?
yes, do "pd -nogui", don't know if you have to have X running though, I suppose not?
- can Pd be embedded in an application, and controlled programmatically?
(if not, I can use OSC)
We are using pd as a soundengine for a game development project. ( cityinabottle.org ) The main program is python and pd is running in the background (-nogui) with OSC communication.
gr, Tim
Kind regards,
Xavier Miller.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Nov 30, 2010, at 5:06 PM, tim vets wrote:
2010/11/30 Xavier Miller xavier.miller@cauwe.org Hello, greetings from Belgium,
I am starting with Pd and have some questions:
- does Pd support multi-threading? If not, is it possible to launch
many Pd instances and sync them?
take a look at the [pd~] object or you can simply run multiple pd instances and send messages
between them...
- can Pd dynamically change its patches without stopping the engine?
Can Pd unload some objects, open other patches, connect them?
Yes, though you have to take care a bit. If you load huge files or
create or delete many tilde objects, the dsp engine may be
interrupted. look at "dynamic patching", or 'pd-msg' stuff
- can Pd run without GUI, even without X support?
yes, do "pd -nogui", don't know if you have to have X running
though, I suppose not?
- can Pd be embedded in an application, and controlled
programmatically? (if not, I can use OSC)
We are using pd as a soundengine for a game development project.
( cityinabottle.org ) The main program is python and pd is running in the background (- nogui) with OSC communication.
That sounds very interesting, I'd love to hear more about it!
.hc
The arc of history bends towards justice. - Dr. Martin Luther
King, Jr.
Hans,
Could you please let me know what may have been changed in pd-extended 0.42.x version over the past year that may have fixed the path bug I am currently experiencing as I cannot find anything differing between l2ork version and vanilla pd-extended that would explain why pd-extended finds those and l2ork doesn't. Even a simple pointer will undoubtedly save me tons of time.
Thanks!
Ico
What's the path bug you are experiencing?
.hc
On Tue, 2010-11-30 at 19:12 -0500, Ivica Ico Bukvic wrote:
Hans,
Could you please let me know what may have been changed in pd-extended 0.42.x version over the past year that may have fixed the path bug I am currently experiencing as I cannot find anything differing between l2ork version and vanilla pd-extended that would explain why pd-extended finds those and l2ork doesn't. Even a simple pointer will undoubtedly save me tons of time.
Thanks!
Ico
Hi Ico,
if you want to post a new question to the Pd list please compose a new message to pd-list@iem.at rather than taking a random email from the list which you reply and then change the subject. It destroys the thread view, making the archive a mess and it's inconvenient when trying to follow a discussion. It is also a part of the netiquette which you accepted when joining this list http://puredata.info/community/lists/Netiquette#Threads
m.
Am 01.12.2010 um 01:12 schrieb Ivica Ico Bukvic:
Hans,
Could you please let me know what may have been changed in pd-extended 0.42.x version over the past year that may have fixed the path bug I am currently experiencing as I cannot find anything differing between l2ork version and vanilla pd-extended that would explain why pd-extended finds those and l2ork doesn't. Even a simple pointer will undoubtedly save me tons of time.
Thanks!
Ico
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
I am starting with Pd and have some questions:
- does Pd support multi-threading?
maybe someone else could answer this one in depth, i know that tim
blechmann has worked on a fork >which does this
I'm interested in multi-threading "inside" pd, i.e..: could an external be compiled with openMP and have parallelization. Where can I find this?
Best regards, Pedro
On Tue, Nov 30, 2010 at 10:23 PM, Hans-Christoph Steiner hans@at.or.atwrote:
On Nov 30, 2010, at 5:06 PM, tim vets wrote:
2010/11/30 Xavier Miller xavier.miller@cauwe.org
Hello, greetings from Belgium,
I am starting with Pd and have some questions:
- does Pd support multi-threading? If not, is it possible to launch many
Pd instances and sync them?
take a look at the [pd~] object or you can simply run multiple pd instances and send messages between them...
- can Pd dynamically change its patches without stopping the engine? Can Pd
unload some objects, open other patches, connect them?
Yes, though you have to take care a bit. If you load huge files or create or delete many tilde objects, the dsp engine may be interrupted. look at "dynamic patching", or 'pd-msg' stuff
- can Pd run without GUI, even without X support?
yes, do "pd -nogui", don't know if you have to have X running though, I suppose not?
- can Pd be embedded in an application, and controlled programmatically?
(if not, I can use OSC)
We are using pd as a soundengine for a game development project. ( cityinabottle.org ) The main program is python and pd is running in the background (-nogui) with OSC communication.
That sounds very interesting, I'd love to hear more about it!
.hc
The arc of history bends towards justice. - Dr. Martin Luther King, Jr.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Wed, 1 Dec 2010, Pedro Lopes wrote:
i know that tim blechmann has worked on a fork
Wasn't this not part of a fork, but a pair of object classes, one of which may have been called [fork] ? Totally different use of the word.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
Anyway, where are those [fork]s? I'm hungry!
(sorry for the bad joke)
On Wed, Dec 1, 2010 at 4:58 PM, Mathieu Bouchard matju@artengine.ca wrote:
On Wed, 1 Dec 2010, Pedro Lopes wrote:
i know that tim blechmann has worked on a fork
Wasn't this not part of a fork, but a pair of object classes, one of which may have been called [fork] ? Totally different use of the word.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
On Dec 1, 2010, at 11:52 AM, Pedro Lopes wrote:
I am starting with Pd and have some questions:
- does Pd support multi-threading?
maybe someone else could answer this one in depth, i know that tim
blechmann has worked on a fork >which does this
I'm interested in multi-threading "inside" pd, i.e..: could an
external be compiled with openMP and have parallelization. Where can
I find this?
Parallelization is built into Pd, just put down objects, and they will
run in parallel. Granted, Pd doesn't use threads to implement the
parallelization because it aims to be completely deterministic
(basically, that means a patch run exactly the same everytime). Its
difficult to write a deterministic program using standard threads.
It sounds to me that you have a solution in your head looking for a
problem, perhaps you could start with the problem?
.hc
On Tue, Nov 30, 2010 at 10:23 PM, Hans-Christoph Steiner <hans@at.or.at
wrote:
On Nov 30, 2010, at 5:06 PM, tim vets wrote:
2010/11/30 Xavier Miller xavier.miller@cauwe.org Hello, greetings from Belgium,
I am starting with Pd and have some questions:
- does Pd support multi-threading? If not, is it possible to launch
many Pd instances and sync them?
take a look at the [pd~] object or you can simply run multiple pd instances and send messages
between them...
- can Pd dynamically change its patches without stopping the
engine? Can Pd unload some objects, open other patches, connect them?
Yes, though you have to take care a bit. If you load huge files or
create or delete many tilde objects, the dsp engine may be
interrupted. look at "dynamic patching", or 'pd-msg' stuff
- can Pd run without GUI, even without X support?
yes, do "pd -nogui", don't know if you have to have X running
though, I suppose not?
- can Pd be embedded in an application, and controlled
programmatically? (if not, I can use OSC)
We are using pd as a soundengine for a game development project.
( cityinabottle.org ) The main program is python and pd is running in the background (- nogui) with OSC communication.That sounds very interesting, I'd love to hear more about it!
.hc
The arc of history bends towards justice. - Dr. Martin Luther
King, Jr.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Pedro Lopes (MSc) contact: pedro.lopes@ist.utl.pt website: http://web.ist.utl.pt/Pedro.Lopes
I hate it when they say, "He gave his life for his country." Nobody
gives their life for anything. We steal the lives of these kids. -
Admiral Gene LeRocque
Its difficult to write a deterministic program using standard threads.
I know, it's difficult to achieve regular results when you depend on processor scheduling :)
It sounds to me that you have a solution in your head looking for a
problem, perhaps you could start >with the problem? You are right Hans, I can explain better :)
<background_story> Well I was messing around with DTW implementation, I already have my external working for PD (which I used in [1]) and will be available to everyone when I have some quality free time for it (its so much hardcoded right now, it sucks). </background_story>
During that I realized I could implement it in parallel via OpenMP, but tried to compile the code with some openMP directives and it did not work for the pd_external, it seemed that PD could not handle it somehow[2]. So what I wanted was "an object" to be parallel by itself. Not a series of different objects. Does anyone ever made an external that itself uses openMP?
Best regards, Pedro
[1] http://dl.dropbox.com/u/7329207/PedroLopesDTW-based_RecOPad2010.pdf [2] note: my know how of pd internal's is very very limited.
On Wed, 1 Dec 2010, Pedro Lopes wrote:
During that I realized I could implement it in parallel via OpenMP, but tried to compile the code with some openMP directives and it did not work for the pd_external, it seemed that PD could not handle it somehow[2]. So what I wanted was "an object" to be parallel by itself. Not a series of different objects. Does anyone ever made an external that itself uses openMP?
I suppose it means that the code that uses openMP must not use Pd, and the code that uses Pd must not use openMP. Between the two, you need to channel multithreaded communications into singlethreaded communications so that they can fit with Pd. If you can't use (or don't want to use) Pd's sys_lock() for whatever reason, you will need some kind of intermediate buffer so that your Pd objects can pick up the data coming from openMP.
I don't know any openMP though.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
Between the two, you need to channel multithreaded communications into
singlethreaded >communications so that they can fit with Pd. That's always possible of course. One way to go.
If you can't use (or don't want to use) Pd's sys_lock() for whatever
reason, you will need some kind of >intermediate buffer so that your Pd objects can pick up the data coming from openMP. I'll dig in a bit into that.
Thanks for the comments,
best regards, Pedro
On Fri, Dec 3, 2010 at 1:55 PM, Mathieu Bouchard matju@artengine.ca wrote:
On Wed, 1 Dec 2010, Pedro Lopes wrote:
During that I realized I could implement it in parallel via OpenMP,
but tried to compile the code with some openMP directives and it did not work for the pd_external, it seemed that PD could not handle it somehow[2]. So what I wanted was "an object" to be parallel by itself. Not a series of different objects. Does anyone ever made an external that itself uses openMP?
I suppose it means that the code that uses openMP must not use Pd, and the code that uses Pd must not use openMP. Between the two, you need to channel multithreaded communications into singlethreaded communications so that they can fit with Pd. If you can't use (or don't want to use) Pd's sys_lock() for whatever reason, you will need some kind of intermediate buffer so that your Pd objects can pick up the data coming from openMP.
I don't know any openMP though.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
In my case : I will need to build a dedicated machine running Pd. If Pd doesn't support multi-threading, it would be nonsense to buy an octocore system.
Xavier.
Le 01/12/10 18:19, Hans-Christoph Steiner a écrit :
On Dec 1, 2010, at 11:52 AM, Pedro Lopes wrote: It sounds to me that you have a solution in your head looking for a problem, perhaps you could start with the problem?
An 8-core system would not do much for normal Pd patches. Try pd~,
then you can have a pd-instance per core in a single patch.
.hc
On Dec 1, 2010, at 3:05 PM, Xavier Miller wrote:
In my case : I will need to build a dedicated machine running Pd. If
Pd doesn't support multi-threading, it would be nonsense to buy an
octocore system.Xavier.
Le 01/12/10 18:19, Hans-Christoph Steiner a écrit :
On Dec 1, 2010, at 11:52 AM, Pedro Lopes wrote: It sounds to me that you have a solution in your head looking for a problem, perhaps you could start with the problem?
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
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
Thanks, I will investigate that.
Le 1/12/2010 22:20, Hans-Christoph Steiner a écrit :
An 8-core system would not do much for normal Pd patches. Try pd~, then you can have a pd-instance per core in a single patch.
.hc
On Dec 1, 2010, at 3:05 PM, Xavier Miller wrote:
In my case : I will need to build a dedicated machine running Pd. If Pd doesn't support multi-threading, it would be nonsense to buy an octocore system.
Xavier.
Le 01/12/10 18:19, Hans-Christoph Steiner a écrit :
On Dec 1, 2010, at 11:52 AM, Pedro Lopes wrote: It sounds to me that you have a solution in your head looking for a problem, perhaps you could start with the problem?
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
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
On Wed, 1 Dec 2010, Hans-Christoph Steiner wrote:
Parallelization is built into Pd, just put down objects, and they will run in parallel.
There's one thread for all those objects together !
There are a few exceptions to that, which have to be explicitly implemented. For instance, [pix_video] uses threads, whereas GridFlow's equivalents don't.
The <m_pd.h> API is not thread-safe, therefore you have to use a global mutex around anything you do with <m_pd.h>... even gensym().
Granted, Pd doesn't use threads to implement the parallelization because it aims to be completely deterministic (basically, that means a patch run exactly the same everytime). Its difficult to write a deterministic program using standard threads.
No-one uses the word «parallel» to mean *that*.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
Am 30.11.2010 um 21:51 schrieb Xavier Miller:
Hello, greetings from Belgium,
welcome to the list.
I am starting with Pd and have some questions:
- does Pd support multi-threading?
maybe someone else could answer this one in depth, i know that tim blechmann has worked on a fork which does this.
If not, is it possible to launch many Pd instances and sync them?
Yes, It is possible to launch many instances of Pd, you may look into Jack to combine the output or something Also look into the [pd~] object in Pd 42 or newer.
- can Pd dynamically change its patches without stopping the engine? Can Pd unload some objects, open other patches, connect them?
Yes, look into dynamic patching Menu -> Help -> Browser ->Manuals -> pd-msg ->... Also check out [switch~] to stop audio processing in subpatches.
- can Pd run without GUI, even without X support?
Yes, read about the startup flags at the end of the official manual. the flag -nogui is an option
- can Pd be embedded in an application, and controlled programmatically? (if not, I can use OSC)
Yes, look at pdlib http://puredata.info/community/projects/software/libpd/
m.