;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Audio Input and Net Send example
;;
;; Impromptu has limited support for audio input
;; 1) *au:input-node* is created automatically and
;; only supports output 1 (the devices first stereo pair)
;; 2) The output device and input device must be the
;; same. Therefore impromptu automatically uses
;; the default output device for input if possible.
;;
;; This example also uses netsend and net receive for
;; streaming audio across a network.
;;
;; NOTE: Make sure host and client firewalls are off.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(au:clear-graph)
; define a filter
(define filter (au:make-node "aufx" "filt" "appl"))
; stream audio data to any listening host
(define netsend (au:make-node "aufx" "nsnd" "appl"))
; connect input to filter (*au:input-node* always uses it's second output i.e. 1)
(au:connect-node *au:input-node* 1 filter 0)
; connect filter to netsend a streaming server
(au:connect-node filter 0 netsend 0)
; connect netsend to output so we can hear output locally as well as streaming
; to any listening hosts. Benjour should automatically connect any net receives
; listening on the local broadcast domain.
(au:connect-node netsend 0 *au:output-node* 0)
(au:update-graph)
; stuff with the filter
(au:open-view filter)
; check netsend out
; open another impromptu on another host on the same subnet
; connect a net receive directly to au:output-node like this
; (define netrcv (au:make-node "augn" "nrcv" "appl"))
; (au:connect-node netrcv 0 *au:output-node* 0)
; (au:update-graph)
; (au:open-view netrcv)
;
; make sure host and client firewalls are turned off
; and everything should just work :)
;
(au:open-view netsend)