Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#473 ability to start multiple pd-guis

pending-accepted
nobody
puredata (375)
5
2013-01-03
2012-11-15
No

starting with Pd-0.43, pd-gui checks whether it is already running and tries to reconnect to the existing one.

while this is ok in some situations, it is an issue in other situations:
- when starting multiple instances of Pd on different desktops (i'm using the xfce window manager), the new instance will automatically focus the desktop of the already-running instance, which makes it difficult to separate those instances again (assuming that each instance has a number of windows open on startup)
- when using pd-gui to connect to a remote pd-core (while another instance of Pd is running on the same machines) is practically prohibited by this behaviour

it would be great if one could turn of this feature (at least when starting from the cmdline; and esp. when a <remotehost>:<remotport> is given...currently there is onl a check for remotport>5400 (when starting without <remotehost>)

Discussion

  • Since you are the master of remote pd-guis, IOhannes, I'm assigning this to you. It makes sense to me to base it on the host:port arg.

     
  • attached is a patch (against todays git/master) that doesn't try to connect to a running instance if the user provided a remoteport to connect to.

    it re-uses the logic already implemented in parse_args().

     
    • assigned_to: zmoelnig --> millerpuckette
    • summary: unable to start multiple pd-guis --> ability to start multiple pd-guis
    • labels: 680482 --> puredata
    • milestone: 1022526 -->
     
  • I don't think that's a good enough test. The one you removed is much stricter: $argc == 1 When pd starts pd-gui, it only sends one arg: the port number. If you want this to affect only remote connections, shouldn't you make the test based on ::host?

     
  • updated the patch.

    these are the tests i performed to check for compliance and bugfixes in relation to the old implementation (as found in current git/master):

    + start "pd"
    -> pd+gui starts up

    + start "pd abs1.pd"
    -> pd+gui starts up with abs1 loaded

    + start "pd-gui"
    -> pd+gui starts up

    + start "pd-gui abs1.pd"
    -> pd+gui starts up with abs1 loaded

    + start 2 instances of "pd"
    -> 2 guis pop-up (thus: 2* pd+gui)
    -> when starting on separate desktops, each pd will stay on the desktop it was started at (BUGFIX)

    + start 2 instances of "pd-gui"
    -> the 2nd pd-gui exits after 3 seconds

    + start "pd", then "pd-gui"
    -> the pd-gui exits after 3 seconds

    + start "pd", then "pd-gui", then "pd-gui"
    -> both pd-gui's exit after 3 seconds

    + start "pd-gui", then "pd"
    -> 2 instances of pd+gui start up

    + start "pd abs1.pd" and then "pd abs2.pd"
    -> 2 guis pop-up (2* pd+gui), one with abs1.pd, the other with "abs2.pd"
    -> when starting on separate desktops, each pd will stay on the desktop it was started at (BUGFIX)

    + start "pd-gui abs1.pd" and then "pd-gui abs2.pd"
    -> the 2nd pd-gui quits after 3 seconds, but abs2 gets loaded into the 1st instance
    -> focus is moved to the desktop of the 1st pd-gui

    + start "pd abs1.pd" and then "pd-gui abs2.pd"
    -> the 2nd pd-gui quits after 3 seconds, but abs2 gets loaded into the 1st instance
    -> focus is moved to the desktop of the 1st pd-gui

    + start "pd-gui abs1.pd" and then "pd abs2.pd", and then "pd-gui abs3.pd"
    -> 2 guis pop-up (2* pd+gui), one with "abs1.pd"+"abs3.pd", the other with "abs2.pd"
    -> when starting on separate desktops, the 1st 2 Pds will stay on separate desktops, when starting the last pd-gui, it will switch to desktop#1 to display abs3.pd (BUGFIX)

    + start "pd abs1.pd" and then "pd-gui abs2.pd" and then "pd-gui abs3.pd"
    -> only one instance of Pd gets loaded, ending up with all 3 abs
    -> when starting on separate desktops, all 3 abstractions will end up on desktop#1

     
  • This seems to work for me... I wish it were a bit less complex but I don't see how to simplify it :)

     


Anonymous


Cancel   Add attachments