A ClojureScript library wrapping some of the HTML5 Web Audio API functions to create audio, synthesizers, and maybe someday music.
Hum is now known to work on both Webkit and Firefox browsers.
Check out a simple synth demo and code that was used to make it: http://blog.mattgauger.com/hum
Add this to your requires in project.clj
:
[hum "0.4.0"]
Here's an example:
(ns myapp.core
(:require [hum.core :as hum])
(def ctx (hum/create-context))
(def vco (hum/create-osc ctx :sawtooth))
(def vcf (hum/create-biquad-filter ctx))
(def output (hum/create-gain ctx))
; connect the VCO to the VCF and on to the output gain node
(hum/connect vco vcf output)
(hum/start-osc vco)
(hum/connect-output output)
(hum/note-on output vco 440)
If you are using hum
in your app, I'd love to hear about it. If you want to suggest functionality, then please submit an Issue, or even better, a Pull Request! I'd like to build up an API of functions that people find useful for making music and software instruments, but I'll need your help to get there. Thanks in advance!
Copyright © 2013 Matt Gauger.
Distributed under the Eclipse Public License version 1.0 or (at your option) any later version.