[L2Ork-dev] Interested in 'General Midi Mad Dash'

Ishan Kumar Kaler kumarkalerishan at gmail.com
Thu Apr 8 17:10:20 EDT 2021


I have implemented a test patch for pdcontrol using pddplink from the pddp
library. The patch files are in the repo
<https://git.purrdata.net/ishankaler/pdcontrol-test-patch/-/tree/master>and
also attached with the mail. pddplink does not allow me to take $arguments
as it rendered an embedded comment link so for this patch I had to use
dynamic patching creating a new sub-patch made of pddplink object and
input.
The patch opens the link two times in the browser for me(cannot exactly
figure out the reason, could some issue due to dynamic connection or some
problem with mine default broswer), additional testing is required.
Also in the case of this test-patch and/or in the default [pdcontrol]
object in Pdvanilla, when we pass an invalid argument(wrong website
domain), the object does not do anything and neither does throw any error
or console output.

- Ishan

On Wed, Apr 7, 2021 at 11:42 PM Albert Graef <aggraef at gmail.com> wrote:

> Matt, you beat me to it. ;-) Anyway, it might be possible to implement the
> browse method using some stuff from the pddp library maybe?
>
> Albert
>
>
> On Wed, Apr 7, 2021 at 8:01 PM Matt Barber <brbrofsvl at gmail.com> wrote:
>
>> The [pdcontrol] abstraction works similarly to, but not identically to
>> the Pd builtin. Differences:
>>
>> 1. Pd builtin has a "browse" method
>> 2. Pd builtin allows "dir" method with no arguments
>>
>> Also in Pd vanilla when you escape \$0 or any dollarsign value as an
>> argument it's passed to the abstraction without expanding, but apparently
>> not in Purr. And this affects how [pdcontrol] gets args.
>>
>> On Wed, Apr 7, 2021 at 3:12 AM ishan kumar kaler <
>> kumarkalerishan at gmail.com> wrote:
>>
>>> [Pdcontrol] object is inbuilt in Pd vanilla(works for me in Pd version
>>> 0.51.3). It was released in version 0.50 [Ref =
>>> http://msp.ucsd.edu/Pd_documentation/x5.htm]. Pdcontrol inbuilt object
>>> is unavailable in Purr data.
>>>
>>> Pdcontrol.pd patch, that Jonathan attached to this thread, works in Purr
>>> Data but not in Pd vanilla, due to the absence of [canvasinfo] in Pd
>>> vanilla.
>>>
>>> - Ishan
>>>
>>> On Wed, Apr 7, 2021 at 4:58 AM Matt Barber <brbrofsvl at gmail.com> wrote:
>>>
>>>> It wasn't inlet~ fwd – I remembered wrong. It was inlet~'s inlet, which
>>>> you can pass floats to in order to initialize from inside.
>>>>
>>>> I'll test pdcontrol tonight after my kids' bedtime. I'd still rather
>>>> stay up to date with the vanilla built-in when possible, but there might be
>>>> good reasons to avoid that in this iteration.
>>>>
>>>> Matt
>>>>
>>>> On Tue, Apr 6, 2021 at 6:06 PM Jonathan Wilkes <jon.w.wilkes at gmail.com>
>>>> wrote:
>>>>
>>>>> Also-- I think I used my `[pdcontrol]` abstraction for something I
>>>>> posted on the Pd Forum, and none of the Pd Vanilla users noticed. So
>>>>> please test and if it seems to work we can roll it into the build
>>>>> monstrosity somewhere.
>>>>>
>>>>> One question-- how do we ship an abstraction as a core object? I
>>>>> suppose I could make a default-loaded lib named vanilla-compatible for
>>>>> stuff like this. But then if someone runs Purr without prefs the
>>>>> abstraction core objects wouldn't load by default.
>>>>>
>>>>> -Jonathan
>>>>>
>>>>>
>>>>> On Tue, Apr 6, 2021 at 6:02 PM Albert Graef <aggraef at gmail.com> wrote:
>>>>> >
>>>>> > I think that inlet~ fwd was added in 2.13.0, released in Aug 2020 (
>>>>> https://github.com/agraef/purr-data/releases/tag/2.13.0). So it's
>>>>> been implemented for quite a while, at least if the changelogs aren't
>>>>> lying. ;-)
>>>>> >
>>>>> >
>>>>> > On Tue, Apr 6, 2021 at 8:35 PM Matt Barber <brbrofsvl at gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >> I might be wrong about inlet fwd. I'll look soon.
>>>>> >>
>>>>> >> MB
>>>>> >>
>>>>> >> On Tue, Apr 6, 2021, 1:30 PM Jonathan Wilkes <
>>>>> jon.w.wilkes at gmail.com> wrote:
>>>>> >>>
>>>>> >>> On Tue, Apr 6, 2021 at 1:22 PM Matt Barber <brbrofsvl at gmail.com>
>>>>> wrote:
>>>>> >>> >
>>>>> >>> > Hello, thanks for the questions.
>>>>> >>> >
>>>>> >>> > I would prefer that it be Pd-vanilla-with-no-externals
>>>>> compatible. That way it would have maximum usability but could still be
>>>>> included with Purr by default. There are a few updates in Pd that haven't
>>>>> yet AFAIK made it into Purr which could be very helpful, particularly
>>>>> [inlet~ fwd] and [pdcontrol], so getting those into the architecture could
>>>>> be part of this project.
>>>>> >>>
>>>>> >>> * `[inlet~ fwd]` wasn't in the last release of Purr Data, over a
>>>>> year
>>>>> >>> ago? If that's true, it will certainly be in the next release.
>>>>> >>>
>>>>> >>> * attached is an abstraction for pdcontrol. Could you check to see
>>>>> if
>>>>> >>> it actually works? If so we can just ship it with Purr Data
>>>>> >>>
>>>>> >>> -Jonathan
>>>>> >>>
>>>>> >>> >
>>>>> >>> > MB
>>>>> >>> >
>>>>> >>> > On Sun, Apr 4, 2021 at 2:33 AM ishan kumar kaler <
>>>>> kumarkalerishan at gmail.com> wrote:
>>>>> >>> >>
>>>>> >>> >>   Hi,
>>>>> >>> >>     Thanks for your generous advice. I'll submit a draft
>>>>> proposal for review asap specifying the framework. Besides that, I have
>>>>> some unsureness regarding project implementation details, namely, what Pd
>>>>> version we have to use in the project (pd-l2ork 2.x or pd vanilla)?  Along
>>>>> with core vanilla objects, should we use objects from external libraries
>>>>> (let's say [drunk] from cyclone)?
>>>>> >>> >>
>>>>> >>> >> Best regards,
>>>>> >>> >> Ishan
>>>>> >>> >>
>>>>> >>> >> On Sun, Apr 4, 2021 at 1:06 AM Matt Barber <brbrofsvl at gmail.com>
>>>>> wrote:
>>>>> >>> >>>
>>>>> >>> >>> Welcome! Since this is Pd Vanilla only, you'll want to
>>>>> familiarize yourself asap with abstractions and the [clone] object. Also,
>>>>> the framework for storing, loading, selecting, and playing will be more
>>>>> important than actually completing all of the synths. Be sure to include
>>>>> how you might tackle this framework in your proposal.
>>>>> >>> >>>
>>>>> >>> >>> Matt
>>>>> >>> >>>
>>>>> >>> >>> On Fri, Apr 2, 2021 at 4:04 PM ishan kumar kaler <
>>>>> kumarkalerishan at gmail.com> wrote:
>>>>> >>> >>>>
>>>>> >>> >>>>   Hi,
>>>>> >>> >>>>     I have created Synth from VSTs in the past. As far as
>>>>> Pure-data is concerned, I have created some basic synths using AM/FM
>>>>> Synthesis and effects. I'm readily exploring more on the go.
>>>>> >>> >>>>
>>>>> >>> >>>> Best regards,
>>>>> >>> >>>> Ishan
>>>>> >>> >>>>
>>>>> >>> >>>> On Fri, Apr 2, 2021 at 10:59 PM Jonathan Wilkes <
>>>>> jon.w.wilkes at gmail.com> wrote:
>>>>> >>> >>>>>
>>>>> >>> >>>>> On Fri, Apr 2, 2021 at 12:54 PM ishan kumar kaler
>>>>> >>> >>>>> <kumarkalerishan at gmail.com> wrote:
>>>>> >>> >>>>> >
>>>>> >>> >>>>> > Hello everyone,
>>>>> >>> >>>>> >            My name is Ishan and I am CS Undergrad. I have
>>>>> done few development projects until now and have some Open Source
>>>>> Experience. I have an interest in music production and some experience in
>>>>> sound synthesis.
>>>>> >>> >>>>> >
>>>>> >>> >>>>> > I'm interested in contributing to the Purr Data project
>>>>> and working on the project 'General Midi Library'.
>>>>> >>> >>>>> >
>>>>> >>> >>>>> > In the past, I have worked with DAWs and VSTs and have
>>>>> some experience with Pure Data also. I'm currently exploring Purr Data
>>>>> in-depth and familiarizing myself with the codebase while making
>>>>> contributions all along.
>>>>> >>> >>>>> >
>>>>> >>> >>>>> > I wish to ask if there's an IRC channel alongside the
>>>>> mailing list, as I couldn't find one. I'll be more than happy to have
>>>>> suggestions from you all :)
>>>>> >>> >>>>> >
>>>>> >>> >>>>> > Best regards,
>>>>> >>> >>>>> > Ishan
>>>>> >>> >>>>>
>>>>> >>> >>>>> Hello Ishan,
>>>>> >>> >>>>>
>>>>> >>> >>>>> Welcome!
>>>>> >>> >>>>>
>>>>> >>> >>>>> We don't have a chat channel atm, but you're welcome to ask
>>>>> any
>>>>> >>> >>>>> questions here on the mailing list.
>>>>> >>> >>>>>
>>>>> >>> >>>>> As for the project-- have you built any software synths
>>>>> before?
>>>>> >>> >>>>>
>>>>> >>> >>>>> Best,
>>>>> >>> >>>>> Jonathan
>>>>> >>> >>>>>
>>>>> >>> >>>>> > _______________________________________________
>>>>> >>> >>>>> > L2Ork-dev mailing list
>>>>> >>> >>>>> > L2Ork-dev at disis.music.vt.edu
>>>>> >>> >>>>> > https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>> >>>>> _______________________________________________
>>>>> >>> >>>>> L2Ork-dev mailing list
>>>>> >>> >>>>> L2Ork-dev at disis.music.vt.edu
>>>>> >>> >>>>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>> >>>>
>>>>> >>> >>>> _______________________________________________
>>>>> >>> >>>> L2Ork-dev mailing list
>>>>> >>> >>>> L2Ork-dev at disis.music.vt.edu
>>>>> >>> >>>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>> >>>
>>>>> >>> >>> _______________________________________________
>>>>> >>> >>> L2Ork-dev mailing list
>>>>> >>> >>> L2Ork-dev at disis.music.vt.edu
>>>>> >>> >>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>> >>
>>>>> >>> >> _______________________________________________
>>>>> >>> >> L2Ork-dev mailing list
>>>>> >>> >> L2Ork-dev at disis.music.vt.edu
>>>>> >>> >> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>> >
>>>>> >>> > _______________________________________________
>>>>> >>> > L2Ork-dev mailing list
>>>>> >>> > L2Ork-dev at disis.music.vt.edu
>>>>> >>> > https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>> _______________________________________________
>>>>> >>> L2Ork-dev mailing list
>>>>> >>> L2Ork-dev at disis.music.vt.edu
>>>>> >>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >>
>>>>> >> _______________________________________________
>>>>> >> L2Ork-dev mailing list
>>>>> >> L2Ork-dev at disis.music.vt.edu
>>>>> >> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> >
>>>>> >
>>>>> >
>>>>> > --
>>>>> > Dr. Albert Gr"af
>>>>> > Computer Music Research Group, JGU Mainz, Germany
>>>>> > Email: aggraef at gmail.com, web: https://agraef.github.io/
>>>>> > _______________________________________________
>>>>> > L2Ork-dev mailing list
>>>>> > L2Ork-dev at disis.music.vt.edu
>>>>> > https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>> _______________________________________________
>>>>> L2Ork-dev mailing list
>>>>> L2Ork-dev at disis.music.vt.edu
>>>>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>>
>>>> _______________________________________________
>>>> L2Ork-dev mailing list
>>>> L2Ork-dev at disis.music.vt.edu
>>>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>>
>>> _______________________________________________
>>> L2Ork-dev mailing list
>>> L2Ork-dev at disis.music.vt.edu
>>> https://disis.music.vt.edu/listinfo/l2ork-dev
>>
>> _______________________________________________
>> L2Ork-dev mailing list
>> L2Ork-dev at disis.music.vt.edu
>> https://disis.music.vt.edu/listinfo/l2ork-dev
>
>
>
> --
> Dr. Albert Gr"af
> Computer Music Research Group, JGU Mainz, Germany
> Email: aggraef at gmail.com, web: https://agraef.github.io/
> _______________________________________________
> L2Ork-dev mailing list
> L2Ork-dev at disis.music.vt.edu
> https://disis.music.vt.edu/listinfo/l2ork-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://disis.music.vt.edu/pipermail/l2ork-dev/attachments/20210409/8992c86c/attachment-0001.html>
-------------- next part --------------
#N canvas 354 224 451 301 10;
#X obj 146 104 pdcontrol;
#X msg 134 54 browse http://puredata.info;
#X obj 126 17 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X text 30 16 click here -->;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: README-PDCONTROL.md
Type: application/octet-stream
Size: 509 bytes
Desc: not available
URL: <http://disis.music.vt.edu/pipermail/l2ork-dev/attachments/20210409/8992c86c/attachment-0001.obj>
-------------- next part --------------
#N canvas -8 -8 1554 786 12;
#X obj 38 26 inlet;
#X obj 38 180 outlet;
#X msg 196 88 vis;
#X obj 196 115 canvasinfo 1;
#N canvas 415 257 450 300 \$0-dir 0;
#X obj 89 155 canvasinfo;
#X msg 89 117 dir;
#X obj 89 194 pack s s;
#X msg 89 223 symbol \$1/\$2;
#X obj 89 48 trigger bang anything bang;
#X obj 287 109 symbol;
#X obj 89 20 inlet;
#X obj 89 252 outlet;
#X obj 156 78 route float list;
#X obj 178 109 list split 1;
#X obj 218 144 route symbol;
#X obj 265 236 print error;
#X msg 265 205 pdcontrol: bad arguments;
#X obj 265 175 b;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 7 0;
#X connect 4 0 1 0;
#X connect 4 1 8 0;
#X connect 4 2 5 0;
#X connect 5 0 10 0;
#X connect 6 0 4 0;
#X connect 8 0 0 1;
#X connect 8 1 9 0;
#X connect 8 2 13 0;
#X connect 9 0 0 1;
#X connect 9 1 10 0;
#X connect 10 0 2 1;
#X connect 10 1 13 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X restore 119 115 pd \$0-dir;
#N canvas 193 66 574 534 \$0-args 0;
#X obj 55 434 canvasinfo;
#X msg 55 68 args;
#X obj 234 68 route float;
#X obj 308 92 b;
#X obj 55 10 inlet;
#X obj 55 463 outlet;
#X obj 234 355 canvasinfo;
#X msg 234 330 boxtext;
#X obj 234 382 list split 1;
#X obj 234 246 until;
#X obj 234 171 trigger anything bang;
#X obj 234 274 f;
#X obj 274 274 + 1;
#X obj 378 199 f 0;
#X obj 234 145 max 1;
#X obj 144 364 f;
#X obj 234 301 t b a a a;
#X obj 55 42 trigger bang bang anything;
#X obj 266 222 r \$0-args-br;
#X obj 315 468 s \$0-args-br;
#X obj 294 437 bang;
#X text 331 436 abstraction boundary;
#X text 327 382 toplevel boundary-- no box text;
#X obj 234 198 until;
#X obj 308 117 f 2;
#X obj 234 92 + 2;
#X text 347 13 A bit tricky... we set canvas level with the float arg
to [canvasinfo]. But for args \, the user doesn't want to specify canvas
level but rather "root" level as defined in canvas_getrootfor of g_canvas.c.
, f 30;
#X obj 234 407 select pd page;
#X text 411 167 To accommodate this \, we leverage the fact that "boxtext"
can only be "pd" or "page" for subpatches (graphs in Purr Data cannot
contain objects). This way we can climb the user-specified number of
"root" canvas + however many subpatches..., f 21;
#X text 95 306 total number of canvases to climb, f 14;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 25 0;
#X connect 2 1 3 0;
#X connect 3 0 24 0;
#X connect 4 0 17 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 27 0;
#X connect 8 2 19 0;
#X connect 9 0 11 0;
#X connect 10 0 23 0;
#X connect 10 1 13 0;
#X connect 11 0 16 0;
#X connect 12 0 11 1;
#X connect 13 0 11 1;
#X connect 14 0 10 0;
#X connect 15 0 0 1;
#X connect 16 0 7 0;
#X connect 16 1 6 1;
#X connect 16 2 12 0;
#X connect 16 3 15 1;
#X connect 17 0 1 0;
#X connect 17 1 15 0;
#X connect 17 2 2 0;
#X connect 18 0 9 1;
#X connect 20 0 19 0;
#X connect 23 0 9 0;
#X connect 24 0 14 0;
#X connect 25 0 14 0;
#X connect 27 2 20 0;
#X restore 38 115 pd \$0-args;
#X obj 38 55 route args dir isvisible browse;
#N canvas -8 -8 1538 803 \$0-browse 1;
#X obj 311 12 inlet;
#X obj 326 193 symbol https://google.com;
#N canvas 911 279 402 318 browse-patch 0;
#X obj 40 40 pddplink http://puredata.info -box;
#X obj 0 0 r open-page;
#X connect 1 0 0 0;
#X restore 758 51 pd browse-patch;
#X msg 503 128 \; pd-browse-patch clear;
#X obj 258 208 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 98 398 s open-page;
#X obj 185 283 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 97 361 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X msg 255 295 \; pd-browse-patch obj 0 0 r open-page;
#X msg 180 345 \; pd-browse-patch connect 1 0 0 0;
#X msg 343 251 \; pd-browse-patch obj 40 40 pddplink \$1 -box;
#X text 422 39 toggling from right to left;
#X msg 394 54;
#X obj 274 74 t b b b a b;
#X connect 0 0 12 0;
#X connect 0 0 13 0;
#X connect 1 0 10 0;
#X connect 4 0 8 0;
#X connect 6 0 9 0;
#X connect 7 0 5 0;
#X connect 13 0 7 0;
#X connect 13 1 6 0;
#X connect 13 2 4 0;
#X connect 13 3 1 0;
#X connect 13 4 3 0;
#X restore 323 114 pd \$0-browse;
#X connect 0 0 6 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 5 0;
#X connect 6 1 4 0;
#X connect 6 2 2 0;
#X connect 6 3 7 0;


More information about the L2Ork-dev mailing list