Mercurial > hg > easaier-soundaccess
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 |