code
Create sensible file names for files from ZOOM audio recorders
On 21, Jul 2016 | No Comments | In code | By admin
Zoom recorders name their files ZOOM0001.WAV, etc. This is not terrible informative. I made a script to auto-generate file names based date of modification of file (to be accurate you need to set the date correctly in the recorder). It is a Haskell script using the turtle and WAVE packages. To run it make sure the packages are installed and do “runhaskell rename_zoom.hs /path/to/your/files”.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE OverloadedStrings #-} | |
import Turtle hiding (x, options) | |
import qualified Data.Text as T | |
import System.Environment (getArgs) | |
import Data.Time.Format | |
import Data.WAVE | |
main :: IO () | |
main = do | |
args <- getArgs | |
let dir = case args of | |
a:_ -> a | |
[] -> "." | |
sh $ do | |
path <- ls $ fromText $ T.pack dir | |
t <- liftIO $ datefile path | |
echo $ format ("Reading "%fp) path | |
wve <- liftIO $ getWAVEFile $ T.unpack $ format fp path | |
let | |
WAVEHeader chs hz bits _ = waveHeader wve | |
waveString = format (" "%d%"chs "%d%"bits "%d%"Hz.WAV") chs bits hz | |
newFileName = T.pack (formatTime defaultTimeLocale "%F %R" t) <> waveString | |
newPath = directory path </> fromText newFileName | |
echo $ format ("Renaming "%fp%" to "%fp) path newPath | |
liftIO $ mv path newPath |
Submit a Comment