Skip to content

Instantly share code, notes, and snippets.

@eazyliving
Last active August 29, 2015 14:02
Show Gist options
  • Save eazyliving/c9da436dd9c3bed8a68a to your computer and use it in GitHub Desktop.
Save eazyliving/c9da436dd9c3bed8a68a to your computer and use it in GitHub Desktop.
read chapters from tascam wavs.
set fh [open $argv]
set bytes [read $fh]
set length 0
while {$length==0} {
binary scan $bytes a4 data
if {$data=="data"} {
binary scan [string range $bytes 4 8] i length
set bytes [string range $bytes [expr $length + 16] end]
} else {
set bytes [string range $bytes 1 end]
}
}
binary scan $bytes i countmarks
set bytes [string range $bytes 8 end]
set count 0
while {$count<$countmarks} {
binary scan $bytes a4 data
if {$data=="data"} {
binary scan [string range $bytes 12 16] i mark([incr count])
set bytes [string range $bytes 16 end]
} else {
set bytes [string range $bytes 1 end]
}
}
set i 0
foreach m [lsort [array names mark]] {
set milli [string range [lindex [split [expr $mark($m) / 44100.0] .] end] 0 2]
puts "[clock format [expr $mark($m) / 44100] -gmt -1 -format %H:%M:%S].$milli Chapter [incr i]"
}
close $fh
@eazyliving
Copy link
Author

Das ist nur ein Test, um zu schauen, wie ich an die Marks komme, die das Tascam (DR40) auf Tastendruck ins WAV schreibt. Die Daten stehen am Ende in einem cue-chunk. Jedes Kapitel hat einen data-chunk, in dem steht, bei welchem Sample die Markierung gedrückt wurde.

Das klappt mit diesem Script erstmal nur mit 16bit, 44.1kHz und 1ch. Kids! Don't try this at home!

@eazyliving
Copy link
Author

Ich werde das in einen Workflow integrieren, den ich für den Podcast "kleine Freiheiten" benötige. Wir nehmen den Podcast mit dem Tascam auf und ich habe keine Lust, die Kapitelmarken mit der Hand auf Papier zu notieren. So drücke ich einfach bei jedem neuen Thema die "Mark"-Taste und muss hinterher "nur" die Kapitelmarken mit Namen versehen.

Das Script soll am Ende die Kapitelmarken als Timestamp in ein mp4chaps-File werfen, das ich auphonic vor die Füße werfen kann. Was man nicht alles macht, um am Ende anständige Metadaten zu haben...

@eazyliving
Copy link
Author

So. Das bleibt jetzt mal so. Ausgabe ist ein mp4chaps-File auf stdout. Wird auch für die Hörsuppe Verwendung finden :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment