bobbi-lisp-audio
Audio engine for bobbi-lisp based on the Web Audio API
API
playSong
-> (notes, tempo)
notes
notes
is a vector of maps which must have the following keys:
instrument
: The audio sample file to be played.
pitch
: A midi number, an integer representing the frequency. Middle C is 60.
time
: The beat number at which the note is to occur.
tempo
Tempo is an integer representing the number of beats per minute.
Example
This would play a major scale:
[{:instrument "1.mp3" :pitch 60 :time 0}
{:instrument "1.mp3" :pitch 62 :time 1}
{:instrument "1.mp3" :pitch 64 :time 2}
{:instrument "1.mp3" :pitch 65 :time 3}
{:instrument "1.mp3" :pitch 67 :time 4}
{:instrument "1.mp3" :pitch 69 :time 5}
{:instrument "1.mp3" :pitch 71 :time 6}
{:instrument "1.mp3" :pitch 72 :time 7}]
Of course it would be very tedious to write music that way. Fortunately we have all the power of function composition to generate them. See demo.clj for a complete arrangement, and SimLispy for an example of how to use it in your project. Visit https://www.youtube.com/watch?v=giPlacLrC5g to see and hear it if you are so able.