From 02a5595973b61d2cf789b9074167ed73b928d157 Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Wed, 13 Nov 2002 08:38:02 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r206, which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=207 --- xgui/AUTHORS.txt | 3 + xgui/INSTALL.txt | 34 ++ xgui/LICENSE.txt | 26 ++ xgui/README.txt | 150 ++++++ xgui/adapters_in/xy2coord.pd | 38 ++ xgui/adapters_in/xy2move.pd | 12 + xgui/adapters_in/xy2xy1.pd | 15 + xgui/adapters_in/xy2xy2.pd | 15 + xgui/adapters_out/click2bxy.pd | 16 + xgui/adapters_out/coord2xy.pd | 16 + xgui/adapters_out/drag2move.pd | 10 + xgui/adapters_out/drag2strength.pd | 10 + xgui/adapters_out/move2xy.pd | 12 + xgui/behaviors/dragable.pd | 10 + xgui/behaviors/light_over.pd | 34 ++ xgui/behaviors/ma_2d.pd | 130 ++++++ xgui/behaviors/move.pd | 10 + xgui/behaviors/move_x.pd | 10 + xgui/behaviors/move_y.pd | 10 + xgui/behaviors/width_over.pd | 30 ++ xgui/bin/pdx.sh | 6 + xgui/bin/xgui-client.sh | 867 ++++++++++++++++++++++++++++++++++ xgui/bin/xgui.bat | 1 + xgui/bin/xgui.sh | 908 ++++++++++++++++++++++++++++++++++++ xgui/doc/01_first_seg.pd | 123 +++++ xgui/doc/02_behaviors.pd | 49 ++ xgui/doc/03_low_level.pd | 28 ++ xgui/doc/04_classic.pd | 98 ++++ xgui/doc/05_xseq.pd | 315 +++++++++++++ xgui/doc/06_physics.pd | 24 + xgui/doc/07_speak.pd | 54 +++ xgui/doc/08_more_physics.pd | 89 ++++ xgui/doc/09_more_physics2.pd | 199 ++++++++ xgui/doc/10_sliders.pd | 83 ++++ xgui/doc/Kroonde/K_jongle.pd | 44 ++ xgui/doc/Kroonde/K_konfig.pd | 81 ++++ xgui/doc/Kroonde/K_panel.pd | 81 ++++ xgui/doc/Kroonde/K_send.pd | 70 +++ xgui/doc/Kroonde/Koonfig_ip_dest.pd | 72 +++ xgui/doc/Kroonde/Koonfig_my_ip.pd | 72 +++ xgui/doc/Kroonde/Kroonde.pd | 8 + xgui/doc/Kroonde/calibration.pd | 47 ++ xgui/doc/Kroonde/inv1024.pd | 8 + xgui/doc/Kroonde/kroonde_dest_ip.pd | 49 ++ xgui/doc/Kroonde/kroonde_ip.pd | 49 ++ xgui/doc/Kroonde/range.pd | 43 ++ xgui/doc/Kroonde/stom.pd | 6 + xgui/doc/Kroonde/tst.pd | 18 + xgui/doc/direct_test.pd | 18 + xgui/doc/help-send2.pd | 18 + xgui/doc/help_atom.pd | 11 + xgui/doc/help_convert.pd | 8 + xgui/doc/help_damping.pd | 15 + xgui/doc/help_mass.pd | 14 + xgui/doc/help_object_arc.pd | 75 +++ xgui/doc/help_object_rect.pd | 51 ++ xgui/doc/help_object_text.pd | 78 ++++ xgui/doc/help_spring.pd | 34 ++ xgui/doc/help_valueinit.pd | 8 + xgui/doc/help_vector.pd | 34 ++ xgui/doc/sound/09_more_physics3.pd | 217 +++++++++ xgui/doc/sound/09_more_physics4.pd | 219 +++++++++ xgui/doc/sound/09_more_physics5.pd | 238 ++++++++++ xgui/doc/sound/09_more_physics6.pd | 462 ++++++++++++++++++ xgui/doc/sound/09_more_physics7.pd | 458 ++++++++++++++++++ xgui/doc/sound/2yoyo.pd | 464 ++++++++++++++++++ xgui/doc/sound/2yoyos.pd | 462 ++++++++++++++++++ xgui/doc/sound/atom.pd | 33 ++ xgui/doc/sound/sound.pd | 136 ++++++ xgui/filters/coord.pd | 10 + xgui/filters/xy1.pd | 10 + xgui/filters/xy2.pd | 10 + xgui/install.bat | 7 + xgui/main/alias.pd | 9 + xgui/main/arc.pd | 59 +++ xgui/main/canvas.pd | 28 ++ xgui/main/make4seg_ss.pd | 31 ++ xgui/main/make4seg_sss.pd | 33 ++ xgui/main/make_obj_name.pd | 23 + xgui/main/node.pd | 100 ++++ xgui/main/pdx_connect.pd | 77 +++ xgui/main/rect.pd | 59 +++ xgui/main/seg.pd | 60 +++ xgui/main/text.pd | 59 +++ xgui/makefile | 64 +++ xgui/netserver/help-netserver.pd | 48 ++ xgui/netserver/makefile | 88 ++++ xgui/netserver/netserver.c | 563 ++++++++++++++++++++++ xgui/netserver/netserver.dll | Bin 0 -> 36864 bytes xgui/netserver/netserver.exp | Bin 0 -> 594 bytes xgui/netserver/netserver.lib | Bin 0 -> 1986 bytes xgui/netserver/netserver.zip | Bin 0 -> 31494 bytes xgui/objects/button.pd | 81 ++++ xgui/objects/i-point.pd | 6 + xgui/objects/i-rect.pd | 142 ++++++ xgui/objects/i-seg.pd | 152 ++++++ xgui/objects/i-seg_mp.pd | 140 ++++++ xgui/objects/my_slider1.pd | 112 +++++ xgui/objects/my_slider2.pd | 112 +++++ xgui/objects/my_slider3.pd | 160 +++++++ xgui/objects/pad.pd | 85 ++++ xgui/objects/potar.pd | 103 ++++ xgui/objects/preset.pd | 112 +++++ xgui/objects/slider2.pd | 141 ++++++ xgui/objects/slider_prob.pd | 118 +++++ xgui/pdx.bat | 5 + xgui/pdx.sh | 14 + xgui/physics/atom.pd | 21 + xgui/physics/damping.pd | 59 +++ xgui/physics/force.pd | 29 ++ xgui/physics/lia_2d.pd | 206 ++++++++ xgui/physics/mass.pd | 118 +++++ xgui/physics/spring.pd | 155 ++++++ xgui/physics/vector.pd | 162 +++++++ xgui/preset1.txt | 12 + xgui/preset2.txt | 12 + xgui/preset3.txt | 12 + xgui/preset4.txt | 12 + xgui/utils/bounded.pd | 43 ++ xgui/utils/concat_set_bang.pd | 22 + xgui/utils/concat_value.pd | 26 ++ xgui/utils/convert.pd | 10 + xgui/utils/in.pd | 37 ++ xgui/utils/init2.pd | 27 ++ xgui/utils/moy.pd | 13 + xgui/utils/subspace.pd | 50 ++ xgui/utils/unique.pd | 10 + xgui/utils/value2.pd | 13 + xgui/utils/valueinit.pd | 8 + xgui/xgui-lib/a2s.c | 66 +++ xgui/xgui-lib/concat.c | 68 +++ xgui/xgui-lib/help_number.pd | 60 +++ xgui/xgui-lib/m_pd.h | 579 +++++++++++++++++++++++ xgui/xgui-lib/makefile | 86 ++++ xgui/xgui-lib/message.c | 116 +++++ xgui/xgui-lib/number.c | 249 ++++++++++ xgui/xgui-lib/oname2l.c | 73 +++ xgui/xgui-lib/recv2.c | 80 ++++ xgui/xgui-lib/replace_selector.c | 60 +++ xgui/xgui-lib/seg.c | 90 ++++ xgui/xgui-lib/send2.c | 67 +++ xgui/xgui-lib/test_xgui_lib.pd | 134 ++++++ xgui/xgui-lib/try.sh | 1 + xgui/xgui-lib/xgui_lib.c | 17 + 144 files changed, 12760 insertions(+) create mode 100644 xgui/AUTHORS.txt create mode 100644 xgui/INSTALL.txt create mode 100644 xgui/LICENSE.txt create mode 100644 xgui/README.txt create mode 100644 xgui/adapters_in/xy2coord.pd create mode 100644 xgui/adapters_in/xy2move.pd create mode 100644 xgui/adapters_in/xy2xy1.pd create mode 100644 xgui/adapters_in/xy2xy2.pd create mode 100644 xgui/adapters_out/click2bxy.pd create mode 100644 xgui/adapters_out/coord2xy.pd create mode 100644 xgui/adapters_out/drag2move.pd create mode 100644 xgui/adapters_out/drag2strength.pd create mode 100644 xgui/adapters_out/move2xy.pd create mode 100644 xgui/behaviors/dragable.pd create mode 100644 xgui/behaviors/light_over.pd create mode 100644 xgui/behaviors/ma_2d.pd create mode 100644 xgui/behaviors/move.pd create mode 100644 xgui/behaviors/move_x.pd create mode 100644 xgui/behaviors/move_y.pd create mode 100644 xgui/behaviors/width_over.pd create mode 100755 xgui/bin/pdx.sh create mode 100644 xgui/bin/xgui-client.sh create mode 100644 xgui/bin/xgui.bat create mode 100755 xgui/bin/xgui.sh create mode 100644 xgui/doc/01_first_seg.pd create mode 100644 xgui/doc/02_behaviors.pd create mode 100644 xgui/doc/03_low_level.pd create mode 100644 xgui/doc/04_classic.pd create mode 100644 xgui/doc/05_xseq.pd create mode 100644 xgui/doc/06_physics.pd create mode 100644 xgui/doc/07_speak.pd create mode 100644 xgui/doc/08_more_physics.pd create mode 100644 xgui/doc/09_more_physics2.pd create mode 100644 xgui/doc/10_sliders.pd create mode 100644 xgui/doc/Kroonde/K_jongle.pd create mode 100644 xgui/doc/Kroonde/K_konfig.pd create mode 100644 xgui/doc/Kroonde/K_panel.pd create mode 100644 xgui/doc/Kroonde/K_send.pd create mode 100644 xgui/doc/Kroonde/Koonfig_ip_dest.pd create mode 100644 xgui/doc/Kroonde/Koonfig_my_ip.pd create mode 100644 xgui/doc/Kroonde/Kroonde.pd create mode 100644 xgui/doc/Kroonde/calibration.pd create mode 100644 xgui/doc/Kroonde/inv1024.pd create mode 100644 xgui/doc/Kroonde/kroonde_dest_ip.pd create mode 100644 xgui/doc/Kroonde/kroonde_ip.pd create mode 100644 xgui/doc/Kroonde/range.pd create mode 100644 xgui/doc/Kroonde/stom.pd create mode 100644 xgui/doc/Kroonde/tst.pd create mode 100644 xgui/doc/direct_test.pd create mode 100644 xgui/doc/help-send2.pd create mode 100644 xgui/doc/help_atom.pd create mode 100644 xgui/doc/help_convert.pd create mode 100644 xgui/doc/help_damping.pd create mode 100644 xgui/doc/help_mass.pd create mode 100644 xgui/doc/help_object_arc.pd create mode 100644 xgui/doc/help_object_rect.pd create mode 100644 xgui/doc/help_object_text.pd create mode 100644 xgui/doc/help_spring.pd create mode 100644 xgui/doc/help_valueinit.pd create mode 100644 xgui/doc/help_vector.pd create mode 100644 xgui/doc/sound/09_more_physics3.pd create mode 100644 xgui/doc/sound/09_more_physics4.pd create mode 100644 xgui/doc/sound/09_more_physics5.pd create mode 100644 xgui/doc/sound/09_more_physics6.pd create mode 100644 xgui/doc/sound/09_more_physics7.pd create mode 100644 xgui/doc/sound/2yoyo.pd create mode 100644 xgui/doc/sound/2yoyos.pd create mode 100644 xgui/doc/sound/atom.pd create mode 100644 xgui/doc/sound/sound.pd create mode 100644 xgui/filters/coord.pd create mode 100644 xgui/filters/xy1.pd create mode 100644 xgui/filters/xy2.pd create mode 100644 xgui/install.bat create mode 100644 xgui/main/alias.pd create mode 100644 xgui/main/arc.pd create mode 100644 xgui/main/canvas.pd create mode 100644 xgui/main/make4seg_ss.pd create mode 100644 xgui/main/make4seg_sss.pd create mode 100644 xgui/main/make_obj_name.pd create mode 100644 xgui/main/node.pd create mode 100755 xgui/main/pdx_connect.pd create mode 100644 xgui/main/rect.pd create mode 100644 xgui/main/seg.pd create mode 100644 xgui/main/text.pd create mode 100644 xgui/makefile create mode 100644 xgui/netserver/help-netserver.pd create mode 100644 xgui/netserver/makefile create mode 100644 xgui/netserver/netserver.c create mode 100644 xgui/netserver/netserver.dll create mode 100644 xgui/netserver/netserver.exp create mode 100644 xgui/netserver/netserver.lib create mode 100644 xgui/netserver/netserver.zip create mode 100644 xgui/objects/button.pd create mode 100644 xgui/objects/i-point.pd create mode 100644 xgui/objects/i-rect.pd create mode 100644 xgui/objects/i-seg.pd create mode 100644 xgui/objects/i-seg_mp.pd create mode 100644 xgui/objects/my_slider1.pd create mode 100644 xgui/objects/my_slider2.pd create mode 100644 xgui/objects/my_slider3.pd create mode 100644 xgui/objects/pad.pd create mode 100644 xgui/objects/potar.pd create mode 100644 xgui/objects/preset.pd create mode 100644 xgui/objects/slider2.pd create mode 100644 xgui/objects/slider_prob.pd create mode 100644 xgui/pdx.bat create mode 100755 xgui/pdx.sh create mode 100644 xgui/physics/atom.pd create mode 100644 xgui/physics/damping.pd create mode 100644 xgui/physics/force.pd create mode 100644 xgui/physics/lia_2d.pd create mode 100644 xgui/physics/mass.pd create mode 100644 xgui/physics/spring.pd create mode 100644 xgui/physics/vector.pd create mode 100644 xgui/preset1.txt create mode 100644 xgui/preset2.txt create mode 100644 xgui/preset3.txt create mode 100644 xgui/preset4.txt create mode 100644 xgui/utils/bounded.pd create mode 100644 xgui/utils/concat_set_bang.pd create mode 100644 xgui/utils/concat_value.pd create mode 100644 xgui/utils/convert.pd create mode 100644 xgui/utils/in.pd create mode 100644 xgui/utils/init2.pd create mode 100644 xgui/utils/moy.pd create mode 100644 xgui/utils/subspace.pd create mode 100644 xgui/utils/unique.pd create mode 100644 xgui/utils/value2.pd create mode 100644 xgui/utils/valueinit.pd create mode 100644 xgui/xgui-lib/a2s.c create mode 100644 xgui/xgui-lib/concat.c create mode 100644 xgui/xgui-lib/help_number.pd create mode 100644 xgui/xgui-lib/m_pd.h create mode 100644 xgui/xgui-lib/makefile create mode 100644 xgui/xgui-lib/message.c create mode 100644 xgui/xgui-lib/number.c create mode 100644 xgui/xgui-lib/oname2l.c create mode 100644 xgui/xgui-lib/recv2.c create mode 100644 xgui/xgui-lib/replace_selector.c create mode 100644 xgui/xgui-lib/seg.c create mode 100644 xgui/xgui-lib/send2.c create mode 100644 xgui/xgui-lib/test_xgui_lib.pd create mode 100644 xgui/xgui-lib/try.sh create mode 100644 xgui/xgui-lib/xgui_lib.c (limited to 'xgui') diff --git a/xgui/AUTHORS.txt b/xgui/AUTHORS.txt new file mode 100644 index 00000000..5bc32953 --- /dev/null +++ b/xgui/AUTHORS.txt @@ -0,0 +1,3 @@ +Damien HENRY : Main contributor +Olaff Matthes : The sendto object + good ideas + diff --git a/xgui/INSTALL.txt b/xgui/INSTALL.txt new file mode 100644 index 00000000..d05c9fbc --- /dev/null +++ b/xgui/INSTALL.txt @@ -0,0 +1,34 @@ +copy xgui in your pd directory. + +[linux] + it's better to do a make uninstall with your old version of xgui before installing the new one. + + from a terminal : + make + make install + + Thats all !!! + it will copy the right files @ the rigth places, + but only if you have install pd with make install too. + + Test it by running pdx from a terminal + + make uninstall + will remove all the files created by "make install" + +[windows] + extract the xgui_x.xx.tar.gz into your pd-path + for ex.: c:/pd/ + + Run "install.bat", it will copy the right files @ the rigth places. + + Test it by running pdx.bat + +[other & all] + Seg is very easy to install just have a look into makefile & install.bat + and you'll have all the information to install it manually. + + In fact you d'ont really need to install anything : + just extract the archive in your pd directory. + Then run xgui & pd with the right options : check pdx.* for details. + diff --git a/xgui/LICENSE.txt b/xgui/LICENSE.txt new file mode 100644 index 00000000..715c2cb7 --- /dev/null +++ b/xgui/LICENSE.txt @@ -0,0 +1,26 @@ +This software is copyrighted by Damien Henry and others. The following +terms apply to all files associated with the software unless explicitly +disclaimed in individual files. + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. diff --git a/xgui/README.txt b/xgui/README.txt new file mode 100644 index 00000000..8dc77575 --- /dev/null +++ b/xgui/README.txt @@ -0,0 +1,150 @@ +This is the README file for Xgui_0.10, an experimental GUI (Graphical User Interface) server for pure data. + +The goal of Xgui is not to replace the existing GUI, but to add some graphicals functionality to pd. + +Xgui is designed to run on all platforms supported by pure data. +It is working very well on linux, well on win2000 and not so well on win98 (something make it slow). + +All this documentation is write in a poor english. + +1) Here a try to explain what Xgui is : + + Xgui is a graphical server that wait for some orders from a socket. + I cames with somes pd objects that allow to make the connection with the server. + For example the "canvas" object allow to create a new windows. + + GOALS : + To allow users of pure-data to disgn their own gui objects. + PARADIGME : + The gui-object will be entirely describe in pd patchs. + One graphical object <=> One object in a pd patch. + HOW : + By provided some atom objects can that can : + * creates somes windows + * put some basics graphicals objects in it. + * receive events in relations with the graphicals objects. + +2) Quick start + + 1. Run pdx + This will load the Xgui server + Then it will load pure-data + Then it open the patch pdx_connect.pd + Then it connect pd with the Xgui server via a loadbang. + + 2. load one of the patch in the doc/Xgui directory + + 3. Then play with the patchs + and enjoy the result in the Xgui window. + + +2) Some more technical info : + + On a technical point view all of this is very simple. + + Xgui is divided into 2 part : + * The Xgui server (Xgui.sh) is a tcl/tk script that exchange data with pd via socket + + * Some pd abstractions that are uses to establish the conection between pd and the Xgui server.(pdx_connect.pd) + + * some pd abstractions that represent a graphical object : + - the "Canvas.pd" abstraction that is the object to open a Xgui windows. + - The "seg.pd" abstraction that is the basic object to draw a line in the canvas. + + +3) Why Xgui is diferent from the iem/grip way ? + + Because in iem or grip, the basic elements for buildings a GUI are on a very hight level : + Sliders, and so much more. + Xgui didn't provide this king of high level features but allow the pd user to disgn their own ones. + +4) Why Xgui is close to the data features of pure-data, and why it's different. + + The goals of the experimental data features of pure-data is certainly the same as Xgui : + Provide a tools to compositor to create their own representation for their own musical language. And more. + + Pure data will be THE PERFECT TOOL for writting music and not only to generate RT sound. And more. + + The data approch is based on the Concept of template : The user will disgn the template of an object. + The HUGE good point is that the user got the ablility to dynamicly cut and paste any objects. + pure-data will automaticaly manage the duplication of the data. + The bad point is that today the code that will manage the object is not inside the template. + This mean that the way to write patch that use the data feature is not very easy. + +Miller, please corect me if i'm wrong. + + + The Xgui approch is base on his paradigm : One pd object <=> one graphical object. + This imply that the pd object will provide properties, methods and events of the graphical side. + And this make very easy to make complex GUI with very few simples objects. + But it's not possible to duplicate a graphical object without duplicate the pd object... + + As you can see thoses two way of thinking are very complementary, and i hope to find a solution + to have the best of both world + +5) Releases : + + seg_0.01 : 17 of febuary 2002 : First release: basic idea. + seg_0.02 : 20 of febuary 2002 : Structured basic idea. + No functionality have been added, but the project is reorganised into folders. + Some installations script are provided. + seg_0.03 : 20 of march 2002 : multi windows + Now seg offer the abollity to open as many windows as needed, to resize them, and draw into the rigth one. + There is no compatibility between version 0.03 & 0.02 But it's easy to change the patchs + seg_0.04 : 26 of march 2002 : bug correction & better doc + seg_0.05 : 08 of april 2002 : add some basics physics modeling tools & examples + Xgui_0.06 : 28 of april 2002 : add 3 objects (arc,rect,text) + doc + examples + event Rigth click + Rename the project cause it doesn't deals with only the seg object now. + Xgui_0.07 : 30 of April 2002 : Add the canvas color methods and corect some smalls bug + Xgui_0.08 : 6 of june 2002 : Add the ability to syncronise many xgui windows with some peer2peer facility. + Xgui_0.09 : 23 of july 2002 : Add the ability to save some preset. + Xgui_0.10 : 10 of novembre 2002 : add the ability to share some windows with other computer on the web. + +6) Todo list : + + * Add some objects :pictures, menu, etc... + * Add some methodes : nearest object, nearest point onto the object,etc... + * add some behaviors : colision, stick, etc... + * add some event : keyboard, dblclick, etc.. + * integrate Xgui closer into pd.(concatenate the pd.tk and Xgui.sh for ex. Thats working !!!!) + * why not rewrite it in java ? + * Or write a policy to put the Xgui code into html using the tcl/tk plugins ? + * a real doc. + * Etc... + * & even more. + +7) Future : + + xgui will be more and more internet oriented in a sharing/colaborative/real-time/ point of view. + But I still whant it be able to : + * disgn very complex object like sequencer or mixing table. + * disgn experimental object for driving experimental synthesis methods + * be used for creating realtime graphics linked with music. + * be used for writing experimental music + * be open to be used for something I've not think about. + + +8) Contact : http://dh7.free.fr + + Please don't hesitate to contact me if you need some help or some info about Xgui. + Don't hesitate to reports bugs too... + + Any feedback welcome. + + Damien HENRY : dh7@free.fr ; dh@dh7.net + +8) Thanks : + +* Miller Puckette +* Olaff Matthes for giving me the code of his remote object. +* Everybody involved in pure-data. +* & + ... + +9) COPYRIGHT. + + Except as otherwise noted, all files in the Xgui distribution are + + Copyright (c) 2002 damien Henry and others. + +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "LICENSE.txt," included in the Xgui distribution. diff --git a/xgui/adapters_in/xy2coord.pd b/xgui/adapters_in/xy2coord.pd new file mode 100644 index 00000000..2915389f --- /dev/null +++ b/xgui/adapters_in/xy2coord.pd @@ -0,0 +1,38 @@ +#N canvas 528 314 372 265 10; +#X text 267 228 dh20020106; +#X text 10 6 coord : convert x1 y1 x2 y2 to a coord command; +#X obj 164 36 inlet; +#X obj 35 179 pack f f f f; +#X msg 35 202 coord \$1 \$2 \$3 \$4; +#X obj 178 133 f; +#X obj 135 133 f; +#X obj 92 133 f; +#X obj 164 60 t b f; +#X obj 121 36 inlet; +#X obj 121 60 t b f; +#X obj 78 36 inlet; +#X obj 78 60 t b f; +#X obj 35 36 inlet; +#X obj 35 134 f; +#X obj 78 98 t b b b b; +#X obj 35 227 outlet; +#X connect 2 0 8 0; +#X connect 3 0 4 0; +#X connect 4 0 16 0; +#X connect 5 0 3 3; +#X connect 6 0 3 2; +#X connect 7 0 3 1; +#X connect 8 0 15 0; +#X connect 8 1 5 1; +#X connect 9 0 10 0; +#X connect 10 0 15 0; +#X connect 10 1 6 1; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 12 1 7 1; +#X connect 13 0 14 0; +#X connect 14 0 3 0; +#X connect 15 0 14 0; +#X connect 15 1 7 0; +#X connect 15 2 6 0; +#X connect 15 3 5 0; diff --git a/xgui/adapters_in/xy2move.pd b/xgui/adapters_in/xy2move.pd new file mode 100644 index 00000000..bafabb52 --- /dev/null +++ b/xgui/adapters_in/xy2move.pd @@ -0,0 +1,12 @@ +#N canvas 584 581 299 140 10; +#X text 199 97 dh20020106; +#X obj 112 36 inlet; +#X obj 35 36 inlet; +#X obj 70 95 outlet; +#X text 10 6 move : convert x1 y1 to a move command; +#X msg 35 62 move \$1 0; +#X msg 112 61 move 0 \$1; +#X connect 1 0 6 0; +#X connect 2 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; diff --git a/xgui/adapters_in/xy2xy1.pd b/xgui/adapters_in/xy2xy1.pd new file mode 100644 index 00000000..e408136b --- /dev/null +++ b/xgui/adapters_in/xy2xy1.pd @@ -0,0 +1,15 @@ +#N canvas 540 374 413 171 10; +#X obj 78 36 inlet; +#X obj 35 36 inlet; +#X obj 35 136 outlet; +#X obj 35 88 pack f f; +#X obj 78 58 t b f; +#X msg 35 111 xy1 \$1 \$2; +#X text 91 138 dh20020108; +#X text 10 6 xy2xy1; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 5 0 2 0; diff --git a/xgui/adapters_in/xy2xy2.pd b/xgui/adapters_in/xy2xy2.pd new file mode 100644 index 00000000..04ad49f2 --- /dev/null +++ b/xgui/adapters_in/xy2xy2.pd @@ -0,0 +1,15 @@ +#N canvas 544 394 413 171 10; +#X obj 78 36 inlet; +#X obj 35 36 inlet; +#X obj 35 136 outlet; +#X obj 35 88 pack f f; +#X obj 78 58 t b f; +#X text 91 138 dh20020108; +#X text 10 6 xy2xy1; +#X msg 35 111 xy2 \$1 \$2; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 7 0 2 0; diff --git a/xgui/adapters_out/click2bxy.pd b/xgui/adapters_out/click2bxy.pd new file mode 100644 index 00000000..2a38c05f --- /dev/null +++ b/xgui/adapters_out/click2bxy.pd @@ -0,0 +1,16 @@ +#N canvas 31 132 308 276 12; +#X text 15 7 click filter; +#X obj 21 34 inlet; +#X obj 21 63 route click; +#X obj 21 91 unpack f f; +#X obj 96 122 outlet; +#X obj 56 150 outlet; +#X text 93 177 dh20020111; +#X obj 21 119 t b f; +#X obj 21 177 outlet; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 7 0; +#X connect 3 1 4 0; +#X connect 7 0 8 0; +#X connect 7 1 5 0; diff --git a/xgui/adapters_out/coord2xy.pd b/xgui/adapters_out/coord2xy.pd new file mode 100644 index 00000000..0ba3c9be --- /dev/null +++ b/xgui/adapters_out/coord2xy.pd @@ -0,0 +1,16 @@ +#N canvas 349 396 294 247 10; +#X text 16 10 coords2xy; +#X obj 16 30 inlet; +#X obj 108 133 outlet; +#X obj 15 103 unpack f f f f; +#X obj 77 158 outlet; +#X obj 46 133 outlet; +#X obj 15 158 outlet; +#X text 104 9 dh2002106; +#X obj 15 81 route coord; +#X connect 1 0 8 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 2 4 0; +#X connect 3 3 2 0; +#X connect 8 0 3 0; diff --git a/xgui/adapters_out/drag2move.pd b/xgui/adapters_out/drag2move.pd new file mode 100644 index 00000000..45cd2aeb --- /dev/null +++ b/xgui/adapters_out/drag2move.pd @@ -0,0 +1,10 @@ +#N canvas 298 205 450 300 10; +#X text 22 10 drag2move; +#X obj 24 35 inlet; +#X obj 24 110 outlet; +#X obj 24 62 route move; +#X msg 24 86 move \$1 \$2; +#X text 97 115 dh20020401; +#X connect 1 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; diff --git a/xgui/adapters_out/drag2strength.pd b/xgui/adapters_out/drag2strength.pd new file mode 100644 index 00000000..20468163 --- /dev/null +++ b/xgui/adapters_out/drag2strength.pd @@ -0,0 +1,10 @@ +#N canvas 298 205 450 300 10; +#X obj 24 35 inlet; +#X obj 24 110 outlet; +#X obj 24 62 route move; +#X text 97 115 dh20020401; +#X msg 24 86 strength \$1 \$2; +#X text 22 10 drag2strength; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 4 0 1 0; diff --git a/xgui/adapters_out/move2xy.pd b/xgui/adapters_out/move2xy.pd new file mode 100644 index 00000000..eb14b1be --- /dev/null +++ b/xgui/adapters_out/move2xy.pd @@ -0,0 +1,12 @@ +#N canvas 240 231 188 178 10; +#X text 13 11 move2xy; +#X obj 18 58 route move; +#X obj 18 35 inlet; +#X obj 18 81 unpack f f; +#X obj 18 107 outlet; +#X obj 82 108 outlet; +#X text 22 135 dh20020106; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 1 5 0; diff --git a/xgui/behaviors/dragable.pd b/xgui/behaviors/dragable.pd new file mode 100644 index 00000000..c797e23a --- /dev/null +++ b/xgui/behaviors/dragable.pd @@ -0,0 +1,10 @@ +#N canvas 521 551 292 171 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X text 10 6 move : filter move command; +#X msg 35 87 move \$1 \$2; +#X obj 35 63 route drag; +#X connect 1 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; diff --git a/xgui/behaviors/light_over.pd b/xgui/behaviors/light_over.pd new file mode 100644 index 00000000..9caf83ad --- /dev/null +++ b/xgui/behaviors/light_over.pd @@ -0,0 +1,34 @@ +#N canvas 681 249 333 272 10; +#X text 17 8 change color when enter and leave; +#X obj 24 44 inlet; +#X obj 214 107 inlet; +#X obj 24 79 route enter leave; +#X obj 67 217 outlet; +#X msg 69 189 color \$1; +#X obj 81 128 symbol Black; +#X msg 24 104 bang; +#X msg 81 103 bang; +#X obj 160 45 inlet; +#X text 247 198 dh20020109; +#X obj 208 137 symbol; +#X obj 160 69 symbol; +#X obj 100 160 symbol SteelBlue2; +#X obj 183 220 outlet; +#X msg 167 196 1; +#X msg 198 195 0; +#X connect 1 0 3 0; +#X connect 2 0 11 0; +#X connect 3 0 7 0; +#X connect 3 1 8 0; +#X connect 5 0 4 0; +#X connect 6 0 5 0; +#X connect 7 0 13 0; +#X connect 7 0 15 0; +#X connect 8 0 6 0; +#X connect 8 0 16 0; +#X connect 9 0 12 0; +#X connect 11 0 13 1; +#X connect 12 0 6 1; +#X connect 13 0 5 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; diff --git a/xgui/behaviors/ma_2d.pd b/xgui/behaviors/ma_2d.pd new file mode 100644 index 00000000..aae99292 --- /dev/null +++ b/xgui/behaviors/ma_2d.pd @@ -0,0 +1,130 @@ +#N canvas 152 56 773 603 10; +#X obj -233 305 float; +#X floatatom -202 208 0 0 0; +#X floatatom -233 329 0 0 0; +#X text -201 279 X(n); +#X text -200 331 X(n-1); +#X obj -233 254 float; +#X floatatom -234 279 0 0 0; +#X obj -232 229 t b; +#X obj 31 112 inlet; +#X obj -36 484 outlet; +#X floatatom -41 186 0 0 0; +#X obj -191 6 loadbang; +#X text -36 87 M; +#X obj 16 327 /; +#X obj -14 358 +; +#X obj -14 328 * 2; +#X obj -14 387 -; +#X obj 18 484 outlet; +#X obj 18 456 -; +#X text -279 139 bang; +#X floatatom 16 298 0 0 0; +#X text -22 503 X; +#X obj -45 359 t b; +#X obj -43 106 inlet; +#X obj 16 268 f; +#X obj -277 186 t b b; +#X obj -43 129 r mm; +#X obj -41 160 \$1; +#X obj -256 6 r initm; +#X msg -231 73 0; +#X obj -263 32 t b b b; +#X text 29 504 Vx; +#X text 41 86 Fx; +#X obj 202 311 float; +#X floatatom 233 214 0 0 0; +#X floatatom 202 335 0 0 0; +#X obj 202 260 float; +#X floatatom 201 285 0 0 0; +#X obj 203 235 t b; +#X obj 352 120 inlet; +#X obj 285 492 outlet; +#X obj 337 335 /; +#X obj 307 366 +; +#X obj 307 336 * 2; +#X obj 307 395 -; +#X obj 339 492 outlet; +#X obj 339 464 -; +#X floatatom 337 306 0 0 0; +#X obj 276 367 t b; +#X obj 337 276 f; +#X text 234 285 Y(n); +#X text 235 337 Y(n-1); +#X msg 135 59 0; +#X text 358 89 Fy; +#X text 299 511 Y; +#X text 350 512 Vy; +#X msg -273 121 bang; +#X obj -277 161 r b_mass; +#X connect 0 0 2 0; +#X connect 0 0 7 0; +#X connect 0 0 16 1; +#X connect 0 0 22 0; +#X connect 1 0 5 1; +#X connect 1 0 18 0; +#X connect 5 0 6 0; +#X connect 5 0 0 1; +#X connect 5 0 15 0; +#X connect 5 0 18 1; +#X connect 7 0 5 0; +#X connect 8 0 24 1; +#X connect 10 0 13 1; +#X connect 10 0 41 1; +#X connect 11 0 27 0; +#X connect 11 0 29 0; +#X connect 11 0 52 0; +#X connect 13 0 14 1; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 1 0; +#X connect 16 0 9 0; +#X connect 18 0 17 0; +#X connect 20 0 13 0; +#X connect 22 0 16 0; +#X connect 23 0 10 0; +#X connect 24 0 20 0; +#X connect 25 0 0 0; +#X connect 25 0 33 0; +#X connect 25 1 24 0; +#X connect 25 1 49 0; +#X connect 26 0 10 0; +#X connect 27 0 10 0; +#X connect 28 0 30 0; +#X connect 29 0 1 0; +#X connect 29 0 6 0; +#X connect 29 0 2 0; +#X connect 29 0 24 1; +#X connect 29 0 20 0; +#X connect 30 0 25 0; +#X connect 30 1 29 0; +#X connect 30 1 52 0; +#X connect 30 2 27 0; +#X connect 33 0 35 0; +#X connect 33 0 38 0; +#X connect 33 0 44 1; +#X connect 33 0 48 0; +#X connect 34 0 36 1; +#X connect 34 0 46 0; +#X connect 36 0 37 0; +#X connect 36 0 33 1; +#X connect 36 0 43 0; +#X connect 36 0 46 1; +#X connect 38 0 36 0; +#X connect 39 0 49 1; +#X connect 41 0 42 1; +#X connect 42 0 44 0; +#X connect 43 0 42 0; +#X connect 44 0 34 0; +#X connect 44 0 40 0; +#X connect 46 0 45 0; +#X connect 47 0 41 0; +#X connect 48 0 44 0; +#X connect 49 0 47 0; +#X connect 52 0 34 0; +#X connect 52 0 47 0; +#X connect 52 0 49 1; +#X connect 52 0 37 0; +#X connect 52 0 35 0; +#X connect 56 0 25 0; +#X connect 57 0 25 0; diff --git a/xgui/behaviors/move.pd b/xgui/behaviors/move.pd new file mode 100644 index 00000000..03723e63 --- /dev/null +++ b/xgui/behaviors/move.pd @@ -0,0 +1,10 @@ +#N canvas 517 531 267 171 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X text 10 6 move : filter move command; +#X msg 35 87 move \$1 \$2; +#X obj 35 63 route drag; +#X connect 1 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; diff --git a/xgui/behaviors/move_x.pd b/xgui/behaviors/move_x.pd new file mode 100644 index 00000000..4703c7a0 --- /dev/null +++ b/xgui/behaviors/move_x.pd @@ -0,0 +1,10 @@ +#N canvas 525 571 292 171 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X text 10 6 move : filter move command; +#X msg 35 87 move \$1 0; +#X obj 35 63 route drag; +#X connect 1 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; diff --git a/xgui/behaviors/move_y.pd b/xgui/behaviors/move_y.pd new file mode 100644 index 00000000..3adce981 --- /dev/null +++ b/xgui/behaviors/move_y.pd @@ -0,0 +1,10 @@ +#N canvas 456 433 292 171 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X text 10 6 move : filter move command; +#X msg 35 87 move 0 \$2; +#X obj 35 63 route drag; +#X connect 1 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; diff --git a/xgui/behaviors/width_over.pd b/xgui/behaviors/width_over.pd new file mode 100644 index 00000000..469cc52f --- /dev/null +++ b/xgui/behaviors/width_over.pd @@ -0,0 +1,30 @@ +#N canvas 406 227 335 274 10; +#X text 17 8 change color when enter and leave; +#X obj 24 44 inlet; +#X obj 214 107 inlet; +#X obj 24 79 route enter leave; +#X obj 67 217 outlet; +#X msg 24 104 bang; +#X msg 81 103 bang; +#X obj 160 45 inlet; +#X text 247 198 dh20020109; +#X obj 183 220 outlet; +#X msg 167 196 1; +#X msg 198 195 0; +#X obj 81 128 float \$1; +#X obj 100 160 float \$2; +#X msg 69 189 width \$1; +#X connect 1 0 3 0; +#X connect 2 0 13 1; +#X connect 3 0 5 0; +#X connect 3 1 6 0; +#X connect 5 0 10 0; +#X connect 5 0 13 0; +#X connect 6 0 11 0; +#X connect 6 0 12 0; +#X connect 7 0 12 1; +#X connect 10 0 9 0; +#X connect 11 0 9 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 4 0; diff --git a/xgui/bin/pdx.sh b/xgui/bin/pdx.sh new file mode 100755 index 00000000..0c893b65 --- /dev/null +++ b/xgui/bin/pdx.sh @@ -0,0 +1,6 @@ +#!/bin/sh +/usr/local/bin/xgui & +/usr/local/bin/pd -open /usr/local/lib/pdx/main/pdx_connect.pd \ + -path /usr/local/lib/pdx/main/ \ + -path /usr/local/lib/pdx/patch4pdx/ + diff --git a/xgui/bin/xgui-client.sh b/xgui/bin/xgui-client.sh new file mode 100644 index 00000000..12090187 --- /dev/null +++ b/xgui/bin/xgui-client.sh @@ -0,0 +1,867 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + + +################################################# +puts "pd(x) - Step 2 : xgui-client" +puts "xgui b0.10 dh200209xx" +puts "Damien HENRY (c)" + +################################################# +# define the globals variables needed for a node +global xgui_gui +global xgui_cmd_out +global data_data + +global from_all + +global host_name +global host_port +global xgui_me +set host_name localhost +set host_port 4877 +set xgui_me "$host_name:$host_port" + +global pd_name +global pd_port +global pd_sok +global xgui_pd +set pd_name xxx +set pd_port 000 +set xgui_pd "$pd_name:$pd_port" +set pd_sok -1 + +global neibourg_list +global neibourg_data +set neibourg_list [list] +set neibourg_data [list] +set data_data [list] +set xgui_gui 1 +set xgui_cmd_out 0 + +################################################# +# Read what are the argument +if { [lsearch argv --help] != -1 } { puts "xgui localhost 4877 -nogui -no_cmd_out" } + +################################################# +# puts up my windows +if { $xgui_gui } { + global text2out + global text_from_outside + global text_comment + wm title . "Xgui b0.09" + frame .haut + frame .config1 + frame .config2 + frame .bas + entry .haut.e_in -width 50 -textvariable text2in + entry .haut.e_fo -width 50 -textvariable text_from_outside -state disabled + entry .haut.e_rem -width 50 -textvariable text_comment -state disabled + entry .haut.t_out -width 50 -textvariable text2out -state disabled + + entry .config1.host -width 10 -textvariable host_name + entry .config1.port -width 5 -textvariable host_port + + entry .config2.host -width 10 -textvariable pd_name + entry .config2.port -width 5 -textvariable pd_port + + button .config1.do -text "change" -command { + global xgui_me + global host_name + global host_port + global from_all + set xgui_me "$host_name:$host_port" + catch {close $from_all} + set from_all [socket -server seg_receive $host_port] + } + + button .config2.do -text "change" -command { + global xgui_pd + global pd_name + global pd_port + set xgui_pd "$pd_name:$pd_port" + catch {close $pd_sok} + catch {set pd_sok [socket $pd_name $pd_port]} + } + + button .bas.b_quit -text "quit" -width 7 -command { + send2nodes / */ "# $xgui_me disconnected" + do_this "$xgui_me/ ~/ disconnect *" xgui + exit + } + button .bas.b_do -text do -width 7 -command { do_this $text2in xgui} + button .bas.b_clear -text clear -width 7 -command { set text2in "" } + + pack .haut.e_in .haut.e_fo .haut.t_out .haut.e_rem + pack .config1.host .config1.port .config1.do -side left + pack .config2.host .config2.port .config2.do -side left + pack .bas.b_do .bas.b_clear .bas.b_quit -side left -pady 2 -padx 5 + pack .haut .config1 .config2 .bas -pady 2 + wm resizable . false false +} + +################################################# +# definition de la partie serveur + +catch {set from_all [socket -server seg_receive $host_port]} + +proc seg_receive {channel addr port} { + global xgui_me + fileevent $channel readable "readLine $channel $addr $port" + do_this "/ */ # $xgui_me connected from $channel $addr $port" 0 +} + +proc readLine {channel addr port} { + global neibourg_list + global neibourg_data + global xgui_me + global text_from_outside + if {[gets $channel line]<0} { + fileevent $channel readable {} + after idle "close $channel" + set n [lsearch $neibourg_data $channel] + if {$n != -1 } { + set neibourg_list [lreplace $neibourg_list $n $n] + set neibourg_data [lreplace $neibourg_data $n $n] + } + send2nodes / */ "# $xgui_me disconnected from $addr:$port" + } else { +# catch { do_this $line $channel } + set text_from_outside "$addr:$port $line" +# set text_from_outside "$line" + do_this $line $channel + } +} + + +################################################# +# tell that every thing OK +set text_comment "$xgui_me created" + +# end of the initialisations +######################################################################################## + +################################################# +#methods for xgui_node +proc xgui_node_add_canvas {canvas_name} { + set canvas_name [string trim $canvas_name "/"] + set canvas_name [split $canvas_name "/"] + set canvas_name [lindex $canvas_name end] + destroy .$canvas_name + data_forget ~/$canvas_name + toplevel .$canvas_name + wm title .$canvas_name $canvas_name + wm resizable .$canvas_name false false + canvas .$canvas_name.$canvas_name + pack .$canvas_name.$canvas_name + data_remember ~/$canvas_name/ "~/$canvas_name add_canvas" + send2nodes / */ "# added ~/$canvas_name" + + set c .$canvas_name.$canvas_name + $c bind all "itemEnter $c" + $c bind all "itemLeave $c" + bind $c <1> "itemStartDrag $c %x %y click" + bind $c <2> "itemStartDrag $c %x %y m-click" + bind $c <3> "itemStartDrag $c %x %y r_click" + bind $c "itemStartDrag $c %x %y s-click" + bind $c "itemStartDrag $c %x %y s-m-click" + bind $c "itemStartDrag $c %x %y s-r-click" + bind $c "itemStartDrag $c %x %y c-click" + bind $c "itemStartDrag $c %x %y c-m-click" + bind $c "itemStartDrag $c %x %y c-r-click" + bind $c "itemDrag $c %x %y drag" + bind $c "itemDrag $c %x %y m-drag" + bind $c "itemDrag $c %x %y r-drag" + bind $c "itemDrag $c %x %y s-drag" + bind $c "itemDrag $c %x %y s-m-drag" + bind $c "itemDrag $c %x %y s-r-drag" + bind $c "itemKeyPress $c %A %k" +} + +proc xgui_node_del_canvas {canvas_name } { + global text_comment + set canvas_name [string trim $canvas_name "/"] + set canvas_name [split $canvas_name "/"] + set canvas_name [lindex $canvas_name end] + destroy .$canvas_name + data_forget ~/$canvas_name + set text_comment "deleted $canvas_name" +} + +proc xgui_node_error {from error} { + global text_comment + set text_comment "# error : unable to do <$error> ($from)" +} + +proc xgui_node_connect { c_who c_from channel } { + global neibourg_list + global neibourg_data + global xgui_me + global text_comment + set c_from [string trim $c_from "/"] + switch $c_who { + "me" { + set n [lsearch $neibourg_data $channel] + if { $n == -1 } { + lappend neibourg_list $c_from + lappend neibourg_data $channel + set text_comment "$xgui_me connect himself to $c_from onto channel $channel" + } else { + set text_comment "$xgui_me already connected to $c_from onto channel $channel" + } + } + "pd" { + global pd_name + global pd_port + global pd_sok + global xgui_pd + set c_host [split $c_from ":"] + set pd_name [lindex $c_host 0] + set pd_port [lindex $c_host 1] + set xgui_pd "$pd_name:$pd_port" + set pd_sok [socket -async $pd_name $pd_port] + # set pd_sok [socket $pd_name $pd_port] + if { $pd_sok != -1 } { + set text_comment " $xgui_me connected to pd" + } else { set text_comment "connection refused with pd" } + } + default { + set c_host [split $c_who ":"] + set c_name [lindex $c_host 0] + set c_port [lindex $c_host 1] + set sok -1 + catch {set sok [socket -async $c_name $c_port]} + if { $sok != -1 } { + lappend neibourg_list $c_who + lappend neibourg_data $sok + fileevent $sok readable [list read_and_do $sok] + set text_comment "$xgui_me connected $c_who" + } else { set text_comment "connection refused with $c_who" } + } + } +} + +proc xgui_node_disconnect { d_who d_from channel} { + global neibourg_list + global neibourg_data + global text_comment + switch $d_who { + "me" { + set d_who [string trim $d_from "/"] + set n [lsearch $neibourg_list $d_who] + if {$n != -1 } { + catch { close [lrange $neibourg_data $n $n] } + set neibourg_list [lreplace $neibourg_list $n $n] + set neibourg_data [lreplace $neibourg_data $n $n] + set text_comment "$d_who disconnected himself" + } else { set text_comment "error $d_from not a neibourg" } + } + + "pd" { + global pd_name + global pd_port + global pd_sok + global xgui_pd + set pd_name none + set pd_port none + set xgui_pd "$pd_name:$pd_port" + set pd_sok -1 + catch {close pd_sok} + } + "*" { + foreach sok $neibourg_data { close $sok } + set neibourg_list [list] + set neibourg_data [list] + set text_comment "$d_from disconnect *" + } + default { + set n [lsearch $neibourg_list $d_who] + if {$n != -1 } { + catch { close [lrange $neibourg_data $n $n] } + set neibourg_list [lreplace $neibourg_list $n $n] + set neibourg_data [lreplace $neibourg_data $n $n] + set text_comment "$d_who disconnected $d_from" + } else { set text_comment "error $d_who not a neibourg" } + } + } +} + +proc xgui_node_hide { canvas } { + set canvas_name [string trim $canvas_name "/"] + set canvas_name [split $canvas_name "/"] + set canvas_name [lindex $canvas_name end] + destroy .$canvas_name +} + +proc xgui_node_neibourg { w_from } { + global neibourg_list + global neibourg_data + global xgui_me + foreach name $neibourg_list { + send2nodes / $w_from "# $xgui_me connected to $name" + } +} + +proc xgui_node_clone { obj new_obj } { + data_clone $obj $new_obj +} + +proc xgui_node_load { file } { + data_load $file +} + +proc xgui_node_save { obj file } { + data_save $obj $file +} + +proc xgui_node_load_coord { file } { + data_load_send $file +} + +proc xgui_node_save_coord { obj file } { + data_save_param $obj coord $file +} + +proc xgui_node_debug { from var } { + global host_name + global host_port + global xgui_me + global neibourg_list + global neibourg_data + global xgui_gui + global xgui_cmd_out + global data_data + global text_comment + global pd_name + global pd_port + global pd_sok + global xgui_pd + global from_all + set text_comment "$var = [subst $var ]" +} + +proc xgui_node_help { w_from } { + send2nodes / $w_from "# method: connect who" + send2nodes / $w_from "# method: disconnect who" + send2nodes / $w_from "# method: neibourg" + send2nodes / $w_from "# method: ping" + send2nodes / $w_from "# method: add_canvas" + send2nodes / $w_from "# method: del_canvas" +} +################################################# +#methods for canvas + +proc canvas_size {canvas_name x y} { + .$canvas_name.$canvas_name configure -width $x + .$canvas_name.$canvas_name configure -height $y + wm geometry .$canvas_name + data_remember ~/$canvas_name//size "~/$canvas_name size $x $y" +} + +proc canvas_color {canvas_name color} { + .$canvas_name.$canvas_name configure -bg $color + data_remember ~/$canvas_name//color "~/$canvas_name color $color" + } + +################################################# +#methods for all objects + +proc obj_move {canvas gobj_name x y } { + global xgui_pd + catch {.$canvas.$canvas move $gobj_name $x $y + send2pd / pd/$canvas/$gobj_name "coord [.$canvas.$canvas coords $gobj_name]" + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord [.$canvas.$canvas coords $gobj_name]" + } +} + +proc obj_color {canvas gobj_name new_color} { + .$canvas.$canvas itemconfigure $gobj_name -fill $new_color + data_remember ~/$canvas/$gobj_name//color "~/$canvas/$gobj_name color $new_color" +} + +proc obj_border {canvas gobj_name new_color} { + .$canvas.$canvas itemconfigure $gobj_name -outline $new_color + data_remember ~/$canvas/$gobj_name//border "~/$canvas/$gobj_name border $new_color" +} + +proc obj_raise {canvas gobj_name } { + .$canvas.$canvas raise $gobj_name + data_remember ~/$canvas/$gobj_name//raise "~/$canvas/$gobj_name raise" +} + +proc obj_coord {canvas gobj_name x1 y1 x2 y2 } { + catch { + .$canvas.$canvas coords $gobj_name $x1 $y1 $x2 $y2 + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord $x1 $y1 $x2 $y2" + } +} + +proc obj_xy1 {canvas gobj_name x1 y1 } { + catch { + set old_coord [.$canvas.$canvas coords $gobj_name] + .$canvas.$canvas coords $gobj_name $x1 $y1 [lindex $old_coord 2] [lindex $old_coord 3] + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord $x1 $y1 [lindex $old_coord 2] [lindex $old_coord 3]" + } +} + +proc obj_xy2 {canvas gobj_name x2 y2 } { + catch { + set old_coord [.$canvas.$canvas coords $gobj_name] + .$canvas.$canvas coords $gobj_name [lindex $old_coord 0] [lindex $old_coord 1] $x2 $y2 + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord [lindex $old_coord 0] [lindex $old_coord 1] $x2 $y2" + } +} + +proc obj_width {canvas gobj_name new_width} { + .$canvas.$canvas itemconfigure $gobj_name -width $new_width + data_remember ~/$canvas/$gobj_name//width "~/$canvas/$gobj_name width $new_width" +} + +proc obj_near {canvas gobj_name x y} { + # to be done... +} + +proc obj_del {canvas obj_name} { + .$canvas.$canvas delete $obj_name + send2nodes /$canvas */$canvas "# deleted $obj_name" + data_forget ~/$canvas/$obj_name +} + +################################################# +#methods for seg + +proc seg_add {canvas gobj_name x1 y1 x2 y2 } { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create line $x1 $y1 $x2 $y2 -width 3 -tags $gobj_name -capstyle round + # send2nodes /$canvas */$canvas "added $gobj_name" + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_seg" +} + +proc seg_caps {canvas gobj_name new_cap} { + .$canvas.$canvas itemconfigure $gobj_name -capstyle $new_cap + data_remember ~/$canvas/$gobj_name//caps "~/$canvas/$gobj_name caps $new_cap" +} + +################################################# +#methods for text + +proc text_add {canvas gobj_name x1 y1 text } { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create text $x1 $y1 -text $text -tags $gobj_name -anchor sw + # send2nodes /$canvas */$canvas "added $gobj_name" + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_text" +} + +proc text_value {canvas gobj_name value} { + .$canvas.$canvas itemconfigure $gobj_name -text $value + data_remember ~/$canvas/$gobj_name//text "~/$canvas/$gobj_name text $value" +} + +proc text_anchor {canvas gobj_name value} { + .$canvas.$canvas itemconfigure $gobj_name -anchor $value + data_remember ~/$canvas/$gobj_name//anchor "~/$canvas/$gobj_name anchor $value" +} + +proc text_justify {canvas gobj_name value} { + .$canvas.$canvas itemconfigure $gobj_name -justify $value + data_remember ~/$canvas/$gobj_name//justify "~/$canvas/$gobj_name justify $value" +} + +proc text_pos {canvas gobj_name x y} { + .$canvas.$canvas coords $gobj_name $x $y + data_remember ~/$canvas/$gobj_name//pos "~/$canvas/$gobj_name pos $x $y" +} + +################################################# +#methods for rect + +proc rect_add {canvas gobj_name x1 y1 x2 y2 } { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create rectangle $x1 $y1 $x2 $y2 -width 2 -tags $gobj_name + # send2nodes /$canvas */$canvas "# added $gobj_name" + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_rect" +} + +################################################# +#methods for arc + +proc arc_add {canvas gobj_name x1 y1 x2 y2 start width} { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create arc $x1 $y1 $x2 $y2 -start $start -extent $width -width 2 -tags $gobj_name + # send2nodes /$canvas */$canvas "# added $gobj_name " + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_arc" +} + +proc arc_start {canvas gobj_name new_start} { + .$canvas.$canvas itemconfigure $gobj_name -start $new_start + data_remember ~/$canvas/$gobj_name//start "~/$canvas/$gobj_name start $new_start"} + +proc arc_width {canvas gobj_name new_width} { + .$canvas.$canvas itemconfigure $gobj_name -extent $new_width + data_remember ~/$canvas/$gobj_name//angle "~/$canvas/$gobj_name angle $new_width"} + +proc arc_style {canvas gobj_name new_style} { + .$canvas.$canvas itemconfigure $gobj_name -style $new_style + data_remember ~/$canvas/$gobj_name//style "~/$canvas/$gobj_name style $new_style "} + +################################################ +# Set up event bindings for all canvas: + +proc itemStartDrag {c x y event} { + global xgui_pd + global lastX lastY + global my_selected + set lastX [$c canvasx $x] + set lastY [$c canvasy $y] + set my_selected [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_selected "$event $x $y" +} + +proc itemDrag {c x y event} { + global xgui_pd + global lastX lastY + global my_selected + set x [$c canvasx $x] + set y [$c canvasy $y] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_selected "$event [expr $x-$lastX] [expr $y-$lastY]" + set lastX $x + set lastY $y +} + +proc itemEnter {c} { + global xgui_pd + set my_item [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_item enter +} + +proc itemLeave {c} { + global xgui_pd + set my_item [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_item leave +} + +proc itemKeyPress {c ascii num} { + global xgui_pd + set my_item [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_item "keypress $ascii $num" + send2pd / pd/$c "keypress $ascii $num" +} + +##################################################################################### +# Here the procedures that keep a memory about all objectz. + +proc data_remember {obj_sel m} { + global data_data + set line_to_destroy 0 + foreach line $data_data { + if {[string match "$obj_sel/*" $line] == 1} { + set line_to_destroy $line + } + } + if { $line_to_destroy !=0 } { + set n [lsearch $data_data $line_to_destroy ] + set data_data [lreplace $data_data $n $n "$obj_sel/ $m" ] + } else { + lappend data_data "$obj_sel/ $m" + } +} + +proc data_forget { obj } { + global data_data + while { [lsearch $data_data $obj/* ] != -1} { + set n [lsearch $data_data $obj/* ] + set data_data [lreplace $data_data $n $n] + } +} + +proc data_clone { from_obj to_new_obj } { + global data_data + foreach line $data_data { + if {[string match "$from_obj/*" $line] == 1} { + set new_line [join [lreplace [split $line] 0 0 ] ] + regsub -all -- $from_obj $new_line $to_new_obj newest_line + do_this "~/ $newest_line" 0 + } + } +} + +proc data_save { from_obj file } { + global data_data + set file_chn [open $file w] + foreach line $data_data { + if {[string match "$from_obj/*" $line] == 1} { + set new_line [join [lreplace [split $line] 0 0 ] ] + puts $file_chn "$new_line" + } + } + close $file_chn +} + +proc data_save_param { from_obj selector file } { + global data_data + set file_chn [open $file w] + foreach line $data_data { + if {[string match "$from_obj/*//$selector*" $line] == 1} { + set new_line [join [lreplace [split $line] 0 0 ] ] + puts $file_chn "$new_line" + } + } + close $file_chn +} + +proc data_load { file } { + global data_data + set file_chn [open $file r] + while {[eof $file_chn]==0} { + set line [gets $file_chn] + do_this "~/ $line" 0 + } + close $file_chn +} + +proc data_load_send { file } { + global data_data + set file_chn [open $file r] + while {[eof $file_chn]==0} { + set line [gets $file_chn] + set line2s [split $line] + set line2s [join [linsert $line2s 1 update]] +# regsub -all -- ~/ $line2s */ new_line +# do_this "~/ $line" 0 + send2pd / $line2s "" + } + close $file_chn +} + + +################################################################################################ +#anything to send somewhere ??? +proc send2nodes { m_from m_to ms2send } { + global xgui_gui + global xgui_cmd_out + global text2out + global xgui_me + global neibourg_list + global neibourg_data + + global text_comment + + set m2send "$xgui_me$m_from $m_to $ms2send" + set m_to [string trim $m_to "/"] + set m_to_l [split $m_to "/"] + set m_to_node [lindex $m_to_l 0] + + if { $xgui_gui == 1 } { + set text2out $m2send + } + if { $xgui_cmd_out == 1 } { + puts $m2send + } + + switch [lindex [split $m_to "/"] 0 ] { + "*" { + foreach n $neibourg_list { + regsub -all -- {\*} $m_to $n m2 + send2nodes $m_from $m2 $ms2send + } + } + "." { + foreach n $neibourg_data { + catch {puts $n $ms2send;flush $n} + } + } + default { + set n [lsearch $neibourg_list $m_to_node] + if { $n != -1 } { + # if catch = error then we have to remove the link. + catch { + puts [lrange $neibourg_data $n $n] "$m2send;" + flush [lrange $neibourg_data $n $n] + } + } else { + set $text_comment "didn't find any coresponding neigbourg" + } + } + } +} + +proc send2pd { m_from m_to ms2send } { + global xgui_gui + global xgui_cmd_out + global text2out + global xgui_me + global pd_sok + + set m2send "$xgui_me$m_from $m_to $ms2send;" + + if { $xgui_gui == 1 } { + set text2out $m2send + } + if { $xgui_cmd_out == 1 } { + puts $m2send + } + + # catch { + puts $pd_sok $m2send ; flush $pd_sok + # } +} + + +##################################################################################### +# the 3 main proc that do every thing ########################################## +##################################################################################### + +proc read_and_do { channel } { + gets $channel message + global text_from_outside + set text_from_outside "$channel \"$message" + do_this $message $channel +} + +proc do_this { m channel} { + global xgui_me + set m [string trim $m ";"] + if {[llength $m] >= 3} { + set m_to [string trim [lindex $m 1] "/"] + set m_to_l [split $m_to "/"] + set m_to_node [lindex $m_to_l 0] + set m_from [string trim [lindex $m 0] "/"] + set m_cmd [lrange $m 2 end] + #you have to know who you are : + if { "$m_to_node" == "$xgui_me" } { set m_to_node "~" } + switch $m_to_node { + "~" { catch {do_this_here $m_from $m_to $m_cmd $channel} } + "*" { + # you too are a part of the whole !!! + catch { do_this_here $m_from $m_to $m_cmd $channel } + send2nodes / $m_to "[lrange $m 2 end]" + } + "pd" {send2pd / $m_to "[lrange $m 2 end]"} + default {send2nodes / $m_to "[lrange $m 2 end]"} + } + } else { + if {$m == "help"} { + # send2nodes / $m_to "# syntax : sender receiver method args..." + } else { + xgui_node_error "not enought args" $m + } + } +} + +proc do_this_here { m_from m_to m_cmd channel} { + global xgui_me + global xgui_pd + set m_to [split $m_to "/"] + set m_from_l [split $m_from "/"] + set m_from_node [lindex $m_from_l 0] + set m_selector [lindex $m_cmd 0] + set m_argc [llength $m_cmd]-1 + if {$m_argc >= 1} { set m_argv [lrange $m_cmd 1 end] + set a1 [lindex $m_argv 0] + if {$m_argc >=2 } { set a2 [lindex $m_argv 1] + if {$m_argc >=3 } { set a3 [lindex $m_argv 2] + if {$m_argc >=4 } { set a4 [lindex $m_argv 3] + if {$m_argc >=5 } { set a5 [lindex $m_argv 4] + if {$m_argc >=6 } { set a6 [lindex $m_argv 5] + if {$m_argc >=7 } { set a7 [lindex $m_argv 6] + if {$m_argc >=8 } { set a8 [lindex $m_argv 7] + if {$m_argc >=9 } { set a9 [lindex $m_argv 8] + if {$m_argc >=10 } { set a10 [lindex $m_argv 9] + } } } } } } } } } + } else {set m_argv "{}" } + + switch [llength $m_to] { + 1 { # this is for the node ########################## + switch $m_selector { + "add_canvas" { xgui_node_add_canvas $a1} + "del_canvas" { xgui_node_del_canvas $a1} + "show" { xgui_node_clone $a1 $a1 } + "hide" { xgui_node_hide } + "connect" { if {$a1 == "pd"} { xgui_node_connect pd $a2 $channel + } else { xgui_node_connect $a1 $m_from $channel} } + "connect_on" { xgui_node_connect $a1 $m_from $channel + send2nodes / $a1/ "connect me" + send2nodes / $a1/ "clone ~/$a2 $xgui_me/$a2" + send2nodes / $a1/ "connect_on_pd $xgui_me" } + "connect_on_pd" { send2nodes / $a1/ "connect pd $xgui_pd" } + "disconnect" { xgui_node_disconnect $a1 $m_from $channel} + + "neibourg" { xgui_node_neibourg $m_from } + "clone" { xgui_node_clone $a1 $a2 } + "save" { xgui_node_save $a1 $a2 } + "save_coord" { xgui_node_save_coord $a1 $a2 } + "load_coord" { xgui_node_load_coord $a1 } + "load" { xgui_node_load $a1 } + "help" { xgui_node_help $m_from } + "debug" { xgui_node_debug $m_from $$a1 } + "ping" { send2nodes / $m_from "# $m_from pinged" } + "#" { global text_comment ; set text_comment $m_argv} + default { xgui_node_error "node method $m_selector does not exist" $m_cmd } + } + } + 2 { # this is for the canvas $m_c ########################## + set m_c [lindex $m_to 1] + switch $m_selector { + "add_canvas" { catch {xgui_node_add_canvas $m_c }} + "del_canvas" { xgui_node_del_canvas $m_c } + "size" {canvas_size $m_c $a1 $a2} + "color" {canvas_color $m_c $a1} + "del" {obj_del $m_c $a1} + "kill" {obj_del $m_c $a1} + "add_seg" {seg_add $m_c $a1 10 10 20 20 } + "add_text" {text_add $m_c $a1 10 10 "text" } + "add_rect" {rect_add $m_c $a1 10 10 20 20 } + "add_arc" {arc_add $m_c $a1 10 10 20 20 0 90 } + default {xgui_node_error "canvas method $m_selector does not exist" $m_cmd } + } + } + 3 { # this is for the object $m_o witch is into $m_c ######## + set m_c [lindex $m_to 1] + set m_o [lindex $m_to 2] + switch $m_selector { + "add_seg" {seg_add $m_c $m_o 10 10 20 20 } + "add_text" {text_add $m_c $m_o 10 10 "text" } + "add_rect" {rect_add $m_c $m_o 10 10 20 20 } + "add_arc" {arc_add $m_c $m_o 10 10 20 20 0 90 } + "del" {obj_del $m_c $m_o} + "kill" {obj_del $m_c $m_o} + "show" {obj_show $m_c $m_o } + "hide" {obj_hide $m_c $m_o } + "move" {obj_move $m_c $m_o $a1 $a2} + "scale" {obj_scale $m_c $m_o $a1 $a2 $a3 $a4 } + "raise" {obj_raise $m_c $m_o } + "near" {obj_near $m_c $m_o $a1 $a2 } + "color" {obj_color $m_c $m_o $a1} + "width" {obj_width $m_c $m_o $a1} + "coord" {obj_coord $m_c $m_o $a1 $a2 $a3 $a4 } + "xy1" {obj_xy1 $m_c $m_o $a1 $a2 } + "xy2" {obj_xy2 $m_c $m_o $a1 $a2 } + "border" {obj_border $m_c $m_o $a1} + + "caps" {seg_caps $m_c $m_o $a1} + + "text" {text_value $m_c $m_o $a1} + "pos" {text_pos $m_c $m_o $a1 $a2 } + "anchor" {text_anchor $m_c $m_o $a1} + "justify" {text_justify $m_c $m_o $a1} + + "start" {arc_start $m_c $m_o $a1 } + "angle" { arc_width $m_c $m_o $a1 } + "style" {arc_style $m_c $m_o $a1} + + default {xgui_node_error "obj_method $m_selector does not exist" $m_argv } + } + } + } +} + diff --git a/xgui/bin/xgui.bat b/xgui/bin/xgui.bat new file mode 100644 index 00000000..4133fe0e --- /dev/null +++ b/xgui/bin/xgui.bat @@ -0,0 +1 @@ +..\..\bin\wish83.exe .\xgui.sh --help diff --git a/xgui/bin/xgui.sh b/xgui/bin/xgui.sh new file mode 100755 index 00000000..da0bfcd6 --- /dev/null +++ b/xgui/bin/xgui.sh @@ -0,0 +1,908 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + + +################################################# +puts "pd(x) - Step 2 : xgui" +puts "xgui b0.10 dh200209xx" +puts "Damien HENRY (c)" + +################################################# +# define the globals variables needed for a node +global xgui_gui +global xgui_cmd_out +global data_data + +global from_all + +global host_name +global host_port +global xgui_me +set host_name localhost +set host_port 4877 +set xgui_me "$host_name:$host_port" + +global pd_name +global pd_port +global pd_sok +global xgui_pd +set pd_name xxx +set pd_port 000 +set xgui_pd "$pd_name:$pd_port" +set pd_sok -1 + +global neibourg_list +global neibourg_data +set neibourg_list [list] +set neibourg_data [list] +set data_data [list] +set xgui_gui 1 +set xgui_cmd_out 0 + +global time4flush +set time4flush 20 + +################################################# +# Read what are the argument +if { [lsearch argv --help] != -1 } { puts "xgui localhost 4877 -nogui -no_cmd_out" } + +################################################# +# puts up my windows +proc xgui_node_visu {onoff} { + set xgui_gui $onoff + if { $xgui_gui } { + global text2out + global text_from_outside + global text_comment + wm title . "Xgui b0.09" + frame .haut + frame .config1 + frame .config2 + frame .bas + entry .haut.e_in -width 50 -textvariable text2in + entry .haut.e_fo -width 50 -textvariable text_from_outside -state disabled + entry .haut.e_rem -width 50 -textvariable text_comment -state disabled + entry .haut.t_out -width 50 -textvariable text2out -state disabled + + entry .config1.host -width 10 -textvariable host_name + entry .config1.port -width 5 -textvariable host_port + + entry .config2.host -width 10 -textvariable pd_name + entry .config2.port -width 5 -textvariable pd_port + + button .config1.do -text "change" -command { + global xgui_me + global host_name + global host_port + global from_all + set xgui_me "$host_name:$host_port" + catch {close $from_all} + set from_all [socket -server seg_receive $host_port] + } + + button .config2.do -text "change" -command { + global xgui_pd + global pd_name + global pd_port + set xgui_pd "$pd_name:$pd_port" + catch {close $pd_sok} + catch {set pd_sok [socket $pd_name $pd_port]} + } + + button .bas.b_quit -text "quit" -width 7 -command { + send2nodes / */ "# $xgui_me disconnected" + do_this "$xgui_me/ ~/ disconnect *" xgui + exit + } + button .bas.b_do -text do -width 7 -command { do_this $text2in xgui} + button .bas.b_clear -text clear -width 7 -command { set text2in "" } + + pack .haut.e_in .haut.e_fo .haut.t_out .haut.e_rem + pack .config1.host .config1.port .config1.do -side left + pack .config2.host .config2.port .config2.do -side left + pack .bas.b_do .bas.b_clear .bas.b_quit -side left -pady 2 -padx 5 + pack .haut .config1 .config2 .bas -pady 2 + wm resizable . false false + } +} + +################################################# +# definition de la partie serveur +#catch { + set from_all [socket -server seg_receive $host_port] +#} + +proc seg_receive {channel addr port} { + global xgui_me + fileevent $channel readable "readLine $channel $addr $port" + do_this "/ */ # $xgui_me connected from $channel $addr $port" 0 +} + +proc readLine {channel addr port} { + global neibourg_list + global neibourg_data + global xgui_me + global text_from_outside + if {[gets $channel line]<0} { + fileevent $channel readable {} + after idle "close $channel" + set n [lsearch $neibourg_data $channel] + if {$n != -1 } { + set neibourg_list [lreplace $neibourg_list $n $n] + set neibourg_data [lreplace $neibourg_data $n $n] + } + send2nodes / */ "# $xgui_me disconnected from $addr:$port" + } else { + set text_from_outside "$addr:$port $line" + # catch { + do_this $line $channel + # } + } +} + + +################################################# +# tell that every thing OK +set text_comment "$xgui_me created" + +# end of the initialisations +######################################################################################## + +################################################# +#methods for xgui_node + +proc xgui_node_name { name port } { + global xgui_me + global host_name + global host_port + global from_all + set host_name $name + set host_port $port + set xgui_me "$host_name:$host_port" + catch {close $from_all} + set from_all [socket -server seg_receive $host_port] +} + +proc xgui_node_gui { on_off } { + if ( on_off == on ) { + } +} + +proc xgui_node_add_canvas {canvas_name} { + set canvas_name [string trim $canvas_name "/"] + set canvas_name [split $canvas_name "/"] + set canvas_name [lindex $canvas_name end] + destroy .$canvas_name + data_forget ~/$canvas_name + toplevel .$canvas_name + wm title .$canvas_name $canvas_name + wm resizable .$canvas_name false false + canvas .$canvas_name.$canvas_name + pack .$canvas_name.$canvas_name + data_remember ~/$canvas_name/ "~/$canvas_name add_canvas" + send2nodes / */ "# added ~/$canvas_name" + + set c .$canvas_name.$canvas_name + $c bind all "itemEnter $c" + $c bind all "itemLeave $c" + bind $c <1> "itemStartDrag $c %x %y click" + bind $c <2> "itemStartDrag $c %x %y m-click" + bind $c <3> "itemStartDrag $c %x %y r_click" + bind $c "itemStartDrag $c %x %y s-click" + bind $c "itemStartDrag $c %x %y s-m-click" + bind $c "itemStartDrag $c %x %y s-r-click" + bind $c "itemStartDrag $c %x %y c-click" + bind $c "itemStartDrag $c %x %y c-m-click" + bind $c "itemStartDrag $c %x %y c-r-click" + bind $c "itemDrag $c %x %y drag" + bind $c "itemDrag $c %x %y m-drag" + bind $c "itemDrag $c %x %y r-drag" + bind $c "itemDrag $c %x %y s-drag" + bind $c "itemDrag $c %x %y s-m-drag" + bind $c "itemDrag $c %x %y s-r-drag" + bind $c "itemKeyPress $c %A %k" +} + +proc xgui_node_del_canvas {canvas_name } { + global text_comment + set canvas_name [string trim $canvas_name "/"] + set canvas_name [split $canvas_name "/"] + set canvas_name [lindex $canvas_name end] + destroy .$canvas_name + data_forget ~/$canvas_name + set text_comment "deleted $canvas_name" +} + +proc xgui_node_error {from error} { + global text_comment + set text_comment "# error : unable to do <$error> ($from)" +} + +proc xgui_node_connect { c_who c_from channel } { + global neibourg_list + global neibourg_data + global xgui_me + global text_comment + set c_from [string trim $c_from "/"] + switch $c_who { + "me" { + set n [lsearch $neibourg_data $channel] + if { $n == -1 } { + lappend neibourg_list $c_from + lappend neibourg_data $channel + set text_comment "$xgui_me connect himself to $c_from onto channel $channel" +# fconfigure $channel -blocking false -bufering line + } else { + set text_comment "$xgui_me already connected to $c_from onto channel $channel" + } + } + "pd" { + global pd_name + global pd_port + global pd_sok + global xgui_pd + set c_host [split $c_from ":"] + set pd_name [lindex $c_host 0] + set pd_port [lindex $c_host 1] + set xgui_pd "$pd_name:$pd_port" +# test perf a faire.... + set pd_sok [socket -async $pd_name $pd_port] +# set pd_sok [socket $pd_name $pd_port] + if { $pd_sok != -1 } { + set text_comment " $xgui_me connected to pd" +# fconfigure $pd_sok -blocking false -bufering line + } else { set text_comment "connection refused with pd" } + } + default { + set c_host [split $c_who ":"] + set c_name [lindex $c_host 0] + set c_port [lindex $c_host 1] + set sok -1 + catch {set sok [socket -async $c_name $c_port]} + if { $sok != -1 } { + lappend neibourg_list $c_who + lappend neibourg_data $sok + fileevent $sok readable [list read_and_do $sok] +# fconfigure $sok -blocking false -bufering line + set text_comment "$xgui_me connected $c_who" + } else { set text_comment "connection refused with $c_who" } + } + } +} + +proc xgui_node_disconnect { d_who d_from channel} { + global neibourg_list + global neibourg_data + global text_comment + switch $d_who { + "me" { + set d_who [string trim $d_from "/"] + set n [lsearch $neibourg_list $d_who] + if {$n != -1 } { + catch { close [lrange $neibourg_data $n $n] } + set neibourg_list [lreplace $neibourg_list $n $n] + set neibourg_data [lreplace $neibourg_data $n $n] + set text_comment "$d_who disconnected himself" + } else { set text_comment "error $d_from not a neibourg" } + } + + "pd" { + global pd_name + global pd_port + global pd_sok + global xgui_pd + set pd_name none + set pd_port none + set xgui_pd "$pd_name:$pd_port" + set pd_sok -1 + catch {close pd_sok} + } + "*" { + foreach sok $neibourg_data { close $sok } + set neibourg_list [list] + set neibourg_data [list] + set text_comment "$d_from disconnect *" + } + default { + set n [lsearch $neibourg_list $d_who] + if {$n != -1 } { + catch { close [lrange $neibourg_data $n $n] } + set neibourg_list [lreplace $neibourg_list $n $n] + set neibourg_data [lreplace $neibourg_data $n $n] + set text_comment "$d_who disconnected $d_from" + } else { set text_comment "error $d_who not a neibourg" } + } + } +} + +proc xgui_node_hide { canvas } { + set canvas_name [string trim $canvas_name "/"] + set canvas_name [split $canvas_name "/"] + set canvas_name [lindex $canvas_name end] + destroy .$canvas_name +} + +proc xgui_node_neibourg { w_from } { + global neibourg_list + global neibourg_data + global xgui_me + foreach name $neibourg_list { + send2nodes / $w_from "# $xgui_me connected to $name" + } +} + +proc xgui_node_clone { obj new_obj } { + data_clone $obj $new_obj +} + +proc xgui_node_load { file } { + data_load $file +} + +proc xgui_node_save { obj file } { + data_save $obj $file +} + +proc xgui_node_load_coord { file } { + data_load_send $file +} + +proc xgui_node_save_coord { obj file } { + data_save_param $obj coord $file +} + +proc xgui_node_debug { from var } { + global host_name + global host_port + global xgui_me + global neibourg_list + global neibourg_data + global xgui_gui + global xgui_cmd_out + global data_data + global text_comment + global pd_name + global pd_port + global pd_sok + global xgui_pd + global from_all + set text_comment "$var = [subst $var ]" +} + +proc xgui_node_help { w_from } { + send2nodes / $w_from "# method: connect who" + send2nodes / $w_from "# method: disconnect who" + send2nodes / $w_from "# method: neibourg" + send2nodes / $w_from "# method: ping" + send2nodes / $w_from "# method: add_canvas" + send2nodes / $w_from "# method: del_canvas" +} +################################################# +#methods for canvas + +proc canvas_size {canvas_name x y} { + .$canvas_name.$canvas_name configure -width $x + .$canvas_name.$canvas_name configure -height $y + wm geometry .$canvas_name + data_remember ~/$canvas_name//size "~/$canvas_name size $x $y" +} + +proc canvas_color {canvas_name color} { + .$canvas_name.$canvas_name configure -bg $color + data_remember ~/$canvas_name//color "~/$canvas_name color $color" + } + +################################################# +#methods for all objects + +proc obj_move {canvas gobj_name x y } { + global xgui_pd + catch {.$canvas.$canvas move $gobj_name $x $y + send2pd / pd/$canvas/$gobj_name "coord [.$canvas.$canvas coords $gobj_name]" + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord [.$canvas.$canvas coords $gobj_name]" + } +} + +proc obj_color {canvas gobj_name new_color} { + .$canvas.$canvas itemconfigure $gobj_name -fill $new_color + data_remember ~/$canvas/$gobj_name//color "~/$canvas/$gobj_name color $new_color" +} + +proc obj_border {canvas gobj_name new_color} { + .$canvas.$canvas itemconfigure $gobj_name -outline $new_color + data_remember ~/$canvas/$gobj_name//border "~/$canvas/$gobj_name border $new_color" +} + +proc obj_raise {canvas gobj_name } { + .$canvas.$canvas raise $gobj_name + data_remember ~/$canvas/$gobj_name//raise "~/$canvas/$gobj_name raise" +} + +proc obj_coord {canvas gobj_name x1 y1 x2 y2 } { + catch { + .$canvas.$canvas coords $gobj_name $x1 $y1 $x2 $y2 + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord $x1 $y1 $x2 $y2" + } +} + +proc obj_xy1 {canvas gobj_name x1 y1 } { + catch { + set old_coord [.$canvas.$canvas coords $gobj_name] + .$canvas.$canvas coords $gobj_name $x1 $y1 [lindex $old_coord 2] [lindex $old_coord 3] + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord $x1 $y1 [lindex $old_coord 2] [lindex $old_coord 3]" + } +} + +proc obj_xy2 {canvas gobj_name x2 y2 } { + catch { + set old_coord [.$canvas.$canvas coords $gobj_name] + .$canvas.$canvas coords $gobj_name [lindex $old_coord 0] [lindex $old_coord 1] $x2 $y2 + data_remember ~/$canvas/$gobj_name//coord "~/$canvas/$gobj_name coord [lindex $old_coord 0] [lindex $old_coord 1] $x2 $y2" + } +} + +proc obj_width {canvas gobj_name new_width} { + .$canvas.$canvas itemconfigure $gobj_name -width $new_width + data_remember ~/$canvas/$gobj_name//width "~/$canvas/$gobj_name width $new_width" +} + +proc obj_near {canvas gobj_name x y} { + # to be done... +} + +proc obj_del {canvas obj_name} { + .$canvas.$canvas delete $obj_name + send2nodes /$canvas */$canvas "# deleted $obj_name" + data_forget ~/$canvas/$obj_name +} + +################################################# +#methods for seg + +proc seg_add {canvas gobj_name x1 y1 x2 y2 } { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create line $x1 $y1 $x2 $y2 -width 3 -tags $gobj_name -capstyle round + # send2nodes /$canvas */$canvas "added $gobj_name" + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_seg" +} + +proc seg_caps {canvas gobj_name new_cap} { + .$canvas.$canvas itemconfigure $gobj_name -capstyle $new_cap + data_remember ~/$canvas/$gobj_name//caps "~/$canvas/$gobj_name caps $new_cap" +} + +################################################# +#methods for text + +proc text_add {canvas gobj_name x1 y1 text } { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create text $x1 $y1 -text $text -tags $gobj_name -anchor sw + # send2nodes /$canvas */$canvas "added $gobj_name" + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_text" +} + +proc text_value {canvas gobj_name value} { + .$canvas.$canvas itemconfigure $gobj_name -text $value + data_remember ~/$canvas/$gobj_name//text "~/$canvas/$gobj_name text $value" +} + +proc text_anchor {canvas gobj_name value} { + .$canvas.$canvas itemconfigure $gobj_name -anchor $value + data_remember ~/$canvas/$gobj_name//anchor "~/$canvas/$gobj_name anchor $value" +} + +proc text_justify {canvas gobj_name value} { + .$canvas.$canvas itemconfigure $gobj_name -justify $value + data_remember ~/$canvas/$gobj_name//justify "~/$canvas/$gobj_name justify $value" +} + +proc text_pos {canvas gobj_name x y} { + .$canvas.$canvas coords $gobj_name $x $y + data_remember ~/$canvas/$gobj_name//pos "~/$canvas/$gobj_name pos $x $y" +} + +################################################# +#methods for rect + +proc rect_add {canvas gobj_name x1 y1 x2 y2 } { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create rectangle $x1 $y1 $x2 $y2 -width 2 -tags $gobj_name + # send2nodes /$canvas */$canvas "# added $gobj_name" + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_rect" +} + +################################################# +#methods for arc + +proc arc_add {canvas gobj_name x1 y1 x2 y2 start width} { + .$canvas.$canvas delete $gobj_name + data_forget ~/$canvas/$gobj_name + .$canvas.$canvas create arc $x1 $y1 $x2 $y2 -start $start -extent $width -width 2 -tags $gobj_name + # send2nodes /$canvas */$canvas "# added $gobj_name " + data_remember ~/$canvas/$gobj_name/ "~/$canvas/$gobj_name add_arc" +} + +proc arc_start {canvas gobj_name new_start} { + .$canvas.$canvas itemconfigure $gobj_name -start $new_start + data_remember ~/$canvas/$gobj_name//start "~/$canvas/$gobj_name start $new_start"} + +proc arc_width {canvas gobj_name new_width} { + .$canvas.$canvas itemconfigure $gobj_name -extent $new_width + data_remember ~/$canvas/$gobj_name//angle "~/$canvas/$gobj_name angle $new_width"} + +proc arc_style {canvas gobj_name new_style} { + .$canvas.$canvas itemconfigure $gobj_name -style $new_style + data_remember ~/$canvas/$gobj_name//style "~/$canvas/$gobj_name style $new_style "} + +################################################ +# Set up event bindings for all canvas: + +proc itemStartDrag {c x y event} { + global xgui_pd + global lastX lastY + global my_selected + set lastX [$c canvasx $x] + set lastY [$c canvasy $y] + set my_selected [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_selected "$event $x $y" +} + +proc itemDrag {c x y event} { + global xgui_pd + global lastX lastY + global my_selected + set x [$c canvasx $x] + set y [$c canvasy $y] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_selected "$event [expr $x-$lastX] [expr $y-$lastY]" + set lastX $x + set lastY $y +} + +proc itemEnter {c} { + global xgui_pd + set my_item [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_item enter +} + +proc itemLeave {c} { + global xgui_pd + set my_item [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_item leave +} + +proc itemKeyPress {c ascii num} { + global xgui_pd + set my_item [lindex [$c gettags current] 0] + set c [lindex [split $c "."] 1] + send2pd / pd/$c/$my_item "keypress $ascii $num" + send2pd / pd/$c "keypress $ascii $num" +} + +##################################################################################### +# Here the procedures that keep a memory about all objectz. + +proc data_remember {obj_sel m} { + global data_data + set line_to_destroy 0 + foreach line $data_data { + if {[string match "$obj_sel/*" $line] == 1} { + set line_to_destroy $line + } + } + if { $line_to_destroy !=0 } { + set n [lsearch $data_data $line_to_destroy ] + set data_data [lreplace $data_data $n $n "$obj_sel/ $m" ] + } else { + lappend data_data "$obj_sel/ $m" + } +} + +proc data_forget { obj } { + global data_data + while { [lsearch $data_data $obj/* ] != -1} { + set n [lsearch $data_data $obj/* ] + set data_data [lreplace $data_data $n $n] + } +} + +proc data_clone { from_obj to_new_obj } { + global data_data + foreach line $data_data { + if {[string match "$from_obj/*" $line] == 1} { + set new_line [join [lreplace [split $line] 0 0 ] ] + regsub -all -- $from_obj $new_line $to_new_obj newest_line + do_this "~/ $newest_line" 0 + } + } +} + +proc data_save { from_obj file } { + global data_data + set file_chn [open $file w] + foreach line $data_data { + if {[string match "$from_obj/*" $line] == 1} { + set new_line [join [lreplace [split $line] 0 0 ] ] + puts $file_chn "$new_line" + } + } + close $file_chn +} + +proc data_save_param { from_obj selector file } { + global data_data + set file_chn [open $file w] + foreach line $data_data { + if {[string match "$from_obj/*//$selector*" $line] == 1} { + set new_line [join [lreplace [split $line] 0 0 ] ] + puts $file_chn "$new_line" + } + } + close $file_chn +} + +proc data_load { file } { + global data_data + set file_chn [open $file r] + while {[eof $file_chn]==0} { + set line [gets $file_chn] + do_this "~/ $line" 0 + } + close $file_chn +} + +proc data_load_send { file } { + global data_data + set file_chn [open $file r] + while {[eof $file_chn]==0} { + set line [gets $file_chn] + set line2s [split $line] + set line2s [join [linsert $line2s 1 update]] +# regsub -all -- ~/ $line2s */ new_line +# do_this "~/ $line" 0 + send2pd / $line2s "" + } + close $file_chn +} + + +################################################################################################ +#anything to send somewhere ??? +proc send2nodes { m_from m_to ms2send } { + global xgui_gui + global xgui_cmd_out + global text2out + global xgui_me + global neibourg_list + global neibourg_data + + global text_comment + + global time4flush + + set m2send "$xgui_me$m_from $m_to $ms2send" + set m_to [string trim $m_to "/"] + set m_to_l [split $m_to "/"] + set m_to_node [lindex $m_to_l 0] + + if { $xgui_gui == 1 } { + set text2out $m2send + } + if { $xgui_cmd_out == 1 } { + puts $m2send + } + + switch [lindex [split $m_to "/"] 0 ] { + "*" { + foreach n $neibourg_list { + regsub -all -- {\*} $m_to $n m2 + send2nodes $m_from $m2 $ms2send + } + } + "." { + foreach n $neibourg_data { + catch { + puts $n $ms2send + #after cancel {flush $n} + #after $time4flush {flush $n} + flush $n + } + } + } + default { + set n [lsearch $neibourg_list $m_to_node] + if { $n != -1 } { + # if catch = error then we have to remove the link. + catch { + puts [lrange $neibourg_data $n $n] "$m2send;" + #after cancel {flush [lrange $neibourg_data $n $n]} + #after $time4flush {flush [lrange $neibourg_data $n $n]} + flush [lrange $neibourg_data $n $n] + } + } else { + set $text_comment "didn't find any coresponding neigbourg" + } + } + } +} + +proc send2pd { m_from m_to ms2send } { + global xgui_gui + global xgui_cmd_out + global text2out + global xgui_me + global pd_sok + + set m2send "$xgui_me$m_from $m_to $ms2send;" + + if { $xgui_gui == 1 } { + set text2out $m2send + } + if { $xgui_cmd_out == 1 } { + puts $m2send + } + + # catch { + puts $pd_sok $m2send + flush $pd_sok + # } +} + + +##################################################################################### +# the 3 main proc that do every thing ########################################## +##################################################################################### + +proc read_and_do { channel } { + gets $channel message + global text_from_outside + set text_from_outside "$channel \"$message" + do_this $message $channel +} + +proc do_this { m channel} { + global xgui_me + set m [string trim $m ";"] + if {[llength $m] >= 3} { + set m_to [string trim [lindex $m 1] "/"] + set m_to_l [split $m_to "/"] + set m_to_node [lindex $m_to_l 0] + set m_from [string trim [lindex $m 0] "/"] + set m_cmd [lrange $m 2 end] + #you have to know who you are : + if { "$m_to_node" == "$xgui_me" } { set m_to_node "~" } + switch $m_to_node { + "~" { catch {do_this_here $m_from $m_to $m_cmd $channel} } + "*" { + # you too are a part of the whole !!! + catch { do_this_here $m_from $m_to $m_cmd $channel } + send2nodes / $m_to "[lrange $m 2 end]" + } + "pd" {send2pd / $m_to "[lrange $m 2 end]"} + default {send2nodes / $m_to "[lrange $m 2 end]"} + } + } else { + if {$m == "help"} { + # send2nodes / $m_to "# syntax : sender receiver method args..." + } else { + xgui_node_error "not enought args" $m + } + } +} + +proc do_this_here { m_from m_to m_cmd channel} { + global xgui_me + global xgui_pd + set m_to [split $m_to "/"] + set m_from_l [split $m_from "/"] + set m_from_node [lindex $m_from_l 0] + set m_selector [lindex $m_cmd 0] + set m_argc [llength $m_cmd]-1 + if {$m_argc >= 1} { set m_argv [lrange $m_cmd 1 end] + set a1 [lindex $m_argv 0] + if {$m_argc >=2 } { set a2 [lindex $m_argv 1] + if {$m_argc >=3 } { set a3 [lindex $m_argv 2] + if {$m_argc >=4 } { set a4 [lindex $m_argv 3] + if {$m_argc >=5 } { set a5 [lindex $m_argv 4] + if {$m_argc >=6 } { set a6 [lindex $m_argv 5] + if {$m_argc >=7 } { set a7 [lindex $m_argv 6] + if {$m_argc >=8 } { set a8 [lindex $m_argv 7] + if {$m_argc >=9 } { set a9 [lindex $m_argv 8] + if {$m_argc >=10 } { set a10 [lindex $m_argv 9] + } } } } } } } } } + } else {set m_argv "{}" } + + switch [llength $m_to] { + 1 { # this is for the node ########################## + switch $m_selector { + "rename" { xgui_node_name $a1 $a2 } + + "add_canvas" { xgui_node_add_canvas $a1} + "del_canvas" { xgui_node_del_canvas $a1} + "show" { xgui_node_clone $a1 $a1 } + "hide" { xgui_node_hide } + "connect" { if {$a1 == "pd"} { xgui_node_connect pd $a2 $channel + } else { xgui_node_connect $a1 $m_from $channel} } + "connect_on" { xgui_node_connect $a1 $m_from $channel + send2nodes / $a1/ "connect me" + send2nodes / $a1/ "clone ~/$a2 $xgui_me/$a2" + send2nodes / $a1/ "connect_on_pd $xgui_me" } + "connect_on_pd" { send2nodes / $a1/ "connect pd $xgui_pd" } + "disconnect" { xgui_node_disconnect $a1 $m_from $channel} + + "neibourg" { xgui_node_neibourg $m_from } + "clone" { xgui_node_clone $a1 $a2 } + "save" { xgui_node_save $a1 $a2 } + "save_coord" { xgui_node_save_coord $a1 $a2 } + "load_coord" { xgui_node_load_coord $a1 } + "load" { xgui_node_load $a1 } + "help" { xgui_node_help $m_from } + "debug" { xgui_node_debug $m_from $$a1 } + "ping" { send2nodes / $m_from "# $m_from pinged" } + "#" { global text_comment ; set text_comment $m_argv} + default { xgui_node_error "node method $m_selector does not exist" $m_cmd } + } + } + 2 { # this is for the canvas $m_c ########################## + set m_c [lindex $m_to 1] + switch $m_selector { + "add_canvas" { catch {xgui_node_add_canvas $m_c }} + "del_canvas" { xgui_node_del_canvas $m_c } + "size" {canvas_size $m_c $a1 $a2} + "color" {canvas_color $m_c $a1} + "del" {obj_del $m_c $a1} + "kill" {obj_del $m_c $a1} + "add_seg" {seg_add $m_c $a1 10 10 20 20 } + "add_text" {text_add $m_c $a1 10 10 "text" } + "add_rect" {rect_add $m_c $a1 10 10 20 20 } + "add_arc" {arc_add $m_c $a1 10 10 20 20 0 90 } + default {xgui_node_error "canvas method $m_selector does not exist" $m_cmd } + } + } + 3 { # this is for the object $m_o witch is into $m_c ######## + set m_c [lindex $m_to 1] + set m_o [lindex $m_to 2] + switch $m_selector { + "add_seg" {seg_add $m_c $m_o 10 10 20 20 } + "add_text" {text_add $m_c $m_o 10 10 "text" } + "add_rect" {rect_add $m_c $m_o 10 10 20 20 } + "add_arc" {arc_add $m_c $m_o 10 10 20 20 0 90 } + "del" {obj_del $m_c $m_o} + "kill" {obj_del $m_c $m_o} + "show" {obj_show $m_c $m_o } + "hide" {obj_hide $m_c $m_o } + "move" {obj_move $m_c $m_o $a1 $a2} + "scale" {obj_scale $m_c $m_o $a1 $a2 $a3 $a4 } + "raise" {obj_raise $m_c $m_o } + "near" {obj_near $m_c $m_o $a1 $a2 } + "color" {obj_color $m_c $m_o $a1} + "width" {obj_width $m_c $m_o $a1} + "coord" {obj_coord $m_c $m_o $a1 $a2 $a3 $a4 } + "xy1" {obj_xy1 $m_c $m_o $a1 $a2 } + "xy2" {obj_xy2 $m_c $m_o $a1 $a2 } + "border" {obj_border $m_c $m_o $a1} + + "caps" {seg_caps $m_c $m_o $a1} + + "text" {text_value $m_c $m_o $a1} + "pos" {text_pos $m_c $m_o $a1 $a2 } + "anchor" {text_anchor $m_c $m_o $a1} + "justify" {text_justify $m_c $m_o $a1} + + "start" {arc_start $m_c $m_o $a1 } + "angle" { arc_width $m_c $m_o $a1 } + "style" {arc_style $m_c $m_o $a1} + + default {xgui_node_error "obj_method $m_selector does not exist" $m_argv } + } + } + } +} + diff --git a/xgui/doc/01_first_seg.pd b/xgui/doc/01_first_seg.pd new file mode 100644 index 00000000..b38a64ae --- /dev/null +++ b/xgui/doc/01_first_seg.pd @@ -0,0 +1,123 @@ +#N canvas 485 37 638 682 10; +#X floatatom 27 382 3 0 100; +#X msg 27 406 width \$1; +#X msg 108 424 caps butt; +#X msg 108 402 caps round; +#X msg 108 380 caps projecting; +#X msg 28 545 color \$1; +#X msg 28 523 list Blue; +#X msg 28 479 list Black; +#X text 518 640 dh20020212; +#X obj 28 567 alias my_first_seg; +#X obj 27 451 alias my_first_seg; +#X obj 20 314 alias my_first_seg; +#X msg 20 292 width 10; +#X text 23 337 this is an alias; +#X msg 27 186 show; +#X msg 67 186 hide; +#X msg 25 39 show; +#X msg 65 39 hide; +#X text 124 188 then you can draw a segment into it.; +#X text 39 249 this is the real seg object; +#X text 170 355 try thoses too.; +#X text 8 3 This example shows differents to modify a segment in a +canvas.; +#X msg 20 270 coord 20 10 100 150; +#X floatatom 311 528 5 0 0; +#X floatatom 354 528 5 0 0; +#X floatatom 401 528 5 0 0; +#X floatatom 447 528 5 0 0; +#X obj 311 603 alias my_first_seg; +#X obj 312 504 line; +#X msg 355 314 bang; +#X obj 357 505 line; +#X obj 407 506 line; +#X obj 452 507 line; +#X obj 311 554 xy2coord; +#X msg 109 40 size 500 500; +#X text 174 277 Here some values you can change; +#X obj 354 471 route 0 1 2 3 4; +#X obj 353 366 t b b; +#X obj 499 504 line; +#X obj 499 529 int; +#X floatatom 499 552 3 0 100; +#X msg 499 576 width \$1; +#X msg 394 315 stop; +#X obj 383 418 random 500; +#X msg 207 40 color white; +#X msg 207 62 color blue; +#X msg 104 545 color green; +#X msg 479 348 500; +#X msg 478 325 500; +#X obj 353 340 metro 500; +#X obj 353 445 pack f f 500; +#X msg 512 324 5; +#X msg 511 348 5; +#X msg 106 523 color red; +#X msg 28 501 list grey; +#X msg 208 84 color lightgrey; +#X obj 353 393 random 5; +#X obj 25 109 canvas */my_first_canvas; +#X obj 25 133 print canvas; +#X obj 24 226 seg my_first_seg */my_first_canvas/my_first_seg; +#X obj 25 613 alias my_first_seg; +#X obj 25 636 print my_first_seg; +#X obj 216 147 i-seg */my_first_canvas; +#X msg 216 123 show; +#X msg 283 40 color black; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 2 0 10 0; +#X connect 3 0 10 0; +#X connect 4 0 10 0; +#X connect 5 0 9 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 12 0 11 0; +#X connect 14 0 59 0; +#X connect 15 0 59 0; +#X connect 16 0 57 0; +#X connect 17 0 57 0; +#X connect 22 0 11 0; +#X connect 23 0 33 0; +#X connect 24 0 33 1; +#X connect 25 0 33 2; +#X connect 26 0 33 3; +#X connect 28 0 23 0; +#X connect 29 0 49 0; +#X connect 30 0 24 0; +#X connect 31 0 25 0; +#X connect 32 0 26 0; +#X connect 33 0 27 0; +#X connect 34 0 57 0; +#X connect 36 0 28 0; +#X connect 36 1 30 0; +#X connect 36 2 31 0; +#X connect 36 3 32 0; +#X connect 36 4 38 0; +#X connect 37 0 56 0; +#X connect 37 1 43 0; +#X connect 38 0 39 0; +#X connect 39 0 40 0; +#X connect 40 0 41 0; +#X connect 41 0 27 0; +#X connect 42 0 49 0; +#X connect 43 0 50 1; +#X connect 44 0 57 0; +#X connect 45 0 57 0; +#X connect 46 0 9 0; +#X connect 46 0 9 0; +#X connect 47 0 50 2; +#X connect 48 0 49 1; +#X connect 49 0 37 0; +#X connect 50 0 36 0; +#X connect 51 0 49 1; +#X connect 52 0 50 2; +#X connect 53 0 9 0; +#X connect 54 0 5 0; +#X connect 55 0 57 0; +#X connect 56 0 50 0; +#X connect 57 0 58 0; +#X connect 60 0 61 0; +#X connect 63 0 62 0; +#X connect 64 0 57 0; diff --git a/xgui/doc/02_behaviors.pd b/xgui/doc/02_behaviors.pd new file mode 100644 index 00000000..8c4367ab --- /dev/null +++ b/xgui/doc/02_behaviors.pd @@ -0,0 +1,49 @@ +#N canvas 418 -8 563 706 10; +#X obj 22 628 light_over; +#X text 404 671 dh20020212; +#X text 7 30 This example shows the diferent properties oand methodes +of a seg object; +#X floatatom 87 651 1 0 1; +#X obj 22 588 spigot; +#X floatatom 59 564 1 0 1; +#X msg 27 166 show; +#X msg 67 166 hide; +#X msg 27 89 show; +#X msg 67 89 hide; +#X text 9 9 Patch "pdx_connect.pd" must be loaded and connected; +#X text 244 88 First create the canvas.; +#X text 246 108 uses the show method; +#X text 255 171 then you can draw a segment into it.; +#X text 20 315 You'll receive here all the event from the seg windows +; +#X msg 111 90 size 500 500; +#X obj 24 270 alias a_seg; +#X obj 25 292 print a_seg; +#X obj 24 384 alias a_seg; +#X obj 24 474 alias a_seg; +#X text 50 404 a_seg detect a move; +#X text 49 451 and send it to himselve; +#X text 116 474 this way you can drag and drop the seg; +#X msg 152 170 width 20; +#X obj 22 537 alias a_seg; +#X obj 22 675 alias a_seg; +#X text 81 567 breaking the link is killing the behavior; +#X text 61 334 Try to move the segment with your mouse !; +#X obj 24 427 dragable; +#X text 101 427 dragable is a behaviors; +#X obj 27 120 canvas */my_canvas; +#X obj 26 208 seg a_seg */my_canvas/a_seg; +#X connect 0 0 25 0; +#X connect 0 1 3 0; +#X connect 4 0 0 0; +#X connect 5 0 4 1; +#X connect 6 0 31 0; +#X connect 7 0 31 0; +#X connect 8 0 30 0; +#X connect 9 0 30 0; +#X connect 15 0 30 0; +#X connect 16 0 17 0; +#X connect 18 0 28 0; +#X connect 23 0 31 0; +#X connect 24 0 4 0; +#X connect 28 0 19 0; diff --git a/xgui/doc/03_low_level.pd b/xgui/doc/03_low_level.pd new file mode 100644 index 00000000..dad23536 --- /dev/null +++ b/xgui/doc/03_low_level.pd @@ -0,0 +1,28 @@ +#N canvas 323 157 503 508 12; +#X obj 72 455 print from_seg; +#X text 18 12 This example show how to use seg using the low level +interface.; +#X text 73 406 The events from seg arrives there; +#X text 553 471 dh20020317; +#X obj 79 346 send to_node; +#X msg 79 84 do */ add_canvas */test; +#X msg 79 111 do */test add_seg foo; +#X obj 72 428 r */test/foo; +#X msg 79 137 do */test size 100 100; +#X msg 79 163 do */test/foo width 10; +#X msg 79 194 do */test/foo move 10 10; +#X msg 79 221 do */test/foo color blue; +#X msg 79 252 do */test/foo caps butt; +#X msg 79 279 do */test/foo coord 10 10 20 20; +#X msg 79 303 do */test color white; +#X text 385 469 dh20020530; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 7 0 0 0; +#X connect 8 0 4 0; +#X connect 9 0 4 0; +#X connect 10 0 4 0; +#X connect 11 0 4 0; +#X connect 12 0 4 0; +#X connect 13 0 4 0; +#X connect 14 0 4 0; diff --git a/xgui/doc/04_classic.pd b/xgui/doc/04_classic.pd new file mode 100644 index 00000000..c76a3c36 --- /dev/null +++ b/xgui/doc/04_classic.pd @@ -0,0 +1,98 @@ +#N canvas 25 191 968 433 10; +#X floatatom 10 178 5 0 0; +#X floatatom 10 122 5 0 0; +#X floatatom 234 122 5 0 0; +#X floatatom 468 123 5 0 0; +#X floatatom 731 121 5 0 0; +#X text 17 23 This example show how to create some simples sliders +with diferent look and diferent behavior; +#X obj 415 15 loadbang; +#X msg 807 21 hide; +#X msg 49 122 show; +#X msg 85 123 hide; +#X msg 279 122 show; +#X msg 317 122 hide; +#X msg 513 123 show; +#X msg 552 123 hide; +#X msg 776 121 show; +#X msg 812 121 hide; +#X obj 415 37 t b b b; +#X text 731 177 dh20020318; +#X text 17 -2 Patch "pdx_connect.pd" must be loaded and connected; +#X msg 7 283 show; +#X msg 43 283 hide; +#X floatatom 191 220 5 0 0; +#X msg 236 220 show; +#X msg 272 220 hide; +#X floatatom 190 279 5 0 0; +#X floatatom 429 217 5 0 0; +#X msg 474 217 show; +#X msg 510 217 hide; +#X floatatom 428 276 5 0 0; +#X floatatom 672 216 5 0 0; +#X msg 717 216 show; +#X msg 753 216 hide; +#X floatatom 671 275 5 0 0; +#X obj 7 336 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 321 303 show; +#X msg 357 303 hide; +#X obj 322 367 print; +#X msg 538 16 show \, size 300 157 \, color lightgrey; +#X obj 538 39 canvas */sliders; +#X obj 10 150 slider2 sl1 */sliders 20 20 127 1270; +#X obj 468 149 my_slider2 sl3 */sliders 70 20 127 127 127; +#X obj 730 148 my_slider2 sl4 */sliders 90 20 127 127; +#X obj 7 311 button b1 */sliders OK 120 20 30 20; +#X obj 321 342 pad pd1 */sliders 170 20 297 147 1000 1000; +#X obj 430 251 potar pt2 */sliders 120 80; +#X obj 672 250 potar pt3 */sliders 120 110; +#X obj 189 254 potar pt1 */sliders 120 50; +#X obj 234 150 my_slider2 sl2 */sliders 50 20 127 127; +#X connect 1 0 39 0; +#X connect 2 0 47 0; +#X connect 3 0 40 0; +#X connect 4 0 41 0; +#X connect 6 0 16 0; +#X connect 7 0 38 0; +#X connect 8 0 39 0; +#X connect 9 0 39 0; +#X connect 10 0 47 0; +#X connect 11 0 47 0; +#X connect 12 0 40 0; +#X connect 13 0 40 0; +#X connect 14 0 41 0; +#X connect 15 0 41 0; +#X connect 16 0 8 0; +#X connect 16 0 10 0; +#X connect 16 0 14 0; +#X connect 16 0 19 0; +#X connect 16 0 22 0; +#X connect 16 0 26 0; +#X connect 16 0 12 0; +#X connect 16 0 30 0; +#X connect 16 0 34 0; +#X connect 16 2 37 0; +#X connect 19 0 42 0; +#X connect 20 0 42 0; +#X connect 21 0 46 0; +#X connect 22 0 46 0; +#X connect 23 0 46 0; +#X connect 25 0 44 0; +#X connect 26 0 44 0; +#X connect 27 0 44 0; +#X connect 29 0 45 0; +#X connect 30 0 45 0; +#X connect 31 0 45 0; +#X connect 34 0 43 0; +#X connect 35 0 43 0; +#X connect 37 0 38 0; +#X connect 39 0 0 0; +#X connect 40 0 25 0; +#X connect 41 0 29 0; +#X connect 42 0 33 0; +#X connect 43 0 36 0; +#X connect 44 0 28 0; +#X connect 45 0 32 0; +#X connect 46 0 24 0; +#X connect 47 0 21 0; diff --git a/xgui/doc/05_xseq.pd b/xgui/doc/05_xseq.pd new file mode 100644 index 00000000..92f08043 --- /dev/null +++ b/xgui/doc/05_xseq.pd @@ -0,0 +1,315 @@ +#N canvas 186 5 737 541 10; +#X floatatom 251 85 3 0 100; +#X msg 16 195 width \$1; +#X msg 223 180 color red; +#X obj 185 256 metro 100; +#X msg 185 279 move 1 0; +#X obj 185 371 s play_pos; +#X obj 185 325 coord2xy; +#X floatatom 185 348 5 0 0; +#X msg 109 86 stop; +#X text 251 64 size; +#X obj 204 226 alias cursor; +#X text 16 35 This patch show how to create a simple sequencer.; +#N canvas 248 263 301 267 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 467 107 70 21; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 165 68 loadbang; +#X msg 161 164 move 0 0; +#X obj 117 133 t b b; +#X connect 0 0 3 0; +#X connect 2 0 10 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 8 0 10 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X connect 10 1 4 0; +#X restore 115 225 pd save; +#N canvas 240 223 602 402 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 393 153 84 40; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 208 74 loadbang; +#X obj 117 133 bang; +#X obj 209 96 t b b; +#X msg 209 120 move 0 0; +#X connect 0 0 3 0; +#X connect 2 0 9 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 8 0 10 0; +#X connect 9 0 4 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 1 0; +#X restore 115 248 pd save; +#N canvas 240 223 602 402 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 11 177 505 16; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X obj 117 133 bang; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 208 74 loadbang; +#X obj 209 96 t b b; +#X msg 209 120 move 0 0; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 1 0; +#X restore 115 271 pd save; +#N canvas 240 223 602 402 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 453 196 70 19; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X obj 117 133 bang; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 208 74 loadbang; +#X obj 209 96 t b b; +#X msg 209 120 move 0 0; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 1 0; +#X restore 115 294 pd save; +#N canvas 240 223 600 400 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 70 27 475 133; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X obj 117 133 bang; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 153 133 loadbang; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 9 0 4 0; +#X restore 115 317 pd save; +#N canvas 240 223 602 402 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 93 232 381 10; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X obj 117 133 bang; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 208 74 loadbang; +#X obj 209 96 t b b; +#X msg 209 120 move 0 0; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 1 0; +#X restore 115 340 pd save; +#N canvas 447 269 604 404 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 66 120 484 50; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X obj 117 133 bang; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 208 74 loadbang; +#X obj 209 96 t b b; +#X msg 209 120 move 0 0; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 1 0; +#X restore 115 363 pd save; +#N canvas 240 223 602 402 save 0; +#X obj 32 56 inlet; +#X obj 32 190 outlet; +#X obj 117 54 inlet; +#X obj 32 79 route coord; +#X msg 32 163 coord 425 22 54 217; +#X msg 32 103 set coord \$1 \$2 \$3 \$4; +#X obj 117 133 bang; +#X text 36 12 save some value using the classicle saving feature instead +of state; +#X text 148 186 dh20020216; +#X obj 208 74 loadbang; +#X obj 209 96 t b b; +#X msg 209 120 move 0 0; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 1 0; +#X restore 115 386 pd save; +#X msg 153 86 bang; +#X text 139 64 load preset; +#X obj 185 136 t b b b b; +#X obj 346 302 move_x; +#X text 362 365 You can modify what's in the seg windows.; +#X text 362 385 If you save this patch \, what's in the seg windows +will be saved too.; +#X msg 243 162 show; +#X msg 16 162 show; +#X obj 360 130 loadbang; +#X msg 470 195 show; +#X msg 488 86 hide; +#X msg 449 86 bang; +#X msg 470 218 size 510 240; +#X obj 16 248 i-seg */xseq; +#X obj 16 271 i-seg */xseq; +#X obj 16 294 i-seg */xseq; +#X obj 16 317 i-seg */xseq; +#X obj 16 340 i-seg */xseq; +#X obj 16 363 i-seg */xseq; +#X obj 16 386 i-seg */xseq; +#X obj 185 302 seg cursor */xseq/cursor; +#X msg 204 203 coord 10 10 10 230; +#X msg 287 431 \; pd dsp 1; +#X obj 360 153 t b b b b b; +#X obj 15 109 t b b; +#X msg 72 86 bang; +#X msg 15 86 restart; +#X text 9 9 Patch "pdx_connect.pd" must be loaded and connected; +#X text 363 441 click here if you whant to hear what's generated ! +; +#X obj 470 241 canvas */xseq; +#X obj 16 225 i-seg */xseq; +#X obj 16 479 preset p3 */xseq set03 10 80 40 20; +#X obj 16 505 preset p4 */xseq set04 10 110 40 20; +#X obj 16 428 preset p1 */xseq set01 10 20 40 20; +#X obj 16 454 preset p2 */xseq set02 10 50 40 20; +#X connect 0 0 1 0; +#X connect 1 0 33 0; +#X connect 1 0 34 0; +#X connect 1 0 35 0; +#X connect 1 0 36 0; +#X connect 1 0 37 0; +#X connect 1 0 38 0; +#X connect 1 0 39 0; +#X connect 1 0 50 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 4 0 40 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 3 0; +#X connect 12 0 50 0; +#X connect 13 0 33 0; +#X connect 14 0 34 0; +#X connect 15 0 35 0; +#X connect 16 0 36 0; +#X connect 17 0 37 0; +#X connect 18 0 38 0; +#X connect 19 0 39 0; +#X connect 20 0 12 1; +#X connect 20 0 13 1; +#X connect 20 0 14 1; +#X connect 20 0 15 1; +#X connect 20 0 16 1; +#X connect 20 0 17 1; +#X connect 20 0 18 1; +#X connect 20 0 19 1; +#X connect 22 0 3 0; +#X connect 22 0 42 0; +#X connect 22 1 41 0; +#X connect 22 2 2 0; +#X connect 22 3 26 0; +#X connect 23 0 40 0; +#X connect 26 0 10 0; +#X connect 27 0 33 0; +#X connect 27 0 34 0; +#X connect 27 0 35 0; +#X connect 27 0 36 0; +#X connect 27 0 37 0; +#X connect 27 0 38 0; +#X connect 27 0 39 0; +#X connect 27 0 50 0; +#X connect 28 0 43 0; +#X connect 29 0 49 0; +#X connect 30 0 49 0; +#X connect 31 0 43 0; +#X connect 32 0 49 0; +#X connect 33 0 13 0; +#X connect 34 0 14 0; +#X connect 35 0 15 0; +#X connect 36 0 16 0; +#X connect 37 0 17 0; +#X connect 38 0 18 0; +#X connect 39 0 19 0; +#X connect 40 0 6 0; +#X connect 40 0 23 0; +#X connect 41 0 10 0; +#X connect 43 0 46 0; +#X connect 43 1 20 0; +#X connect 43 1 22 0; +#X connect 43 2 27 0; +#X connect 43 3 32 0; +#X connect 43 4 29 0; +#X connect 44 0 3 0; +#X connect 44 1 41 0; +#X connect 45 0 3 0; +#X connect 46 0 44 0; +#X connect 50 0 12 0; diff --git a/xgui/doc/06_physics.pd b/xgui/doc/06_physics.pd new file mode 100644 index 00000000..e883c7ce --- /dev/null +++ b/xgui/doc/06_physics.pd @@ -0,0 +1,24 @@ +#N canvas 168 295 427 332 10; +#X text 11 24 Here a small example to shows that the behaviors generated +with pure-data can be very funny !!!; +#X text 224 197 dh20020210; +#X text 13 -1 Patch "pdx_connect.pd" must be loaded and connected; +#X msg 21 175 show; +#X obj 22 60 loadbang; +#X msg 104 103 show; +#X msg 262 63 hide; +#X msg 227 62 bang; +#X obj 21 82 t b b b; +#X msg 55 125 size 400 400; +#X text 26 247 Try to move the thing on the seg windows to ma; +#X obj 77 151 canvas */physics; +#X obj 21 197 i-seg_mp */physics 150 150; +#X connect 3 0 12 0; +#X connect 4 0 8 0; +#X connect 5 0 11 0; +#X connect 6 0 11 0; +#X connect 7 0 8 0; +#X connect 8 0 3 0; +#X connect 8 1 9 0; +#X connect 8 2 5 0; +#X connect 9 0 11 0; diff --git a/xgui/doc/07_speak.pd b/xgui/doc/07_speak.pd new file mode 100644 index 00000000..bbf87318 --- /dev/null +++ b/xgui/doc/07_speak.pd @@ -0,0 +1,54 @@ +#N canvas 386 128 534 423 10; +#X floatatom 360 236 3 0 100; +#X msg 360 259 width \$1; +#X text 361 320 dh20020212; +#X text 9 9 Patch "pdx_connect.pd" must be loaded and connected; +#X obj 360 75 adc~; +#X obj 360 148 env~; +#X obj 360 171 - 55; +#X obj 360 192 * 3; +#X obj 360 281 alias mouth; +#X obj 360 214 max 5; +#X text 371 330 dh20020319; +#X obj 24 61 loadbang; +#X text 7 30 Just say "hoooo" into your microphone !!!; +#X obj 55 297 move; +#X obj 160 295 move; +#X msg 232 65 bang; +#X obj 49 131 canvas */speak; +#X msg 49 108 show \, size 300 300; +#X msg 35 154 show \, coord 100 210 200 210; +#X msg 24 206 show \, coord 110 100 110 100 \, width 20; +#X msg 84 237 show \, coord 190 100 190 100 \, width 20; +#X obj 24 83 t b b; +#X obj 35 181 seg mouth */speak/m; +#X obj 24 268 seg le */speak/le; +#X obj 137 269 seg re */speak/re; +#X msg 234 101 \; pd dsp 1; +#X obj 357 100 hip~ 500; +#X obj 357 124 lop~ 1000; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 4 0 26 0; +#X connect 4 1 26 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 9 0 0 0; +#X connect 11 0 21 0; +#X connect 13 0 23 0; +#X connect 14 0 24 0; +#X connect 15 0 21 0; +#X connect 17 0 16 0; +#X connect 18 0 22 0; +#X connect 19 0 23 0; +#X connect 20 0 24 0; +#X connect 21 0 18 0; +#X connect 21 0 19 0; +#X connect 21 0 20 0; +#X connect 21 1 17 0; +#X connect 21 1 25 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 26 0 27 0; +#X connect 27 0 5 0; diff --git a/xgui/doc/08_more_physics.pd b/xgui/doc/08_more_physics.pd new file mode 100644 index 00000000..d771b5c6 --- /dev/null +++ b/xgui/doc/08_more_physics.pd @@ -0,0 +1,89 @@ +#N canvas 40 267 1010 405 12; +#X text 24 9 help physics; +#X msg 764 244 show; +#X msg 814 244 hide; +#X msg 870 246 size 500 500; +#X msg 726 300 show; +#X msg 776 300 hide; +#X msg 831 300 width 30; +#X obj 796 163 loadbang; +#X obj 795 191 t b b b b; +#X msg 736 327 coord 250 250 250 300; +#X msg 120 260 on; +#X obj 71 233 route enter leave move; +#X msg 70 260 off; +#X msg 892 191 on; +#X msg 925 299 width 50; +#X msg 542 248 on; +#X obj 493 221 route enter leave move; +#X msg 492 248 off; +#X obj 564 29 mass big 10 250 250 0 0; +#X msg 233 138 xy1 \$1 \$2; +#X msg 232 168 xy2 \$1 \$2; +#X msg 837 75 xy1 \$1 \$2; +#X msg 836 105 xy2 \$1 \$2; +#X text 880 361 dh20020404; +#X obj 194 25 damping damp2 0.1; +#X obj 794 30 damping damp1 1; +#X obj 512 151 spring spring2 10 0 250 250 250 250; +#X obj 100 87 mass mass1 1 100 100 0 0; +#X obj 386 104 spring spring1 100 100 250 250 250 300; +#X obj 170 56 force force1 0 500; +#X obj 26 324 seg A */my_canvas/my_mass; +#X obj 218 356 seg b */my_canvas/my_spring; +#X obj 459 362 seg c */my_canvas/my_big_mass; +#X obj 766 273 canvas */my_canvas; +#X connect 1 0 33 0; +#X connect 2 0 33 0; +#X connect 3 0 33 0; +#X connect 4 0 30 0; +#X connect 4 0 31 0; +#X connect 4 0 32 0; +#X connect 5 0 30 0; +#X connect 5 0 31 0; +#X connect 6 0 30 0; +#X connect 7 0 8 0; +#X connect 7 0 13 0; +#X connect 8 0 6 0; +#X connect 8 0 9 0; +#X connect 8 0 14 0; +#X connect 8 1 4 0; +#X connect 8 2 3 0; +#X connect 8 3 1 0; +#X connect 9 0 32 0; +#X connect 10 0 27 0; +#X connect 11 0 12 0; +#X connect 11 1 10 0; +#X connect 12 0 27 0; +#X connect 13 0 18 0; +#X connect 13 0 27 0; +#X connect 14 0 32 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 16 1 15 0; +#X connect 17 0 18 0; +#X connect 18 1 21 0; +#X connect 18 1 22 0; +#X connect 18 1 25 1; +#X connect 18 1 26 2; +#X connect 18 1 28 1; +#X connect 19 0 30 0; +#X connect 20 0 30 0; +#X connect 20 0 31 0; +#X connect 21 0 31 0; +#X connect 21 0 32 0; +#X connect 22 0 32 0; +#X connect 24 1 27 1; +#X connect 25 1 18 1; +#X connect 26 2 18 1; +#X connect 27 1 19 0; +#X connect 27 1 20 0; +#X connect 27 1 24 1; +#X connect 27 1 28 2; +#X connect 28 1 18 1; +#X connect 28 2 27 1; +#X connect 29 1 27 1; +#X connect 30 0 11 0; +#X connect 30 0 27 0; +#X connect 32 0 16 0; +#X connect 32 0 18 0; diff --git a/xgui/doc/09_more_physics2.pd b/xgui/doc/09_more_physics2.pd new file mode 100644 index 00000000..2e2539e6 --- /dev/null +++ b/xgui/doc/09_more_physics2.pd @@ -0,0 +1,199 @@ +#N canvas 54 20 729 706 12; +#X msg 466 13 show; +#X obj 7 37 loadbang; +#X obj 33 75 t b b b b; +#X msg 218 9 on; +#X msg 220 87 xy1 \$1 \$2; +#X msg 324 86 xy2 \$1 \$2; +#X text 52 202 dh20020404; +#X msg 230 168 xy1 \$1 \$2; +#X msg 326 168 xy2 \$1 \$2; +#X msg 221 406 xy1 \$1 \$2; +#X msg 314 404 xy2 \$1 \$2; +#X obj 470 91 seg l1 */my_string/l1; +#X obj 475 168 seg l2 */my_string/l2; +#X msg 216 490 xy1 \$1 \$2; +#X msg 317 490 xy2 \$1 \$2; +#X msg 209 573 xy1 \$1 \$2; +#X msg 315 572 xy2 \$1 \$2; +#X obj 482 45 seg m1 */my_string/m1; +#X msg 219 245 xy1 \$1 \$2; +#X msg 317 242 xy2 \$1 \$2; +#X obj 463 254 seg l3 */my_string/l3; +#X msg 220 320 xy1 \$1 \$2; +#X msg 321 321 xy2 \$1 \$2; +#X obj 458 337 seg l4 */my_string/l4; +#X obj 340 757 seg m2 */my_string/m2; +#X obj 452 420 seg l5 */my_string/l5; +#X obj 455 508 seg l6 */my_string/l6; +#X obj 571 14 light_over; +#X msg 515 13 raise; +#X msg 212 653 xy1 \$1 \$2; +#X msg 318 652 xy2 \$1 \$2; +#X msg 102 771 xy1 \$1 \$2; +#X msg 208 770 xy2 \$1 \$2; +#X obj 458 588 seg l7 */my_string/l7; +#X obj 450 666 seg l8 */my_string/l8; +#X msg 506 -9 width 30; +#X msg 30 662 width 10; +#X text 60 224 dh20020405; +#X text 24 9 a nice string...; +#X obj 102 745 mass m9 50 250 100 0 0; +#X obj 230 142 mass m2 1 250 240 0 0; +#X obj 219 219 mass m3 1 250 220 0 0; +#X obj 220 294 mass m4 1 250 200 0 0; +#X obj 221 380 mass m5 1 250 180 0 0; +#X obj 210 465 mass m6 1 250 160 0 0; +#X obj 209 547 mass m7 1 250 140 0 0; +#X obj 212 627 mass m8 1 250 120 0 0; +#X obj 237 36 force f1 0 10000; +#X obj 164 720 damping d9 3000; +#X obj 330 779 spring sl 5000 0 250 250 250 100; +#X obj 450 692 spring s9 1000 20; +#X obj 458 614 spring s8 1000 20; +#X obj 455 534 spring s6 1000 20; +#X obj 452 446 spring s5 1000 20; +#X obj 458 363 spring s4 1000 20; +#X obj 463 280 spring s3 1000 20; +#X obj 461 195 spring s2 1000 20; +#X obj 470 118 spring s1 1000 20; +#X obj 282 13 damping d1 10; +#X obj 291 121 damping d2 10; +#X obj 281 195 damping d3 10; +#X obj 285 270 damping d4 10; +#X obj 282 356 damping d5 10; +#X obj 285 438 damping d6 10; +#X obj 271 522 damping d7 10; +#X obj 274 602 damping d8 10; +#X obj 220 61 mass m1 10 250 260 0 0; +#X text 21 -11 This example is running OK on a PIII 800; +#X msg 51 101 show \, size 500 800; +#X msg 70 125 color white; +#X obj 53 156 canvas */my_string; +#X connect 0 0 12 0; +#X connect 0 0 17 0; +#X connect 0 0 11 0; +#X connect 0 0 24 0; +#X connect 0 0 20 0; +#X connect 0 0 23 0; +#X connect 0 0 25 0; +#X connect 0 0 26 0; +#X connect 0 0 33 0; +#X connect 0 0 34 0; +#X connect 1 0 2 0; +#X connect 2 0 35 0; +#X connect 2 0 28 0; +#X connect 2 0 36 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 69 0; +#X connect 2 3 68 0; +#X connect 3 0 39 0; +#X connect 3 0 40 0; +#X connect 3 0 41 0; +#X connect 3 0 42 0; +#X connect 3 0 43 0; +#X connect 3 0 44 0; +#X connect 3 0 45 0; +#X connect 3 0 46 0; +#X connect 3 0 66 0; +#X connect 4 0 11 0; +#X connect 4 0 17 0; +#X connect 5 0 17 0; +#X connect 7 0 12 0; +#X connect 8 0 11 0; +#X connect 9 0 25 0; +#X connect 10 0 23 0; +#X connect 13 0 26 0; +#X connect 14 0 25 0; +#X connect 15 0 33 0; +#X connect 16 0 26 0; +#X connect 17 0 27 0; +#X connect 17 0 66 0; +#X connect 18 0 20 0; +#X connect 19 0 12 0; +#X connect 21 0 23 0; +#X connect 22 0 20 0; +#X connect 27 0 17 0; +#X connect 28 0 17 0; +#X connect 29 0 34 0; +#X connect 30 0 33 0; +#X connect 31 0 24 0; +#X connect 32 0 34 0; +#X connect 32 0 24 0; +#X connect 35 0 17 0; +#X connect 36 0 24 0; +#X connect 39 1 31 0; +#X connect 39 1 32 0; +#X connect 39 1 48 1; +#X connect 39 1 49 1; +#X connect 39 1 50 2; +#X connect 40 1 7 0; +#X connect 40 1 8 0; +#X connect 40 1 56 1; +#X connect 40 1 57 2; +#X connect 40 1 59 1; +#X connect 41 1 18 0; +#X connect 41 1 19 0; +#X connect 41 1 55 1; +#X connect 41 1 56 2; +#X connect 41 1 60 1; +#X connect 42 1 21 0; +#X connect 42 1 22 0; +#X connect 42 1 54 1; +#X connect 42 1 55 2; +#X connect 42 1 61 1; +#X connect 43 1 9 0; +#X connect 43 1 10 0; +#X connect 43 1 53 1; +#X connect 43 1 54 2; +#X connect 43 1 62 1; +#X connect 44 1 13 0; +#X connect 44 1 14 0; +#X connect 44 1 52 1; +#X connect 44 1 53 2; +#X connect 44 1 63 1; +#X connect 45 1 15 0; +#X connect 45 1 16 0; +#X connect 45 1 51 1; +#X connect 45 1 52 2; +#X connect 45 1 64 1; +#X connect 46 1 29 0; +#X connect 46 1 30 0; +#X connect 46 1 50 1; +#X connect 46 1 51 2; +#X connect 46 1 65 1; +#X connect 47 1 66 1; +#X connect 48 1 39 1; +#X connect 49 1 39 1; +#X connect 50 1 46 1; +#X connect 50 2 39 1; +#X connect 51 1 45 1; +#X connect 51 2 46 1; +#X connect 52 1 44 1; +#X connect 52 2 45 1; +#X connect 53 1 43 1; +#X connect 53 2 44 1; +#X connect 54 1 42 1; +#X connect 54 2 43 1; +#X connect 55 1 41 1; +#X connect 55 2 42 1; +#X connect 56 1 40 1; +#X connect 56 2 41 1; +#X connect 57 1 66 1; +#X connect 57 2 40 1; +#X connect 57 2 40 1; +#X connect 58 1 66 1; +#X connect 59 1 40 1; +#X connect 60 1 41 1; +#X connect 61 1 42 1; +#X connect 62 1 43 1; +#X connect 63 1 44 1; +#X connect 64 1 45 1; +#X connect 65 1 46 1; +#X connect 66 1 4 0; +#X connect 66 1 5 0; +#X connect 66 1 57 1; +#X connect 66 1 58 1; +#X connect 68 0 70 0; +#X connect 69 0 70 0; diff --git a/xgui/doc/10_sliders.pd b/xgui/doc/10_sliders.pd new file mode 100644 index 00000000..9a1c27ce --- /dev/null +++ b/xgui/doc/10_sliders.pd @@ -0,0 +1,83 @@ +#N canvas 21 168 943 364 10; +#X floatatom 10 178 5 0 0; +#X floatatom 10 122 5 0 0; +#X obj 415 15 loadbang; +#X msg 807 21 hide; +#X msg 49 122 show; +#X msg 85 123 hide; +#X obj 415 37 t b b b; +#X text 762 189 dh20020318; +#X text 17 -2 Patch "pdx_connect.pd" must be loaded and connected; +#X obj 538 39 canvas */sliders; +#X msg 469 14 bang; +#X msg 11 221 show; +#X msg 47 221 hide; +#X floatatom 241 179 5 0 0; +#X floatatom 241 123 5 0 0; +#X msg 280 123 show; +#X msg 316 124 hide; +#X floatatom 467 179 5 0 0; +#X floatatom 467 123 5 0 0; +#X msg 506 123 show; +#X msg 542 124 hide; +#X floatatom 698 180 5 0 0; +#X floatatom 698 124 5 0 0; +#X msg 737 124 show; +#X msg 773 125 hide; +#X text 772 199 dh20020723; +#X msg 93 271 show; +#X msg 131 274 hide; +#X msg 419 238 show; +#X msg 455 238 hide; +#X msg 501 288 show; +#X msg 539 291 hide; +#X obj 241 151 slider2 sl2 */sliders 50 20 127 1270; +#X obj 467 151 slider2 sl3 */sliders 80 20 127 1270; +#X obj 698 152 slider2 sl4 */sliders 110 20 127 1270; +#X obj 11 244 preset p1 */sliders preset1.txt 140 20 70 20; +#X obj 100 293 preset p2 */sliders preset2.txt 140 50 70 20; +#X obj 419 261 preset p3 */sliders preset3.txt 140 80 70 20; +#X obj 508 310 preset p4 */sliders preset4.txt 140 110 70 20; +#X msg 538 16 show \, size 220 157 \, color lightgrey; +#X obj 11 150 slider2 sl1 */sliders 20 20 127 1270; +#X text 17 23 This example show how to create some simples persitant +preset; +#X text 14 54 USE CRTL+CLICK TO SAVE A PRESET \; CLICK TO LOAD ONE +; +#X connect 1 0 40 0; +#X connect 2 0 6 0; +#X connect 3 0 9 0; +#X connect 4 0 40 0; +#X connect 5 0 40 0; +#X connect 6 0 4 0; +#X connect 6 0 15 0; +#X connect 6 0 19 0; +#X connect 6 0 23 0; +#X connect 6 0 11 0; +#X connect 6 0 26 0; +#X connect 6 0 28 0; +#X connect 6 0 30 0; +#X connect 6 2 39 0; +#X connect 10 0 6 0; +#X connect 11 0 35 0; +#X connect 12 0 35 0; +#X connect 14 0 32 0; +#X connect 15 0 32 0; +#X connect 16 0 32 0; +#X connect 18 0 33 0; +#X connect 19 0 33 0; +#X connect 20 0 33 0; +#X connect 22 0 34 0; +#X connect 23 0 34 0; +#X connect 24 0 34 0; +#X connect 26 0 36 0; +#X connect 27 0 36 0; +#X connect 28 0 37 0; +#X connect 29 0 37 0; +#X connect 30 0 38 0; +#X connect 31 0 38 0; +#X connect 32 0 13 0; +#X connect 33 0 17 0; +#X connect 34 0 21 0; +#X connect 39 0 9 0; +#X connect 40 0 0 0; diff --git a/xgui/doc/Kroonde/K_jongle.pd b/xgui/doc/Kroonde/K_jongle.pd new file mode 100644 index 00000000..3ac940b1 --- /dev/null +++ b/xgui/doc/Kroonde/K_jongle.pd @@ -0,0 +1,44 @@ +#N canvas 238 31 407 597 16; +#X floatatom 132 81 4 0 0; +#X floatatom 185 81 4 0 0; +#X text 137 567 S01; +#X text 188 567 S02; +#X text 260 566 S05; +#X text 311 566 S06; +#X floatatom 252 82 4 0 0; +#X floatatom 305 82 4 0 0; +#X obj 132 53 r S01; +#X obj 185 53 r S02; +#X obj 252 54 r S05; +#X obj 305 54 r S06; +#X obj 132 305 vsl 50 256 0 1023 0 0 empty empty empty 20 8 0 8 -260818 +-1 -1 0 1; +#X obj 185 305 vsl 50 256 0 1023 0 0 empty empty empty 20 8 0 8 -260818 +-1 -1 0 1; +#X obj 252 305 vsl 50 256 0 1023 0 0 empty empty empty 20 8 0 8 -260818 +-1 -1 15703 1; +#X obj 305 305 vsl 50 256 0 1023 0 0 empty empty empty 20 8 0 8 -260818 +-1 -1 17297 1; +#X obj 68 150 calibration; +#X obj 79 114 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 97 182 calibration; +#X obj 166 214 calibration; +#X obj 217 255 calibration; +#X obj 40 44 K_send; +#X connect 0 0 16 1; +#X connect 1 0 18 1; +#X connect 6 0 19 1; +#X connect 7 0 20 1; +#X connect 8 0 0 0; +#X connect 9 0 1 0; +#X connect 10 0 6 0; +#X connect 11 0 7 0; +#X connect 16 0 12 0; +#X connect 17 0 16 0; +#X connect 17 0 18 0; +#X connect 17 0 19 0; +#X connect 17 0 20 0; +#X connect 18 0 13 0; +#X connect 19 0 14 0; +#X connect 20 0 15 0; diff --git a/xgui/doc/Kroonde/K_konfig.pd b/xgui/doc/Kroonde/K_konfig.pd new file mode 100644 index 00000000..525db47a --- /dev/null +++ b/xgui/doc/Kroonde/K_konfig.pd @@ -0,0 +1,81 @@ +#N canvas 0 0 959 578 12; +#X msg 242 479 255; +#X msg 192 479 255; +#X msg 145 479 255; +#X msg 97 479 255; +#X text 167 363 ip destination; +#X obj 52 409 bng 40 250 50 0 empty empty empty 20 8 0 8 -258699 -143491 +-143491; +#X obj 52 533 koonfig_ip_dest; +#X floatatom 224 504 5 0 0; +#X floatatom 176 504 5 0 0; +#X floatatom 128 504 5 0 0; +#X floatatom 80 504 5 0 0; +#X obj 60 92 kroonde_ip; +#X floatatom 170 128 5 0 0; +#X floatatom 118 128 5 0 0; +#X floatatom 67 128 5 0 0; +#X floatatom 16 128 5 0 0; +#X floatatom 169 212 5 0 0; +#X floatatom 117 212 5 0 0; +#X floatatom 66 212 5 0 0; +#X floatatom 15 212 5 0 0; +#X obj 35 172 kroonde_dest_ip; +#X msg 97 454 192; +#X msg 145 454 168; +#X msg 192 454 254; +#X msg 242 454 93; +#X text 21 10 configuration du Kroonde; +#X text 371 162 Ces objets affichent la configuration du kroonde \, +lorsque celui-ci s'initialise.; +#X text 307 10 Il est necessaire de relier le Kroonde a l'ordinateur +en midi (in et out) pour configurer le Kroonde.; +#X text 291 127 <- addresse IP du Kroonde; +#X text 288 211 <- addresse IP du destinataire des message du kroonde +; +#X text 317 245 (255.255.255.255 correspond a un envoie a toutes les +machines connectees); +#X obj 508 409 bng 40 250 50 0 empty empty empty 20 8 0 8 -258699 -143491 +-143491; +#X floatatom 676 504 5 0 0; +#X floatatom 628 504 5 0 0; +#X floatatom 580 504 5 0 0; +#X floatatom 532 504 5 0 0; +#X msg 532 479 192; +#X msg 580 479 168; +#X msg 628 479 254; +#X msg 676 479 92; +#X text 650 363 ip Kroonde; +#X obj 508 533 koonfig_my_ip; +#X text 105 419 <- bang pour envoyer la nouvelle addresse; +#X text 563 419 <- bang pour envoyer la nouvelle addresse; +#X connect 0 0 7 0; +#X connect 1 0 8 0; +#X connect 2 0 9 0; +#X connect 3 0 10 0; +#X connect 5 0 6 0; +#X connect 7 0 6 4; +#X connect 8 0 6 3; +#X connect 9 0 6 2; +#X connect 10 0 6 1; +#X connect 11 0 15 0; +#X connect 11 1 14 0; +#X connect 11 2 13 0; +#X connect 11 3 12 0; +#X connect 20 0 19 0; +#X connect 20 1 18 0; +#X connect 20 2 17 0; +#X connect 20 3 16 0; +#X connect 21 0 10 0; +#X connect 22 0 9 0; +#X connect 23 0 8 0; +#X connect 24 0 7 0; +#X connect 31 0 41 0; +#X connect 32 0 41 4; +#X connect 33 0 41 3; +#X connect 34 0 41 2; +#X connect 35 0 41 1; +#X connect 36 0 35 0; +#X connect 37 0 34 0; +#X connect 38 0 33 0; +#X connect 39 0 32 0; diff --git a/xgui/doc/Kroonde/K_panel.pd b/xgui/doc/Kroonde/K_panel.pd new file mode 100644 index 00000000..096467dc --- /dev/null +++ b/xgui/doc/Kroonde/K_panel.pd @@ -0,0 +1,81 @@ +#N canvas 13 121 882 333 16; +#X obj 443 18 vsl 50 256 0 1023 0 0 empty S09 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 496 18 vsl 50 256 0 1023 0 0 empty S10 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 549 18 vsl 50 256 0 1023 0 0 empty S11 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 602 18 vsl 50 256 0 1023 0 0 empty S12 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 655 18 vsl 50 256 0 1023 0 0 empty S13 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 708 18 vsl 50 256 0 1023 0 0 empty S14 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 761 18 vsl 50 256 0 1023 0 0 empty S15 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 814 18 vsl 50 256 0 1023 0 0 empty S16 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X text 504 299 S10; +#X text 27 301 S01; +#X text 78 301 S02; +#X text 132 300 S03; +#X text 190 300 S04; +#X text 242 299 S05; +#X text 293 299 S06; +#X text 347 298 S07; +#X text 398 298 S08; +#X text 450 298 S09; +#X text 556 299 S11; +#X text 611 300 S12; +#X text 662 300 S13; +#X text 719 300 S14; +#X text 769 299 S15; +#X text 820 300 S16; +#X obj 19 18 vsl 50 256 0 1023 0 0 empty S01 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 72 18 vsl 50 256 0 1023 0 0 empty S02 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 125 18 vsl 50 256 0 1023 0 0 empty S03 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 178 18 vsl 50 256 0 1023 0 0 empty S04 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 231 18 vsl 50 256 0 1023 0 0 empty S05 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 284 18 vsl 50 256 0 1023 0 0 empty S06 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 337 18 vsl 50 256 0 1023 0 0 empty S07 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 390 18 vsl 50 256 0 1023 0 0 empty S08 empty 20 8 64 8 -260818 +-1 -1 0 1; +#X obj 20 282 nbx 4 14 -1e+037 1e+037 0 0 empty S01 empty 0 -6 64 10 +-262144 -1 -1 1094 256; +#X obj 73 282 nbx 4 14 -1e+037 1e+037 0 0 empty S02 empty 0 -6 64 10 +-262144 -1 -1 0 256; +#X obj 127 282 nbx 4 14 -1e+037 1e+037 0 0 empty S03 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 180 282 nbx 4 14 -1e+037 1e+037 0 0 empty S04 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 232 282 nbx 4 14 -1e+037 1e+037 0 0 empty S05 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 285 282 nbx 4 14 -1e+037 1e+037 0 0 empty S06 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 339 282 nbx 4 14 -1e+037 1e+037 0 0 empty S07 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 392 282 nbx 4 14 -1e+037 1e+037 0 0 empty S08 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 444 282 nbx 4 14 -1e+037 1e+037 0 0 empty S09 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 497 282 nbx 4 14 -1e+037 1e+037 0 0 empty S10 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 551 282 nbx 4 14 -1e+037 1e+037 0 0 empty S11 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 604 282 nbx 4 14 -1e+037 1e+037 0 0 empty S12 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 656 282 nbx 4 14 -1e+037 1e+037 0 0 empty S13 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 709 282 nbx 4 14 -1e+037 1e+037 0 0 empty S14 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 763 282 nbx 4 14 -1e+037 1e+037 0 0 empty S15 empty 0 -6 64 +10 -262144 -1 -1 0 256; +#X obj 816 282 nbx 4 14 -1e+037 1e+037 0 0 empty S16 empty 0 -6 64 +10 -262144 -1 -1 0 256; diff --git a/xgui/doc/Kroonde/K_send.pd b/xgui/doc/Kroonde/K_send.pd new file mode 100644 index 00000000..3758034e --- /dev/null +++ b/xgui/doc/Kroonde/K_send.pd @@ -0,0 +1,70 @@ +#N canvas 95 31 427 337 12; +#X obj 15 44 route Kroonde; +#X obj 15 15 netreceive 5678 1; +#X obj 15 73 unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#X obj 15 130 send S01; +#X obj 34 186 send S02; +#X obj 54 242 send S03; +#X obj 73 297 send S04; +#X obj 94 130 send S05; +#X obj 112 187 send S06; +#X obj 134 241 send S07; +#X obj 156 298 send S08; +#X obj 15 102 change; +#X obj 34 160 change; +#X obj 54 216 change; +#X obj 73 271 change; +#X obj 94 102 change; +#X obj 112 159 change; +#X obj 134 215 change; +#X obj 156 272 change; +#X obj 174 130 send S01; +#X obj 194 184 send S02; +#X obj 214 240 send S03; +#X obj 233 295 send S04; +#X obj 254 128 send S05; +#X obj 275 185 send S06; +#X obj 294 239 send S07; +#X obj 316 296 send S08; +#X obj 174 102 change; +#X obj 194 158 change; +#X obj 214 214 change; +#X obj 233 269 change; +#X obj 254 100 change; +#X obj 275 157 change; +#X obj 294 213 change; +#X obj 316 270 change; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 2 0 11 0; +#X connect 2 1 12 0; +#X connect 2 2 13 0; +#X connect 2 3 14 0; +#X connect 2 4 15 0; +#X connect 2 5 16 0; +#X connect 2 6 17 0; +#X connect 2 7 18 0; +#X connect 2 8 27 0; +#X connect 2 9 28 0; +#X connect 2 10 29 0; +#X connect 2 11 30 0; +#X connect 2 12 31 0; +#X connect 2 13 32 0; +#X connect 2 14 33 0; +#X connect 2 15 34 0; +#X connect 11 0 3 0; +#X connect 12 0 4 0; +#X connect 13 0 5 0; +#X connect 14 0 6 0; +#X connect 15 0 7 0; +#X connect 16 0 8 0; +#X connect 17 0 9 0; +#X connect 18 0 10 0; +#X connect 27 0 19 0; +#X connect 28 0 20 0; +#X connect 29 0 21 0; +#X connect 30 0 22 0; +#X connect 31 0 23 0; +#X connect 32 0 24 0; +#X connect 33 0 25 0; +#X connect 34 0 26 0; diff --git a/xgui/doc/Kroonde/Koonfig_ip_dest.pd b/xgui/doc/Kroonde/Koonfig_ip_dest.pd new file mode 100644 index 00000000..c37480a0 --- /dev/null +++ b/xgui/doc/Kroonde/Koonfig_ip_dest.pd @@ -0,0 +1,72 @@ +#N canvas 0 0 621 596 12; +#X obj 200 65 inlet; +#X obj 251 65 inlet; +#X obj 302 65 inlet; +#X obj 360 65 inlet; +#X floatatom 302 93 5 0 0; +#X floatatom 251 93 5 0 0; +#X floatatom 200 93 5 0 0; +#X obj 200 121 >> 4; +#X obj 200 177 % 16; +#X obj 251 121 >> 4; +#X obj 251 177 % 16; +#X obj 302 121 >> 4; +#X obj 302 177 % 16; +#X obj 22 93 t b b b b b b b b; +#X obj 405 260 ctlout 50 10; +#X obj 405 288 ctlout 51 10; +#X obj 405 316 ctlout 52 10; +#X obj 405 344 ctlout 53 10; +#X obj 405 372 ctlout 54 10; +#X obj 405 400 ctlout 55 10; +#X obj 405 428 ctlout 56 10; +#X obj 405 456 ctlout 57 10; +#X obj 200 149 f; +#X obj 200 205 f; +#X obj 251 149 f; +#X obj 251 205 f; +#X obj 302 149 f; +#X obj 302 205 f; +#X floatatom 360 93 5 0 0; +#X obj 360 121 >> 4; +#X obj 360 177 % 16; +#X obj 360 149 f; +#X obj 360 205 f; +#X obj 22 65 inlet; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 28 0; +#X connect 4 0 11 0; +#X connect 4 0 12 0; +#X connect 5 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 22 1; +#X connect 8 0 23 1; +#X connect 9 0 24 1; +#X connect 10 0 25 1; +#X connect 11 0 26 1; +#X connect 12 0 27 1; +#X connect 13 0 22 0; +#X connect 13 1 23 0; +#X connect 13 2 24 0; +#X connect 13 3 25 0; +#X connect 13 4 26 0; +#X connect 13 5 27 0; +#X connect 13 6 31 0; +#X connect 13 7 32 0; +#X connect 22 0 21 0; +#X connect 23 0 20 0; +#X connect 24 0 19 0; +#X connect 25 0 18 0; +#X connect 26 0 17 0; +#X connect 27 0 16 0; +#X connect 28 0 29 0; +#X connect 28 0 30 0; +#X connect 29 0 31 1; +#X connect 30 0 32 1; +#X connect 31 0 15 0; +#X connect 32 0 14 0; +#X connect 33 0 13 0; diff --git a/xgui/doc/Kroonde/Koonfig_my_ip.pd b/xgui/doc/Kroonde/Koonfig_my_ip.pd new file mode 100644 index 00000000..20108fbd --- /dev/null +++ b/xgui/doc/Kroonde/Koonfig_my_ip.pd @@ -0,0 +1,72 @@ +#N canvas 0 0 571 536 12; +#X obj 200 65 inlet; +#X obj 251 65 inlet; +#X obj 302 65 inlet; +#X obj 360 65 inlet; +#X floatatom 302 93 5 0 0; +#X floatatom 251 93 5 0 0; +#X floatatom 200 93 5 0 0; +#X obj 200 121 >> 4; +#X obj 200 177 % 16; +#X obj 251 121 >> 4; +#X obj 251 177 % 16; +#X obj 302 121 >> 4; +#X obj 302 177 % 16; +#X obj 22 93 t b b b b b b b b; +#X obj 200 149 f; +#X obj 200 205 f; +#X obj 251 149 f; +#X obj 251 205 f; +#X obj 302 149 f; +#X obj 302 205 f; +#X floatatom 360 93 5 0 0; +#X obj 360 121 >> 4; +#X obj 360 177 % 16; +#X obj 360 149 f; +#X obj 360 205 f; +#X obj 22 65 inlet; +#X obj 405 260 ctlout 60 10; +#X obj 405 288 ctlout 61 10; +#X obj 405 316 ctlout 62 10; +#X obj 405 344 ctlout 63 10; +#X obj 405 372 ctlout 64 10; +#X obj 405 400 ctlout 65 10; +#X obj 405 428 ctlout 66 10; +#X obj 405 456 ctlout 67 10; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 20 0; +#X connect 4 0 11 0; +#X connect 4 0 12 0; +#X connect 5 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 14 1; +#X connect 8 0 15 1; +#X connect 9 0 16 1; +#X connect 10 0 17 1; +#X connect 11 0 18 1; +#X connect 12 0 19 1; +#X connect 13 0 14 0; +#X connect 13 1 15 0; +#X connect 13 2 16 0; +#X connect 13 3 17 0; +#X connect 13 4 18 0; +#X connect 13 5 19 0; +#X connect 13 6 23 0; +#X connect 13 7 24 0; +#X connect 14 0 33 0; +#X connect 15 0 32 0; +#X connect 16 0 31 0; +#X connect 17 0 30 0; +#X connect 18 0 29 0; +#X connect 19 0 28 0; +#X connect 20 0 21 0; +#X connect 20 0 22 0; +#X connect 21 0 23 1; +#X connect 22 0 24 1; +#X connect 23 0 27 0; +#X connect 24 0 26 0; +#X connect 25 0 13 0; diff --git a/xgui/doc/Kroonde/Kroonde.pd b/xgui/doc/Kroonde/Kroonde.pd new file mode 100644 index 00000000..88513d8d --- /dev/null +++ b/xgui/doc/Kroonde/Kroonde.pd @@ -0,0 +1,8 @@ +#N canvas 24 49 665 135 12; +#X obj 11 11 K_send; +#X obj 11 41 K_panel; +#X text 94 10 <- reception des informations udp; +#X text 94 37 <- panneau de control des informations venant du kroonde +; +#X obj 11 71 K_konfig; +#X text 95 70 <- configuration de l'addresse IP du kroonde; diff --git a/xgui/doc/Kroonde/calibration.pd b/xgui/doc/Kroonde/calibration.pd new file mode 100644 index 00000000..a6b0cdf4 --- /dev/null +++ b/xgui/doc/Kroonde/calibration.pd @@ -0,0 +1,47 @@ +#N canvas 372 103 208 379 12; +#X obj 16 15 inlet; +#X obj 106 16 inlet; +#X obj 105 78 gate; +#X msg 16 77 0; +#X msg 50 77 1023; +#X obj 143 153 f; +#X obj 54 154 f; +#X obj 106 153 min; +#X obj 16 153 max; +#X obj 80 349 outlet; +#X obj 16 44 select 1; +#X obj 106 112 t f f; +#X obj 16 114 t f f; +#X obj 80 259 range; +#X msg 106 226 0; +#X msg 141 226 1023; +#X obj 106 196 loadbang; +#X obj 80 287 min 1023; +#X obj 80 317 max 0; +#X connect 0 0 2 1; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 1 0 13 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 12 0; +#X connect 4 0 11 0; +#X connect 5 0 7 1; +#X connect 6 0 8 1; +#X connect 7 0 5 0; +#X connect 7 0 13 1; +#X connect 8 0 6 0; +#X connect 8 0 13 2; +#X connect 10 0 3 0; +#X connect 10 0 4 0; +#X connect 11 0 7 0; +#X connect 11 1 7 1; +#X connect 12 0 8 0; +#X connect 12 1 8 1; +#X connect 13 0 17 0; +#X connect 14 0 13 3; +#X connect 15 0 13 4; +#X connect 16 0 14 0; +#X connect 16 0 15 0; +#X connect 17 0 18 0; +#X connect 18 0 9 0; diff --git a/xgui/doc/Kroonde/inv1024.pd b/xgui/doc/Kroonde/inv1024.pd new file mode 100644 index 00000000..716f3060 --- /dev/null +++ b/xgui/doc/Kroonde/inv1024.pd @@ -0,0 +1,8 @@ +#N canvas 0 0 144 174 12; +#X obj 46 20 inlet; +#X obj 46 51 * -1; +#X obj 46 81 + 1024; +#X obj 46 111 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; diff --git a/xgui/doc/Kroonde/kroonde_dest_ip.pd b/xgui/doc/Kroonde/kroonde_dest_ip.pd new file mode 100644 index 00000000..2f5dde54 --- /dev/null +++ b/xgui/doc/Kroonde/kroonde_dest_ip.pd @@ -0,0 +1,49 @@ +#N canvas 334 70 578 383 12; +#X obj 404 197 outlet; +#X obj 283 197 outlet; +#X obj 170 197 outlet; +#X obj 49 197 outlet; +#X obj 404 169 +; +#X obj 422 110 << 4; +#X obj 422 138 t b f; +#X obj 283 169 +; +#X obj 302 138 t b f; +#X obj 170 169 +; +#X obj 189 138 t b f; +#X obj 49 169 +; +#X obj 68 138 t b f; +#X obj 68 110 << 4; +#X obj 189 110 << 4; +#X obj 302 110 << 4; +#X obj 49 55 ctlin 56 11; +#X obj 68 82 ctlin 57 11; +#X obj 170 55 ctlin 54 11; +#X obj 189 82 ctlin 55 11; +#X obj 283 55 ctlin 52 11; +#X obj 302 82 ctlin 53 11; +#X obj 404 55 ctlin 50 11; +#X obj 422 82 ctlin 51 11; +#X connect 4 0 0 0; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X connect 6 1 4 1; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 8 1 7 1; +#X connect 9 0 2 0; +#X connect 10 0 9 0; +#X connect 10 1 9 1; +#X connect 11 0 3 0; +#X connect 12 0 11 0; +#X connect 12 1 11 1; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 15 0 8 0; +#X connect 16 0 11 0; +#X connect 17 0 13 0; +#X connect 18 0 9 0; +#X connect 19 0 14 0; +#X connect 20 0 7 0; +#X connect 21 0 15 0; +#X connect 22 0 4 0; +#X connect 23 0 5 0; diff --git a/xgui/doc/Kroonde/kroonde_ip.pd b/xgui/doc/Kroonde/kroonde_ip.pd new file mode 100644 index 00000000..7a7e9add --- /dev/null +++ b/xgui/doc/Kroonde/kroonde_ip.pd @@ -0,0 +1,49 @@ +#N canvas 0 0 582 387 12; +#X obj 404 197 outlet; +#X obj 283 197 outlet; +#X obj 170 197 outlet; +#X obj 49 197 outlet; +#X obj 404 169 +; +#X obj 422 108 << 4; +#X obj 422 136 t b f; +#X obj 283 169 +; +#X obj 303 136 t b f; +#X obj 170 169 +; +#X obj 189 136 t b f; +#X obj 49 169 +; +#X obj 67 136 t b f; +#X obj 67 108 << 4; +#X obj 189 108 << 4; +#X obj 303 108 << 4; +#X obj 48 55 ctlin 66 11; +#X obj 67 80 ctlin 67 11; +#X obj 172 55 ctlin 64 11; +#X obj 189 80 ctlin 65 11; +#X obj 284 55 ctlin 62 11; +#X obj 303 80 ctlin 63 11; +#X obj 405 55 ctlin 60 11; +#X obj 422 80 ctlin 61 11; +#X connect 4 0 0 0; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X connect 6 1 4 1; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 8 1 7 1; +#X connect 9 0 2 0; +#X connect 10 0 9 0; +#X connect 10 1 9 1; +#X connect 11 0 3 0; +#X connect 12 0 11 0; +#X connect 12 1 11 1; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 15 0 8 0; +#X connect 16 0 11 0; +#X connect 17 0 13 0; +#X connect 18 0 9 0; +#X connect 19 0 14 0; +#X connect 20 0 7 0; +#X connect 21 0 15 0; +#X connect 22 0 4 0; +#X connect 23 0 5 0; diff --git a/xgui/doc/Kroonde/range.pd b/xgui/doc/Kroonde/range.pd new file mode 100644 index 00000000..822e3141 --- /dev/null +++ b/xgui/doc/Kroonde/range.pd @@ -0,0 +1,43 @@ +#N canvas 0 0 281 385 12; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 125 218 /; +#X obj 125 170 t b f; +#X obj 154 264 *; +#X obj 186 306 +; +#X obj 154 77 t b f f; +#X obj 154 143 t b f; +#X obj 186 337 outlet; +#X obj 63 76 t f f; +#X connect 0 0 9 0; +#X connect 1 0 17 0; +#X connect 2 0 6 0; +#X connect 3 0 14 0; +#X connect 4 0 7 0; +#X connect 5 0 11 0; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 15 0; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 9 1 8 1; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 11 1 10 1; +#X connect 12 0 13 0; +#X connect 13 0 16 0; +#X connect 14 0 7 0; +#X connect 14 1 7 1; +#X connect 14 2 13 1; +#X connect 15 0 12 0; +#X connect 15 1 12 1; +#X connect 17 0 8 0; +#X connect 17 1 5 0; diff --git a/xgui/doc/Kroonde/stom.pd b/xgui/doc/Kroonde/stom.pd new file mode 100644 index 00000000..ef33f397 --- /dev/null +++ b/xgui/doc/Kroonde/stom.pd @@ -0,0 +1,6 @@ +#N canvas 0 0 96 133 12; +#X obj 19 17 inlet; +#X obj 19 45 >> 3; +#X obj 19 74 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; diff --git a/xgui/doc/Kroonde/tst.pd b/xgui/doc/Kroonde/tst.pd new file mode 100644 index 00000000..91e4bb0b --- /dev/null +++ b/xgui/doc/Kroonde/tst.pd @@ -0,0 +1,18 @@ +#N canvas 0 0 452 302 12; +#X obj 155 143 calibration; +#X obj 109 75 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 258 44 5 0 0; +#X obj 265 98 change; +#X floatatom 151 191 5 0 0; +#X msg 330 2 2; +#X obj 223 196 bang; +#X obj 224 226 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X connect 0 0 4 0; +#X connect 0 0 6 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 3 0 0 1; +#X connect 5 0 3 0; +#X connect 6 0 7 0; diff --git a/xgui/doc/direct_test.pd b/xgui/doc/direct_test.pd new file mode 100644 index 00000000..d5124e51 --- /dev/null +++ b/xgui/doc/direct_test.pd @@ -0,0 +1,18 @@ +#N canvas 410 111 454 304 12; +#X obj 9 205 netsend; +#X msg 9 7 connect localhost 4877; +#X floatatom 8 235 5 0 0; +#X msg 9 34 disconnect; +#X msg 110 35 send pd/ ~/ add_canvas my_canvas; +#X msg 110 62 send pd/ ~/my_canvas add_seg my_seg; +#X msg 110 90 send pd/ ~/my_canvas/my_seg move 2 2; +#X msg 132 145 send pd/ ~/my_canvas/my_seg width \$1; +#X floatatom 132 119 5 0 0; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; diff --git a/xgui/doc/help-send2.pd b/xgui/doc/help-send2.pd new file mode 100644 index 00000000..c7d11764 --- /dev/null +++ b/xgui/doc/help-send2.pd @@ -0,0 +1,18 @@ +#N canvas 416 250 458 308 12; +#X obj 216 222 receive bla; +#X obj 321 222 receive foo; +#X obj 216 250 print bla; +#X obj 321 250 print foo; +#X msg 32 104 bla 17.3 23; +#X msg 76 183 foo 13 \, bla 4; +#X text 148 75 use message: ; +#X text 253 91 with data of any type; +#X text 89 26 written by Olaf Matthes ; +#X msg 61 147 foo five is 2 more than 3; +#X text 9 9 send2 :: send data to any receive object; +#X obj 32 224 send2; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 4 0 11 0; +#X connect 5 0 11 0; +#X connect 9 0 11 0; diff --git a/xgui/doc/help_atom.pd b/xgui/doc/help_atom.pd new file mode 100644 index 00000000..06632186 --- /dev/null +++ b/xgui/doc/help_atom.pd @@ -0,0 +1,11 @@ +#N canvas 356 218 450 300 10; +#X msg 34 29 move 2 3; +#X obj 42 132 print; +#X msg 53 53 ?coord; +#X text 325 257 dh20020401; +#X msg 15 8 !coord 10 10; +#X obj 42 107 atom my_first_atom 10 10; +#X connect 0 0 5 0; +#X connect 2 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; diff --git a/xgui/doc/help_convert.pd b/xgui/doc/help_convert.pd new file mode 100644 index 00000000..efee35c4 --- /dev/null +++ b/xgui/doc/help_convert.pd @@ -0,0 +1,8 @@ +#N canvas 494 512 450 300 12; +#X obj 78 114 convert truc bidule; +#X text 16 12 help_convert; +#X obj 78 142 print; +#X msg 78 87 truc 1 2 3; +#X text 322 256 dh20020401; +#X connect 0 0 2 0; +#X connect 3 0 0 0; diff --git a/xgui/doc/help_damping.pd b/xgui/doc/help_damping.pd new file mode 100644 index 00000000..2cd0dc3c --- /dev/null +++ b/xgui/doc/help_damping.pd @@ -0,0 +1,15 @@ +#N canvas 333 240 450 300 10; +#X text 19 11 help damping; +#X msg 62 64 !c 10; +#X msg 62 86 !c 1; +#X obj 49 132 damping my_first_damping 10; +#X obj 45 164 print; +#X msg 109 90 ?c; +#X msg 156 78 ?force; +#X msg 239 60 mass 0 0 10 10; +#X connect 1 0 3 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 3 1; diff --git a/xgui/doc/help_mass.pd b/xgui/doc/help_mass.pd new file mode 100644 index 00000000..9196b5f6 --- /dev/null +++ b/xgui/doc/help_mass.pd @@ -0,0 +1,14 @@ +#N canvas 356 487 450 300 10; +#X obj 90 138 mass 1 10 10 7; +#X msg 39 42 !mass 2; +#X msg 58 64 ?mass; +#X obj 90 163 print; +#X msg 119 39 !coord 10 10; +#X msg 124 61 ?coord; +#X msg 128 86 move 1 1; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; diff --git a/xgui/doc/help_object_arc.pd b/xgui/doc/help_object_arc.pd new file mode 100644 index 00000000..d8ebbe34 --- /dev/null +++ b/xgui/doc/help_object_arc.pd @@ -0,0 +1,75 @@ +#N canvas 361 147 573 502 10; +#X msg 130 65 hide; +#X msg 19 200 hide; +#X obj 9 29 t b b b; +#X obj 9 7 loadbang; +#X msg 10 65 show \, size 150 150; +#X text 426 344 dh20020426; +#X floatatom 370 146 5 0 0; +#X floatatom 424 146 5 0 0; +#X obj 9 429 print from_arc; +#X msg 213 143 start \$1; +#X floatatom 200 99 5 0 0; +#X msg 156 145 angle \$1; +#X msg 200 54 add 1 \, bang; +#X msg 200 9 bang; +#X obj 200 31 metro 10; +#X obj 212 121 * 2; +#X msg 193 277 style arc; +#X msg 193 298 style chord; +#X msg 92 222 border green; +#X msg 193 319 style pieslice; +#X floatatom 90 246 5 0 0; +#X msg 87 271 width \$1; +#X obj 200 76 number \$0-c1 0; +#X obj 10 87 canvas */c3; +#X msg 343 26 do */c3 add_arc a1; +#X obj 343 345 s to_node; +#X obj 9 406 arc a1 */c3/a1; +#X msg 9 174 show \, color black \, coord 20 20 130 130; +#X msg 343 70 do */c3/a1 coord 20 20 30 30; +#X msg 343 48 do */c3/a1 move 1 1; +#X msg 343 92 do */c3/a1 color blue; +#X msg 343 116 do */c3/a1 border red; +#X msg 343 170 do */c3/a1 start \$1; +#X msg 343 194 do */c3/a1 angle \$1; +#X msg 343 220 do */c3/a1 style arc; +#X msg 343 244 do */c3/a1 style chord; +#X msg 343 267 do */c3/a1 c3 a1 style pieslice; +#X msg 343 312 do */c3 del a1; +#X connect 0 0 23 0; +#X connect 1 0 26 0; +#X connect 2 0 27 0; +#X connect 2 2 4 0; +#X connect 3 0 2 0; +#X connect 4 0 23 0; +#X connect 6 0 32 0; +#X connect 7 0 33 0; +#X connect 9 0 26 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 11 0 26 0; +#X connect 12 0 22 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 9 0; +#X connect 16 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 26 0; +#X connect 19 0 26 0; +#X connect 20 0 21 0; +#X connect 21 0 26 0; +#X connect 22 0 10 0; +#X connect 24 0 25 0; +#X connect 26 0 8 0; +#X connect 27 0 26 0; +#X connect 28 0 25 0; +#X connect 29 0 25 0; +#X connect 30 0 25 0; +#X connect 31 0 25 0; +#X connect 32 0 25 0; +#X connect 33 0 25 0; +#X connect 34 0 25 0; +#X connect 35 0 25 0; +#X connect 36 0 25 0; +#X connect 37 0 25 0; diff --git a/xgui/doc/help_object_rect.pd b/xgui/doc/help_object_rect.pd new file mode 100644 index 00000000..575c2269 --- /dev/null +++ b/xgui/doc/help_object_rect.pd @@ -0,0 +1,51 @@ +#N canvas 336 286 557 374 10; +#X msg 130 65 hide; +#X msg 19 200 hide; +#X obj 41 289 move; +#X obj 9 29 t b b b; +#X obj 9 7 loadbang; +#X obj 358 311 s to_seg; +#X msg 10 65 show \, size 150 150; +#X text 441 310 dh20020425; +#X obj 76 290 light_over; +#X msg 358 125 send c2 add_rect r1 10 10 20 20; +#X msg 358 191 send c2 r1 color blue; +#X msg 358 169 send c2 r1 coord 20 20 30 30; +#X msg 358 147 send c2 r1 move 1 1; +#X msg 358 260 send c2 del r1; +#X msg 358 215 send c2 r1 border red; +#X obj 10 311 print from_rect; +#X msg 92 222 border red; +#X msg 9 174 show \, color black; +#X msg 92 244 width 1; +#X msg 210 163 show; +#X obj 10 87 canvas */c2; +#X obj 10 269 rect r1 */c2/r1; +#X obj 220 225 print; +#X msg 244 162 hide; +#X obj 131 117 print c3; +#X obj 209 187 i-rect */c2; +#X connect 0 0 20 0; +#X connect 1 0 21 0; +#X connect 2 0 21 0; +#X connect 3 0 17 0; +#X connect 3 2 6 0; +#X connect 4 0 3 0; +#X connect 6 0 20 0; +#X connect 8 0 21 0; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 5 0; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 14 0 5 0; +#X connect 16 0 21 0; +#X connect 17 0 21 0; +#X connect 18 0 21 0; +#X connect 19 0 25 0; +#X connect 20 0 24 0; +#X connect 21 0 15 0; +#X connect 21 0 2 0; +#X connect 21 0 8 0; +#X connect 23 0 25 0; +#X connect 25 0 22 0; diff --git a/xgui/doc/help_object_text.pd b/xgui/doc/help_object_text.pd new file mode 100644 index 00000000..352f36e3 --- /dev/null +++ b/xgui/doc/help_object_text.pd @@ -0,0 +1,78 @@ +#N canvas 305 23 561 378 10; +#X msg 142 68 hide; +#X obj 10 311 print from_text; +#X floatatom 20 239 5 0 0; +#X msg 481 46 hide; +#X obj 274 91 move; +#X obj 9 29 t b b b; +#X obj 9 7 loadbang; +#X floatatom 367 283 5 0 0; +#X msg 274 46 show \, width 10 \, coord 10 10 10 10; +#X msg 10 65 show \, size 150 150; +#X msg 86 111 coord \$1 \$2 \$1 \$2; +#X obj 274 112 coord2xy; +#X obj 109 311 print from_text; +#X floatatom 122 243 5 0 0; +#X text 441 335 dh20020425; +#X obj 410 91 light_over; +#X obj 307 91 width_over 10 13; +#X msg 20 261 text \$1; +#X msg 122 265 text \$1; +#X obj 10 288 text t1 */c1/t1; +#X obj 10 87 canvas */c1; +#X obj 274 68 seg s1 */c1/s1; +#X obj 110 289 text t2 */c1/t2; +#X msg 9 174 show \, color red \, anchor se \, pos 120 145 \, text +0; +#X msg 21 201 show \, color red \, anchor se \, pos 145 145 \, text +0; +#X msg 367 305 do */c1/t1 text \$1; +#X msg 358 147 do */c1/t1 move 1 1; +#X msg 358 169 do */c1/t1 pos 10 10; +#X msg 358 191 do */c1/t1 color blue; +#X msg 358 237 do */c1/t1 anchor ne; +#X obj 358 336 s to_node; +#X msg 358 125 do */c1 add_text t1; +#X msg 358 214 do */c1 del t1; +#X obj 86 89 route click drag; +#X msg 131 137 move \$1 \$2; +#X connect 0 0 20 0; +#X connect 2 0 17 0; +#X connect 3 0 21 0; +#X connect 4 0 21 0; +#X connect 5 0 23 0; +#X connect 5 0 24 0; +#X connect 5 1 8 0; +#X connect 5 2 9 0; +#X connect 6 0 5 0; +#X connect 7 0 25 0; +#X connect 7 0 25 0; +#X connect 8 0 21 0; +#X connect 9 0 20 0; +#X connect 10 0 21 0; +#X connect 10 0 11 0; +#X connect 11 0 2 0; +#X connect 11 1 13 0; +#X connect 13 0 18 0; +#X connect 15 0 21 0; +#X connect 16 0 21 0; +#X connect 17 0 19 0; +#X connect 18 0 22 0; +#X connect 19 0 1 0; +#X connect 20 0 33 0; +#X connect 21 0 4 0; +#X connect 21 0 11 0; +#X connect 21 0 15 0; +#X connect 21 0 16 0; +#X connect 22 0 12 0; +#X connect 23 0 19 0; +#X connect 24 0 22 0; +#X connect 25 0 30 0; +#X connect 26 0 30 0; +#X connect 27 0 30 0; +#X connect 28 0 30 0; +#X connect 29 0 30 0; +#X connect 31 0 30 0; +#X connect 32 0 30 0; +#X connect 33 0 10 0; +#X connect 33 1 34 0; diff --git a/xgui/doc/help_spring.pd b/xgui/doc/help_spring.pd new file mode 100644 index 00000000..3d9c6077 --- /dev/null +++ b/xgui/doc/help_spring.pd @@ -0,0 +1,34 @@ +#N canvas 300 301 671 472 10; +#X msg 40 26 ?l; +#X msg 189 20 ?k; +#X msg 72 27 !l 50; +#X msg 73 48 !l 100; +#X msg 41 49 l; +#X msg 222 26 ?force1; +#X msg 224 50 ?force2; +#X msg 139 48 !k 50; +#X msg 141 25 !k 1; +#X obj 423 221 print s2; +#X obj 289 225 print s1; +#X msg 438 110 mass 30 30; +#X msg 289 109 mass 20 30; +#X obj 151 215 print spring; +#X msg 298 135 mass 30 30; +#X msg 438 134 mass 20 30; +#X msg 438 86 mass 40 30; +#X obj 153 185 spring my_first_spring 1 100 10 10 20 20; +#X connect 0 0 17 0; +#X connect 1 0 17 0; +#X connect 2 0 17 0; +#X connect 3 0 17 0; +#X connect 4 0 17 0; +#X connect 5 0 17 0; +#X connect 6 0 17 0; +#X connect 7 0 17 0; +#X connect 8 0 17 0; +#X connect 11 0 17 2; +#X connect 12 0 17 1; +#X connect 14 0 17 1; +#X connect 15 0 17 2; +#X connect 16 0 17 2; +#X connect 17 0 13 0; diff --git a/xgui/doc/help_valueinit.pd b/xgui/doc/help_valueinit.pd new file mode 100644 index 00000000..0bbb9d39 --- /dev/null +++ b/xgui/doc/help_valueinit.pd @@ -0,0 +1,8 @@ +#N canvas 472 575 450 300 12; +#X obj 59 146 value test; +#X obj 40 40 valueinit test 10; +#X msg 60 117 bang; +#X obj 53 180 print; +#X text 180 189 comment; +#X connect 0 0 3 0; +#X connect 2 0 0 0; diff --git a/xgui/doc/help_vector.pd b/xgui/doc/help_vector.pd new file mode 100644 index 00000000..6ad1ae02 --- /dev/null +++ b/xgui/doc/help_vector.pd @@ -0,0 +1,34 @@ +#N canvas 380 381 745 410 10; +#X text 419 209 dh20020402; +#X msg 15 8 !xy 10 10; +#X msg 103 51 add 0 1; +#X msg 101 29 add 1 0; +#X msg 38 38 ?xy; +#X msg 223 7 !xy 10 10; +#X msg 311 50 add 0 1; +#X msg 309 28 add 1 0; +#X msg 246 37 ?xy; +#X text 22 170 same name => same object !!!!; +#X text 22 208 but be aware to have the same init value !!!; +#X obj 42 132 print a; +#X obj 250 131 print b; +#X obj 250 106 vector my_first_vector 10 10; +#X obj 42 107 vector my_first_vector 10 10; +#X msg 386 10 substract 1 1; +#X msg 410 47 ?abs; +#X msg 519 45 !abs 1; +#X msg 518 69 !abs 10; +#X connect 1 0 14 0; +#X connect 2 0 14 0; +#X connect 3 0 14 0; +#X connect 4 0 14 0; +#X connect 5 0 13 0; +#X connect 6 0 13 0; +#X connect 7 0 13 0; +#X connect 8 0 13 0; +#X connect 13 0 12 0; +#X connect 14 0 11 0; +#X connect 15 0 13 0; +#X connect 16 0 13 0; +#X connect 17 0 13 0; +#X connect 18 0 13 0; diff --git a/xgui/doc/sound/09_more_physics3.pd b/xgui/doc/sound/09_more_physics3.pd new file mode 100644 index 00000000..d12a12d3 --- /dev/null +++ b/xgui/doc/sound/09_more_physics3.pd @@ -0,0 +1,217 @@ +#N canvas 325 6 668 671 12; +#X msg 466 13 show; +#X obj 7 37 loadbang; +#X obj 33 75 t b b b b; +#X msg 218 9 on; +#X msg 220 87 xy1 \$1 \$2; +#X msg 324 86 xy2 \$1 \$2; +#X text 52 202 dh20020404; +#X msg 230 168 xy1 \$1 \$2; +#X msg 326 168 xy2 \$1 \$2; +#X msg 221 406 xy1 \$1 \$2; +#X msg 314 404 xy2 \$1 \$2; +#X obj 470 91 seg l1 */my_string/l1; +#X obj 475 168 seg l2 */my_string/l2; +#X msg 216 490 xy1 \$1 \$2; +#X msg 317 490 xy2 \$1 \$2; +#X msg 209 573 xy1 \$1 \$2; +#X msg 315 572 xy2 \$1 \$2; +#X obj 477 50 seg m1 */my_string/m1; +#X msg 219 245 xy1 \$1 \$2; +#X msg 317 242 xy2 \$1 \$2; +#X obj 463 254 seg l3 */my_string/l3; +#X msg 220 320 xy1 \$1 \$2; +#X msg 321 321 xy2 \$1 \$2; +#X obj 458 337 seg l4 */my_string/l4; +#X obj 340 757 seg m2 */my_string/m2; +#X obj 452 420 seg l5 */my_string/l5; +#X obj 455 508 seg l6 */my_string/l6; +#X obj 571 14 light_over; +#X msg 515 13 raise; +#X msg 212 653 xy1 \$1 \$2; +#X msg 318 652 xy2 \$1 \$2; +#X msg 102 771 xy1 \$1 \$2; +#X msg 208 770 xy2 \$1 \$2; +#X obj 458 588 seg l7 */my_string/l7; +#X obj 450 666 seg l8 */my_string/l8; +#X msg 506 -9 width 30; +#X msg 30 662 width 10; +#X text 60 224 dh20020405; +#X text 24 9 a nice string...; +#X obj 102 745 mass m9 50 250 100 0 0; +#X obj 230 142 mass m2 1 250 240 0 0; +#X obj 219 219 mass m3 1 250 220 0 0; +#X obj 220 294 mass m4 1 250 200 0 0; +#X obj 221 380 mass m5 1 250 180 0 0; +#X obj 210 465 mass m6 1 250 160 0 0; +#X obj 209 547 mass m7 1 250 140 0 0; +#X obj 212 627 mass m8 1 250 120 0 0; +#X obj 237 36 force f1 0 10000; +#X obj 164 720 damping d9 3000; +#X obj 330 779 spring sl 5000 0 250 250 250 100; +#X obj 450 692 spring s9 1000 20; +#X obj 458 614 spring s8 1000 20; +#X obj 455 534 spring s6 1000 20; +#X obj 452 446 spring s5 1000 20; +#X obj 458 363 spring s4 1000 20; +#X obj 463 280 spring s3 1000 20; +#X obj 461 195 spring s2 1000 20; +#X obj 470 118 spring s1 1000 20; +#X obj 282 13 damping d1 10; +#X obj 291 121 damping d2 10; +#X obj 281 195 damping d3 10; +#X obj 285 270 damping d4 10; +#X obj 282 356 damping d5 10; +#X obj 285 438 damping d6 10; +#X obj 271 522 damping d7 10; +#X obj 274 602 damping d8 10; +#X text 21 -11 This example is running OK on a PIII 800; +#X msg 51 101 show \, size 500 800; +#X msg 70 125 color white; +#X obj 53 156 canvas */my_string; +#X obj 85 267 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 12700 1; +#X obj 22 581 -; +#X obj 43 544 t f f; +#X obj 40 328 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 20 469 -; +#X obj 41 432 t f f; +#X msg 24 512 drag \$1 0; +#X msg 26 624 drag 0 \$1; +#X obj 219 61 mass m1 2 250 260 0 0; +#X connect 0 0 12 0; +#X connect 0 0 17 0; +#X connect 0 0 11 0; +#X connect 0 0 24 0; +#X connect 0 0 20 0; +#X connect 0 0 23 0; +#X connect 0 0 25 0; +#X connect 0 0 26 0; +#X connect 0 0 33 0; +#X connect 0 0 34 0; +#X connect 1 0 2 0; +#X connect 2 0 35 0; +#X connect 2 0 28 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 68 0; +#X connect 2 3 67 0; +#X connect 3 0 39 0; +#X connect 3 0 40 0; +#X connect 3 0 41 0; +#X connect 3 0 42 0; +#X connect 3 0 43 0; +#X connect 3 0 44 0; +#X connect 3 0 45 0; +#X connect 3 0 46 0; +#X connect 3 0 78 0; +#X connect 4 0 11 0; +#X connect 4 0 17 0; +#X connect 5 0 17 0; +#X connect 7 0 12 0; +#X connect 8 0 11 0; +#X connect 9 0 25 0; +#X connect 10 0 23 0; +#X connect 13 0 26 0; +#X connect 14 0 25 0; +#X connect 15 0 33 0; +#X connect 16 0 26 0; +#X connect 17 0 27 0; +#X connect 18 0 20 0; +#X connect 19 0 12 0; +#X connect 21 0 23 0; +#X connect 22 0 20 0; +#X connect 27 0 17 0; +#X connect 28 0 17 0; +#X connect 29 0 34 0; +#X connect 30 0 33 0; +#X connect 31 0 24 0; +#X connect 32 0 34 0; +#X connect 32 0 24 0; +#X connect 35 0 17 0; +#X connect 36 0 24 0; +#X connect 39 1 31 0; +#X connect 39 1 32 0; +#X connect 39 1 48 1; +#X connect 39 1 49 1; +#X connect 39 1 50 2; +#X connect 40 1 7 0; +#X connect 40 1 8 0; +#X connect 40 1 56 1; +#X connect 40 1 57 2; +#X connect 40 1 59 1; +#X connect 41 1 18 0; +#X connect 41 1 19 0; +#X connect 41 1 55 1; +#X connect 41 1 56 2; +#X connect 41 1 60 1; +#X connect 42 1 21 0; +#X connect 42 1 22 0; +#X connect 42 1 54 1; +#X connect 42 1 55 2; +#X connect 42 1 61 1; +#X connect 43 1 9 0; +#X connect 43 1 10 0; +#X connect 43 1 53 1; +#X connect 43 1 54 2; +#X connect 43 1 62 1; +#X connect 44 1 13 0; +#X connect 44 1 14 0; +#X connect 44 1 52 1; +#X connect 44 1 53 2; +#X connect 44 1 63 1; +#X connect 45 1 15 0; +#X connect 45 1 16 0; +#X connect 45 1 51 1; +#X connect 45 1 52 2; +#X connect 45 1 64 1; +#X connect 46 1 29 0; +#X connect 46 1 30 0; +#X connect 46 1 50 1; +#X connect 46 1 51 2; +#X connect 46 1 65 1; +#X connect 47 1 78 1; +#X connect 48 1 39 1; +#X connect 49 1 39 1; +#X connect 50 1 46 1; +#X connect 50 2 39 1; +#X connect 51 1 45 1; +#X connect 51 2 46 1; +#X connect 52 1 44 1; +#X connect 52 2 45 1; +#X connect 53 1 43 1; +#X connect 53 2 44 1; +#X connect 54 1 42 1; +#X connect 54 2 43 1; +#X connect 55 1 41 1; +#X connect 55 2 42 1; +#X connect 56 1 40 1; +#X connect 56 2 41 1; +#X connect 57 1 78 1; +#X connect 57 2 40 1; +#X connect 57 2 40 1; +#X connect 58 1 78 1; +#X connect 59 1 40 1; +#X connect 60 1 41 1; +#X connect 61 1 42 1; +#X connect 62 1 43 1; +#X connect 63 1 44 1; +#X connect 64 1 45 1; +#X connect 65 1 46 1; +#X connect 67 0 69 0; +#X connect 68 0 69 0; +#X connect 70 0 72 0; +#X connect 71 0 77 0; +#X connect 72 0 71 1; +#X connect 72 1 71 0; +#X connect 73 0 75 0; +#X connect 74 0 76 0; +#X connect 75 0 74 1; +#X connect 75 1 74 0; +#X connect 76 0 39 0; +#X connect 77 0 39 0; +#X connect 78 1 4 0; +#X connect 78 1 5 0; +#X connect 78 1 57 1; +#X connect 78 1 58 1; diff --git a/xgui/doc/sound/09_more_physics4.pd b/xgui/doc/sound/09_more_physics4.pd new file mode 100644 index 00000000..c037e56c --- /dev/null +++ b/xgui/doc/sound/09_more_physics4.pd @@ -0,0 +1,219 @@ +#N canvas 325 6 670 673 12; +#X msg 466 13 show; +#X obj 7 37 loadbang; +#X obj 33 75 t b b b b; +#X msg 218 9 on; +#X msg 220 87 xy1 \$1 \$2; +#X msg 324 86 xy2 \$1 \$2; +#X text 52 202 dh20020404; +#X msg 230 168 xy1 \$1 \$2; +#X msg 326 168 xy2 \$1 \$2; +#X msg 221 406 xy1 \$1 \$2; +#X msg 314 404 xy2 \$1 \$2; +#X msg 216 490 xy1 \$1 \$2; +#X msg 317 490 xy2 \$1 \$2; +#X msg 209 573 xy1 \$1 \$2; +#X msg 315 572 xy2 \$1 \$2; +#X msg 219 245 xy1 \$1 \$2; +#X msg 317 242 xy2 \$1 \$2; +#X msg 220 320 xy1 \$1 \$2; +#X msg 321 321 xy2 \$1 \$2; +#X obj 571 14 light_over; +#X msg 515 13 raise; +#X msg 212 653 xy1 \$1 \$2; +#X msg 318 652 xy2 \$1 \$2; +#X msg 102 771 xy1 \$1 \$2; +#X msg 208 770 xy2 \$1 \$2; +#X msg 506 -9 width 30; +#X msg 335 727 width 10; +#X text 60 224 dh20020405; +#X text 24 9 a nice string...; +#X text 21 -11 This example is running OK on a PIII 800; +#X msg 51 101 show \, size 500 800; +#X msg 70 125 color white; +#X obj 53 156 canvas */my_string; +#X obj 85 267 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 9400 1; +#X obj 22 581 -; +#X obj 43 544 t f f; +#X obj 40 328 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 800 1; +#X obj 20 469 -; +#X obj 41 432 t f f; +#X msg 24 512 drag \$1 0; +#X msg 26 624 drag 0 \$1; +#X obj 13 697 loadbang; +#X obj 282 13 damping \$0d1 10; +#X obj 237 36 force \$0f1 0 10000; +#X obj 219 61 mass \$0m1 2 250 260 0 0; +#X obj 291 121 damping \$0d2 10; +#X obj 230 142 mass \$0m2 1 250 240 0 0; +#X obj 281 195 damping \$0d3 10; +#X obj 219 219 mass \$0m3 1 250 220 0 0; +#X obj 285 270 damping \$0d4 10; +#X obj 220 294 mass \$0m4 1 250 200 0 0; +#X obj 282 356 damping \$0d5 10; +#X obj 221 380 mass \$0m5 1 250 180 0 0; +#X obj 285 438 damping \$0d6 10; +#X obj 210 465 mass \$0m6 1 250 160 0 0; +#X obj 271 522 damping \$0d7 10; +#X obj 209 547 mass \$0m7 1 250 140 0 0; +#X obj 274 602 damping \$0d8 10; +#X obj 212 627 mass \$0m8 1 250 120 0 0; +#X obj 477 50 seg \$0m1 */my_string/m1; +#X obj 470 91 seg \$0l1 */my_string/l1; +#X obj 470 118 spring \$0s1 1000 20; +#X obj 475 168 seg \$0l2 */my_string/l2; +#X obj 461 195 spring \$0s2 1000 20; +#X obj 463 254 seg \$0l3 */my_string/l3; +#X obj 463 280 spring \$0s3 1000 20; +#X obj 458 337 seg \$0l4 */my_string/l4; +#X obj 458 363 spring \$0s4 1000 20; +#X obj 452 420 seg \$0l5 */my_string/l5; +#X obj 452 446 spring \$0s5 1000 20; +#X obj 455 508 seg \$0l6 */my_string/l6; +#X obj 455 534 spring \$0s6 1000 20; +#X obj 458 588 seg \$0l7 */my_string/l7; +#X obj 458 614 spring \$0s8 1000 20; +#X obj 450 666 seg \$0l8 */my_string/l8; +#X obj 450 692 spring \$0s9 1000 20; +#X obj 340 757 seg \$0m2 */my_string/m2; +#X obj 330 779 spring \$0sl 5000 0 250 250 250 100; +#X obj 102 745 mass \$0m9 50 250 100 0 0; +#X obj 164 720 damping \$0d9 3000; +#X connect 0 0 59 0; +#X connect 0 0 60 0; +#X connect 0 0 62 0; +#X connect 0 0 64 0; +#X connect 0 0 66 0; +#X connect 0 0 68 0; +#X connect 0 0 70 0; +#X connect 0 0 72 0; +#X connect 0 0 74 0; +#X connect 0 0 76 0; +#X connect 1 0 2 0; +#X connect 2 0 25 0; +#X connect 2 0 20 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 31 0; +#X connect 2 3 30 0; +#X connect 3 0 44 0; +#X connect 3 0 46 0; +#X connect 3 0 48 0; +#X connect 3 0 50 0; +#X connect 3 0 52 0; +#X connect 3 0 54 0; +#X connect 3 0 56 0; +#X connect 3 0 58 0; +#X connect 3 0 78 0; +#X connect 4 0 59 0; +#X connect 4 0 60 0; +#X connect 5 0 59 0; +#X connect 7 0 62 0; +#X connect 8 0 60 0; +#X connect 9 0 68 0; +#X connect 10 0 66 0; +#X connect 11 0 70 0; +#X connect 12 0 68 0; +#X connect 13 0 72 0; +#X connect 14 0 70 0; +#X connect 15 0 64 0; +#X connect 16 0 62 0; +#X connect 17 0 66 0; +#X connect 18 0 64 0; +#X connect 19 0 59 0; +#X connect 20 0 59 0; +#X connect 21 0 74 0; +#X connect 22 0 72 0; +#X connect 23 0 76 0; +#X connect 24 0 74 0; +#X connect 24 0 76 0; +#X connect 25 0 59 0; +#X connect 26 0 76 0; +#X connect 30 0 32 0; +#X connect 31 0 32 0; +#X connect 33 0 35 0; +#X connect 34 0 40 0; +#X connect 35 0 34 1; +#X connect 35 1 34 0; +#X connect 36 0 38 0; +#X connect 37 0 39 0; +#X connect 38 0 37 1; +#X connect 38 1 37 0; +#X connect 39 0 78 0; +#X connect 40 0 78 0; +#X connect 41 0 26 0; +#X connect 42 1 44 1; +#X connect 43 1 44 1; +#X connect 44 1 4 0; +#X connect 44 1 5 0; +#X connect 44 1 42 1; +#X connect 44 1 61 1; +#X connect 45 1 46 1; +#X connect 46 1 7 0; +#X connect 46 1 8 0; +#X connect 46 1 45 1; +#X connect 46 1 61 2; +#X connect 46 1 63 1; +#X connect 47 1 48 1; +#X connect 48 1 15 0; +#X connect 48 1 16 0; +#X connect 48 1 47 1; +#X connect 48 1 63 2; +#X connect 48 1 65 1; +#X connect 49 1 50 1; +#X connect 50 1 17 0; +#X connect 50 1 18 0; +#X connect 50 1 49 1; +#X connect 50 1 65 2; +#X connect 50 1 67 1; +#X connect 51 1 52 1; +#X connect 52 1 9 0; +#X connect 52 1 10 0; +#X connect 52 1 51 1; +#X connect 52 1 67 2; +#X connect 52 1 69 1; +#X connect 53 1 54 1; +#X connect 54 1 11 0; +#X connect 54 1 12 0; +#X connect 54 1 53 1; +#X connect 54 1 69 2; +#X connect 54 1 71 1; +#X connect 55 1 56 1; +#X connect 56 1 13 0; +#X connect 56 1 14 0; +#X connect 56 1 55 1; +#X connect 56 1 71 2; +#X connect 56 1 73 1; +#X connect 57 1 58 1; +#X connect 58 1 21 0; +#X connect 58 1 22 0; +#X connect 58 1 57 1; +#X connect 58 1 73 2; +#X connect 58 1 75 1; +#X connect 59 0 19 0; +#X connect 61 1 44 1; +#X connect 61 2 46 1; +#X connect 61 2 46 1; +#X connect 63 1 46 1; +#X connect 63 2 48 1; +#X connect 65 1 48 1; +#X connect 65 2 50 1; +#X connect 67 1 50 1; +#X connect 67 2 52 1; +#X connect 69 1 52 1; +#X connect 69 2 54 1; +#X connect 71 1 54 1; +#X connect 71 2 56 1; +#X connect 73 1 56 1; +#X connect 73 2 58 1; +#X connect 75 1 58 1; +#X connect 75 2 78 1; +#X connect 77 1 78 1; +#X connect 78 1 23 0; +#X connect 78 1 24 0; +#X connect 78 1 75 2; +#X connect 78 1 77 1; +#X connect 78 1 79 1; +#X connect 79 1 78 1; diff --git a/xgui/doc/sound/09_more_physics5.pd b/xgui/doc/sound/09_more_physics5.pd new file mode 100644 index 00000000..d4a6b392 --- /dev/null +++ b/xgui/doc/sound/09_more_physics5.pd @@ -0,0 +1,238 @@ +#N canvas 325 6 672 675 12; +#X msg 466 13 show; +#X obj 7 37 loadbang; +#X obj 33 75 t b b b b; +#X msg 218 9 on; +#X msg 220 87 xy1 \$1 \$2; +#X msg 324 86 xy2 \$1 \$2; +#X text 52 202 dh20020404; +#X msg 230 168 xy1 \$1 \$2; +#X msg 326 168 xy2 \$1 \$2; +#X msg 221 406 xy1 \$1 \$2; +#X msg 314 404 xy2 \$1 \$2; +#X msg 216 490 xy1 \$1 \$2; +#X msg 317 490 xy2 \$1 \$2; +#X msg 209 573 xy1 \$1 \$2; +#X msg 315 572 xy2 \$1 \$2; +#X msg 219 245 xy1 \$1 \$2; +#X msg 317 242 xy2 \$1 \$2; +#X msg 220 320 xy1 \$1 \$2; +#X msg 321 321 xy2 \$1 \$2; +#X msg 515 13 raise; +#X msg 212 653 xy1 \$1 \$2; +#X msg 318 652 xy2 \$1 \$2; +#X msg 102 771 xy1 \$1 \$2; +#X msg 208 770 xy2 \$1 \$2; +#X msg 506 -9 width 30; +#X msg 335 727 width 10; +#X text 60 224 dh20020405; +#X text 24 9 a nice string...; +#X text 21 -11 This example is running OK on a PIII 800; +#X msg 51 101 show \, size 500 800; +#X msg 70 125 color white; +#X obj 53 156 canvas */my_string; +#X obj 89 276 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7400 1; +#X obj 22 581 -; +#X obj 43 544 t f f; +#X obj 40 323 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 5000 1; +#X obj 20 469 -; +#X obj 41 432 t f f; +#X msg 24 512 drag \$1 0; +#X msg 26 624 drag 0 \$1; +#X obj 13 697 loadbang; +#X obj 282 13 damping \$0d1 10; +#X obj 237 36 force \$0f1 0 10000; +#X obj 219 61 mass \$0m1 2 250 260 0 0; +#X obj 291 121 damping \$0d2 10; +#X obj 230 142 mass \$0m2 1 250 240 0 0; +#X obj 281 195 damping \$0d3 10; +#X obj 219 219 mass \$0m3 1 250 220 0 0; +#X obj 285 270 damping \$0d4 10; +#X obj 220 294 mass \$0m4 1 250 200 0 0; +#X obj 282 356 damping \$0d5 10; +#X obj 221 380 mass \$0m5 1 250 180 0 0; +#X obj 285 438 damping \$0d6 10; +#X obj 210 465 mass \$0m6 1 250 160 0 0; +#X obj 271 522 damping \$0d7 10; +#X obj 209 547 mass \$0m7 1 250 140 0 0; +#X obj 277 599 damping \$0d8 10; +#X obj 212 627 mass \$0m8 1 250 120 0 0; +#X obj 477 50 seg \$0m1 */my_string/m1; +#X obj 470 91 seg \$0l1 */my_string/l1; +#X obj 470 118 spring \$0s1 1000 20; +#X obj 475 168 seg \$0l2 */my_string/l2; +#X obj 461 195 spring \$0s2 1000 20; +#X obj 463 254 seg \$0l3 */my_string/l3; +#X obj 463 280 spring \$0s3 1000 20; +#X obj 458 337 seg \$0l4 */my_string/l4; +#X obj 458 363 spring \$0s4 1000 20; +#X obj 452 420 seg \$0l5 */my_string/l5; +#X obj 452 446 spring \$0s5 1000 20; +#X obj 455 508 seg \$0l6 */my_string/l6; +#X obj 455 534 spring \$0s6 1000 20; +#X obj 458 588 seg \$0l7 */my_string/l7; +#X obj 458 614 spring \$0s8 1000 20; +#X obj 450 666 seg \$0l8 */my_string/l8; +#X obj 450 692 spring \$0s9 1000 20; +#X obj 340 757 seg \$0m2 */my_string/m2; +#X obj 330 779 spring \$0sl 5000 0 250 250 250 100; +#X obj 102 745 mass \$0m9 50 250 100 0 0; +#X obj 164 720 damping \$0d9 3000; +#X obj 154 391 s xy1; +#X obj 153 417 s xy2; +#X obj 153 447 s xy3; +#X obj 152 473 s xy4; +#X obj 153 498 s xy5; +#X obj 152 525 s xy6; +#X obj 150 554 s xy7; +#X obj 149 580 s xy8; +#X obj 150 605 s xy9; +#X obj 16 260 r x1; +#X obj 17 285 r y1; +#X connect 0 0 58 0; +#X connect 0 0 59 0; +#X connect 0 0 61 0; +#X connect 0 0 63 0; +#X connect 0 0 65 0; +#X connect 0 0 67 0; +#X connect 0 0 69 0; +#X connect 0 0 71 0; +#X connect 0 0 73 0; +#X connect 0 0 75 0; +#X connect 1 0 2 0; +#X connect 2 0 24 0; +#X connect 2 0 19 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 30 0; +#X connect 2 3 29 0; +#X connect 3 0 43 0; +#X connect 3 0 45 0; +#X connect 3 0 47 0; +#X connect 3 0 49 0; +#X connect 3 0 51 0; +#X connect 3 0 53 0; +#X connect 3 0 55 0; +#X connect 3 0 57 0; +#X connect 3 0 77 0; +#X connect 4 0 58 0; +#X connect 4 0 59 0; +#X connect 5 0 58 0; +#X connect 7 0 61 0; +#X connect 8 0 59 0; +#X connect 9 0 67 0; +#X connect 10 0 65 0; +#X connect 11 0 69 0; +#X connect 12 0 67 0; +#X connect 13 0 71 0; +#X connect 14 0 69 0; +#X connect 15 0 63 0; +#X connect 16 0 61 0; +#X connect 17 0 65 0; +#X connect 18 0 63 0; +#X connect 19 0 58 0; +#X connect 20 0 73 0; +#X connect 21 0 71 0; +#X connect 22 0 75 0; +#X connect 23 0 73 0; +#X connect 23 0 75 0; +#X connect 24 0 58 0; +#X connect 25 0 75 0; +#X connect 29 0 31 0; +#X connect 30 0 31 0; +#X connect 32 0 34 0; +#X connect 33 0 39 0; +#X connect 34 0 33 1; +#X connect 34 1 33 0; +#X connect 35 0 37 0; +#X connect 36 0 38 0; +#X connect 37 0 36 1; +#X connect 37 1 36 0; +#X connect 38 0 77 0; +#X connect 39 0 77 0; +#X connect 40 0 25 0; +#X connect 41 1 43 1; +#X connect 42 1 43 1; +#X connect 43 1 4 0; +#X connect 43 1 5 0; +#X connect 43 1 41 1; +#X connect 43 1 60 1; +#X connect 43 1 79 0; +#X connect 44 1 45 1; +#X connect 45 1 7 0; +#X connect 45 1 8 0; +#X connect 45 1 44 1; +#X connect 45 1 60 2; +#X connect 45 1 62 1; +#X connect 45 1 80 0; +#X connect 46 1 47 1; +#X connect 47 1 15 0; +#X connect 47 1 16 0; +#X connect 47 1 46 1; +#X connect 47 1 62 2; +#X connect 47 1 64 1; +#X connect 47 1 81 0; +#X connect 48 1 49 1; +#X connect 49 1 17 0; +#X connect 49 1 18 0; +#X connect 49 1 48 1; +#X connect 49 1 64 2; +#X connect 49 1 66 1; +#X connect 49 1 82 0; +#X connect 50 1 51 1; +#X connect 51 1 9 0; +#X connect 51 1 10 0; +#X connect 51 1 50 1; +#X connect 51 1 66 2; +#X connect 51 1 68 1; +#X connect 51 1 83 0; +#X connect 52 1 53 1; +#X connect 53 1 11 0; +#X connect 53 1 12 0; +#X connect 53 1 52 1; +#X connect 53 1 68 2; +#X connect 53 1 70 1; +#X connect 53 1 84 0; +#X connect 54 1 55 1; +#X connect 55 1 13 0; +#X connect 55 1 14 0; +#X connect 55 1 54 1; +#X connect 55 1 70 2; +#X connect 55 1 72 1; +#X connect 55 1 85 0; +#X connect 56 1 57 1; +#X connect 57 1 20 0; +#X connect 57 1 21 0; +#X connect 57 1 56 1; +#X connect 57 1 72 2; +#X connect 57 1 74 1; +#X connect 57 1 86 0; +#X connect 60 1 43 1; +#X connect 60 2 45 1; +#X connect 60 2 45 1; +#X connect 62 1 45 1; +#X connect 62 2 47 1; +#X connect 64 1 47 1; +#X connect 64 2 49 1; +#X connect 66 1 49 1; +#X connect 66 2 51 1; +#X connect 68 1 51 1; +#X connect 68 2 53 1; +#X connect 70 1 53 1; +#X connect 70 2 55 1; +#X connect 72 1 55 1; +#X connect 72 2 57 1; +#X connect 74 1 57 1; +#X connect 74 2 77 1; +#X connect 76 1 77 1; +#X connect 77 1 22 0; +#X connect 77 1 23 0; +#X connect 77 1 74 2; +#X connect 77 1 76 1; +#X connect 77 1 78 1; +#X connect 77 1 87 0; +#X connect 78 1 77 1; +#X connect 88 0 37 0; +#X connect 89 0 34 0; diff --git a/xgui/doc/sound/09_more_physics6.pd b/xgui/doc/sound/09_more_physics6.pd new file mode 100644 index 00000000..886038ac --- /dev/null +++ b/xgui/doc/sound/09_more_physics6.pd @@ -0,0 +1,462 @@ +#N canvas -39 6 1006 674 12; +#X msg 473 120 show; +#X obj 8 62 loadbang; +#X obj 34 100 t b b b b; +#X msg 207 73 on; +#X msg 242 127 xy1 \$1 \$2; +#X msg 346 126 xy2 \$1 \$2; +#X text 52 202 dh20020404; +#X msg 240 200 xy1 \$1 \$2; +#X msg 336 200 xy2 \$1 \$2; +#X msg 224 422 xy1 \$1 \$2; +#X msg 317 420 xy2 \$1 \$2; +#X msg 218 498 xy1 \$1 \$2; +#X msg 319 498 xy2 \$1 \$2; +#X msg 209 573 xy1 \$1 \$2; +#X msg 315 572 xy2 \$1 \$2; +#X msg 233 276 xy1 \$1 \$2; +#X msg 331 273 xy2 \$1 \$2; +#X msg 228 347 xy1 \$1 \$2; +#X msg 329 348 xy2 \$1 \$2; +#X msg 522 120 raise; +#X msg 212 653 xy1 \$1 \$2; +#X msg 318 652 xy2 \$1 \$2; +#X msg 106 732 xy1 \$1 \$2; +#X msg 212 731 xy2 \$1 \$2; +#X msg 585 119 width 30; +#X msg 339 688 width 10; +#X text 60 224 dh20020405; +#X msg 71 150 color white; +#X obj 54 181 canvas */my_string; +#X obj 89 276 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 5900 1; +#X obj 22 581 -; +#X obj 43 544 t f f; +#X obj 40 323 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 10800 1; +#X obj 20 469 -; +#X obj 41 432 t f f; +#X msg 24 512 drag \$1 0; +#X msg 26 624 drag 0 \$1; +#X obj 121 641 loadbang; +#X obj 304 53 damping \$0d1 10; +#X obj 259 76 force \$0f1 0 10000; +#X obj 241 101 mass \$0m1 2 250 260 0 0; +#X obj 301 153 damping \$0d2 10; +#X obj 240 174 mass \$0m2 1 250 240 0 0; +#X obj 295 226 damping \$0d3 10; +#X obj 233 250 mass \$0m3 1 250 220 0 0; +#X obj 293 297 damping \$0d4 10; +#X obj 228 321 mass \$0m4 1 250 200 0 0; +#X obj 285 372 damping \$0d5 10; +#X obj 224 396 mass \$0m5 1 250 180 0 0; +#X obj 287 446 damping \$0d6 10; +#X obj 212 473 mass \$0m6 1 250 160 0 0; +#X obj 271 522 damping \$0d7 10; +#X obj 209 547 mass \$0m7 1 250 140 0 0; +#X obj 277 599 damping \$0d8 10; +#X obj 212 627 mass \$0m8 1 250 120 0 0; +#X obj 476 152 seg \$0m1 */my_string/m1; +#X obj 472 191 seg \$0l1 */my_string/l1; +#X obj 472 218 spring \$0s1 1000 20; +#X obj 472 248 seg \$0l2 */my_string/l2; +#X obj 458 275 spring \$0s2 1000 20; +#X obj 455 313 seg \$0l3 */my_string/l3; +#X obj 455 339 spring \$0s3 1000 20; +#X obj 452 373 seg \$0l4 */my_string/l4; +#X obj 452 399 spring \$0s4 1000 20; +#X obj 454 428 seg \$0l5 */my_string/l5; +#X obj 454 454 spring \$0s5 1000 20; +#X obj 455 508 seg \$0l6 */my_string/l6; +#X obj 455 534 spring \$0s6 1000 20; +#X obj 458 588 seg \$0l7 */my_string/l7; +#X obj 458 614 spring \$0s8 1000 20; +#X obj 450 666 seg \$0l8 */my_string/l8; +#X obj 450 692 spring \$0s9 1000 20; +#X obj 344 718 seg \$0m2 */my_string/m2; +#X obj 334 740 spring \$0sl 5000 0 250 250 250 100; +#X obj 106 706 mass \$0m9 50 250 100 0 0; +#X obj 168 681 damping \$0d9 3000; +#X obj 154 391 s xy1; +#X obj 153 417 s xy2; +#X obj 153 447 s xy3; +#X obj 152 473 s xy4; +#X obj 153 498 s xy5; +#X obj 152 525 s xy6; +#X obj 150 554 s xy7; +#X obj 149 580 s xy8; +#X obj 150 605 s xy9; +#X obj 16 260 r x1; +#X obj 17 285 r y1; +#X msg 1138 109 show; +#X obj 673 51 loadbang; +#X obj 1137 40 t b b b b; +#X msg 872 62 on; +#X msg 907 116 xy1 \$1 \$2; +#X msg 1011 115 xy2 \$1 \$2; +#X msg 905 189 xy1 \$1 \$2; +#X msg 1001 189 xy2 \$1 \$2; +#X msg 889 411 xy1 \$1 \$2; +#X msg 982 409 xy2 \$1 \$2; +#X msg 883 487 xy1 \$1 \$2; +#X msg 984 487 xy2 \$1 \$2; +#X msg 874 562 xy1 \$1 \$2; +#X msg 980 561 xy2 \$1 \$2; +#X msg 898 265 xy1 \$1 \$2; +#X msg 996 262 xy2 \$1 \$2; +#X msg 893 336 xy1 \$1 \$2; +#X msg 994 337 xy2 \$1 \$2; +#X msg 1187 109 raise; +#X msg 877 642 xy1 \$1 \$2; +#X msg 983 641 xy2 \$1 \$2; +#X msg 771 721 xy1 \$1 \$2; +#X msg 877 720 xy2 \$1 \$2; +#X msg 1250 108 width 30; +#X msg 1004 677 width 10; +#X obj 761 262 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 200 1; +#X obj 687 570 -; +#X obj 708 533 t f f; +#X obj 705 312 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 7600 1; +#X obj 685 458 -; +#X obj 706 421 t f f; +#X msg 689 501 drag \$1 0; +#X msg 691 613 drag 0 \$1; +#X obj 786 630 loadbang; +#X obj 950 361 damping \$0d5 10; +#X obj 681 249 r x1; +#X obj 682 274 r y1; +#X obj 969 42 damping d1 10; +#X obj 924 65 force f1 0 10000; +#X obj 906 90 mass m1 2 350 260 0 0; +#X obj 966 144 damping d2 10; +#X obj 905 163 mass m2 1 350 240 0 0; +#X obj 960 215 damping d3 10; +#X obj 958 286 damping d4 10; +#X obj 898 239 mass m3 1 350 220 0 0; +#X obj 893 310 mass m4 1 350 200 0 0; +#X obj 889 385 mass m5 1 350 180 0 0; +#X obj 953 435 damping d6 10; +#X obj 936 511 damping d7 10; +#X obj 878 462 mass m6 1 350 160 0 0; +#X obj 875 536 mass m7 1 350 140 0 0; +#X obj 876 616 mass m8 1 350 120 0 0; +#X obj 833 670 damping d9 3000; +#X obj 771 695 mass m9 50 350 100 0 0; +#X obj 1115 681 spring s9 1000 20; +#X obj 1123 603 spring s8 1000 20; +#X obj 1120 527 spring s6 1000 20; +#X obj 1119 443 spring s5 1000 20; +#X obj 1120 328 spring s3 1000 20; +#X obj 1123 264 spring s2 1000 20; +#X obj 1136 207 spring s1 1000 20; +#X obj 1117 388 spring s4 1000 20; +#X obj 942 588 damping d8 10; +#X obj 819 380 s xy11; +#X obj 819 408 s xy12; +#X obj 819 438 s xy13; +#X obj 819 462 s xy14; +#X obj 819 488 s xy15; +#X obj 818 516 s xy16; +#X obj 817 544 s xy17; +#X obj 816 570 s xy18; +#X obj 816 594 s xy19; +#X obj 1141 141 seg m1 */my_string/1m1; +#X obj 1137 180 seg l1 */my_string/1l1; +#X obj 1124 236 seg l2 */my_string/1l2; +#X obj 1120 302 seg l3 */my_string/1l3; +#X obj 1117 362 seg l4 */my_string/1l4; +#X obj 1119 417 seg l5 */my_string/1l5; +#X obj 1119 499 seg l6 */my_string/1l6; +#X obj 1123 577 seg l7 */my_string/1l7; +#X obj 1120 656 seg l8 */my_string/1l8; +#X obj 1009 707 seg m2 */my_string/1m2; +#X msg 53 126 show \, size 500 1500; +#X obj 1001 731 spring sl 5000 0 250 250 700 100; +#X connect 0 0 55 0; +#X connect 0 0 56 0; +#X connect 0 0 58 0; +#X connect 0 0 60 0; +#X connect 0 0 62 0; +#X connect 0 0 64 0; +#X connect 0 0 66 0; +#X connect 0 0 68 0; +#X connect 0 0 70 0; +#X connect 0 0 72 0; +#X connect 1 0 2 0; +#X connect 2 0 24 0; +#X connect 2 0 19 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 27 0; +#X connect 2 3 169 0; +#X connect 3 0 40 0; +#X connect 3 0 42 0; +#X connect 3 0 44 0; +#X connect 3 0 46 0; +#X connect 3 0 48 0; +#X connect 3 0 50 0; +#X connect 3 0 52 0; +#X connect 3 0 54 0; +#X connect 3 0 74 0; +#X connect 4 0 55 0; +#X connect 4 0 56 0; +#X connect 5 0 55 0; +#X connect 7 0 58 0; +#X connect 8 0 56 0; +#X connect 9 0 64 0; +#X connect 10 0 62 0; +#X connect 11 0 66 0; +#X connect 12 0 64 0; +#X connect 13 0 68 0; +#X connect 14 0 66 0; +#X connect 15 0 60 0; +#X connect 16 0 58 0; +#X connect 17 0 62 0; +#X connect 18 0 60 0; +#X connect 19 0 55 0; +#X connect 20 0 70 0; +#X connect 21 0 68 0; +#X connect 22 0 72 0; +#X connect 23 0 70 0; +#X connect 23 0 72 0; +#X connect 24 0 55 0; +#X connect 25 0 72 0; +#X connect 27 0 28 0; +#X connect 29 0 31 0; +#X connect 30 0 36 0; +#X connect 31 0 30 1; +#X connect 31 1 30 0; +#X connect 32 0 34 0; +#X connect 33 0 35 0; +#X connect 34 0 33 1; +#X connect 34 1 33 0; +#X connect 35 0 74 0; +#X connect 36 0 74 0; +#X connect 37 0 25 0; +#X connect 38 1 40 1; +#X connect 39 1 40 1; +#X connect 40 1 4 0; +#X connect 40 1 5 0; +#X connect 40 1 38 1; +#X connect 40 1 57 1; +#X connect 40 1 76 0; +#X connect 41 1 42 1; +#X connect 42 1 7 0; +#X connect 42 1 8 0; +#X connect 42 1 41 1; +#X connect 42 1 57 2; +#X connect 42 1 59 1; +#X connect 42 1 77 0; +#X connect 43 1 44 1; +#X connect 44 1 15 0; +#X connect 44 1 16 0; +#X connect 44 1 43 1; +#X connect 44 1 59 2; +#X connect 44 1 61 1; +#X connect 44 1 78 0; +#X connect 45 1 46 1; +#X connect 46 1 17 0; +#X connect 46 1 18 0; +#X connect 46 1 45 1; +#X connect 46 1 61 2; +#X connect 46 1 63 1; +#X connect 46 1 79 0; +#X connect 47 1 48 1; +#X connect 48 1 9 0; +#X connect 48 1 10 0; +#X connect 48 1 47 1; +#X connect 48 1 63 2; +#X connect 48 1 65 1; +#X connect 48 1 80 0; +#X connect 49 1 50 1; +#X connect 50 1 11 0; +#X connect 50 1 12 0; +#X connect 50 1 49 1; +#X connect 50 1 65 2; +#X connect 50 1 67 1; +#X connect 50 1 81 0; +#X connect 51 1 52 1; +#X connect 52 1 13 0; +#X connect 52 1 14 0; +#X connect 52 1 51 1; +#X connect 52 1 67 2; +#X connect 52 1 69 1; +#X connect 52 1 82 0; +#X connect 53 1 54 1; +#X connect 54 1 20 0; +#X connect 54 1 21 0; +#X connect 54 1 53 1; +#X connect 54 1 69 2; +#X connect 54 1 71 1; +#X connect 54 1 83 0; +#X connect 57 1 40 1; +#X connect 57 2 42 1; +#X connect 57 2 42 1; +#X connect 59 1 42 1; +#X connect 59 2 44 1; +#X connect 61 1 44 1; +#X connect 61 2 46 1; +#X connect 63 1 46 1; +#X connect 63 2 48 1; +#X connect 65 1 48 1; +#X connect 65 2 50 1; +#X connect 67 1 50 1; +#X connect 67 2 52 1; +#X connect 69 1 52 1; +#X connect 69 2 54 1; +#X connect 71 1 54 1; +#X connect 71 2 74 1; +#X connect 73 1 74 1; +#X connect 74 1 22 0; +#X connect 74 1 23 0; +#X connect 74 1 71 2; +#X connect 74 1 73 1; +#X connect 74 1 75 1; +#X connect 74 1 84 0; +#X connect 75 1 74 1; +#X connect 85 0 34 0; +#X connect 86 0 31 0; +#X connect 87 0 159 0; +#X connect 87 0 160 0; +#X connect 87 0 161 0; +#X connect 87 0 162 0; +#X connect 87 0 163 0; +#X connect 87 0 164 0; +#X connect 87 0 165 0; +#X connect 87 0 166 0; +#X connect 87 0 167 0; +#X connect 87 0 168 0; +#X connect 88 0 89 0; +#X connect 89 0 110 0; +#X connect 89 0 105 0; +#X connect 89 0 90 0; +#X connect 89 1 87 0; +#X connect 90 0 126 0; +#X connect 90 0 128 0; +#X connect 90 0 131 0; +#X connect 90 0 132 0; +#X connect 90 0 133 0; +#X connect 90 0 136 0; +#X connect 90 0 137 0; +#X connect 90 0 138 0; +#X connect 90 0 140 0; +#X connect 91 0 159 0; +#X connect 91 0 160 0; +#X connect 92 0 159 0; +#X connect 93 0 161 0; +#X connect 94 0 160 0; +#X connect 95 0 164 0; +#X connect 96 0 163 0; +#X connect 97 0 165 0; +#X connect 98 0 164 0; +#X connect 99 0 166 0; +#X connect 100 0 165 0; +#X connect 101 0 162 0; +#X connect 102 0 161 0; +#X connect 103 0 163 0; +#X connect 104 0 162 0; +#X connect 105 0 159 0; +#X connect 106 0 167 0; +#X connect 107 0 166 0; +#X connect 108 0 168 0; +#X connect 109 0 167 0; +#X connect 109 0 168 0; +#X connect 110 0 159 0; +#X connect 111 0 168 0; +#X connect 112 0 114 0; +#X connect 113 0 119 0; +#X connect 114 0 113 1; +#X connect 114 1 113 0; +#X connect 115 0 117 0; +#X connect 116 0 118 0; +#X connect 117 0 116 1; +#X connect 117 1 116 0; +#X connect 118 0 140 0; +#X connect 119 0 140 0; +#X connect 120 0 111 0; +#X connect 121 1 133 1; +#X connect 122 0 117 0; +#X connect 123 0 114 0; +#X connect 124 1 126 1; +#X connect 125 1 126 1; +#X connect 126 1 91 0; +#X connect 126 1 92 0; +#X connect 126 1 124 1; +#X connect 126 1 147 1; +#X connect 126 1 150 0; +#X connect 127 1 128 1; +#X connect 128 1 93 0; +#X connect 128 1 94 0; +#X connect 128 1 127 1; +#X connect 128 1 146 1; +#X connect 128 1 147 2; +#X connect 128 1 151 0; +#X connect 129 1 131 1; +#X connect 130 1 132 1; +#X connect 131 1 101 0; +#X connect 131 1 102 0; +#X connect 131 1 129 1; +#X connect 131 1 145 1; +#X connect 131 1 146 2; +#X connect 131 1 152 0; +#X connect 132 1 103 0; +#X connect 132 1 104 0; +#X connect 132 1 130 1; +#X connect 132 1 145 2; +#X connect 132 1 148 1; +#X connect 132 1 153 0; +#X connect 133 1 95 0; +#X connect 133 1 96 0; +#X connect 133 1 121 1; +#X connect 133 1 144 1; +#X connect 133 1 148 2; +#X connect 133 1 154 0; +#X connect 134 1 136 1; +#X connect 135 1 137 1; +#X connect 136 1 97 0; +#X connect 136 1 98 0; +#X connect 136 1 134 1; +#X connect 136 1 143 1; +#X connect 136 1 144 2; +#X connect 136 1 155 0; +#X connect 137 1 99 0; +#X connect 137 1 100 0; +#X connect 137 1 135 1; +#X connect 137 1 142 1; +#X connect 137 1 143 2; +#X connect 137 1 156 0; +#X connect 138 1 106 0; +#X connect 138 1 107 0; +#X connect 138 1 141 1; +#X connect 138 1 142 2; +#X connect 138 1 149 1; +#X connect 138 1 157 0; +#X connect 139 1 140 1; +#X connect 140 1 108 0; +#X connect 140 1 109 0; +#X connect 140 1 139 1; +#X connect 140 1 141 2; +#X connect 140 1 158 0; +#X connect 140 1 170 1; +#X connect 141 1 138 1; +#X connect 141 2 140 1; +#X connect 142 1 137 1; +#X connect 142 2 138 1; +#X connect 143 1 136 1; +#X connect 143 2 137 1; +#X connect 144 1 133 1; +#X connect 144 2 136 1; +#X connect 145 1 131 1; +#X connect 145 2 132 1; +#X connect 146 1 128 1; +#X connect 146 2 131 1; +#X connect 147 1 126 1; +#X connect 147 2 128 1; +#X connect 147 2 128 1; +#X connect 148 1 132 1; +#X connect 148 2 133 1; +#X connect 149 1 138 1; +#X connect 169 0 28 0; +#X connect 170 1 140 1; diff --git a/xgui/doc/sound/09_more_physics7.pd b/xgui/doc/sound/09_more_physics7.pd new file mode 100644 index 00000000..27494673 --- /dev/null +++ b/xgui/doc/sound/09_more_physics7.pd @@ -0,0 +1,458 @@ +#N canvas -10 -4 1006 674 12; +#X msg 424 71 show; +#X obj 7 37 loadbang; +#X obj 33 75 t b b b b; +#X msg 191 36 on; +#X msg 220 87 xy1 \$1 \$2; +#X msg 324 86 xy2 \$1 \$2; +#X msg 232 156 xy1 \$1 \$2; +#X msg 328 156 xy2 \$1 \$2; +#X msg 228 377 xy1 \$1 \$2; +#X msg 321 375 xy2 \$1 \$2; +#X obj 423 124 seg l1 */my_string/l1; +#X obj 423 179 seg l2 */my_string/l2; +#X msg 222 452 xy1 \$1 \$2; +#X msg 323 452 xy2 \$1 \$2; +#X msg 221 529 xy1 \$1 \$2; +#X msg 327 528 xy2 \$1 \$2; +#X obj 422 98 seg m1 */my_string/m1; +#X msg 231 230 xy1 \$1 \$2; +#X msg 329 227 xy2 \$1 \$2; +#X obj 425 231 seg l3 */my_string/l3; +#X msg 227 301 xy1 \$1 \$2; +#X msg 328 302 xy2 \$1 \$2; +#X obj 427 290 seg l4 */my_string/l4; +#X obj 421 667 seg m2 */my_string/m2; +#X obj 427 351 seg l5 */my_string/l5; +#X obj 423 413 seg l6 */my_string/l6; +#X msg 473 71 raise; +#X msg 229 605 xy1 \$1 \$2; +#X msg 335 604 xy2 \$1 \$2; +#X msg 211 688 xy1 \$1 \$2; +#X msg 317 687 xy2 \$1 \$2; +#X obj 424 501 seg l7 */my_string/l7; +#X obj 428 574 seg l8 */my_string/l8; +#X msg 533 71 width 30; +#X msg 416 642 width 10; +#X obj 211 662 mass m9 50 250 100 0 0; +#X obj 232 130 mass m2 1 250 240 0 0; +#X obj 231 204 mass m3 1 250 220 0 0; +#X obj 227 275 mass m4 1 250 200 0 0; +#X obj 228 351 mass m5 1 250 180 0 0; +#X obj 216 427 mass m6 1 250 160 0 0; +#X obj 221 503 mass m7 1 250 140 0 0; +#X obj 229 579 mass m8 1 250 120 0 0; +#X obj 237 36 force f1 0 10000; +#X obj 273 637 damping d9 3000; +#X obj 411 689 spring sl 5000 0 250 250 250 100; +#X obj 428 600 spring s9 1000 20; +#X obj 424 527 spring s8 1000 20; +#X obj 423 439 spring s6 1000 20; +#X obj 427 377 spring s5 1000 20; +#X obj 427 316 spring s4 1000 20; +#X obj 425 257 spring s3 1000 20; +#X obj 426 204 spring s2 1000 20; +#X obj 435 153 spring s1 1000 20; +#X obj 427 43 damping d1 10; +#X obj 293 109 damping d2 10; +#X obj 293 180 damping d3 10; +#X obj 292 251 damping d4 10; +#X obj 289 327 damping d5 10; +#X obj 291 400 damping d6 10; +#X obj 283 478 damping d7 10; +#X obj 291 554 damping d8 10; +#X obj 216 58 mass m1 10 250 260 0 0; +#X msg 70 125 color white; +#X obj 53 156 canvas */my_string; +#X msg 58 105 show \, size 1000 700; +#X msg 1000 76 show; +#X obj 655 49 loadbang; +#X obj 681 87 t b b b b; +#X msg 767 41 on; +#X msg 796 92 xy1 \$1 \$2; +#X msg 900 91 xy2 \$1 \$2; +#X msg 808 161 xy1 \$1 \$2; +#X msg 904 161 xy2 \$1 \$2; +#X msg 804 382 xy1 \$1 \$2; +#X msg 897 380 xy2 \$1 \$2; +#X msg 798 457 xy1 \$1 \$2; +#X msg 899 457 xy2 \$1 \$2; +#X msg 797 534 xy1 \$1 \$2; +#X msg 903 533 xy2 \$1 \$2; +#X msg 807 235 xy1 \$1 \$2; +#X msg 905 232 xy2 \$1 \$2; +#X msg 803 306 xy1 \$1 \$2; +#X msg 904 307 xy2 \$1 \$2; +#X msg 1049 76 raise; +#X msg 805 610 xy1 \$1 \$2; +#X msg 911 609 xy2 \$1 \$2; +#X msg 787 693 xy1 \$1 \$2; +#X msg 893 692 xy2 \$1 \$2; +#X msg 1109 76 width 30; +#X msg 992 647 width 10; +#X obj 813 41 force 1f1 0 10000; +#X obj 869 114 damping 1d2 10; +#X obj 869 185 damping 1d3 10; +#X obj 868 256 damping 1d4 10; +#X obj 865 332 damping 1d5 10; +#X obj 867 405 damping 1d6 10; +#X obj 859 483 damping 1d7 10; +#X obj 867 559 damping 1d8 10; +#X obj 849 642 damping 1d9 3000; +#X obj 1003 48 damping 1d1 10; +#X obj 998 103 seg 1m1 */my_string/1m1; +#X obj 999 129 seg 1l1 */my_string/1l1; +#X obj 997 183 seg 1l2 */my_string/1l2; +#X obj 1001 236 seg 1l3 */my_string/1l3; +#X obj 1003 296 seg 1l4 */my_string/1l4; +#X obj 1004 356 seg 1l5 */my_string/1l5; +#X obj 999 418 seg 1l6 */my_string/1l6; +#X obj 1000 506 seg 1l7 */my_string/1l7; +#X obj 999 156 spring 1s1 1000 20; +#X obj 1005 205 spring 1s2 1000 20; +#X obj 1000 263 spring 1s3 1000 20; +#X obj 1003 318 spring 1s4 1000 20; +#X obj 1003 376 spring 1s5 1000 20; +#X obj 999 444 spring 1s6 1000 20; +#X obj 1003 530 spring 1s8 1000 20; +#X obj 1004 579 seg 1l8 */my_string/1l8; +#X obj 1005 606 spring 1s9 1000 20; +#X obj 997 672 seg 1m2 */my_string/1m2; +#X obj 796 66 mass 1m1 10 750 260 0 0; +#X obj 808 135 mass 1m2 1 750 240 0 0; +#X obj 808 210 mass 1m3 1 750 220 0 0; +#X obj 803 280 mass 1m4 1 750 200 0 0; +#X obj 804 356 mass 1m5 1 750 180 0 0; +#X obj 792 432 mass 1m6 1 750 160 0 0; +#X obj 795 508 mass 1m7 1 750 140 0 0; +#X obj 805 584 mass 1m8 1 750 120 0 0; +#X obj 787 667 mass 1m9 50 750 100 0 0; +#X obj 987 694 spring 1sl 5000 0 250 250 750 100; +#X obj 681 330 r move_x2; +#X obj 706 425 r move_y2; +#X obj 691 395 -; +#X obj 681 357 t f f; +#X obj 708 457 t f f; +#X obj 710 486 -; +#X obj 682 188 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 11100 1; +#X obj 717 189 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 85 355 r move_x2; +#X obj 125 446 r move_y2; +#X obj 95 420 -; +#X obj 85 382 t f f; +#X obj 127 478 t f f; +#X obj 129 507 -; +#X obj 86 213 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 3800 1; +#X obj 121 214 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X msg 105 625 move \$1 0; +#X msg 119 580 move 0 \$1; +#X msg 685 604 move \$1 0; +#X msg 695 577 move 0 \$1; +#X obj 602 122 s xy11; +#X obj 605 179 s xy12; +#X obj 610 230 s xy13; +#X obj 613 289 s xy14; +#X obj 611 354 s xy15; +#X obj 614 410 s xy16; +#X obj 619 460 s xy17; +#X obj 622 519 s xy18; +#X obj 620 646 s xy19; +#X obj 1191 110 s xy11; +#X obj 1194 167 s xy12; +#X obj 1199 218 s xy13; +#X obj 1202 277 s xy14; +#X obj 1200 342 s xy15; +#X obj 1203 398 s xy16; +#X obj 1201 456 s xy17; +#X obj 1202 513 s xy18; +#X obj 1189 635 s xy19; +#X connect 0 0 11 0; +#X connect 0 0 16 0; +#X connect 0 0 10 0; +#X connect 0 0 23 0; +#X connect 0 0 19 0; +#X connect 0 0 22 0; +#X connect 0 0 24 0; +#X connect 0 0 25 0; +#X connect 0 0 31 0; +#X connect 0 0 32 0; +#X connect 1 0 2 0; +#X connect 2 0 33 0; +#X connect 2 0 26 0; +#X connect 2 0 34 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 63 0; +#X connect 2 3 65 0; +#X connect 3 0 35 0; +#X connect 3 0 36 0; +#X connect 3 0 37 0; +#X connect 3 0 38 0; +#X connect 3 0 39 0; +#X connect 3 0 40 0; +#X connect 3 0 41 0; +#X connect 3 0 42 0; +#X connect 3 0 62 0; +#X connect 4 0 10 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 11 0; +#X connect 7 0 10 0; +#X connect 8 0 24 0; +#X connect 9 0 22 0; +#X connect 12 0 25 0; +#X connect 13 0 24 0; +#X connect 14 0 31 0; +#X connect 15 0 25 0; +#X connect 17 0 19 0; +#X connect 18 0 11 0; +#X connect 20 0 22 0; +#X connect 21 0 19 0; +#X connect 26 0 16 0; +#X connect 27 0 32 0; +#X connect 28 0 31 0; +#X connect 29 0 23 0; +#X connect 30 0 32 0; +#X connect 30 0 23 0; +#X connect 33 0 16 0; +#X connect 34 0 23 0; +#X connect 35 1 29 0; +#X connect 35 1 30 0; +#X connect 35 1 44 1; +#X connect 35 1 45 1; +#X connect 35 1 46 2; +#X connect 35 1 157 0; +#X connect 36 1 6 0; +#X connect 36 1 7 0; +#X connect 36 1 52 1; +#X connect 36 1 53 2; +#X connect 36 1 55 1; +#X connect 36 1 150 0; +#X connect 37 1 17 0; +#X connect 37 1 18 0; +#X connect 37 1 51 1; +#X connect 37 1 52 2; +#X connect 37 1 56 1; +#X connect 37 1 151 0; +#X connect 38 1 20 0; +#X connect 38 1 21 0; +#X connect 38 1 50 1; +#X connect 38 1 51 2; +#X connect 38 1 57 1; +#X connect 38 1 152 0; +#X connect 39 1 8 0; +#X connect 39 1 9 0; +#X connect 39 1 49 1; +#X connect 39 1 50 2; +#X connect 39 1 58 1; +#X connect 39 1 153 0; +#X connect 40 1 12 0; +#X connect 40 1 13 0; +#X connect 40 1 48 1; +#X connect 40 1 49 2; +#X connect 40 1 59 1; +#X connect 40 1 154 0; +#X connect 41 1 14 0; +#X connect 41 1 15 0; +#X connect 41 1 47 1; +#X connect 41 1 48 2; +#X connect 41 1 60 1; +#X connect 41 1 155 0; +#X connect 42 1 27 0; +#X connect 42 1 28 0; +#X connect 42 1 46 1; +#X connect 42 1 47 2; +#X connect 42 1 61 1; +#X connect 42 1 156 0; +#X connect 43 1 62 1; +#X connect 44 1 35 1; +#X connect 45 1 35 1; +#X connect 46 1 42 1; +#X connect 46 2 35 1; +#X connect 47 1 41 1; +#X connect 47 2 42 1; +#X connect 48 1 40 1; +#X connect 48 2 41 1; +#X connect 49 1 39 1; +#X connect 49 2 40 1; +#X connect 50 1 38 1; +#X connect 50 2 39 1; +#X connect 51 1 37 1; +#X connect 51 2 38 1; +#X connect 52 1 36 1; +#X connect 52 2 37 1; +#X connect 53 1 62 1; +#X connect 53 2 36 1; +#X connect 53 2 36 1; +#X connect 54 1 62 1; +#X connect 55 1 36 1; +#X connect 56 1 37 1; +#X connect 57 1 38 1; +#X connect 58 1 39 1; +#X connect 59 1 40 1; +#X connect 60 1 41 1; +#X connect 61 1 42 1; +#X connect 62 1 4 0; +#X connect 62 1 5 0; +#X connect 62 1 53 1; +#X connect 62 1 54 1; +#X connect 62 1 149 0; +#X connect 63 0 64 0; +#X connect 65 0 64 0; +#X connect 66 0 101 0; +#X connect 66 0 102 0; +#X connect 66 0 103 0; +#X connect 66 0 104 0; +#X connect 66 0 105 0; +#X connect 66 0 106 0; +#X connect 66 0 107 0; +#X connect 66 0 108 0; +#X connect 66 0 116 0; +#X connect 66 0 118 0; +#X connect 67 0 68 0; +#X connect 68 0 89 0; +#X connect 68 0 84 0; +#X connect 68 0 69 0; +#X connect 68 0 90 0; +#X connect 68 1 66 0; +#X connect 69 0 119 0; +#X connect 69 0 120 0; +#X connect 69 0 121 0; +#X connect 69 0 122 0; +#X connect 69 0 123 0; +#X connect 69 0 124 0; +#X connect 69 0 125 0; +#X connect 69 0 126 0; +#X connect 69 0 127 0; +#X connect 70 0 101 0; +#X connect 70 0 102 0; +#X connect 71 0 101 0; +#X connect 72 0 103 0; +#X connect 73 0 102 0; +#X connect 74 0 106 0; +#X connect 75 0 105 0; +#X connect 76 0 107 0; +#X connect 77 0 106 0; +#X connect 78 0 108 0; +#X connect 79 0 107 0; +#X connect 80 0 104 0; +#X connect 81 0 103 0; +#X connect 82 0 105 0; +#X connect 83 0 104 0; +#X connect 84 0 101 0; +#X connect 85 0 116 0; +#X connect 86 0 108 0; +#X connect 87 0 118 0; +#X connect 88 0 116 0; +#X connect 88 0 118 0; +#X connect 89 0 101 0; +#X connect 90 0 118 0; +#X connect 91 1 119 1; +#X connect 92 1 120 1; +#X connect 93 1 121 1; +#X connect 94 1 122 1; +#X connect 95 1 123 1; +#X connect 96 1 124 1; +#X connect 97 1 125 1; +#X connect 97 1 164 0; +#X connect 98 1 126 1; +#X connect 99 1 127 1; +#X connect 100 1 119 1; +#X connect 109 1 119 1; +#X connect 109 2 120 1; +#X connect 109 2 120 1; +#X connect 110 1 120 1; +#X connect 110 2 121 1; +#X connect 111 1 121 1; +#X connect 111 2 122 1; +#X connect 112 1 122 1; +#X connect 112 2 123 1; +#X connect 113 1 123 1; +#X connect 113 2 124 1; +#X connect 114 1 124 1; +#X connect 114 2 125 1; +#X connect 115 1 125 1; +#X connect 115 2 126 1; +#X connect 117 1 126 1; +#X connect 117 2 127 1; +#X connect 119 1 70 0; +#X connect 119 1 71 0; +#X connect 119 1 100 1; +#X connect 119 1 109 1; +#X connect 119 1 158 0; +#X connect 120 1 72 0; +#X connect 120 1 73 0; +#X connect 120 1 92 1; +#X connect 120 1 109 2; +#X connect 120 1 110 1; +#X connect 120 1 159 0; +#X connect 121 1 80 0; +#X connect 121 1 81 0; +#X connect 121 1 93 1; +#X connect 121 1 110 2; +#X connect 121 1 111 1; +#X connect 121 1 160 0; +#X connect 122 1 82 0; +#X connect 122 1 83 0; +#X connect 122 1 94 1; +#X connect 122 1 111 2; +#X connect 122 1 112 1; +#X connect 122 1 161 0; +#X connect 123 1 74 0; +#X connect 123 1 75 0; +#X connect 123 1 95 1; +#X connect 123 1 112 2; +#X connect 123 1 113 1; +#X connect 123 1 162 0; +#X connect 124 1 76 0; +#X connect 124 1 77 0; +#X connect 124 1 96 1; +#X connect 124 1 113 2; +#X connect 124 1 114 1; +#X connect 124 1 163 0; +#X connect 125 1 78 0; +#X connect 125 1 79 0; +#X connect 125 1 97 1; +#X connect 125 1 114 2; +#X connect 125 1 115 1; +#X connect 126 1 85 0; +#X connect 126 1 86 0; +#X connect 126 1 98 1; +#X connect 126 1 115 2; +#X connect 126 1 117 1; +#X connect 126 1 165 0; +#X connect 127 1 87 0; +#X connect 127 1 88 0; +#X connect 127 1 99 1; +#X connect 127 1 117 2; +#X connect 127 1 128 1; +#X connect 127 1 166 0; +#X connect 128 1 127 1; +#X connect 129 0 132 0; +#X connect 130 0 133 0; +#X connect 131 0 147 0; +#X connect 132 0 131 1; +#X connect 132 1 131 0; +#X connect 133 0 134 1; +#X connect 133 1 134 0; +#X connect 134 0 148 0; +#X connect 135 0 132 0; +#X connect 136 0 133 0; +#X connect 137 0 140 0; +#X connect 138 0 141 0; +#X connect 139 0 145 0; +#X connect 140 0 139 1; +#X connect 140 1 139 0; +#X connect 141 0 142 1; +#X connect 141 1 142 0; +#X connect 142 0 146 0; +#X connect 143 0 140 0; +#X connect 144 0 141 0; +#X connect 145 0 35 0; +#X connect 146 0 35 0; +#X connect 147 0 127 0; +#X connect 148 0 127 0; diff --git a/xgui/doc/sound/2yoyo.pd b/xgui/doc/sound/2yoyo.pd new file mode 100644 index 00000000..87be4259 --- /dev/null +++ b/xgui/doc/sound/2yoyo.pd @@ -0,0 +1,464 @@ +#N canvas -10 -4 1010 680 12; +#X msg 424 71 show; +#X obj 7 37 loadbang; +#X obj 33 75 t b b b b; +#X msg 191 36 on; +#X msg 220 87 xy1 \$1 \$2; +#X msg 324 86 xy2 \$1 \$2; +#X msg 232 156 xy1 \$1 \$2; +#X msg 328 156 xy2 \$1 \$2; +#X msg 228 377 xy1 \$1 \$2; +#X msg 321 375 xy2 \$1 \$2; +#X obj 423 124 seg l1 */my_string/l1; +#X obj 423 179 seg l2 */my_string/l2; +#X msg 222 452 xy1 \$1 \$2; +#X msg 323 452 xy2 \$1 \$2; +#X msg 221 529 xy1 \$1 \$2; +#X msg 327 528 xy2 \$1 \$2; +#X obj 422 98 seg m1 */my_string/m1; +#X msg 231 230 xy1 \$1 \$2; +#X msg 329 227 xy2 \$1 \$2; +#X obj 425 231 seg l3 */my_string/l3; +#X msg 227 301 xy1 \$1 \$2; +#X msg 328 302 xy2 \$1 \$2; +#X obj 427 290 seg l4 */my_string/l4; +#X obj 421 667 seg m2 */my_string/m2; +#X obj 427 351 seg l5 */my_string/l5; +#X obj 423 413 seg l6 */my_string/l6; +#X msg 473 71 raise; +#X msg 229 605 xy1 \$1 \$2; +#X msg 335 604 xy2 \$1 \$2; +#X msg 211 688 xy1 \$1 \$2; +#X msg 317 687 xy2 \$1 \$2; +#X obj 424 501 seg l7 */my_string/l7; +#X obj 428 574 seg l8 */my_string/l8; +#X msg 533 71 width 30; +#X msg 416 642 width 10; +#X obj 211 662 mass m9 50 250 100 0 0; +#X obj 232 130 mass m2 1 250 240 0 0; +#X obj 231 204 mass m3 1 250 220 0 0; +#X obj 227 275 mass m4 1 250 200 0 0; +#X obj 228 351 mass m5 1 250 180 0 0; +#X obj 216 427 mass m6 1 250 160 0 0; +#X obj 221 503 mass m7 1 250 140 0 0; +#X obj 229 579 mass m8 1 250 120 0 0; +#X obj 237 36 force f1 0 10000; +#X obj 273 637 damping d9 3000; +#X obj 411 689 spring sl 5000 0 250 250 250 100; +#X obj 428 600 spring s9 1000 20; +#X obj 424 527 spring s8 1000 20; +#X obj 423 439 spring s6 1000 20; +#X obj 427 377 spring s5 1000 20; +#X obj 427 316 spring s4 1000 20; +#X obj 425 257 spring s3 1000 20; +#X obj 426 204 spring s2 1000 20; +#X obj 435 153 spring s1 1000 20; +#X obj 427 43 damping d1 10; +#X obj 293 109 damping d2 10; +#X obj 293 180 damping d3 10; +#X obj 292 251 damping d4 10; +#X obj 289 327 damping d5 10; +#X obj 291 400 damping d6 10; +#X obj 283 478 damping d7 10; +#X obj 291 554 damping d8 10; +#X obj 216 58 mass m1 10 250 260 0 0; +#X msg 70 125 color white; +#X obj 53 156 canvas */my_string; +#X msg 58 105 show \, size 1000 700; +#X msg 1000 76 show; +#X obj 655 49 loadbang; +#X obj 681 87 t b b b b; +#X msg 767 41 on; +#X msg 796 92 xy1 \$1 \$2; +#X msg 900 91 xy2 \$1 \$2; +#X msg 808 161 xy1 \$1 \$2; +#X msg 904 161 xy2 \$1 \$2; +#X msg 804 382 xy1 \$1 \$2; +#X msg 897 380 xy2 \$1 \$2; +#X msg 798 457 xy1 \$1 \$2; +#X msg 899 457 xy2 \$1 \$2; +#X msg 797 534 xy1 \$1 \$2; +#X msg 903 533 xy2 \$1 \$2; +#X msg 807 235 xy1 \$1 \$2; +#X msg 905 232 xy2 \$1 \$2; +#X msg 803 306 xy1 \$1 \$2; +#X msg 904 307 xy2 \$1 \$2; +#X msg 1049 76 raise; +#X msg 805 610 xy1 \$1 \$2; +#X msg 911 609 xy2 \$1 \$2; +#X msg 787 693 xy1 \$1 \$2; +#X msg 893 692 xy2 \$1 \$2; +#X msg 1109 76 width 30; +#X msg 992 647 width 10; +#X obj 813 41 force 1f1 0 10000; +#X obj 869 114 damping 1d2 10; +#X obj 869 185 damping 1d3 10; +#X obj 868 256 damping 1d4 10; +#X obj 865 332 damping 1d5 10; +#X obj 867 405 damping 1d6 10; +#X obj 859 483 damping 1d7 10; +#X obj 867 559 damping 1d8 10; +#X obj 849 642 damping 1d9 3000; +#X obj 1003 48 damping 1d1 10; +#X obj 998 103 seg 1m1 */my_string/1m1; +#X obj 999 129 seg 1l1 */my_string/1l1; +#X obj 997 183 seg 1l2 */my_string/1l2; +#X obj 1001 236 seg 1l3 */my_string/1l3; +#X obj 1003 296 seg 1l4 */my_string/1l4; +#X obj 1004 356 seg 1l5 */my_string/1l5; +#X obj 999 418 seg 1l6 */my_string/1l6; +#X obj 1000 506 seg 1l7 */my_string/1l7; +#X obj 999 156 spring 1s1 1000 20; +#X obj 1005 205 spring 1s2 1000 20; +#X obj 1000 263 spring 1s3 1000 20; +#X obj 1003 318 spring 1s4 1000 20; +#X obj 1003 376 spring 1s5 1000 20; +#X obj 999 444 spring 1s6 1000 20; +#X obj 1003 530 spring 1s8 1000 20; +#X obj 1004 579 seg 1l8 */my_string/1l8; +#X obj 1005 606 spring 1s9 1000 20; +#X obj 997 672 seg 1m2 */my_string/1m2; +#X obj 796 66 mass 1m1 10 750 260 0 0; +#X obj 808 135 mass 1m2 1 750 240 0 0; +#X obj 808 210 mass 1m3 1 750 220 0 0; +#X obj 803 280 mass 1m4 1 750 200 0 0; +#X obj 804 356 mass 1m5 1 750 180 0 0; +#X obj 792 432 mass 1m6 1 750 160 0 0; +#X obj 795 508 mass 1m7 1 750 140 0 0; +#X obj 805 584 mass 1m8 1 750 120 0 0; +#X obj 787 667 mass 1m9 50 750 100 0 0; +#X obj 987 694 spring 1sl 5000 0 250 250 750 100; +#X obj 681 330 r move_x2; +#X obj 706 425 r move_y2; +#X obj 691 395 -; +#X obj 681 357 t f f; +#X obj 708 457 t f f; +#X obj 710 486 -; +#X obj 682 188 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 5500 1; +#X obj 717 189 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 12700 1; +#X obj 95 420 -; +#X obj 85 382 t f f; +#X obj 127 478 t f f; +#X obj 129 507 -; +#X obj 86 213 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 121 214 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X msg 105 625 move \$1 0; +#X msg 119 580 move 0 \$1; +#X msg 685 604 move \$1 0; +#X msg 695 577 move 0 \$1; +#X obj 602 122 s xy11; +#X obj 605 179 s xy12; +#X obj 610 230 s xy13; +#X obj 613 289 s xy14; +#X obj 611 354 s xy15; +#X obj 614 410 s xy16; +#X obj 619 460 s xy17; +#X obj 622 519 s xy18; +#X obj 620 646 s xy19; +#X obj 86 356 r move_x1; +#X obj 125 446 r move_y1; +#X obj 1191 110 s xy21; +#X obj 1194 167 s xy22; +#X obj 1199 218 s xy23; +#X obj 1202 276 s xy24; +#X obj 1200 342 s xy25; +#X obj 1203 398 s xy26; +#X obj 1199 456 s xy27; +#X obj 1202 513 s xy28; +#X obj 1189 635 s xy29; +#X msg 545 44 color blue; +#X msg 1125 48 color red; +#X connect 0 0 11 0; +#X connect 0 0 16 0; +#X connect 0 0 10 0; +#X connect 0 0 23 0; +#X connect 0 0 19 0; +#X connect 0 0 22 0; +#X connect 0 0 24 0; +#X connect 0 0 25 0; +#X connect 0 0 31 0; +#X connect 0 0 32 0; +#X connect 1 0 2 0; +#X connect 2 0 33 0; +#X connect 2 0 26 0; +#X connect 2 0 34 0; +#X connect 2 0 3 0; +#X connect 2 0 167 0; +#X connect 2 1 0 0; +#X connect 2 2 63 0; +#X connect 2 3 65 0; +#X connect 3 0 35 0; +#X connect 3 0 36 0; +#X connect 3 0 37 0; +#X connect 3 0 38 0; +#X connect 3 0 39 0; +#X connect 3 0 40 0; +#X connect 3 0 41 0; +#X connect 3 0 42 0; +#X connect 3 0 62 0; +#X connect 4 0 10 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 11 0; +#X connect 7 0 10 0; +#X connect 8 0 24 0; +#X connect 9 0 22 0; +#X connect 12 0 25 0; +#X connect 13 0 24 0; +#X connect 14 0 31 0; +#X connect 15 0 25 0; +#X connect 17 0 19 0; +#X connect 18 0 11 0; +#X connect 20 0 22 0; +#X connect 21 0 19 0; +#X connect 26 0 16 0; +#X connect 27 0 32 0; +#X connect 28 0 31 0; +#X connect 29 0 23 0; +#X connect 30 0 32 0; +#X connect 30 0 23 0; +#X connect 33 0 16 0; +#X connect 34 0 23 0; +#X connect 35 1 29 0; +#X connect 35 1 30 0; +#X connect 35 1 44 1; +#X connect 35 1 45 1; +#X connect 35 1 46 2; +#X connect 35 1 155 0; +#X connect 36 1 6 0; +#X connect 36 1 7 0; +#X connect 36 1 52 1; +#X connect 36 1 53 2; +#X connect 36 1 55 1; +#X connect 36 1 148 0; +#X connect 37 1 17 0; +#X connect 37 1 18 0; +#X connect 37 1 51 1; +#X connect 37 1 52 2; +#X connect 37 1 56 1; +#X connect 37 1 149 0; +#X connect 38 1 20 0; +#X connect 38 1 21 0; +#X connect 38 1 50 1; +#X connect 38 1 51 2; +#X connect 38 1 57 1; +#X connect 38 1 150 0; +#X connect 39 1 8 0; +#X connect 39 1 9 0; +#X connect 39 1 49 1; +#X connect 39 1 50 2; +#X connect 39 1 58 1; +#X connect 39 1 151 0; +#X connect 40 1 12 0; +#X connect 40 1 13 0; +#X connect 40 1 48 1; +#X connect 40 1 49 2; +#X connect 40 1 59 1; +#X connect 40 1 152 0; +#X connect 41 1 14 0; +#X connect 41 1 15 0; +#X connect 41 1 47 1; +#X connect 41 1 48 2; +#X connect 41 1 60 1; +#X connect 41 1 153 0; +#X connect 42 1 27 0; +#X connect 42 1 28 0; +#X connect 42 1 46 1; +#X connect 42 1 47 2; +#X connect 42 1 61 1; +#X connect 42 1 154 0; +#X connect 43 1 62 1; +#X connect 44 1 35 1; +#X connect 45 1 35 1; +#X connect 46 1 42 1; +#X connect 46 2 35 1; +#X connect 47 1 41 1; +#X connect 47 2 42 1; +#X connect 48 1 40 1; +#X connect 48 2 41 1; +#X connect 49 1 39 1; +#X connect 49 2 40 1; +#X connect 50 1 38 1; +#X connect 50 2 39 1; +#X connect 51 1 37 1; +#X connect 51 2 38 1; +#X connect 52 1 36 1; +#X connect 52 2 37 1; +#X connect 53 1 62 1; +#X connect 53 2 36 1; +#X connect 53 2 36 1; +#X connect 54 1 62 1; +#X connect 55 1 36 1; +#X connect 56 1 37 1; +#X connect 57 1 38 1; +#X connect 58 1 39 1; +#X connect 59 1 40 1; +#X connect 60 1 41 1; +#X connect 61 1 42 1; +#X connect 62 1 4 0; +#X connect 62 1 5 0; +#X connect 62 1 53 1; +#X connect 62 1 54 1; +#X connect 62 1 147 0; +#X connect 63 0 64 0; +#X connect 65 0 64 0; +#X connect 66 0 101 0; +#X connect 66 0 102 0; +#X connect 66 0 103 0; +#X connect 66 0 104 0; +#X connect 66 0 105 0; +#X connect 66 0 106 0; +#X connect 66 0 107 0; +#X connect 66 0 108 0; +#X connect 66 0 116 0; +#X connect 66 0 118 0; +#X connect 67 0 68 0; +#X connect 67 0 168 0; +#X connect 68 0 89 0; +#X connect 68 0 84 0; +#X connect 68 0 69 0; +#X connect 68 0 90 0; +#X connect 68 1 66 0; +#X connect 69 0 119 0; +#X connect 69 0 120 0; +#X connect 69 0 121 0; +#X connect 69 0 122 0; +#X connect 69 0 123 0; +#X connect 69 0 124 0; +#X connect 69 0 125 0; +#X connect 69 0 126 0; +#X connect 69 0 127 0; +#X connect 70 0 101 0; +#X connect 70 0 102 0; +#X connect 71 0 101 0; +#X connect 72 0 103 0; +#X connect 73 0 102 0; +#X connect 74 0 106 0; +#X connect 75 0 105 0; +#X connect 76 0 107 0; +#X connect 77 0 106 0; +#X connect 78 0 108 0; +#X connect 79 0 107 0; +#X connect 80 0 104 0; +#X connect 81 0 103 0; +#X connect 82 0 105 0; +#X connect 83 0 104 0; +#X connect 84 0 101 0; +#X connect 85 0 116 0; +#X connect 86 0 108 0; +#X connect 87 0 118 0; +#X connect 88 0 116 0; +#X connect 88 0 118 0; +#X connect 89 0 101 0; +#X connect 90 0 118 0; +#X connect 91 1 119 1; +#X connect 92 1 120 1; +#X connect 93 1 121 1; +#X connect 94 1 122 1; +#X connect 95 1 123 1; +#X connect 96 1 124 1; +#X connect 97 1 125 1; +#X connect 97 1 164 0; +#X connect 98 1 126 1; +#X connect 99 1 127 1; +#X connect 100 1 119 1; +#X connect 109 1 119 1; +#X connect 109 2 120 1; +#X connect 109 2 120 1; +#X connect 110 1 120 1; +#X connect 110 2 121 1; +#X connect 111 1 121 1; +#X connect 111 2 122 1; +#X connect 112 1 122 1; +#X connect 112 2 123 1; +#X connect 113 1 123 1; +#X connect 113 2 124 1; +#X connect 114 1 124 1; +#X connect 114 2 125 1; +#X connect 115 1 125 1; +#X connect 115 2 126 1; +#X connect 117 1 126 1; +#X connect 117 2 127 1; +#X connect 119 1 70 0; +#X connect 119 1 71 0; +#X connect 119 1 100 1; +#X connect 119 1 109 1; +#X connect 119 1 158 0; +#X connect 120 1 72 0; +#X connect 120 1 73 0; +#X connect 120 1 92 1; +#X connect 120 1 109 2; +#X connect 120 1 110 1; +#X connect 120 1 159 0; +#X connect 121 1 80 0; +#X connect 121 1 81 0; +#X connect 121 1 93 1; +#X connect 121 1 110 2; +#X connect 121 1 111 1; +#X connect 121 1 160 0; +#X connect 122 1 82 0; +#X connect 122 1 83 0; +#X connect 122 1 94 1; +#X connect 122 1 111 2; +#X connect 122 1 112 1; +#X connect 122 1 161 0; +#X connect 123 1 74 0; +#X connect 123 1 75 0; +#X connect 123 1 95 1; +#X connect 123 1 112 2; +#X connect 123 1 113 1; +#X connect 123 1 162 0; +#X connect 124 1 76 0; +#X connect 124 1 77 0; +#X connect 124 1 96 1; +#X connect 124 1 113 2; +#X connect 124 1 114 1; +#X connect 124 1 163 0; +#X connect 125 1 78 0; +#X connect 125 1 79 0; +#X connect 125 1 97 1; +#X connect 125 1 114 2; +#X connect 125 1 115 1; +#X connect 126 1 85 0; +#X connect 126 1 86 0; +#X connect 126 1 98 1; +#X connect 126 1 115 2; +#X connect 126 1 117 1; +#X connect 126 1 165 0; +#X connect 127 1 87 0; +#X connect 127 1 88 0; +#X connect 127 1 99 1; +#X connect 127 1 117 2; +#X connect 127 1 128 1; +#X connect 127 1 166 0; +#X connect 128 1 127 1; +#X connect 129 0 132 0; +#X connect 130 0 133 0; +#X connect 131 0 145 0; +#X connect 132 0 131 1; +#X connect 132 1 131 0; +#X connect 133 0 134 1; +#X connect 133 1 134 0; +#X connect 134 0 146 0; +#X connect 135 0 132 0; +#X connect 136 0 133 0; +#X connect 137 0 143 0; +#X connect 138 0 137 1; +#X connect 138 1 137 0; +#X connect 139 0 140 1; +#X connect 139 1 140 0; +#X connect 140 0 144 0; +#X connect 141 0 138 0; +#X connect 142 0 139 0; +#X connect 143 0 35 0; +#X connect 144 0 35 0; +#X connect 145 0 127 0; +#X connect 146 0 127 0; +#X connect 156 0 138 0; +#X connect 157 0 139 0; +#X connect 167 0 16 0; +#X connect 168 0 101 0; diff --git a/xgui/doc/sound/2yoyos.pd b/xgui/doc/sound/2yoyos.pd new file mode 100644 index 00000000..9c8ae407 --- /dev/null +++ b/xgui/doc/sound/2yoyos.pd @@ -0,0 +1,462 @@ +#N canvas 17 1 1006 674 12; +#X msg 473 120 show; +#X obj 7 84 loadbang; +#X obj 33 122 t b b b b; +#X msg 207 73 on; +#X msg 242 127 xy1 \$1 \$2; +#X msg 346 126 xy2 \$1 \$2; +#X text 51 224 dh20020404; +#X msg 240 200 xy1 \$1 \$2; +#X msg 336 200 xy2 \$1 \$2; +#X msg 224 422 xy1 \$1 \$2; +#X msg 317 420 xy2 \$1 \$2; +#X msg 218 498 xy1 \$1 \$2; +#X msg 319 498 xy2 \$1 \$2; +#X msg 209 573 xy1 \$1 \$2; +#X msg 315 572 xy2 \$1 \$2; +#X msg 233 276 xy1 \$1 \$2; +#X msg 331 273 xy2 \$1 \$2; +#X msg 228 347 xy1 \$1 \$2; +#X msg 329 348 xy2 \$1 \$2; +#X msg 522 120 raise; +#X msg 212 653 xy1 \$1 \$2; +#X msg 318 652 xy2 \$1 \$2; +#X msg 106 732 xy1 \$1 \$2; +#X msg 212 731 xy2 \$1 \$2; +#X msg 585 119 width 30; +#X msg 339 688 width 10; +#X text 59 246 dh20020405; +#X msg 70 172 color white; +#X obj 53 203 canvas */my_string; +#X obj 89 276 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 11500 1; +#X obj 22 581 -; +#X obj 43 544 t f f; +#X obj 40 323 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 20 469 -; +#X obj 41 432 t f f; +#X msg 24 512 drag \$1 0; +#X msg 26 624 drag 0 \$1; +#X obj 121 641 loadbang; +#X obj 434 90 damping \$0d1 10; +#X obj 259 76 force \$0f1 0 10000; +#X obj 241 101 mass \$0m1 2 250 260 0 0; +#X obj 301 153 damping \$0d2 10; +#X obj 240 174 mass \$0m2 1 250 240 0 0; +#X obj 295 226 damping \$0d3 10; +#X obj 233 250 mass \$0m3 1 250 220 0 0; +#X obj 293 297 damping \$0d4 10; +#X obj 228 321 mass \$0m4 1 250 200 0 0; +#X obj 285 372 damping \$0d5 10; +#X obj 224 396 mass \$0m5 1 250 180 0 0; +#X obj 287 446 damping \$0d6 10; +#X obj 212 473 mass \$0m6 1 250 160 0 0; +#X obj 271 522 damping \$0d7 10; +#X obj 209 547 mass \$0m7 1 250 140 0 0; +#X obj 277 599 damping \$0d8 10; +#X obj 212 627 mass \$0m8 1 250 120 0 0; +#X obj 476 152 seg \$0m1 */my_string/m1; +#X obj 472 191 seg \$0l1 */my_string/l1; +#X obj 472 218 spring \$0s1 1000 20; +#X obj 472 248 seg \$0l2 */my_string/l2; +#X obj 458 275 spring \$0s2 1000 20; +#X obj 455 313 seg \$0l3 */my_string/l3; +#X obj 455 339 spring \$0s3 1000 20; +#X obj 452 373 seg \$0l4 */my_string/l4; +#X obj 452 399 spring \$0s4 1000 20; +#X obj 454 428 seg \$0l5 */my_string/l5; +#X obj 454 454 spring \$0s5 1000 20; +#X obj 455 508 seg \$0l6 */my_string/l6; +#X obj 455 534 spring \$0s6 1000 20; +#X obj 458 588 seg \$0l7 */my_string/l7; +#X obj 458 614 spring \$0s8 1000 20; +#X obj 450 666 seg \$0l8 */my_string/l8; +#X obj 450 692 spring \$0s9 1000 20; +#X obj 344 718 seg \$0m2 */my_string/m2; +#X obj 334 740 spring \$0sl 5000 0 250 250 250 100; +#X obj 106 706 mass \$0m9 50 250 100 0 0; +#X obj 168 681 damping \$0d9 3000; +#X msg 1138 109 show; +#X obj 691 84 loadbang; +#X obj 741 105 t b b b b; +#X msg 872 62 on; +#X msg 907 116 xy1 \$1 \$2; +#X msg 1011 115 xy2 \$1 \$2; +#X msg 905 189 xy1 \$1 \$2; +#X msg 1001 189 xy2 \$1 \$2; +#X msg 889 411 xy1 \$1 \$2; +#X msg 982 409 xy2 \$1 \$2; +#X msg 883 487 xy1 \$1 \$2; +#X msg 984 487 xy2 \$1 \$2; +#X msg 874 562 xy1 \$1 \$2; +#X msg 980 561 xy2 \$1 \$2; +#X msg 898 265 xy1 \$1 \$2; +#X msg 996 262 xy2 \$1 \$2; +#X msg 893 336 xy1 \$1 \$2; +#X msg 994 337 xy2 \$1 \$2; +#X msg 1187 109 raise; +#X msg 877 642 xy1 \$1 \$2; +#X msg 983 641 xy2 \$1 \$2; +#X msg 771 721 xy1 \$1 \$2; +#X msg 877 720 xy2 \$1 \$2; +#X msg 1250 108 width 30; +#X msg 1004 677 width 10; +#X obj 761 262 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 10800 1; +#X obj 687 570 -; +#X obj 708 533 t f f; +#X obj 710 312 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 4800 1; +#X obj 685 458 -; +#X obj 706 421 t f f; +#X msg 689 501 drag \$1 0; +#X msg 691 613 drag 0 \$1; +#X obj 786 630 loadbang; +#X obj 1109 75 damping d1 10; +#X obj 924 65 force f1 0 10000; +#X obj 966 144 damping d2 10; +#X obj 960 215 damping d3 10; +#X obj 958 286 damping d4 10; +#X obj 953 435 damping d6 10; +#X obj 936 511 damping d7 10; +#X obj 833 670 damping d9 3000; +#X obj 771 695 mass m9 50 350 100 0 0; +#X obj 1115 681 spring s9 1000 20; +#X obj 1123 603 spring s8 1000 20; +#X obj 1120 527 spring s6 1000 20; +#X obj 1119 443 spring s5 1000 20; +#X obj 1120 328 spring s3 1000 20; +#X obj 1123 264 spring s2 1000 20; +#X obj 1136 207 spring s1 1000 20; +#X obj 1117 388 spring s4 1000 20; +#X obj 942 588 damping d8 10; +#X obj 819 380 s xy11; +#X obj 819 408 s xy12; +#X obj 819 438 s xy13; +#X obj 819 462 s xy14; +#X obj 819 488 s xy15; +#X obj 818 516 s xy16; +#X obj 817 544 s xy17; +#X obj 816 570 s xy18; +#X obj 816 594 s xy19; +#X obj 1141 141 seg m1 */my_string/1m1; +#X obj 1137 180 seg l1 */my_string/1l1; +#X obj 1124 236 seg l2 */my_string/1l2; +#X obj 1120 302 seg l3 */my_string/1l3; +#X obj 1117 362 seg l4 */my_string/1l4; +#X obj 1119 417 seg l5 */my_string/1l5; +#X obj 1119 499 seg l6 */my_string/1l6; +#X obj 1123 577 seg l7 */my_string/1l7; +#X obj 1120 656 seg l8 */my_string/1l8; +#X obj 1009 707 seg m2 */my_string/1m2; +#X msg 52 148 show \, size 1000 700; +#X obj 1001 731 spring sl 5000 0 250 250 750 100; +#X obj 17 283 r x2; +#X obj 18 259 r y2; +#X obj 681 249 r x1; +#X obj 682 274 r y1; +#X obj 154 391 s xy21; +#X obj 154 419 s xy22; +#X obj 155 448 s xy23; +#X obj 154 475 s xy24; +#X obj 155 499 s xy25; +#X obj 152 525 s xy26; +#X obj 152 556 s xy27; +#X obj 149 582 s xy28; +#X obj 151 605 s xy29; +#X obj 950 361 damping d5 10; +#X obj 906 90 mass m1 2 750 260 0 0; +#X obj 908 163 mass m2 1 750 240 0 0; +#X obj 898 239 mass m3 1 750 220 0 0; +#X obj 894 310 mass m4 1 750 200 0 0; +#X obj 889 385 mass m5 1 750 180 0 0; +#X obj 878 462 mass m6 1 750 160 0 0; +#X obj 875 536 mass m7 1 750 140 0 0; +#X obj 876 616 mass m8 1 750 120 0 0; +#X connect 0 0 55 0; +#X connect 0 0 56 0; +#X connect 0 0 58 0; +#X connect 0 0 60 0; +#X connect 0 0 62 0; +#X connect 0 0 64 0; +#X connect 0 0 66 0; +#X connect 0 0 68 0; +#X connect 0 0 70 0; +#X connect 0 0 72 0; +#X connect 1 0 2 0; +#X connect 2 0 24 0; +#X connect 2 0 19 0; +#X connect 2 0 3 0; +#X connect 2 1 0 0; +#X connect 2 2 27 0; +#X connect 2 3 147 0; +#X connect 3 0 40 0; +#X connect 3 0 42 0; +#X connect 3 0 44 0; +#X connect 3 0 46 0; +#X connect 3 0 48 0; +#X connect 3 0 50 0; +#X connect 3 0 52 0; +#X connect 3 0 54 0; +#X connect 3 0 74 0; +#X connect 4 0 55 0; +#X connect 4 0 56 0; +#X connect 5 0 55 0; +#X connect 7 0 58 0; +#X connect 8 0 56 0; +#X connect 9 0 64 0; +#X connect 10 0 62 0; +#X connect 11 0 66 0; +#X connect 12 0 64 0; +#X connect 13 0 68 0; +#X connect 14 0 66 0; +#X connect 15 0 60 0; +#X connect 16 0 58 0; +#X connect 17 0 62 0; +#X connect 18 0 60 0; +#X connect 19 0 55 0; +#X connect 20 0 70 0; +#X connect 21 0 68 0; +#X connect 22 0 72 0; +#X connect 23 0 70 0; +#X connect 23 0 72 0; +#X connect 24 0 55 0; +#X connect 25 0 72 0; +#X connect 27 0 28 0; +#X connect 29 0 31 0; +#X connect 30 0 36 0; +#X connect 31 0 30 1; +#X connect 31 1 30 0; +#X connect 32 0 34 0; +#X connect 33 0 35 0; +#X connect 34 0 33 1; +#X connect 34 1 33 0; +#X connect 35 0 74 0; +#X connect 36 0 74 0; +#X connect 37 0 25 0; +#X connect 38 1 40 1; +#X connect 39 1 40 1; +#X connect 40 1 4 0; +#X connect 40 1 5 0; +#X connect 40 1 38 1; +#X connect 40 1 57 1; +#X connect 40 1 153 0; +#X connect 41 1 42 1; +#X connect 42 1 7 0; +#X connect 42 1 8 0; +#X connect 42 1 41 1; +#X connect 42 1 57 2; +#X connect 42 1 59 1; +#X connect 42 1 154 0; +#X connect 43 1 44 1; +#X connect 44 1 15 0; +#X connect 44 1 16 0; +#X connect 44 1 43 1; +#X connect 44 1 59 2; +#X connect 44 1 61 1; +#X connect 44 1 155 0; +#X connect 45 1 46 1; +#X connect 46 1 17 0; +#X connect 46 1 18 0; +#X connect 46 1 45 1; +#X connect 46 1 61 2; +#X connect 46 1 63 1; +#X connect 46 1 156 0; +#X connect 47 1 48 1; +#X connect 48 1 9 0; +#X connect 48 1 10 0; +#X connect 48 1 47 1; +#X connect 48 1 63 2; +#X connect 48 1 65 1; +#X connect 48 1 157 0; +#X connect 49 1 50 1; +#X connect 50 1 11 0; +#X connect 50 1 12 0; +#X connect 50 1 49 1; +#X connect 50 1 65 2; +#X connect 50 1 67 1; +#X connect 50 1 158 0; +#X connect 51 1 52 1; +#X connect 52 1 13 0; +#X connect 52 1 14 0; +#X connect 52 1 51 1; +#X connect 52 1 67 2; +#X connect 52 1 69 1; +#X connect 52 1 159 0; +#X connect 53 1 54 1; +#X connect 54 1 20 0; +#X connect 54 1 21 0; +#X connect 54 1 53 1; +#X connect 54 1 69 2; +#X connect 54 1 71 1; +#X connect 54 1 160 0; +#X connect 57 1 40 1; +#X connect 57 2 42 1; +#X connect 57 2 42 1; +#X connect 59 1 42 1; +#X connect 59 2 44 1; +#X connect 61 1 44 1; +#X connect 61 2 46 1; +#X connect 63 1 46 1; +#X connect 63 2 48 1; +#X connect 65 1 48 1; +#X connect 65 2 50 1; +#X connect 67 1 50 1; +#X connect 67 2 52 1; +#X connect 69 1 52 1; +#X connect 69 2 54 1; +#X connect 71 1 54 1; +#X connect 71 2 74 1; +#X connect 73 1 74 1; +#X connect 74 1 22 0; +#X connect 74 1 23 0; +#X connect 74 1 71 2; +#X connect 74 1 73 1; +#X connect 74 1 75 1; +#X connect 74 1 161 0; +#X connect 75 1 74 1; +#X connect 76 0 137 0; +#X connect 76 0 138 0; +#X connect 76 0 139 0; +#X connect 76 0 140 0; +#X connect 76 0 141 0; +#X connect 76 0 142 0; +#X connect 76 0 143 0; +#X connect 76 0 144 0; +#X connect 76 0 145 0; +#X connect 76 0 146 0; +#X connect 77 0 78 0; +#X connect 78 0 99 0; +#X connect 78 0 94 0; +#X connect 78 0 79 0; +#X connect 78 1 76 0; +#X connect 79 0 118 0; +#X connect 79 0 163 0; +#X connect 79 0 164 0; +#X connect 79 0 165 0; +#X connect 79 0 166 0; +#X connect 79 0 167 0; +#X connect 79 0 168 0; +#X connect 79 0 169 0; +#X connect 79 0 170 0; +#X connect 80 0 137 0; +#X connect 80 0 138 0; +#X connect 81 0 137 0; +#X connect 82 0 139 0; +#X connect 83 0 138 0; +#X connect 84 0 142 0; +#X connect 85 0 141 0; +#X connect 86 0 143 0; +#X connect 87 0 142 0; +#X connect 88 0 144 0; +#X connect 89 0 143 0; +#X connect 90 0 140 0; +#X connect 91 0 139 0; +#X connect 92 0 141 0; +#X connect 93 0 140 0; +#X connect 94 0 137 0; +#X connect 95 0 145 0; +#X connect 96 0 144 0; +#X connect 97 0 146 0; +#X connect 98 0 145 0; +#X connect 98 0 146 0; +#X connect 99 0 137 0; +#X connect 100 0 146 0; +#X connect 101 0 103 0; +#X connect 102 0 108 0; +#X connect 103 0 102 1; +#X connect 103 1 102 0; +#X connect 104 0 106 0; +#X connect 105 0 107 0; +#X connect 106 0 105 1; +#X connect 106 1 105 0; +#X connect 107 0 118 0; +#X connect 108 0 118 0; +#X connect 109 0 100 0; +#X connect 110 1 163 1; +#X connect 111 1 163 1; +#X connect 112 1 164 1; +#X connect 113 1 165 1; +#X connect 114 1 166 1; +#X connect 115 1 168 1; +#X connect 116 1 169 1; +#X connect 117 1 118 1; +#X connect 118 1 97 0; +#X connect 118 1 98 0; +#X connect 118 1 117 1; +#X connect 118 1 119 2; +#X connect 118 1 136 0; +#X connect 118 1 148 1; +#X connect 119 1 170 1; +#X connect 119 2 118 1; +#X connect 120 1 169 1; +#X connect 120 2 170 1; +#X connect 121 1 168 1; +#X connect 121 2 169 1; +#X connect 122 1 167 1; +#X connect 122 2 168 1; +#X connect 123 1 165 1; +#X connect 123 2 166 1; +#X connect 124 1 164 1; +#X connect 124 2 165 1; +#X connect 125 1 163 1; +#X connect 125 2 164 1; +#X connect 125 2 164 1; +#X connect 126 1 166 1; +#X connect 126 2 167 1; +#X connect 127 1 170 1; +#X connect 147 0 28 0; +#X connect 148 1 118 1; +#X connect 149 0 34 0; +#X connect 150 0 31 0; +#X connect 151 0 106 0; +#X connect 152 0 103 0; +#X connect 162 1 167 1; +#X connect 163 1 80 0; +#X connect 163 1 81 0; +#X connect 163 1 110 1; +#X connect 163 1 125 1; +#X connect 163 1 128 0; +#X connect 164 1 82 0; +#X connect 164 1 83 0; +#X connect 164 1 112 1; +#X connect 164 1 124 1; +#X connect 164 1 125 2; +#X connect 164 1 129 0; +#X connect 165 1 90 0; +#X connect 165 1 91 0; +#X connect 165 1 113 1; +#X connect 165 1 123 1; +#X connect 165 1 124 2; +#X connect 165 1 130 0; +#X connect 166 1 92 0; +#X connect 166 1 93 0; +#X connect 166 1 114 1; +#X connect 166 1 123 2; +#X connect 166 1 126 1; +#X connect 166 1 131 0; +#X connect 167 1 84 0; +#X connect 167 1 85 0; +#X connect 167 1 122 1; +#X connect 167 1 126 2; +#X connect 167 1 132 0; +#X connect 167 1 162 1; +#X connect 168 1 86 0; +#X connect 168 1 87 0; +#X connect 168 1 115 1; +#X connect 168 1 121 1; +#X connect 168 1 122 2; +#X connect 168 1 133 0; +#X connect 169 1 88 0; +#X connect 169 1 89 0; +#X connect 169 1 116 1; +#X connect 169 1 120 1; +#X connect 169 1 121 2; +#X connect 169 1 134 0; +#X connect 170 1 95 0; +#X connect 170 1 96 0; +#X connect 170 1 119 1; +#X connect 170 1 120 2; +#X connect 170 1 127 1; +#X connect 170 1 135 0; diff --git a/xgui/doc/sound/atom.pd b/xgui/doc/sound/atom.pd new file mode 100644 index 00000000..561955e2 --- /dev/null +++ b/xgui/doc/sound/atom.pd @@ -0,0 +1,33 @@ +#N canvas 288 79 328 356 12; +#X obj 17 20 inlet; +#X obj 189 14 loadbang; +#X floatatom 204 81 5 0 0; +#X obj 187 43 \$1; +#X obj 108 228 osc~; +#X obj 110 119 +; +#X obj 141 301 outlet~; +#X obj 111 149 mtof; +#X obj 17 50 unpack s 0 0 0 0; +#X obj 109 200 line~; +#X obj 110 173 pack 0 50; +#X obj 203 165 / 400; +#X obj 141 271 *~; +#X obj 201 226 line~; +#X obj 202 199 pack 0 50; +#X obj 109 91 / 50; +#X connect 0 0 8 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 5 1; +#X connect 4 0 12 0; +#X connect 5 0 7 0; +#X connect 7 0 10 0; +#X connect 8 3 15 0; +#X connect 8 4 11 0; +#X connect 9 0 4 0; +#X connect 10 0 9 0; +#X connect 11 0 14 0; +#X connect 12 0 6 0; +#X connect 13 0 12 1; +#X connect 14 0 13 0; +#X connect 15 0 5 0; diff --git a/xgui/doc/sound/sound.pd b/xgui/doc/sound/sound.pd new file mode 100644 index 00000000..f6a210bf --- /dev/null +++ b/xgui/doc/sound/sound.pd @@ -0,0 +1,136 @@ +#N canvas 28 -13 1010 170 12; +#X obj 866 32 vsl 15 128 0 127 0 0 move_y2 empty empty 0 -8 128 8 -262144 +-1 -1 12700 1; +#X obj 804 88 hsl 128 15 0 127 0 0 move_x2 empty empty -2 -6 128 8 +-262144 -1 -1 12700 1; +#X obj 212 153 dac~; +#X obj 212 123 *~ 0.2; +#X obj 275 152 dac~; +#X obj 275 122 *~ 0.2; +#X obj 338 153 dac~; +#X obj 338 121 *~ 0.2; +#X obj 406 152 dac~; +#X obj 402 122 *~ 0.2; +#X obj 473 154 dac~; +#X obj 467 121 *~ 0.2; +#X obj 530 156 dac~; +#X obj 530 121 *~ 0.2; +#X obj 467 82 atom 60; +#X obj 595 151 dac~; +#X obj 592 121 *~ 0.2; +#X obj 655 152 dac~; +#X obj 655 119 *~ 0.2; +#X obj 655 80 atom 24; +#X obj 592 82 atom 36; +#X obj 530 82 atom 48; +#X obj 402 83 atom 72; +#X obj 338 82 atom 65; +#X obj 275 83 atom 63; +#X obj 212 84 atom 67; +#X obj 103 33 vsl 15 128 0 127 0 0 move_y1 empty empty 0 -8 128 8 -262144 +-1 -1 7200 1; +#X obj 54 91 hsl 128 15 0 127 0 0 move_x1 empty empty -2 -6 128 8 -262144 +-1 -1 5700 1; +#X obj 216 12 2yoyo; +#X obj 214 307 dac~; +#X obj 214 277 *~ 0.2; +#X obj 277 306 dac~; +#X obj 277 276 *~ 0.2; +#X obj 340 307 dac~; +#X obj 340 275 *~ 0.2; +#X obj 408 306 dac~; +#X obj 404 276 *~ 0.2; +#X obj 475 308 dac~; +#X obj 469 275 *~ 0.2; +#X obj 532 310 dac~; +#X obj 532 275 *~ 0.2; +#X obj 469 236 atom 60; +#X obj 597 305 dac~; +#X obj 594 275 *~ 0.2; +#X obj 657 306 dac~; +#X obj 657 273 *~ 0.2; +#X obj 657 234 atom 24; +#X obj 594 236 atom 36; +#X obj 532 236 atom 48; +#X obj 404 237 atom 72; +#X obj 340 236 atom 65; +#X obj 277 237 atom 63; +#X obj 214 238 atom 67; +#X obj 214 206 r xy28; +#X obj 276 202 r xy27; +#X obj 339 202 r xy26; +#X obj 403 202 r xy25; +#X obj 468 201 r xy24; +#X obj 531 202 r xy23; +#X obj 594 201 r xy22; +#X obj 656 199 r xy21; +#X msg 726 84 0.05; +#X msg 728 238 0.05; +#X obj 212 52 r xy11; +#X obj 274 48 r xy12; +#X obj 337 48 r xy13; +#X obj 401 48 r xy14; +#X obj 466 47 r xy15; +#X obj 529 48 r xy16; +#X obj 592 47 r xy17; +#X obj 654 45 r xy18; +#X connect 3 0 2 0; +#X connect 5 0 4 0; +#X connect 7 0 6 0; +#X connect 9 0 8 0; +#X connect 11 0 10 0; +#X connect 13 0 12 0; +#X connect 14 0 11 0; +#X connect 16 0 15 0; +#X connect 18 0 17 0; +#X connect 19 0 18 0; +#X connect 20 0 16 0; +#X connect 21 0 13 0; +#X connect 22 0 9 0; +#X connect 23 0 7 0; +#X connect 24 0 5 0; +#X connect 25 0 3 0; +#X connect 30 0 29 1; +#X connect 32 0 31 1; +#X connect 34 0 33 1; +#X connect 36 0 35 1; +#X connect 38 0 37 1; +#X connect 40 0 39 1; +#X connect 41 0 38 0; +#X connect 43 0 42 1; +#X connect 45 0 44 1; +#X connect 46 0 45 0; +#X connect 47 0 43 0; +#X connect 48 0 40 0; +#X connect 49 0 36 0; +#X connect 50 0 34 0; +#X connect 51 0 32 0; +#X connect 52 0 30 0; +#X connect 53 0 52 0; +#X connect 54 0 51 0; +#X connect 55 0 50 0; +#X connect 56 0 49 0; +#X connect 57 0 41 0; +#X connect 58 0 48 0; +#X connect 59 0 47 0; +#X connect 60 0 46 0; +#X connect 61 0 3 1; +#X connect 61 0 5 1; +#X connect 61 0 9 1; +#X connect 61 0 13 1; +#X connect 61 0 16 1; +#X connect 61 0 18 1; +#X connect 62 0 30 1; +#X connect 62 0 32 1; +#X connect 62 0 36 1; +#X connect 62 0 40 1; +#X connect 62 0 43 1; +#X connect 62 0 45 1; +#X connect 63 0 25 0; +#X connect 64 0 24 0; +#X connect 65 0 23 0; +#X connect 66 0 22 0; +#X connect 67 0 14 0; +#X connect 68 0 21 0; +#X connect 69 0 20 0; +#X connect 70 0 19 0; diff --git a/xgui/filters/coord.pd b/xgui/filters/coord.pd new file mode 100644 index 00000000..58ab6271 --- /dev/null +++ b/xgui/filters/coord.pd @@ -0,0 +1,10 @@ +#N canvas 525 571 229 169 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X obj 35 63 route coord; +#X msg 35 87 coord \$1 \$2 \$3 \$4; +#X text 10 6 coord : filter coord command; +#X connect 1 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; diff --git a/xgui/filters/xy1.pd b/xgui/filters/xy1.pd new file mode 100644 index 00000000..ec45cc36 --- /dev/null +++ b/xgui/filters/xy1.pd @@ -0,0 +1,10 @@ +#N canvas 525 571 290 169 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X text 10 6 move : filter move command; +#X obj 35 63 route xy1; +#X msg 35 87 xy1 \$1 \$2; +#X connect 1 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; diff --git a/xgui/filters/xy2.pd b/xgui/filters/xy2.pd new file mode 100644 index 00000000..f62f4170 --- /dev/null +++ b/xgui/filters/xy2.pd @@ -0,0 +1,10 @@ +#N canvas 537 631 290 169 10; +#X text 120 114 dh20020106; +#X obj 35 36 inlet; +#X obj 35 111 outlet; +#X text 10 6 move : filter move command; +#X msg 35 87 xy2 \$1 \$2; +#X obj 35 63 route xy2; +#X connect 1 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; diff --git a/xgui/install.bat b/xgui/install.bat new file mode 100644 index 00000000..fa81b06d --- /dev/null +++ b/xgui/install.bat @@ -0,0 +1,7 @@ +mkdir ..\doc\xgui +copy doc\* ..\doc\xgui +cd bin +copy *.dll ..\..\extra +cd .. + + diff --git a/xgui/main/alias.pd b/xgui/main/alias.pd new file mode 100644 index 00000000..d5c0d467 --- /dev/null +++ b/xgui/main/alias.pd @@ -0,0 +1,9 @@ +#N canvas 0 0 454 304 12; +#X obj 10 9 inlet; +#X obj 10 90 outlet; +#X text 77 93 dh20020215; +#X text 95 7 alias an existing object; +#X obj 10 36 s \$1-in; +#X obj 10 63 r \$1-out; +#X connect 0 0 4 0; +#X connect 5 0 1 0; diff --git a/xgui/main/arc.pd b/xgui/main/arc.pd new file mode 100644 index 00000000..6586c96c --- /dev/null +++ b/xgui/main/arc.pd @@ -0,0 +1,59 @@ +#N canvas 201 377 599 300 10; +#X obj 24 30 inlet; +#X obj 462 176 outlet; +#X text 454 203 dh2002010x; +#X text 465 214 dh20020316; +#X text 24 9 The SEG onject; +#X text 476 228 dh20020425; +#X obj 333 121 oname2l; +#X obj 333 144 unpack s s s; +#X obj 333 75 loadbang; +#X obj 333 236 s \$1-c; +#X obj 408 164 s \$1-o; +#X obj 52 90 r \$1-c; +#X obj 126 94 r \$1-o; +#X obj 333 167 pack s s; +#X text 486 235 dh20020530; +#X obj 332 207 a2s; +#X msg 333 190 list \$1 / \$2; +#X obj 139 228 send to_node; +#X obj 333 98 symbol \$2; +#X obj 59 30 r \$1-in; +#X obj 471 151 s \$1-out; +#X obj 195 154 concat do; +#X obj 195 131 concat \$2; +#X obj 13 145 make4seg_sss x del x; +#X obj 24 55 route show hide @; +#X obj 462 99 recv2 \$2; +#X obj 460 73 concat @; +#X obj 216 101 concat symbol; +#X obj 13 122 make4seg_sss x add_arc x; +#X connect 0 0 24 0; +#X connect 6 0 7 0; +#X connect 7 0 13 0; +#X connect 7 1 13 1; +#X connect 7 2 10 0; +#X connect 8 0 18 0; +#X connect 11 0 23 1; +#X connect 11 0 28 1; +#X connect 12 0 23 3; +#X connect 12 0 28 3; +#X connect 13 0 16 0; +#X connect 15 0 9 0; +#X connect 16 0 15 0; +#X connect 18 0 6 0; +#X connect 19 0 24 0; +#X connect 21 0 17 0; +#X connect 22 0 21 0; +#X connect 23 0 17 0; +#X connect 24 0 28 0; +#X connect 24 1 23 0; +#X connect 24 2 18 0; +#X connect 24 2 26 0; +#X connect 24 2 27 0; +#X connect 24 3 22 0; +#X connect 25 0 1 0; +#X connect 25 0 20 0; +#X connect 26 0 25 0; +#X connect 27 0 22 1; +#X connect 28 0 17 0; diff --git a/xgui/main/canvas.pd b/xgui/main/canvas.pd new file mode 100644 index 00000000..b40a101d --- /dev/null +++ b/xgui/main/canvas.pd @@ -0,0 +1,28 @@ +#N canvas 50 250 521 286 10; +#X obj 196 8 inlet; +#X obj 399 104 outlet; +#X obj 237 8 r \$1-in; +#X obj 423 64 s \$1-out; +#X text 406 137 dh20020316; +#X text 22 8 The CANVAS object; +#X obj 69 111 make4seg_ss */ add_canvas \$1; +#X obj 121 134 make4seg_ss */ del_canvas \$1; +#X obj 399 32 receive \$1; +#X obj 202 231 send to_node; +#X obj 399 9 receive \$1/; +#X obj 303 132 concat do; +#X obj 196 33 route show hide; +#X obj 303 107 concat \$1; +#X connect 0 0 12 0; +#X connect 2 0 12 0; +#X connect 6 0 9 0; +#X connect 7 0 9 0; +#X connect 8 0 3 0; +#X connect 8 0 1 0; +#X connect 10 0 1 0; +#X connect 10 0 3 0; +#X connect 11 0 9 0; +#X connect 12 0 6 0; +#X connect 12 1 7 0; +#X connect 12 2 13 0; +#X connect 13 0 11 0; diff --git a/xgui/main/make4seg_ss.pd b/xgui/main/make4seg_ss.pd new file mode 100644 index 00000000..1d6dd1f9 --- /dev/null +++ b/xgui/main/make4seg_ss.pd @@ -0,0 +1,31 @@ +#N canvas 353 333 341 355 12; +#X obj 21 34 inlet; +#X obj 21 294 outlet; +#X obj 43 130 symbol \$1; +#X obj 80 157 symbol \$2; +#X obj 118 182 symbol \$3; +#X obj 21 60 bang; +#X obj 110 103 inlet; +#X obj 147 130 inlet; +#X obj 184 157 inlet; +#X obj 43 208 pack s s s; +#X obj 21 86 t b b b b; +#X text 205 299 dh20020316; +#X text 25 4 make easy to concatenate 3 symbols.; +#X msg 43 234 set do \$1 \$2 \$3; +#X msg 21 268 do */ add_canvas */my_first_canvas; +#X connect 0 0 5 0; +#X connect 2 0 9 0; +#X connect 3 0 9 1; +#X connect 4 0 9 2; +#X connect 5 0 10 0; +#X connect 6 0 2 1; +#X connect 7 0 3 1; +#X connect 8 0 4 1; +#X connect 9 0 13 0; +#X connect 10 0 14 0; +#X connect 10 1 2 0; +#X connect 10 2 3 0; +#X connect 10 3 4 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; diff --git a/xgui/main/make4seg_sss.pd b/xgui/main/make4seg_sss.pd new file mode 100644 index 00000000..75f3027c --- /dev/null +++ b/xgui/main/make4seg_sss.pd @@ -0,0 +1,33 @@ +#N canvas 325 279 339 353 12; +#X obj 21 34 inlet; +#X obj 21 294 outlet; +#X obj 43 130 symbol \$1; +#X obj 80 157 symbol \$2; +#X obj 118 182 symbol \$3; +#X msg 21 268 do */my_first_canvas/my_first_seg add_seg ; +#X obj 21 60 bang; +#X obj 43 208 pack s s s; +#X obj 21 86 t b b b b; +#X text 205 299 dh20020316; +#X text 25 4 make easy to concatenate 3 symbols.; +#X obj 208 125 inlet; +#X obj 209 155 symbol; +#X msg 43 234 set do \$1 \$2 \$3; +#X obj 111 99 inlet; +#X obj 148 130 inlet; +#X connect 0 0 6 0; +#X connect 2 0 7 0; +#X connect 3 0 7 1; +#X connect 4 0 7 2; +#X connect 5 0 1 0; +#X connect 6 0 8 0; +#X connect 7 0 13 0; +#X connect 8 0 5 0; +#X connect 8 1 2 0; +#X connect 8 2 3 0; +#X connect 8 3 4 0; +#X connect 11 0 12 0; +#X connect 12 0 4 1; +#X connect 13 0 5 0; +#X connect 14 0 2 1; +#X connect 15 0 3 1; diff --git a/xgui/main/make_obj_name.pd b/xgui/main/make_obj_name.pd new file mode 100644 index 00000000..89c24023 --- /dev/null +++ b/xgui/main/make_obj_name.pd @@ -0,0 +1,23 @@ +#N canvas 295 214 335 231 10; +#X msg 28 174 @ \$1; +#X obj 28 110 concat \$1; +#X obj 28 88 concat /; +#X obj 28 131 concat list; +#X obj 28 153 a2s; +#X obj 28 196 outlet; +#X text 253 200 dh20020602; +#X obj 28 68 concat o; +#X obj 28 46 unique; +#X msg 157 28 bang; +#X symbolatom 159 171 10 0 0; +#X obj 28 22 loadbang; +#X connect 0 0 5 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 0 0; +#X connect 4 0 10 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 11 0 8 0; diff --git a/xgui/main/node.pd b/xgui/main/node.pd new file mode 100644 index 00000000..cb84207a --- /dev/null +++ b/xgui/main/node.pd @@ -0,0 +1,100 @@ +#N canvas 409 95 574 567 10; +#X obj 31 28 inlet; +#X text 14 10 The pd basic node; +#X obj 9 260 outlet; +#X obj 47 304 netreceive \$2; +#X obj 261 9 loadbang; +#X obj 163 141 concat send; +#X obj 261 60 symbol \$1; +#X obj 321 59 float \$2; +#X obj 261 85 pack s f; +#X obj 31 51 route connect disconnect do; +#X obj 82 163 netsend; +#X obj 9 228 r */; +#X obj 74 27 r to_node; +#X msg 261 108 list \$1 : \$2; +#X obj 261 130 a2s; +#X obj 261 33 t b b; +#X text 310 398 dh20020530; +#X obj 161 96 spigot; +#X obj 86 263 outlet; +#X obj 86 240 a2s; +#X obj 86 215 concat list; +#X obj 193 395 outlet; +#X obj 189 367 a2s; +#X obj 188 344 concat list; +#X msg 86 191 connect_to_ \$1 _other_nodes; +#X msg 188 320 connect_from_ \$1 _other_nodes; +#X obj 31 80 t a b; +#X obj 23 330 replace_selector foo; +#X obj 23 354 route foo; +#X obj 55 401 send2; +#X obj 416 344 oname2l; +#X obj 416 321 symbol; +#X obj 419 390 a2s; +#X msg 416 367 list * / \$2 / \$3; +#X obj 23 424 replace_selector foo; +#X obj 23 455 send2; +#X obj 446 414 a2s; +#X msg 443 391 list * / \$2; +#X obj 23 378 t a a a a; +#X obj 164 426 replace_selector foo; +#X obj 190 248 print in_pd; +#X obj 285 238 print out_pd; +#X obj 31 108 concat connect; +#X msg 69 132 disconnect; +#X obj 284 216 spigot; +#X obj 190 227 spigot; +#X obj 520 17 inlet; +#X obj 162 118 concat pd; +#X connect 0 0 9 0; +#X connect 3 0 45 0; +#X connect 3 0 27 0; +#X connect 3 1 25 0; +#X connect 4 0 15 0; +#X connect 5 0 44 0; +#X connect 5 0 10 0; +#X connect 6 0 8 0; +#X connect 7 0 8 1; +#X connect 8 0 13 0; +#X connect 9 0 26 0; +#X connect 9 1 43 0; +#X connect 9 2 17 0; +#X connect 10 0 24 0; +#X connect 10 0 17 1; +#X connect 11 0 2 0; +#X connect 12 0 9 0; +#X connect 13 0 14 0; +#X connect 15 0 6 0; +#X connect 15 1 7 0; +#X connect 17 0 47 0; +#X connect 19 0 18 0; +#X connect 20 0 19 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 24 0 20 0; +#X connect 25 0 23 0; +#X connect 26 0 42 0; +#X connect 26 1 43 0; +#X connect 27 0 28 0; +#X connect 28 0 38 0; +#X connect 30 0 33 0; +#X connect 30 0 37 0; +#X connect 31 0 30 0; +#X connect 32 0 34 1; +#X connect 33 0 32 0; +#X connect 34 0 35 0; +#X connect 36 0 39 1; +#X connect 37 0 36 0; +#X connect 38 0 34 0; +#X connect 38 1 39 0; +#X connect 38 2 29 0; +#X connect 38 3 31 0; +#X connect 39 0 35 0; +#X connect 42 0 10 0; +#X connect 43 0 10 0; +#X connect 44 0 41 0; +#X connect 45 0 40 0; +#X connect 46 0 44 1; +#X connect 46 0 45 1; +#X connect 47 0 5 0; diff --git a/xgui/main/pdx_connect.pd b/xgui/main/pdx_connect.pd new file mode 100755 index 00000000..54298a29 --- /dev/null +++ b/xgui/main/pdx_connect.pd @@ -0,0 +1,77 @@ +#N canvas 60 126 1021 550 12; +#X msg 728 285 bang; +#X msg 778 285 stop; +#X obj 728 313 loadbang; +#X obj 700 475 s b_mass; +#X obj 806 393 s b_init; +#X obj 728 367 t b b b b; +#X obj 775 424 s b_spring; +#X obj 728 341 metro 50; +#X obj 672 505 valueinit time_interval 0.05; +#X obj 740 451 s b_force; +#X text 443 442 dh20020530; +#X obj 15 253 print node1; +#X obj 15 339 print node2; +#X symbolatom 25 198 30 0 0; +#X symbolatom 26 225 30 0 0; +#X obj 15 171 node localhost 4871; +#X msg 260 67 disconnect; +#X text -17 515 Keep this patch open to keep the link with xgui active. +; +#X text -18 497 Go and see Help Pure documentation /xgui to see some +demos; +#X obj 14 18 loadbang; +#X obj 14 43 t b b; +#X floatatom 199 173 1 0 1; +#X obj 15 310 node 192.168.0.5 4872; +#X msg 15 282 connect 192.168.0.4 4877 \, do */ connect 192.168.0.4:4877 +; +#X msg 64 43 do ~/ connect_on 192.168.0.4:4877 physics; +#X msg 547 59 do ~/ connect_on 192.168.0.4:4877 my_canvas; +#X msg 548 31 do ~/ connect_on pd.la-kitchen.net:4877 physics; +#X msg 448 224 do localhost:4878/ connect pd pd.la-kitchen:4871; +#X msg 450 149 do pd.la-kitchen.net:4877/ connect me; +#X msg 450 176 do pd.la-kitchen.net:4877/ clone physics ~/physics localhost:4877 +; +#X msg 446 100 do ~/ connect pd.la-kitchen.net:4877; +#X msg 259 316 connect pd.la-kitchen.net 4877; +#X symbolatom 95 366 30 0 0; +#X symbolatom 96 393 30 0 0; +#X msg 14 95 do localhost:4877/ connect pd localhost:4871; +#X msg 24 121 do localhost:4877/ disconnect pd; +#X msg 49 68 connect localhost 4877; +#X msg 447 122 do pd.la-kitchen.net:4877/ # test***; +#X msg 190 4 do ~/ rename moi 4877; +#X connect 0 0 7 0; +#X connect 1 0 7 0; +#X connect 2 0 7 0; +#X connect 5 0 3 0; +#X connect 5 1 9 0; +#X connect 5 2 6 0; +#X connect 5 3 4 0; +#X connect 7 0 5 0; +#X connect 15 0 11 0; +#X connect 15 1 13 0; +#X connect 15 2 14 0; +#X connect 16 0 15 0; +#X connect 19 0 20 0; +#X connect 20 0 34 0; +#X connect 20 1 36 0; +#X connect 21 0 15 1; +#X connect 22 0 12 0; +#X connect 22 1 32 0; +#X connect 22 2 33 0; +#X connect 23 0 22 0; +#X connect 24 0 15 0; +#X connect 25 0 15 0; +#X connect 26 0 15 0; +#X connect 27 0 15 0; +#X connect 28 0 15 0; +#X connect 29 0 15 0; +#X connect 30 0 15 0; +#X connect 31 0 22 0; +#X connect 34 0 15 0; +#X connect 35 0 15 0; +#X connect 36 0 15 0; +#X connect 37 0 15 0; +#X connect 38 0 15 0; diff --git a/xgui/main/rect.pd b/xgui/main/rect.pd new file mode 100644 index 00000000..b964a70f --- /dev/null +++ b/xgui/main/rect.pd @@ -0,0 +1,59 @@ +#N canvas 201 377 601 302 10; +#X obj 24 30 inlet; +#X obj 462 176 outlet; +#X text 454 203 dh2002010x; +#X text 465 214 dh20020316; +#X text 476 228 dh20020425; +#X obj 333 121 oname2l; +#X obj 333 144 unpack s s s; +#X obj 333 75 loadbang; +#X obj 333 236 s \$1-c; +#X obj 408 164 s \$1-o; +#X obj 52 90 r \$1-c; +#X obj 126 94 r \$1-o; +#X obj 333 167 pack s s; +#X text 486 235 dh20020530; +#X obj 332 207 a2s; +#X msg 333 190 list \$1 / \$2; +#X obj 139 228 send to_node; +#X obj 333 98 symbol \$2; +#X obj 59 30 r \$1-in; +#X obj 471 151 s \$1-out; +#X obj 195 154 concat do; +#X obj 195 131 concat \$2; +#X obj 13 145 make4seg_sss x del x; +#X obj 24 55 route show hide @; +#X obj 462 99 recv2 \$2; +#X obj 460 73 concat @; +#X obj 216 101 concat symbol; +#X obj 13 122 make4seg_sss x add_rect x; +#X text 24 9 The Rect onject; +#X connect 0 0 23 0; +#X connect 5 0 6 0; +#X connect 6 0 12 0; +#X connect 6 1 12 1; +#X connect 6 2 9 0; +#X connect 7 0 17 0; +#X connect 10 0 22 1; +#X connect 10 0 27 1; +#X connect 11 0 22 3; +#X connect 11 0 27 3; +#X connect 12 0 15 0; +#X connect 14 0 8 0; +#X connect 15 0 14 0; +#X connect 17 0 5 0; +#X connect 18 0 23 0; +#X connect 20 0 16 0; +#X connect 21 0 20 0; +#X connect 22 0 16 0; +#X connect 23 0 27 0; +#X connect 23 1 22 0; +#X connect 23 2 17 0; +#X connect 23 2 25 0; +#X connect 23 2 26 0; +#X connect 23 3 21 0; +#X connect 24 0 1 0; +#X connect 24 0 19 0; +#X connect 25 0 24 0; +#X connect 26 0 21 1; +#X connect 27 0 16 0; diff --git a/xgui/main/seg.pd b/xgui/main/seg.pd new file mode 100644 index 00000000..1b44fd5d --- /dev/null +++ b/xgui/main/seg.pd @@ -0,0 +1,60 @@ +#N canvas 387 -9 599 292 10; +#X obj 24 30 inlet; +#X obj 472 176 outlet; +#X text 454 203 dh2002010x; +#X text 465 214 dh20020316; +#X text 24 9 The SEG onject; +#X text 476 228 dh20020425; +#X obj 333 121 oname2l; +#X obj 333 144 unpack s s s; +#X obj 333 75 loadbang; +#X obj 333 236 s \$1-c; +#X obj 408 164 s \$1-o; +#X obj 52 90 r \$1-c; +#X obj 126 94 r \$1-o; +#X obj 333 167 pack s s; +#X text 486 235 dh20020530; +#X obj 332 207 a2s; +#X msg 333 190 list \$1 / \$2; +#X obj 139 228 send to_node; +#X obj 333 98 symbol \$2; +#X obj 59 30 r \$1-in; +#X obj 481 151 s \$1-out; +#X obj 195 154 concat do; +#X obj 195 131 concat \$2; +#X obj 13 145 make4seg_sss x del x; +#X obj 13 122 make4seg_sss x add_seg x; +#X obj 24 55 route show hide @; +#X obj 472 99 recv2 \$2; +#X obj 470 73 concat @; +#X obj 216 101 concat symbol; +#X text 18 342 today's the 14 of july; +#X connect 0 0 25 0; +#X connect 6 0 7 0; +#X connect 7 0 13 0; +#X connect 7 1 13 1; +#X connect 7 2 10 0; +#X connect 8 0 18 0; +#X connect 11 0 23 1; +#X connect 11 0 24 1; +#X connect 12 0 23 3; +#X connect 12 0 24 3; +#X connect 13 0 16 0; +#X connect 15 0 9 0; +#X connect 16 0 15 0; +#X connect 18 0 6 0; +#X connect 19 0 25 0; +#X connect 21 0 17 0; +#X connect 22 0 21 0; +#X connect 23 0 17 0; +#X connect 24 0 17 0; +#X connect 25 0 24 0; +#X connect 25 1 23 0; +#X connect 25 2 18 0; +#X connect 25 2 27 0; +#X connect 25 2 28 0; +#X connect 25 3 22 0; +#X connect 26 0 1 0; +#X connect 26 0 20 0; +#X connect 27 0 26 0; +#X connect 28 0 22 1; diff --git a/xgui/main/text.pd b/xgui/main/text.pd new file mode 100644 index 00000000..ee3b8186 --- /dev/null +++ b/xgui/main/text.pd @@ -0,0 +1,59 @@ +#N canvas 201 377 599 300 10; +#X obj 24 30 inlet; +#X obj 462 176 outlet; +#X text 454 203 dh2002010x; +#X text 465 214 dh20020316; +#X text 476 228 dh20020425; +#X obj 333 121 oname2l; +#X obj 333 144 unpack s s s; +#X obj 333 75 loadbang; +#X obj 333 236 s \$1-c; +#X obj 408 164 s \$1-o; +#X obj 52 90 r \$1-c; +#X obj 126 94 r \$1-o; +#X obj 333 167 pack s s; +#X text 486 235 dh20020530; +#X obj 332 207 a2s; +#X msg 333 190 list \$1 / \$2; +#X obj 139 228 send to_node; +#X obj 333 98 symbol \$2; +#X obj 59 30 r \$1-in; +#X obj 471 151 s \$1-out; +#X obj 195 154 concat do; +#X obj 195 131 concat \$2; +#X obj 13 145 make4seg_sss x del x; +#X obj 24 55 route show hide @; +#X obj 462 99 recv2 \$2; +#X obj 460 73 concat @; +#X obj 216 101 concat symbol; +#X text 24 9 The text onject; +#X obj 13 122 make4seg_sss x add_text x; +#X connect 0 0 23 0; +#X connect 5 0 6 0; +#X connect 6 0 12 0; +#X connect 6 1 12 1; +#X connect 6 2 9 0; +#X connect 7 0 17 0; +#X connect 10 0 22 1; +#X connect 10 0 28 1; +#X connect 11 0 22 3; +#X connect 11 0 28 3; +#X connect 12 0 15 0; +#X connect 14 0 8 0; +#X connect 15 0 14 0; +#X connect 17 0 5 0; +#X connect 18 0 23 0; +#X connect 20 0 16 0; +#X connect 21 0 20 0; +#X connect 22 0 16 0; +#X connect 23 0 28 0; +#X connect 23 1 22 0; +#X connect 23 2 17 0; +#X connect 23 2 25 0; +#X connect 23 2 26 0; +#X connect 23 3 21 0; +#X connect 24 0 1 0; +#X connect 24 0 19 0; +#X connect 25 0 24 0; +#X connect 26 0 21 1; +#X connect 28 0 16 0; diff --git a/xgui/makefile b/xgui/makefile new file mode 100644 index 00000000..2c0e1631 --- /dev/null +++ b/xgui/makefile @@ -0,0 +1,64 @@ +#This is the xgui makefile. + +current: + cd xgui-lib ; make pd_linux ; cd .. + +uninstall: + +# bin + rm -f /usr/local/bin/xgui + rm -f /usr/local/bin/pdx +# main + rm -f /usr/local/lib/pdx/main/* + rmdir /usr/local/lib/pdx/main +# patch4pdx + rm -f /usr/local/lib/pdx/patch4pdx/* + rmdir /usr/local/lib/pdx/patch4pdx +# lib + rm -f /usr/local/lib/pdx/* + rmdir /usr/local/lib/pdx +# doc + rm -f /usr/local/lib/pd/doc/xgui/* + rmdir /usr/local/lib/pd/doc/xgui + + + +install: + +# bin + install ./bin/xgui.sh /usr/local/bin/xgui + install ./bin/pdx.sh /usr/local/bin/pdx + +# lib + mkdir -p /usr/local/lib/pdx + +# main + mkdir -p /usr/local/lib/pdx/main + install ./main/* /usr/local/lib/pdx/main/ + +# patch4pdx + mkdir -p /usr/local/lib/pdx/patch4pdx + + install ./adapters_in/* /usr/local/lib/pdx/patch4pdx/ + install ./adapters_out/* /usr/local/lib/pdx/patch4pdx/ + install ./behaviors/* /usr/local/lib/pdx/patch4pdx/ + install ./filters/* /usr/local/lib/pdx/patch4pdx/ + install ./objects/* /usr/local/lib/pdx/patch4pdx/ + install ./utils/* /usr/local/lib/pdx/patch4pdx/ + install ./physics/* /usr/local/lib/pdx/patch4pdx/ + +# xgui-lib + install ./bin/*.pd_linux /usr/local/lib/pd/extra/ + +# doc + mkdir -p /usr/local/lib/pd/doc/xgui/ + install ./doc/* /usr/local/lib/pd/doc/xgui/ + +archive: + cd ../;tar -cf xgui.tar xgui + gzip ../xgui.tar + +4linux: + chmod 774 pdx.sh + chmod 774 bin/pdx.sh + chmod 774 bin/xgui.sh diff --git a/xgui/netserver/help-netserver.pd b/xgui/netserver/help-netserver.pd new file mode 100644 index 00000000..10688163 --- /dev/null +++ b/xgui/netserver/help-netserver.pd @@ -0,0 +1,48 @@ +#N canvas 106 97 754 476 12; +#X floatatom 49 333 5 0 0; +#X floatatom 87 298 5 0 0; +#X symbolatom 164 251 10 0 0; +#X text 102 332 received data; +#X text 140 298 number of connections; +#X msg 49 54 print; +#X floatatom 125 272 5 0 0; +#X text 183 276 socket number; +#X msg 103 179 broadcast hallo world!; +#X text 288 179 send to all clients; +#X text 144 33 written by Olaf Matthes ; +#X obj 49 223 netserver 3000; +#X text 137 120 send message to client no. 1; +#X text 256 251 client's IP address; +#X msg 498 116 connect localhost 3000; +#X msg 511 143 disconnect; +#X msg 477 84 send 23; +#X floatatom 544 218 5 0 0; +#X msg 83 91 send 380 17.3; +#X floatatom 477 296 5 0 0; +#X obj 600 281 print anything; +#X obj 538 309 print list; +#X obj 477 245 route float list; +#X msg 98 142 client 1 23; +#X text 204 91 "send "; +#X text 110 70 send message on specified socket; +#X text 200 143 "client "; +#X text 48 379 This example demonstrates how to set up a client/server +connection. Data sent by the client get's received and displayed by +the server imediately. Or just try it the other way round...; +#X text 38 15 netclient :: simple client that connects to netserver +; +#X obj 480 189 netsend; +#X connect 5 0 11 0; +#X connect 8 0 11 0; +#X connect 11 0 0 0; +#X connect 11 1 1 0; +#X connect 11 2 6 0; +#X connect 11 3 2 0; +#X connect 14 0 29 0; +#X connect 16 0 29 0; +#X connect 18 0 11 0; +#X connect 22 0 19 0; +#X connect 22 1 21 0; +#X connect 22 2 20 0; +#X connect 23 0 11 0; +#X connect 29 0 22 0; diff --git a/xgui/netserver/makefile b/xgui/netserver/makefile new file mode 100644 index 00000000..d23f611d --- /dev/null +++ b/xgui/netserver/makefile @@ -0,0 +1,88 @@ +NAME=netserver +CSYM=netserver + +current: pd_nt pd_linux + +# ----------------------- NT ----------------------- + +pd_nt: $(NAME).dll + +.SUFFIXES: .dll + +PDNTCFLAGS = /W3 /WX /O2 /G6 /DNT /DPD /nologo + +# where is VC++ ??? +VC="C:\Programme\Microsoft Visual Studio\VC98" + +# where is your m_pd.h ??? +PDNTINCLUDE = /I. /Ic:\pd\tcl\include /Ic:\pd\src /I$(VC)\include /Iinclude + +PDNTLDIR = $(VC)\Lib +PDNTLIB = $(PDNTLDIR)\libc.lib \ + $(PDNTLDIR)\oldnames.lib \ + $(PDNTLDIR)\kernel32.lib \ + $(PDNTLDIR)\user32.lib \ + $(PDNTLDIR)\uuid.lib \ + $(PDNTLDIR)\ws2_32.lib \ + $(PDNTLDIR)\pthreadVC.lib \ + c:\pd\bin\pd.lib + +.c.dll: + cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c + link /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB) + +# ----------------------- IRIX 5.x ----------------------- + +pd_irix5: $(NAME).pd_irix5 + +.SUFFIXES: .pd_irix5 + +SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2 + +SGIINCLUDE = -I../../src + +.c.pd_irix5: + cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c + ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o + rm $*.o + +# ----------------------- IRIX 6.x ----------------------- + +pd_irix6: $(NAME).pd_irix6 + +.SUFFIXES: .pd_irix6 + +SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \ + -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \ + -Ofast=ip32 + +.c.pd_irix6: + cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c + ld -n32 -IPA -shared -rdata_shared -o $*.pd_irix6 $*.o + rm $*.o + +# ----------------------- LINUX i386 ----------------------- + +pd_linux: $(NAME).pd_linux + +.SUFFIXES: .pd_linux + +LINUXCFLAGS = -DPD -DUNIX -O2 -funroll-loops -fomit-frame-pointer \ + -Wall -W -Wshadow -Wstrict-prototypes -Werror \ + -Wno-unused -Wno-parentheses -Wno-switch + +# where is your m_pd.h ??? +LINUXINCLUDE = -I../../src + +.c.pd_linux: + cc -O2 -Wall -DPD -fPIC $(LINUXINCLUDE) -c $*.c + ld -export_dynamic -shared -o $*.pd_linux $*.o -lc + strip --strip-unneeded $*.pd_linux + +# ---------------------------------------------------------- + +install: + cp help-*.pd ../../doc/5.reference + +clean: + rm -f *.o *.pd_* so_locations diff --git a/xgui/netserver/netserver.c b/xgui/netserver/netserver.c new file mode 100644 index 00000000..199b7eea --- /dev/null +++ b/xgui/netserver/netserver.c @@ -0,0 +1,563 @@ +/* -------------------------- netserver ------------------------------------- */ +/* */ +/* A server for bidirectional communication from within Pd. */ +/* Allows to send back data to specific clients connected to the server. */ +/* Written by Olaf Matthes */ +/* Get source at http://www.akustische-kunst.org/puredata/maxlib */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* 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. */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program; if not, write to the Free Software */ +/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* */ +/* Based on PureData by Miller Puckette and others. */ +/* */ +/* ---------------------------------------------------------------------------- */ + +#include "m_imp.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef UNIX +#include +#include +#include +#include +#include +#include +#include +#include +#define SOCKET_ERROR -1 +#else +#include +#include +#include +#endif + +#define MAX_CONNECT 32 /* maximum number of connections */ +#define INBUFSIZE 4096 /* size of receiving data buffer */ + +static char *version = "netserver v0.1 :: bidirectional communication for Pd\n" + " written by Olaf Matthes "; + +/* ----------------------------- netserver ------------------------- */ + +static t_class *netserver_class; +static t_binbuf *inbinbuf; + +typedef void (*t_netserver_socketnotifier)(void *x); +typedef void (*t_netserver_socketreceivefn)(void *x, t_binbuf *b); + +typedef struct _netserver +{ + t_object x_obj; + t_outlet *x_msgout; + t_outlet *x_connectout; + t_outlet *x_clientno; + t_outlet *x_connectionip; + t_symbol *x_host[MAX_CONNECT]; + t_int x_fd[MAX_CONNECT]; + t_int x_sock_fd; + t_int x_connectsocket; + t_int x_nconnections; +} t_netserver; + +typedef struct _netserver_socketreceiver +{ + char *sr_inbuf; + int sr_inhead; + int sr_intail; + void *sr_owner; + t_netserver_socketnotifier sr_notifier; + t_netserver_socketreceivefn sr_socketreceivefn; +} t_netserver_socketreceiver; + +static t_netserver_socketreceiver *netserver_socketreceiver_new(void *owner, t_netserver_socketnotifier notifier, + t_netserver_socketreceivefn socketreceivefn) +{ + t_netserver_socketreceiver *x = (t_netserver_socketreceiver *)getbytes(sizeof(*x)); + x->sr_inhead = x->sr_intail = 0; + x->sr_owner = owner; + x->sr_notifier = notifier; + x->sr_socketreceivefn = socketreceivefn; + if (!(x->sr_inbuf = malloc(INBUFSIZE))) bug("t_netserver_socketreceiver"); + return (x); +} + + /* this is in a separately called subroutine so that the buffer isn't + sitting on the stack while the messages are getting passed. */ +static int netserver_socketreceiver_doread(t_netserver_socketreceiver *x) +{ + char messbuf[INBUFSIZE], *bp = messbuf; + int indx; + int inhead = x->sr_inhead; + int intail = x->sr_intail; + char *inbuf = x->sr_inbuf; + if (intail == inhead) return (0); + for (indx = intail; indx != inhead; indx = (indx+1)&(INBUFSIZE-1)) + { + char c = *bp++ = inbuf[indx]; + if (c == ';' && (!indx || inbuf[indx-1] != '\\')) + { + intail = (indx+1)&(INBUFSIZE-1); + binbuf_text(inbinbuf, messbuf, bp - messbuf); + x->sr_inhead = inhead; + x->sr_intail = intail; + return (1); + } + } + return (0); +} + +static void netserver_socketreceiver_read(t_netserver_socketreceiver *x, int fd) +{ + char *semi; + int readto = (x->sr_inhead >= x->sr_intail ? INBUFSIZE : x->sr_intail-1); + int ret; + + t_netserver *y = x->sr_owner; + + y->x_sock_fd = fd; + + /* the input buffer might be full. If so, drop the whole thing */ + if (readto == x->sr_inhead) + { + post("netserver: dropped message"); + x->sr_inhead = x->sr_intail = 0; + readto = INBUFSIZE; + } + else + { + ret = recv(fd, x->sr_inbuf + x->sr_inhead, + readto - x->sr_inhead, 0); + if (ret < 0) + { + sys_sockerror("recv"); + if (x->sr_notifier) (*x->sr_notifier)(x->sr_owner); + sys_rmpollfn(fd); + sys_closesocket(fd); + } + else if (ret == 0) + { + post("netserver: << connection closed on socket %d", fd); + if (x->sr_notifier) (*x->sr_notifier)(x->sr_owner); + sys_rmpollfn(fd); + sys_closesocket(fd); + } + else + { + x->sr_inhead += ret; + if (x->sr_inhead >= INBUFSIZE) x->sr_inhead = 0; + while (netserver_socketreceiver_doread(x)) + { + outlet_setstacklim(); + if (x->sr_socketreceivefn) + (*x->sr_socketreceivefn)(x->sr_owner, inbinbuf); + else binbuf_eval(inbinbuf, 0, 0, 0); + } + } + } +} + +static void netserver_socketreceiver_free(t_netserver_socketreceiver *x) +{ + free(x->sr_inbuf); + freebytes(x, sizeof(*x)); +} + +/* ---------------- main netserver (send) stuff --------------------- */ + +/* send message to client using socket number */ +static void netserver_send(t_netserver *x, t_symbol *s, int argc, t_atom *argv) +{ + int sockfd, client = -1, i; + if(x->x_nconnections < 0) + { + post("netserver: no clients connected"); + return; + } + if(argc < 2) + { + post("netserver: nothing to send"); + return; + } + /* get socket number of connection (first element in list) */ + if(argv[0].a_type == A_FLOAT) + { + sockfd = atom_getfloatarg(0, argc, argv); + for(i = 0; i < x->x_nconnections; i++) /* check if connection exists */ + { + if(x->x_fd[i] == sockfd) + { + client = i; /* the client we're sending to */ + break; + } + } + if(client == -1) + { + post("netserver: no connection on socket %d", sockfd); + return; + } + } + else + { + post("netserver: no socket specified"); + return; + } + /* process & send data */ + if(sockfd > 0) + { + t_binbuf *b = binbuf_new(); + char *buf, *bp; + int length, sent; + t_atom at; + binbuf_add(b, argc - 1, argv + 1); /* skip first element */ + SETSEMI(&at); + binbuf_add(b, 1, &at); + binbuf_gettext(b, &buf, &length); + + post("netserver: sending data to client %d on socket %d", client + 1, sockfd); + // post("netserver: sending \"%s\"", buf); + + for (bp = buf, sent = 0; sent < length;) + { + static double lastwarntime; + static double pleasewarn; + double timebefore = clock_getlogicaltime(); + int res = send(sockfd, buf, length-sent, 0); + double timeafter = clock_getlogicaltime(); + int late = (timeafter - timebefore > 0.005); + if (late || pleasewarn) + { + if (timeafter > lastwarntime + 2) + { + post("netserver blocked %d msec", + (int)(1000 * ((timeafter - timebefore) + pleasewarn))); + pleasewarn = 0; + lastwarntime = timeafter; + } + else if (late) pleasewarn += timeafter - timebefore; + } + if (res <= 0) + { + sys_sockerror("netserver"); + post("netserver: could not send data to client"); + break; + } + else + { + sent += res; + bp += res; + } + } + t_freebytes(buf, length); + binbuf_free(b); + } + else post("netserver: not a valid socket number (%d)", sockfd); +} + +/* send message to client using client number + note that the client numbers might change in case a client disconnects! */ +static void netserver_client_send(t_netserver *x, t_symbol *s, int argc, t_atom *argv) +{ + int sockfd, client; + if(x->x_nconnections < 0) + { + post("netserver: no clients connected"); + return; + } + if(argc < 2) + { + post("netserver: nothing to send"); + return; + } + /* get number of client (first element in list) */ + if(argv[0].a_type == A_FLOAT) + client = atom_getfloatarg(0, argc, argv); + else + { + post("netserver: no client specified"); + return; + } + sockfd = x->x_fd[client - 1]; /* get socket number for that client */ + + /* process & send data */ + if(sockfd > 0) + { + t_binbuf *b = binbuf_new(); + char *buf, *bp; + int length, sent; + t_atom at; + binbuf_add(b, argc - 1, argv + 1); /* skip first element */ + SETSEMI(&at); + binbuf_add(b, 1, &at); + binbuf_gettext(b, &buf, &length); + + post("netserver: sending data to client %d on socket %d", client, sockfd); + // post("netserver: >> sending \"%s\"", buf); + + for (bp = buf, sent = 0; sent < length;) + { + static double lastwarntime; + static double pleasewarn; + double timebefore = clock_getlogicaltime(); + int res = send(sockfd, buf, length-sent, 0); + double timeafter = clock_getlogicaltime(); + int late = (timeafter - timebefore > 0.005); + if (late || pleasewarn) + { + if (timeafter > lastwarntime + 2) + { + post("netserver blocked %d msec", + (int)(1000 * ((timeafter - timebefore) + pleasewarn))); + pleasewarn = 0; + lastwarntime = timeafter; + } + else if (late) pleasewarn += timeafter - timebefore; + } + if (res <= 0) + { + sys_sockerror("netserver"); + post("netserver: could not send data to cient"); + break; + } + else + { + sent += res; + bp += res; + } + } + t_freebytes(buf, length); + binbuf_free(b); + } + else post("netserver: not a valid socket number (%d)", sockfd); +} + + /* broadcasts a message to all connected clients */ +static void netserver_broadcast(t_netserver *x, t_symbol *s, int argc, t_atom *argv) +{ + int i, client = x->x_nconnections; /* number of clients to send to */ + t_atom at[256]; + for(i = 0; i < argc; i++) + { + at[i + 1] = argv[i]; + } + argc++; + /* enumerate through the clients and send each the message */ + while(client--) + { + SETFLOAT(at, client + 1); /* prepend number of client */ + netserver_client_send(x, s, argc, at); + } +} + + +/* ---------------- main netserver (receive) stuff --------------------- */ + +static void netserver_notify(t_netserver *x) +{ + int i, k; + /* remove connection from list */ + for(i = 0; i < x->x_nconnections; i++) + { + if(x->x_fd[i] == x->x_sock_fd) + { + x->x_nconnections--; + post("netserver: \"%s\" removed from list of clients", x->x_host[i]->s_name); + x->x_host[i] = NULL; /* delete entry */ + x->x_fd[i] = -1; + /* rearrange list now: move entries to close the gap */ + for(k = i; k < x->x_nconnections; k++) + { + x->x_host[k] = x->x_host[k + 1]; + x->x_fd[k] = x->x_fd[k + 1]; + } + } + } + outlet_float(x->x_connectout, x->x_nconnections); +} + +static void netserver_doit(void *z, t_binbuf *b) +{ + t_atom messbuf[1024]; + t_netserver *x = (t_netserver *)z; + int msg, natom = binbuf_getnatom(b); + t_atom *at = binbuf_getvec(b); + int i; + /* output clients IP and socket no. */ + for(i = 0; i < x->x_nconnections; i++) /* search for corresponding IP */ + { + if(x->x_fd[i] == x->x_sock_fd) + { + outlet_symbol(x->x_connectionip, x->x_host[i]); + break; + } + } + outlet_float(x->x_clientno, x->x_sock_fd); /* the socket number */ + /* process data */ + for (msg = 0; msg < natom;) + { + int emsg; + for (emsg = msg; emsg < natom && at[emsg].a_type != A_COMMA + && at[emsg].a_type != A_SEMI; emsg++); + + if (emsg > msg) + { + int ii; + for (ii = msg; ii < emsg; ii++) + if (at[ii].a_type == A_DOLLAR || at[ii].a_type == A_DOLLSYM) + { + pd_error(x, "netserver: got dollar sign in message"); + goto nodice; + } + if (at[msg].a_type == A_FLOAT) + { + if (emsg > msg + 1) + outlet_list(x->x_msgout, 0, emsg-msg, at + msg); + else outlet_float(x->x_msgout, at[msg].a_w.w_float); + } + else if (at[msg].a_type == A_SYMBOL) + outlet_anything(x->x_msgout, at[msg].a_w.w_symbol, + emsg-msg-1, at + msg + 1); + } + nodice: + msg = emsg + 1; + } +} + +static void netserver_connectpoll(t_netserver *x) +{ + struct sockaddr_in incomer_address; + int sockaddrl = (int) sizeof( struct sockaddr ); + int fd = accept(x->x_connectsocket, (struct sockaddr*)&incomer_address, &sockaddrl); + if (fd < 0) post("netserver: accept failed"); + else + { + t_netserver_socketreceiver *y = netserver_socketreceiver_new((void *)x, + (t_netserver_socketnotifier)netserver_notify, + (x->x_msgout ? netserver_doit : 0)); + sys_addpollfn(fd, (t_fdpollfn)netserver_socketreceiver_read, y); + x->x_nconnections++; + x->x_host[x->x_nconnections - 1] = gensym(inet_ntoa(incomer_address.sin_addr)); + x->x_fd[x->x_nconnections - 1] = fd; + + post("netserver: ** accepted connection from %s on socket %d", + x->x_host[x->x_nconnections - 1]->s_name, x->x_fd[x->x_nconnections - 1]); + outlet_float(x->x_connectout, x->x_nconnections); + } +} + +static void netserver_print(t_netserver *x) +{ + int i; + if(x->x_nconnections > 0) + { + post("netserver: %d open connections:", x->x_nconnections); + + for(i = 0; i < x->x_nconnections; i++) + { + post(" \"%s\" on socket %d", + x->x_host[i]->s_name, x->x_fd[i]); + } + } else post("netserver: no open connections"); +} + +static void *netserver_new(t_floatarg fportno) +{ + t_netserver *x; + int i; + struct sockaddr_in server; + int sockfd, portno = fportno; + /* create a socket */ + sockfd = socket(AF_INET, SOCK_STREAM, 0); +#if 0 + post("netserver: receive socket %d", sockfd); +#endif + if (sockfd < 0) + { + sys_sockerror("socket"); + return (0); + } + server.sin_family = AF_INET; + server.sin_addr.s_addr = INADDR_ANY; + +#ifdef IRIX + /* this seems to work only in IRIX but is unnecessary in + Linux. Not sure what NT needs in place of this. */ + if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, 0, 0) < 0) + post("setsockopt failed\n"); +#endif + + /* assign server port number */ + server.sin_port = htons((u_short)portno); + + /* name the socket */ + if (bind(sockfd, (struct sockaddr *)&server, sizeof(server)) < 0) + { + sys_sockerror("bind"); + sys_closesocket(sockfd); + return (0); + } + x = (t_netserver *)pd_new(netserver_class); + x->x_msgout = outlet_new(&x->x_obj, &s_anything); + + /* streaming protocol */ + if (listen(sockfd, 5) < 0) + { + sys_sockerror("listen"); + sys_closesocket(sockfd); + sockfd = -1; + } + else + { + sys_addpollfn(sockfd, (t_fdpollfn)netserver_connectpoll, x); + x->x_connectout = outlet_new(&x->x_obj, &s_float); + x->x_clientno = outlet_new(&x->x_obj, &s_float); + x->x_connectionip = outlet_new(&x->x_obj, &s_symbol); + inbinbuf = binbuf_new(); + } + x->x_connectsocket = sockfd; + x->x_nconnections = 0; + for(i = 0; i < MAX_CONNECT; i++)x->x_fd[i] = -1; +#ifndef MAXLIB + post(version); +#endif + return (x); +} + +static void netserver_free(t_netserver *x) +{ + /* LATER make me clean up open connections */ + if (x->x_connectsocket >= 0) + { + sys_rmpollfn(x->x_connectsocket); + sys_closesocket(x->x_connectsocket); + } + binbuf_free(inbinbuf); +} + +void netserver_setup(void) +{ + netserver_class = class_new(gensym("netserver"),(t_newmethod)netserver_new, (t_method)netserver_free, + sizeof(t_netserver), 0, A_DEFFLOAT, 0); + class_addmethod(netserver_class, (t_method)netserver_print, gensym("print"), 0); + class_addmethod(netserver_class, (t_method)netserver_send, gensym("send"), A_GIMME, 0); + class_addmethod(netserver_class, (t_method)netserver_client_send, gensym("client"), A_GIMME, 0); + class_addmethod(netserver_class, (t_method)netserver_broadcast, gensym("broadcast"), A_GIMME, 0); + class_sethelpsymbol(netserver_class, gensym("maxlib/help-netserver.pd")); +} diff --git a/xgui/netserver/netserver.dll b/xgui/netserver/netserver.dll new file mode 100644 index 00000000..16014c93 Binary files /dev/null and b/xgui/netserver/netserver.dll differ diff --git a/xgui/netserver/netserver.exp b/xgui/netserver/netserver.exp new file mode 100644 index 00000000..43d6dee5 Binary files /dev/null and b/xgui/netserver/netserver.exp differ diff --git a/xgui/netserver/netserver.lib b/xgui/netserver/netserver.lib new file mode 100644 index 00000000..f08aa6fa Binary files /dev/null and b/xgui/netserver/netserver.lib differ diff --git a/xgui/netserver/netserver.zip b/xgui/netserver/netserver.zip new file mode 100644 index 00000000..09f1adea Binary files /dev/null and b/xgui/netserver/netserver.zip differ diff --git a/xgui/objects/button.pd b/xgui/objects/button.pd new file mode 100644 index 00000000..1b6b696e --- /dev/null +++ b/xgui/objects/button.pd @@ -0,0 +1,81 @@ +#N canvas 261 228 640 649 10; +#X obj 21 16 inlet; +#X obj 21 40 route show float hide; +#X obj 200 185 pack f f f f; +#X msg 87 181 hide; +#X obj 295 193 pack f f; +#X obj 46 65 t b b b b b; +#X msg 295 217 show \, pos \$1 \$2 \, color blue \, anchor center; +#X obj 32 522 outlet; +#X msg 74 439 color grey; +#X msg 155 440 color white; +#X obj 76 369 route click; +#X obj 154 415 delay 100; +#X obj 336 164 moy; +#X obj 293 170 moy; +#X obj 194 138 \$4; +#X obj 219 138 \$5; +#X text 444 533 dh20020428; +#X msg 200 270 show \, coord \$1 \$2 \$3 \$4 \, width 1 \, color white +; +#X obj 243 93 \$4; +#X obj 277 93 \$5; +#X obj 243 116 + \$6; +#X obj 274 117 + \$7; +#X obj 21 132 t b b; +#X msg 49 161 raise; +#X msg 25 188 raise; +#X obj 323 307 symbol \$3; +#X msg 323 332 text \$1; +#X text 95 15 button canvas name text posX posY dX dY; +#X obj 76 343 rect \$1-c; +#X obj 56 256 make_obj_name \$2; +#X obj 88 320 make_obj_name \$2; +#X obj 37 283 text \$1-t; +#X obj 200 307 alias \$1-c; +#X obj 323 357 alias \$1-t; +#X obj 295 241 alias \$1-t; +#X obj 113 478 alias \$1-c; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 2 3 0; +#X connect 2 0 17 0; +#X connect 3 0 28 0; +#X connect 3 0 31 0; +#X connect 4 0 6 0; +#X connect 5 0 22 0; +#X connect 5 0 25 0; +#X connect 5 1 14 0; +#X connect 5 2 15 0; +#X connect 5 3 18 0; +#X connect 5 4 19 0; +#X connect 6 0 34 0; +#X connect 8 0 35 0; +#X connect 9 0 35 0; +#X connect 10 0 11 0; +#X connect 10 0 8 0; +#X connect 10 0 7 0; +#X connect 11 0 9 0; +#X connect 12 0 4 1; +#X connect 13 0 4 0; +#X connect 14 0 2 0; +#X connect 14 0 13 0; +#X connect 15 0 2 1; +#X connect 15 0 12 0; +#X connect 17 0 32 0; +#X connect 18 0 20 0; +#X connect 19 0 21 0; +#X connect 20 0 2 2; +#X connect 20 0 13 1; +#X connect 21 0 2 3; +#X connect 21 0 12 1; +#X connect 22 0 24 0; +#X connect 22 1 23 0; +#X connect 23 0 28 0; +#X connect 24 0 31 0; +#X connect 25 0 26 0; +#X connect 26 0 33 0; +#X connect 28 0 10 0; +#X connect 29 0 31 0; +#X connect 30 0 28 0; +#X connect 31 0 10 0; diff --git a/xgui/objects/i-point.pd b/xgui/objects/i-point.pd new file mode 100644 index 00000000..f5697cba --- /dev/null +++ b/xgui/objects/i-point.pd @@ -0,0 +1,6 @@ +#N canvas 371 189 536 425 10; +#X obj 55 297 move; +#X obj 24 268 seg le \$0-point */; +#X obj 87 164 make_object_name \$1; +#X connect 0 0 1 0; +#X connect 1 0 0 0; diff --git a/xgui/objects/i-rect.pd b/xgui/objects/i-rect.pd new file mode 100644 index 00000000..291939c5 --- /dev/null +++ b/xgui/objects/i-rect.pd @@ -0,0 +1,142 @@ +#N canvas 129 132 726 510 10; +#X msg 357 111 width \$1; +#X msg 357 88 raise; +#X obj 26 73 move; +#X obj 172 73 move; +#X obj 207 97 coord2xy; +#X obj 62 96 coord2xy; +#X obj 107 294 inlet; +#X obj 110 247 outlet; +#X msg 18 371 coord \$1 \$2 \$3 \$4; +#X msg 18 348 coord \$1 \$2 \$1 \$2; +#X msg 18 394 coord \$3 \$4 \$3 \$4; +#X msg 155 354 xy1 \$1 \$2; +#X msg 156 381 xy2 \$1 \$2; +#X msg 237 376 xy1 \$1 \$2; +#X msg 237 355 xy2 \$1 \$2; +#X obj 63 195 xy2xy1; +#X obj 201 190 xy2xy2; +#X obj 240 32 light_over; +#X obj 63 50 light_over; +#X obj 357 43 bang; +#X obj 154 463 alias \$0-p2; +#X obj 153 438 alias \$0-l1; +#X obj 156 410 alias \$0-p1; +#X obj 357 180 alias \$0-p2; +#X text 352 23 default values; +#X text 169 292 methodes; +#X text 25 26 two seg for driving one :; +#X obj 54 268 move; +#X msg 357 202 coord 10 10 30 30; +#X msg 311 254 show; +#X obj 107 316 route coord xy1 xy2 show; +#X msg 357 65 5; +#X text 346 423 dh20020427; +#X obj 67 161 min; +#X obj 91 161 min; +#X obj 114 162 min; +#X obj 139 162 min; +#X obj 187 139 max; +#X obj 212 139 max; +#X obj 237 140 max; +#X obj 262 140 max; +#X obj 207 73 seg \$0-p2 \$1/p2; +#X obj 62 74 seg \$0-p1 \$1/p1; +#X obj 357 134 alias \$0-p1; +#X obj 357 157 alias \$0-l1; +#X obj 526 92 oname2l; +#X obj 526 115 unpack s s s; +#X obj 526 46 loadbang; +#X obj 526 207 s \$1-c; +#X obj 601 135 s \$1-o; +#X obj 526 138 pack s s; +#X obj 526 184 a2s; +#X msg 526 161 list \$1 / \$2; +#X obj 526 69 symbol \$2; +#X obj 111 224 rect \$0-l1 \$1/l1; +#X text 7 2 i-rect; +#X connect 0 0 23 0; +#X connect 0 0 43 0; +#X connect 0 0 44 0; +#X connect 1 0 23 0; +#X connect 1 0 43 0; +#X connect 2 0 42 0; +#X connect 3 0 41 0; +#X connect 4 0 37 1; +#X connect 4 0 38 0; +#X connect 4 0 33 1; +#X connect 4 0 34 0; +#X connect 4 1 36 0; +#X connect 4 1 35 1; +#X connect 4 1 39 1; +#X connect 4 1 40 0; +#X connect 5 0 33 0; +#X connect 5 0 37 0; +#X connect 5 0 38 1; +#X connect 5 0 34 1; +#X connect 5 1 35 0; +#X connect 5 1 36 1; +#X connect 5 1 39 0; +#X connect 5 1 40 1; +#X connect 6 0 30 0; +#X connect 8 0 21 0; +#X connect 9 0 22 0; +#X connect 10 0 20 0; +#X connect 11 0 21 0; +#X connect 11 0 22 0; +#X connect 12 0 22 0; +#X connect 13 0 20 0; +#X connect 14 0 20 0; +#X connect 14 0 21 0; +#X connect 15 0 7 0; +#X connect 15 0 54 0; +#X connect 16 0 7 0; +#X connect 16 0 54 0; +#X connect 17 0 41 0; +#X connect 18 0 42 0; +#X connect 19 0 1 0; +#X connect 19 0 31 0; +#X connect 19 0 28 0; +#X connect 27 0 30 0; +#X connect 28 0 30 0; +#X connect 29 0 22 0; +#X connect 29 0 21 0; +#X connect 29 0 20 0; +#X connect 29 0 19 0; +#X connect 30 0 9 0; +#X connect 30 0 8 0; +#X connect 30 0 10 0; +#X connect 30 1 11 0; +#X connect 30 1 12 0; +#X connect 30 2 13 0; +#X connect 30 2 14 0; +#X connect 30 3 29 0; +#X connect 30 4 20 0; +#X connect 30 4 21 0; +#X connect 30 4 22 0; +#X connect 31 0 0 0; +#X connect 33 0 15 0; +#X connect 34 0 15 0; +#X connect 35 0 15 1; +#X connect 36 0 15 1; +#X connect 37 0 16 0; +#X connect 38 0 16 0; +#X connect 39 0 16 1; +#X connect 40 0 16 1; +#X connect 41 0 3 0; +#X connect 41 0 4 0; +#X connect 41 0 17 0; +#X connect 42 0 2 0; +#X connect 42 0 5 0; +#X connect 42 0 18 0; +#X connect 45 0 46 0; +#X connect 46 0 50 0; +#X connect 46 1 50 1; +#X connect 46 2 49 0; +#X connect 47 0 53 0; +#X connect 50 0 52 0; +#X connect 51 0 48 0; +#X connect 52 0 51 0; +#X connect 53 0 45 0; +#X connect 54 0 7 0; +#X connect 54 0 27 0; diff --git a/xgui/objects/i-seg.pd b/xgui/objects/i-seg.pd new file mode 100644 index 00000000..4c8cebb5 --- /dev/null +++ b/xgui/objects/i-seg.pd @@ -0,0 +1,152 @@ +#N canvas 161 127 786 457 10; +#X msg 357 111 width \$1; +#X msg 357 88 raise; +#X obj 26 73 move; +#X obj 172 73 move; +#X obj 207 96 coord2xy; +#X obj 63 96 coord2xy; +#X msg 357 65 15; +#X obj 106 244 inlet; +#X obj 109 197 outlet; +#X text 7 2 i-seg; +#X text 698 427 dh20020107; +#X msg 17 321 coord \$1 \$2 \$3 \$4; +#X msg 17 298 coord \$1 \$2 \$1 \$2; +#X msg 17 344 coord \$3 \$4 \$3 \$4; +#X msg 154 304 xy1 \$1 \$2; +#X msg 155 331 xy2 \$1 \$2; +#X msg 236 326 xy1 \$1 \$2; +#X msg 236 305 xy2 \$1 \$2; +#X obj 63 121 xy2xy1; +#X obj 203 122 xy2xy2; +#X obj 207 52 light_over; +#X obj 63 50 light_over; +#X obj 209 174 light_over; +#X obj 357 43 bang; +#X obj 384 366 osc~; +#X obj 384 297 mtof; +#X obj 384 388 *~ 0; +#X obj 375 414 dac~; +#X obj 628 276 coord2xy; +#X obj 501 223 r play_pos; +#X obj 446 253 in; +#X obj 446 364 * 0.1; +#X msg 628 226 move 0 0; +#X obj 628 251 alias \$0-l1; +#X obj 153 413 alias \$0-p2; +#X obj 152 388 alias \$0-l1; +#X obj 155 360 alias \$0-p1; +#X obj 357 134 alias \$0-p1; +#X obj 357 157 alias \$0-l1; +#X obj 357 180 alias \$0-p2; +#X text 352 23 default values; +#X text 168 242 methodes; +#X text 25 26 two seg for driving one :; +#X obj 53 218 move; +#X obj 384 342 line~; +#X obj 384 319 pack 0 3; +#X obj 510 304 expr (($f3-$f5)/($f2-$f4))*($f1-$f2)+$f3; +#X obj 384 256 * -0.5; +#X obj 384 276 + 127; +#X msg 357 202 coord 10 10 30 30; +#X msg 311 254 show; +#X obj 106 266 route coord xy1 xy2 show; +#X obj 207 73 seg \$0-p2; +#X obj 65 73 seg \$0-p1; +#X obj 109 174 seg \$0-l1; +#X obj 557 27 make_obj_name \$1; +#X obj 558 51 make_obj_name \$1; +#X obj 558 74 make_obj_name \$1; +#X obj 270 73 route update; +#X obj 119 96 route update; +#X obj 7 173 route update; +#X connect 0 0 37 0; +#X connect 0 0 38 0; +#X connect 0 0 39 0; +#X connect 1 0 37 0; +#X connect 1 0 39 0; +#X connect 2 0 53 0; +#X connect 3 0 52 0; +#X connect 4 0 19 0; +#X connect 4 1 19 1; +#X connect 5 0 18 0; +#X connect 5 1 18 1; +#X connect 6 0 0 0; +#X connect 7 0 51 0; +#X connect 11 0 35 0; +#X connect 12 0 36 0; +#X connect 13 0 34 0; +#X connect 14 0 35 0; +#X connect 14 0 36 0; +#X connect 15 0 36 0; +#X connect 16 0 34 0; +#X connect 17 0 34 0; +#X connect 17 0 35 0; +#X connect 18 0 8 0; +#X connect 18 0 54 0; +#X connect 18 0 32 0; +#X connect 19 0 8 0; +#X connect 19 0 54 0; +#X connect 19 0 32 0; +#X connect 20 0 52 0; +#X connect 21 0 53 0; +#X connect 22 0 54 0; +#X connect 23 0 1 0; +#X connect 23 0 6 0; +#X connect 23 0 49 0; +#X connect 24 0 26 0; +#X connect 25 0 45 0; +#X connect 26 0 27 0; +#X connect 26 0 27 1; +#X connect 28 0 30 1; +#X connect 28 0 46 1; +#X connect 28 1 46 2; +#X connect 28 2 30 2; +#X connect 28 2 46 3; +#X connect 28 3 46 4; +#X connect 29 0 30 0; +#X connect 29 0 46 0; +#X connect 30 0 31 0; +#X connect 31 0 26 1; +#X connect 32 0 33 0; +#X connect 33 0 28 0; +#X connect 43 0 51 0; +#X connect 44 0 24 0; +#X connect 45 0 44 0; +#X connect 46 0 47 0; +#X connect 47 0 48 0; +#X connect 48 0 25 0; +#X connect 49 0 51 0; +#X connect 50 0 36 0; +#X connect 50 0 35 0; +#X connect 50 0 34 0; +#X connect 50 0 23 0; +#X connect 51 0 12 0; +#X connect 51 0 11 0; +#X connect 51 0 13 0; +#X connect 51 1 14 0; +#X connect 51 1 15 0; +#X connect 51 2 16 0; +#X connect 51 2 17 0; +#X connect 51 3 50 0; +#X connect 51 4 34 0; +#X connect 51 4 35 0; +#X connect 51 4 36 0; +#X connect 52 0 3 0; +#X connect 52 0 4 0; +#X connect 52 0 20 0; +#X connect 52 0 58 0; +#X connect 53 0 2 0; +#X connect 53 0 5 0; +#X connect 53 0 21 0; +#X connect 53 0 59 0; +#X connect 54 0 8 0; +#X connect 54 0 22 0; +#X connect 54 0 43 0; +#X connect 54 0 60 0; +#X connect 55 0 53 0; +#X connect 56 0 52 0; +#X connect 57 0 54 0; +#X connect 58 0 52 0; +#X connect 59 0 53 0; +#X connect 60 0 54 0; diff --git a/xgui/objects/i-seg_mp.pd b/xgui/objects/i-seg_mp.pd new file mode 100644 index 00000000..3ab21bbe --- /dev/null +++ b/xgui/objects/i-seg_mp.pd @@ -0,0 +1,140 @@ +#N canvas 89 288 774 438 10; +#X msg 340 168 raise; +#X obj 272 76 move; +#X obj 190 75 coord2xy; +#X obj 68 75 coord2xy; +#X obj 593 114 inlet; +#X obj 124 161 outlet; +#X msg 416 56 coord 10 10 30 30; +#X msg 416 31 coord 10 10 10 10; +#X msg 416 81 coord 30 30 30 30; +#X text 26 20 i-seg; +#X text 417 408 dh20020107; +#X msg 495 202 coord \$1 \$2 \$3 \$4; +#X msg 495 177 coord \$1 \$2 \$1 \$2; +#X msg 495 228 coord \$3 \$4 \$3 \$4; +#X msg 646 184 xy1 \$1 \$2; +#X msg 647 213 xy2 \$1 \$2; +#X msg 736 208 xy1 \$1 \$2; +#X msg 736 185 xy2 \$1 \$2; +#X obj 68 102 xy2xy1; +#X obj 186 103 xy2xy2; +#X obj 193 20 light_over; +#X obj 125 103 r \$0-l1; +#X obj 184 332 xy2xy1; +#X obj 232 336 xy2xy2; +#X obj 83 253 lia_2d 50 5 0 0 0 0 0 0 0 0 50; +#X msg 315 223 width 30; +#X msg 387 222 width 15; +#X obj 195 301 ma_2d 100 0 0; +#X obj 275 277 + 50; +#X obj 422 186 delay 0; +#X obj 436 157 bang; +#X obj 417 259 t b b b; +#X obj 406 355 xy2xy1; +#X obj 454 359 xy2xy2; +#X msg 499 295 1; +#X msg 486 142 show; +#X obj 457 312 \$3; +#X obj 415 310 \$2; +#X obj 647 245 alias \$0-p1; +#X obj 644 276 alias \$0-l1; +#X obj 641 311 alias \$0-p2; +#X obj 340 52 alias \$0-p1; +#X obj 340 102 alias \$0-p2; +#X obj 340 77 alias \$0-l1; +#X obj 593 142 route coord xy1 xy2 show; +#X obj 270 22 make_obj_name \$1; +#X obj 68 50 seg \$0-p1; +#X obj 124 135 seg \$0-l1 \$1; +#X obj 69 23 make_obj_name \$1; +#X obj 225 127 make_obj_name \$1; +#X obj 201 50 seg \$0-p2; +#X connect 0 0 41 0; +#X connect 0 0 42 0; +#X connect 1 0 50 0; +#X connect 2 0 19 0; +#X connect 2 0 24 2; +#X connect 2 1 19 1; +#X connect 2 1 24 4; +#X connect 3 0 18 0; +#X connect 3 1 18 1; +#X connect 4 0 44 0; +#X connect 6 0 43 0; +#X connect 7 0 41 0; +#X connect 8 0 42 0; +#X connect 11 0 39 0; +#X connect 12 0 38 0; +#X connect 13 0 40 0; +#X connect 14 0 38 0; +#X connect 15 0 38 0; +#X connect 16 0 40 0; +#X connect 17 0 39 0; +#X connect 17 0 40 0; +#X connect 18 0 5 0; +#X connect 18 0 47 0; +#X connect 19 0 5 0; +#X connect 19 0 47 0; +#X connect 20 0 50 0; +#X connect 21 0 47 0; +#X connect 22 0 46 0; +#X connect 22 0 47 0; +#X connect 23 0 46 0; +#X connect 24 2 27 1; +#X connect 24 3 28 0; +#X connect 25 0 41 0; +#X connect 25 0 42 0; +#X connect 26 0 43 0; +#X connect 27 0 22 0; +#X connect 27 0 23 0; +#X connect 27 0 24 6; +#X connect 27 1 24 7; +#X connect 27 2 22 1; +#X connect 27 2 23 1; +#X connect 27 2 24 8; +#X connect 27 3 24 9; +#X connect 28 0 27 2; +#X connect 29 0 0 0; +#X connect 29 0 7 0; +#X connect 29 0 6 0; +#X connect 29 0 8 0; +#X connect 29 0 25 0; +#X connect 29 0 26 0; +#X connect 29 0 31 0; +#X connect 30 0 29 0; +#X connect 31 0 37 0; +#X connect 31 1 36 0; +#X connect 31 2 34 0; +#X connect 32 0 46 0; +#X connect 32 0 47 0; +#X connect 32 0 50 0; +#X connect 33 0 46 0; +#X connect 33 0 47 0; +#X connect 33 0 50 0; +#X connect 34 0 24 9; +#X connect 34 0 24 7; +#X connect 35 0 30 0; +#X connect 35 0 38 0; +#X connect 35 0 39 0; +#X connect 35 0 40 0; +#X connect 36 0 24 8; +#X connect 36 0 32 1; +#X connect 36 0 33 1; +#X connect 37 0 32 0; +#X connect 37 0 33 0; +#X connect 44 0 12 0; +#X connect 44 0 11 0; +#X connect 44 0 13 0; +#X connect 44 1 14 0; +#X connect 44 1 15 0; +#X connect 44 2 16 0; +#X connect 44 2 17 0; +#X connect 44 3 35 0; +#X connect 45 0 50 0; +#X connect 46 0 3 0; +#X connect 47 0 5 0; +#X connect 48 0 46 0; +#X connect 49 0 47 0; +#X connect 50 0 1 0; +#X connect 50 0 2 0; +#X connect 50 0 20 0; diff --git a/xgui/objects/my_slider1.pd b/xgui/objects/my_slider1.pd new file mode 100644 index 00000000..a40a7fca --- /dev/null +++ b/xgui/objects/my_slider1.pd @@ -0,0 +1,112 @@ +#N canvas 254 54 549 522 10; +#X text 95 7 my_slider1; +#X obj 14 8 inlet; +#X obj 276 461 outlet; +#X obj 303 144 xy2coord; +#X obj 150 153 + 200; +#X obj 430 275 move_y; +#X obj 414 425 xy2coord; +#X obj 430 230 light_over; +#X obj 260 282 coord2xy; +#X text 445 493 dh20020109; +#X obj 277 411 * -1; +#X obj 277 388 -; +#X obj 277 434 +; +#X text 47 86 x pos; +#X text 127 101 y pos; +#X text 210 125 y size; +#X obj 303 190 click2bxy; +#X msg 462 208 Blue; +#N canvas 489 354 249 191 check_min_max 0; +#X obj 51 110 max; +#X obj 51 86 min; +#X obj 51 34 inlet; +#X obj 51 134 outlet; +#X obj 75 57 r \$0-y_max; +#X obj 82 80 r \$0-y_min; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 4 0 1 1; +#X connect 5 0 0 1; +#X restore 277 342 pd check_min_max; +#X obj 100 126 s \$0-y_min; +#X obj 150 177 s \$0-y_max; +#X obj 316 93 r \$0-y_min; +#X obj 15 101 s \$0-x_pos; +#X obj 293 365 r \$0-y_max; +#X obj 456 385 r \$0-y_max; +#X obj 293 45 r \$0-x_pos; +#X obj 413 335 r \$0-x_pos; +#X obj 14 55 t b b b b b; +#X obj 64 269 alias \$0-sld; +#X obj 84 222 alias \$0-cadre; +#X obj 414 449 alias \$0-sld; +#X obj 430 252 alias \$0-sld; +#X obj 14 31 route show float hide; +#X msg 165 52 hide; +#X obj 260 259 seg \$1 \$0-sld; +#X msg 85 199 show \, width 1 \, color white; +#X obj 303 167 rect \$1 \$0-cadre 10 10 20 20; +#X obj 325 71 + 15; +#X obj 426 363 + 15; +#X msg 63 244 show \, color Blue \, width 3; +#X obj 14 78 \$3; +#X obj 100 102 \$4; +#X obj 180 127 \$5; +#X obj 344 115 + \$5; +#X obj 22 177 -; +#X obj 22 200 * -1; +#X obj 35 154 r \$0-y_max; +#X connect 1 0 32 0; +#X connect 3 0 36 0; +#X connect 4 0 20 0; +#X connect 5 0 31 0; +#X connect 6 0 30 0; +#X connect 7 0 31 0; +#X connect 8 1 18 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 12 0 2 0; +#X connect 16 2 18 0; +#X connect 17 0 7 1; +#X connect 18 0 11 0; +#X connect 18 0 6 1; +#X connect 18 0 6 3; +#X connect 21 0 3 1; +#X connect 21 0 43 0; +#X connect 23 0 11 1; +#X connect 24 0 6 3; +#X connect 24 0 6 1; +#X connect 25 0 3 0; +#X connect 25 0 37 0; +#X connect 26 0 6 0; +#X connect 26 0 38 0; +#X connect 27 0 40 0; +#X connect 27 1 41 0; +#X connect 27 2 42 0; +#X connect 27 3 39 0; +#X connect 27 3 17 0; +#X connect 27 4 35 0; +#X connect 31 0 7 0; +#X connect 31 0 5 0; +#X connect 32 0 27 0; +#X connect 32 1 44 0; +#X connect 32 2 33 0; +#X connect 33 0 34 0; +#X connect 33 0 36 0; +#X connect 34 0 8 0; +#X connect 35 0 29 0; +#X connect 36 0 16 0; +#X connect 36 0 5 0; +#X connect 37 0 3 2; +#X connect 38 0 6 2; +#X connect 39 0 28 0; +#X connect 40 0 22 0; +#X connect 41 0 4 0; +#X connect 41 0 19 0; +#X connect 42 0 4 1; +#X connect 43 0 3 3; +#X connect 44 0 45 0; +#X connect 45 0 18 0; +#X connect 46 0 44 1; diff --git a/xgui/objects/my_slider2.pd b/xgui/objects/my_slider2.pd new file mode 100644 index 00000000..36d906d8 --- /dev/null +++ b/xgui/objects/my_slider2.pd @@ -0,0 +1,112 @@ +#N canvas 53 59 648 533 10; +#X text 95 7 my_slider1; +#X obj 14 8 inlet; +#X obj 147 446 outlet; +#X obj 431 153 xy2coord; +#X obj 350 448 xy2coord; +#X obj 322 156 coord2xy; +#X text 503 470 dh20020109; +#X text 47 86 x pos; +#X text 59 126 y pos; +#X obj 431 199 click2bxy; +#X obj 25 167 s \$0-y_min; +#X obj 69 247 s \$0-y_max; +#X obj 445 102 r \$0-y_min; +#X obj 15 101 s \$0-x_pos; +#X obj 392 408 r \$0-y_max; +#X obj 431 52 r \$0-x_pos; +#X obj 347 362 r \$0-x_pos; +#X obj 14 55 t b b b b b; +#X obj 14 31 route show float hide; +#X msg 94 54 hide; +#X obj 459 80 + 15; +#X obj 362 386 + 15; +#X obj 14 78 \$3; +#X obj 32 127 \$4; +#X obj 474 127 + \$5; +#X obj 110 221 \$6; +#X text 137 222 value size; +#X obj 62 282 pack f f f; +#X obj 59 192 + \$5; +#X text 96 191 real size; +#X msg 147 356 \$1 \, bang; +#X obj 141 323 t b f; +#X obj 360 279 t b f; +#X obj 148 380 number \$0-value; +#X obj 429 317 number \$0-value; +#X msg 44 336 bound 0 \$1; +#X text 513 480 dh20020523; +#X obj 140 114 alias \$1-c; +#X obj 137 160 alias \$1-sld; +#X obj 350 472 alias \$1-sld; +#X obj 323 107 make_obj_name \$2; +#X obj 500 175 make_obj_name \$2; +#X obj 431 176 rect \$1-c; +#X obj 323 132 seg \$1-sld; +#X obj 429 339 pack f 1000; +#X obj 429 361 line; +#X msg 141 91 show \, width 1 \, color black; +#X msg 137 136 show \, color Blue \, width 5; +#X msg 408 275 0 \, subspace 0 \$3 \$2 \$1 \, bang; +#X obj 147 402 pack f 1000; +#X obj 147 424 line; +#X obj 279 180 route update; +#X connect 1 0 18 0; +#X connect 3 0 42 0; +#X connect 4 0 39 0; +#X connect 5 1 32 0; +#X connect 9 0 34 0; +#X connect 9 2 32 0; +#X connect 12 0 3 1; +#X connect 12 0 24 0; +#X connect 14 0 4 3; +#X connect 14 0 4 1; +#X connect 15 0 3 0; +#X connect 15 0 20 0; +#X connect 16 0 4 0; +#X connect 16 0 21 0; +#X connect 17 0 22 0; +#X connect 17 1 23 0; +#X connect 17 3 47 0; +#X connect 17 3 25 0; +#X connect 17 4 46 0; +#X connect 18 0 17 0; +#X connect 18 1 31 0; +#X connect 18 2 19 0; +#X connect 19 0 37 0; +#X connect 19 0 38 0; +#X connect 20 0 3 2; +#X connect 21 0 4 2; +#X connect 22 0 13 0; +#X connect 23 0 10 0; +#X connect 23 0 28 0; +#X connect 23 0 27 0; +#X connect 24 0 3 3; +#X connect 25 0 27 2; +#X connect 25 0 35 0; +#X connect 27 0 48 0; +#X connect 28 0 11 0; +#X connect 28 0 27 1; +#X connect 30 0 33 0; +#X connect 31 0 34 0; +#X connect 31 1 30 0; +#X connect 32 0 33 0; +#X connect 32 0 34 0; +#X connect 32 1 34 0; +#X connect 33 0 49 0; +#X connect 34 0 44 0; +#X connect 35 0 33 0; +#X connect 40 0 43 0; +#X connect 41 0 42 0; +#X connect 42 0 9 0; +#X connect 43 0 5 0; +#X connect 43 0 51 0; +#X connect 44 0 45 0; +#X connect 45 0 4 1; +#X connect 45 0 4 3; +#X connect 46 0 37 0; +#X connect 47 0 38 0; +#X connect 48 0 34 0; +#X connect 49 0 50 0; +#X connect 50 0 2 0; +#X connect 51 0 5 0; diff --git a/xgui/objects/my_slider3.pd b/xgui/objects/my_slider3.pd new file mode 100644 index 00000000..66463cd7 --- /dev/null +++ b/xgui/objects/my_slider3.pd @@ -0,0 +1,160 @@ +#N canvas 115 125 610 479 10; +#X obj 14 8 inlet; +#X obj 245 414 outlet; +#X obj 303 144 xy2coord; +#X obj 135 154 + 200; +#X obj 279 214 move_y; +#X obj 160 336 xy2coord; +#X obj 347 243 light_over; +#X msg 59 393 color Blue; +#X obj 279 267 coord2xy; +#X obj 279 244 seg \$0-sld; +#X obj 67 332 s \$0-cadre; +#X obj 83 423 s \$0-sld; +#X obj 245 368 * -1; +#X obj 245 345 -; +#X obj 245 391 +; +#X obj 14 78 \$1; +#X obj 85 103 \$2; +#X obj 160 133 \$3; +#X text 47 86 x pos; +#X text 112 102 y pos; +#X text 185 134 y size; +#X msg 75 248 add; +#X obj 303 190 click2bxy; +#X obj 22 177 -; +#X obj 22 200 * -1; +#X msg 373 220 Blue; +#N canvas 489 354 249 191 check_min_max 0; +#X obj 51 110 max; +#X obj 51 86 min; +#X obj 51 34 inlet; +#X obj 51 134 outlet; +#X obj 75 57 r \$0-y_max; +#X obj 82 80 r \$0-y_min; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 4 0 1 1; +#X connect 5 0 0 1; +#X restore 245 299 pd check_min_max; +#X obj 85 127 s \$0-y_min; +#X obj 135 178 s \$0-y_max; +#X obj 317 100 r \$0-y_min; +#X obj 346 122 r \$0-y_max; +#X obj 15 101 s \$0-x_pos; +#X obj 35 154 r \$0-y_max; +#X obj 258 321 r \$0-y_max; +#X obj 192 248 r \$0-y_max; +#X obj 303 77 r \$0-x_pos; +#X obj 159 225 r \$0-x_pos; +#X obj 14 55 t b b b b b; +#X obj 351 266 r \$0-sld; +#X obj 368 144 r \$0-cadre; +#X obj 303 167 seg cadre; +#X msg 59 370 width 20; +#X msg 452 29 bang; +#X obj 456 91 t b b; +#X obj 456 139 s bangl; +#X obj 481 117 s bangm; +#X msg 486 29 stop; +#X obj 393 368 ma 100; +#X obj 456 65 metro 50; +#X text 95 7 my_slider3 mass; +#X obj 160 361 coord2xy; +#X obj 154 420 xy2coord; +#X msg 59 299 width 22; +#N canvas 489 354 249 191 check_min_max 0; +#X obj 51 110 max; +#X obj 51 86 min; +#X obj 51 34 inlet; +#X obj 51 134 outlet; +#X obj 75 57 r \$0-y_max; +#X obj 82 80 r \$0-y_min; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 4 0 1 1; +#X connect 5 0 0 1; +#X restore 354 296 pd check_min_max; +#X obj 520 30 loadbang; +#X text 364 420 dh20020210; +#X obj 319 397 lia 50 20 0 0 0 0 0; +#X msg 419 172 caps butt; +#X obj 14 31 route add float del; +#X msg 100 54 del; +#X connect 0 0 58 0; +#X connect 2 0 40 0; +#X connect 3 0 28 0; +#X connect 4 0 9 0; +#X connect 5 0 50 0; +#X connect 6 0 9 0; +#X connect 7 0 11 0; +#X connect 8 1 53 0; +#X connect 9 0 4 0; +#X connect 9 0 6 0; +#X connect 9 0 8 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 1 0; +#X connect 15 0 31 0; +#X connect 16 0 3 0; +#X connect 16 0 27 0; +#X connect 17 0 3 1; +#X connect 21 0 10 0; +#X connect 21 0 11 0; +#X connect 22 2 26 0; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 25 0 6 1; +#X connect 26 0 5 1; +#X connect 26 0 5 3; +#X connect 29 0 2 1; +#X connect 30 0 2 3; +#X connect 32 0 23 1; +#X connect 33 0 13 1; +#X connect 34 0 5 3; +#X connect 34 0 5 1; +#X connect 35 0 2 0; +#X connect 35 0 2 2; +#X connect 36 0 5 0; +#X connect 36 0 5 2; +#X connect 37 0 15 0; +#X connect 37 1 16 0; +#X connect 37 2 17 0; +#X connect 37 3 52 0; +#X connect 37 3 41 0; +#X connect 37 3 7 0; +#X connect 37 3 25 0; +#X connect 37 4 21 0; +#X connect 38 0 9 0; +#X connect 39 0 40 0; +#X connect 40 0 22 0; +#X connect 40 0 4 0; +#X connect 41 0 11 0; +#X connect 42 0 48 0; +#X connect 43 0 44 0; +#X connect 43 1 45 0; +#X connect 46 0 48 0; +#X connect 47 0 51 1; +#X connect 47 0 13 0; +#X connect 47 0 56 4; +#X connect 47 1 56 5; +#X connect 48 0 43 0; +#X connect 50 0 51 0; +#X connect 50 1 56 2; +#X connect 50 2 51 2; +#X connect 50 3 51 3; +#X connect 51 0 9 0; +#X connect 52 0 10 0; +#X connect 53 0 56 2; +#X connect 53 0 51 1; +#X connect 53 0 51 3; +#X connect 54 0 48 0; +#X connect 56 1 47 1; +#X connect 57 0 40 0; +#X connect 58 0 37 0; +#X connect 58 1 23 0; +#X connect 58 2 59 0; +#X connect 59 0 10 0; +#X connect 59 0 11 0; diff --git a/xgui/objects/pad.pd b/xgui/objects/pad.pd new file mode 100644 index 00000000..655b6f7d --- /dev/null +++ b/xgui/objects/pad.pd @@ -0,0 +1,85 @@ +#N canvas 349 58 590 576 10; +#X text 95 15 my_slider1; +#X obj 21 16 inlet; +#X obj 21 40 route show float hide; +#X obj 200 185 pack f f f f; +#X msg 102 123 hide; +#X obj 293 194 pack f f; +#X obj 21 64 t b b b b b; +#X msg 21 108 raise; +#X obj 210 478 outlet; +#X obj 336 170 moy; +#X obj 293 170 moy; +#X obj 193 331 symbol \$3; +#X msg 193 355 text \$1; +#X text 442 445 dh20020428; +#X obj 210 113 \$3; +#X obj 235 113 \$4; +#X msg 200 270 show \, coord \$1 \$2 \$3 \$4 \, width 1 \, color white +; +#X msg 22 295 coord \$1 \$2 \$1 \$2; +#X msg 293 218 show \, coord \$1 \$2 \$1 \$2 \, color blue \, width +5; +#X msg 100 323 move \$1 \$2; +#X obj 50 381 route coord; +#X obj 21 132 t a a; +#X obj 264 113 \$5; +#X obj 293 113 \$6; +#X msg 30 414 xy \$1 \$2; +#X msg 27 474 coord \$1 \$2 \$1 \$2; +#X obj 35 446 subspace \$3 \$4 \$5 \$6 0 \$8 \$7 0; +#X text 452 455 dh20020523; +#X obj 200 294 alias \$1-bord; +#X obj 193 379 alias \$1-value; +#X obj 66 231 rect \$1-bord; +#X obj 28 205 seg \$1-pos; +#X obj 293 242 alias \$1-pos; +#X obj 62 353 alias \$1-pos; +#X obj 49 182 make_obj_name \$2; +#X obj 98 209 make_obj_name \$2; +#X obj 52 263 route click drag; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 2 2 4 0; +#X connect 3 0 16 0; +#X connect 4 0 30 0; +#X connect 4 0 31 0; +#X connect 5 0 18 0; +#X connect 6 0 7 0; +#X connect 6 0 11 0; +#X connect 6 1 14 0; +#X connect 6 2 15 0; +#X connect 6 3 22 0; +#X connect 6 4 23 0; +#X connect 7 0 21 0; +#X connect 9 0 5 1; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 29 0; +#X connect 14 0 3 0; +#X connect 14 0 10 0; +#X connect 15 0 3 1; +#X connect 15 0 9 0; +#X connect 16 0 28 0; +#X connect 17 0 20 0; +#X connect 18 0 32 0; +#X connect 19 0 33 0; +#X connect 20 0 24 0; +#X connect 21 0 31 0; +#X connect 21 1 30 0; +#X connect 22 0 10 1; +#X connect 22 0 3 2; +#X connect 23 0 9 1; +#X connect 23 0 3 3; +#X connect 24 0 26 0; +#X connect 25 0 33 0; +#X connect 26 0 25 0; +#X connect 26 1 8 0; +#X connect 30 0 36 0; +#X connect 31 0 36 0; +#X connect 33 0 20 0; +#X connect 34 0 31 0; +#X connect 35 0 30 0; +#X connect 36 0 17 0; +#X connect 36 0 24 0; +#X connect 36 1 19 0; diff --git a/xgui/objects/potar.pd b/xgui/objects/potar.pd new file mode 100644 index 00000000..dfc3ea11 --- /dev/null +++ b/xgui/objects/potar.pd @@ -0,0 +1,103 @@ +#N canvas 127 104 714 625 10; +#X text 95 15 my_slider1; +#X obj 21 16 inlet; +#X obj 21 40 route show float hide; +#X obj 288 132 \$3; +#X obj 322 132 \$4; +#X obj 249 185 pack f f f f; +#X msg 87 181 hide; +#X obj 359 132 pack f f; +#X obj 359 84 \$3; +#X obj 390 84 \$4; +#X obj 21 64 t b b b b b; +#X msg 36 515 text \$1; +#X msg 21 403 sub \$2 \, bang; +#X msg 159 505 angle \$1; +#X msg 21 108 raise; +#X msg 249 270 show \, coord \$1 \$2 \$3 \$4 \, width 1 \, style chord +\, angle 359 \, color white; +#X obj 21 132 t a a a a; +#X msg 249 209 show \, coord \$1 \$2 \$3 \$4 \, width 1 \, style arc +\, angle 359 \, border black; +#X obj 22 573 outlet; +#X obj 60 431 t b f; +#X text 595 572 dh20020427; +#X obj 36 494 int; +#X obj 288 156 + 28; +#X obj 359 108 + 14; +#X obj 390 108 + 14; +#X obj 322 156 + 28; +#X msg 359 156 show \, pos \$1 \$2 \, color blue \, anchor center \, +text 0; +#X obj 249 246 alias \$1-dessus; +#X obj 249 307 alias \$1-bord; +#X obj 249 368 alias \$1-fond; +#X obj 37 283 text \$1-value; +#X obj 21 254 arc \$1-dessus; +#X obj 51 316 arc \$1-fond; +#X obj 76 343 arc \$1-bord; +#X obj 159 530 alias \$1-fond; +#X obj 34 539 alias \$1-value; +#X obj 22 472 bounded \$1-value 0 0 127 0 -359; +#X obj 359 180 alias \$1-value; +#X obj 98 226 make_obj_name \$2; +#X obj 107 251 make_obj_name \$2; +#X obj 119 293 make_obj_name \$2; +#X obj 125 320 make_obj_name \$2; +#X msg 249 331 show \, coord \$1 \$2 \$3 \$4 \, width 0 \, start -90 +\, color grey \, border grey \, angle 0 \, start -90; +#X obj 21 379 route drag; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 2 1 19 0; +#X connect 2 2 6 0; +#X connect 3 0 22 0; +#X connect 3 0 5 0; +#X connect 4 0 5 1; +#X connect 4 0 25 0; +#X connect 5 0 15 0; +#X connect 5 0 42 0; +#X connect 5 0 17 0; +#X connect 6 0 30 0; +#X connect 6 0 31 0; +#X connect 6 0 32 0; +#X connect 6 0 33 0; +#X connect 7 0 26 0; +#X connect 8 0 23 0; +#X connect 9 0 24 0; +#X connect 10 0 14 0; +#X connect 10 1 8 0; +#X connect 10 2 9 0; +#X connect 10 3 3 0; +#X connect 10 4 4 0; +#X connect 11 0 35 0; +#X connect 12 0 36 0; +#X connect 13 0 34 0; +#X connect 14 0 16 0; +#X connect 15 0 28 0; +#X connect 16 0 31 0; +#X connect 16 1 30 0; +#X connect 16 2 32 0; +#X connect 16 3 33 0; +#X connect 17 0 27 0; +#X connect 19 0 36 0; +#X connect 19 1 36 0; +#X connect 21 0 11 0; +#X connect 22 0 5 2; +#X connect 23 0 7 0; +#X connect 24 0 7 1; +#X connect 25 0 5 3; +#X connect 26 0 37 0; +#X connect 30 0 43 0; +#X connect 31 0 43 0; +#X connect 32 0 43 0; +#X connect 33 0 43 0; +#X connect 36 0 18 0; +#X connect 36 0 21 0; +#X connect 36 1 13 0; +#X connect 38 0 31 0; +#X connect 39 0 30 0; +#X connect 40 0 32 0; +#X connect 41 0 33 0; +#X connect 42 0 29 0; +#X connect 43 0 12 0; diff --git a/xgui/objects/preset.pd b/xgui/objects/preset.pd new file mode 100644 index 00000000..a86ba0a2 --- /dev/null +++ b/xgui/objects/preset.pd @@ -0,0 +1,112 @@ +#N canvas 245 101 589 563 10; +#X obj 21 16 inlet; +#X obj 21 40 route show float hide; +#X obj 200 185 pack f f f f; +#X msg 87 181 hide; +#X obj 295 193 pack f f; +#X obj 46 65 t b b b b b; +#X msg 295 217 show \, pos \$1 \$2 \, color blue \, anchor center; +#X obj 32 522 outlet; +#X msg 62 465 color grey; +#X msg 61 439 color white; +#X obj 60 414 delay 100; +#X obj 336 164 moy; +#X obj 293 170 moy; +#X obj 194 138 \$4; +#X obj 219 138 \$5; +#X text 391 484 dh20020428; +#X msg 200 270 show \, coord \$1 \$2 \$3 \$4 \, width 1 \, color white +; +#X obj 243 93 \$4; +#X obj 277 93 \$5; +#X obj 243 116 + \$6; +#X obj 274 117 + \$7; +#X obj 21 132 t b b; +#X msg 49 161 raise; +#X msg 25 188 raise; +#X obj 323 307 symbol \$3; +#X msg 323 332 text \$1; +#X text 95 15 button canvas name text posX posY dX dY; +#X obj 76 343 rect \$1-c; +#X obj 56 256 make_obj_name \$2; +#X obj 88 320 make_obj_name \$2; +#X obj 37 283 text \$1-t; +#X obj 200 307 alias \$1-c; +#X obj 323 357 alias \$1-t; +#X obj 295 241 alias \$1-t; +#X obj 63 490 alias \$1-c; +#X obj 52 377 route click c-click; +#X obj 238 533 send to_node; +#X text 401 494 dh20020723; +#X msg 140 441 color white; +#X obj 139 416 delay 100; +#X obj 142 492 alias \$1-c; +#X msg 141 467 color red; +#X msg 252 508 do */ load_coord \$1; +#X obj 252 465 bang; +#X obj 238 387 symbol \$3; +#X obj 252 486 symbol \$3; +#X obj 302 387 symbol \$2; +#X obj 238 363 t b b; +#X obj 238 410 pack s s; +#X msg 238 432 do */ save_coord \$2 \$1; +#X obj 472 422 print; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 2 3 0; +#X connect 2 0 16 0; +#X connect 3 0 27 0; +#X connect 3 0 30 0; +#X connect 4 0 6 0; +#X connect 5 0 21 0; +#X connect 5 0 24 0; +#X connect 5 1 13 0; +#X connect 5 2 14 0; +#X connect 5 3 17 0; +#X connect 5 4 18 0; +#X connect 6 0 33 0; +#X connect 8 0 34 0; +#X connect 9 0 34 0; +#X connect 10 0 9 0; +#X connect 11 0 4 1; +#X connect 12 0 4 0; +#X connect 13 0 2 0; +#X connect 13 0 12 0; +#X connect 14 0 2 1; +#X connect 14 0 11 0; +#X connect 16 0 31 0; +#X connect 17 0 19 0; +#X connect 18 0 20 0; +#X connect 19 0 2 2; +#X connect 19 0 12 1; +#X connect 20 0 2 3; +#X connect 20 0 11 1; +#X connect 21 0 23 0; +#X connect 21 1 22 0; +#X connect 22 0 27 0; +#X connect 23 0 30 0; +#X connect 24 0 25 0; +#X connect 25 0 32 0; +#X connect 27 0 35 0; +#X connect 28 0 30 0; +#X connect 29 0 27 0; +#X connect 30 0 35 0; +#X connect 35 0 10 0; +#X connect 35 0 8 0; +#X connect 35 0 7 0; +#X connect 35 0 43 0; +#X connect 35 1 41 0; +#X connect 35 1 39 0; +#X connect 35 1 47 0; +#X connect 38 0 40 0; +#X connect 39 0 38 0; +#X connect 41 0 40 0; +#X connect 42 0 36 0; +#X connect 43 0 45 0; +#X connect 44 0 48 0; +#X connect 45 0 42 0; +#X connect 46 0 48 1; +#X connect 47 0 44 0; +#X connect 47 1 46 0; +#X connect 48 0 49 0; +#X connect 49 0 36 0; diff --git a/xgui/objects/slider2.pd b/xgui/objects/slider2.pd new file mode 100644 index 00000000..cbbeaddf --- /dev/null +++ b/xgui/objects/slider2.pd @@ -0,0 +1,141 @@ +#N canvas 248 68 637 564 10; +#X text 95 7 my_slider1; +#X obj 14 8 inlet; +#X obj 146 409 outlet; +#X obj 431 153 xy2coord; +#X obj 521 145 move_y; +#X obj 350 448 xy2coord; +#X obj 521 100 light_over; +#X obj 359 213 coord2xy; +#X text 503 470 dh20020109; +#X text 47 86 x pos; +#X text 59 126 y pos; +#X obj 431 199 click2bxy; +#X msg 553 78 Blue; +#X obj 25 167 s \$0-y_min; +#X obj 69 247 s \$0-y_max; +#X obj 445 102 r \$0-y_min; +#X obj 15 101 s \$0-x_pos; +#X obj 392 408 r \$0-y_max; +#X obj 431 52 r \$0-x_pos; +#X obj 349 358 r \$0-x_pos; +#X obj 14 55 t b b b b b; +#X obj 14 31 route show float hide; +#X msg 94 54 hide; +#X msg 141 91 show \, width 1 \, color white; +#X obj 459 80 + 15; +#X obj 362 386 + 15; +#X msg 137 136 show \, color Blue \, width 3; +#X obj 14 78 \$3; +#X obj 32 127 \$4; +#X obj 474 127 + \$5; +#X obj 110 221 \$6; +#X text 137 222 value size; +#X obj 62 282 pack f f f; +#X obj 59 192 + \$5; +#X text 96 191 real size; +#X obj 553 57 loadbang; +#X msg 147 356 \$1 \, bang; +#X obj 141 323 t b f; +#X obj 360 279 t b f; +#X floatatom 200 411 5 0 0; +#X obj 148 380 number \$0-value; +#X obj 385 327 number \$0-value; +#X msg 408 275 0 \, subspace 0 \$3 \$2 \$1; +#X msg 44 336 bound 0 \$1; +#X obj 359 167 move_y; +#X text 513 480 dh20020523; +#X obj 359 144 alias \$1-c; +#X obj 521 122 alias \$1-sld; +#X obj 140 114 alias \$1-c; +#X obj 137 160 alias \$1-sld; +#X obj 350 472 alias \$1-sld; +#X obj 431 176 rect \$1-c; +#X obj 340 235 route update; +#X msg 324 166 @ \$1; +#X obj 359 190 seg \$1-sld; +#X obj 324 53 symbol \$1; +#X obj 347 74 symbol \$2; +#X obj 324 145 a2s; +#X obj 326 102 pack s s; +#X obj 324 10 loadbang; +#X obj 324 31 t b b; +#X msg 501 221 @ \$1; +#X obj 501 200 a2s; +#X msg 502 178 list \$2 / \$1; +#X msg 325 123 list \$2 / \$1 sdl; +#X connect 1 0 21 0; +#X connect 3 0 51 0; +#X connect 4 0 47 0; +#X connect 5 0 50 0; +#X connect 6 0 47 0; +#X connect 7 1 38 0; +#X connect 11 0 41 0; +#X connect 11 2 38 0; +#X connect 12 0 6 1; +#X connect 15 0 3 1; +#X connect 15 0 29 0; +#X connect 17 0 5 3; +#X connect 17 0 5 1; +#X connect 18 0 3 0; +#X connect 18 0 24 0; +#X connect 19 0 5 0; +#X connect 19 0 25 0; +#X connect 20 0 27 0; +#X connect 20 1 28 0; +#X connect 20 3 26 0; +#X connect 20 3 30 0; +#X connect 20 4 23 0; +#X connect 21 0 20 0; +#X connect 21 1 37 0; +#X connect 21 2 22 0; +#X connect 22 0 48 0; +#X connect 22 0 49 0; +#X connect 23 0 48 0; +#X connect 24 0 3 2; +#X connect 25 0 5 2; +#X connect 26 0 49 0; +#X connect 27 0 16 0; +#X connect 28 0 13 0; +#X connect 28 0 33 0; +#X connect 28 0 32 0; +#X connect 29 0 3 3; +#X connect 30 0 32 2; +#X connect 30 0 43 0; +#X connect 32 0 42 0; +#X connect 33 0 14 0; +#X connect 33 0 32 1; +#X connect 35 0 12 0; +#X connect 36 0 40 0; +#X connect 37 0 41 0; +#X connect 37 1 36 0; +#X connect 38 0 40 0; +#X connect 38 0 41 0; +#X connect 38 1 41 0; +#X connect 40 0 2 0; +#X connect 40 0 39 0; +#X connect 41 0 5 1; +#X connect 41 0 5 3; +#X connect 42 0 41 0; +#X connect 43 0 40 0; +#X connect 44 0 54 0; +#X connect 46 0 44 0; +#X connect 47 0 6 0; +#X connect 47 0 4 0; +#X connect 51 0 11 0; +#X connect 52 0 7 0; +#X connect 53 0 54 0; +#X connect 54 0 7 0; +#X connect 54 0 52 0; +#X connect 55 0 58 0; +#X connect 56 0 58 1; +#X connect 57 0 53 0; +#X connect 58 0 64 0; +#X connect 58 0 63 0; +#X connect 59 0 60 0; +#X connect 60 0 55 0; +#X connect 60 1 56 0; +#X connect 61 0 51 0; +#X connect 62 0 61 0; +#X connect 63 0 62 0; +#X connect 64 0 57 0; diff --git a/xgui/objects/slider_prob.pd b/xgui/objects/slider_prob.pd new file mode 100644 index 00000000..5e3fa11d --- /dev/null +++ b/xgui/objects/slider_prob.pd @@ -0,0 +1,118 @@ +#N canvas 254 54 551 524 10; +#X text 95 7 my_slider1; +#X obj 14 8 inlet; +#X obj 276 461 outlet; +#X obj 303 144 xy2coord; +#X obj 150 153 + 200; +#X obj 389 294 move_y; +#X obj 414 425 xy2coord; +#X obj 430 230 light_over; +#X obj 260 282 coord2xy; +#X text 445 493 dh20020109; +#X obj 277 411 * -1; +#X obj 277 388 -; +#X obj 277 434 +; +#X text 47 86 x pos; +#X text 127 101 y pos; +#X text 210 125 y size; +#X obj 303 190 click2bxy; +#X msg 462 208 Blue; +#N canvas 489 354 249 191 check_min_max 0; +#X obj 51 110 max; +#X obj 51 86 min; +#X obj 51 34 inlet; +#X obj 51 134 outlet; +#X obj 75 57 r \$0-y_max; +#X obj 82 80 r \$0-y_min; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 4 0 1 1; +#X connect 5 0 0 1; +#X restore 277 342 pd check_min_max; +#X obj 100 126 s \$0-y_min; +#X obj 150 177 s \$0-y_max; +#X obj 316 93 r \$0-y_min; +#X obj 15 101 s \$0-x_pos; +#X obj 293 365 r \$0-y_max; +#X obj 456 385 r \$0-y_max; +#X obj 293 45 r \$0-x_pos; +#X obj 413 335 r \$0-x_pos; +#X obj 14 55 t b b b b b; +#X obj 64 269 alias \$0-sld; +#X obj 84 222 alias \$0-cadre; +#X obj 414 449 alias \$0-sld; +#X obj 430 252 alias \$0-sld; +#X obj 14 31 route show float hide; +#X msg 165 52 hide; +#X msg 85 199 show \, width 1 \, color white; +#X obj 303 167 rect \$1 \$0-cadre 10 10 20 20; +#X obj 325 71 + 15; +#X obj 426 363 + 15; +#X obj 14 78 \$3; +#X obj 100 102 \$4; +#X obj 180 127 \$5; +#X obj 344 115 + \$5; +#X obj 22 177 -; +#X obj 22 200 * -1; +#X obj 35 154 r \$0-y_max; +#X obj 260 259 rect \$1 \$0-sld; +#X obj 135 352 route move2; +#X obj 138 388 print; +#X msg 63 244 show \, color blue \, width 1; +#X connect 1 0 32 0; +#X connect 3 0 35 0; +#X connect 4 0 20 0; +#X connect 5 0 31 0; +#X connect 6 0 30 0; +#X connect 7 0 31 0; +#X connect 8 1 18 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 12 0 2 0; +#X connect 16 2 18 0; +#X connect 17 0 7 1; +#X connect 18 0 11 0; +#X connect 18 0 6 1; +#X connect 18 0 6 3; +#X connect 21 0 3 1; +#X connect 21 0 41 0; +#X connect 23 0 11 1; +#X connect 24 0 6 3; +#X connect 24 0 6 1; +#X connect 25 0 3 0; +#X connect 25 0 36 0; +#X connect 26 0 6 0; +#X connect 26 0 37 0; +#X connect 27 0 38 0; +#X connect 27 1 39 0; +#X connect 27 2 40 0; +#X connect 27 3 48 0; +#X connect 27 3 17 0; +#X connect 27 4 34 0; +#X connect 29 0 47 0; +#X connect 31 0 7 0; +#X connect 31 0 5 0; +#X connect 32 0 27 0; +#X connect 32 1 42 0; +#X connect 32 2 33 0; +#X connect 33 0 35 0; +#X connect 33 0 45 0; +#X connect 34 0 29 0; +#X connect 35 0 16 0; +#X connect 35 0 5 0; +#X connect 36 0 3 2; +#X connect 37 0 6 2; +#X connect 38 0 22 0; +#X connect 39 0 4 0; +#X connect 39 0 19 0; +#X connect 40 0 4 1; +#X connect 41 0 3 3; +#X connect 42 0 43 0; +#X connect 43 0 18 0; +#X connect 44 0 42 1; +#X connect 45 0 8 0; +#X connect 45 0 46 0; +#X connect 46 0 47 0; +#X connect 46 1 47 0; +#X connect 48 0 28 0; diff --git a/xgui/pdx.bat b/xgui/pdx.bat new file mode 100644 index 00000000..bbe34e59 --- /dev/null +++ b/xgui/pdx.bat @@ -0,0 +1,5 @@ +title pdx +start ..\bin\wish83.exe .\bin\xgui.sh +..\bin\pd.exe -audiobuf 100 -open .\main\pdx_connect.pd -path ..\externs -path .\main -path .\adapters_in -path .\adapters_out -path .\behaviors -path .\filters -path .\objects -path .\utils -path .\physics + + diff --git a/xgui/pdx.sh b/xgui/pdx.sh new file mode 100755 index 00000000..ed8fbbff --- /dev/null +++ b/xgui/pdx.sh @@ -0,0 +1,14 @@ +#!/bin/sh +./bin/xgui.sh & +../bin/pd -open ./main/pdx_connect.pd \ + -path ./main/ \ + -path ./adapters_in \ + -path ./adapters_out \ + -path ./behaviors \ + -path ./filters \ + -path ./objects \ + -path ./utils \ + -path ./physics \ + -path ./bin + + diff --git a/xgui/physics/atom.pd b/xgui/physics/atom.pd new file mode 100644 index 00000000..2defe2ff --- /dev/null +++ b/xgui/physics/atom.pd @@ -0,0 +1,21 @@ +#N canvas 579 401 301 287 10; +#X obj 22 35 inlet; +#X text 199 245 dh20020401; +#X text 22 10 atom name x y; +#X obj 21 85 concat !xy; +#X obj 75 109 concat ?xy; +#X obj 129 133 concat add; +#X obj 18 212 convert xy= coord=; +#X obj 18 183 vector \$1-pos \$2 \$3; +#X obj 18 239 outlet; +#X obj 21 62 route !coord ?coord move drag; +#X connect 0 0 9 0; +#X connect 3 0 7 0; +#X connect 4 0 7 0; +#X connect 5 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 9 0 3 0; +#X connect 9 1 4 0; +#X connect 9 2 5 0; +#X connect 9 3 5 0; diff --git a/xgui/physics/damping.pd b/xgui/physics/damping.pd new file mode 100644 index 00000000..1e8a0973 --- /dev/null +++ b/xgui/physics/damping.pd @@ -0,0 +1,59 @@ +#N canvas 605 407 505 422 10; +#X obj 26 45 inlet; +#X text 237 8 force = -c.v; +#X obj 93 45 valueinit \$1_c \$2; +#X text 23 8 damping name c; +#X obj 62 120 value \$1_c; +#X msg 62 95 bang; +#X obj 243 78 inlet; +#X obj 248 261 value \$1_c; +#X obj 248 310 *; +#X msg 243 128 ?abs; +#X obj 266 284 * -1; +#X obj 248 360 force \$1_s; +#X obj 337 389 outlet; +#X obj 248 211 r b_spring; +#X text 405 368 dh20020404; +#X obj 64 222 outlet; +#X msg 248 335 !abs \$1; +#X obj 122 150 force \$1_s; +#X obj 26 70 route !c ?c ?force; +#X msg 120 95 ?force; +#X obj 264 184 route abs=; +#X msg 284 128 !xy \$3 \$4; +#X obj 264 159 vector \$1_calcul; +#X obj 243 103 t b a a; +#X obj 332 286 vector \$1_speed; +#X msg 362 132 !xy \$3 \$4; +#X obj 385 159 vector \$1_speed; +#X obj 248 236 t b b; +#X msg 332 264 ?xy; +#X msg 332 311 !force \$1 \$2; +#X connect 0 0 18 0; +#X connect 4 0 15 0; +#X connect 5 0 4 0; +#X connect 6 0 23 0; +#X connect 7 0 8 0; +#X connect 8 0 16 0; +#X connect 9 0 22 0; +#X connect 10 0 8 1; +#X connect 11 1 12 0; +#X connect 13 0 27 0; +#X connect 16 0 11 0; +#X connect 17 0 15 0; +#X connect 18 0 4 0; +#X connect 18 1 5 0; +#X connect 18 2 19 0; +#X connect 19 0 17 0; +#X connect 20 0 10 0; +#X connect 21 0 22 0; +#X connect 22 0 20 0; +#X connect 23 0 9 0; +#X connect 23 1 21 0; +#X connect 23 2 25 0; +#X connect 24 0 29 0; +#X connect 25 0 26 0; +#X connect 27 0 7 0; +#X connect 27 1 28 0; +#X connect 28 0 24 0; +#X connect 29 0 11 0; diff --git a/xgui/physics/force.pd b/xgui/physics/force.pd new file mode 100644 index 00000000..7371eb9c --- /dev/null +++ b/xgui/physics/force.pd @@ -0,0 +1,29 @@ +#N canvas 534 341 718 332 12; +#X obj 25 78 inlet; +#X obj 25 254 outlet; +#X text 580 265 dh20020401; +#X obj 388 143 r b_force; +#X text 17 8 force name x y; +#X obj 25 200 vector \$1_force \$2 \$3; +#X msg 388 170 ?xy; +#X obj 388 199 vector \$1_force \$2 \$3; +#X obj 388 254 outlet; +#X obj 388 226 convert xy= force; +#X obj 25 104 route !force ?force !abs; +#X obj 25 227 convert xy= force=; +#X msg 25 133 !xy \$1 \$2; +#X msg 119 132 ?xy; +#X msg 166 131 !abs \$1; +#X connect 0 0 10 0; +#X connect 3 0 6 0; +#X connect 5 0 11 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 9 0 8 0; +#X connect 10 0 12 0; +#X connect 10 1 13 0; +#X connect 10 2 14 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 14 0 5 0; diff --git a/xgui/physics/lia_2d.pd b/xgui/physics/lia_2d.pd new file mode 100644 index 00000000..8b21948a --- /dev/null +++ b/xgui/physics/lia_2d.pd @@ -0,0 +1,206 @@ +#N canvas 100 156 652 628 10; +#X obj 217 36 inlet; +#X obj 443 33 inlet; +#X obj 402 32 inlet; +#X obj 259 35 inlet; +#X text 225 -17 X1; +#X text 285 -39 masse 1; +#X text 449 -43 masse 2; +#X text 412 -19 X2; +#X obj 173 552 outlet; +#X obj 384 553 outlet; +#X floatatom 616 65 0 0 0; +#X text 552 -62 longeur du resort; +#X obj -19 -9 loadbang; +#X text 276 -99 modele de liaison; +#X floatatom 218 82 0 0 0; +#X floatatom 388 61 0 0 0; +#X obj 324 186 -; +#X obj 286 184 -; +#X floatatom 66 61 0 0 0; +#X floatatom 131 60 0 0 0; +#X text 74 -43 K; +#X text 135 -41 C; +#X obj 322 353 *; +#X obj 337 328 -; +#X obj 460 422 *; +#X obj 343 464 +; +#X floatatom 259 62 0 0 0; +#X floatatom 446 62 0 0 0; +#X obj 291 499 * -1; +#X obj 67 36 inlet; +#X obj 132 35 inlet; +#X obj 36 109 float; +#X obj 101 110 float; +#X obj 187 107 float; +#X obj 229 107 float; +#X obj 372 107 float; +#X obj 413 106 float; +#X text 53 -61 raideur; +#X text 110 -60 viscosite; +#X obj 66 -12 r lk; +#X obj 132 -12 r lc; +#X obj 67 13 \$1; +#X obj 133 12 \$2; +#X obj 216 9 \$3; +#X obj 307 9 \$5; +#X obj 616 38 inlet; +#X obj 599 107 f; +#X text 596 -32 L0; +#X text 579 -49 a vide; +#X obj 306 35 inlet; +#X obj 348 35 inlet; +#X floatatom 306 83 0 0 0; +#X floatatom 348 62 0 0 0; +#X obj 276 107 float; +#X obj 318 107 float; +#X obj 529 32 inlet; +#X obj 488 31 inlet; +#X floatatom 486 61 0 0 0; +#X floatatom 526 63 0 0 0; +#X obj 458 106 float; +#X obj 499 105 float; +#X text 272 -17 Vx1; +#X text 314 -17 Y1; +#X text 361 -17 Vy1; +#X text 453 -20 Vx2; +#X text 498 -20 Y2; +#X text 539 -21 Vy2; +#X obj 260 9 \$4; +#X obj 349 8 \$6; +#X obj 403 6 \$7; +#X obj 445 6 \$8; +#X obj 488 5 \$9; +#X obj 528 6 \$10; +#X obj 612 14 \$11; +#X obj 417 185 -; +#X obj 377 185 -; +#X text 288 202 Dx; +#X text 323 205 DVx; +#X text 380 206 Dy; +#X text 416 204 DVy; +#X obj 287 230 *; +#X obj 377 230 *; +#X obj 320 258 +; +#X text 360 285 l; +#X text 352 353 FK; +#X obj 325 392 *; +#X obj 371 392 *; +#X obj 325 421 /; +#X obj 373 422 /; +#X obj 421 420 *; +#X obj 408 469 +; +#X text 321 439 FKx; +#X text 371 441 FKy; +#X text 416 442 FCx; +#X text 465 439 FCy; +#X text 190 573 F1x; +#X text 400 571 F2x; +#X obj 281 551 outlet; +#X obj 466 552 outlet; +#X obj 373 499 * -1; +#X text 286 570 F1y; +#X text 478 572 F2y; +#X obj -154 89 t b b b b b b b b b b b b; +#X obj 322 284 sqrt; +#X text 565 558 ch20020120; +#X obj -155 60 r b_spring; +#X connect 0 0 14 0; +#X connect 1 0 36 0; +#X connect 2 0 35 0; +#X connect 3 0 26 0; +#X connect 10 0 46 1; +#X connect 12 0 41 0; +#X connect 12 0 42 0; +#X connect 12 0 43 0; +#X connect 12 0 67 0; +#X connect 12 0 44 0; +#X connect 12 0 68 0; +#X connect 12 0 69 0; +#X connect 12 0 70 0; +#X connect 12 0 71 0; +#X connect 12 0 72 0; +#X connect 12 0 73 0; +#X connect 14 0 33 1; +#X connect 15 0 35 1; +#X connect 16 0 89 1; +#X connect 17 0 80 1; +#X connect 17 0 80 0; +#X connect 17 0 85 1; +#X connect 18 0 31 1; +#X connect 19 0 32 1; +#X connect 22 0 85 0; +#X connect 22 0 86 0; +#X connect 23 0 22 1; +#X connect 24 0 90 1; +#X connect 25 0 28 0; +#X connect 25 0 9 0; +#X connect 26 0 34 1; +#X connect 27 0 36 1; +#X connect 28 0 8 0; +#X connect 29 0 18 0; +#X connect 30 0 19 0; +#X connect 31 0 22 0; +#X connect 32 0 89 0; +#X connect 32 0 24 0; +#X connect 33 0 17 0; +#X connect 34 0 16 0; +#X connect 35 0 17 1; +#X connect 36 0 16 1; +#X connect 39 0 18 0; +#X connect 40 0 19 0; +#X connect 41 0 18 0; +#X connect 42 0 19 0; +#X connect 43 0 14 0; +#X connect 44 0 51 0; +#X connect 45 0 10 0; +#X connect 46 0 23 1; +#X connect 49 0 51 0; +#X connect 50 0 52 0; +#X connect 51 0 53 1; +#X connect 52 0 54 1; +#X connect 53 0 75 0; +#X connect 54 0 74 0; +#X connect 55 0 60 0; +#X connect 56 0 59 0; +#X connect 57 0 59 1; +#X connect 58 0 60 1; +#X connect 59 0 75 1; +#X connect 60 0 74 1; +#X connect 67 0 26 0; +#X connect 68 0 52 0; +#X connect 69 0 15 0; +#X connect 70 0 27 0; +#X connect 71 0 57 0; +#X connect 72 0 58 0; +#X connect 73 0 10 0; +#X connect 74 0 24 1; +#X connect 75 0 81 1; +#X connect 75 0 81 0; +#X connect 75 0 86 1; +#X connect 80 0 82 0; +#X connect 81 0 82 1; +#X connect 82 0 103 0; +#X connect 85 0 87 0; +#X connect 86 0 88 0; +#X connect 87 0 25 0; +#X connect 88 0 90 0; +#X connect 89 0 25 1; +#X connect 90 0 99 0; +#X connect 90 0 98 0; +#X connect 99 0 97 0; +#X connect 102 1 31 0; +#X connect 102 2 32 0; +#X connect 102 3 33 0; +#X connect 102 4 35 0; +#X connect 102 5 34 0; +#X connect 102 6 36 0; +#X connect 102 7 53 0; +#X connect 102 8 59 0; +#X connect 102 9 54 0; +#X connect 102 10 60 0; +#X connect 102 11 46 0; +#X connect 103 0 88 1; +#X connect 103 0 23 0; +#X connect 103 0 87 1; +#X connect 105 0 102 0; diff --git a/xgui/physics/mass.pd b/xgui/physics/mass.pd new file mode 100644 index 00000000..bed61e42 --- /dev/null +++ b/xgui/physics/mass.pd @@ -0,0 +1,118 @@ +#N canvas 336 189 834 719 10; +#X obj 24 35 inlet; +#X obj 30 631 outlet; +#X text 591 652 dh20020401; +#X obj 77 86 bang; +#X msg 24 142 mass= \$1; +#X obj 466 162 r b_mass; +#X obj 561 22 valueinit \$1_m \$2; +#X obj 24 119 value \$1_m; +#X obj 126 119 concat !xy; +#X text 23 10 mass name m x y speed_x speed_y; +#X obj 291 276 concat add; +#X obj 371 275 value \$1_m; +#X msg 371 299 divide \$1 \$1; +#X msg 590 273 ?xy; +#X obj 222 276 r b_init; +#X msg 222 301 !xy 0 0; +#X obj 125 171 convert xy= speed=; +#X msg 143 87 ?xy; +#X obj 290 395 vector \$1_speed \$3 \$4; +#X obj 293 363 convert xy= add; +#X msg 620 274 ?xy; +#X obj 291 336 vector \$1_calcul1; +#X obj 288 423 unpack s f f; +#X obj 326 451 * 0.01; +#X obj 386 453 * 0.01; +#X obj 303 493 pack s f f; +#X msg 470 273 mult 0.01 0.01; +#X obj 304 517 route list; +#X msg 289 451 move; +#X obj 295 119 atom \$1_pos \$3 \$4; +#X obj 304 550 atom \$1_pos \$3 \$4; +#X msg 723 273 ?coord; +#X obj 124 145 vector \$1_speed \$5 \$6; +#X obj 337 669 outlet; +#X obj 297 158 inlet; +#X obj 297 184 route force; +#X msg 256 87 1; +#X msg 289 87 0; +#X obj 466 188 spigot; +#X obj 24 62 route !mass ?mass !speed ?speed speed on off; +#X msg 187 88 !abs \$1; +#X obj 668 301 vector \$1_speed \$5 \$6; +#X obj 466 212 t b b b b b b; +#X obj 387 597 unpack f f; +#X obj 304 597 unpack f f; +#X obj 304 574 route coord=; +#X msg 340 647 mass \$1 \$2 \$3 \$4; +#X text 507 596 mass x y speed_x speed_y; +#X obj 339 622 pack f f f f; +#X msg 668 274 ?xy; +#X obj 668 328 route xy=; +#X obj 461 394 value time_interval; +#X obj 461 371 loadbang; +#X connect 0 0 39 0; +#X connect 3 0 7 0; +#X connect 4 0 1 0; +#X connect 5 0 38 0; +#X connect 7 0 4 0; +#X connect 8 0 32 0; +#X connect 10 0 21 0; +#X connect 11 0 12 0; +#X connect 12 0 21 0; +#X connect 13 0 21 0; +#X connect 14 0 15 0; +#X connect 15 0 21 0; +#X connect 16 0 1 0; +#X connect 17 0 32 0; +#X connect 18 0 22 0; +#X connect 19 0 18 0; +#X connect 20 0 18 0; +#X connect 21 0 19 0; +#X connect 22 0 28 0; +#X connect 22 1 23 0; +#X connect 22 2 24 0; +#X connect 23 0 25 1; +#X connect 24 0 25 2; +#X connect 25 0 27 0; +#X connect 26 0 21 0; +#X connect 27 0 30 0; +#X connect 28 0 25 0; +#X connect 29 0 1 0; +#X connect 30 0 45 0; +#X connect 31 0 30 0; +#X connect 32 0 16 0; +#X connect 34 0 35 0; +#X connect 35 0 10 0; +#X connect 36 0 38 1; +#X connect 37 0 38 1; +#X connect 38 0 42 0; +#X connect 39 0 7 0; +#X connect 39 1 3 0; +#X connect 39 2 8 0; +#X connect 39 3 17 0; +#X connect 39 4 40 0; +#X connect 39 5 36 0; +#X connect 39 6 37 0; +#X connect 39 7 29 0; +#X connect 40 0 32 0; +#X connect 41 0 50 0; +#X connect 42 0 31 0; +#X connect 42 1 49 0; +#X connect 42 2 20 0; +#X connect 42 3 13 0; +#X connect 42 4 26 0; +#X connect 42 5 11 0; +#X connect 43 0 48 2; +#X connect 43 1 48 3; +#X connect 44 0 48 0; +#X connect 44 1 48 1; +#X connect 45 0 44 0; +#X connect 46 0 33 0; +#X connect 48 0 46 0; +#X connect 49 0 41 0; +#X connect 50 0 43 0; +#X connect 51 0 23 1; +#X connect 51 0 24 1; +#X connect 52 0 51 0; diff --git a/xgui/physics/spring.pd b/xgui/physics/spring.pd new file mode 100644 index 00000000..b5f75d28 --- /dev/null +++ b/xgui/physics/spring.pd @@ -0,0 +1,155 @@ +#N canvas 207 165 1045 677 10; +#X obj 13 33 inlet; +#X obj 21 119 concat !xy; +#X obj 40 144 concat ?xy; +#X obj 97 120 concat !xy; +#X obj 118 143 concat ?xy; +#X text 912 34 k : N/m; +#X obj 899 64 inlet; +#X obj 175 319 outlet; +#X obj 16 206 convert xy= xy1=; +#X obj 157 206 convert xy= xy1=; +#X obj 899 87 route mass; +#X obj 338 358 vector \$1_calcul_l; +#X obj 411 270 convert xy= add; +#X obj 353 190 t b b b b; +#X msg 453 222 !xy 0 0; +#X obj 337 405 value \$1_l; +#X obj 198 120 value \$1_l; +#X msg 198 143 l= \$1; +#X msg 375 224 ?xy; +#X msg 413 223 ?xy; +#X msg 337 225 ?abs; +#X obj 338 382 route abs=; +#X obj 292 121 value \$1_k; +#X obj 374 15 valueinit \$1_k \$2; +#X obj 292 144 concat k=; +#X msg 714 565 !abs \$1; +#X text 642 29 k : N/m; +#X obj 653 61 inlet; +#X obj 653 84 route mass; +#X obj 607 600 force \$1_s1; +#X msg 653 571 !abs \$1; +#X obj 701 632 outlet; +#X obj 376 146 force \$1_s1; +#X obj 724 537 * -1; +#X text 10 7 spring name k l x1 y1 x2 y2; +#X obj 374 40 valueinit \$1_l \$3; +#X obj 483 146 force \$1_s2; +#X msg 376 124 ?force; +#X msg 482 125 ?force; +#X obj 13 53 route !xy1 ?xy1 !xy2 ?xy2 !l ?l l !k ?k ?force1 ?force2; +#X msg 653 108 !xy \$1 \$2; +#X msg 899 111 !xy \$1 \$2; +#X obj 653 162 r b_spring; +#X obj 719 598 force \$1_s2; +#X obj 774 284 convert xy= add; +#X msg 816 236 !xy 0 0; +#X msg 738 238 ?xy; +#X msg 776 237 ?xy; +#X msg 665 236 ?abs; +#X obj 701 372 vector \$1_calcul_kl; +#X obj 683 442 value \$1_l; +#X obj 683 466 -; +#X obj 661 514 *; +#X obj 661 484 value \$1_k; +#X obj 651 193 t b b b b b b b; +#X msg 705 237 ?xy; +#X obj 700 394 route abs= xy=; +#X obj 813 625 outlet; +#X text 853 515 dh20020404; +#X obj 16 178 vector \$1_p1 \$4 \$5; +#X obj 157 179 vector \$1_p2 \$6 \$7; +#X obj 410 247 vector \$1_p1 \$4 \$5; +#X obj 376 296 vector \$1_p2 \$6 \$7; +#X obj 773 261 vector \$1_p1 \$4 \$5; +#X obj 739 310 vector \$1_p2 \$6 \$7; +#X obj 653 130 vector \$1_p1 \$4 \$5; +#X obj 899 133 vector \$1_p2 \$6 \$7; +#X msg 292 98 bang; +#X msg 198 96 bang; +#X msg 746 418 !force \$1 \$2; +#X obj 376 318 convert xy= substract; +#X obj 739 332 convert xy= substract; +#X connect 0 0 39 0; +#X connect 1 0 59 0; +#X connect 2 0 59 0; +#X connect 3 0 60 0; +#X connect 4 0 60 0; +#X connect 6 0 10 0; +#X connect 8 0 7 0; +#X connect 9 0 7 0; +#X connect 10 0 41 0; +#X connect 11 0 21 0; +#X connect 12 0 11 0; +#X connect 13 0 20 0; +#X connect 13 1 18 0; +#X connect 13 2 19 0; +#X connect 13 3 14 0; +#X connect 14 0 11 0; +#X connect 16 0 17 0; +#X connect 17 0 7 0; +#X connect 18 0 62 0; +#X connect 19 0 61 0; +#X connect 20 0 11 0; +#X connect 21 0 15 0; +#X connect 22 0 24 0; +#X connect 24 0 7 0; +#X connect 25 0 43 0; +#X connect 27 0 28 0; +#X connect 28 0 40 0; +#X connect 29 1 31 0; +#X connect 30 0 29 0; +#X connect 32 0 7 0; +#X connect 33 0 25 0; +#X connect 36 0 7 0; +#X connect 37 0 32 0; +#X connect 38 0 36 0; +#X connect 39 0 1 0; +#X connect 39 1 2 0; +#X connect 39 2 3 0; +#X connect 39 3 4 0; +#X connect 39 4 16 0; +#X connect 39 5 68 0; +#X connect 39 6 13 0; +#X connect 39 7 22 0; +#X connect 39 8 67 0; +#X connect 39 9 37 0; +#X connect 39 10 38 0; +#X connect 40 0 65 0; +#X connect 41 0 66 0; +#X connect 42 0 54 0; +#X connect 43 1 57 0; +#X connect 44 0 49 0; +#X connect 45 0 49 0; +#X connect 46 0 64 0; +#X connect 47 0 63 0; +#X connect 48 0 49 0; +#X connect 49 0 56 0; +#X connect 50 0 51 0; +#X connect 51 0 52 1; +#X connect 52 0 33 0; +#X connect 52 0 30 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 54 1 50 0; +#X connect 54 2 48 0; +#X connect 54 3 55 0; +#X connect 54 4 46 0; +#X connect 54 5 47 0; +#X connect 54 6 45 0; +#X connect 55 0 49 0; +#X connect 56 0 51 1; +#X connect 56 1 69 0; +#X connect 59 0 8 0; +#X connect 60 0 9 0; +#X connect 61 0 12 0; +#X connect 62 0 70 0; +#X connect 63 0 44 0; +#X connect 64 0 71 0; +#X connect 67 0 22 0; +#X connect 68 0 16 0; +#X connect 69 0 29 0; +#X connect 69 0 43 0; +#X connect 70 0 11 0; +#X connect 71 0 49 0; diff --git a/xgui/physics/vector.pd b/xgui/physics/vector.pd new file mode 100644 index 00000000..1195cad9 --- /dev/null +++ b/xgui/physics/vector.pd @@ -0,0 +1,162 @@ +#N canvas 46 212 1098 676 12; +#X obj 23 75 inlet; +#X obj 102 619 outlet; +#X obj 24 157 unpack f f; +#X obj 42 247 pack f f; +#X obj 122 157 t b b; +#X msg 42 270 xy= \$1 \$2; +#X text 625 537 dh20020401; +#X text 19 10 vector name x y; +#X obj 24 206 value \$1_x; +#X obj 125 206 value \$1_y; +#X obj 203 244 value \$1_x; +#X obj 299 244 value \$1_y; +#X obj 305 279 +; +#X obj 206 279 +; +#X obj 256 216 unpack f f; +#X obj 203 303 value \$1_x; +#X obj 305 304 value \$1_y; +#X obj 236 185 t a b; +#X obj 285 16 valueinit \$1_x \$2; +#X obj 412 245 value \$1_x; +#X obj 508 245 value \$1_y; +#X obj 465 217 unpack f f; +#X obj 412 304 value \$1_x; +#X obj 514 305 value \$1_y; +#X obj 445 185 t a b; +#X obj 514 280 *; +#X obj 412 279 *; +#X text 635 547 dh20020402; +#X obj 420 401 value \$1_x; +#X obj 516 401 value \$1_y; +#X obj 473 373 unpack f f; +#X obj 420 460 value \$1_x; +#X obj 522 461 value \$1_y; +#X obj 521 436 /; +#X obj 420 435 /; +#X obj 417 337 t b b a; +#X obj 287 45 valueinit \$1_y \$3; +#X obj 629 338 value \$1_x; +#X obj 669 282 value \$1_y; +#X obj 664 315 *; +#X obj 622 373 *; +#X obj 629 258 t b b; +#X obj 639 403 +; +#X obj 639 431 sqrt; +#X obj 208 396 value \$1_x; +#X obj 304 396 value \$1_y; +#X obj 261 368 unpack f f; +#X obj 208 455 value \$1_x; +#X obj 310 455 value \$1_y; +#X obj 205 332 t b b a; +#X obj 309 430 -; +#X obj 208 430 -; +#X obj 756 537 value \$1_x; +#X obj 852 537 value \$1_y; +#X obj 756 596 value \$1_x; +#X obj 852 595 value \$1_y; +#X obj 784 303 value \$1_x; +#X obj 824 247 value \$1_y; +#X obj 819 280 *; +#X obj 777 338 *; +#X obj 784 223 t b b; +#X obj 776 368 +; +#X obj 776 396 sqrt; +#X obj 815 498 /; +#X obj 857 426 t b b; +#X obj 796 183 t b f b; +#X obj 852 569 *; +#X obj 755 571 *; +#X obj 639 459 concat abs=; +#X obj 24 106 route !xy ?xy add substract mult divide ?teta ?abs !teta +!abs rotate; +#X obj 776 425 select 0; +#X msg 785 456 0.7; +#X connect 0 0 69 0; +#X connect 2 0 8 0; +#X connect 2 1 9 0; +#X connect 3 0 5 0; +#X connect 4 0 8 0; +#X connect 4 1 9 0; +#X connect 5 0 1 0; +#X connect 8 0 3 0; +#X connect 9 0 3 1; +#X connect 10 0 13 1; +#X connect 11 0 12 1; +#X connect 12 0 16 0; +#X connect 13 0 15 0; +#X connect 14 0 13 0; +#X connect 14 1 12 0; +#X connect 17 0 14 0; +#X connect 17 1 11 0; +#X connect 17 1 10 0; +#X connect 19 0 26 1; +#X connect 20 0 25 1; +#X connect 21 0 26 0; +#X connect 21 1 25 0; +#X connect 24 0 21 0; +#X connect 24 1 20 0; +#X connect 24 1 19 0; +#X connect 25 0 23 0; +#X connect 26 0 22 0; +#X connect 28 0 34 0; +#X connect 29 0 33 0; +#X connect 30 0 34 1; +#X connect 30 1 33 1; +#X connect 33 0 32 0; +#X connect 34 0 31 0; +#X connect 35 0 28 0; +#X connect 35 1 29 0; +#X connect 35 2 30 0; +#X connect 37 0 40 1; +#X connect 37 0 40 0; +#X connect 38 0 39 1; +#X connect 38 0 39 0; +#X connect 39 0 42 1; +#X connect 40 0 42 0; +#X connect 41 0 37 0; +#X connect 41 1 38 0; +#X connect 42 0 43 0; +#X connect 43 0 68 0; +#X connect 44 0 51 0; +#X connect 45 0 50 0; +#X connect 46 0 51 1; +#X connect 46 1 50 1; +#X connect 49 0 44 0; +#X connect 49 1 45 0; +#X connect 49 2 46 0; +#X connect 50 0 48 0; +#X connect 51 0 47 0; +#X connect 52 0 67 0; +#X connect 53 0 66 0; +#X connect 56 0 59 1; +#X connect 56 0 59 0; +#X connect 57 0 58 1; +#X connect 57 0 58 0; +#X connect 58 0 61 1; +#X connect 59 0 61 0; +#X connect 60 0 56 0; +#X connect 60 1 57 0; +#X connect 61 0 62 0; +#X connect 62 0 70 0; +#X connect 63 0 67 1; +#X connect 63 0 66 1; +#X connect 64 0 52 0; +#X connect 64 1 53 0; +#X connect 65 0 64 0; +#X connect 65 1 63 0; +#X connect 65 2 60 0; +#X connect 66 0 55 0; +#X connect 67 0 54 0; +#X connect 68 0 1 0; +#X connect 69 0 2 0; +#X connect 69 1 4 0; +#X connect 69 2 17 0; +#X connect 69 3 49 0; +#X connect 69 4 24 0; +#X connect 69 5 35 0; +#X connect 69 7 41 0; +#X connect 69 9 65 0; +#X connect 70 0 71 0; +#X connect 70 1 63 1; +#X connect 71 0 63 1; diff --git a/xgui/preset1.txt b/xgui/preset1.txt new file mode 100644 index 00000000..d8dd1192 --- /dev/null +++ b/xgui/preset1.txt @@ -0,0 +1,12 @@ +~/sliders/sl1 coord 20 20 35 147 +~/sliders/sl1sdl coord 20 30 35 30 +~/sliders/sl2 coord 50 20 65 147 +~/sliders/sl2sdl coord 50 47 65 47 +~/sliders/sl3 coord 80 20 95 147 +~/sliders/sl3sdl coord 80 56 95 56 +~/sliders/sl4 coord 110 20 125 147 +~/sliders/sl4sdl coord 110 35 125 35 +~/sliders/o1074 coord 140 20 210 40 +~/sliders/o1092 coord 140 50 210 70 +~/sliders/o1110 coord 140 80 210 100 +~/sliders/o1128 coord 140 110 210 130 diff --git a/xgui/preset2.txt b/xgui/preset2.txt new file mode 100644 index 00000000..87ac92d7 --- /dev/null +++ b/xgui/preset2.txt @@ -0,0 +1,12 @@ +~/sliders/sl1 coord 20 20 35 147 +~/sliders/sl1sdl coord 20 50 35 50 +~/sliders/sl2 coord 50 20 65 147 +~/sliders/sl2sdl coord 50 63 65 63 +~/sliders/sl3 coord 80 20 95 147 +~/sliders/sl3sdl coord 80 86 95 86 +~/sliders/sl4 coord 110 20 125 147 +~/sliders/sl4sdl coord 110 108 125 108 +~/sliders/o3505 coord 140 20 210 40 +~/sliders/o3523 coord 140 50 210 70 +~/sliders/o3541 coord 140 80 210 100 +~/sliders/o3559 coord 140 110 210 130 diff --git a/xgui/preset3.txt b/xgui/preset3.txt new file mode 100644 index 00000000..158588a0 --- /dev/null +++ b/xgui/preset3.txt @@ -0,0 +1,12 @@ +~/sliders/sl1 coord 20 20 35 147 +~/sliders/sl1sdl coord 20 99 35 99 +~/sliders/sl2 coord 50 20 65 147 +~/sliders/sl2sdl coord 50 83 65 83 +~/sliders/sl3 coord 80 20 95 147 +~/sliders/sl3sdl coord 80 69 95 69 +~/sliders/sl4 coord 110 20 125 147 +~/sliders/sl4sdl coord 110 55 125 55 +~/sliders/o3505 coord 140 20 210 40 +~/sliders/o3523 coord 140 50 210 70 +~/sliders/o3541 coord 140 80 210 100 +~/sliders/o3559 coord 140 110 210 130 diff --git a/xgui/preset4.txt b/xgui/preset4.txt new file mode 100644 index 00000000..4e5dfd4f --- /dev/null +++ b/xgui/preset4.txt @@ -0,0 +1,12 @@ +~/sliders/sl1 coord 20 20 35 147 +~/sliders/sl1sdl coord 20 131 35 131 +~/sliders/sl2 coord 50 20 65 147 +~/sliders/sl2sdl coord 50 108 65 108 +~/sliders/sl3 coord 80 20 95 147 +~/sliders/sl3sdl coord 80 101 95 101 +~/sliders/sl4 coord 110 20 125 147 +~/sliders/sl4sdl coord 110 112 125 112 +~/sliders/o1074 coord 140 20 210 40 +~/sliders/o1092 coord 140 50 210 70 +~/sliders/o1110 coord 140 80 210 100 +~/sliders/o1128 coord 140 110 210 130 diff --git a/xgui/utils/bounded.pd b/xgui/utils/bounded.pd new file mode 100644 index 00000000..b2526983 --- /dev/null +++ b/xgui/utils/bounded.pd @@ -0,0 +1,43 @@ +#N canvas 392 177 383 289 10; +#X obj 16 39 inlet; +#X obj 16 229 outlet; +#X text 16 4 the bounded object : Number $name $value $min $max $smin +$smax; +#X obj 96 229 outlet; +#X text 199 228 dh20020427; +#X obj 130 64 loadbang; +#X obj 131 114 \$3; +#X obj 154 114 \$4; +#X obj 177 114 \$5; +#X obj 201 114 \$6; +#X obj 16 205 number \$1; +#X obj 96 205 number \$1; +#X obj 130 88 t b b b b b; +#X obj 225 114 \$2; +#X obj 130 136 pack f f f f f; +#X obj 48 91 bang; +#X text 209 237 dh20020523; +#X msg 130 160 \$5 \, subspace \$1 \$2 \$3 \$4 \, bound \$1 \$2; +#X obj 93 39 inlet; +#X obj 48 115 bang; +#X connect 0 0 10 0; +#X connect 0 0 15 0; +#X connect 5 0 12 0; +#X connect 6 0 14 0; +#X connect 7 0 14 1; +#X connect 8 0 14 2; +#X connect 9 0 14 3; +#X connect 10 0 1 0; +#X connect 11 0 3 0; +#X connect 12 0 6 0; +#X connect 12 1 7 0; +#X connect 12 2 8 0; +#X connect 12 3 9 0; +#X connect 12 4 13 0; +#X connect 13 0 14 4; +#X connect 14 0 17 0; +#X connect 15 0 11 0; +#X connect 17 0 11 0; +#X connect 18 0 11 0; +#X connect 18 0 19 0; +#X connect 19 0 10 0; diff --git a/xgui/utils/concat_set_bang.pd b/xgui/utils/concat_set_bang.pd new file mode 100644 index 00000000..d617e596 --- /dev/null +++ b/xgui/utils/concat_set_bang.pd @@ -0,0 +1,22 @@ +#N canvas 273 213 466 323 12; +#X text 11 6 concat; +#X obj 14 39 inlet; +#X text 67 38 left; +#X obj 60 115 drip; +#X msg 60 140 add2 \$1; +#X obj 142 112 bang; +#X obj 90 237 outlet; +#X msg 90 210 color blue; +#X obj 236 241 outlet; +#X obj 5 138 t b b; +#X msg 142 138 set set; +#X connect 1 0 5 0; +#X connect 1 0 3 0; +#X connect 1 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 7 0; +#X connect 5 0 10 0; +#X connect 7 0 6 0; +#X connect 9 0 8 0; +#X connect 9 1 7 0; +#X connect 10 0 7 0; diff --git a/xgui/utils/concat_value.pd b/xgui/utils/concat_value.pd new file mode 100644 index 00000000..a9e3b83d --- /dev/null +++ b/xgui/utils/concat_value.pd @@ -0,0 +1,26 @@ +#N canvas 269 200 470 320 12; +#X text 11 6 concat; +#X obj 14 39 inlet; +#X text 67 38 left; +#X obj 60 115 drip; +#X msg 60 140 add2 \$1; +#X obj 97 78 bang; +#X msg 157 151 set my_text_x; +#X obj 90 237 outlet; +#X msg 157 125 set set \$1; +#X obj 12 114 bang; +#X obj 157 71 loadbang; +#X msg 90 210 my_text test; +#X obj 157 98 value \$1; +#X connect 1 0 5 0; +#X connect 1 0 3 0; +#X connect 1 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 11 0; +#X connect 5 0 6 0; +#X connect 6 0 11 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 7 0; +#X connect 12 0 8 0; diff --git a/xgui/utils/convert.pd b/xgui/utils/convert.pd new file mode 100644 index 00000000..6affbcef --- /dev/null +++ b/xgui/utils/convert.pd @@ -0,0 +1,10 @@ +#N canvas 343 358 450 300 12; +#X text 18 10 convert truc machin; +#X obj 19 43 inlet; +#X obj 19 71 route \$1; +#X obj 19 122 outlet; +#X obj 19 96 concat \$2; +#X text 173 127 dh20020401; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 4 0 3 0; diff --git a/xgui/utils/in.pd b/xgui/utils/in.pd new file mode 100644 index 00000000..2d2c84dd --- /dev/null +++ b/xgui/utils/in.pd @@ -0,0 +1,37 @@ +#N canvas 330 344 290 248 10; +#X obj 13 18 inlet; +#X obj 64 18 inlet; +#X obj 144 18 inlet; +#X obj 21 149 >=; +#X obj 64 41 init2 \$1 0; +#X obj 144 41 init2 \$2 0; +#X obj 101 148 <=; +#X obj 13 41 t f f; +#X obj 59 181 &&; +#X obj 59 212 outlet; +#X text 117 212 dh20010815; +#X obj 148 92 max; +#X obj 58 109 min; +#X obj 150 122 max; +#X obj 60 82 min; +#X text 127 222 dh20020216; +#X connect 0 0 7 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 8 0; +#X connect 4 0 13 1; +#X connect 4 0 11 0; +#X connect 4 0 14 0; +#X connect 4 0 12 1; +#X connect 5 0 14 1; +#X connect 5 0 13 0; +#X connect 5 0 11 1; +#X connect 5 0 12 0; +#X connect 6 0 8 1; +#X connect 7 0 3 0; +#X connect 7 1 6 0; +#X connect 8 0 9 0; +#X connect 11 0 6 1; +#X connect 12 0 3 1; +#X connect 13 0 6 1; +#X connect 14 0 3 1; diff --git a/xgui/utils/init2.pd b/xgui/utils/init2.pd new file mode 100644 index 00000000..97a8bd25 --- /dev/null +++ b/xgui/utils/init2.pd @@ -0,0 +1,27 @@ +#N canvas 544 230 405 255 10; +#X text 205 173 (c) musil@iem.kug.ac.at; +#X text 246 186 IEM KUG; +#X text 221 200 graz \, austria 2001; +#X obj 154 37 inlet; +#X obj 67 86 f \$1; +#X obj 88 34 loadbang; +#X obj 67 110 t f f; +#X obj 67 139 spigot; +#X text 225 83 dh20010325; +#X obj 87 57 t b b; +#X obj 116 86 f \$2; +#X text 136 6 exemple : init \$1 0; +#X obj 154 183 f; +#X obj 154 208 outlet; +#X text 65 185 dh20010429; +#X text 267 157 tanks to; +#X connect 3 0 12 0; +#X connect 4 0 6 0; +#X connect 5 0 9 0; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 12 0; +#X connect 9 0 4 0; +#X connect 9 1 10 0; +#X connect 10 0 12 0; +#X connect 12 0 13 0; diff --git a/xgui/utils/moy.pd b/xgui/utils/moy.pd new file mode 100644 index 00000000..774fef0f --- /dev/null +++ b/xgui/utils/moy.pd @@ -0,0 +1,13 @@ +#N canvas 176 223 452 302 12; +#X text 11 7 Moy; +#X obj 34 44 inlet; +#X obj 86 44 inlet; +#X obj 51 115 / 2; +#X obj 48 80 +; +#X obj 53 142 outlet; +#X text 51 177 dh20020428; +#X text 80 193 ethanol = 2g/l; +#X connect 1 0 4 0; +#X connect 2 0 4 1; +#X connect 3 0 5 0; +#X connect 4 0 3 0; diff --git a/xgui/utils/subspace.pd b/xgui/utils/subspace.pd new file mode 100644 index 00000000..3f847316 --- /dev/null +++ b/xgui/utils/subspace.pd @@ -0,0 +1,50 @@ +#N canvas 84 46 443 487 12; +#X text 21 7 subspace x1 y2 x3 y4 x5 y6 x7 y8; +#X text 44 66 sub; +#X text 52 390 sub; +#X text 239 61 space; +#X text 241 388 space; +#X text 21 26 subspace define a region as subspace with their own coords +; +#X obj 40 91 inlet; +#X obj 221 365 outlet; +#X obj 221 309 pack f f; +#X obj 40 119 route xy; +#X msg 221 337 xy \$1 \$2; +#X obj 40 147 unpack f f; +#X obj 40 177 t b f; +#X obj 39 234 t b f; +#X obj 36 362 outlet; +#X obj 36 306 pack f f; +#X msg 36 334 xy \$1 \$2; +#X obj 40 206 bounded \$0-b1 0 \$1 \$3 \$5 \$7; +#X obj 237 87 inlet; +#X obj 237 115 route xy; +#X obj 237 143 unpack f f; +#X obj 237 173 t b f; +#X obj 38 258 bounded \$0-b2 0 \$2 \$4 \$6 \$8; +#X obj 258 233 t b f; +#X connect 6 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 0 7 0; +#X connect 11 0 12 0; +#X connect 11 1 13 0; +#X connect 12 0 17 0; +#X connect 12 1 17 0; +#X connect 13 0 22 0; +#X connect 13 1 22 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 17 0 15 0; +#X connect 17 1 8 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 20 1 23 0; +#X connect 21 0 17 1; +#X connect 21 1 17 1; +#X connect 22 0 15 1; +#X connect 22 1 8 1; +#X connect 23 0 22 1; +#X connect 23 1 22 1; diff --git a/xgui/utils/unique.pd b/xgui/utils/unique.pd new file mode 100644 index 00000000..10b59a32 --- /dev/null +++ b/xgui/utils/unique.pd @@ -0,0 +1,10 @@ +#N canvas 161 175 452 302 8; +#X obj 14 15 inlet; +#X text 14 0 unique; +#X obj 14 55 \$0; +#X obj 14 75 outlet; +#X obj 14 35 bang; +#X text 13 94 dh20200128; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; diff --git a/xgui/utils/value2.pd b/xgui/utils/value2.pd new file mode 100644 index 00000000..dc77c858 --- /dev/null +++ b/xgui/utils/value2.pd @@ -0,0 +1,13 @@ +#N canvas 374 432 450 300 12; +#X obj 21 43 inlet; +#X obj 78 44 inlet; +#X text 17 9 value name value; +#X obj 56 123 \$2; +#X obj 78 69 s \$1-value; +#X obj 78 96 r \$1-value; +#X obj 56 151 outlet; +#X text 342 264 dh20020401; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 3 0 6 0; +#X connect 5 0 3 1; diff --git a/xgui/utils/valueinit.pd b/xgui/utils/valueinit.pd new file mode 100644 index 00000000..04ef3260 --- /dev/null +++ b/xgui/utils/valueinit.pd @@ -0,0 +1,8 @@ +#N canvas 382 472 450 300 12; +#X text 339 262 dh20020401; +#X obj 19 87 value \$1; +#X obj 19 61 \$2; +#X obj 19 34 loadbang; +#X text 17 10 valueinit name value; +#X connect 2 0 1 0; +#X connect 3 0 2 0; diff --git a/xgui/xgui-lib/a2s.c b/xgui/xgui-lib/a2s.c new file mode 100644 index 00000000..55a9bc47 --- /dev/null +++ b/xgui/xgui-lib/a2s.c @@ -0,0 +1,66 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* code for a2s pd class */ + +#include "m_pd.h" +#include + +typedef struct s_pd_obj_a2s +{ + t_object x_obj; +} t_pd_obj_a2s; + + +void a2s_help(t_pd_obj_a2s *x) +{ + post(" "); + post("a2s v001"); + post("+ selector list :"); + post("++ help : this help !!!"); + post("++ symbol : will return the canvas & the obj"); + post(" "); +} + +void a2s_list(t_pd_obj_a2s *x, t_symbol *s, int argc, t_atom *argv) +{ + char buffer[MAXPDSTRING] ; + char *a_string ; + int a_string_l ; + t_binbuf *bbuf ; + int i,l=0,k=0 ; + + bbuf = binbuf_new() ; + for (i=0;ix_obj.ob_outlet,gensym(&buffer[0])); + binbuf_free(bbuf); +} + +void a2s_free(void) { } + +t_class *a2s_class; + +void *a2s_new(void) +{ + t_pd_obj_a2s *x = (t_pd_obj_a2s *)pd_new(a2s_class); + outlet_new(&x->x_obj, &s_float); + return (void *)x; +} + +void a2s_setup(void) +{ + a2s_class = class_new(gensym("a2s"), (t_newmethod)a2s_new,(t_method)a2s_free, sizeof( t_pd_obj_a2s), 0,A_DEFSYMBOL, 0); + class_addlist(a2s_class, (t_method)a2s_list); + class_addmethod(a2s_class, (t_method)a2s_help, gensym("help"), 0); + class_sethelpsymbol(a2s_class, gensym("xgui/help_a2s")); +} diff --git a/xgui/xgui-lib/concat.c b/xgui/xgui-lib/concat.c new file mode 100644 index 00000000..59a70986 --- /dev/null +++ b/xgui/xgui-lib/concat.c @@ -0,0 +1,68 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* code for concat pd class */ + +#include "m_pd.h" +#include + +typedef struct s_pd_obj_concat +{ + t_object x_obj; + t_symbol *selector ; +} t_pd_obj_concat; + + +void concat_help(t_pd_obj_concat *x) +{ + post(" "); + post("concat v001"); + post("+ selector list :"); + post("++ help : this help !!!"); + post("++ anything : will return anything + the $arg1 in first "); +} + +void concat_any_method(t_pd_obj_concat *x,t_symbol *s, int argc, t_atom *argv) +{ + int n = argc+1; + if ((s==gensym("float"))||(s==gensym("symbol"))||(s==gensym("list"))) + { + outlet_anything(x->x_obj.ob_outlet,x->selector, argc,argv); + } else { + t_atom *my_message = (t_atom *)getbytes(n * sizeof(t_atom)); + SETSYMBOL(my_message, s); + my_message++; + memcpy(my_message, argv, argc * sizeof(t_atom)); + outlet_anything(x->x_obj.ob_outlet,x->selector, n,--my_message); + freebytes(my_message, n * sizeof(t_atom)); + } +} + +void concat_set2add(t_pd_obj_concat *x, t_symbol *s) +{ + x->selector = s ; +} + +void concat_free(void) { } + +t_class *concat_class; + +void *concat_new(t_symbol *s) +{ + t_pd_obj_concat *x = (t_pd_obj_concat *)pd_new(concat_class); + x->selector = s; + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("symbol"), gensym("s2add")); + return (void *)x; +} + +void concat_setup(void) +{ + concat_class = class_new(gensym("concat"), (t_newmethod)concat_new,(t_method)concat_free, sizeof( t_pd_obj_concat), 0,A_DEFSYMBOL, 0); + class_addanything(concat_class, concat_any_method); + class_addmethod(concat_class, (t_method)concat_set2add, gensym("s2add"), A_SYMBOL, 0); + class_addmethod(concat_class, (t_method)concat_help, gensym("help"), 0); + class_sethelpsymbol(concat_class, gensym("xgui/help_concat")); +} + diff --git a/xgui/xgui-lib/help_number.pd b/xgui/xgui-lib/help_number.pd new file mode 100644 index 00000000..01951510 --- /dev/null +++ b/xgui/xgui-lib/help_number.pd @@ -0,0 +1,60 @@ +#N canvas 125 117 754 468 10; +#X floatatom 35 99 5 0 0; +#X msg 35 76 bang; +#X msg 124 94 mult 2 \, bang; +#X msg 124 140 sub 1 \, bang; +#X msg 124 163 div 2 \, bang; +#X msg 124 117 inv \, bang; +#X msg 124 71 add 1 \, bang; +#X msg 240 63 add 1 \, if >= 10 0 \, bang; +#X msg 241 123 \$1 \, if < 0 0 \, if >= 10 10 \, bang; +#X floatatom 241 100 5 0 0; +#X msg 35 30 help; +#X floatatom 124 25 5 0 0; +#X msg 124 48 !x \$1 \, ?x; +#X floatatom 422 151 5 0 0; +#X floatatom 70 327 5 0 0; +#X msg 70 350 !x \$1 \, ?x; +#X msg 143 331 bang; +#X obj 35 216 number my_first_number; +#X msg 210 302 set my_first_number; +#X obj 70 373 number my_second_number; +#X msg 210 325 get my_first_number \, bang; +#X floatatom 422 220 5 0 0; +#X obj 35 240 print; +#X obj 422 197 x my_first_number; +#X msg 35 53 post; +#X msg 643 211 bound 0; +#X obj 70 396 print; +#X msg 422 174 \$1 \, bang; +#X msg 575 166 subspace 0 1 100 10; +#X msg 646 237 bound 1 10; +#X msg 181 26 bound 1 10; +#X connect 0 0 17 0; +#X connect 1 0 17 0; +#X connect 2 0 17 0; +#X connect 3 0 17 0; +#X connect 4 0 17 0; +#X connect 5 0 17 0; +#X connect 6 0 17 0; +#X connect 7 0 17 0; +#X connect 8 0 17 0; +#X connect 9 0 8 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 17 0; +#X connect 13 0 27 0; +#X connect 14 0 15 0; +#X connect 15 0 19 0; +#X connect 16 0 19 0; +#X connect 17 0 22 0; +#X connect 18 0 19 0; +#X connect 19 0 26 0; +#X connect 20 0 19 0; +#X connect 23 0 21 0; +#X connect 24 0 17 0; +#X connect 25 0 23 0; +#X connect 27 0 23 0; +#X connect 28 0 23 0; +#X connect 29 0 23 0; +#X connect 30 0 17 0; diff --git a/xgui/xgui-lib/m_pd.h b/xgui/xgui-lib/m_pd.h new file mode 100644 index 00000000..bbbb491a --- /dev/null +++ b/xgui/xgui-lib/m_pd.h @@ -0,0 +1,579 @@ +/* Copyright (c) 1997-1999 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) +extern "C" { +#endif + +#ifdef NT +// #pragma warning( disable : 4091 ) +#pragma warning( disable : 4305 ) /* uncast const double to float */ +#pragma warning( disable : 4244 ) /* uncast float/int conversion etc. */ +#pragma warning( disable : 4101 ) /* unused automatic variables */ +#endif /* NT */ + + /* the external storage class is "extern" in UNIX; in NT it's ugly. */ +#ifdef NT +#ifdef PD_INTERNAL +#define EXTERN __declspec(dllexport) extern +#else +#define EXTERN __declspec(dllimport) extern +#endif /* PD_INTERNAL */ +#else +#define EXTERN extern +#endif /* NT */ + + /* and depending on the compiler, hidden data structures are + declared differently: */ +#ifdef __GNUC__ +#define EXTERN_STRUCT struct +#else +#define EXTERN_STRUCT extern struct +#endif + + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#include /* just for size_t -- how lame! */ +#endif + +#define MAXPDSTRING 1000 /* use this for anything you want */ +#define MAXPDARG 5 /* max number of args we can typecheck today */ + + /* signed and unsigned integer types the size of a pointer: */ +#ifdef __alpha__ +typedef long t_int; +#else +typedef int t_int; +#endif + +typedef float t_float; /* a floating-point number at most the same size */ +typedef float t_floatarg; /* floating-point type for function calls */ + +typedef struct _symbol +{ + char *s_name; + struct _class **s_thing; + struct _symbol *s_next; +} t_symbol; + +EXTERN_STRUCT _array; +#define t_array struct _array /* g_canvas.h */ + +/* pointers to glist and array elements go through a "stub" which sticks +around after the glist or array is freed. The stub itself is deleted when +both the glist/array is gone and the refcount is zero, ensuring that no +gpointers are pointing here. */ + +#define GP_NONE 0 /* the stub points nowhere (has been cut off) */ +#define GP_GLIST 1 /* the stub points to a glist element */ +#define GP_ARRAY 2 /* ... or array */ + +typedef struct _gstub +{ + union + { + struct _glist *gs_glist; /* glist we're in */ + struct _array *gs_array; /* array we're in */ + } gs_un; + int gs_which; /* GP_GLIST/GP_ARRAY */ + int gs_refcount; /* number of gpointers pointing here */ +} t_gstub; + +typedef struct _gpointer /* pointer to a gobj in a glist */ +{ + union + { + struct _scalar *gp_scalar; /* scalar we're in (if glist) */ + union word *gp_w; /* raw data (if array) */ + } gp_un; + int gp_valid; /* number which must match gpointee */ + t_gstub *gp_stub; /* stub which points to glist/array */ +} t_gpointer; + +typedef union word +{ + t_float w_float; + t_symbol *w_symbol; + t_gpointer *w_gpointer; + t_array *w_array; + struct _glist *w_list; + int w_index; +} t_word; + +typedef enum +{ + A_NULL, + A_FLOAT, + A_SYMBOL, + A_POINTER, + A_SEMI, + A_COMMA, + A_DEFFLOAT, + A_DEFSYM, + A_DOLLAR, + A_DOLLSYM, + A_GIMME, + A_CANT +} t_atomtype; + +#define A_DEFSYMBOL A_DEFSYM /* better name for this */ + +typedef struct _atom +{ + t_atomtype a_type; + union word a_w; +} t_atom; + +EXTERN_STRUCT _class; +#define t_class struct _class + +EXTERN_STRUCT _outlet; +#define t_outlet struct _outlet + +EXTERN_STRUCT _inlet; +#define t_inlet struct _inlet + +EXTERN_STRUCT _binbuf; +#define t_binbuf struct _binbuf + +EXTERN_STRUCT _clock; +#define t_clock struct _clock + +EXTERN_STRUCT _outconnect; +#define t_outconnect struct _outconnect + +EXTERN_STRUCT _glist; +#define t_glist struct _glist +#define t_canvas struct _glist /* LATER lose this */ + +typedef t_class *t_pd; /* pure datum: nothing but a class pointer */ + +typedef struct _gobj /* a graphical object */ +{ + t_pd g_pd; /* pure datum header (class) */ + struct _gobj *g_next; /* next in list */ +} t_gobj; + +typedef struct _scalar /* a graphical object holding data */ +{ + t_gobj sc_gobj; /* header for graphical object */ + t_symbol *sc_template; /* template name (LATER replace with pointer) */ + t_word sc_vec[1]; /* indeterminate-length array of words */ +} t_scalar; + +typedef struct _text /* patchable object - graphical, with text */ +{ + t_gobj te_g; /* header for graphical object */ + t_binbuf *te_binbuf; /* holder for the text */ + t_outlet *te_outlet; /* linked list of outlets */ + t_inlet *te_inlet; /* linked list of inlets */ + short te_xpix; /* x&y location (within the toplevel) */ + short te_ypix; + short te_width; /* requested width in chars, 0 if auto */ + unsigned int te_type:2; /* from defs below */ +} t_text; + +#define T_TEXT 0 /* just a textual comment */ +#define T_OBJECT 1 /* a MAX style patchable object */ +#define T_MESSAGE 2 /* a MAX stype message */ +#define T_ATOM 3 /* a cell to display a number or symbol */ + +#define te_pd te_g.g_pd + + /* t_object is synonym for t_text (LATER unify them) */ + +typedef struct _text t_object; + +#define ob_outlet te_outlet +#define ob_inlet te_inlet +#define ob_binbuf te_binbuf +#define ob_pd te_g.g_pd +#define ob_g te_g + +typedef void (*t_method)(void); +typedef void *(*t_newmethod)( void); +typedef void (*t_gotfn)(void *x, ...); + +/* ---------------- pre-defined objects and symbols --------------*/ +EXTERN t_pd pd_objectmaker; /* factory for creating "object" boxes */ +EXTERN t_pd pd_canvasmaker; /* factory for creating canvases */ +EXTERN t_symbol s_pointer; +EXTERN t_symbol s_float; +EXTERN t_symbol s_symbol; +EXTERN t_symbol s_bang; +EXTERN t_symbol s_list; +EXTERN t_symbol s_anything; +EXTERN t_symbol s_signal; +EXTERN t_symbol s__N; +EXTERN t_symbol s__X; +EXTERN t_symbol s_x; +EXTERN t_symbol s_y; +EXTERN t_symbol s_; + +/* --------- prototypes from the central message system ----------- */ +EXTERN void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv); +EXTERN void pd_forwardmess(t_pd *x, int argc, t_atom *argv); +EXTERN t_symbol *gensym(char *s); +EXTERN t_gotfn getfn(t_pd *x, t_symbol *s); +EXTERN t_gotfn zgetfn(t_pd *x, t_symbol *s); +EXTERN void nullfn(void); +EXTERN void pd_vmess(t_pd *x, t_symbol *s, char *fmt, ...); +#define mess0(x, s) ((*getfn((x), (s)))((x))) +#define mess1(x, s, a) ((*getfn((x), (s)))((x), (a))) +#define mess2(x, s, a,b) ((*getfn((x), (s)))((x), (a),(b))) +#define mess3(x, s, a,b,c) ((*getfn((x), (s)))((x), (a),(b),(c))) +#define mess4(x, s, a,b,c,d) ((*getfn((x), (s)))((x), (a),(b),(c),(d))) +#define mess5(x, s, a,b,c,d,e) ((*getfn((x), (s)))((x), (a),(b),(c),(d),(e))) +void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv); + +/* --------------- memory management -------------------- */ +EXTERN void *getbytes(size_t nbytes); +EXTERN void *getzbytes(size_t nbytes); +EXTERN void *copybytes(void *src, size_t nbytes); +EXTERN void freebytes(void *x, size_t nbytes); +EXTERN void *resizebytes(void *x, size_t oldsize, size_t newsize); + +/* -------------------- atoms ----------------------------- */ + +#define SETSEMI(atom) ((atom)->a_type = A_SEMI, (atom)->a_w.w_index = 0) +#define SETCOMMA(atom) ((atom)->a_type = A_COMMA, (atom)->a_w.w_index = 0) +#define SETPOINTER(atom, gp) ((atom)->a_type = A_POINTER, \ + (atom)->a_w.w_gpointer = (gp)) +#define SETFLOAT(atom, f) ((atom)->a_type = A_FLOAT, (atom)->a_w.w_float = (f)) +#define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \ + (atom)->a_w.w_symbol = (s)) +#define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \ + (atom)->a_w.w_index = (n)) +#define SETDOLLSYM(atom, s) ((atom)->a_type = A_DOLLSYM, \ + (atom)->a_w.w_symbol= (s)) + +EXTERN t_float atom_getfloat(t_atom *a); +EXTERN t_int atom_getint(t_atom *a); +EXTERN t_symbol *atom_getsymbol(t_atom *a); +EXTERN t_symbol *atom_gensym(t_atom *a); +EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv); +EXTERN t_int atom_getintarg(int which, int argc, t_atom *argv); +EXTERN t_symbol *atom_getsymbolarg(int which, int argc, t_atom *argv); + +EXTERN void atom_string(t_atom *a, char *buf, unsigned int bufsize); + +/* ------------------ binbufs --------------- */ + +EXTERN t_binbuf *binbuf_new(void); +EXTERN void binbuf_free(t_binbuf *x); + +EXTERN void binbuf_text(t_binbuf *x, char *text, size_t size); +EXTERN void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp); +EXTERN void binbuf_clear(t_binbuf *x); +EXTERN void binbuf_add(t_binbuf *x, int argc, t_atom *argv); +EXTERN void binbuf_addv(t_binbuf *x, char *fmt, ...); +EXTERN void binbuf_addbinbuf(t_binbuf *x, t_binbuf *y); +EXTERN void binbuf_addsemi(t_binbuf *x); +EXTERN void binbuf_restore(t_binbuf *x, int argc, t_atom *argv); +EXTERN void binbuf_print(t_binbuf *x); +EXTERN int binbuf_getnatom(t_binbuf *x); +EXTERN t_atom *binbuf_getvec(t_binbuf *x); +EXTERN void binbuf_eval(t_binbuf *x, t_pd *target, int argc, t_atom *argv); +EXTERN int binbuf_read(t_binbuf *b, char *filename, char *dirname, + int crflag); +EXTERN int binbuf_read_via_path(t_binbuf *b, char *filename, char *dirname, + int crflag); +EXTERN int binbuf_write(t_binbuf *x, char *filename, char *dir, + int crflag); +EXTERN void binbuf_evalfile(t_symbol *name, t_symbol *dir); + +/* ------------------ clocks --------------- */ + +EXTERN t_clock *clock_new(void *owner, t_method fn); +EXTERN void clock_set(t_clock *x, double systime); +EXTERN void clock_delay(t_clock *x, double delaytime); +EXTERN void clock_unset(t_clock *x); +EXTERN double clock_getlogicaltime(void); +EXTERN double clock_getsystime(void); /* OBSOLETE; use clock_getlogicaltime() */ +EXTERN double clock_gettimesince(double prevsystime); +EXTERN double clock_getsystimeafter(double delaytime); +EXTERN void clock_free(t_clock *x); + +/* ----------------- pure data ---------------- */ +EXTERN t_pd *pd_new(t_class *cls); +EXTERN void pd_free(t_pd *x); +EXTERN void pd_bind(t_pd *x, t_symbol *s); +EXTERN void pd_unbind(t_pd *x, t_symbol *s); +EXTERN t_pd *pd_findbyclass(t_symbol *s, t_class *c); +EXTERN void pd_pushsym(t_pd *x); +EXTERN void pd_popsym(t_pd *x); +EXTERN t_symbol *pd_getfilename(void); +EXTERN t_symbol *pd_getdirname(void); +EXTERN void pd_bang(t_pd *x); +EXTERN void pd_pointer(t_pd *x, t_gpointer *gp); +EXTERN void pd_float(t_pd *x, t_float f); +EXTERN void pd_symbol(t_pd *x, t_symbol *s); +EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv); +EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv); +#define pd_class(x) (*(x)) + +/* ----------------- pointers ---------------- */ +EXTERN void gpointer_init(t_gpointer *gp); +EXTERN void gpointer_copy(const t_gpointer *gpfrom, t_gpointer *gpto); +EXTERN void gpointer_unset(t_gpointer *gp); +EXTERN int gpointer_check(const t_gpointer *gp, int headok); + +/* ----------------- patchable "objects" -------------- */ +EXTERN_STRUCT _inlet; +#define t_inlet struct _inlet +EXTERN_STRUCT _outlet; +#define t_outlet struct _outlet + +EXTERN t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1, + t_symbol *s2); +EXTERN t_inlet *pointerinlet_new(t_object *owner, t_gpointer *gp); +EXTERN t_inlet *floatinlet_new(t_object *owner, t_float *fp); +EXTERN t_inlet *symbolinlet_new(t_object *owner, t_symbol **sp); +EXTERN void inlet_free(t_inlet *x); + +EXTERN t_outlet *outlet_new(t_object *owner, t_symbol *s); +EXTERN void outlet_bang(t_outlet *x); +EXTERN void outlet_pointer(t_outlet *x, t_gpointer *gp); +EXTERN void outlet_float(t_outlet *x, t_float f); +EXTERN void outlet_symbol(t_outlet *x, t_symbol *s); +EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv); +EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv); +EXTERN void outlet_free(t_outlet *x); + +/* -------------------- canvases -------------- */ + +EXTERN void glob_setfilename(void *dummy, t_symbol *name, t_symbol *dir); + +EXTERN void canvas_setargs(int argc, t_atom *argv); +EXTERN t_atom *canvas_getarg(int which); +EXTERN t_symbol *canvas_getcurrentdir(void); +EXTERN t_glist *canvas_getcurrent(void); +EXTERN void canvas_makefilename(t_glist *c, char *file, + char *result,int resultsize); +EXTERN t_symbol *canvas_getdir(t_glist *x); +EXTERN int sys_fontwidth(int fontsize); +EXTERN int sys_fontheight(int fontsize); +EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b); + +/* ---------------- widget behaviors ---------------------- */ + +EXTERN_STRUCT _widgetbehavior; +#define t_widgetbehavior struct _widgetbehavior + +EXTERN_STRUCT _parentwidgetbehavior; +#define t_parentwidgetbehavior struct _parentwidgetbehavior +EXTERN t_parentwidgetbehavior *pd_getparentwidget(t_pd *x); + +/* -------------------- classes -------------- */ + +#define CLASS_DEFAULT 0 /* flags for new classes below */ +#define CLASS_PD 1 +#define CLASS_GOBJ 2 +#define CLASS_PATCHABLE 3 +#define CLASS_NOINLET 8 + +#define CLASS_TYPEMASK 3 + + +EXTERN t_class *class_new(t_symbol *name, t_newmethod newmethod, + t_method freemethod, size_t size, int flags, t_atomtype arg1, ...); +EXTERN void class_addcreator(t_newmethod newmethod, t_symbol *s, + t_atomtype type1, ...); +EXTERN void class_addmethod(t_class *c, t_method fn, t_symbol *sel, + t_atomtype arg1, ...); +EXTERN void class_addbang(t_class *c, t_method fn); +EXTERN void class_addpointer(t_class *c, t_method fn); +EXTERN void class_doaddfloat(t_class *c, t_method fn); +EXTERN void class_addsymbol(t_class *c, t_method fn); +EXTERN void class_addlist(t_class *c, t_method fn); +EXTERN void class_addanything(t_class *c, t_method fn); +EXTERN void class_sethelpsymbol(t_class *c, t_symbol *s); +EXTERN void class_setwidget(t_class *c, t_widgetbehavior *w); +EXTERN void class_setparentwidget(t_class *c, t_parentwidgetbehavior *w); +EXTERN t_parentwidgetbehavior *class_parentwidget(t_class *c); +EXTERN char *class_getname(t_class *c); +EXTERN char *class_gethelpname(t_class *c); +EXTERN void class_setdrawcommand(t_class *c); +EXTERN int class_isdrawcommand(t_class *c); +EXTERN void class_domainsignalin(t_class *c, int onset); +#define CLASS_MAINSIGNALIN(c, type, field) \ + class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0) + +#ifndef PD_CLASS_DEF +#define class_addbang(x, y) class_addbang((x), (t_method)(y)) +#define class_addpointer(x, y) class_addpointer((x), (t_method)(y)) +#define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y)) +#define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y)) +#define class_addlist(x, y) class_addlist((x), (t_method)(y)) +#define class_addanything(x, y) class_addanything((x), (t_method)(y)) +#endif + +/* ------------ printing --------------------------------- */ +EXTERN void post(char *fmt, ...); +EXTERN void startpost(char *fmt, ...); +EXTERN void poststring(char *s); +EXTERN void postfloat(float f); +EXTERN void postatom(int argc, t_atom *argv); +EXTERN void endpost(void); +EXTERN void error(char *fmt, ...); +EXTERN void bug(char *fmt, ...); +EXTERN void pd_error(void *object, char *fmt, ...); +EXTERN void sys_logerror(char *object, char *s); +EXTERN void sys_unixerror(char *object); +EXTERN void sys_ouch(void); + +#ifdef __linux__ +EXTERN char* sys_get_path( void); +#endif +EXTERN void sys_addpath(const char* p); + + +/* ------------ system interface routines ------------------- */ +EXTERN int sys_isreadablefile(const char *name); +EXTERN void sys_bashfilename(const char *from, char *to); +EXTERN void sys_unbashfilename(const char *from, char *to); +EXTERN int open_via_path(const char *name, const char *ext, const char *dir, + char *dirresult, char **nameresult, unsigned int size, int bin); + +/* --------------- signals ----------------------------------- */ + +typedef float t_sample; +#define MAXLOGSIG 32 +#define MAXSIGSIZE (1 << MAXLOGSIG) + +typedef struct _signal +{ + int s_n; /* number of points in the array */ + t_sample *s_vec; /* the array */ + float s_sr; /* sample rate */ + int s_refcount; /* number of times used */ + int s_isborrowed; /* whether we're going to borrow our array */ + struct _signal *s_borrowedfrom; /* signal to borrow it from */ + struct _signal *s_nextfree; /* next in freelist */ + struct _signal *s_nextused; /* next in used list */ +} t_signal; + + +typedef t_int *(*t_perfroutine)(t_int *args); + +EXTERN t_int *plus_perform(t_int *args); +EXTERN t_int *zero_perform(t_int *args); +EXTERN t_int *copy_perform(t_int *args); + +EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n); +EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n); +EXTERN void dsp_add_scalarcopy(t_sample *in, t_sample *out, int n); +EXTERN void dsp_add_zero(t_sample *out, int n); + +EXTERN int sys_getblksize(void); +EXTERN float sys_getsr(void); +EXTERN int sys_get_inchannels(void); +EXTERN int sys_get_outchannels(void); + +EXTERN void dsp_add(t_perfroutine f, int n, ...); +EXTERN void dsp_addv(t_perfroutine f, int n, t_int *vec); +EXTERN void pd_fft(float *buf, int npoints, int inverse); +EXTERN int ilog2(int n); + +EXTERN void mayer_fht(float *fz, int n); +EXTERN void mayer_fft(int n, float *real, float *imag); +EXTERN void mayer_ifft(int n, float *real, float *imag); +EXTERN void mayer_realfft(int n, float *real); +EXTERN void mayer_realifft(int n, float *real); + +EXTERN float *cos_table; +#define LOGCOSTABSIZE 9 +#define COSTABSIZE (1<o_message = 0; + num->o_refcount = 0; + pd_bind(&num->o_pd, s); + } + num->o_refcount++; + return (&num->o_message); +} + +void message_release(t_symbol *s) +{ t_message *num = (t_message *)pd_findbyclass(s,message_class); + if (num) { + if (!--num->o_refcount) { + pd_unbind(&num->o_pd, s); + pd_free(&num->o_pd); + } + } + else bug("value_release"); +} + +void message_help(t_seg *x) +{ + post(" "); + post("message v001"); + post("+ symbol list :"); + post("++ help : this help !!!"); + post("++ float : set the float "); + post("++ bang : send the message"); + post(" "); +} + +void message_float(t_pd_obj_message *x, t_floatarg f) +{ *x->x_message = f ;} + +void message_q_x(t_pd_obj_message *x) +{ + t_atom my_atom ; + t_atom *my_pointer = &my_atom; + SETFLOAT(my_pointer, *x->x_message); + outlet_anything(x->x_obj.ob_outlet, gensym("x="), 1,my_pointer); +} + +void message_bang(t_pd_obj_message *x) +{ outlet_float(x->x_obj.ob_outlet, *x->x_message);} + +void message_get_(t_pd_obj_message *x,t_symbol *s) +{*x->x_message = *message_get(s);} + +void message_set_(t_pd_obj_message *x,t_symbol *s) +{ x->x_message = message_get(s);} + +void message_to(t_pd_obj_message *x,t_floatarg f1,t_floatarg f2) +{ post("not implemented yet"); } + +void message_free(t_pd_obj_message *x){ message_release(x->x_sym); } + +void *message_new(t_symbol *s,t_floatarg f) +{ + t_pd_obj_message *x = (t_pd_obj_message *)pd_new(pd_obj_message_class); + x->x_sym = s; + x->x_message = message_get(s); + outlet_new(&x->x_obj, &s_float); + return (void *)x; +} + +void message_setup(void) +{ + pd_obj_message_class = class_new(gensym("message"), (t_newmethod)message_new, + (t_method)message_free, sizeof(t_pd_obj_message), 0,A_DEFSYMBOL, 0); + class_addcreator((t_newmethod)message_new, gensym("x"), A_DEFSYM, 0); + class_addfloat(pd_obj_message_class,message_float); + class_addbang(pd_obj_message_class,message_bang); + class_addmethod(pd_obj_message_class, (t_method)message_float, gensym("!x"), A_FLOAT, 0); + class_addmethod(pd_obj_message_class, (t_method)message_q_x, gensym("?x"), 0); + class_addmethod(pd_obj_message_class, (t_method)message_add, gensym("add"),A_FLOAT, 0); + class_addmethod(pd_obj_message_class, (t_method)message_sub, gensym("sub"),A_FLOAT, 0); + class_addmethod(pd_obj_message_class, (t_method)message_mult, gensym("mult"),A_FLOAT, 0); + class_addmethod(pd_obj_message_class, (t_method)message_div, gensym("div"),A_FLOAT, 0); + class_addmethod(pd_obj_message_class, (t_method)message_inv, gensym("inv"),0); + class_addmethod(pd_obj_message_class, (t_method)message_if, gensym("if"),A_DEFSYMBOL,A_FLOAT,A_FLOAT,0); + class_addmethod(pd_obj_message_class, (t_method)message_to, gensym("to"),A_FLOAT,A_FLOAT, 0); + class_addmethod(pd_obj_message_class, (t_method)message_set_, gensym("set"),A_DEFSYMBOL, 0); + class_addmethod(pd_obj_message_class, (t_method)message_get_, gensym("get"),A_DEFSYMBOL, 0); + class_addmethod(pd_obj_message_class, (t_method)message_help, gensym("help"), 0); + class_sethelpsymbol(pd_obj_message_class, gensym("xgui/help_message")); + /* Declare the class that will contain the value */ + message_class = class_new(gensym("message"), 0, 0, sizeof(t_message), CLASS_PD, 0); + +} diff --git a/xgui/xgui-lib/number.c b/xgui/xgui-lib/number.c new file mode 100644 index 00000000..f30d10da --- /dev/null +++ b/xgui/xgui-lib/number.c @@ -0,0 +1,249 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* number NOT FINISHED BUT FUNCTIONAL*/ + +#include "m_pd.h" + +t_class *number_class ; +typedef struct s_number +{ + t_pd o_pd; + t_int o_refcount; + t_float number; + t_float b_min; + t_float b_max; + t_int bound; +} t_number; + +t_class *pd_obj_number_class ; +typedef struct s_pd_obj_number +{ + t_object x_obj; + t_symbol *x_sym; + t_number *x_num; + t_float *x_number; + t_float *b_min; + t_float *b_max; + t_int *bound; + t_float min; + t_float max; + t_float out_min; + t_float out_max; +} t_pd_obj_number; + +t_number *number_get(t_symbol *s) +{ + t_number *num = (t_number *)pd_findbyclass(s,number_class); + if (!num) { + num = (t_number *)pd_new(number_class); + num->number = 0; + num->bound = 0; + num->b_min = 0; + num->b_max = 0; + num->o_refcount = 0; + pd_bind(&num->o_pd, s); + } + num->o_refcount++; + return (num); +} + +void number_release(t_symbol *s) +{ t_number *num = (t_number *)pd_findbyclass(s,number_class); + if (num) { + if (!--num->o_refcount) { + pd_unbind(&num->o_pd, s); + pd_free(&num->o_pd); + } + } + else bug("value_release"); +} + +void number_check_bound(t_pd_obj_number *x) +{ + if (*x->bound != 0) + { + if (*x->x_number>*x->b_max) *x->x_number = *x->b_max ; + if (*x->x_number<*x->b_min) *x->x_number = *x->b_min ; + } +} + +void number_help(t_pd_obj_number *x) +{ + post(" "); + post("number v001"); + post("+ use : number $variable_name"); + post("+ symbol list :"); + post("+l+ help : this help !!!"); + post("+g+ float $f: set the value to $f "); + post("+l+ bang : send the number"); + post("+g+ !x $f : set the value to $f"); + post("+l+ ?x : ask for the value the number"); + post("+g+ if $condition $f1 $f2 : ex.: if => 10 0"); + post("+l+ do_if $condition $value $selector : ex.: do_if => 10 test"); + post("+g+ add,sub,mult,div,inv : do some basic calculation"); + post("+l+ get : get a value from another number"); + post("+l+ set : set the name of the number"); + post("+l+ subspace $internal1 $internal2 $external1 $external1"); + post("+gl?+ round $round_value"); + post("+g+ bound $min $max"); + post("+l+ post"); + post(" "); +} + +void number_post(t_pd_obj_number *x) +{ + startpost("%s",*x->x_sym); + postfloat(*x->x_number); + endpost(); +} + +void number_x_equal(t_pd_obj_number *x, t_floatarg f) +{ + *x->x_number = f ; + number_check_bound(x); +} +void number_q_x(t_pd_obj_number *x) +{ + t_atom my_atom ; + t_atom *my_pointer = &my_atom; + SETFLOAT(my_pointer, *x->x_number); + outlet_anything(x->x_obj.ob_outlet, gensym("x="), 1,my_pointer); +} + +void number_float(t_pd_obj_number *x, t_floatarg f) +{ + *x->x_number = (f - x->out_min)*(x->max-x->min)/(x->out_max-x->out_min)+x->min ; + number_check_bound(x); +} + +void number_bang(t_pd_obj_number *x) +{ t_float temp ; + temp = (*x->x_number-x->min)/(x->max-x->min)*(x->out_max-x->out_min)+x->out_min; + outlet_float(x->x_obj.ob_outlet,temp) ; +} + +void number_bound(t_pd_obj_number *x, t_floatarg fmin, t_floatarg fmax) +{ + *x->bound = 1 ; + *x->b_min = fmin; + *x->b_max = fmax; +} + +void number_add(t_pd_obj_number *x, t_floatarg f) +{ + *(x->x_number) += f ; + number_check_bound(x); +} + +void number_sub(t_pd_obj_number *x, t_floatarg f) +{ + *(x->x_number) -= f ; + number_check_bound(x); +} + +void number_mult(t_pd_obj_number *x, t_floatarg f) +{ + *(x->x_number) *= f ; + number_check_bound(x); +} + +void number_div(t_pd_obj_number *x, t_floatarg f) +{ + *(x->x_number) /= f ; + number_check_bound(x); +} + +void number_inv(t_pd_obj_number *x) +{ + *x->x_number = 1 / *(x->x_number) ; + number_check_bound(x); +} + +void number_subspace(t_pd_obj_number *x, t_floatarg f1, t_floatarg f2, t_floatarg f3, t_floatarg f4) +{ + if ((f1==f2)|(f3==f4)) + { + x->min = 0 ; x->max = 1 ; x->out_min = 0 ; x->out_max = 1 ; + post("%s ERROR wrong Subspace",*x->x_sym); + } + else + { + x->min = f1 ; x->max = f2 ; x->out_min = f3 ; x->out_max = f4 ; + } +} + +void number_if(t_pd_obj_number *x,t_symbol *s,t_floatarg f1,t_floatarg f2) +{ + if (s == gensym("==")) {if(*x->x_number == f1) *x->x_number = f2 ;} + if (s == gensym("!=")) {if(*x->x_number != f1) *x->x_number = f2 ;} + if (s == gensym(">")) {if(*x->x_number > f1) *x->x_number = f2 ;} + if (s == gensym(">=")) {if(*x->x_number >= f1) *x->x_number = f2 ;} + if (s == gensym("<")) {if(*x->x_number < f1) *x->x_number = f2 ;} + if (s == gensym("<=")) {if(*x->x_number <= f1) *x->x_number = f2 ;} +} + +void number_do_if(t_pd_obj_number *x,t_symbol *cond,t_floatarg f1,t_symbol *sel) +{ + t_atom my_atom ; + t_atom *my_pointer = &my_atom; + SETFLOAT(my_pointer, *x->x_number); + post("t1 %f",f1); + if (cond == gensym("==")) {if(*x->x_number == f1) outlet_anything(x->x_obj.ob_outlet, sel, 1,my_pointer);} + if (cond == gensym("!=")) {if(*x->x_number != f1) outlet_anything(x->x_obj.ob_outlet, sel, 1,my_pointer);} + if (cond == gensym(">")) {if(*x->x_number > f1) outlet_anything(x->x_obj.ob_outlet, sel, 1,my_pointer);} + if (cond == gensym(">=")) {if(*x->x_number >= f1) post("test %f",f1);} + if (cond == gensym("<")) {if(*x->x_number < f1) outlet_anything(x->x_obj.ob_outlet, sel, 1,my_pointer);} + if (cond == gensym("<=")) {if(*x->x_number <= f1) outlet_anything(x->x_obj.ob_outlet, sel, 1,my_pointer);} +} + +void number_get_(t_pd_obj_number *x,t_symbol *s) +{*x->x_num = *number_get(s);} + +void number_set_(t_pd_obj_number *x,t_symbol *s) +{ x->x_num = number_get(s);} + +void number_free(t_pd_obj_number *x){ number_release(x->x_sym); } + +void *number_new(t_symbol *s) +{ + t_pd_obj_number *x = (t_pd_obj_number *)pd_new(pd_obj_number_class); + x->x_sym = s; + x->x_num = number_get(s); + x->x_number=&(x->x_num->number) ; + x->min = 0 ; x->max = 1 ; x->out_min = 0 ; x->out_max = 1 ; + x->b_min =&x->x_num->b_min ; + x->b_max =&x->x_num->b_max ; + x->bound =&x->x_num->bound ; + outlet_new(&x->x_obj, &s_float); + return (void *)x; +} + +void number_setup(void) +{ + pd_obj_number_class = class_new(gensym("number"), (t_newmethod)number_new, + (t_method)number_free, sizeof(t_pd_obj_number), 0,A_DEFSYMBOL, 0); + class_addcreator((t_newmethod)number_new, gensym("x"), A_DEFSYM, 0); + class_addfloat(pd_obj_number_class,number_float); + class_addbang(pd_obj_number_class,number_bang); + class_addmethod(pd_obj_number_class, (t_method)number_x_equal, gensym("!x"), A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_q_x, gensym("?x"), 0); + class_addmethod(pd_obj_number_class, (t_method)number_post, gensym("post"), 0); + class_addmethod(pd_obj_number_class, (t_method)number_add, gensym("add"),A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_sub, gensym("sub"),A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_mult, gensym("mult"),A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_div, gensym("div"),A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_inv, gensym("inv"),0); + class_addmethod(pd_obj_number_class, (t_method)number_if, gensym("if"),A_DEFSYMBOL,A_FLOAT,A_FLOAT,0); + class_addmethod(pd_obj_number_class, (t_method)number_set_, gensym("set"),A_DEFSYMBOL, 0); + class_addmethod(pd_obj_number_class, (t_method)number_get_, gensym("get"),A_DEFSYMBOL, 0); + class_addmethod(pd_obj_number_class, (t_method)number_do_if, gensym("do_if"),A_DEFSYMBOL,A_FLOAT,A_DEFSYMBOL,0); + class_addmethod(pd_obj_number_class, (t_method)number_subspace, gensym("subspace"),A_FLOAT,A_FLOAT,A_FLOAT,A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_bound, gensym("bound"),A_FLOAT,A_FLOAT, 0); + class_addmethod(pd_obj_number_class, (t_method)number_help, gensym("help"), 0); + class_sethelpsymbol(pd_obj_number_class, gensym("xgui/help_number")); + /* Declare the class that will contain the value */ + number_class = class_new(gensym("number"), 0, 0, sizeof(t_number), CLASS_PD, 0); + +} diff --git a/xgui/xgui-lib/oname2l.c b/xgui/xgui-lib/oname2l.c new file mode 100644 index 00000000..1b46e8a3 --- /dev/null +++ b/xgui/xgui-lib/oname2l.c @@ -0,0 +1,73 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* oname2l */ + +#include "m_pd.h" +#include + +typedef struct s_pd_obj_oname2l +{ + t_object x_obj; +} t_pd_obj_oname2l; + + +void oname2l_help(t_pd_obj_oname2l *x) +{ + post(" "); + post("oname2l v001"); + post("+ selector list :"); + post("++ help : this help !!!"); + post("++ symbol : will return a list of symbol"); + post(" "); +} + +void oname2l_symbol(t_pd_obj_oname2l *x,t_symbol *s) +{ + int i,j,l,n=1,k=0; + t_atom *my_message ; + char *s2split ; + t_symbol *a_symbol ; + t_atom *an_atom ; + for (l=0;s->s_name[l]!=0;l++) + { + if (s->s_name[l]=='/') {n++;} ; + } + s2split = (char *)getbytes(l+1) ; + memcpy(s2split, s->s_name, l+1) ; + my_message = (t_atom *)getbytes(n * sizeof(t_atom)); + an_atom = my_message ; + for (i=0;ix_obj.ob_outlet,gensym("list"), n,my_message); + freebytes(my_message, n * sizeof(t_atom)); + freebytes(s2split, l ); +} + +void oname2l_free(void) { } + +t_class *oname2l_class; + +void *oname2l_new(void) +{ + t_pd_obj_oname2l *x = (t_pd_obj_oname2l *)pd_new(oname2l_class); + outlet_new(&x->x_obj, &s_float); + return (void *)x; +} + +void oname2l_setup(void) +{ + oname2l_class = class_new(gensym("oname2l"), (t_newmethod)oname2l_new,(t_method)oname2l_free, sizeof( t_pd_obj_oname2l), 0,A_DEFSYMBOL, 0); + class_addsymbol(oname2l_class, (t_method)oname2l_symbol); + class_addmethod(oname2l_class, (t_method)oname2l_help, gensym("help"), 0); + class_sethelpsymbol(oname2l_class, gensym("xgui/help_oname2l")); +} + diff --git a/xgui/xgui-lib/recv2.c b/xgui/xgui-lib/recv2.c new file mode 100644 index 00000000..f49e374c --- /dev/null +++ b/xgui/xgui-lib/recv2.c @@ -0,0 +1,80 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* recv2 */ + +#include "m_pd.h" + +static t_class *recv2_class; + +typedef struct _recv2 +{ + t_object x_obj; + t_symbol *x_sym; +} t_recv2; + +static void recv2_bang(t_recv2 *x) +{ + outlet_bang(x->x_obj.ob_outlet); +} + +static void recv2_float(t_recv2 *x, t_float f) +{ + outlet_float(x->x_obj.ob_outlet, f); +} + +static void recv2_symbol(t_recv2 *x, t_symbol *s) +{ + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void recv2_pointer(t_recv2 *x, t_gpointer *gp) +{ + outlet_pointer(x->x_obj.ob_outlet, gp); +} + +static void recv2_list(t_recv2 *x, t_symbol *s, int argc, t_atom *argv) +{ + outlet_list(x->x_obj.ob_outlet, s, argc, argv); +} + +static void recv2_anything(t_recv2 *x, t_symbol *s, int argc, t_atom *argv) +{ + outlet_anything(x->x_obj.ob_outlet, s, argc, argv); +} + +static void recv2_set(t_recv2 *x, t_symbol *s) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); +} + +static void *recv2_new(t_symbol *s) +{ + t_recv2 *x = (t_recv2 *)pd_new(recv2_class); + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + outlet_new(&x->x_obj, 0); + return (x); +} + +static void recv2_free(t_recv2 *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void recv2_setup(void) +{ + recv2_class = class_new(gensym("recv2"), (t_newmethod)recv2_new, + (t_method)recv2_free, sizeof(t_recv2), 0, A_DEFSYM, 0); + class_addbang(recv2_class, recv2_bang); + class_addfloat(recv2_class, (t_method)recv2_float); + class_addsymbol(recv2_class, recv2_symbol); + class_addpointer(recv2_class, recv2_pointer); + class_addlist(recv2_class, recv2_list); + class_addanything(recv2_class, recv2_anything); + class_addmethod(recv2_class, (t_method)recv2_set, gensym("@"),A_DEFSYMBOL, 0); + class_sethelpsymbol(recv2_class, gensym("xgui/help_recv2")); +} diff --git a/xgui/xgui-lib/replace_selector.c b/xgui/xgui-lib/replace_selector.c new file mode 100644 index 00000000..3c78aa6b --- /dev/null +++ b/xgui/xgui-lib/replace_selector.c @@ -0,0 +1,60 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* code for replace_selector pd class */ + +#include "m_pd.h" +#include + +typedef struct s_pd_obj_replace_selector +{ + t_object x_obj; + t_symbol *selector ; +} t_pd_obj_replace_selector; + + +void replace_selector_help(t_pd_obj_replace_selector *x) +{ + post(" "); + post("replace_selector v001"); + post("+ selector list :"); + post("++ help : this help !!!"); + post("++ anything : will return anything with a diferent selector"); +} + +void replace_selector_any_method(t_pd_obj_replace_selector *x,t_symbol *s, int argc, t_atom *argv) +{ + t_atom *my_message = (t_atom *)getbytes(argc * sizeof(t_atom)); + memcpy(my_message, argv, argc * sizeof(t_atom)); + outlet_anything(x->x_obj.ob_outlet,x->selector, argc,my_message); + freebytes(my_message, argc * sizeof(t_atom)); +} + +void replace_selector_set2add(t_pd_obj_replace_selector *x, t_symbol *s) +{ + x->selector = s ; +} + +void replace_selector_free(void) { } + +t_class *replace_selector_class; + +void *replace_selector_new(t_symbol *s) +{ + t_pd_obj_replace_selector *x = (t_pd_obj_replace_selector *)pd_new(replace_selector_class); + x->selector = s; + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("symbol"), gensym("s2add")); + return (void *)x; +} + +void replace_selector_setup(void) +{ + replace_selector_class = class_new(gensym("replace_selector"), (t_newmethod)replace_selector_new,(t_method)replace_selector_free, sizeof( t_pd_obj_replace_selector), 0,A_DEFSYMBOL, 0); + class_addanything(replace_selector_class, replace_selector_any_method); + class_addmethod(replace_selector_class, (t_method)replace_selector_set2add, gensym("s2add"), A_SYMBOL, 0); + class_addmethod(replace_selector_class, (t_method)replace_selector_help, gensym("help"), 0); + class_sethelpsymbol(replace_selector_class, gensym("xgui/help_replace_selector")); +} + diff --git a/xgui/xgui-lib/seg.c b/xgui/xgui-lib/seg.c new file mode 100644 index 00000000..a7a0566e --- /dev/null +++ b/xgui/xgui-lib/seg.c @@ -0,0 +1,90 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* code for seg pd class NOT WORKING YET*/ + +#include "m_pd.h" +#include "g_canvas.h" +#include "t_tk.h" + +typedef struct s_pd_obj_seg +{ + t_object t_ob; + t_symbol *seg_name; + t_float *posx; + t_float *posy; + t_float *x1; + t_float *y1; + t_float *x2; + t_float *y2; + t_float *width; + t_symbol *color; +} t_seg; + +typedef struct s_seg +{ + t_object t_ob; + t_symbol* seg_name; + t_float posx; + t_float posy; + t_float x1; + t_float y1; + t_float x2; + t_float y2; + t_float width; + t_symbol color; +} t_seg; + +void seg_help(t_seg *x) +{ + post(" "); + post("seg v001"); + post("+ symbol list :"); + post("++ help : this help !!!"); + post(" "); +} + +void seg_width(t_seg *x, t_floatarg f) +{ + post("seg: width %f",f); + t_atom my_atom ; + t_atom *my_pointer = &my_atom; + SETFLOAT(my_pointer, *f); + outlet_anything(x->x_obj.ob_outlet, gensym("!width"), 1,my_pointer); +} + + +void seg_pos(t_seg *x, t_floatarg f1, t_floatarg f2) +{ + outlet_float(x->x_outlet1, (t_float)f1+(t_float)f2); +} + +void seg_free(void) +{ + post("seg_free"); +} + +t_class *seg_class; + +void *seg_new(void) +{ + t_seg *x = (t_seg *)pd_new(seg_class); + post("seg created"); + x->posx = 0; x->posy = 0; + x->x1 = 10; x->y1 = 10; + x->x1 = 20; x->y1 = 20; + x->x_outlet1 = outlet_new(&x->t_ob, &s_float); + return (void *)x; +} + +void seg_setup(void) +{ + post("seg_setup"); + seg_class = class_new(gensym("seg"), (t_newmethod)seg_new,(t_method)seg_free, sizeof(t_seg), 0, A_GIMME, 0); + class_addmethod(seg_class, (t_method)seg_width, gensym("width"),A_FLOAT, 0); + class_addmethod(seg_class, (t_method)seg_pos, gensym("pos"),A_FLOAT,A_FLOAT, 0); + class_addmethod(seg_class, (t_method)seg_help, gensym("help"), 0); + class_sethelpsymbol(seg_class, gensym("xgui/help_seg")); +} + diff --git a/xgui/xgui-lib/send2.c b/xgui/xgui-lib/send2.c new file mode 100644 index 00000000..a58b87c6 --- /dev/null +++ b/xgui/xgui-lib/send2.c @@ -0,0 +1,67 @@ +/* Copyright (c) 2002 Damien HENRY. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ + +/* ------------------------ based on remote --------------------------------- */ +/* */ +/* Send data to receive obejct . */ +/* Written by Olaf Matthes (olaf.matthes@gmx.de) */ + +#include "m_pd.h" + +/*dh : +#include +#include */ + +#define MAX_REC 64 /* maximum number of receive objects */ +#define MAX_ARG 32 /* maximum number of arguments to pass on */ + +static t_class *send2_class; + +/*dh: I've removed the static *char */ + +typedef struct _send2 +{ + t_object x_obj; +} t_send2; + + /* send 'anything' to receiver */ +static void send2_anything(t_send2 *x, t_symbol *s, int argc, t_atom *argv) +{ + int i; + t_atom av[MAX_ARG]; /* the 'new' t_atom without first element */ + t_int ac = argc - 1; /* the 'new' number of arguments */ + + if(argc < 1) /* need */ + { + post("send2: too few arguments!"); + return; + } + if(ac > MAX_ARG) + { + post("send2: too many arguments!"); + return; + } + + for(i = 1; i < argc; i++) + { + av[i - 1] = argv[i]; /* just copy, don't care about types */ + } + /* send only argument-part to receivers */ + if (s->s_thing) pd_forwardmess(s->s_thing, argc, argv); +} + +static void *send2_new(void) +{ + t_send2 *x = (t_send2 *)pd_new(send2_class); + /*dh: I've removed the post here */ + return (x); +} + +void send2_setup(void) +{ + send2_class = class_new(gensym("send2"), (t_newmethod)send2_new, 0, + sizeof(t_send2), 0, 0); + class_addanything(send2_class, send2_anything); + class_sethelpsymbol(send2_class, gensym("xgui/help_send2.pd")); +} diff --git a/xgui/xgui-lib/test_xgui_lib.pd b/xgui/xgui-lib/test_xgui_lib.pd new file mode 100644 index 00000000..dc280859 --- /dev/null +++ b/xgui/xgui-lib/test_xgui_lib.pd @@ -0,0 +1,134 @@ +#N canvas 30 89 933 636 10; +#X obj 60 123 seg; +#X msg 92 114 width \$1; +#X floatatom 92 91 5 0 0; +#X obj 60 146 print seg; +#X msg 22 91 pos 11 13; +#X floatatom 29 58 5 0 0; +#X msg 128 233 help; +#X msg 89 10 pos 1 13; +#X floatatom 235 93 5 0 0; +#X msg 235 70 bang; +#X msg 324 88 mult 2 \, bang; +#X msg 324 134 sub 1 \, bang; +#X msg 324 157 div 2 \, bang; +#X msg 324 111 inv \, bang; +#X msg 324 65 add 1 \, bang; +#X msg 421 68 add 1 \, if >= 10 0 \, bang; +#X msg 422 128 \$1 \, if < 0 0 \, if >= 10 10 \, bang; +#X floatatom 422 105 5 0 0; +#X msg 235 24 help; +#X floatatom 324 19 5 0 0; +#X msg 324 42 !x \$1 \, ?x; +#X floatatom 422 151 5 0 0; +#X floatatom 425 266 5 0 0; +#X msg 425 289 !x \$1 \, ?x; +#X msg 498 270 bang; +#X obj 235 210 number my_first_number; +#X msg 565 241 set my_first_number; +#X obj 425 312 number my_second_number; +#X msg 565 264 get my_first_number \, bang; +#X floatatom 422 220 5 0 0; +#X msg 251 273 do_if => 10 ok; +#X obj 244 241 print; +#X obj 422 197 x my_first_number; +#X msg 235 47 post; +#X msg 643 211 bound 0; +#X obj 425 335 print; +#X msg 422 174 \$1 \, bang; +#X msg 575 166 subspace 0 1 100 10; +#X msg 564 202 bound 1 10; +#X msg 381 20 bound 1 10; +#X obj 41 351 concat test; +#X obj 40 381 print; +#X msg 33 274 1 2 3; +#X floatatom 93 257 5 0 0; +#X symbolatom 12 244 10 0 0; +#X msg 75 306 bonjour truc et bidule; +#X msg 148 274 symbol alors; +#X obj 485 538 oname2l; +#X obj 486 574 print on2l; +#X msg 540 537 help; +#X msg 485 510 symbol */test1/test2; +#X obj 308 540 a2s; +#X msg 308 518 list * / test / test; +#X obj 309 562 print a2s; +#X msg 306 492 list test 1 2 3; +#X obj 523 397 print; +#X obj 525 372 recv2 test; +#X obj 614 400 send test; +#X msg 617 371 foo; +#X msg 528 350 test?; +#X msg 586 336 @ truc; +#X msg 680 376 test; +#X obj 685 402 send truc; +#X msg 637 336 @ test; +#X msg 161 443 help; +#X obj 73 591 print; +#X msg 66 484 1 2 3; +#X floatatom 126 467 5 0 0; +#X symbolatom 45 454 10 0 0; +#X msg 108 516 bonjour truc et bidule; +#X msg 181 484 symbol alors; +#X obj 74 561 replace_selector test; +#X obj 799 411 send2; +#X msg 819 363 test 2; +#X msg 756 358 truc 1; +#X connect 2 0 1 0; +#X connect 6 0 40 0; +#X connect 8 0 25 0; +#X connect 9 0 25 0; +#X connect 10 0 25 0; +#X connect 11 0 25 0; +#X connect 12 0 25 0; +#X connect 13 0 25 0; +#X connect 14 0 25 0; +#X connect 15 0 25 0; +#X connect 16 0 25 0; +#X connect 17 0 16 0; +#X connect 18 0 25 0; +#X connect 19 0 20 0; +#X connect 20 0 25 0; +#X connect 21 0 36 0; +#X connect 22 0 23 0; +#X connect 23 0 27 0; +#X connect 24 0 27 0; +#X connect 25 0 31 0; +#X connect 26 0 27 0; +#X connect 27 0 35 0; +#X connect 28 0 27 0; +#X connect 30 0 25 0; +#X connect 32 0 29 0; +#X connect 33 0 25 0; +#X connect 34 0 32 0; +#X connect 36 0 32 0; +#X connect 37 0 32 0; +#X connect 38 0 32 0; +#X connect 39 0 25 0; +#X connect 40 0 41 0; +#X connect 42 0 40 0; +#X connect 43 0 40 0; +#X connect 44 0 40 0; +#X connect 45 0 40 0; +#X connect 46 0 40 1; +#X connect 47 0 48 0; +#X connect 49 0 47 0; +#X connect 50 0 47 0; +#X connect 51 0 53 0; +#X connect 52 0 51 0; +#X connect 54 0 51 0; +#X connect 56 0 55 0; +#X connect 58 0 57 0; +#X connect 59 0 56 0; +#X connect 60 0 56 0; +#X connect 61 0 62 0; +#X connect 63 0 62 0; +#X connect 64 0 71 0; +#X connect 66 0 71 0; +#X connect 67 0 71 0; +#X connect 68 0 71 0; +#X connect 69 0 71 0; +#X connect 70 0 71 1; +#X connect 71 0 65 0; +#X connect 73 0 72 0; +#X connect 74 0 72 0; diff --git a/xgui/xgui-lib/try.sh b/xgui/xgui-lib/try.sh new file mode 100644 index 00000000..707f6bab --- /dev/null +++ b/xgui/xgui-lib/try.sh @@ -0,0 +1 @@ +../../bin/pd -open ./test_xgui_lib.pd -verbose diff --git a/xgui/xgui-lib/xgui_lib.c b/xgui/xgui-lib/xgui_lib.c new file mode 100644 index 00000000..62940bc2 --- /dev/null +++ b/xgui/xgui-lib/xgui_lib.c @@ -0,0 +1,17 @@ +/* xgui */ + +#include "m_pd.h" +#include "seg.c" +#include "number.c" + +void seg_setup(); +void number_setup(); + +void xgui_lib_setup(void) +{ + post("++ Xgui - Damien HENRY"); + post("++ v0.08"); + seg_setup(); + number_setup(); +} + -- cgit v1.2.1