Notes & Code as I attempt to figure out overtone.
Clojure JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test/explore_overtone/test
.gitignore
README
project.clj

README

# explore_overtone

Just exploring overtone and taking some notes.  Mainly for me to be
able to come back & figure this out if I ever get distracted by other
things.

## Usage

Use at your own risk.  Most files are meant to be used standalone via
the REPL.  Overtone is a dynamic project and sometimes older code may
not work any more.  Let me know if you have any questions.

## License

Copyright (C) 2012 Roger Allen.

Distributed under the Eclipse Public License, the same as Clojure.

# Results so far...

There are more half-baked ideas in the repo, but these are some of the highlights.

* Monotron clone

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/monotron.clj

  Makes somewhat interesting electronic beeps and also can be
  controlled via TouchOSC iPad/Android App.

* Guitar

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/guitar.clj

  A derivative of this code has found its way into Overtone!  See
  https://github.com/overtone/overtone/blob/master/src/overtone/synth/stringed.clj

* Ambient Piano via Pi

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/irrational_infinite_song.clj

  Further explorations on this theme are being developed here https://github.com/rogerallen/irso

* Drawing a random Maze & using it to create a composition.

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/maze.clj

  Maze code from "Clojure Programming" Chapter 3.

* Drawing sequences with Quil, playing them with Overtone

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/quil_display.clj

* A Variable-Rate Metronome

  Who would have thought that musical tempo involved calculus & differential equations?

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/my_rhythm.clj

* A bit of "Take 5" to see how the piano & cello sound from oversampler.

  https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/take5.clj

# Questions & Answers

For questions about Overtone, etc. that need code and confused me at the beginning, see:
https://github.com/rogerallen/explore_overtone/blob/master/src/explore_overtone/qna.clj

I'll write down questions as I think of them.  Answers as I get to them.

* where to understand the basics of Clojure?

  http://dev.clojure.org/display/doc/Getting+Started+for+Beginners

  Nice intro for me:
  http://moxleystratton.com/clojure/clojure-tutorial-for-the-non-lisp-programmer

  Looks like a nice, more detailed resource:
  http://java.ociweb.com/mark/clojure/article.html

  I've got the O'Reilly book "Programming Clojure" on the way...

  UPDATE: found a bug!  See https://github.com/clojurebook/ClojureProgramming/issues/7

* how do I get a standalone SuperCollider for server mode?

  overtone.live is fine to start with, but eventually you'll want
  more/better ugens.

  download from http://supercollider.sourceforge.net/downloads/
  1) main app -- install normally
  2) extra plugins -- apparently on the mac it goes to...
     ~/Library/Application Support/SuperCollider/Extensions/

* how do I increase SuperCollider's memory allocation?

See https://groups.google.com/forum/?fromgroups#!topic/overtone/n0zzgY4Z2Vo

Jeff Rose suggests: it is running out of real-time allocated RAM.  (It
looks like the default amount of RAM is really low, only 8 megs or
so...)  Inside an SC window I ran this:

s.quit;
s.options.memSize = 655360;  // e.g., could be different for you
s.boot;

* other resources to look at:

  Supercollider Links

  http://sccode.org/
  http://www.freesound.org/
  http://theremin.music.uiowa.edu/

  Abc4j?

  http://code.google.com/p/abc4j/ for display of notes?

  Impromptu?

  Found this http://impromptu.moso.com.au/tutorials.html
  what's the difference?

  Haskell School of Music

  http://haskell.cs.yale.edu/?page_id=276

* how do I try the latest code?

  Just clone the github project & use lein...

  git clone git://github.com/overtone/overtone.git
  cd overtone
  lein deps
  lein repl

  (use 'overtone.live)
  (definst foo [] (saw 220))
  (foo)

  You can also fork the code & use that.  Follow github instructions
  on forking and setting your upstream properly.  Then

  git fetch upstream
  git merge upstream/master

* how do I use the latest code in my own project?

  cd ...local path to your.../overtone
  git fetch upstream
  git merge upstream/master

  You need to update the jar file for use locally.
  lein clean
  lein deps
  lein install
    ...
    Created .../overtone/overtone/overtone-0.X.X-SNAPSHOT.jar
    (where 0.X.X is a placeholder for the latest version)

  cd .../explore_overtone/
  edit project.clj to use the "0.X.X-SNAPSHOT" version

  Afterwards, just use lein normally.
  lein clean
  lein deps
  lein repl