MegalonPureData
MegalonPureData
  • 6
  • 16 867
Pure Data [plot] sequencer
Find this sequencer in my new patch collection on github!
github.com/megalon/pd-patch-collection
Переглядів: 1 274

Відео

TBC_teaser03
Переглядів 2,1 тис.6 років тому
github.com/megalon/THE_BEAT_COP Sequence 16 sounds Chain 16 patterns Select 15 FX Mouse keyboard midi Easy midi mapper Load your own samples Change sample start position Change sample length Randomize, shift, copy / paste Made in Pure Data Vanilla flatgui library Control with Pure Data Extra functionality with expander modules Run multiple instances at the same time Crash PD, but it's OK becaus...
TBC_teaser02
Переглядів 3946 років тому
Sequence 16 sounds Chain 16 patterns Select 15 FX Mouse keyboard midi Easy midi mapper Load your own samples Change sample start position Change sample length Randomize, shift, copy / paste , '_ !
TBC_teaser01
Переглядів 8336 років тому
Sequence 16 sounds Chain 16 patterns Select 15 FX Control with mouse keyboard midi , , / , '_ !
[Advanced] Dynamic Patching in Pure Data Vanilla
Переглядів 11 тис.6 років тому
UPDATE: I've found a way to delete specific objects. You can use the internal message "pd-name-of-subpatch mouse x y 0 0" to click on parts of the patch, then use "pd-name-of-subpatch cut" to delete the object. This is ever better than "click" because it doesn't focus the window while it's happening. Download the patches in this video: github.com/megalon/DynamicPatchingExamples PD Internal Mess...
Ableton Clip Launcher Recreated in Pure Data
Переглядів 1,4 тис.6 років тому
Download link: github.com/megalon/LiveLauncherClone Make sure you have all files in the same folder, then open up "live-launcher-clone.pd" Message me on reddit with the username _megalon_ Or find me on the PD sub /r/puredata www.reddit.com/r/puredata/

