Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

This isn't a real metacircular evaluator. It's a total fucking hack.

  • Loading branch information...
commit 6b6e0a4fa97e4823cd1f9a290e84b0b683c0596a 1 parent 1979e63
@gilesbowkett authored
Showing with 36 additions and 0 deletions.
  1. +36 −0 lib/metacircular_evaluator.rb
View
36 lib/metacircular_evaluator.rb
@@ -0,0 +1,36 @@
+module Archaeopteryx
+ class MetacircularEvaluator
+ def initialize(file)
+ @file = file
+ reload
+ end
+ def reload
+ eval(File.read(@file))
+ end
+ def notes(beat)
+ reload
+ []
+ end
+ def mutate(measure)
+ end
+ end
+end
+
+# This class is not a real metacircular evaluator. This class abuses the looping framework of
+# Arx to enable tempo-changing with the minimum of effort. This is totally what people hate on
+# Rails programmers for, but fuck 'em.
+
+# After Burning Man I'm going to fix this. For now, the system is this: you set up a big Arx
+# with a MetacircularEvaluator periodically reloading a file. That file is a normal, traditional
+# Arx file, which sets up an Arx and points it at a drum definition file. (Notice the absurd
+# hackery.) So in addition to modifying the drum file live to change the drums the system plays,
+# you can also modify the file which invokes that process, to alter the tempo at which it happens.
+
+# Again, I'm only doing it this ridiculous, stupid way because Burning Man is in a few fucking
+# days and I promised one person this feature while promising somebody else harmony and melody,
+# which I have to code either tonight or tomorrow. It's definitely good that I've given up coffee,
+# I'm already running too much adrenaline.
+
+# On a related topic, none of the continuations code does anything, and I totally stopped using
+# all the fractals and Fibonacci shit. there's an element of pretentiousness here. I used to
+# consider that a feature but now I think of it as a bug and will fix it near-future.
Please sign in to comment.
Something went wrong with that request. Please try again.