annotate sv/osc/sv-command @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents fc9323a41f5a
children
rev   line source
lbajardsilogic@0 1 #!/bin/sh
lbajardsilogic@0 2 #
lbajardsilogic@0 3 # A very simple command shell for Sonic Visualiser.
lbajardsilogic@0 4 #
lbajardsilogic@0 5 # This provides a wrapper for the sv-osc-send program, which is a
lbajardsilogic@0 6 # generic OSC sending program (not specific to SV, despite its name).
lbajardsilogic@0 7 # This script attempts to guess the OSC port number for an SV
lbajardsilogic@0 8 # process running on the local host, and then composes a method name
lbajardsilogic@0 9 # and arguments into a complete OSC call.
lbajardsilogic@0 10 #
lbajardsilogic@0 11 # You can either run this with the method and its arguments on the
lbajardsilogic@0 12 # command line, e.g. "sv-command set layer Frequency-Scale Log", or
lbajardsilogic@0 13 # you can provide a series of method + argument commands on stdin.
lbajardsilogic@0 14 #
lbajardsilogic@0 15 # Unless you use the -q option, this script will echo the OSC URL
lbajardsilogic@0 16 # and arguments that it is sending for each command.
lbajardsilogic@0 17 #
lbajardsilogic@0 18 # Note that the method and arguments may not contain spaces.
lbajardsilogic@0 19 #
lbajardsilogic@0 20 # Chris Cannam, Nov 2006
lbajardsilogic@0 21
lbajardsilogic@0 22 quiet=
lbajardsilogic@0 23 if [ "$1" = "-q" ]; then
lbajardsilogic@0 24 quiet=true; shift;
lbajardsilogic@0 25 fi
lbajardsilogic@0 26
lbajardsilogic@0 27 # The yucky bit
lbajardsilogic@0 28
lbajardsilogic@0 29 port=`lsof -c sonic- | \
lbajardsilogic@0 30 grep UDP | \
lbajardsilogic@0 31 sed -e 's/^.*[^0-9]\([0-9][0-9]*\) *$/\1/' | \
lbajardsilogic@0 32 grep -v ' ' | \
lbajardsilogic@0 33 head -1 `
lbajardsilogic@0 34
lbajardsilogic@0 35 host=127.0.0.1
lbajardsilogic@0 36 scheme=osc.udp
lbajardsilogic@0 37
lbajardsilogic@0 38 if [ -z "$port" ]; then
lbajardsilogic@0 39 echo "Sonic Visualiser OSC port not found"
lbajardsilogic@0 40 exit 1
lbajardsilogic@0 41 fi
lbajardsilogic@0 42
lbajardsilogic@0 43 if [ -n "$1" ]; then
lbajardsilogic@0 44 command=$1; shift
lbajardsilogic@0 45 [ -z "$quiet" ] && echo "$scheme://$host:$port/$command" "$@"
lbajardsilogic@0 46 sv-osc-send "$scheme://$host:$port/$command" "$@"
lbajardsilogic@0 47 else
lbajardsilogic@0 48 while read command a1 a2 a3 a4 a5; do
lbajardsilogic@0 49 [ -z "$command" ] && continue
lbajardsilogic@0 50 [ -z "$quiet" ] && echo "$scheme://$host:$port/$command" $a1 $a2 $a3 $a4 $a5
lbajardsilogic@0 51 sv-osc-send "$scheme://$host:$port/$command" $a1 $a2 $a3 $a4 $a5
lbajardsilogic@0 52 done
lbajardsilogic@0 53 fi
lbajardsilogic@0 54
lbajardsilogic@0 55 exit 0