240c01c223ebb6b176a9b3e70576716a05d392d7
[experiments/gstreamer.git] / shell / gst-vocoder.sh
1 #!/bin/sh
2  
3 FORMANT="autoaudiosrc"
4  
5 # In order to have a MIDI carrier use the alsa loopback device and Timidity++ like this:
6 #
7 #   $ sudo modprobe snd-aloop
8 #   $ timidity -Os -o "hw:Loopback,0,0" -iA --sequencer-ports 1
9 #
10 # then connect to Timidity++ with a MIDI input device, e.g.:
11 #
12 #   $ xset -r
13 #   $ vkeybd --device alsa --addr 129:0
14 #   $ xset r on
15 #
16 # and have a lot of fun vocoding the crap out of your formant channel
17 CARRIER_TONE="alsasrc device=hw:Loopback,1,0 ! audioconvert"
18  
19 # Add some white noise to the carrier
20 CARRIER_PARAMS="$CARRIER_TONE ! carrier. audiotestsrc wave=5 volume=0.1 ! carrier."
21 CARRIER="adder name=carrier"
22  
23 SINK="autoaudiosink"
24  
25 gst-launch-1.0 -v interleave name=i ! \
26   capssetter caps="audio/x-raw,channels=2,channel-mask=(bitmask)0x3" ! audioconvert ! audioresample ! \
27   ladspa-vocoder-1337-so-vocoder-lmms \
28     number-of-bands=16 \
29     left-right=0 \
30     band-1-level=1 \
31     band-2-level=1 \
32     band-3-level=1 \
33     band-4-level=1 \
34     band-5-level=1 \
35     band-6-level=1 \
36     band-7-level=1 \
37     band-8-level=1 \
38     band-9-level=1 \
39     band-10-level=1 \
40     band-11-level=1 \
41     band-12-level=1 \
42     band-13-level=1 \
43     band-14-level=1 \
44     band-15-level=1 \
45     band-16-level=1 \
46   ! $SINK \
47   $FORMANT ! audioconvert ! audioresample ! audio/x-raw, rate=44100, format=S16LE, channels=1 ! queue ! i.sink_0 \
48   $CARRIER ! audioconvert ! audioresample ! audio/x-raw, rate=44100, format=S16LE, channels=1 ! queue ! i.sink_1 \
49   $CARRIER_PARAMS