[HN Gopher] Extempore - An audiovisual live programming environment
       ___________________________________________________________________
        
       Extempore - An audiovisual live programming environment
        
       Author : gjvc
       Score  : 52 points
       Date   : 2021-05-03 07:55 UTC (1 days ago)
        
 (HTM) web link (extemporelang.github.io)
 (TXT) w3m dump (extemporelang.github.io)
        
       | rotten wrote:
       | What is "cyberphysical coding"? I didn't see any definition on
       | the website, and no, I haven't seen any live examples of it
       | either. It sounds cool, but from looking at this site, I have no
       | idea what they are talking about.
        
         | Rochus wrote:
         | See https://en.wikipedia.org/wiki/Cyber-physical_system and
         | https://en.wikipedia.org/wiki/Extempore_(software).
         | 
         | Here are some lectures:
         | https://www.youtube.com/watch?v=yY1FSsUV-8c,
         | https://www.youtube.com/watch?v=GSGKEy8vHqg
        
       | qorrect wrote:
       | There used to be an emacs/lisp library that did this, does anyone
       | remember the name ?
        
         | memechunk wrote:
         | Overtone? https://overtone.github.io/
        
           | iainctduncan wrote:
           | Overtone was/is Clojure over SuperCollider. There are a
           | number of other similar lisp things though. Incudine might be
           | the one you're thinking of?
        
             | vnorilo wrote:
             | Nyquist [1] is a XLisp derivative that shares temporal
             | recursion with Extempore. Not sure it had any connection to
             | Emacs though.
             | 
             | 1: https://www.cs.cmu.edu/~music/nyquist/
        
               | iainctduncan wrote:
               | Yeah Nyquist is cool too, just got the book. I believe
               | Common Music preceded both Extempore and Nyquist in that
               | regard, and also uses a TinyScheme descendent, s7 Scheme.
               | I use s7 in Scheme For Max for temporal recursion too.
               | 
               | Demo of temporal recursion in Scheme for Max here:
               | https://youtu.be/pg7B8h4yHkU
               | 
               | And my tutorial on it:
               | https://iainctduncan.github.io/s4m-stk/
        
       | memechunk wrote:
       | I've had the pleasure of watching Andrew Sorensen perform with
       | Extempore multiple times. The improvisational and creative
       | musical capability of Extempore is astonishing.
        
       | didibus wrote:
       | Interesting, I haven't seen a lot of Lisps with static type
       | inference. The language seem very interesting, especially the
       | multi-threading.
        
       | vnorilo wrote:
       | I had a chance to sit down with Mr Sorensen some years back and
       | talk PL design.
       | 
       | I can easily recommend Extempore (xtlang) especially if you're a
       | bit more advanced programmer. The underlying core is a tasteful
       | mix of C-aligned semantics (think LLVM) that manifests as
       | S-expressions with the usual goodies. It is statically typed with
       | inference.
       | 
       | Another forte is scheduling via temporal recursion.
       | 
       | It has a solid memory allocation strategy, via memory arenas,
       | oriented to high performance and low latency. Higher level
       | constructs like closures can live in arenas. You can also
       | introduce some custom dynamic cleanup routines for RAII-like
       | behavior.
       | 
       | I seriously think it could work well outside of its niche as
       | well.
        
       | bradrn wrote:
       | I've tried several live audio programming languages (though not
       | to any great extent), and have found Extempore to be easily the
       | best. It's the only language I've found which lets me control
       | both the low-level details of synthesis and the high-level
       | details of musical structure, and -- more importantly -- edit
       | them both live. The low-level language is C-like and statically
       | typed with all the advantages that brings, and as a Haskeller I
       | find it intuitive to structure the high-level details around
       | recursion (in Scheme in this case). My only real frustration with
       | it is the lack of documentation, though the source seems pretty
       | readable. (That, and the fact I haven't found anything to use it
       | for yet!)
        
         | WORLD_ENDS_SOON wrote:
         | Have you tried out the ChucK language? I haven't tried
         | Extempore yet, but it looks like the way they handle timing
         | could be similar. ChucK has a very elegant system for
         | synchronizing synthesizers and sequencers where you can write
         | code in a simple imperative style (within a sequencer you can
         | "wait" until the next note needs to be played). The language
         | runtime keeps all of the coroutines running in sync with a
         | global clock. I don't know of other languages that use this
         | style of timing, so I'd be very curious to hear how they
         | compare.
        
       ___________________________________________________________________
       (page generated 2021-05-04 23:02 UTC)