Yearly Archives: 2014

2014-08-29

指定したディレクトリ下にあるwavファイルの合計時間(python)

wavファイルの合計時間が欲しかったのだけどsoxとかではあんまりうまく出来ないみたいなので自分で書いてみた。バイナリファイルの処理なので、なんとなくPython。

import sys
import os
import struct
import fractions

if len(sys.argv) != 2:
    print "Usage: python %s <directory>" % sys.argv[0]
    quit()

dir = sys.argv[1]
files = [y for y in [os.path.join(dir, x) for x in os.listdir(dir)] if os.path.isfile(y) and os.path.splitext(y)[1].upper()==".WAV"]

totalSeconds = fractions.Fraction()
for file in files:
    print file
    f = open(file, 'rb')
    riff = f.read(4)
    if riff == "RIFF":
        riffSize, riffType = struct.unpack('<I4s', f.read(8))

        samplesPerSec = 0
        blockSize = 0
        while True:
            chunkType,chunkSize = struct.unpack('<4sI', f.read(8))

            if chunkType == "fmt ":
                formatId,channels,samplesPerSec,bytesPerSec,blockSize,bitsPerSample = struct.unpack('<HHIIHH', f.read(chunkSize))
            elif chunkType == "data":
                totalSeconds += fractions.Fraction(chunkSize / blockSize, samplesPerSec)
                break
            else:
                f.seek(chunkSize, os.SEEK_CUR)

    f.close()

print "totalSeconds " + str(float(totalSeconds))
print "totalMinutes " + str(float(totalSeconds / 60))

なんて書いてみたら、後からwaveライブラリなんてものがあることに気がついたorz。

import wave
w = wave.open("a.wav")
w.getframerate()
w.getnframes()

みたいな感じでサンプリングレートとサンプル数が取得できるんだって。

2014-07-20

2014-07夏の新番組

とりあえず一通り見終わりました。

  • △MX :07/02(水) 23:30~ 幕末Rock
  • ○MX :07/02(水) 24:00~ Free! - Eternal Summer
  • △MX :07/03(木) 22:30~ グラスリップ
  • △MX :07/03(木) 23:00~ 白銀の意思 アルジェヴォルン
  • △MX :07/03(木) 24:00~ 東京喰種トーキョーグール
  • △TBS:07/03(木) 25:46~ RAIL WARS!
  • △TBS:07/03(木) 26:26~ 普通の女子校生が【ろこどる】やってみた。
  • △TX :07/05(土) 10:00~ プリパラ
  • △MX :07/05(土) 24:00~ ALDNOAH ZERO
  • △MX :07/05(土) 25:00~ 少年ハリウッド
  • ○NTV:07/05(土) 26:35~ ばらかもん
  • △MX :07/06(日) 22:00~ 人生相談テレビアニメーション「人生」
  • -MX :07/06(日) 22:30~ さばげぶっ!
  • △MX :07/06(日) 23:00~ スペース☆ダンディ シーズン2
  • ○MX :07/06(日) 24:00~ アカメが斬る!
  • △TX :07/06(日) 25:10~ 月刊少女 野崎くん
  • ×TX :07/06(日) 25:40~ DRAMAtical Murder ドラマティカルマーダー
  • ×TX :07/06(日) 26:40~ 闇芝居 新シリーズ
  • ○MX :07/07(月) 24:00~ アオハライド
  • ○TX :07/07(月) 25:35~ ハナヤマタ
  • -TX :07/07(月) 26:05~ Re :␣ハマトラ
  • △MX :07/08(火) 24:30~ モモキュンソード
  • ○MX :07/09(水) 22:00~ ヤマノススメ セカンドシーズン
  • ×MX :07/09(水) 24:30~ まじもじるるも
  • ○MX :07/09(水) 25:05~ LOVE STAGE!!
  • ○CX :07/10(木) 25:10~ 残響のテロル
  • ○CX :07/10(木) 25:40~ PSYCHO-PASS サイコパス 新編集版
  • △MX :07/11(金) 25:35~ 六畳間の侵略者!?
  • △MX :07/11(金) 25:35~ 東京ESP
  • △CX :07/11(金) 26:10~ 信長協奏曲 -のぶながコンツェルト-
  • △TBS:07/11(金) 26:35~ 黒執事 Book of Circus
  • ×MX :07/14(月) 24:30~ 精霊使いの剣舞

第一話の段階で特に目を引いたものはありませんでした。