-
Notifications
You must be signed in to change notification settings - Fork 3
Basics
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
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
- Generators
- Logic
- Conditions: == != < <= > >=
- Operators: ! && || XOR
- List
- Unary operators
- max / min / avg / stddev
- Binary operators
-
-
-
- /
-
-
- max / min / clamp
- dotproduct
- sum
-
- Expression
- Unary operators
- 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
- 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)
- 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)
- StructType (together with associated gears) (to avoid confusion this is a "map" type in the sense of the std::map)
- (later) FunctionType (lambda-calculus)