I started from making a dead copy of existing object [vslider]. Then I modified it to implement my original idea.
I think some knowledge as below is needed to get the way to make own external objects:
How to build
We need to know how to build the dynamic link object in each OS.
Although, you will skip this step if the makefile template works in your environment.
I could make my externals with this makefile at Mac and Linux. As to Windows, I took another way since the make did not work well in my Windows+MinGW environment.
Programming interface of the pd external
I learned this by modding "g_vslider.c" and "x_arithmetic.c" included in the source of pd.
"x_arithmetic.c" contains many arithmetic objects, but at the beginning, it is recommended to focus just on the parts regarding the [+] object(binop1_plus).
Scripting of Tcl/Tk (if you want to make externals with GUI)
"sys_vgui()" founded many times in the "g_vslider.c" is a function to send drawing commands to Tcl/Tk.
You can find lots of good Tcl/Tk tutorials by searching with Google.
- Programming of dsp object (If you want to make dsp externals)
"d_filter.c" of the pd source will be a nice help for learning this.
If you need further help for some steps above, please let me know.
Here is a higher precision & functions knob GUI object [abcknob], as a replacement for [knob].
Main features (advantages over the wellknown [knob]) :
- A variable gauge startpoint, not only leftmost but also any point you can set
- Available a numerical meter at the center area of the knob
- Accurately showing knob direction when its degree is 90, 180 or 270
- Downward compatibility for [knob]; Your patch will work well if you replace [knob] with [abcknob] by any text editor
I made this object when the pd-extended was on-going.
Recently I found that the pd-extended is now outdated and the current pd-vanilla does not supply the [knob] object. So I updated my own object and would like to share it to help your patching life.
abcknob - Mac, Win and Linux binaries archive for Pd 0.47