Mercurial > hg > svcore
view data/osc/sv-command @ 353:1c6816220185
* more handy functions
author | Chris Cannam |
---|---|
date | Mon, 10 Dec 2007 17:37:13 +0000 |
parents | 32e50b620a6c |
children |
line wrap: on
line source
#!/bin/sh # # A very simple command shell for Sonic Visualiser. # # This provides a wrapper for the sv-osc-send program, which is a # generic OSC sending program (not specific to SV, despite its name). # This script attempts to guess the OSC port number for an SV # process running on the local host, and then composes a method name # and arguments into a complete OSC call. # # You can either run this with the method and its arguments on the # command line, e.g. "sv-command set layer Frequency-Scale Log", or # you can provide a series of method + argument commands on stdin. # # Unless you use the -q option, this script will echo the OSC URL # and arguments that it is sending for each command. # # Note that the method and arguments may not contain spaces. # # Chris Cannam, Nov 2006 quiet= if [ "$1" = "-q" ]; then quiet=true; shift; fi # The yucky bit port=`lsof -c sonic- | \ grep UDP | \ sed -e 's/^.*[^0-9]\([0-9][0-9]*\) *$/\1/' | \ grep -v ' ' | \ head -1 ` host=127.0.0.1 scheme=osc.udp if [ -z "$port" ]; then echo "Sonic Visualiser OSC port not found" exit 1 fi if [ -n "$1" ]; then command=$1; shift [ -z "$quiet" ] && echo "$scheme://$host:$port/$command" "$@" sv-osc-send "$scheme://$host:$port/$command" "$@" else while read command a1 a2 a3 a4 a5; do [ -z "$command" ] && continue [ -z "$quiet" ] && echo "$scheme://$host:$port/$command" $a1 $a2 $a3 $a4 $a5 sv-osc-send "$scheme://$host:$port/$command" $a1 $a2 $a3 $a4 $a5 done fi exit 0