Re: Open Sound Control

2015-07-31 Thread Robert Herman
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

2015-07-30 Thread Robert Herman
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

2015-07-30 Thread Thorsten Jolitz
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

2015-07-29 Thread Thorsten Jolitz
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

2015-07-26 Thread Jon Kleiser
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

2015-07-26 Thread Alexander Burger
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

2015-07-26 Thread Alexander Burger
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

2015-07-26 Thread Alexander Burger
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

2015-07-26 Thread Erik Gustafson
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!