comparison src/scheme/audio.scm @ 1:5df24c91468d

Oh my what a mess.
author samer
date Fri, 05 Apr 2019 16:26:00 +0100
parents bf79fb79ee13
children
comparison
equal deleted inserted replaced
0:bf79fb79ee13 1:5df24c91468d
21 (Shell.get "format" 21 (Shell.get "format"
22 (multi (Shell.getInt "channels" 1) (Shell.getInt "rate" 22050)))) 22 (multi (Shell.getInt "channels" 1) (Shell.getInt "rate" 22050))))
23 23
24 ;;; construct DataLine.Info. args = (format [bufsize]) 24 ;;; construct DataLine.Info. args = (format [bufsize])
25 (define (_dli cl args) (apply javax.sound.sampled.DataLine$Info. (cons cl args))) 25 (define (_dli cl args) (apply javax.sound.sampled.DataLine$Info. (cons cl args)))
26 (define (_open x) (.open x) x)
26 (define (target-info . args) (_dli javax.sound.sampled.TargetDataLine.class args)) 27 (define (target-info . args) (_dli javax.sound.sampled.TargetDataLine.class args))
27 (define (source-info . args) (_dli javax.sound.sampled.SourceDataLine.class args)) 28 (define (source-info . args) (_dli javax.sound.sampled.SourceDataLine.class args))
28 29
29 30
30 31
42 (define _snk samer.audio.LineSink.) 43 (define _snk samer.audio.LineSink.)
43 (define (_sbs b l) (.setBufferSize l b) l) 44 (define (_sbs b l) (.setBufferSize l b) l)
44 45
45 (define-method (linesrc) (linesrc (default-format))) 46 (define-method (linesrc) (linesrc (default-format)))
46 (define-method (linesnk) (linesnk (default-format))) 47 (define-method (linesnk) (linesnk (default-format)))
47 (define-method (linesrc fmt) (.open (_src (line (target-info fmt)) fmt))) 48 (define-method (linesrc fmt) (_open (_src (line (target-info fmt)) fmt)))
48 (define-method (linesnk fmt) (.open (_snk (line (source-info fmt bf)) fmt))) 49 (define-method (linesnk fmt) (_open (_snk (line (source-info fmt)) fmt)))
49 (define-method (linesrc mx fmt) (.open (_src (line mx (target-info fmt)) fmt))) 50 (define-method (linesrc mx fmt) (_open (_src (line mx (target-info fmt)) fmt)))
50 (define-method (linesnk mx fmt) (.open (_snk (line mx (source-info fmt)) fmt))) 51 (define-method (linesnk mx fmt) (_open (_snk (line mx (source-info fmt)) fmt)))
51 (define-method (linesrc mx fmt bf) (.open (_sbs bf (_src (line mx (target-info fmt bf)) fmt)))) 52 (define-method (linesrc mx fmt bf) (_open (_sbs bf (_src (line mx (target-info fmt bf)) fmt))))
52 (define-method (linesnk mx fmt bf) (.open (_sbs bf (_snk (line mx (source-info fmt bf)) fmt)))) 53 (define-method (linesnk mx fmt bf) (_open (_sbs bf (_snk (line mx (source-info fmt bf)) fmt))))
53 (define-method (linesrc-buf fmt bf) (.open (_sbs bf (_src (line (target-info fmt bf)) fmt)))) 54 (define-method (linesrc-buf fmt bf) (_open (_sbs bf (_src (line (target-info fmt bf)) fmt))))
54 (define-method (linesnk-buf fmt bf) (.open (_sbs bf (_snk (line (source-info fmt bf)) fmt)))) 55 (define-method (linesnk-buf fmt bf) (_open (_sbs bf (_snk (line (source-info fmt bf)) fmt))))
55 (define filesnk samer.audio.FileSink.) 56 (define filesnk samer.audio.FileSink.)
56 57
57 (define streamsrc samer.audio.StreamSource.) 58 (define streamsrc samer.audio.StreamSource.)
58 59
59 ;; to do: buffer size? 60 ;; to do: buffer size?
70 #null 71 #null
71 ) 72 )
72 73
73 ;;; buffering audio input into frames with a certain hop size 74 ;;; buffering audio input into frames with a certain hop size
74 (define-method (linein size step) (linein (linesrc) size step)) 75 (define-method (linein size step) (linein (linesrc) size step))
75 (define-method (linein (source samer.audio.AudioSource) size step) 76 (define-method (linein source size step)
76 (define line (LineIn. source size step)) 77 (define line (LineIn. source size step))
77 (put "LineIn" line) 78 (put "LineIn" line)
78 (addtask line) 79 (addtask line)
79 (.output line) ) 80 (.output line) )
80 81