C74 and my definitive Return2Pd
Again C74 shits on your users, as he makes enough with Pluggo.
Arbitrary changes and are not consulted frequently, but a change of license which means C74 owns everything that is created in Gen development tool, it really is a gesture of usury only expect from a corporation like Microsoft.
Many users have been developing in Gen since leaving, and read attentively the license before investing money, time and other resources to learn and develop.
/****************************************
Copyright (c) 2012 Cycling ’74
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*****************************************************/
/**********************************
Cycling ’74 License for Max-Generated Code for Export
Copyright (c) 2016 Cycling ’74
The code that Max generates automatically and that end users are capable of exporting and using, and any
associated documentation files (the "Software") is a work of authorship for which Cycling ’74 is the author
and owner for copyright purposes. A license is hereby granted, free of charge, to any person obtaining a
copy of the Software ("Licensee") to use, copy, modify, merge, publish, and distribute copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The Software is licensed to Licensee only for non-commercial use. Users who wish to make commercial use of the
Software must contact the copyright owner to determine if a license for commercial use is available, and the
terms and conditions for same, which may include fees or royalties. For commercial use, please send inquiries
to licensing (at) cycling74.com. The determination of whether a use is commercial use or non-commercial use is based
upon the use, not the user. The Software may be used by individuals, institutions, governments, corporations, or
other business whether for-profit or non-profit so long as the use itself is not a commercialization of the
materials or a use that generates or is intended to generate income, revenue, sales or profit.
The above copyright notice and this license shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*****************************************************/
Anyway
My return to Pd...
abs_4to16pads_bin_conv_sv: convert 4 (midi) pads from a binary value to a decimal (for rerouting)
Background:
Last week I made the (what I now know as "life-altering") commitment to buy (and did) my first usb+midi keyboard controller, a Samson Graphite M25. I have since set up my shop (since given my tools+configuration I could not use the Graphite Preset Editor and because everything works better if you get pd involved :---)) to run the kb into pd then into amsynth via jack, using pd as the midi interface: kb>pd>amsynth>out.
In the process, one thing I did was upgrade the 32 "pre", preset button knobs, to 120, using the ideas included in this abstraction: convert the 4 pads and their binary-ness into decimals, so I can then tell pd to make the knobs, 8x15, instead of 8x4 (the default PRE pad count), see below for clarification...
Requirement(s): Linux and shell external (though I am pretty sure a version using the "until" object is do-able, I did not find one and know the shell waaayyy better than until or even metro.
Synopsis: by pushing on various combinations of pads (could actually be any set of cc(?)'s) the resulting binary number is turned into a decimal which can then be used to re-route or set a different control, ex. PROG.
(from the _help file comments):
Purpose: convert binary values to decimals in order to simplify and expand the rerouting from one control to another, ex. from POLTYTOUCH to PROG.
The left inlet takes a routing/control value,;
ex. note/polytouch control, etc.;
the middle inlet takes the value from that control;
and the right inlet takes a bang to trigger/get/output;
the decimal equivalent.
4pad/trigger to 16 pad/trigger binary-to-decimal converter;
the patch converts the pressing of multiple pads;
to a binary number then to a decimal so that;
for ex. a 4 pad control can send signals from 1-15.
the "shell" external is required;
and the shell script, named:bin2dec_pd, is;
also required. It includes only a single line, echo "$((2#$1))".
FYI: in the polytouch instance, the control is looking for;
127 as a trigger value, so the pads must be pushed Completely down.
I DO believe a metro or until version;
of this is also possible but the shell was more expedient.;
-svanya
Idea for Effects Stack(ing) Technique/Control ("Mother")
To begin, I apologize in advance for this Not being a complete abstraction, so please forgive me for that.
As apology, I offer my humility: 10 hours-straight work later, I know some of what i thought of is beyond my knowledge limit and capacity to continue working on.
That all being said,...
My idea (which I thought would be Very simple, yet learned that PD, no matter how sweet She is, does not behave like the linux shell) was simple:
Make a rack of a set of vradios (i chose 8 due to the cpu limit on my laptop, but more could easily be added) which each denote a set of effects;
Send the results to a shell control along with the "slot" in the stack;
Have it copy that effect into an eff(ects)/tmp folder (mapping over the dummy files that were there),
so when the adc~ > eff1 > eff2, etc., chain runs they would be loaded as copies of the desired effects abstractions.
My intention was to empower the usage of multiple instances of the same effects abstractions as well as cut the wiring required in many/my pedal rack/s I have seen to almost nil.
That Was accomplished.
And I DO like the "idea".
On the other hand, I learned, to my chagrin, 2 VERY important lessons:
- pd loads all subpatches on startup
and - there is no (this is were I bow to higher minds than myself) way to "refresh" the patch, shy of closing and reopening it (because while you can do this sort of thing in linux, you can not in pd "underwrite" a subpatch and presume it will know the change has been made).
I Did pursue trying to load via "cat" the effect file-contents into a pd (sub)patch object, but could not figure out how to make that work, even with subtracting the file accouterments, i.e.#X, #N.
In closing I will say that the goal, though only partially achieved, IS one worth pursuing if it is a domain you are more knowledgeable about than myself.
I have attached a zip of my work.
It includes:
a shell script to start extended (it must be started this way, if the shell object is to know where the resource folder is located;
a folder, "res", which includes: /effs (where you put your effects abstractions), /effs_tmp (with 8 dummy files, where your effs get copied to), and /helper (where Mother is located)
and
a Mother_effsmap.txt file, where you list your effects, by filename (including the ".pd" extension", which it cross-references the vradio index to the line number on the file to know which file to copy.
Also,
I have found that it does copy correctly, but then you are left with the stack of controls to contend with. But I have yet to figure that out and think it better to go ahead and share it.
-peace, thanks for listening, and I hope it gives you some new ideas to work with.
svanya
Right-click to view pd files online (via (mozilla's) Web Developer Extension, pd-fileutils, and a shell script)
I stumbled on pd-fileutils and what it can do:
So I put together a linux (tho I'm sure you can make a .bat windows version, too) shell script that will (if added as a "Tool" to the Web Developer Extension (mozilla add-in and probably others too) you can:
View a raw pd webpage, ex. on GitHub (have not tested on others, and in some instances when a link points to a pd file my browser thinks its a binary )
Go to Web Developer Extension > Tools > pd_viewer;
and
See the file in all its real PureData glory.
Two images below and an attached .zip of the needed pd2svg (js + css folders) and the shell script, "pd-fileutils_viewer".
Standard Rule re: downloaded shell scripts:
ALWAYS look inside the script before ever running it on your computer to be sure it does not have anything that would mess up your system.
In this case, what it does is:
Copy the needed files to /tmp, read the online path to the raw file, wget the file to /tmp, take the (base)filename name, echo a header with all the pd-fileutils html stuff, cat in (and sed replace the quotes and apostrophes with their entities) the pd file as a string, then echo the html page footer, and send it to your default browser.
To do this you will need to add the Web Developer Extension, tho I am pretty sure any other add-in/feature that lets you run an app on a page will work too;
extract the contents of the zip below to a location of your choice,
then add the "pd-fileutils_viewer" as a program to view those pages, i.e. as a "tool".
Viola! Pd file ready for viewing!
If you see any wrinkles in this either or ways to improve it let me know and I will see about incorportating or you can do it yourself and share the updated version.
But for now at least: The WWW is in our pd oyster.
Peace, goodwill, and happy music making,
-svanya
note: depending on how much work the pd-fileutils is asked to do, i.e. how complex the patch is it might take a moment to render the svg.
The images below hopefully will guide you thru how to set it up. Basically, add the mozilla Web Developer Extension, then under Tools, point it to where ever you saved the shell (with its folder) script.
Ciao for now
.
Shell issues
When I try to instantiate the [shell] I get this;
error: shell: can't load abstraction within itself
shell
... couldn't create
error: shell: can't load abstraction within itself
shell
... couldn't create
error: shell: can't load abstraction within itself
shell
... couldn't create
all the other extras work fine, what is up with this??
oh, another thing- are there tutorials for writing objects anywhere? I wouldn't mind c++, but a python or perl would be much better.
gracias!!
sunji
Q1: latency, Q2: \[shell\]
hi guys, i just have a couple questions for you...
let me explain my predicament. for my kaleidescope patch, i use [pix_write] to dump a jpeg every rendering frame, as well as recording a stereo .wav at the same time. from there, i use ffmpeg to string the jpegs into an avi, lame to convert the .wav into an mp3, and then mencoder to combine the .avi and .mp3 into the final movie. i haven't gotten pdp up and running yet, so i can't dump straight to a movie, but i'm fine with that for the time being. it is a pain when i have a lot of audio objects going at once, because then it starts to skip and stutter while rendering (kind of defeats the purpose of "realtime".) so my first question is, if i increase the latency in Pd, which should theoretically kill the stuttering during rendering (from my understanding reading one of ClaudiusMaximus' posts), will the audio and video files still line up right? i trigger them both to record at the same time, and usually the audio has a fraction of a second of dead air in the beginning, but will increasing the latency cause any significant sync issues between the files? this isn't a huge deal, since i can just always go in and edit the sound file to fix the sync (which i usually have to do because of that little silent bit at the beginning).
but anyways, onto my real question. i want to use [shell] to execute all the steps necessary above to create the final video, and have it all in one patch that can recieve the info from other patches (such as file locations, mainly) so as to do it automatically. if i send shell a series of commands, will it properly execute them one at a time, starting the next after finishing the first (like a bash script, for instance)? i only ask because i don't currently have access to my linux machine to test this... it would be real nice to have all the steps executed simply by hitting a bang after recording, but i don't know [shell] well enough yet to know how to properly do this.
any advice/suggestions are welcome. sorry for the long-winded post, but i'm just being thorough! also, when i get my machine back, i'll post the exact commands i use to make the videos. thanks guys!
-ian
Nu B ?s -Prefs in os x, presets
Hi List,
I'm new to PD, GEM and computer video but am familiar with midi in max. I have a few questions. PD and gem seem like truly wonderfull and amazing tools but I need to get my bearings.
Is there any way to start up PD so it knows my audio and midi prefs - so I dont have to reset this if it crashes (I'm using the wish&tc&tk shell installation)? Maybe something in the terminal when I run it? Is there some preference file for the mac components I can tweak?
So what's the best strategy for dealing with presets in patches as there is no preset object? I noticed that there is no preset module like in MAX. I read the "differeces from max/msp" section but am still unclear. Do I need to make lots of message boxes and click all of them?
Is there any Show/hide for cables?
Is this the best place on the web to hang out and ask questions to learn about PD and GEM?
Also is there any place I can see where inlets and outlets go to or what signal they want?
Thanks a lot in advance.
-b