Re: Open Sound Control
Also, Openmusic. It's a visual patcher, but it is built on Lisp, and you can write Lisp code for the patches and other items. http://support.ircam.fr/docs/om/om6-manual/co/Lisp.html On Fri, Jul 31, 2015 at 4:39 AM, Thorsten Jolitz tjol...@gmail.com wrote: Robert Herman rpjher...@gmail.com writes: Hi Rob, I have come the long way round to PicoLisp, and I have been tinkering with livecoding (audio/video, not just programming) for fun. I started with fluxus: www.pawfal.org/fluxus/ It is a great environment where you code and 3D objects show behind your code, and you can drive their parameters from an audio feed or file. It was written in a scheme which is now Racket. I am not a fan of clojure, so I only tried overtone, which is a Clojure wrapper for the Supercollider sound server. They also copied Shadertoy with their 'Shadertone' which allows for the graphics part of the livecoding of music and graphics. What I see in the livecoding scene is the combination of rather complex programming with rather simplistic music - relentless techno beats ;-) I would like it the other way around. I personally like Extempore, but I couldn't get it built on my Windows machine, the OS X install had some issues with Jack and timing, and my Linux distro had a few issues too. All in all, it is very complete and complex, but too much fuss for my skills. http://extempore.moso.com.au/ If it takes days to make it run it looses attraction ... I have been sticking with learning PicoLisp, and I would like to somehow get it to work with Grace (a single cross-platform executable, that you program music pieces in a Scheme or simplified Scheme called Sal). http://commonmusic.sourceforge.net/ Grace or CM lacks a video creation component or library. I was hoping to hook into the CM libraries with PicoLisp, and then use Alex's z3d.l library to do graphics in PicoLisp. I am not near enough of a programmer to do so, only aware that it can be done (I think?). Livecoding video and audio in a Lisp! Pure heaven...maybe CEPL in PicoLisp??? https://www.youtube.com/watch?v=I0kWZP9L9Kc What would be the minimalistic setup? A midi cmdline tool or a C shared library that can be called from PicoLisp? Or would Supercollider be the easiest thing to work with, now that the OSC Protocol is implemented in PicoLIsp? Have fun! Rob On Thu, Jul 30, 2015 at 1:26 PM, Thorsten Jolitz tjol...@gmail.com wrote: Erik Gustafson erik.d.gustaf...@gmail.com writes: Hi Erik, https://github.com/erdg/picolisp-osc If interested, more info about OSC can be found here: opensoundcontrol.org/introduction-osc opensoundcontrol.org/spec-1_0 I find the combination of sound picolisp very interesting, are you aware of SoundCollider and the Clojure Libraries Overtone and Leipzig (both on Github)? There are interesting videos on Youtube about making music with emacs/vim and clojure: , | 1. | Functional Composition - Chris Ford - YouTube | | www.youtube.com/watch?v=Mfsnlbd-4xQ8. Jan. 2013 - 39 Min. | ► - Hochgeladen von ClojureTV Music theory is one of the | 39:21 most naturally elegant and functional domains. It's a | perfect fit for ... | | 2. | Creating music with Clojure and Overtone - YouTube | | www.youtube.com/watch?v=RYZeQ6t_5SA23. Juli 2014 - 71 Min. | ► - Hochgeladen von Manchester Geek Nights Chris Ford shows | 70:50 how to make music with Clojure, starting with the basic | building block of ... ` And I noticed that you have another music related picolisp lib on github: , | 1. erdg/picolisp-aubio · GitHub | | https://github.com/erdg/picolisp-aubio ` I'm not so much interested in the technical (syntheziser) stuff but rather in the musical side of it, and I have a few questions: 1. How much would it take not to rewrite Overtone in PicoLisp but rather to define a handfull of musical instruments that can easily be used in a music creating PicoLisp program? I'm thinking of a basic rhythm section with a few rhythm instruments (maybe just a snare drum for creating swing and a Cajon and maybe Handclaps for creating Flamenco/World Music beats) and, most important, a (acoustic contra) bass. With some musical instruments available, one could take some inspiration from Overtone and Leipzig and maybe a python program like , | 1. MMA Home Page - Mellowood | | www.mellowood.ca/mma/ | | + Im Cache | + Ä hnliche Seiten | 13 Jun 2015 ... MMA-Musical MIDI Accompaniment is an | accompaniment generator. ... MMA's templating track system | puts you in control of your
Re: Open Sound Control
I have come the long way round to PicoLisp, and I have been tinkering with livecoding (audio/video, not just programming) for fun. I started with fluxus: www.pawfal.org/fluxus/ It is a great environment where you code and 3D objects show behind your code, and you can drive their parameters from an audio feed or file. It was written in a scheme which is now Racket. I am not a fan of clojure, so I only tried overtone, which is a Clojure wrapper for the Supercollider sound server. They also copied Shadertoy with their 'Shadertone' which allows for the graphics part of the livecoding of music and graphics. I personally like Extempore, but I couldn't get it built on my Windows machine, the OS X install had some issues with Jack and timing, and my Linux distro had a few issues too. All in all, it is very complete and complex, but too much fuss for my skills. http://extempore.moso.com.au/ I have been sticking with learning PicoLisp, and I would like to somehow get it to work with Grace (a single cross-platform executable, that you program music pieces in a Scheme or simplified Scheme called Sal). http://commonmusic.sourceforge.net/ Grace or CM lacks a video creation component or library. I was hoping to hook into the CM libraries with PicoLisp, and then use Alex's z3d.l library to do graphics in PicoLisp. I am not near enough of a programmer to do so, only aware that it can be done (I think?). Livecoding video and audio in a Lisp! Pure heaven...maybe CEPL in PicoLisp??? https://www.youtube.com/watch?v=I0kWZP9L9Kc Have fun! Rob On Thu, Jul 30, 2015 at 1:26 PM, Thorsten Jolitz tjol...@gmail.com wrote: Erik Gustafson erik.d.gustaf...@gmail.com writes: Hi Erik, https://github.com/erdg/picolisp-osc If interested, more info about OSC can be found here: opensoundcontrol.org/introduction-osc opensoundcontrol.org/spec-1_0 I find the combination of sound picolisp very interesting, are you aware of SoundCollider and the Clojure Libraries Overtone and Leipzig (both on Github)? There are interesting videos on Youtube about making music with emacs/vim and clojure: , | 1. | Functional Composition - Chris Ford - YouTube | | www.youtube.com/watch?v=Mfsnlbd-4xQ8. Jan. 2013 - 39 Min. | ► - Hochgeladen von ClojureTV Music theory is one of the | 39:21 most naturally elegant and functional domains. It's a | perfect fit for ... | | 2. | Creating music with Clojure and Overtone - YouTube | | www.youtube.com/watch?v=RYZeQ6t_5SA23. Juli 2014 - 71 Min. | ► - Hochgeladen von Manchester Geek Nights Chris Ford shows | 70:50 how to make music with Clojure, starting with the basic | building block of ... ` And I noticed that you have another music related picolisp lib on github: , | 1. erdg/picolisp-aubio · GitHub | | https://github.com/erdg/picolisp-aubio ` I'm not so much interested in the technical (syntheziser) stuff but rather in the musical side of it, and I have a few questions: 1. How much would it take not to rewrite Overtone in PicoLisp but rather to define a handfull of musical instruments that can easily be used in a music creating PicoLisp program? I'm thinking of a basic rhythm section with a few rhythm instruments (maybe just a snare drum for creating swing and a Cajon and maybe Handclaps for creating Flamenco/World Music beats) and, most important, a (acoustic contra) bass. With some musical instruments available, one could take some inspiration from Overtone and Leipzig and maybe a python program like , | 1. MMA Home Page - Mellowood | | www.mellowood.ca/mma/ | | + Im Cache | + Ä hnliche Seiten | 13 Jun 2015 ... MMA-Musical MIDI Accompaniment is an | accompaniment generator. ... MMA's templating track system | puts you in control of your music. ` and create background tracks for practising in PicoLisp. I think that would be fun ;-) 2. How to use (picolisp-)aubio to get a score of what I play? Reading about Aubio, it seems that I could plugin my guitar into my computer, record some stuff, and the use Aubio to extract a midi score of what I played (and then use other programs to convert that midi score to conventional musical notation). , | 1. aubio, a library for audio labelling | | aubio.org/ | | + Im Cache | + Ä hnliche Seiten | aubio, a collection of algorithms and tools to extract | musical meaning from audio signals, such as tempo, pitch, and | onset. ` A fascinating perspective, but how to do that in practice? I tried to use aubio on mp3 and ogg files as input , | $ aubionotes --help | usage: aubionotes [ options ] |-i --inputinput file |-r --samplerate select samplerate |-B --bufsize set buffer size |-H --hopsize set hopsize |
Re: Open Sound Control
Robert Herman rpjher...@gmail.com writes: Hi Rob, I have come the long way round to PicoLisp, and I have been tinkering with livecoding (audio/video, not just programming) for fun. I started with fluxus: www.pawfal.org/fluxus/ It is a great environment where you code and 3D objects show behind your code, and you can drive their parameters from an audio feed or file. It was written in a scheme which is now Racket. I am not a fan of clojure, so I only tried overtone, which is a Clojure wrapper for the Supercollider sound server. They also copied Shadertoy with their 'Shadertone' which allows for the graphics part of the livecoding of music and graphics. What I see in the livecoding scene is the combination of rather complex programming with rather simplistic music - relentless techno beats ;-) I would like it the other way around. I personally like Extempore, but I couldn't get it built on my Windows machine, the OS X install had some issues with Jack and timing, and my Linux distro had a few issues too. All in all, it is very complete and complex, but too much fuss for my skills. http://extempore.moso.com.au/ If it takes days to make it run it looses attraction ... I have been sticking with learning PicoLisp, and I would like to somehow get it to work with Grace (a single cross-platform executable, that you program music pieces in a Scheme or simplified Scheme called Sal). http://commonmusic.sourceforge.net/ Grace or CM lacks a video creation component or library. I was hoping to hook into the CM libraries with PicoLisp, and then use Alex's z3d.l library to do graphics in PicoLisp. I am not near enough of a programmer to do so, only aware that it can be done (I think?). Livecoding video and audio in a Lisp! Pure heaven...maybe CEPL in PicoLisp??? https://www.youtube.com/watch?v=I0kWZP9L9Kc What would be the minimalistic setup? A midi cmdline tool or a C shared library that can be called from PicoLisp? Or would Supercollider be the easiest thing to work with, now that the OSC Protocol is implemented in PicoLIsp? Have fun! Rob On Thu, Jul 30, 2015 at 1:26 PM, Thorsten Jolitz tjol...@gmail.com wrote: Erik Gustafson erik.d.gustaf...@gmail.com writes: Hi Erik, https://github.com/erdg/picolisp-osc If interested, more info about OSC can be found here: opensoundcontrol.org/introduction-osc opensoundcontrol.org/spec-1_0 I find the combination of sound picolisp very interesting, are you aware of SoundCollider and the Clojure Libraries Overtone and Leipzig (both on Github)? There are interesting videos on Youtube about making music with emacs/vim and clojure: , | 1. | Functional Composition - Chris Ford - YouTube | | www.youtube.com/watch?v=Mfsnlbd-4xQ8. Jan. 2013 - 39 Min. | ► - Hochgeladen von ClojureTV Music theory is one of the | 39:21 most naturally elegant and functional domains. It's a | perfect fit for ... | | 2. | Creating music with Clojure and Overtone - YouTube | | www.youtube.com/watch?v=RYZeQ6t_5SA23. Juli 2014 - 71 Min. | ► - Hochgeladen von Manchester Geek Nights Chris Ford shows | 70:50 how to make music with Clojure, starting with the basic | building block of ... ` And I noticed that you have another music related picolisp lib on github: , | 1. erdg/picolisp-aubio · GitHub | | https://github.com/erdg/picolisp-aubio ` I'm not so much interested in the technical (syntheziser) stuff but rather in the musical side of it, and I have a few questions: 1. How much would it take not to rewrite Overtone in PicoLisp but rather to define a handfull of musical instruments that can easily be used in a music creating PicoLisp program? I'm thinking of a basic rhythm section with a few rhythm instruments (maybe just a snare drum for creating swing and a Cajon and maybe Handclaps for creating Flamenco/World Music beats) and, most important, a (acoustic contra) bass. With some musical instruments available, one could take some inspiration from Overtone and Leipzig and maybe a python program like , | 1. MMA Home Page - Mellowood | | www.mellowood.ca/mma/ | | + Im Cache | + Ä hnliche Seiten | 13 Jun 2015 ... MMA-Musical MIDI Accompaniment is an | accompaniment generator. ... MMA's templating track system | puts you in control of your music. ` and create background tracks for practising in PicoLisp. I think that would be fun ;-) 2. How to use (picolisp-)aubio to get a score of what I play? Reading about Aubio, it seems that I could plugin my guitar into my computer, record some stuff, and the
Re: Open Sound Control
Erik Gustafson erik.d.gustaf...@gmail.com writes: Hi Erik, https://github.com/erdg/picolisp-osc If interested, more info about OSC can be found here: opensoundcontrol.org/introduction-osc opensoundcontrol.org/spec-1_0 I find the combination of sound picolisp very interesting, are you aware of SoundCollider and the Clojure Libraries Overtone and Leipzig (both on Github)? There are interesting videos on Youtube about making music with emacs/vim and clojure: , | 1. | Functional Composition - Chris Ford - YouTube | | www.youtube.com/watch?v=Mfsnlbd-4xQ8. Jan. 2013 - 39 Min. | ► - Hochgeladen von ClojureTV Music theory is one of the | 39:21 most naturally elegant and functional domains. It's a | perfect fit for ... | | 2. | Creating music with Clojure and Overtone - YouTube | | www.youtube.com/watch?v=RYZeQ6t_5SA23. Juli 2014 - 71 Min. | ► - Hochgeladen von Manchester Geek Nights Chris Ford shows | 70:50 how to make music with Clojure, starting with the basic | building block of ... ` And I noticed that you have another music related picolisp lib on github: , | 1. erdg/picolisp-aubio · GitHub | | https://github.com/erdg/picolisp-aubio ` I'm not so much interested in the technical (syntheziser) stuff but rather in the musical side of it, and I have a few questions: 1. How much would it take not to rewrite Overtone in PicoLisp but rather to define a handfull of musical instruments that can easily be used in a music creating PicoLisp program? I'm thinking of a basic rhythm section with a few rhythm instruments (maybe just a snare drum for creating swing and a Cajon and maybe Handclaps for creating Flamenco/World Music beats) and, most important, a (acoustic contra) bass. With some musical instruments available, one could take some inspiration from Overtone and Leipzig and maybe a python program like , | 1. MMA Home Page - Mellowood | | www.mellowood.ca/mma/ | | + Im Cache | + Ä hnliche Seiten | 13 Jun 2015 ... MMA-Musical MIDI Accompaniment is an | accompaniment generator. ... MMA's templating track system | puts you in control of your music. ` and create background tracks for practising in PicoLisp. I think that would be fun ;-) 2. How to use (picolisp-)aubio to get a score of what I play? Reading about Aubio, it seems that I could plugin my guitar into my computer, record some stuff, and the use Aubio to extract a midi score of what I played (and then use other programs to convert that midi score to conventional musical notation). , | 1. aubio, a library for audio labelling | | aubio.org/ | | + Im Cache | + Ä hnliche Seiten | aubio, a collection of algorithms and tools to extract | musical meaning from audio signals, such as tempo, pitch, and | onset. ` A fascinating perspective, but how to do that in practice? I tried to use aubio on mp3 and ogg files as input , | $ aubionotes --help | usage: aubionotes [ options ] |-i --inputinput file |-r --samplerate select samplerate |-B --bufsize set buffer size |-H --hopsize set hopsize |-O --onsetselect onset detection algorithm |-t --onset-threshold set onset detection threshold |-p --pitchselect pitch
Re: Open Sound Control
Hi Erik, Do you know if your library will work with 32-bit PicoLisp? I’m a Mac user, and 32-bit (and Ersatz) is the only PicoLisp version that I can use. I have no experience with OSC (Open Sound Control is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology), but I have played a little with MIDI music. At the moment I’m trying out Web Audio. /Jon On 25. jul. 2015, at 23.13, Erik Gustafson erik.d.gustaf...@gmail.commailto:erik.d.gustaf...@gmail.com wrote: Hi all, I'm working on my first PicoLisp library, native C bindings for Liblo. What I have so far, which is enough for the most basic use case, can be found at: https://github.com/erdg/picolisp-osc The file 'liblo.l' contains the direct ffi-bindings to the C library. I stole Alex Williams' idea of a rule-based solution from his 'picolisp-json' library; it's a great way to get up and running with C functions at the repl. From there, I decided to scoop it all up into the PicoLisp DB. The files 'server.l', 'address.l', and 'message.l' contain the code for this. They should probably be condensed into one file, 'osc.l', but that hasn't happened yet. You can follow along with a sample repl session in the README. Now I'm wondering if this is a worthwhile path to pursue. I like the idea of using the PicoLisp DB, as one could be able to query a bunch of OSC servers and their methods, keep a log of messages sent/received, etc., all from PicoLisp. But the whole thing could be terribly redundant as far as memory use is concerned(?), and because a lot of that functionality exists in the C library already. I'm still learning how PicoLisp and C work together. I'd love any feedback! Apologies in advance, it's all pretty rough right now... I've never written a library before, in any language, and this one is nowhere near complete. You'll need liblo installed prior, as I have no Makefile magic happening yet. If interested, more info about OSC can be found here: opensoundcontrol.org/introduction-oschttp://opensoundcontrol.org/introduction-osc opensoundcontrol.org/spec-1_0http://opensoundcontrol.org/spec-1_0 Many thanks!
Re: Open Sound Control
Hi Erik, Another question about methods, while we're on the topic... For most of my 'dm's the first argument is implied. For example, [dm message-add-int32 (N) ... ] is expected to be called with the message (external symbol) followed by the number to be added to the message. The message is then accessed by the '(: ptr)' in the body. Is this the right way to do it, or should I make it more explicit? Seemed to work as I was playing around with it, so I kept it, even though I don't fully understand why it works. As far as I understand it, this seems fine to me. In any case, experimenting with the various ways is the best. ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Open Sound Control
Hi Erik, I'm working on my first PicoLisp library, native C bindings for Liblo. What I have so far, which is enough for the most basic use case, can be found at: https://github.com/erdg/picolisp-osc Thanks for sharing this! Now I'm wondering if this is a worthwhile path to pursue. I like the idea of using the PicoLisp DB, as one could be able to query a bunch of OSC servers and their methods, keep a log of messages sent/received, etc., all from PicoLisp. But the whole thing could be terribly redundant as far as memory use is concerned(?) I think the memory use should not be a problem here. A small note about the places where you assign a value to 'ptr': (=: ptr (liblo~ffi ... This works, because 'ptr' is defined as a plain number property (rel ptr (+Number)) without any entity/relation side effects. But if you make, for example, an index later (rel ptr (+Ref +Number)) then it will break because the index will not be maintained when a value is assigned. So in general, you should use 'put' to assign properties to entities: (put This 'ptr (liblo~ffi ... ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Open Sound Control
Hi Jon, Do you know if your library will work with 32-bit PicoLisp? Unfortunately not, because it uses 'native' calls. As you know, for pil32 the library calls have to handled a little differently, using glue functions. I’m a Mac user, and 32-bit (and Ersatz) is the only PicoLisp version that I can use. It might work on 'emu'. We must just keep in mind that 'native' calls under emu cannot pass more than 6 arguments to a function. ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Open Sound Control
Alex, Thanks for sharing this! Of course! A small note about the places where you assign a value to 'ptr': (=: ptr (liblo~ffi ... This works, because 'ptr' is defined as a plain number property (rel ptr (+Number)) without any entity/relation side effects. But if you make, for example, an index later (rel ptr (+Ref +Number)) then it will break because the index will not be maintained when a value is assigned. So in general, you should use 'put' to assign properties to entities: (put This 'ptr (liblo~ffi ... Good to know! I'll make that change, as I'm sure '+Ref' and it's cousins will be helpful as I move beyond sending a single message to a single server on the same machine :) Another question about methods, while we're on the topic... For most of my 'dm's the first argument is implied. For example, [dm message-add-int32 (N) ... ] is expected to be called with the message (external symbol) followed by the number to be added to the message. The message is then accessed by the '(: ptr)' in the body. Is this the right way to do it, or should I make it more explicit? Seemed to work as I was playing around with it, so I kept it, even though I don't fully understand why it works. Thanks!