tesla-vibro
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:
# Tesla Vibro Prosthetic and Clojure Client

This is a simple [Weavrs][weavrs] prosthetic and associated
[Clojure][clojure] client for interrogating Weavrs. We've targetted
Clojure because that gets us bridged to [MaxMSP][max] (via our
[net.loadbang][nlclojure] package) or into [Overtone][overtone]. The
prosthetic is designed to run inside the Philter Phactory [prosthetic
runner][runner] (a [Django-nonrel][djnr] application) and hence in
[Google App Engine][gae]; symlink its `prosthetic` directory into the
runner with name `tesla` so that the URL's in the Clojure test code
work.

The prosthetic itself has a pretty simple data model: a table of
Weavrs which we've seen (and which are registered to use the
prosthetic) and a table of locations that the Weavrs visit (actually,
just the `street_address` field at the moment). A new location is
added if the polled location from a Weavr changes from the last one
seen.

There's a bit of Django MVC machinery which lets us interrogate the
data store: we can list all the Weavrs we've seen, and for any Weavr
we can fetch its last known location. Both calls return a JSON
structure. The Clojure code uses an asynchronous HTTP client and a
JSON parser to unpack the result.

## Usage

### Clojure

This package loads most of what it needs from Maven repositories via
Leiningen, but there are one or two packages not in global repos, so
they need to be checked out of GitHub and built locally:

- Our [SoundCloud for Clojure][clojure-soundcloud] package: build and
  install this into the local repository via `lein install`

- [net.loadbang OSC library][net.loadbang.osc]: our Java OSC
  library. This needs to be built and (locally) installed via
  Maven. This library in turn has a dependency on `net.loadbang.lib`
  (see its `README` file).

There is one configuration file for the SoundCloud authentication: see
the `README.md` for that project for details.

## Notes

### 2012-05-11

We're no longer using Overtone, since it can't render non-realtime or
without a sound card. Accordingly, we've built a "pure" SuperCollider
program that runs as an OSC server, and send it high-level OSC
commands to sequence DTMF tones and control signals, and to render out
audio files (see directory `/sc/`).

### 2012-04-16

We're currently playing with feeding Weavr location strings into a
Morse code generator in Overtone (see `scratch.clj`), as a dry run for
synthesising real control signals for the prosthetic hardware. The
Morse generator is a separate [GitHub project][morse] and isn't in any
public repositories at the moment, so check out that project and do a
Leiningen install to get a local repository version to link
against. (The Morse isn't recorded to disk; we do have some
disk-recording code but need to hack the Morse generator's ugens a
little to make buffer capture work.)

[weavrs]: http://www.weavrs.com
[clojure]: http://clojure.org
[clojure-soundcloud]: https://github.com/cassiel/clojure-soundcloud
[net.loadbang.osc]: https://github.com/cassiel/net.loadbang.osc
[max]: http://cycling74.com/products/max/
[overtone]: http://overtone.github.com/
[nlclojure]: https://github.com/cassiel/net.loadbang.clojure
[runner]: https://github.com/philterphactory/prosthetic-runner
[djnr]: http://www.allbuttonspressed.com/projects/django-nonrel
[gae]: https://developers.google.com/appengine/
[morse]: https://github.com/cassiel/overtone-morse

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。