midicontrol.sh

Kleines Script für Linux, das ein die Master-Lautstärke über einen Midi-Controller regelt. Es fängt jedes Midi-signal ab und regelt damit die Lautstärke. Aber mit Abfrage von $canal, $control, $value könnte man es beliebig erweitern, sodass man z.B. auf Knopfdruck Firefox starten könnte.Das Script wird mit "bash midicontrol.sh" gestartet.

 

#!/bin/bash
 
# script zum steuern der soundkarte ueber midi
# evtl muss der midi-port angepasst werden
# 
# v0.2: prozess amidi wird nun richtig beendet
 
ende(){
	if (pid=$(pidof amidi)); then 
		kill $(pidof amidi) 
	fi
}
 
trap ende EXIT
 
IFS=" "
amidi -p hw:1,0,0 --dump | while read canal control value ; do
	val=$((0x$value));
	prozent=$(echo "scale=0; $val/1.27" | bc -l);
	if [ "$1" = "--debug" ]; then
		echo "$prozent% ($canal $control $value)";
	fi
	amixer set Master $prozent% > /dev/null
done