Waren Sie jemals in der Situation in der Sie ein Programm öffnen müssen, Sie dieses bestimmte Programm aber nur öffnen möchten wenn ein spezielles Gerät angeschlossen ist? Zum Beispiel wenn es einen symbolischen Link zu einer enormen Bibliothek auf einem externen Laufwerk gibt. Oder die Audio-Schnittstelle sollte eingesteckt werden bevor die DAW geöffnet wird.
Solche Anwendungen auszuführen ohne diese Anforderungen zu erfüllen kann Ihre Einstellungen durcheinander bringen und Sie müssen möglicherweise manuell die Einstellungen und Pfade nachjustieren, Aufräumarbeiten ausführen usw. Schließlich können Daten überschrieben werden oder verloren gehen.
Es ist allzu leicht ein nicht angeschlossenes Gerät zu vergessen. Dies kann ziemlich lästig sein und ist kontraproduktiv für einen kreativen Arbeitsablauf: Eine Idee kommt Ihnen in den Sinn und Sie möchten sofort beginnen daran zu arbeiten, aber nun ist man dadurch abgelenkt die Unordnung zu beseitigen die durch das Nichtvorhandensein des richtigen Gerätes vor aufsührung des Programms verursacht wurde.
In meinem speziellen Fall
Wenn ich es vergesse die Audio-Schnittstelle zu verbinden bevor ich Logic Pro X starte werden standardmäßig die System-Audio-Treiber verwendet. Dann muss ich manuell die Einstellungen ändern und sicher gehen, dass sich einige Dinge nicht verändert haben, wie unter Anderem die Sample-Rate.
Ein weiterer Fall ist wenn ich Video- oder Foto-Bearbeitungs-Software öffne ohne eine externe Festplatte angeschlossen zu haben auf der sich die Bibliothek befindet. Dann wird eine neue generische Bibliothek erstellt.
Voraussetzungen
Mit dem folgenden Befehl ist es möglich alle angeschlossenen USB-Geräte aufzulisten. Dies ist der erste Schritt um die Audio-Schnittstelle zu finden.
# List all USB Devices
❯ ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*'
Apple Internal Keyboard / Trackpad
BRCM20702 Hub
Bluetooth USB Host Controller
Duet USB
Damit können wir die Audio-Schnittstelle isolieren.
# Grep Duet USB Device
❯ ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*' | grep "Duet USB"
Duet USB
Der folgende Befehl hilft bei der Identifizierung falls ein Volume namens DATA
gemountet ist.
# List external Disk
❯ mount | grep /Volumes/DATA
/Volumes/DATA
Mit diesen Informationen können wir eine Funktion schreiben und einen automatischen Arbeitsablauf einrichten der unseren Anforderungen entspricht.
Funktion
Sie können dies in Ihre .zshrc
/.bashrc
/etc. einsetzen.
# Music Arbeitsablauf
music () {
RED='\033[0;31m'
NC='\033[0m' # No color
if ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*' | grep "Duet USB" > /dev/null && mount | grep /Volumes/DATA > /dev/null; then
open /System/Library/PreferencePanes/Sound.prefPane
open ~/Music/Sheet\ Music/;
open /Applications/Logic\ Pro\ X.app/;
open /Applications/Apogee\ Maestro\ 2.app/;
else
echo "Both ${RED}`DATA`${NC} and ${RED}`Duet USB`${NC} must be connected to proceed"
fi
}
Beschreibung
Die Funktion music
überprüft ob sowohl Duet USB
als auch /Volumes/Data
angehängt sind. Sie beendet für False
oder fährt mit dem Arbeitsablauf fort.
Die Ausgabe bei Nichteinhaltung der Anforderungen ist:
❯ music
Both `DATA` and `Duet USB` must be connected to proceed.
Nach Bedarf anpassen. Variablen können sein: Duet USB
, /Volumes/DATA
, paths
System-Setup
- OS X 10.11 El Capitan
- ZSH mit
.zshrc
- USB Audio-Schnittstelle
- Externes Laufwerk