added structures to routing
This commit is contained in:
parent
0441273b1b
commit
085bf3d1e9
3 changed files with 27 additions and 59 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue