Mercurial > hg > jslab
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 |