/README.md

https://github.com/LaPingvino/overtone · Markdown · 115 lines · 78 code · 37 blank · 0 comment · 0 complexity · 5657d0d86d0fff6d48b866bced9032b8 MD5 · raw file

  1. Overtone
  2. ==============
  3. #### Live-coding and musical exploration
  4. Overtone is a Clojure based musical generation and manipulation system for live-coding and more.
  5. ### Project Info:
  6. #### Source Repository
  7. Downloads and the source repository can be found on GitHub:
  8. http://github.com/rosejn/overtone
  9. The project is 100% open source and free, and contributions of code,
  10. documentation, feedback, thoughts and ideas are welcome. Clone the repository on GitHub to get
  11. started, and if you are ready to submit a patch fork your own copy and then do a pull request.
  12. Make sure to jump onto the mailing list before getting started so we don't duplicate our efforts.
  13. #### Mailing List
  14. If you are looking for some help or you are interested in joining in the
  15. project, start by joining the
  16. <a href="http://groups.google.com/group/overtone">mailing list</a>.
  17. ### Ubuntu Quick Setup:
  18. sudo apt-get install supercollider-server jack-tools ant sun-java6-jdk
  19. Download jdk zip file and put in correct location...
  20. Download and install leiningen wherever you local executables go:
  21. wget http://github.com/technomancy/leiningen/raw/stable/bin/lein
  22. chmod u+x lein
  23. mv lein ~/bin
  24. lein self-install
  25. Now get Overtone and its submodules:
  26. git clone git://github.com/rosejn/overtone.git
  27. cd overtone
  28. git submodule init
  29. git submodule update
  30. lein deps
  31. ;; In Linux start by just using Jack with Alsa and the default settings, but if you get
  32. ;; serious you'll want to read up on tuning jack to minimize audio latency
  33. ;; and get realtime scheduling of audio threads. This shouldn't be
  34. ;; necessary for Windows or Mac.
  35. ./script/start.sh
  36. ./script/repl
  37. (use 'overtone.live)
  38. (refer-ugens)
  39. (boot)
  40. (synth (sin-osc 440)) ; define an anonymous synth
  41. (*1) ; play it... returns a node-id
  42. (kill <node-id>) ; put the number returned from above
  43. ;; Define a simple synth with a saw wave that has
  44. ;; a vibrato effect and a percussive style envelope.
  45. (defsynth foo [freq 220, lfo 8, depth 20,
  46. rise 0.05, fall 0.6]
  47. (* (env-gen (perc rise fall) 1 1 0 1 :free)
  48. (saw (+ freq (* 10 (sin-osc:kr lfo))))))
  49. ; Call with none or some arguments and it uses the defaults
  50. (foo)
  51. (foo 220)
  52. (foo 220 10)
  53. ; Or call with keyword style args
  54. (foo :rise 0.1 :fall 2.0)
  55. (quit)
  56. ### General Setup:
  57. Install:
  58. * Super Collider (http://supercollider.sourceforge.net/)
  59. - Make sure it's available on your path.
  60. * Java 6 JDK
  61. * Leiningen
  62. * Linux users will need a working Jackd setup, as well as the jack\_lsp, and
  63. jack\_connect utilities (jack-tools package in Ubuntu).
  64. Beyond those requirements, you can run "ant deps" to retrieve the necessary jar
  65. files, which are currently about 5 megs. The footprint will go down
  66. substantially soon though.
  67. At this point you have enough to write musical scripts and make noise, but you
  68. won't be able to do any livecoding unless you have an interactive Clojure
  69. environment setup. I use the vimclojure plugin for vim, but it should be
  70. possible to use emacs and slime, or netbeans and enclojure, or eclipse, or
  71. whatever else as long as you can evaluate clojure expressions inside the
  72. editor.
  73. ### Contributors
  74. * Jeff Rose
  75. * Jon Rose
  76. * Sam Aaron
  77. * Fabian Aussems
  78. * Christophe McKeon