diff --git a/oregano/TODO.md b/oregano/TODO.md new file mode 100644 index 0000000..81e1b32 --- /dev/null +++ b/oregano/TODO.md @@ -0,0 +1,29 @@ + + + + + +## Interface + + + +### DAW-like model + +Oregano will have these concepts/objects: + + +- track: like a "track" in renoise. can have notes, and a list of effects. + + +- instrument: instrument defenitions or presets, and actual instantiated instruments. + - I should make some instrument presets, like sine, saw, square, triangle waves. + +- filters: can be added to tracks. e.g. reverb, low pass filter. + + +## Functionality + +- adding filters + + + diff --git a/oregano/routing.rkt b/oregano/routing.rkt new file mode 100644 index 0000000..5b3308d --- /dev/null +++ b/oregano/routing.rkt @@ -0,0 +1,53 @@ +#lang racket + +#| +tracks: + +0 - output left speaker +1 - output right speaker +3 - first track + +## example usage + +; add reverb to track 3 +(append-effect track3 (reverb-effect 0.5 0.9)) + +(append-effect track3 (reverb-effect 0.5 0.9)) + +; done internally: +; (process-track 3) + +(define my-piano (make-instrument "piano")) + +(note-on my-piano C#3 track3) + +|# + +(define effects-list '()) + + + +;; adds an effect to the end of the effect chain of the given track +(define (append-effect track-num effect-ugen) + ; TODO + empty) + +;; creates a ugen that is routed +;; in-bus: input bus channel +;; out-bus: output bus channel +(define (make-effect-ugen effect-ugen in-bus out-bus) + ; TODO + empty) + +;; example effect ugen +#;(audition (out 0 (free-verb (in 1 ar 16) 0.5 + (mouse-y kr 0 1 0 0.1) + 0.5))) + +(define (make-freeverb-with-in-out in-bus out-bus) + (out out-bus (free-verb (in 1 ar in-bus) 0.5 + (mouse-y kr 0 1 0 0.1) + 0.5))) + + +