added structures to routing

This commit is contained in:
Mustafa 2014-05-07 17:08:32 -07:00
parent 0441273b1b
commit 085bf3d1e9
3 changed files with 27 additions and 59 deletions

View file

@ -23,7 +23,11 @@ Oregano will have these concepts/objects:
## Functionality ## Functionality
- adding filters - adding filters to tracks
- ability to change filter parameters
- playing a note from an instrument on a track.
- load sound files into buffers, and play them using notes.
- create instruments

View file

@ -23,20 +23,32 @@ tracks:
|# |#
(define effects-list '())
(define num-tracks 8)
(define tracks (make-vector num-tracks '()))
;; returns the effect list for a given track
;; track-num is 1-based
(define (get-track-effects track-num)
(vector-ref tracks track-num))
;; adds an effect to the end of the effect chain of the given track ;; adds an effect to the end of the effect chain of the given track
(define (append-effect track-num effect-ugen) (define (append-effect track-num effect-ugen)
; TODO (define current-effects (get-track-effects track-num))
empty) (vector-set! tracks track-num
(append current-effects (list effect-ugen))))
(append-effect 3 'reverb)
(append-effect 3 'echo)
;; creates a ugen that is routed ;; creates a ugen that is routed
;; in-bus: input bus channel ;; in-bus: input bus channel
;; out-bus: output bus channel ;; out-bus: output bus channel
(define (make-effect-ugen effect-ugen in-bus out-bus) (define (make-effect-ugen effect-ugen in-bus out-bus)
; TODO ; TODO
empty) empty)
;; example effect ugen ;; example effect ugen
@ -44,10 +56,15 @@ tracks:
(mouse-y kr 0 1 0 0.1) (mouse-y kr 0 1 0 0.1)
0.5))) 0.5)))
(define (make-freeverb-with-in-out in-bus out-bus) #;(define (make-freeverb-with-in-out in-bus out-bus)
(out out-bus (free-verb (in 1 ar in-bus) 0.5 (out out-bus (free-verb (in 1 ar in-bus) 0.5
(mouse-y kr 0 1 0 0.1) (mouse-y kr 0 1 0 0.1)
0.5))) 0.5)))
;;(define freeverb-effect make-freeverb-with-in-out)

View file

@ -1,53 +0,0 @@
#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)))