Skip to content
sofian edited this page Jan 17, 2013 · 1 revision

I would like to make the list of the basic gears and features that are missing in Drone (and to classify them). I will do this by browsing through the:

  • our old wiki
  • PtolemyII
  • Isadora
  • Quartz composer
  • Puredata

Gears

OSC:

  • "OscExtract" (or a better name) Takes an osc message as an input and outputs the path and arguments as a list

Frei0r:

  • Make GearFrei0r work again

Math:

  • Values
    • Generators
      • Random (uniform, normal, poisson, bernouilli, white noise, pink noise, etc) (cf. PtolemyII has a bunch of Random gears)
    • Unary operators
      • stateless
      • -x
      • trigonometric (sin, cos, tan, etc...)
      • exp, pow, log, sqrt, sign, etc.
      • time-based (moving):
      • moving max / min
      • moving avg (exponential)
      • moving diff (difference between current input and last)
      • accumulator (computes the sum / avg / stddev of received inputs, with a reset input to reset it)
    • Binary operators
            • /
      • max / min / clamp
    • Expression
  • Logic
    • Conditions: == != < <= > >=
    • Operators: ! && || XOR
  • List
    • Unary operators
      • max / min / avg / stddev
    • Binary operators
            • /
      • max / min / clamp
      • dotproduct
      • sum
    • Expression
  • Control
    • For
    • Gate
    • Select (or switch)

Visualisation:

  • Oscilloscope: converts signal into video
  • FFT display: converts signal into spectrum bands / possibly two gears: fft -> array2histogram ( -> videooutput)

Time:

  • Clock: current time / program time / metagear time
  • Sleep: Interrupts stream for a given time upon activation

Features

  • Dynamic plug in / plug out: In some cases you want to have a property that influences the number and types of plugs.
    • This is the case of (for example) the list pack/unpack gears.
    • There are issues though: for example what happens if a property removes a plug that was plugged into? (it could just remove the link, at least as a first step)
  • (later) Real-time audio processing (with associated gears for sound generation and playback)
  • (later) More tunable mechanism for schedulers (each gear could have a scheduler, with video/audio by default but the possibility to configure and add other schedulers easily)

Bugfixes

  • The mechanism for sleeping() plugs is not 100% working
    • First of all there's a bug: sleeping(false) is not propagated instantaneuously from runVideo() (if you set a plug to sleeping(false) in runVideo whereas it was sleeping(true) before, the following gear won't execute until at the next loop)

Types

  • StructType (together with associated gears) (to avoid confusion this is a "map" type in the sense of the std::map)
  • (later) FunctionType (lambda-calculus)