Noch weniger Reibungsverluste

In Omni Hijack Professional und Mist wegautomatisieren habe ich bereits beschrieben, wie ich aufnehme und dabei meine Shownotekommentare mache. Gestern habe ich ein wenig rumgespielt, um den Prozess noch ein wenig zu verbessern.

Aufnahmesituation

Während der Aufnahme höre ich also zu, ob AutorInnen genannt werden, die dann in die Shownotes kommen. Wenn ich Glück habe, dann stehen die Namen mit auf der Präsentation. Dann wechsle ich zu Omni Outliner Professional und klicke auf das Script-Icon, wodurch eine neue Zeile erstellt wird. Soweit so gut. Wenn der Name nicht verständlich ist, dann muss ich erstmal suchen, welche Person gemeint sein könnte. Google ist da eine gute Hilfe.

So oder so muss ich noch einen passenden Weblink zur genannten Person raussuchen. In jedem Fall mache ich dann zwei Sachen auf einmal. Weiter zuhören und im Web suchen.

Sachen schnell aus dem Kopf bekommen

Ich habe mir überlegt, dass es ganz cool wäre, wenn ich nur einen Knopf drücken bräuchte, um das Script auszulösen. Das könnte ich nun über ein Tastaturkürzel machen (das wäre die einfachste Variante, bei der ich mir aber das Kürzel merken müsste) oder ich mache es über eines der tollen iDevices. Schon länger wollte ich mal mit OSC, also Open Sound Control, experimentieren. Dazu benutze ich zwei Programme. Auf dem Mac kommt OSCulator zum Einsatz. OSCulator wartet auf einem Port auf OSC oder MIDI Signale. Dabei lassen sich Aktionen definieren, die ausgeführt werden, wenn ein bestimmtes Signal gegeben wird. In meinem Fall wird eine, mittlerweile modifizierte, Version des Apple Scripts für die Shownotes ausgeführt. Dazu später mehr.

Auf iOS gibt es mehrere Möglichkeiten. Ich habe mich für die kostenlose Variante entschieden: Control. Control gibt es für iOS und für Android. In Control lassen sich unterschiedliche Bedienflächen erstellen. Diese geben über OSC oder MIDI Signale an einen Empfänger, in diesem Fall OSCulator, ab. So habe ich mir ein simles Layout für das iPad Mini erstellt, dass eigentlich nur aus vier Buttons besteht. Wichtig ist dabei nur der Add Shownote Button, der ein OSC Signal raus schickt. Eben dieses, welches das Script auslöst.

Bild des Control Bedienfeldes

Das einzige wirkliche Manko an Control ist aber, dass die Dokumentation, sagen wir, nicht wirklich sehr hilfreich ist. Es hat mich doch recht viel Zeit gekostet rauszubekommen, wie ich mit JSON ein Bedienfeld erstellen kann, was macht was ich möchte. Das könnte besser werden.

Kleine Verbesserung im Apple Script

Am Apple Script habe ich ein wenig gedreht um zwei Sachen zu erreichten:

  • Wenn die Ziffer der Stunden oder der Minuten unter 10 ist, wird nicht mehr nur die Zahl angegeben, sondern es wird einen 0 am Anfang ergänzt. Aus 5 wird 05
  • Am Ende des Scripts wird der Omni Outliner in den Vordergrund geholt, damit ich sofort anfangen kann mit tippen

    tell application "Audio Hijack Pro"
        set _ses to first session whose hijacked is true
        set _time to get current recording time of _ses
        if _time > 0 then
            set theHours to (_time div hours)
            if (theHours < 10) then set theHours to (0 as string) & (theHours as string)
            set theRemainderSeconds to (_time mod hours)
            set theMinutes to (theRemainderSeconds div minutes)
            if (theMinutes < 10) then set theMinutes to (0 as string) & (theMinutes as string)
            set theRemainderSeconds to (theRemainderSeconds mod minutes)
            set _cont to theHours & ":" & theMinutes & ":" & (round theRemainderSeconds) as text
            tell application "OmniOutliner Professional"
                set MyDocument to front document
                tell MyDocument
                    make new child with properties {topic:_cont}
                end tell
            end tell
        end if
    end tell
    tell application "System Events"
        set frontmost of process "OmniOutliner Professional" to true
    end tell
    

