Mercurial > hg > svcore
annotate data/osc/sv-command @ 339:ba30f4a3e3be
* Some work on correct alignment when moving panes during playback
* Overhaul alignment for playback frame values (view manager now always
refers to reference-timeline values, only the play source deals in
playback model timeline values)
* When making a selection, ensure the selection regions shown in other
panes (and used for playback constraints if appropriate) are aligned
correctly. This may be the coolest feature ever implemented in any
program ever.
author | Chris Cannam |
---|---|
date | Thu, 22 Nov 2007 14:17:19 +0000 |
parents | 32e50b620a6c |
children |
rev | line source |
---|---|
Chris@320 | 1 #!/bin/sh |
Chris@320 | 2 # |
Chris@320 | 3 # A very simple command shell for Sonic Visualiser. |
Chris@320 | 4 # |
Chris@320 | 5 # This provides a wrapper for the sv-osc-send program, which is a |
Chris@320 | 6 # generic OSC sending program (not specific to SV, despite its name). |
Chris@320 | 7 # This script attempts to guess the OSC port number for an SV |
Chris@320 | 8 # process running on the local host, and then composes a method name |
Chris@320 | 9 # and arguments into a complete OSC call. |
Chris@320 | 10 # |
Chris@320 | 11 # You can either run this with the method and its arguments on the |
Chris@320 | 12 # command line, e.g. "sv-command set layer Frequency-Scale Log", or |
Chris@320 | 13 # you can provide a series of method + argument commands on stdin. |
Chris@320 | 14 # |
Chris@320 | 15 # Unless you use the -q option, this script will echo the OSC URL |
Chris@320 | 16 # and arguments that it is sending for each command. |
Chris@320 | 17 # |
Chris@320 | 18 # Note that the method and arguments may not contain spaces. |
Chris@320 | 19 # |
Chris@320 | 20 # Chris Cannam, Nov 2006 |
Chris@320 | 21 |
Chris@320 | 22 quiet= |
Chris@320 | 23 if [ "$1" = "-q" ]; then |
Chris@320 | 24 quiet=true; shift; |
Chris@320 | 25 fi |
Chris@320 | 26 |
Chris@320 | 27 # The yucky bit |
Chris@320 | 28 |
Chris@320 | 29 port=`lsof -c sonic- | \ |
Chris@320 | 30 grep UDP | \ |
Chris@320 | 31 sed -e 's/^.*[^0-9]\([0-9][0-9]*\) *$/\1/' | \ |
Chris@320 | 32 grep -v ' ' | \ |
Chris@320 | 33 head -1 ` |
Chris@320 | 34 |
Chris@320 | 35 host=127.0.0.1 |
Chris@320 | 36 scheme=osc.udp |
Chris@320 | 37 |
Chris@320 | 38 if [ -z "$port" ]; then |
Chris@320 | 39 echo "Sonic Visualiser OSC port not found" |
Chris@320 | 40 exit 1 |
Chris@320 | 41 fi |
Chris@320 | 42 |
Chris@320 | 43 if [ -n "$1" ]; then |
Chris@320 | 44 command=$1; shift |
Chris@320 | 45 [ -z "$quiet" ] && echo "$scheme://$host:$port/$command" "$@" |
Chris@320 | 46 sv-osc-send "$scheme://$host:$port/$command" "$@" |
Chris@320 | 47 else |
Chris@320 | 48 while read command a1 a2 a3 a4 a5; do |
Chris@320 | 49 [ -z "$command" ] && continue |
Chris@320 | 50 [ -z "$quiet" ] && echo "$scheme://$host:$port/$command" $a1 $a2 $a3 $a4 $a5 |
Chris@320 | 51 sv-osc-send "$scheme://$host:$port/$command" $a1 $a2 $a3 $a4 $a5 |
Chris@320 | 52 done |
Chris@320 | 53 fi |
Chris@320 | 54 |
Chris@320 | 55 exit 0 |