S Rec 説明書
能書き
ハードディスクレコーディングします。
無音で区切って、さらに正規化・MP3またはWMA変換(※1)まで行います。
まあ、それだけなのですが、いままで手動で切り分け・MP3化をやっていた人にとっては
非常にありがたいものと思われます。(※2)
フリーソフトです。ソース公開(※3)です。やっぱシェアウェアね、なんてことはしません。
(※1)MP3変換には午後のこ〜だDLL、WMA変換にはWMAエンコーダが必要です。
(※2)WAVファイルを編集する機能はありません。そのような機能を統合するメリットは無いというか操作が複雑になるだけなので追加する気はありません。
(※3)適当にURL叩いてゲットしてください。ファイル名は srecNNsrc.zipです。
インストール
srec70h1.zip を展開し、適当なフォルダに入れてください。
他に、Windows Media Encoder が必要です。起動できなかったら WinAmp などを入れてみてください。
または srec 0.70を使用してみてください。
掲示板に新しいものがあったりするのでたまにチェックしてみてください。
http://kazunori.148ra.com/bbs/minibbs.cgi
(きちんとリリースするときはこのドキュメントを修正しなければならないので面倒・・・)
レジストリはいじらないので、ファイルを消すだけでアンインストールできます。
使い方 〜基本〜
[REC] ボタンを押すと、指定されたフォルダ(デフォルトはカレント)に ファイル名プレフィックス001.wav で録音します。
[無音で区切る]のチェックボックスがチェックされている場合、無音を検出すると、録音中のファイルは閉じて、番号を増やして録音準備します。
再び有音(?)を検出すると、録音を再開します。
[STOP] ボタンを押すと、録音を終わらせます。
[SKIP] ボタンを押すと、現在の曲のファイルを生成しません。次の曲から再び録音します。
SPECTRUM ラジオボタンを押すと、表示がスペアナになります。
LEVEL ラジオボタンを押すと、表示がレベルインジケータになります(デフォルト)。
LEVELが動かない場合はWindowsのボリュームコントロールで正しいソースが選択されているか確認してください。
使い方 〜MP3化〜
GOGO.DLL が存在すると、午後のこ〜だを使用して MP3 エンコードすることが可能になります。[午後る]をチェックしてください。
MP3吐き出し後、WAVファイルを消すこともできます。[生WAV]のチェックをクリアしてください。
[午後る]の横の[設定]をクリックすると、午後のこ〜だのオプション設定ができます。
オプションについての詳細は午後のこ〜だのドキュメントを参照してください。
最適な設定は? と聞かれることが良くあるんですが、私は知りません。
使い方 〜WMA化〜
Windows Media Encoder が存在すると、それを使用して WMAエンコードすることが可能になります。
Windows Media Encoder が存在しないと S Rec 起動時にエラーが出て起動しません。起動できたら WMA化も可能です。
起動できなかったら WinAmp でも入れてやってください。
WMA化する場合は[WMA]をチェックしてください。
[WMA]の横の[設定]をクリックすると、WMAのオプション設定ができます。
オプションについての詳細は、知りません。すいません。
使い方 〜アナログ録音〜
古いバージョンではデジタル録音が前提であったため、レベルが完全にゼロの場合を無音と判断していました。
そのため、アナログ録音や、ノイズ混じりのデジタルソースの録音の場合、無音が検知できませんでした。
最新版では無音判断の基準を設定することができるため、アナログ入力でも曲間を認識できるようになりました。
無音判断グループボックスの中の[設定]をクリックすると無音区切りの設定ダイアログが表示されます。
・音量閾値(しきいち)
0〜32767 で指定します。最適な値は無音時のノイズ量によります。ノイズが多い場合は大きめに設定します。
自動設定のボタンを押すと、現在のレベルの1割増の値を閾値とします。無音のときに押してください
・継続時間
音量閾値で設定した音量を下回る時間が、ここで設定した時間だけ継続したら無音と判断します。
無音検出時間は S Rec の内部バッファサイズ単位(1024サンプル)で指定しますので、
48kHz で録音している場合、48と指定すると約1秒の無音が続いたときに曲間と判断されます。
0を指定すると、区切りません。
1を指定すると、0.53以前と同じ動作をします(デフォルト)。
検出時間を1秒とすると、すべての曲の最後に1秒の無音(と判断される音量の音)が録音されます。
曲間検知で分割ではなく、無音検知で分割です。ライブ録音など、曲間にも音がある場合は当然区切れません。
また、曲中に無音があると区切れてしまいます。
・区切った結果が短いときは保存しない
無音に聞こえていても微妙に音量が変化しています。それを有音と検知し、小さいファイルが生成される場合があります。
小さいファイルは誤検知だろうということで、録音直後に消してしまうのがこのオプションです。
指定したサンプル数以下のファイルを消します。
48kHz で録音している場合、48000で1秒です。
・曲の先頭に挿入する無音時間
・曲の最後に挿入する無音時間
プレイヤーによっては曲間を入れずに連続再生するものがあり、異常に曲間が短いと聴いてて落ち着かない方がいらっしゃるようです。
そのためファイル(曲)の先頭または最後に無音をいれて、曲間を伸ばします。
→無音で区切る設定のコツ
使い方 〜タイマ〜
0.50 からタイマ録音に対応しました。
開始時刻と録音時間を入力して「セット!」を押すだけの簡単操作(?)です。
開始時刻が過去の場合、勝手に録音を開始し、開始時刻+録音時間の時刻に停止します。
[今から]をチェックすると、開始時刻を現在時刻(「セット!」を押した瞬間の時刻)にします。
[終了後電源断]はタイマによる録音が終了したあと、PCの電源を切ります。Win98でチェックしました。
その下の意味不明なコンボボックスは、Win95/98/Meの場合は[SHUTDOWN]を選択してください。WinNT/2000/XPの場合は[POWEROFF]を選択してください。
そのさらに下のコンボボックスは、基本的には[通常]のままでかまいません。しかし、共有フォルダにアクセスされた場合など、
「ほんとに電源切ってもいいの?」との旨のダイアログが表示されて電源が切れない場合があります。
そのような状態になることが想定される場合は[FORCE]などを選択してください。
Windows2000/XP以外では FORCEIFHUNG は選ばないでください。
録音開始待ちのまま終了すると、次回起動時にもタイマの設定が残ります。BIOSでのタイマ起動などで使うと便利かも。([今から]との併用はできません。)
使い方 〜設定ファイル〜
終了時、srec.exe があるフォルダに srec.ini ファイル(設定ファイル)を生成します。
一応、行頭に # を付けるとコメントとなります。
しかし、終了時に必ず生成し、しかも、内部情報から安直に吐き出すのみなので、コメントは削除されます(^^;
GUI で設定できない項目があります。以下に示します。
- NormalizeLevel
正規化時に、指定された固定の値で正規化します。
ソースのレベルがあらかじめ分かっている場合に便利です。
level(t)*32767/NormalizeLevel となります。
最大レベルにしたいレベルを 0〜32767 で指定してください。
0だと録音後に自動判別します。
ちなみにこのオプションを指定すると、LEVEL時のインジケータは
正規化後のレベルを表示します。
- TransThreadPriority
変換スレッドを指定されたプライオリティにします。通常、0 です。
心配性な方は -1 や -2 を指定してください。変換スレッドの優先度が下がります。
プラスの値を指定すると不安定になりそうで怖いので、私は試してません。
使い方 〜その他〜
・録音サンプリング周波数はS Recを起動し直したときから有効になります。
・[音量正規化]がチェックされていると、録音後に正規化します(level(t)*32767/peak)。
→正規化、カタカナで書くとノーマライズとは、ソースによってバラバラな音量を決められた値に直すことです。デジタル録音では一般に、表現できる一杯まで音量を大きくすることを言います。
・[48k->44.1k]がチェックされていると、録音後にサンプリングレート変換します。
・[生WAV]がチェックされていると、WAVファイルを保存します。
・[タイムスタンプを録音開始時刻に]がチェックされていると、録音後、ファイルのタイムスタンプを録音開始時に変更します。
→定刻で放送されるラジオなどを録音する場合、感覚的に便利です。
・各種変換中は終了できません。
・終了時、srec.exe があるフォルダに srec.ini ファイル(設定ファイル)を生成します。
→複数の設定を管理したい場合、SRec.exe を置くフォルダを複数作ると便利かも知れません。
使い方 〜音飛び対策〜
自作マシン(MMX200, Win95 OSR2)では、エンコードが実時間以上にかかります。残りファイルがどんどん増えていきます。
それでも、音飛びせずに録音できています。
しかし、最近の GHzオーダーのマシンでも音飛びすることがあるようです。
対策をいくつか。
・余計な操作をしない。余計なソフトを入れない。専用マシンを作ることを推奨。
・ハードディスクのDMAを入れたり切ったりしてみる
→DMAを入れるとハードディスクのパフォーマンスが上がります。
しかし、DMAがバスを占有してCPUが動けなくなる(音飛びする)場合があります。
ということで、DMAを外すを調子いい場合もあります。
・ハードディスクをデフラグしておく
・ハードディスクを2台用意し、片方を一時フォルダ、もう片方を録音フォルダにする。
・メモリのサイズを変える。Win95/98/Me の場合、メモリが多いとOSが余計にキャッシュして、キャッシュのフラッシュ時に音飛びすることがあります。
余計なキャッシュを抑制するため、メモリを少なくすると音飛びしなくなる場合があります。64MBytes 推奨。WinNT/2000/XP の場合は128MBytes以上に増設しましょう。
・CD-R All Write 環境下で使うのもよいらしいです。
・USB接続のオーディオデバイスは音飛びしやすいです。PCI接続のボードをお勧めします。
・音飛び対策の究極は専用マシンを作ることです。余ったパーツで作るも良し、友人から譲り受けるも良し、リサイクルにご協力を。
注意
・ファイルの上書きチェックはしません。強制的に上書きです。気をつけましょう。
・他のアプリケーションは終了させることをお勧めします。
・エラー処理が弱いですが、MO でディスクフルになっても落ちなかったので大丈夫だと思います。
・でも、C: がディスクフルになるのは危険なので注意したほうがいいと思います。
・4096Bytes (1024sample ≒ 23msec)毎にバッファリングして処理しているので、
ファイルの長さはその倍数(+ヘッダ36bytes)になります。
そして無音区間の検出も、バッファリングした 4096bytes が全部閾値以下かをチェックしてます。
なので、頭やケツに、最悪で 1023sample の無音が録音される場合があります。
が、聴感上は関係無いです。
・SPECTRUMを選択すると、遅いマシンでは固まると思います。遅いマシンの場合はハードウェアをアップグレードするか、二度とSPECTRUMを押さないでください。
・最近、SPECTRUM を使ってないので、不安定かもしれません(汗
動作環境
Win32アプリケーションなので Windows95/98/Me, WindowsNT4.0, Windows2000/XP で動作します。
CPU は x86 のみです。WindowsNT 3.51 とかは未確認です。
最近は VAIO PCV-R60 (PenIII500改, Win2000 sp1)で開発し、BookPC (Celeron300A@300MHz WinME)で動作確認しています。
最近は i815チップセットなマザーにCeleron 333MHz を乗っけたマシンでスターデジオを録音してます。
著作権・免責など
著作権はるきへなにあります。
作者はるきへなとunazさん(48kbps->44.1kbps変換部)です。
期待通りの動作をするよう、最大限の努力を払っておりますが、無保証です。
リンクは自由に。事後連絡いただけるとありがたいです。
無断で転載することは禁止します。
オープンソースなので改良できる方はご協力ください。
あなたが S Rec で録音したものは、個人として楽しむなどの他は、著作権法上、権利者に無断で使用できません。
午後のこ〜だって?
MP3エンコーダです。
http://homepage1.nifty.com/herumi/
その他
S Rec ってセパレート録音の意味で付けたような気がします。S と Rec の間にスペースが入ること、S と R が大文字で ec が小文字であるのが正しい名称です。
MD から MP3 にしようと思って、これを作りました。
低レベルオーディオAPIを叩く実験というのもコレを作ったキッカケです。
こちらで紹介されてから、MP3変換などを入れてみたくなりました。
スレッドを使ってみる実験の意味合いもあったりします。
その後、スターデジオを録音するようになりました。
プロセスの起動は重いらしいので嫌いで、午後のこ〜だは DLL を使うようにしてますが、exe版を使っても実際には音飛びしないんじゃないかなぁとか思ってますが、もう試す気はありません。
Lame とか Ogg Vorbis とかはチェックボックスがあるだけで教えてクンが出現するので対応しません。
Lame とか Ogg Vorbis とか知ってる人は他の凝ったソフトを使いこなせると思います。
最近、雑誌の1ページを占めることがあったりして、ビビってます。
履歴
1998/09/23 Ver 0.01
作ってみたので公開
まだ名前が LowLebelAudioTest(^^;
1998/09/26 Ver 0.10
名前をちゃんとつけた
フォルダ・ファイル名を変更可能にした
音量インジケータもどきを付けた
やっとマトモ風アプリになった
コールバックを関数でなく、メッセージにした(だから何?)
バージョン情報はデフォルトのまま(^^;
1998/09/26 Ver 0.20
スペアナもどきを付けた。
ディスクフルでストップするようにした。けど、ヘッダが変なままになる。
2000/03/02 Ver 0.30b1
午後のこ〜だ(GOGO.DLL)によるMP3エンコード対応
アナログ入力(無音閾値)対応
2000/03/05 Ver 0.30b2
MP3エンコードの処理をスレッド化
UIをちょっぴり修正
サンプリング周波数だけ設定を保存
2000/03/05 Ver 0.30b3
2000/03/08 Ver 0.30b4
unaz さんによるサンプリングレート変換対応
プログレスバーを豪華3本立て(?)に
録音中・変換中は終了できないようにした
2000/03/20 Ver 0.30b5
午後のこ〜だのオプション設定をできるようにした。
各種設定を保存するようにした。
サンプリングレートを変更したときにメッセージを出すようにした
最後にゴミファイルができるバグをFix.
MFC をスタティックリンクにした。
裏スレッドを上品に殺すようにした。
変なアイコンを描いてみた。
2000/04/02 Ver 0.30b6
[SKIP]ボタンを追加。
変換スレッドのプライオリティを変更できるようにした。(GUIはまだ。)
曲の最初と最後に無音を入れられるようにした。(GUIはまだ。)
各種設定を保存する srec.ini ファイルが録音用のフォルダに作成されてしまうバグをFix.
2000/04/10 Ver 0.30b7
[SKIP]ボタンを押したあとの表示を修正。
正規化の際に固定の値で正規化できるようにした。(GUIはまだ。)
2000/04/11 Ver 0.30b8
正規化にエンバグしてしまったものの FIX.
正規化に使ったピーク値をデバッグログに吐き出せるようにした。
2000/04/12 Ver 0.40b1
OLEオートメーションを実装(^^;
Rec,Stop,Skip のみ。
2000/05/06 Ver 0.50
OLEオートメーションを実装しても、誰も使ってくれないので削除
タイマー追加
バージョンからβを取った。でも既知のバグは健在。
2000/05/22 Ver 0.51
44.1k 以外のとき、WAVヘッダが変になるバグを Fix.
2000/06/11 Ver 0.52
タイマに「今から」を追加
タイマ録音終了後、電源を切れるようにしようと思ったがバグバグ
録音後、ファイルのタイムスタンプを録音開始時に変更できるようにした
2000/06/25 Ver 0.53
タイマ録音終了後、電源を切れるようにしようと思ったがバグバグだったのを直してみた
タイマの設定をiniファイルに永続化。
2000/07/20 Ver 0.54
2000/07/26 Ver 0.55b1
WAVデバイスオープン時のエラーメッセージを詳しくしてみた。
2000/08/19 Ver 0.56
2000/10/08 Ver 0.57
0.52 で作成した「録音後、ファイルのタイムスタンプを録音開始時に」の機能が実は WAV に対してしかやってなくて、MP3 ファイルはそのままだったので修正。
電源を切る方法をちょっぴり修正。(::ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0);)
2000/10/xx Ver 0.58
WMA対応を作ってみたけど謎のハングアップに見舞われ断念。
だれか作ってぇ〜。途中のソース
2000/11/26 Ver 0.59
[ENTER],[ESC]押下時に終了してしまうバグをFIX。
タイムスタンプが前の曲の終了時になってしまっていたバグをFIX。
WAVヘッダを WAVEFORMAT ベースのものから WAVEFORMATEX ベースのものに変更。
2000/12/25 Ver 0.60
1.タイムスタンプ変更時に落ちるバグをFix.
Akiraさんありがとう。
2.WMA対応
これは昔やったが 1. のバグが WMA のバグだと思って諦めてた。
原因がわかったので復活。gogo.dll の行方も不安だし。
3.午後の設定の出力周波数の設定が変だったのをFix.
コードを見てて気づいた。44100以外は誰も使ってなかったらしい。
4.モノラルとか8bitとかに対応しようと思ったけど未完成
Win32APIに渡す形式を指定するだけジャンとか思っていたけれども、
レベルメータとか無音判断とかエンコードとかに影響するので面倒。
でも、srec.ini ファイルをいじればなんとなく使えてしまうかも。
でも、エンコーダに渡したりするとバグるかも。
5.ダイアログデザインをちょっと変更。
2. 3. 4. の影響を受けてます。
配置を流れ順っぽくしました。
2000/12/25 Ver 0.61
モノラルとか8bitとかの設定の無効化
WMA録音後にちゃんとクローズ
リンクオプション変更(LNK2005回避)
WMAが無い場合のビルドに対応(WMAENABLE を外しましょう)
WMAラッパークラスのインスタンスのリークを除去
最小化ボタンをつけた
2001/01/01 Ver 0.62
無音判断時、DCオフセット考慮
正規化時にDCオフセットキャンセル
正規化係数指定GUI追加
正規化の演算の丸めを切捨てから四捨五入に
プログレスバーの雰囲気を変えた。
ソースの整理(各種変換を追加しやすいように(自分的にだが))
入力デバイス選択可能に。
2001/01/02 Ver 0.63
2001/01/04 Ver 0.64
ディエンファシスデバッグ (Akiraさん、ありがとう)
2001/01/05 Ver 0.65
正規化がバグっていたのを修正(unsigned で計算してた)
一時ファイルと保存ファイルのフォルダを分けた
WTC さんの wavefs44 を統合
録音時間表示
GUIのレイアウトを変更
2001/01/06 Ver 0.66
左右チャネルが逆になるバグをFIX (0.60からバグってた)
ピークホールド表示(手動リセットタイプ)
無音で区切る設定を別窓に
無音で区切るチェックボックスを追加
無音閾値の設定を以前の2倍にしなければならない。
微小ファイル削除機能追加
曲前曲後に無音を追加する機能のGUI設定を追加
WAVヘッダ形式選択GUI追加
2001/01/08 Ver 0.67
ピークホールド値の再表示を常に行っていたバグをFIX
電源断をNT/2000にも対応したつもり
チェックしてなくても電源断することがあったバグをFIX
スキップ中も録音時間を表示してしまっていたバグをFIX
2001/01/08 Ver 0.68
電源断のオプションを選べるようにした
午後るでフォーマット・拡張子を指定可能に
2001/01/28 Ver 0.69
非常に短いファイルの変換時に落ちるバグを修正しました。
2001/04/23 Ver 0.70
アイコンのデザインを変えた(Omoilite,さん、ありがとうございます)
バッファサイズを可変にした(iniファイルのみ。GUIなし)
プライオリティクラスなどを変えられるようにした。(iniファイルのみ。GUIなし)
フォルダ指定の最後に \ をつけてもつけなくてもよいようにした。
最近ではファイル存在チェックが邪魔していたらしい・・・。
2001/11/16 Ver 0.70h1
るきへな webmaster@rukihena.com
よくあるしつもんとかいとう
BBS
S Rec専用というわけではないですが。