gogins / csound-extended

Extensions for Csound including algorithmic composition, Android app, and WebAssembly.
GNU Lesser General Public License v2.1
40 stars 1 forks source link

Port Silencio to Common Lisp #60

Closed gogins closed 5 years ago

gogins commented 6 years ago

I think this would be just the chord space code. See https://github.com/rigetticomputing/magicl and others.

gogins commented 5 years ago

Another motive for doing this would be sharing this code with the Common Music and OpenMusic communities,

gogins commented 5 years ago

To do this I must identify the best linear algebra, or at least matrix arithmetic, package for Common Lisp that has an open source license. From CLiki:

gogins commented 5 years ago

Googling for best linear algebra for Common Lisp. Not much there except a plug for Clasp on Reddit.

So far, GSLL looks best but it is GPL.

Spartns is just the tensors themselves, no math routines.

So far, magicl looks best. I will start with that. Oops, no help, needs to build and install expokit using Fortran...

gogins commented 5 years ago

I have installed the CL REPL app for Android, which is based on Embeddable Common Lisp. I think this shows I can add nudruz to the Csound for Android app, or write a new app. Source code is here and the license (unfortunately) is GPL v3. ECL itself is LGPL 2.1+.

gogins commented 5 years ago

So the tasks are roughly:

  1. Create a silencio system for Common Lisp.
  2. Add linear algebra to silencio.
  3. Add RIFS code to silencio (easy).
  4. Add music graphs to silencio, really just the framework (easy).
  5. Port ChordSpace to silencio (not so easy, needs good unit tests).
  6. New hosts:
    1. Don't need a new host for Linux, text editor support is fine.
    2. Add ECL, nudruz, and silencio to csound.node.
    3. New Android host like the Csound for Android app but with ECL, nudruz, and silencio built in, and with only HTML5 support for user interfaces.
gogins commented 5 years ago

Removed inapplicable, non open source, non maintained, and non-ECL libraries:

gogins commented 5 years ago

The above list, evaluated as to maintenance, ECL support, math support, and pure Lisp implementation. Clearly, I will have to run some of the tests or examples in ECL.

gogins commented 5 years ago

Please note weyl. This is a "Common Lisp computer algebra substrate" that looks pretty complete.

gogins commented 5 years ago

Too many ways of doing the same thing on computers!... I could do all this in C++ and compile to WASM to run in HTML5. The killer is redoing all the composing algorithms. Could I get them in C++?

gogins commented 5 years ago

Oh wait, Maxima can be used from Lisp as a library. Note sure yet how this actually works but see http://maxima.sourceforge.net/lisp.html. There is Maxima for Android.

I'm worried this is another Lisp-y "not quite baked yet" story.

gogins commented 5 years ago

Right now there is no Common Lisp for Android or WebAssembly. I am closing this issue until there is.