Sound as Pure Form - open sourced, repo on GitHub

I am open-sourcing my project, “Sound as pure form”, aka “sapf”, which I first wrote in 2011.
It is a mostly functional, stack based, postfix syntax language, with pervasive auto-mapping of functions over lazy lists, in a similar way to how APL maps functions over arrays.
It is not a replacement for SuperCollider, but it is a delightful toy that has some nice properties.
It currently only runs on MacOS.

There are sound examples posted here on SoundCloud: Stream sound as pure form | Listen to music albums online for free on SoundCloud

The Github repository is here: GitHub - lfnoise/sapf: Sound As Pure Form - a Forth-like language for audio synthesis using lazy lists and APL-like auto-mapping.

The README.txt file gives a brief description, set-up instructions, and syntax description.
There is a file of code examples for generating sounds, many which are translations of SuperCollider v2 examples.
There is not nearly enough documentation, but there is a one line help for each function.

I have other things to do for the next month or so, so I may not be able to give much support or review any pull requests during this time.

35 Likes

Is there any reason not to try compiling on Linux? Any missing dependencies? We can try.

It uses AudioUnits for playback, but that should be easy to fix. I was going to use RtAudio instead. It also uses ExtAudioFile for audio file I/O. And it uses the Accelerate framework for FFT. And it uses some graphics APIs for creating spectrogram images.

2 Likes

Thank you James! I look forward to playing with it.
Josh

/*
Josh Parmenter
www.realizedsound.net/josh
*/

2 Likes

James thank you ! Very generous of you
Amazing I can’t wait to try

Awesome News

1 Like

excited to try! My first job in the early 80s was coding audio routines in FORTH for games on early Japanese personal machines (Sharp and Epson IIRC). FORTH was a joy…

1 Like

Thanks for sharing this! Immensely appreciated!

Man we already have so much fun with SuperCollider, thanks again!

Did you consider a more permissive license, like LGPL or EUPL?

Both Pure Data and Csound use LGPL for instance.

The license question comes up now and then in relation to SuperCollider.

The GPL doesn’t prevent commercial use - it merely prevents proprietary adaptations. Artists, researchers, and commercial studios can (and do) use SuperCollider extensively without limitation. The only restriction affects those who wish to incorporate and modify the actual source code into proprietary applications. There is NO BENEFIT IN THIS. And this license debate is highly misunderstood in this community.

SuperCollider was originally developed by James McCartney and released in 1996. In 2002, McCartney released it as free software under the GNU General Public License. It was a clever strategic move, otherwise Apple could potentially claim ownership of this software.

The fundamental distinction between GPL and more permissive licenses like LGPL lies in how they handle derivative works: GPL is a “strong copyleft” license that requires any derivative work to also be released under the GPL; while LGPL is a “weak copyleft” license that allows linking to the library from non-GPL software, including proprietary software.

LGPL would allow libscsynth (the audio server library) to be linked to proprietary software. This is, in fact, just rhetoric. Linking to libscsynth effectively means using scsynth, the SuperCollider synthesis engine.

So, in practice, this has nothing to do with GPL versus LGPL. Developers can accomplish what they need by simply communicating with scsynth. Under the current GPL license: Third-party applications can use SuperCollider by communicating with it as a separate process (without needing to be GPL); which is essentially what would happen under LGPL: applications could link directly to libscsynth without becoming GPL.

Is there genuine value in changing the license when the current architecture already enables proprietary software to use scsynth as a separate process? Switching to LGPL or Apache would primarily benefit those who want to directly embed and link against libscsynth rather than using it as a separate process.

The primary advantage of the GPL for SuperCollider is that it ensures the core technology remains free software. Unlike permissive licenses (Apache, MIT, LGPL), GPL has a “viral” nature that requires derivative works to also be open source.

  1. Shared Innovation: When someone improves SuperCollider, those improvements must be shared back with the community, creating a continuous cycle of development and enhancement.

  2. Long-term Sustainability: SuperCollider has been around since 1996, and after James McCartney released it as free software under the GNU General Public License in 2002, it has continued to thrive as a community project.

2 Likes

I was asking the original author, but ok, I did it on a public forum.

You mention advantages of open source, but not of GPL specific.

All those benefits of open source you mention also apply to LGPL and EUPL. Both Pure Data and Csound also are successful community projects.

LGPL and EUPL are less viral, but people need to share the changes they make to Pure Form.

But I think only the original author can answer this question, it was not my intent to discuss different licenses in a broader way.

1 Like

yes of course

LGPL and EUPL require sharing modifications made to the core library itself. The key difference lies in how derivative works are handled:

  • GPL requires all software that incorporates the GPL code to also be GPL (the “viral” aspect)
  • LGPL and EUPL allow proprietary applications to link to or use the library without requiring the entire application to be open source.

The GPL-specific advantag was not clearly articulated in my post: its stronger guarantee that the entire ecosystem around the software remains Free Software. (In the case os SC, it is not o strong, since it can communicate as a separate process ANYWAY)

With LGPL/EUPL, only the library itself is guaranteed to remain FREE, while applications using it can be proprietary-source. Which has no " viral" effect.

1 Like

Yes, I don’t think JMC point of view and motivation was never clearly articulated. The absence of a published statement specifically addressing his license choice suggests this may have been a practical decision rather than an ideological one.

I would like to hear his thoughts on that too!!