[PD] Licensing issues (was rjdj is gone, robotcowboy is coming ...)

Ed Kelly morph_2016 at yahoo.co.uk
Sun Nov 4 14:40:43 CET 2012

My 2pence worth:

Working with libpd for an iOS application, to be distributed through the app store:
I found it necessary to 
1) re-license my own library of externals ekext to BSD license. I know Apple has a problem with GPL - or more specifically, GPL has a problem with closed-source code. Miller's original Pd was licensed to MAX and became MSP (oh, the irony) and this could only happen because Pd is BSD (not GPL) licensed distribution.
2) code new externals when I wanted some special functionality, such as a resonant filter (mvcf~ in the ekext subversion repository). This code was released BSD.

There is so much in the rjdj library that can help, but a lot of lateral thinking is needed if you're used to Pd-extended objects. For example, I use [goto $1, this( a lot with [msgfile] to organize lists of data, sequences etc. You can't do that with [textfile] so you have to:

[t b b f b]
|  |   |   \
|  \   |    \
|   \__|_____\___
|      |      \  \
|    [until]  |   \
\___   |      \    \
    \  |       \    \
    [textfile] |    |
      \       [0 ( [1 (
       \      /____/

...perhaps there is another way?

3) If you organize tables with a hierarchical naming system then you can avoid most of the woes of using arbitrary symbols (unless you are using readsf~ for example, where file names have to be stored). For example:

[t f b]
 |   \______________
 |                  \
[f]                 [f]
 |                   |
 |                  [makefilename wav-%s-%%s]
 |                   /
 |                  [set $1(
 | __________________/
[makefilename not-set-yet]
[set $1(

In the [makefilename] object, %%s becomes %s when it's output. %%%%s becomes %%s, so you can have more levels of hierarchy for naming conventions.

4) If you ever need song position pointers per bar or something, the
[sieve] external from ekext is invaluable. For each bar number you can store another number containing a parameter (such as a table name etc). It's BSD licensed and ready to go.

Apologies but I can't post the source code for the app I made for legal reasons (! - that's the rub) but these are some tips.

While I believe in GPL and have benefited a great deal from it's existence (Linux anyone?) I think it would be a good time to start getting an "libpd add-ons" library of externals together, that developers didn't mind being used for commercial projects.


Gemnotes-0.2: Live music notation for Pure Data, now with dynamics!

> From: Frank Barknecht <fbar at footils.org>
>To: pd-list at iem.at 
>Sent: Sunday, 4 November 2012, 10:52
>Subject: Re: [PD] Licensing issues (was rjdj is gone, robotcowboy is coming ...)
>On Sat, Nov 03, 2012 at 07:48:45PM -0700, Jonathan Wilkes wrote:
>> That's a bit like having an abstraction to make an array of Pet Rocks.
>> What do you use it for?
>Everywhere you need to translate an index number into an arbitrary symbol. For
>example to translate midi note numbers to table-names in a generic sample
>Frank Barknecht                                     _ ______footils.org__
>Pd-list at iem.at mailing list
>UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list

More information about the Pd-list mailing list