КОМЕНТАРІ

  • @thulsadum
    @thulsadum 4 місяці тому

    For deleting a specific object or atom, you could use the [ delete ( message of the pointer object, if you manage to get hold of an pointer to that object (which is not that apparent to me atm, tbh).

  • @uoailewa
    @uoailewa 6 місяців тому

    Cool

  • @mavisbavingson2299
    @mavisbavingson2299 8 місяців тому

    i would be interested in learning how this works

  • @mavisbavingson2299
    @mavisbavingson2299 8 місяців тому

    this is incredible

  • @gabrieldecarvalhoeoliveira5618

    great video! is there a way to click with "Command"?

  • @SDX9000
    @SDX9000 Рік тому

    great work!!

  • @plasticdub1477
    @plasticdub1477 2 роки тому

    thank you for this - and particularly for making it clear how "connect" objects work - the only thing i would add is that the indices for "connect" seem to restart from zero inside each sub-patch - i have been trying to dynamically create an array of float atoms (number boxes) plus a couple toggles - dynamically setting "send" and "receive" works for the float atoms but not for the toggles - so i need to use "connect" messages to get around this - so long as i create the the toggles first inside an empty sub-patch then i can rely on them being indexed 0, 1, etc. and it's easy to connect them - btw the other method i found for doing a dynamic "receive" is to use a parallel "value" object - e.g. if i have [send foo] and [value foo] then whatever goes into my "send" ends up in the "value" object and i can get it by banging the left input - the reason this solves the problem is that you can use the right input of the "value" object to tell it what to output (just like we wish we could do with "receive") - i actually prefer this to using "receive" because it requires that you bang the left input of the "value" object so everything inherently stays in sync...

  • @matthieupernaudmusic
    @matthieupernaudmusic 2 роки тому

    this is GOLD 😍. thanks ! that's more than useful

  • @matthieupernaudmusic
    @matthieupernaudmusic 2 роки тому

    impressing work !

  • @MisterConscio
    @MisterConscio 2 роки тому

    Which midi controller is this? This drum machine sounds really good.

    • @WARDISWARD
      @WARDISWARD 5 місяців тому

      livid instruments but they are out of business

  • @olldomu5790
    @olldomu5790 3 роки тому

    amazing! never even seen "plot" but great video, nice sequencer, much love!

  • @ofsortsofsorts9653
    @ofsortsofsorts9653 3 роки тому

    super cool but why do u call it the beat cop? ACAB

  • @dankro279
    @dankro279 3 роки тому

    This animation is soooo sweet!!! Such an excellent piece of work!!

  • @MarioMey
    @MarioMey 4 роки тому

    Hi, man. How should I create objects in the same patch, not subpatch?

  • @joshuanewton1016
    @joshuanewton1016 4 роки тому

    Can you elaborate on how you managed to delete specific objects?

    • @megalonpuredata3204
      @megalonpuredata3204 4 роки тому

      Sure. I made this video several years ago, but I just made a quick test patch and it still works. pastebin.com/raw/RbhGRHWf The "mouse" event simulates a fake mouse click on the canvas (without actually focusing the window or taking mouse control from the user). You then "cut" the object that you want to delete. I didn't include in the description, but you can also give a "mouseup" message to release the mouse at a different position, and thus simulate clicking and dragging. I think it'd be best to just look at the source and see how these work. I'm not too familiar with the source, but it looks like this is the relevant line github.com/pure-data/pure-data/blob/c180bc44ab722cee728174847cf30730e44f245b/src/g_editor.c#L4834

  • @patrickmanion8736
    @patrickmanion8736 4 роки тому

    Thank you for this. I wanted to be able to break a connection between two objects dynamically. After a bit of experimentation I started pd up on the command line (Mac OS X) with a high debug value such as "./pd -d 10". This displays all the mouse coordinates as you move around. I hovered over the connection I wanted to delete and got the coordinates. In my case x and y were 13 and 39 respectively. In the parent patch I executed the following commands: 1) [editmode 1( 2) [mouse 13 39 0 0( 3) [cut( 4) [editmode 0( Oh, btw, this was done using vanilla 0.50-2 Here is my simple patch "dynamic_patching_with_connection_deletion.pd #N canvas 868 182 622 648 12; #N canvas 1542 274 433 300 test 1; #X msg 10 10 hello; #X obj 10 50 print; #X restore 27 152 pd test; #X obj 26 602 s pd-test; #X msg 26 183 msg 10 10 hello; #X msg 41 210 obj 10 50 print; #X msg 56 240 connect 0 0 1 0; #X msg 68 266 clear; #X msg 122 447 cut; #X msg 78 291 selectall; #X msg 92 314 tidy; #X text 15 25 This shows how to dynamically add and delete objects ; #X text 138 182 do these first; #X msg 122 425 mouse 13 39 0 0; #X text 16 50 In order to break a connection run pd from the command line with a high debug number "pd -d 10" worked for me. Hover over the exact connection you want to break and get the mouse coordinates. Put these in a mouse command(see below). Then \, send a cut command. ; #X msg 122 403 editmode 1; #X msg 122 469 editmode 0; #X text 205 402 turn on editmode; #X text 200 469 turn off editmode; #X connect 2 0 1 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 11 0 1 0; #X connect 13 0 1 0; #X connect 14 0 1 0;

  • @n.l.j
    @n.l.j 4 роки тому

    Oh my word ...

  • @MatiasDelera
    @MatiasDelera 5 років тому

    amazing job.

  • @richardnipples7574
    @richardnipples7574 6 років тому

    DAmn, that UI is very involved. Good job.

  • @timkrahmer2344
    @timkrahmer2344 6 років тому

    Fancy thing!

  • @harmonoman7642
    @harmonoman7642 6 років тому

    Sorry for all the text here, but I tweaked your patch a little. Also, sorry in advance for any features I left out. I was just mocking up something quickly to prove to myself that it's possible to dynamically create an object such as a toggle and also assign sends/receives thus doing away with all the wires. #N canvas 587 23 603 234 10; #N canvas 0 23 585 431 \$0-dyn_clock 1; #X obj 406 178 tgl 30 1 tgl-0 to_tgl-0 tgl-0 0 37 0 8 -262144 -1 -1 0 234; #X obj 391 237 tgl 30 1 tgl-1 to_tgl-1 tgl-1 0 37 0 8 -262144 -1 -1 0 234; #X obj 350 283 tgl 30 1 tgl-2 to_tgl-2 tgl-2 0 37 0 8 -262144 -1 -1 0 234; #X obj 293 305 tgl 30 1 tgl-3 to_tgl-3 tgl-3 0 37 0 8 -262144 -1 -1 0 234; #X obj 232 297 tgl 30 1 tgl-4 to_tgl-4 tgl-4 0 37 0 8 -262144 -1 -1 0 234; #X obj 182 262 tgl 30 1 tgl-5 to_tgl-5 tgl-5 0 37 0 8 -262144 -1 -1 0 234; #X obj 153 208 tgl 30 1 tgl-6 to_tgl-6 tgl-6 0 37 0 8 -262144 -1 -1 0 234; #X obj 153 147 tgl 30 1 tgl-7 to_tgl-7 tgl-7 0 37 0 8 -262144 -1 -1 0 234; #X obj 182 93 tgl 30 1 tgl-8 to_tgl-8 tgl-8 0 37 0 8 -262144 -1 -1 0 234; #X obj 232 58 tgl 30 1 tgl-9 to_tgl-9 tgl-9 0 37 0 8 -262144 -1 -1 0 234; #X obj 293 50 tgl 30 1 tgl-10 to_tgl-10 tgl-10 0 37 0 8 -262144 -1 -1 0 234; #X obj 350 72 tgl 30 1 tgl-11 to_tgl-11 tgl-11 0 37 0 8 -262144 -1 -1 0 234; #X obj 391 118 tgl 30 1 tgl-12 to_tgl-12 tgl-12 0 37 0 8 -262144 -1 -1 0 234; #X restore 370 72 pd \$0-dyn_clock; #X floatatom 370 200 5 0 0 0 - - -, f 5; #X obj 370 151 s to_tgl-0; #X obj 370 178 r tgl-0; #X obj 370 126 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X floatatom 370 21 5 0 0 0 node_num - -, f 5; #N canvas 530 23 611 783 dyn_clock 0; #X obj 139 29 inlet; #X obj 194 698 s pd-\$0-dyn_clock; #X obj 229 353 + 1; #X floatatom 216 375 5 0 0 0 - - -, f 5; #X msg 212 326 0; #X obj 194 631 pack f f f; #X obj 282 574 +; #X obj 342 574 +; #X obj 282 547 *; #X obj 342 547 *; #X obj 282 520 cos; #X obj 342 520 sin; #X obj 342 493 * 6.28319; #X obj 377 520 r \$0-spacing; #X text 276 631 id \, x \, y; #X obj 342 439 /; #X floatatom 342 370 5 0 0 0 - - -, f 5; #X obj 382 412 r \$0-num-toggles; #X obj 194 353 f 0; #X obj 310 343 t f f; #X obj 345 316 + 1; #X obj 310 316 f 0; #X msg 328 289 0; #X obj 194 299 t b b; #X obj 194 218 t b b b; #X msg 104 235 clear; #X obj 194 245 f; #X obj 194 272 until; #X obj 217 191 unpack f f; #X obj 171 164 t b b a; #X msg 171 137 \$1 \$1; #X obj 45 137 s \$0-num-toggles; #X floatatom 283 63 5 0 0 1 spacing - -, f 5; #X obj 283 93 t b f; #X obj 358 164 s \$0-spacing; #X obj 181 83 prepend_set; #X msg 181 110 13; #X obj 282 466 * 6.28319; #X obj 282 439 /; #X obj 104 208 loadbang; #X obj 315 120 prepend_set; #X msg 315 147 128; #X obj 139 56 t b f; #X msg 194 658 obj \$2 \$3 toggle 30 1 tgl-\$1 to_tgl-\$1 tgl-\$1 0 37 192 8 -262144 -1 -1 0 234; #X obj 342 601 + 50; #X obj 282 601 + 150; #X obj 203 46 + 115; #X connect 0 0 42 0; #X connect 0 0 46 0; #X connect 2 0 18 1; #X connect 4 0 18 1; #X connect 5 0 43 0; #X connect 6 0 45 0; #X connect 7 0 44 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X connect 10 0 8 0; #X connect 11 0 9 0; #X connect 12 0 11 0; #X connect 13 0 9 1; #X connect 13 0 8 1; #X connect 13 0 7 1; #X connect 13 0 6 1; #X connect 15 0 12 0; #X connect 16 0 38 0; #X connect 16 0 15 0; #X connect 17 0 15 1; #X connect 17 0 38 1; #X connect 18 0 2 0; #X connect 18 0 3 0; #X connect 18 0 5 0; #X connect 19 0 20 0; #X connect 19 1 16 0; #X connect 20 0 21 1; #X connect 21 0 19 0; #X connect 22 0 21 1; #X connect 23 0 18 0; #X connect 23 1 21 0; #X connect 24 0 26 0; #X connect 24 1 22 0; #X connect 24 1 4 0; #X connect 24 2 25 0; #X connect 25 0 1 0; #X connect 26 0 27 0; #X connect 27 0 23 0; #X connect 28 1 26 1; #X connect 29 1 24 0; #X connect 29 2 28 0; #X connect 30 0 29 0; #X connect 32 0 33 0; #X connect 33 0 36 0; #X connect 33 1 34 0; #X connect 33 1 40 0; #X connect 35 0 36 0; #X connect 36 0 31 0; #X connect 36 0 30 0; #X connect 37 0 10 0; #X connect 38 0 37 0; #X connect 39 0 25 0; #X connect 40 0 41 0; #X connect 41 0 34 0; #X connect 42 0 41 0; #X connect 42 1 35 0; #X connect 42 1 30 0; #X connect 42 1 31 0; #X connect 43 0 1 0; #X connect 44 0 5 2; #X connect 45 0 5 1; #X connect 46 0 32 0; #X restore 370 45 pd dyn_clock; #N canvas 0 23 450 300 \$0-dyn_tgl 0; #X restore 370 99 pd \$0-dyn_tgl; #X text 37 166 these could be created inside [pd \$0-dyn_tgl] >; #X text 282 74 click here >; #X connect 3 0 1 0; #X connect 4 0 2 0; #X connect 5 0 6 0;

    • @megalonpuredata3204
      @megalonpuredata3204 6 років тому

      Nice dude, cool concept! I can't quite get it to work though. It looks like PD can't find the object "prepend_set", is that an abstraction you made? Also, you can use something like Pastebin to paste pd patches, then just post a link to it

    • @harmonoman7642
      @harmonoman7642 6 років тому

      oh yeah sorry. Inside [prepend_set] is: [inlet] | [list prepend set] | [list trim] | [outlet]

    • @harmonoman7642
      @harmonoman7642 6 років тому

      Thanks! I couldn't figure out how to just paste the patch.

  • @harmonoman7642
    @harmonoman7642 6 років тому

    I ran into some very helpful links here: forum.pdpatchrepo.info/topic/10813/collection-of-pd-internal-messages-dynamic-patching

  • @sinewave440hertz
    @sinewave440hertz 6 років тому

    Thanks very much for this! Just getting into dynamic patching and this helps me no end. I'm curious to know if you've used dynamic patching to help in building abstractions. Currently experimenting as it seems to be a good way to create (sub)patches on the fly based on the arguments of an abstraction.

    • @megalonpuredata3204
      @megalonpuredata3204 6 років тому

      Thanks! I haven't used it for that purpose, but I am using it regularly to dynamically create receive objects, since you can't normally redefine their names once they have been placed

  • @harmonoman7642
    @harmonoman7642 6 років тому

    Love this! Also, I didn't know about [clone] yet. Thank you!!!

  • @harmonoman7642
    @harmonoman7642 6 років тому

    great work!!!

  • @wurnotantmlb
    @wurnotantmlb 6 років тому

    common!!