Insgesamt spare ich mir also das suchen von Omni Outliner, um ihn aufzurufen und ich spare mir das Klicken des Script Icons.

Schnelles Suchen

Noch mehr Arbeit nimmt mir PopClip ab. PopClip ist ein kleines Hilfstool. Es wird aufgerufen, wenn mit der Maus / dem Trackpad Text markiert wird. Angepasst an den jeweiligen Text lassen sich dann Aktionen ausführen. Diese Bedienung ist an das Cut, Copy, Paste auf iOS angelehnt. Über Extensions lassen sich weitere Funktionen hinzufügen. In meinem Fall markiere ich den Text und kann mit meinem Klick eine Websuche oder eine Suche bei der Wikipedia starten. Wenn ich zum Beispiel das 10.000ste Mal die Wikipediaseite von Judith Butler suche, markiere ich einfach den Namen, klicke das Wikipedia Icon und brauche nur noch die URL der Seite kopieren, fertig.

Da geht noch mehr…

… war der erste Gedanke. Der Plan: Über OSC ein AppleScript oder einen (Automator) Dienst aufrufen, der über Apple Script die OPML Datei stript, also von jeder Outline nur den Inhalt des Namestags und die URL stehen lässt (brauch ich ja für Auphonic). Nachdem ich bestimmt drei Stunden daran gesessen habe das in AppleScript umzusetzen habe ich aufgegeben. Ich schiebe es einfach auf Apple Script im Automator, bei dem beim ersten Ausführen ein (nicht näher spezifizierter) Fehler geworfen wird, beim zweiten Ausführen die Operation klappt.
Also habe ich auf Twitter nachgefragt ob mir jemand helfen kann. Und siehe da: 7h3linguist hat sich erbarmt und mir ein Python Script geschrieben, was das Ganze für mich macht. Den Plan mit OSC an der Stelle verworfen und eine Hazel Regel angelegt, die im Ordner für meine Shownotes auf .opml Dateien wartet. Wenn eine gefunden wird, dann wird das Script aufgerufen und die Ausgabe direkt an Sublime Text 2 weitergegeben. Daraus muss der Text nur noch in Auphonic kopiert werden (als Shownotes direkt in der Datei) und in MarkDown, für das Blog, konvertiert werden. Das wiederum lässt sich mit Apple Script in einem Automator Dienst machen:

on replaceText(s, token, withToken)
    considering case
        set defaultDelimiter to text item delimiters of AppleScript
        set text item delimiters of AppleScript to token
        set elements to text items of s

        set text item delimiters of AppleScript to withToken
        set s to elements as string
        set text item delimiters of AppleScript to defaultDelimiter
    end considering
    return s
end replaceText

on trim(strg)
    ignoring white space
        -- do the left trim
        set left_counter to 1
        repeat with J from 1 to length of strg
            if ")
" = (character left_counter of strg) then
                set left_counter to left_counter + 1
            else
                exit repeat
            end if
        end repeat
        try
            set strg to text left_counter through -1 of strg
        on error
            set strg to ""
        end try
        -- end left trim

        -- do the right trim
        set right_counter to -1
        repeat with J from 1 to length of strg
            if "
[" = (character right_counter of strg) then
                set right_counter to right_counter - 1
            else
                exit repeat
            end if
        end repeat
        try
            set strg to text 1 through right_counter of strg
        on error
            set strg to ""
        end try
        -- end right trim
    end ignoring
    return strg
end trim

on run {input, parameters}
    set s to my replaceText(input, ".", ".")
    set s to my replaceText(s, "
", ")
[")
    set s to my replaceText(s, " - ", "](")
    set s to my replaceText(s, "
", "

")
    set s to "[" & s & ")"

    return s
end run

So weit, so gut :)

Kosten

Was kosten nun die verwendeten Sachen so??

Control für iOS ist kostenlos.

  • Hazel: 25$
  • PopClip: 4,49€

OSCulator wird nach dem Motto ’name your price‘ verkauft. Es wird aber ein Preisminimum von 14€ angegeben und ein Preis von 29€ vorgeschlagen.

Comments are closed.