Work-in-progress repo for ambisonics extensions for OM-SoX
5 files added
2 files modified
210 ■■■■ changed files
examples/support/input-combiners/sox-hoaencode continuous.omp 6 ●●●●● patch | view | raw | blame | history
examples/support/input-combiners/sox-hoaencode.omp 6 ●●●●● patch | view | raw | blame | history
examples/support/input-combiners/sox-pan continuous.omp 6 ●●●●● patch | view | raw | blame | history
examples/support/input-combiners/sox-pan.omp 6 ●●●●● patch | view | raw | blame | history
resources/sounds/clarinet-multi-mono.aif patch | view | raw | blame | history
sources/classes/sox-hoaencode.lisp 12 ●●●●● patch | view | raw | blame | history
sources/sox-process.lisp 174 ●●●● patch | view | raw | blame | history
examples/support/input-combiners/sox-hoaencode continuous.omp
New file
@@ -0,0 +1,6 @@
; OM File Header - Saved 2025/03/01 02:47:01
; (7.05 :patc (om-make-point 305 651) (om-make-point -1129 281) (om-make-point 690 838) "" 183 0 "2025/03/01 02:30:07" "2025/03/01 02:47:01")
; End File Header
; External resources
; (list (list (quote :picture) "#P\"../../../../resources/pict/omsox\"") (list (quote :sound) "#P\"../../../../../../../../../../../../../Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif\""))
(in-package :om)(load-lib-for (quote ("OM-SoX")))(setf *om-current-persistent* (om-load-patch1 "sox-hoaencode continuous" (quote ((let ((box (om-load-boxcall (quote abstraction) "+ele" (om-load-patch-abs1 "+ele" (quote ((let ((box (om-load-boxout "output" 0 (om-make-point 143 128) (quote ((om-load-inputfun (quote input-funbox) "" "out" nil))) nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxin "input" 0 (om-make-point 199 50) "" nil nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 6" (quote t) (quote nil) (om-make-point 56 158) (om-make-point 27 30) 0 "0" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "MAPCAR" (quote mapcar) (quote ((om-load-inputfun (quote input-funbox) "FUNCTION" "FUNCTION" nil) (om-load-inputfun (quote input-funbox) "LIST" "LIST" nil))) (om-make-point 61 244) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "LIST" (quote list) (quote ((om-load-inputfun (quote input-funbox) "add-input" "add-input" nil) (om-load-inputfun (quote input-funbox) "add-input" "add-input" 0))) (om-make-point 50 194) nil nil "l" nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((3 0 0 0 nil 0) (4 0 3 0 nil 0) (1 0 3 1 nil 0) (2 0 4 1 nil 0))) 7.05 nil "" (om-make-point 200 200) (om-make-point 324 369)) (quote ((om-load-inputfun (quote input-funbox) "" "input" nil))) (om-make-point 704/3 842/3) nil (list (list (list 0 0) (list 45 0) (list 90 0) (list 135 0) (list 180 0) (list 225 0) (list 270 0) (list 315 0) (list 360 0))) nil "+ele"))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "/" (quote /) (quote ((om-load-inputfun (quote input-funbox) "NUM" "NUM" nil) (om-load-inputfun (quote input-funbox) "add-input" "add-input" nil))) (om-make-point 331 218) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 5" (quote t) (quote nil) (om-make-point 274 185) (om-make-point 34 30) 45 "45" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 2" (quote t) (quote nil) (om-make-point 215 153) (om-make-point 27 30) 0 "0" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 4" (quote t) (quote nil) (om-make-point 173 182) (om-make-point 27 30) 3 "3" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-HOAENCODE" (quote sox-hoaencode) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Positions as 3dc object, or list of azimuth+elevation values, or list of x+y+z coordinates. [3dc, list]" "positions" (list 0 0)) (om-load-inputfun (quote input-funbox) "Ambisonics order. [int]" "order" 3))) (om-make-point 109 211) (om-make-point 70 50) (if (find-class (quote sox-hoaencode) nil) (make-instance (quote sox-hoaencode) :sound nil :positions (list 0 0) :order 3 :from-file t)) "l" nil (pairlis (quote (winsize winpos)) (list (om-make-point 104 150) (om-make-point 10 40))) nil nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 141 34) (quote "SoX-HOAENCODE") "" (om-make-point 144 11) nil (om-make-color 0.0 0.0 0.0) (om-make-font "Verdana" 14.0 :family "Verdana" :style (quote (:plain)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 74 39) (quote "from-to$in degrees") "" (om-make-point 299 146) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 11.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "MAPCAR" (quote mapcar) (quote ((om-load-inputfun (quote input-funbox) "FUNCTION" "FUNCTION" nil) (om-load-inputfun (quote input-funbox) "LIST" "LIST" nil))) (om-make-point 363 350) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote abstraction) "trim+fade+pad" (om-load-patch-abs1 "trim+fade+pad" (quote ((let ((box (om-load-boxcall (quote genfun) "SOX-PAD" (quote sox-pad) (quote ((om-load-inputfun (quote input-funbox) "duration of silence/zero-padding (if float in seconds, otherwise in samples)" "DURATION" nil))) (om-make-point 342 258) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux" (quote t) (quote nil) (om-make-point 436 179) (om-make-point 38 30) 0.5 "0.5" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "*" (quote *) (quote ((om-load-inputfun (quote input-funbox) "add-input" "add-input" nil) (om-load-inputfun (quote input-funbox) "add-input" "add-input" nil))) (om-make-point 424 209) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 187 26) (quote "asymetrical fades are possible!") "" (om-make-point 321 88) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 11.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 2" (quote t) (quote nil) (om-make-point 307 56) (om-make-point 38 30) 0.5 "0.5" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM*" (quote om*) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" 0) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 0))) (om-make-point 297 86) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxin "duration" 1 (om-make-point 220 11) "" "duration" nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "X-APPEND" (quote x-append) (quote ((om-load-inputfun (quote input-funbox) "first element" "L1?" nil) (om-load-inputfun (quote input-funbox) "second element" "L2?" nil))) (om-make-point 82 181) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM+" (quote om+) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" nil) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 0.2))) (om-make-point 147 147) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxout "output" 0 (om-make-point 141 355) (quote ((om-load-inputfun (quote input-funbox) "" "out" nil))) nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-FADE" (quote sox-fade) (quote ((om-load-inputfun (quote input-funbox) "fadein-length (in secs). Optionally <sound> object." "SOUNDFILE" 1) (om-load-inputfun (quote input-funbox) "fadeout-length (in secs)" "FADEOUT-LENGTH" 1) (om-load-inputfun (quote input-funbox) "stoptime (in secs). if 0 = duration of soundfile)" "STOPTIME" 0) (om-load-inputkeyword (quote input-keyword) "fade-type (logarithmic/parabola/quarter-sine/half-sine/linear)" "type" (quote :type) "p" (list (list "logarithmic" "l") (list "parabola" "p") (list "quarter sinewave" "q") (list "half sinewave" "h") (list "linear" "t"))) (om-load-inputkeyword (quote input-keyword) "Append sox-effects/statistics to the processing chain." "sox-append" (quote :sox-append) nil nil))) (om-make-point 240 167) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-TRIM" (quote sox-trim) (quote ((om-load-inputfun (quote input-funbox) "start (number in secs), or start and end (list of 'start' and 'end' point (in secs)" "START-AND-END" nil) (om-load-inputkeyword (quote input-keyword) "Append sox-effects/statistics to the processing chain." "sox-append" (quote :sox-append) nil nil) (om-load-inputkeyword (quote input-keyword) "specify time in seconds or samples" "unit" (quote :unit) "seconds" (list (list "seconds" "seconds") (list "samples" "samples"))))) (om-make-point 137 268) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxin "input" 0 (om-make-point 86 11) "" nil nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((2 0 0 0 nil 0) (12 0 2 0 nil 0) (1 0 2 1 nil 0) (6 0 5 0 nil 0) (4 0 5 1 nil 0) (12 0 7 0 nil 0) (8 0 7 1 nil 0) (12 0 8 0 nil 0) (6 0 8 1 nil 0) (11 0 9 0 nil 0) (5 0 10 0 nil 0) (5 0 10 1 nil 0) (0 0 10 4 nil 0) (7 0 11 0 nil 0) (10 0 11 1 nil 0))) 7.05 nil "" (om-make-point 200 200) (om-make-point 620 527)) (quote ((om-load-inputfun (quote input-funbox) "" "input" nil) (om-load-inputfun (quote input-funbox) "" "input 2" nil))) (om-make-point 314 277) nil (list nil) "l" "trim+fade+pad"))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "ARITHM-SER" (quote arithm-ser) (quote ((om-load-inputfun (quote input-funbox) "begin" "BEGIN" 0) (om-load-inputfun (quote input-funbox) "end " "END" 10) (om-load-inputfun (quote input-funbox) "step" "STEP" 1))) (om-make-point 428 275) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM/" (quote om/) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" 1) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 8))) (om-make-point 396 238) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "SOX-SOUND-DURATION" (quote sox-sound-duration) (quote ((om-load-inputfun (quote input-funbox) "SELF" "SELF" nil))) (om-make-point 404 149) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 340 32) (quote "Circular horizontal panning using SoX-Hoaencode") "" (om-make-point 146 36) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 13.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-NORMALIZE" (quote sox-normalize) (quote nil) (om-make-point 370 480) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 311 680) (om-make-point 80 50) (let ((newobj nil)) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "") (set-tonalite newobj nil) newobj) nil nil (pairlis (quote (measure onset scale show-stems notechancolor? cmnpref obj-mode deltapict :show-spectrum show-spectrum winpos winsize mode grillestep zoom player inport outport)) (list nil nil nil (quote t) nil (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) 0 (om-make-point 0 0) (quote t) nil (om-make-point 400 38) (om-make-point 1328 809) 0 nil 1 (quote :soxplayer) nil nil)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS 2" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "" "SOX-INPUT" nil) (om-load-inputfun (quote input-funbox) "" "SOX-EFFECT" "") (om-load-inputkeyword (quote input-keyword) "Output type (new file, replace file, pipe, or realtime) [string]. Also accepts directory, filename, filepath [path]" "output" (quote :output) "pipe" (list (list "new file" nil) (list "replace file" "replace file") (list "pipe" "pipe") (list "realtime" "realtime"))))) (om-make-point 221 397) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "" "SOX-INPUT" nil) (om-load-inputfun (quote input-funbox) "" "SOX-EFFECT" "") (om-load-inputkeyword (quote input-keyword) "Output type (new file, replace file, pipe, or realtime) [string]. Also accepts directory, filename, filepath [path]" "output" (quote :output) nil (list (list "new file" nil) (list "replace file" "replace file") (list "pipe" "pipe") (list "realtime" "realtime"))) (om-load-inputkeyword (quote input-keyword) "Filetype of produced audio [string]" "filetype" (quote :filetype) "aif" (list (list "aif" "aif") (list "wav" "wav") (list "flac" "flac") (list "ogg" "ogg"))))) (om-make-point 296 588) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "ARITHM-SER 2" (quote arithm-ser) (quote ((om-load-inputfun (quote input-funbox) "begin" "BEGIN" 1) (om-load-inputfun (quote input-funbox) "end " "END" 14) (om-load-inputfun (quote input-funbox) "step" "STEP" 1))) (om-make-point 231 216) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "MAPCAR" (quote mapcar) (quote ((om-load-inputfun (quote input-funbox) "FUNCTION" "FUNCTION" nil) (om-load-inputfun (quote input-funbox) "LIST" "LIST" nil))) (om-make-point 140 294) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "clarinet-multi-mono.aif" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 95 87) (om-make-point 80 50) (let ((newobj (let ((thesound (load-sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device nil :host nil :name "clarinet-multi-mono" :type "aif") 0 1.0 0))) (when thesound (setf (markers thesound) (quote nil))) thesound))) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "clarinet-multi-mono.aif") (set-tonalite newobj nil) newobj) "x" nil (pairlis (quote (measure onset :show-spectrum approx fontsize staff cmnpref deltapict outport inport player zoom notechancolor? grillestep mode winsize winpos score-mode obj-mode show-stems scale palette-mode)) (list nil nil (quote t) 2 24 (quote g) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (om-make-point 0 0) nil 0 (quote :soxplayer) 1 nil 1000 0 (om-make-point 540 306) (om-make-point 400 23) 0 1 (quote t) nil 0)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 3" (quote t) (quote nil) (om-make-point 251 153) (om-make-point 41 30) 360 "360" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-MIX" (quote sox-mix) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Gain value for audio input before processing (dB). [float, list]" "gains" nil))) (om-make-point 220 517) (om-make-point 70 50) (if (find-class (quote sox-mix) nil) (make-instance (quote sox-mix) :sound (list "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.61237246 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.7905694 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 0 0.8865278   fade p 0.4432639 0 0.4432639   pad 0.0 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v5.3028763E-17 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 0.8865278 0.8865278   fade p 0.4432639 0 0.4432639   pad 0.4432639 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v6.123234E-17 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.06057525E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.7905694 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.61237246 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-3.7496997E-17 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.4522524E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 1.7730556 0.8865278   fade p 0.4432639 0 0.4432639   pad 0.8865278 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.5908629E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 2.6595834 0.8865278   fade p 0.4432639 0 0.4432639   pad 1.3297917 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.2246469E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v2.1211505E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-2.9045048E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v7.4993994E-17 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.61237246 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.7905694 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 3.546111 0.886528   fade p 0.4432639 0 0.4432639   pad 1.7730556 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v2.651438E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 4.432639 0.886528   fade p 0.4432639 0 0.4432639   pad 2.2163196 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-1.8369702E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-3.1817258E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.7905694 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.61237246 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v1.1249099E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v4.3567574E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 5.319167 0.886528   fade p 0.4432639 0 0.4432639   pad 2.6595836 " "| '/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  -M -v1.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.70710677 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.8660254 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.5 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-3.7120134E-16 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.43301272 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.0 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' -v-0.559017 '/Users/Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif' '-p' trim 6.205695 0.886528   fade p 0.4432639 0 0.4432639   pad 3.1028476 ") :gains (list 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0) :from-file t)) nil nil (pairlis (quote (winsize winpos)) (list (om-make-point 818 150) (om-make-point 250 327))) nil nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((18 0 0 0 nil 0) (21 0 1 0 nil 0) (2 0 1 1 nil 0) (20 0 5 1 nil 0) (4 0 5 3 nil 0) (9 0 8 0 nil 0) (10 0 8 1 nil 0) (11 0 9 1 nil 0) (12 0 10 1 nil 0) (11 0 10 2 nil 0) (12 0 11 0 nil 0) (1 0 11 1 nil 0) (20 0 12 0 nil 0) (17 0 15 0 nil 0) (19 0 16 0 nil 0) (8 0 16 1 nil 0) (22 0 17 0 nil 0) (14 0 17 1 nil 0) (3 0 18 0 nil 0) (21 0 18 1 nil 0) (2 0 18 2 nil 0) (5 0 19 0 nil 0) (0 0 19 1 nil 0) (16 0 22 1 nil 0))) (list (let ((newpict (make-instance (quote patch-picture) :name "omsox" :source (quote user) :pict-pathname (restore-pict-path (restore-path nil)) :thepict (om-get-picture "omsox" (quote user)) :storemode :external :draw-params (quote (p 0 0 100 100)) :extraobjs nil))) (setf (pict-pos newpict) (om-make-point 75 14)) (setf (pict-size newpict) (om-make-point 63 47)) newpict)) 7.05))
examples/support/input-combiners/sox-hoaencode.omp
New file
@@ -0,0 +1,6 @@
; OM File Header - Saved 2025/03/01 02:41:41
; (7.05 :patc (om-make-point 238 218) (om-make-point 480 81) (om-make-point 928 591) "" 183 0 "2025/03/01 02:15:44" "2025/03/01 02:41:41")
; End File Header
; External resources
; (list (list (quote :picture) "#P\"../../../../resources/pict/omsox\"") (list (quote :sound) "#P\"../../../../../../../../../../../../../Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif\"") (list (quote :abstraction) "#P\"sox-hoaencode continuous.omp\""))
(in-package :om)(load-lib-for (quote ("OM-SoX")))(setf *om-current-persistent* (om-load-patch1 "sox-hoaencode" (quote ((let ((box (om-load-boxcall (quote patch-box) "sox-hoaencode continuous" (quote ("elements" "OM-SoX-tutorial-patches" "support" "input-combiners" "sox-hoaencode continuous")) (quote nil) (om-make-point 686 424) nil nil nil nil 0))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 3" (om-make-point 136 36) (quote "check out this example $for continuous panning") "" (om-make-point 698 389) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 49 24) (quote "(x y z)") "" (om-make-point 721 154) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "Audio input to be processed [sound, path, string/pipe, sox-input]" "SOX-INPUT" nil) (om-load-inputfun (quote input-funbox) "Sox-effect to be applied to audio input [string]" "SOX-EFFECT" "") (om-load-inputkeyword (quote input-keyword) "Filetype of produced audio [string]" "filetype" (quote :filetype) "aif" (list (list "aif" "aif") (list "wav" "wav") (list "flac" "flac") (list "ogg" "ogg"))))) (om-make-point 541 315) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 556 403) (om-make-point 80 50) (let ((newobj nil)) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "") (set-tonalite newobj nil) newobj) nil nil (pairlis (quote (approx fontsize staff cmnpref deltapict outport inport player zoom notechancolor? grillestep mode winsize winpos score-mode obj-mode show-stems scale palette-mode onset measure)) (list 2 24 (quote g) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (om-make-point 0 0) nil 0 (quote :soxplayer) 1 nil 1000 0 (om-make-point 559 303) (om-make-point 400 38) 0 1 (quote t) nil 0 nil nil)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux" (quote t) (quote nil) (om-make-point 723 190) (om-make-point 27 30) 3 "3" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-HOAENCODE 2" (quote sox-hoaencode) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Positions as 3dc object, or list of azimuth+elevation values, or list of x+y+z coordinates. [3dc, list]" "positions" (list 0 0)) (om-load-inputfun (quote input-funbox) "Ambisonics order. [int]" "order" 3))) (om-make-point 547 234) (om-make-point 70 50) (if (find-class (quote sox-hoaencode) nil) (make-instance (quote sox-hoaencode) :sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device :unspecific :host :unspecific :name "clarinet-multi-mono" :type "aif") :positions (list (list -90 0)) :order 3 :from-file t)) nil nil (pairlis (quote (winsize winpos)) (list (om-make-point 104 150) (om-make-point 10 40))) nil nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 3" (quote t) (quote nil) (om-make-point 658 157) (om-make-point 59 30) (list 1 0 0) "(1 0 0)" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "clarinet-multi-mono.aif" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 557 131) (om-make-point 80 50) (let ((newobj (let ((thesound (load-sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device nil :host nil :name "clarinet-multi-mono" :type "aif") 0 1.0 0))) (when thesound (setf (markers thesound) (quote nil))) thesound))) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "clarinet-multi-mono.aif") (set-tonalite newobj nil) newobj) "x" nil (pairlis (quote (measure onset :show-spectrum approx fontsize staff cmnpref deltapict outport inport player zoom notechancolor? grillestep mode winsize winpos score-mode obj-mode show-stems scale palette-mode)) (list nil nil (quote t) 2 24 (quote g) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (om-make-point 0 0) nil 0 (quote :soxplayer) 1 nil 1000 0 (om-make-point 540 306) (om-make-point 400 38) 0 1 (quote t) nil 0)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 115 24) (quote "(azimuth elevation)") "" (om-make-point 312 154) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "Audio input to be processed [sound, path, string/pipe, sox-input]" "SOX-INPUT" nil) (om-load-inputfun (quote input-funbox) "Sox-effect to be applied to audio input [string]" "SOX-EFFECT" "") (om-load-inputkeyword (quote input-keyword) "Filetype of produced audio [string]" "filetype" (quote :filetype) "aif" (list (list "aif" "aif") (list "wav" "wav") (list "flac" "flac") (list "ogg" "ogg"))))) (om-make-point 132 315) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 524 48) (quote "The signal follows the ambiX convention, i.e. it uses SN3D normalization and ACN channel ordering. $The resulting file has (<order>+1)^2 channels $(order 0: 1 channel, order 1: 4 channels, order 2: 9 channels, order 3: 16 channels, ...).") "" (om-make-point 139 485) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux" (quote t) (quote nil) (om-make-point 314 190) (om-make-point 27 30) 3 "3" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-HOAENCODE 2" (quote sox-hoaencode) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Positions as 3dc object, or list of azimuth+elevation values, or list of x+y+z coordinates. [3dc, list]" "positions" (list 0 0)) (om-load-inputfun (quote input-funbox) "Ambisonics order. [int]" "order" 3))) (om-make-point 138 234) (om-make-point 70 50) (if (find-class (quote sox-hoaencode) nil) (make-instance (quote sox-hoaencode) :sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device :unspecific :host :unspecific :name "clarinet-multi-mono" :type "aif") :positions (list (list -90 0)) :order 3 :from-file t)) nil nil (pairlis (quote (winsize winpos)) (list (om-make-point 104 150) (om-make-point 10 40))) nil nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 3" (quote t) (quote nil) (om-make-point 248 156) (om-make-point 60 30) (list -90 0) "(-90 0)" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "clarinet-multi-mono.aif" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 148 131) (om-make-point 80 50) (let ((newobj (let ((thesound (load-sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device nil :host nil :name "clarinet-multi-mono" :type "aif") 0 1.0 0))) (when thesound (setf (markers thesound) (quote nil))) thesound))) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "clarinet-multi-mono.aif") (set-tonalite newobj nil) newobj) "x" nil (pairlis (quote (measure onset :show-spectrum approx fontsize staff cmnpref deltapict outport inport player zoom notechancolor? grillestep mode winsize winpos score-mode obj-mode show-stems scale palette-mode)) (list nil nil (quote t) 2 24 (quote g) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (om-make-point 0 0) nil 0 (quote :soxplayer) 1 nil 1000 0 (om-make-point 540 306) (om-make-point 400 38) 0 1 (quote t) nil 0)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 147 403) (om-make-point 80 50) (let ((newobj nil)) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "") (set-tonalite newobj nil) newobj) nil nil (pairlis (quote (approx fontsize staff cmnpref deltapict outport inport player zoom notechancolor? grillestep mode winsize winpos score-mode obj-mode show-stems scale palette-mode onset measure)) (list 2 24 (quote g) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (om-make-point 0 0) nil 0 (quote :soxplayer) 1 nil 1000 0 (om-make-point 559 303) (om-make-point 400 38) 0 1 (quote t) nil 0 nil nil)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 279 48) (quote "-> NB: this class has no editor yet$$Select box and press 'd' for documentation of inlets.") "" (om-make-point 232 240) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 662 60) (quote "Encode audio into higher-order ambisonics B-format following SN3D and ACN conventions. $Positions can be specified in polar (azimuth elevation in degrees) or cartesian coordinates (x y z), see doc.$Order can be specified numerically up to 3rd-order.") "" (om-make-point 128 52) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 12.0 :family "Verdana" :style (quote (:plain)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 141 34) (quote "SoX-HOAENCODE") "" (om-make-point 135 18) nil (om-make-color 0.0 0.0 0.0) (om-make-font "Verdana" 14.0 :family "Verdana" :style (quote (:plain)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((6 0 3 0 nil 0) (3 0 4 0 nil 0) (8 0 6 1 nil 0) (7 0 6 2 nil 0) (5 0 6 3 nil 0) (13 0 10 0 nil 0) (15 0 13 1 nil 0) (14 0 13 2 nil 0) (12 0 13 3 nil 0) (10 0 16 0 nil 0))) (list (let ((newpict (make-instance (quote patch-picture) :name "omsox" :source (quote user) :pict-pathname (restore-pict-path (restore-path nil)) :thepict (om-get-picture "omsox" (quote user)) :storemode :external :draw-params (quote (p 0 0 100 100)) :extraobjs nil))) (setf (pict-pos newpict) (om-make-point 60 8)) (setf (pict-size newpict) (om-make-point 63 48)) newpict)) 7.05))
examples/support/input-combiners/sox-pan continuous.omp
New file
@@ -0,0 +1,6 @@
; OM File Header - Saved 2025/03/01 01:22:06
; (7.05 :patc (om-make-point 305 651) (om-make-point 540 161) (om-make-point 690 838) "" 183 0 nil "2025/03/01 01:22:06")
; End File Header
; External resources
; (list (list (quote :picture) "#P\"../../../../resources/pict/omsox\"") (list (quote :sound) "#P\"../../../../../../../../../../../../../Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif\""))
(in-package :om)(load-lib-for (quote ("OM-SoX")))(setf *om-current-persistent* (om-load-patch1 "sox-pan continuous" (quote ((let ((box (om-load-boxcomment "comment 3" (om-make-point 117 65) (quote "future features:$$- spread$- panning function") "" (om-make-point 55 566) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 11.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 79 34) (quote "SoX-PAN") "" (om-make-point 144 11) nil (om-make-color 0.0 0.0 0.0) (om-make-font "Verdana" 14.0 :family "Verdana" :style (quote (:plain)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 79 39) (quote "number$of channels") "" (om-make-point 282 147) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 11.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxinstance "sox-pan-instances" (let ((copy (make-instance (quote omlistinstance) :name "sox-pan-instances" :icon 129))) (setf (instance copy) (list (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 0.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 1.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 2.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 3.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 4.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 5.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 6.99 :numchannels 8 :from-file t)) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Nextcloud" "HOSTNET" "Lehrveranstaltungen" "VPRS" "SKAS WS21" "WS_21" "SKAS_WS21" "in-files")) :device :unspecific :host nil :name "BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox" :type "aif") :gains (list 0.0) :panning 7.99 :numchannels 8 :from-file t)))) (setf (edition-params copy) (pairlis (quote (winpos winsize)) (list (om-make-point 10 40) (om-make-point 335 275)))) (setf (create-info copy) (quote ("2022/02/10 14:10:46" "--"))) (setf (doc copy) (str-with-nl "")) copy) (quote nil) (om-make-point 134 421) "sox-pan-instances" (om-make-point 45 40)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM-" (quote om-) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" 0) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 0.01))) (om-make-point 255 300) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux" (quote t) (quote nil) (om-make-point 396 476) (om-make-point 38 30) 0.5 "0.5" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM*" (quote om*) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" 0) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 0))) (om-make-point 356 506) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-DELAY" (quote sox-delay) (quote ((om-load-inputfun (quote input-funbox) "list of delaytimes (sec) to be applied to successive channels" "TIMES" (list 0.5 0.7 1.1)) (om-load-inputkeyword (quote input-keyword) "Append sox-effects/statistics to the processing chain." "sox-append" (quote :sox-append) nil nil))) (om-make-point 344 546) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "MAPCAR" (quote mapcar) (quote ((om-load-inputfun (quote input-funbox) "FUNCTION" "FUNCTION" nil) (om-load-inputfun (quote input-funbox) "LIST" "LIST" nil))) (om-make-point 363 350) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote abstraction) "trim+fade" (om-load-patch-abs1 "trim+fade" (quote ((let ((box (om-load-boxcomment "comment" (om-make-point 187 26) (quote "asymetrical fades are possible!") "" (om-make-point 321 88) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 11.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 2" (quote t) (quote nil) (om-make-point 307 56) (om-make-point 38 30) 0.5 "0.5" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM*" (quote om*) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" 0) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 0))) (om-make-point 297 86) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxin "duration" 1 (om-make-point 220 11) "" "duration" nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "X-APPEND" (quote x-append) (quote ((om-load-inputfun (quote input-funbox) "first element" "L1?" nil) (om-load-inputfun (quote input-funbox) "second element" "L2?" nil))) (om-make-point 82 181) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM+" (quote om+) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" nil) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 0.2))) (om-make-point 147 147) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxout "output" 0 (om-make-point 141 355) (quote ((om-load-inputfun (quote input-funbox) "" "out" nil))) nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-FADE" (quote sox-fade) (quote ((om-load-inputfun (quote input-funbox) "fadein-length (in secs). Optionally <sound> object." "SOUNDFILE" 1) (om-load-inputfun (quote input-funbox) "fadeout-length (in secs)" "FADEOUT-LENGTH" 1) (om-load-inputfun (quote input-funbox) "stoptime (in secs). if 0 = duration of soundfile)" "STOPTIME" 0) (om-load-inputkeyword (quote input-keyword) "fade-type (logarithmic/parabola/quarter-sine/half-sine/linear)" "type" (quote :type) "p" (list (list "logarithmic" "l") (list "parabola" "p") (list "quarter sinewave" "q") (list "half sinewave" "h") (list "linear" "t"))))) (om-make-point 240 167) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-TRIM" (quote sox-trim) (quote ((om-load-inputfun (quote input-funbox) "start (number in secs), or start and end (list of 'start' and 'end' point (in secs)" "START-AND-END" nil) (om-load-inputkeyword (quote input-keyword) "Append sox-effects/statistics to the processing chain." "sox-append" (quote :sox-append) nil nil) (om-load-inputkeyword (quote input-keyword) "specify time in seconds or samples" "unit" (quote :unit) "seconds" (list (list "seconds" "seconds") (list "samples" "samples"))))) (om-make-point 137 268) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxin "input" 0 (om-make-point 86 11) "" nil nil nil))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((3 0 2 0 nil 0) (1 0 2 1 nil 0) (9 0 4 0 nil 0) (5 0 4 1 nil 0) (9 0 5 0 nil 0) (3 0 5 1 nil 0) (8 0 6 0 nil 0) (2 0 7 0 nil 0) (2 0 7 1 nil 0) (4 0 8 0 nil 0) (7 0 8 1 nil 0))) 7.05 nil "" (om-make-point 980 434) (om-make-point 591 460)) (quote ((om-load-inputfun (quote input-funbox) "" "input" nil) (om-load-inputfun (quote input-funbox) "" "input 2" nil))) (om-make-point 314 277) nil (list nil) "l" "trim+fade"))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "ARITHM-SER" (quote arithm-ser) (quote ((om-load-inputfun (quote input-funbox) "begin" "BEGIN" 0) (om-load-inputfun (quote input-funbox) "end " "END" 10) (om-load-inputfun (quote input-funbox) "step" "STEP" 1))) (om-make-point 428 275) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "OM/" (quote om/) (quote ((om-load-inputfun (quote input-funbox) "number or list" "ARG1" 1) (om-load-inputfun (quote input-funbox) "number or list" "ARG2" 1))) (om-make-point 396 238) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "SOX-SOUND-DURATION" (quote sox-sound-duration) (quote ((om-load-inputfun (quote input-funbox) "SELF" "SELF" nil))) (om-make-point 404 149) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 381 32) (quote "Continuous Panning through 8 channels using SOX-PAN") "" (om-make-point 146 36) nil (om-make-color 1.1086464E-4 0.0017602444 0.9982184) (om-make-font "Verdana" 13.0D0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-NORMALIZE" (quote sox-normalize) (quote nil) (om-make-point 438 520) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 311 720) (om-make-point 80 50) (let ((newobj nil)) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "") (set-tonalite newobj nil) newobj) nil nil (pairlis (quote (outport inport player zoom grillestep mode winsize winpos show-spectrum :show-spectrum deltapict obj-mode cmnpref notechancolor? show-stems scale onset measure)) (list nil nil (quote :soxplayer) 1 nil 0 (om-make-point 969 825) (om-make-point 400 23) nil (quote t) (om-make-point 0 0) 0 (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) nil (quote t) nil nil nil)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS 2" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "" "SOX-INPUT" nil) (om-load-inputfun (quote input-funbox) "" "SOX-EFFECT" "") (om-load-inputkeyword (quote input-keyword) "Output type (new file, replace file, pipe, or realtime) [string]. Also accepts directory, filename, filepath [path]" "output" (quote :output) "pipe" (list (list "new file" nil) (list "replace file" "replace file") (list "pipe" "pipe") (list "realtime" "realtime"))))) (om-make-point 221 397) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "" "SOX-INPUT" nil) (om-load-inputfun (quote input-funbox) "" "SOX-EFFECT" "") (om-load-inputkeyword (quote input-keyword) "Output type (new file, replace file, pipe, or realtime) [string]. Also accepts directory, filename, filepath [path]" "output" (quote :output) nil (list (list "new file" nil) (list "replace file" "replace file") (list "pipe" "pipe") (list "realtime" "realtime"))) (om-load-inputkeyword (quote input-keyword) "Filetype of produced audio [string]" "filetype" (quote :filetype) "aif" (list (list "aif" "aif") (list "wav" "wav") (list "flac" "flac") (list "ogg" "ogg"))))) (om-make-point 296 628) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "ARITHM-SER 2" (quote arithm-ser) (quote ((om-load-inputfun (quote input-funbox) "begin" "BEGIN" 1) (om-load-inputfun (quote input-funbox) "end " "END" 14) (om-load-inputfun (quote input-funbox) "step" "STEP" 1))) (om-make-point 231 216) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote lispfun) "MAPCAR" (quote mapcar) (quote ((om-load-inputfun (quote input-funbox) "FUNCTION" "FUNCTION" nil) (om-load-inputfun (quote input-funbox) "LIST" "LIST" nil))) (om-make-point 140 294) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-PAN" (quote sox-pan) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Gain value for audio input before processing (dB). [float, list]" "gains" nil) (om-load-inputfun (quote input-funbox) "Panning value (decimal number) for panning audio between adjacent channels before processing (linear). [float, list]" "panning" nil) (om-load-inputfun (quote input-funbox) "" "numchannels" 5))) (om-make-point 109 192) (om-make-point 97 75) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Marlon_MBPro3" "Research" "OM-SoX" "sounds")) :device :unspecific :host nil :name "cherokee" :type "aif") :gains (list 0.0) :panning 3.0 :numchannels 5 :from-file t)) "l" nil (pairlis (quote (winpos winsize)) (list (om-make-point 10 40) (om-make-point 104 200))) nil nil nil t (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "clarinet-multi-mono.aif" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 95 87) (om-make-point 80 50) (let ((newobj (let ((thesound (load-sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device nil :host nil :name "clarinet-multi-mono" :type "aif") 0 1.0 0))) (when thesound (setf (markers thesound) (quote nil))) thesound))) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "clarinet-multi-mono.aif") (set-tonalite newobj nil) newobj) "x" nil (pairlis (quote (palette-mode scale show-stems obj-mode score-mode winpos winsize mode grillestep notechancolor? zoom player inport outport deltapict cmnpref staff fontsize approx :show-spectrum onset measure)) (list 0 nil (quote t) 1 0 (om-make-point 400 23) (om-make-point 540 306) 0 1000 nil 1 (quote :soxplayer) 0 nil (om-make-point 0 0) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (quote g) 24 2 (quote t) nil nil)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 3" (quote t) (quote nil) (om-make-point 251 153) (om-make-point 27 30) 8 "8" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 2" (quote t) (quote nil) (om-make-point 153 155) (om-make-point 38 30) 0.0 "0.0" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-MIX" (quote sox-mix) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Gain value for audio input before processing (dB). [float, list]" "gains" nil))) (om-make-point 220 557) (om-make-point 70 50) (if (find-class (quote sox-mix) nil) (make-instance (quote sox-mix) :sound (list "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p0.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 trim 0 0.8865278   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-36.07797 1p-0.00107 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 trim 0.8865278 0.8865278   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-160.0 1p-36.07797 1p-0.00107 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 trim 1.7730556 0.8865278   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-160.0 1p-160.0 1p-36.07797 1p-0.00107 1p-160.0 1p-160.0 1p-160.0 1p-160.0 trim 2.6595834 0.8865278   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-160.0 1p-160.0 1p-160.0 1p-36.07776 1p-0.00107 1p-160.0 1p-160.0 1p-160.0 trim 3.546111 0.886528   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-36.07776 1p-0.00107 1p-160.0 1p-160.0 trim 4.432639 0.886528   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-36.07776 1p-0.00107 1p-160.0 trim 5.319167 0.886528   fade p 0.4432639 0 0.4432639 " "|'/Users/Shared/_Development/OM-SoX/sources/OM-SoX/executables/macos/sox-1442'  -q --multi-threaded --buffer 4096 --input-buffer 512 -V0  '/Users/profmschum/Nextcloud/Hostnet/Lehre/Semesters/2021 WS/VPRS1 - SKAS/WS_21/SKAS_WS21/in-files/BbCl-mul-C#4+-A#5-D#6-E5-mf_omsox.aif' '-p' remix 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-160.0 1p-36.07776 1p-0.00107 trim 6.205695 0.886528   fade p 0.4432639 0 0.4432639 ") :gains (list 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0) :from-file t)) nil nil (pairlis (quote (winpos winsize)) (list (om-make-point 250 327) (om-make-point 818 150))) nil nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((18 0 4 0 nil 0) (10 0 6 0 nil 0) (5 0 6 1 nil 0) (6 0 7 0 nil 0) (14 0 7 1 nil 0) (9 0 8 0 nil 0) (10 0 8 1 nil 0) (11 0 9 1 nil 0) (12 0 10 1 nil 0) (11 0 10 2 nil 0) (12 0 11 0 nil 0) (22 0 11 1 nil 0) (21 0 12 0 nil 0) (17 0 15 0 nil 0) (19 0 16 0 nil 0) (8 0 16 1 nil 0) (24 0 17 0 nil 0) (7 0 17 1 nil 0) (22 0 18 1 nil 0) (20 0 19 0 nil 0) (4 0 19 1 nil 0) (21 0 20 1 nil 0) (23 0 20 2 nil 0) (22 0 20 4 nil 0) (16 0 24 1 nil 0))) (list (let ((newpict (make-instance (quote patch-picture) :name "omsox" :source (quote user) :pict-pathname (restore-pict-path (restore-path nil)) :thepict (om-get-picture "omsox" (quote user)) :storemode :external :draw-params (quote (p 0 0 100 100)) :extraobjs nil))) (setf (pict-pos newpict) (om-make-point 75 14)) (setf (pict-size newpict) (om-make-point 63 47)) newpict)) 7.05))
examples/support/input-combiners/sox-pan.omp
New file
@@ -0,0 +1,6 @@
; OM File Header - Saved 2025/03/01 01:09:16
; (7.05 :patc (om-make-point 238 218) (om-make-point 522 241) (om-make-point 734 500) "" 183 0 "2025/03/01 00:57:08" "2025/03/01 01:09:16")
; End File Header
; External resources
; (list (list (quote :picture) "#P\"../../../../resources/pict/omsox\"") (list (quote :sound) "#P\"../../../../../../../../../../../../../Shared/_Development/OM-SoX/Alexander Ng/OM-SoX hoaencode/resources/sounds/clarinet-multi-mono.aif\"") (list (quote :abstraction) "#P\"sox-pan continuous.omp\""))
(in-package :om)(load-lib-for (quote ("OM-SoX")))(setf *om-current-persistent* (om-load-patch1 "sox-pan" (quote ((let ((box (om-load-boxcomment "comment 2" (om-make-point 136 36) (quote "check out this example $for continuous panning") "" (om-make-point 437 360) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote patch-box) "sox-pan continuous" (quote ("elements" "OM-SoX-tutorial-patches" "support" "input-combiners" "sox-pan continuous")) (quote nil) (om-make-point 439 392) nil nil nil nil 0))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 2" (quote t) (quote nil) (om-make-point 272 216) (om-make-point 27 30) 4 "4" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux" (quote t) (quote nil) (om-make-point 223 188) (om-make-point 38 30) 2.5 "2.5" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote bastype) "aux 3" (quote t) (quote nil) (om-make-point 196 158) (om-make-point 32 30) -3 "-3" nil))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "clarinet-multi-mono.aif" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 100 145) (om-make-point 80 50) (let ((newobj (let ((thesound (load-sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device nil :host nil :name "clarinet-multi-mono" :type "aif") 0 1.0 0))) (when thesound (setf (markers thesound) (quote nil))) thesound))) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "clarinet-multi-mono.aif") (set-tonalite newobj nil) newobj) "x" nil (pairlis (quote (palette-mode scale show-stems obj-mode score-mode winpos winsize mode grillestep notechancolor? zoom player inport outport deltapict cmnpref staff fontsize approx :show-spectrum onset measure)) (list 0 nil (quote t) 1 0 (om-make-point 400 38) (om-make-point 540 306) 0 1000 nil 1 (quote :soxplayer) 0 nil (om-make-point 0 0) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (quote g) 24 2 (quote t) nil nil)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "SOX-PAN" (quote sox-pan) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "Audio input for sox input modules. [sound object, pathname, string/pipe]" "sound" nil) (om-load-inputfun (quote input-funbox) "Gain value for audio input before processing (dBFS). [float, list]" "gains" nil) (om-load-inputfun (quote input-funbox) "Panning value (decimal number) for panning audio between adjacent channels. [float, list]" "panning" nil) (om-load-inputfun (quote input-funbox) "Number of available output channels for panning." "numchannels" nil))) (om-make-point 120 247) (om-make-point 70 50) (if (find-class (quote sox-pan) nil) (make-instance (quote sox-pan) :sound (om-make-pathname :directory (quote (:absolute "Users" "Shared" "_Development" "OM-SoX" "Alexander Ng" "OM-SoX hoaencode" "resources" "sounds")) :device nil :host nil :name "clarinet-multi-mono" :type "aif") :gains (list -3) :panning 2.5 :numchannels 4 :from-file t)) nil nil (pairlis (quote (winsize winpos)) (list (om-make-point 104 200) (om-make-point 10 40))) nil nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-editor-box1 "" (quote sound) (quote ((om-load-inputfun (quote input-funbox) "object" "self" nil) (om-load-inputfun (quote input-funbox) "a track index for multichannel mixing" "tracknum" 0) (om-load-inputfun (quote input-funbox) "a list of markers (s)" "markers" nil))) (om-make-point 147 403) (om-make-point 80 50) (let ((newobj nil)) (load-port-info newobj (quote nil)) (init-mus-color newobj (quote nil)) (set-extra-pairs newobj (quote nil)) (set-patch-pairs newobj (quote nil)) (set-name newobj "") (set-tonalite newobj nil) newobj) nil nil (pairlis (quote (measure onset palette-mode scale show-stems obj-mode score-mode winpos winsize mode grillestep notechancolor? zoom player inport outport deltapict cmnpref staff fontsize approx)) (list nil nil 0 nil (quote t) 1 0 (om-make-point 400 38) (om-make-point 559 303) 0 1000 nil 1 (quote :soxplayer) 0 nil (om-make-point 0 0) (let ((newobj (make-instance (quote edition-values)))) (setf (paper-size newobj) (om-make-point 600 800)) (setf (top-margin newobj) 2) (setf (left-margin newobj) 1) (setf (right-margin newobj) 1) (setf (bottom-margin newobj) 1) (setf (orientation newobj) nil) (setf (scale newobj) nil) (setf (system-space newobj) (quote (1))) (setf (system-color newobj) (quote nil)) (setf (line-space newobj) 1) (setf (title newobj) nil) (setf (show-title? newobj) nil) (setf (show-page? newobj) nil) (setf (sheet-id newobj) nil) (setf (page-mode newobj) nil) newobj) (quote g) 24 2)) t nil nil nil (quote nil)))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment 2" (om-make-point 279 48) (quote "-> Double-click on sox-pan class to open the editor.$$Select box and press 'd' for documentation of inlets.") "" (om-make-point 203 259) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 10.0 :family "Verdana" :style (quote (:italic)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 446 60) (quote "Pan audio between adjacent output audio channels specified $as a floating point number. Gain (db) value before panning and $number of channels in the multichannel audio output can be specified. ") "" (om-make-point 128 54) nil (om-make-color 0.0 0.0 1.0) (om-make-font "Verdana" 12.0 :family "Verdana" :style (quote (:plain)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcall (quote genfun) "SOX-PROCESS" (quote sox-process) (quote ((om-load-inputfun (quote input-funbox) "" "INPUT" nil) (om-load-inputfun (quote input-funbox) "" "COMMANDS" ""))) (om-make-point 132 311) nil nil nil nil 1))) (when (fboundp (quote set-active)) (set-active box nil)) box) (let ((box (om-load-boxcomment "comment" (om-make-point 79 34) (quote "SoX-PAN") "" (om-make-point 135 18) nil (om-make-color 0.0 0.0 0.0) (om-make-font "Verdana" 14.0 :family "Verdana" :style (quote (:plain)) :mode (quote nil))))) (when (fboundp (quote set-active)) (set-active box nil)) box))) (quote ((5 0 6 1 nil 0) (4 0 6 2 nil 0) (3 0 6 3 nil 0) (2 0 6 4 nil 0) (10 0 7 0 nil 0) (6 0 10 0 nil 0))) (list (let ((newpict (make-instance (quote patch-picture) :name "omsox" :source (quote user) :pict-pathname (restore-pict-path (restore-path nil)) :thepict (om-get-picture "omsox" (quote user)) :storemode :external :draw-params (quote (p 0 0 100 100)) :extraobjs nil))) (setf (pict-pos newpict) (om-make-point 60 8)) (setf (pict-size newpict) (om-make-point 63 48)) newpict)) 7.05))
resources/sounds/clarinet-multi-mono.aif
Binary files differ
sources/classes/sox-hoaencode.lisp
@@ -1,4 +1,6 @@
;Authors: A. Nguyen, 2025.
;Authors:
; A. Nguyen, 2025
; M. Schumacher, 2025
; Design limitations:
; 1) Sounds must have identical sample rate; otherwise, SoX fails silently, literally.
@@ -172,11 +174,11 @@
(defclass! sox-hoaencode (sox-input)
    (
        (positions :accessor positions :initarg :positions :initform nil :documentation *sox-hoaencode-positions-doc*)
        (order :accessor order :initarg :order :initform nil :documentation *sox-hoaencode-order-doc*)
        (positions :accessor positions :initarg :positions :initform '(0 0) :documentation *sox-hoaencode-positions-doc*)
        (order :accessor order :initarg :order :initform 3 :documentation *sox-hoaencode-order-doc*)
    )
    (:icon 100)
    (:documentation "Sox-hoaencode transforms <sound> into a <order>-th ambisonic (HOA) signal at <positions>.
    (:documentation "Sox-hoaencode encodes <sound> into a <order>-th ambisonic (HOA) signal at <positions>.
    The signal follows the ambiX convention, i.e. it uses SN3D normalization and ACN channel ordering. The resulting file has (<order>+1)^2 channels (order 0: 1 channel, order 1: 4 channels, order 2: 9 channels, order 3: 16 channels, ...).")
)
@@ -184,7 +186,7 @@
(defmethod initialize-instance :after ((self sox-hoaencode) &rest l)
    (declare (ignore l))
    (when (sound self)
        (sox-init-sound self 'list)
        (sox-init-sound self 'atom)
    )
)
sources/sox-process.lisp
@@ -188,121 +188,109 @@
    (if (probe-file *sox-path*)
        (progn
            (when
                (not (listp (sound sox-input)))
                (om-message-abort "sound must be a list.") ; use list! instead
          (unless (listp (sound sox-input)) (setf (positions sox-input) (list (positions sox-input)))) ; quick hack to prevent having to provide position arg as list of lists
          (when
              (not
               (or
                (subtypep (type-of (positions sox-input)) '3dc)
                (and (subtypep (type-of (positions sox-input)) 'list)
                     (> (length (positions sox-input)) 0)
                     (subtypep (type-of (first (positions sox-input))) 'list)
                     (> (length (first (positions sox-input))) 1))
                )
               )
            (om-message-abort "positions must be of type 3dc, or a list of lists.")
            )
            (when
                (not
                    (or
                        (subtypep (type-of (positions sox-input)) '3dc)
                        (and (subtypep (type-of (positions sox-input)) 'list) (> (length (positions sox-input)) 0) (subtypep (type-of (first (positions sox-input))) 'list) (> (length (first (positions sox-input))) 1)))
                )
                (om-message-abort "positions must be of type 3dc, or a list of lists.")
            )
            (let*
                (
                    (sound
                        (sound sox-input)
                    )
                    (positions-ae
                        (sox-hoaencode-auto-convert-positions (positions sox-input))
                    )
                )
                (when
                    (and (find-if 'stringp sound) (equal output "pipe"))
                    (om-message-abort "Pipe output not possible with this type of input.")
                )
                (let*
                    (
                        (filenames (loop for soundfile in sound collect (namestring soundfile)))
                        (outfile (create-path nil output filetype))
                    )
                    (setf str (format nil " ~s ~a" (namestring *sox-path*) *sox-options*))
                    (if (= (length filenames) 1)
          (let* ((sound (list! (sound sox-input)))
                 (positions-ae (sox-hoaencode-auto-convert-positions (positions sox-input))))
            (when (and (find-if 'stringp sound) (equal output "pipe"))
              (om-message-abort "Pipe output not possible with this type of input."))
            (let* ((filenames (loop for soundfile in sound collect (namestring soundfile)))
                   (outfile (create-path nil output filetype)))
              (setf str (format nil " ~s ~a" (namestring *sox-path*) *sox-options*))
              (if (= (length filenames) 1)
                        ; case: one file 
                        (let*
                            (
                                (filename (first filenames))
                                (position (first positions-ae))
                            )
                            (if (= (order sox-input) 0)
                                ; case: order = 0
                                (setf str (string+ str (format nil " ~s" filename)))
                                ; case: order > 0
                                (progn
                                    (setf str (string+ str " -M"))
                                    (loop for gain in (sox-hoaencode-gains-up-to-order (order sox-input) (first position) (second position)) do
                                        (setf str (string+ str (format nil " -v~d ~s" gain filename))))
                                )
                            )
                  (let* ((filename (first filenames))
                         (position (first positions-ae)))
                    (if (= (order sox-input) 0)
                     ; case: order = 0
                        (setf str (string+ str (format nil " ~s" filename)))
                     ; case: order > 0
                      (progn
                        (setf str (string+ str " -M"))
                        (loop for gain in (sox-hoaencode-gains-up-to-order (order sox-input) (first position) (second position))
                              do (setf str (string+ str (format nil " -v~d ~s" gain filename))))
                        )
                        ; case: multiple files
                        (if (= (order sox-input) 0)
                            ; case: order = 0
                            (progn
                                (setf str (string+ str " -m")) ; this is the mixer. e.g. sox-mix
                                (loop for filename in filenames do
                                    (setf str (string+ str (format nil " ~s" filename)))
                      )
                    )
                      ; case: multiple files
                (if (= (order sox-input) 0)
                 ; case: order = 0
                    (progn
                      (setf str (string+ str " -m")) ; this is the mixer. e.g. sox-mix
                                (loop for filename in filenames
                                      do (setf str (string+ str (format nil " ~s" filename))))
                                )
                            )
                            ; case: order > 0
                            (progn
                                (setf str (string+ str " -m"))
                 ; case: order > 0
                  (progn
                    (setf str (string+ str " -m"))
                                ; Create components 
                                (setf component_idx 0)
                                (loop
                                    for filename in filenames
                                    for position in positions-ae do
                    (setf component_idx 0)
                    (loop
                       for filename in filenames
                       for position in positions-ae
                       do
                                                                   ; in Object-Oriented Programming we would call-next-method i.e. set a sox-merge input class with the corresponding params. 
                                                                   ; e.g. (make-instance 'sox-merge ... (more redundancy and compactness, less error-prone) ... possible?
                                                                   ; for multiple sound inputs if possible we would then call a sox-mix to mix the sox merge pipes. everything
                                    (progn
                                        (setf str_component (format nil " ~s ~a -M" (namestring *sox-path*) *sox-options*))
                                        (loop
                                            for gain in (sox-hoaencode-gains-up-to-order (order sox-input) (first position) (second position)) do
                                            (setf str_component (string+ str_component (format nil " -v~d ~s" gain filename)))
                                        )
                                        (setf outfile_tmp (format nil "~a~a-~d.~a" (directory-namestring outfile) (pathname-name outfile) component_idx (pathname-type outfile)))
                                        (setf str_component (sox-samplebits str_component bitdepth samplerate outfile_tmp))
                                        (sox-out str_component filename "new file" outfile_tmp nil)
                         (progn
                           (setf str_component (format nil " ~s ~a -M" (namestring *sox-path*) *sox-options*))
                           (loop for gain in (sox-hoaencode-gains-up-to-order (order sox-input) (first position) (second position))
                                 do (setf str_component (string+ str_component (format nil " -v~d ~s" gain filename))))
                                        (setf component_idx (1+ component_idx))
                           (setf outfile_tmp (format nil "~a~a-~d.~a" (directory-namestring outfile) (pathname-name outfile) component_idx (pathname-type outfile)))
                           (setf str_component (sox-samplebits str_component bitdepth samplerate outfile_tmp))
                           (sox-out str_component filename "new file" outfile_tmp nil)
                           (setf component_idx (1+ component_idx))
                                        ; Add component path to <str>
                                        (setf str (string+ str (format nil " ~s" outfile_tmp)))
                                    )
                                )
                            )
                        )
                           (setf str (string+ str (format nil " ~s" outfile_tmp)))
                           )
                       )
                    )
                    (setf str
                        (cond
                            ((equal output "realtime")
                                (sox-samplebits (string+ str " -q ") bitdepth samplerate *sox-audio-device*))
                            ((equal output "pipe")
                                (sox-samplebits str bitdepth samplerate "-p"))
                            (t
                                (sox-samplebits str bitdepth samplerate outfile))
                        )
                  )
                )
              (setf str
                    (cond
                     ((equal output "realtime")
                      (sox-samplebits (string+ str " -q ") bitdepth samplerate *sox-audio-device*))
                     ((equal output "pipe")
                      (sox-samplebits str bitdepth samplerate "-p"))
                     (t
                      (sox-samplebits str bitdepth samplerate outfile))
                     )
                    )
                    (setf str (string+ str sox-effect))
                    (print str)
                    (sox-out str sox-input output outfile recursive)
              (setf str (string+ str sox-effect))
              (print str)
              (sox-out str sox-input output outfile recursive)
                       ;optional removal of temp file
                  ;    (add-tmp-file outfile_tmp)
                  ;    (when *delete-inter-file* (clean-tmp-files))
                )
              )
            )
        )
        (sox-not-found)
          )
      (sox-not-found)
      )
    )
)
; === sox-mix =============