[HN Gopher] Pure Data: an open source visual language for multim...
       ___________________________________________________________________
        
       Pure Data: an open source visual language for multimedia
        
       Author : brudgers
       Score  : 78 points
       Date   : 2022-08-22 05:42 UTC (1 days ago)
        
 (HTM) web link (puredata.info)
 (TXT) w3m dump (puredata.info)
        
       | khitchdee wrote:
       | FWIW, it's possible to program multimedia using Java via the
       | ISO's MPEG-J framework. It's not as easy as PureData but it's
       | very flexible and you get all the goodness of Java to boot.
       | https://mpeg.chiariglione.org/standards/mpeg-4/mpeg-j-extens...
       | https://www.ddj.com/jvm/the-mpeg-4-java-api-mpeglets/1844050...
        
       | Jason_Protell wrote:
       | I love Pure Data!
       | 
       | Brian Eno used it to create the music for Spore.
       | 
       | https://en.m.wikipedia.org/wiki/Development_of_Spore
       | 
       | https://lists.puredata.info/pipermail/pd-list/2007-11/056307...
        
         | slurpmaker wrote:
         | Brian Eno is somewhat of a god.
        
       | thenoblesunfish wrote:
       | I love pd! I learned it in Puckette's course as a freshman and
       | honestly don't remember many things as fun.
        
         | nebyoolae wrote:
         | I also learned about pd from the man himself back in college.
         | When did you attend?
        
       | prvc wrote:
       | Highly recommended: "The Theory and Technique of Electronic
       | Music", which is both an accessible and conceptually coherent
       | introduction to the topic.
        
       | ablanton wrote:
       | PD is great, what other language is working towards a 30 year
       | backward compatibility!
        
         | WillAdams wrote:
         | (La)TeX
         | 
         | https://www.tug.org
         | 
         | It won't change so that Knuth can finish:
         | 
         | https://www-cs-faculty.stanford.edu/~knuth/taocp.html
        
         | monetus wrote:
         | Really, that is something that sets it apart in my mind. An
         | explicit, rolling two decade+ compatibility effort.
        
         | brudgers wrote:
         | Common Lisp is almost to thirty years because it has a
         | consensus standard.
        
       | bmitc wrote:
       | Pure Data is awesome. The UX could be better, but it showcases
       | elements of what could be for visual programming languages.
       | 
       | I have always liked this example:
       | https://www.youtube.com/watch?v=yW1haAOxWWk. I'm not sure if the
       | music was also created in Pure Data. It kind of sounds like it.
       | There are loads of other examples like this on YouTube.
       | 
       | If you're interested in Pure Data, I recommend the following two
       | books:
       | 
       | * _Multimedia Programming with Pure Data_ :
       | https://www.amazon.com/gp/product/1782164642
       | 
       | * _Programming Sound with Pure Data: Make Your Apps Come Alive
       | with Dynamic Audio_ :
       | https://www.amazon.com/gp/product/1937785661
        
       | monetus wrote:
       | You can compile to vst with camomile as well, I wanted to
       | mention.
       | 
       | https://github.com/pierreguillot/Camomile
        
         | audionerd wrote:
         | ... and load a Pd environment as a DAW plugin with PlugData
         | https://github.com/timothyschoen/PlugData
        
       | buescher wrote:
       | This blew my mind, a software defined FM radio demodulator in
       | Pure Data: https://www.rtl-sdr.com/rtl-sdr-puredata-maxmsp/
       | Obvious-ish in retrospect, right? Not before.
        
       | WillAdams wrote:
       | Came across this because it's been used for FreeCAD:
       | 
       | https://forum.freecadweb.org/viewtopic.php?t=51429
       | 
       | but couldn't manage to wrap my mind around FreeCAD so as to
       | benefit from it.
        
       | virgil_disgr4ce wrote:
       | Funny seeing Pd randomly on the front page of HN! I once (a LONG
       | time ago) built a browser-based GUI for a remote Pd server:
       | https://github.com/t3db0t/PureeData
        
       | honkycat wrote:
       | I've dove into PD vs Max quite a bit the last few months, and
       | I've found PD to be a bit... archaic in it's design and how it
       | looks.
       | 
       | Max looks much nicer, but they both have the same problem: Lack
       | of community.
       | 
       | I expected to be able to treat PureData or Max like any other
       | programming language: find a book, watch some tutorials, and get
       | up to speed.
       | 
       | Additionally, there isn't really a central "repo" for PureData. I
       | want to search through patches that people have shared for
       | learning and re-use purposes. However, I am unable to find such a
       | thing.
        
         | xhevahir wrote:
         | There's a project called Purr Data that has an HTML5 user
         | interface and lots of extra libraries:
         | https://git.purrdata.net/jwilkes/purr-data
        
         | anigbrowl wrote:
         | There's a community, it's just very conservative. The problem
         | (especially with PD) is that the community is hostile to anyone
         | who says 'hey, this is great, but hard to use.' It was true >20
         | years ago when I first became acquainted with PD and even more
         | so now. Any criticism or unwelcome suggestions are treated as
         | an insult to Miller Puckette and the proponent is attacked,
         | ignored, or advised to implement it themselves (ie to go away
         | and not come back).
         | 
         | PD's interface is stuck in the 1980s, with the monochrome
         | graphics, lack of any support functionality (contextual menus
         | or rearrangement/tidying functions, snapping) and idiosyncratic
         | terminology (eg PD refers to module connectors as 'patch cords'
         | just like on an analog modular synthesizer or mixer, but what
         | synth people commonly call a pulse or a trigger is a 'bang' in
         | PD). And its users mostly like it that way, the same way some
         | people fetishize 8 bit videogames.
         | 
         | There have been more accessible versions of the same idea for a
         | long time (ie the mid-90s), from Clavia's Nord Modular in
         | hardware and Native Instrument's software synth Reaktor in the
         | commercial space to solo projects like Ross Bencina's
         | Audiomulch. The latter was very obviously inspired by PD but
         | iterated on every aspect of the design, making it far more
         | accessible and flexible.
         | 
         | PD's defenders (kinda like CSound's) emphasize how open-ended
         | it is and that you can do anything, render any concept etc. In
         | the audio synthesis world it's well understood that the more a
         | manufacturer emphasizes unlimited creativity, massive patch
         | storage, infinite potential etc., the less good the UI and the
         | more basic the default quality of the sound engine. You _can_
         | make it do anything, but unless you already have a very
         | specific goals you will spend most of the time reinventing
         | wheels in parameter space. If you want a mature technology
         | stack for implementing an audio subsystem (eg in a game), it
         | might be a very good choice. If you just want a flexible tool
         | to make electronic music, it 's best avoided.
        
           | usrusr wrote:
           | > In the audio synthesis world it's well understood that the
           | more a manufacturer emphasizes unlimited creativity, massive
           | patch storage, infinite potential etc., the less good the UI
           | and the more basic the default quality of the sound engine.
           | You can make it do anything, but unless you already have a
           | very specific goals you will spend most of the time
           | reinventing wheels in parameter space.
           | 
           | Nicely illustrated by reductio ad absurdum: a "naked" Epyc
           | with a few sticks of RAM, an NVMe and a pair of A/D in the
           | upper kHz range would score quite well in "unlimited
           | creativity, massive patch storage, infinite potential etc",
           | but you'd spend quite some time reinventing wheels (e.g. this
           | gets less bad if you add a compiler).
        
             | anigbrowl wrote:
             | If you're not hand-rolling your own resistors are you
             | really trying?
        
           | polyterative wrote:
           | > You can make it do anything, but unless you already have a
           | very specific goals you will spend most of the time
           | reinventing wheels in parameter space. If you want a mature
           | technology stack for implementing an audio subsystem (eg in a
           | game), it might be a very good choice. If you just want a
           | flexible tool to make electronic music, it's best avoided.
           | 
           | I agree so much. It's a cool tool but the curve to learn it
           | is often not worth it
        
         | monetus wrote:
         | The gui really needs its own theming if you use it a lot, and
         | the header file that is supposed to be the stable api is...
         | Limited. Thankfully the unstable stuff hasn't been changed in
         | years so -\\_(tsu)_/-.
         | 
         | https://patchstorage.com/ has been making a pretty heroic
         | effort at being a searchable hub for, pure data in the
         | beginning, but now many.
         | 
         | The forum is the most active for posting patches, but is
         | terrible at indexing.
         | https://forum.pdpatchrepo.info/category/2/patch
         | 
         | Puredata.info was the historic one right? Even though I
         | remember using sourceforge a lot. Some interesting things
         | there, but I don't think people post patches or even plugins on
         | the main site much anymore. On the sourceforge note, plenty in
         | GitHub too. Sometimes, /r/puredata
        
         | frou_dh wrote:
         | > I've found PD to be a bit... archaic in it's design and how
         | it looks.
         | 
         | Pd's creator was originally a mathematician and IIRC he said
         | that the look he was going for is that you start off with a
         | clean sheet of white paper and draw simple figures and lines on
         | it
        
       | speps wrote:
       | An amazing project using Pd: https://danieliglesia.com/mobmuplat/
       | 
       | It's sort of a custom GUI tool for the Pd patch you create.
        
       | monetus wrote:
       | This is like object oriented c, meant for real-time mostly but I
       | honestly use it most for sample processing and synthesizer
       | design. Fantastic software.
       | 
       | Fun fact: miller Puckette, pd's author, also wrote the first
       | versions of max/msp, but the IP was owned by the university he
       | worked for at the time. IRCAM? I can't remember, but that led to
       | cycling74 spinning it off, cultivating jitter and eventually gen~
       | while being bought up by Ableton.
       | 
       | Great histories, great math, arguably great code. It acts like
       | the proverbial gateway drug, addicting musicians and artists to
       | programming in text. I like Visual programming, but the paradigms
       | themselves are pretty transferable to event oriented
       | environments.
        
         | chresko wrote:
         | MSP is Miller S Puckette. C Sound was the precursor to many of
         | the visual and OO music programming languages, but needed to be
         | compiled and was, well, difficult. Supercollider was heavily
         | influenced by Max/MSP. David Zicarelli of C74 fame had a
         | background in psychology before programming. Kit Clayton wrote
         | the first version of jitter. Autechre are probably the best
         | known artist for using all of the above mentioned software in
         | some form.
        
           | listenfaster wrote:
           | Seeing your use of past-tense here, I have to plug: I'm a 25
           | year+ Csound enthusiast. Still very happily composing with
           | Csound along with the rest of the small but committed
           | community. Being a lifelong programmer, I prefer it to Pd,
           | Max and Supercollider, and think many HN folks would too.
           | 
           | https://csound.com/
           | 
           | You may find better instruction material than you had in the
           | past in the excellent Csound Floss manual.
           | 
           | https://flossmanual.csound.com/
        
         | hecanjog wrote:
         | The early history (it's a really fun story) is touched on in
         | this episode of Darwin Grosse's lovely podcast interview with
         | Miller Puckette:
         | https://artmusictech.libsyn.com/podcast-090-miller-puckette
         | 
         | (Rest in peace, Darwin Grosse. His work is probably familiar if
         | you're a computer music person, and worth checking out
         | regardless.)
        
       | slurpmaker wrote:
       | Probably one of my favorite OSS projects to date. I'm not a
       | musician at all but playing with it is a lot of fun. Just make
       | sure the volume isn't set too high :P
        
         | gpcr1949 wrote:
         | a quick and dirty trick to have a limiter on the signal is put
         | [tanh~] between your signal and the dac
        
       ___________________________________________________________________
       (page generated 2022-08-23 23:01 UTC)