Beatportでモめた
デジタル音楽配信の利用をためらわせる理由にシステムトラブルへの不安が挙げられる。先日自分も遭遇した。その顛末を書いておく。
- Beatport にてファイルを購入する。
- 支払いを終えダウンロードを試みるとエラー発生。"The file you requested was not found." (ファイルがない) とのメッセージが表示される。
- 時間をおいてアクセスしても状況変わらず。有効ダウンロード期限である4時間以内に解決の見込みなし。
- カスタマーセンターに連絡。download issue であること、エラーメッセージの全文、当該楽曲の詳細、正常なダウンロードもしくは返金の要求。
- 返答、エラーの原因について「楽曲は削除されておりダウンロードできない」
- 返金について「支払い額分を Beatport にクレジットした。次回の購入に充当できる」
今に至る。対応にはひとまず納得しているが、問題視すべき部分もある。
まず、既にサーバから削除されているダウンロード不能な楽曲ファイルをカタログに掲載し続け販売可能な状態においてあった点。そして、無効な売買契約に対し返金が行われない点。賠償としてのクレジットを贈られたが、もし僕が二度と Beatport を利用しなければ結果として詐取と変わりない。楽曲が削除された理由は明かされていないが、おそらくレーベルの契約が切れているのにデータベース上からカタログだけが削除されないまま残ってしまったのだろう。
問題が起きたのは1曲だけで金額的には瑣事だが、その曲は Beatport でしか販売されていなかった。そうでもなければ問い合わせの時間を惜しんでいただろう。結局は金も、金で買えないものも失った。
デジタル配信サービスには様々なシステムトラブルが起こりうる。システムの信頼性は配信サイトのネームヴァリューとは独立した問題であり、安全を確約するシステムは存在しない。この件での Beatport のサポートは誠意のある部類に入ると思うが、もっとひどいケースは十分考えられる。システムレヴェルの問題をユーザーが解決することはできないが、初めて利用する配信サイトではまず1曲だけ買ってみる、といった損害を最小限で済ませるための自衛意識が求められるだろう。
関連 : シェアウェアでモめた
はてなブックマークリニューアル用設定
ユーザスタイルシート
不要な情報表示を削ったもの。Opera で動作確認。
/* ユーザページ (id="hatena-bookmark-user") */ html,body,tr,td,th,a,p,div { font-family:メイリオ !important; line-height: 170% !important; } div.main { padding:20px 20px 40px 20px !important; } /* リンク基本色 */ a { text-decoration: none !important; } a:hover { color:#FF479F !important; text-decoration: none !important; } /* ヘッダタイトル */ div#user-header h2 { font-size: 18px !important; letter-spacing: 3px; font-weight: normal !important; font-family: "Lucida Sans Unicode" !important; } /* はてなブックマーク > underthemoon bookmark */ .breadcrumbs {display: none;} /* ユーザーアイコン消し */ .profile-icon {display: none;} .profile-image {display: none;} li.followers {display: none;} /* お気に入りユーザ表示消し */ ul.threshold li { color: #fff !important; } ul.threshold li a { color: #fff !important; background-color: #fff !important; } ul.threshold li.selected { background: url() left top no-repeat !important; } ul.threshold li.selected a { background: url() right top no-repeat !important; } /* ブックマーク/お気に入り/コレクション タブ */ .user-module a, .user-bookmark a { color: #333 !important; } /* ブックマークエントリ */ h3 a { font-size: 15px !important; color:#333 !important; text-decoration: none !important; line-height: 150% !important; } /* ドメイン */ .domain { font-size: 12px !important; color: #bbb !important; /* ドメイン右寄せ */ /* float: right !important; */ } /* カテゴリ消し */ li.category {display: none !important;} /* ブックマークユーザ名消し */ /*.username {display: none !important;}*/ .curvebox-header { background-color: #CCC !important; } /* コメントボックス CURVE BOX BLUE {{{ */ div.curvebox-body { border: 1px dotted !important; padding: 4px !important; border-color: #ccc !important; background: #fff !important; } div.curvebox-lb-bottom, div.curvebox-lb-header, div.curvebox-color-bottom, div.curvebox-color-header, div.curvebox-gray-bottom, div.curvebox-gray-header, div.curvebox-bottom, div.curvebox-header { background: url() no-repeat right top !important; } div.curvebox-lb-bottom div, div.curvebox-lb-header div, div.curvebox-color-bottom div, div.curvebox-color-header div, div.curvebox-gray-bottom div, div.curvebox-gray-header div, div.curvebox-bottom div, div.curvebox-header div { background: url() no-repeat right top !important; } #bookmarked_user li div.curvebox-header { margin-top: 0 !important; } div.curvebox-bottom {margin-bottom: -10px !important; } /* コメント編集欄 */ .inplace-form input { font-family: メイリオ !important; font-size: 13px !important; } .inplace-form input.comment { width: 75% !important; } .bookmark-appender-cancel { font-family: メイリオ !important; } /* コメントタグ */ span.tags {color: #fff !important;} span.tags a {color: #db2abff !important;} /* コメントフォント */ span.comment { font-family: メイリオ !important; color: #555 !important; } span.delete-bookmark { font-family: メイリオ !important; color: #333 !important; } /* ID & タグ タイトルバー (緑色) */ div.sidebar div.hatena-module-title { background: transparent url() top left no-repeat !important; } div.hatena-module-title h3 { font-family: メイリオ !important; color: #555 !important; } div.sidebar div.hatena-module-body {border-top: 1px solid #ccc !important;} /* ブックマークユーザ数 */ .users {font-size: 10px !important;} strong a:link, strong a:hover, strong a:visited { color: #FF479F !important; background: #FFF !important; font-weight: normal !important; } em a:link, em a:hover, em a:visited { color: #FF479F !important; background: #FFF !important; font-weight: normal !important; } .users a {color: #999 !important;} .users a:hover {color:#FF479F !important;} /* ユーザー回りこみ */ /* li.users {float: right !important;} */ /* 日時 */ span.timestamp { color: #aaa !important; float: right !important; } /* ブックマーク数&お気に入られ フォント */ span.label { color: #333 !important; font-family: メイリオ !important; font-weight: normal !important; } .hatena-module-body a {color: #333 !important; } .hatena-module-body a:hover {color:#FF479F !important; } /* ブックマーク数ファビコン消し */ .users { background:url() no-repeat left center !important; } /* タグクラウド */ a.tag { font-family: "Times New Roman" "Trebuchet MS" メイリオ !important; color: #555 !important; } a:hover.tag { color:#FF479F !important; } ul.tag-cloud li.tag-cloud-size-0 a { color: #949494 !important;} ul.tag-cloud li.tag-cloud-size-1 a { color: #8a8a8a !important;} ul.tag-cloud li.tag-cloud-size-2 a { color: #808080 !important;} ul.tag-cloud li.tag-cloud-size-3 a { color: #767676 !important;} ul.tag-cloud li.tag-cloud-size-4 a { color: #6c6c6c !important;} ul.tag-cloud li.tag-cloud-size-5 a { color: #626262 !important;} ul.tag-cloud li.tag-cloud-size-6 a { color: #585858 !important;} ul.tag-cloud li.tag-cloud-size-7 a { color: #4e4e4e !important;} ul.tag-cloud li.tag-cloud-size-8 a { color: #444444 !important;} ul.tag-cloud li.tag-cloud-size-9 a { color: #3a3a3a !important;} ul.tag-cloud li.tag-cloud-size-10 a { color: #303030 !important;} ul#related-tags li { font-size: 17px !important; line-height: 130% !important; } /* 次のn0件 */ div.pager {font-size: 11px !important;} div.pager a {color: #333 !important;} div.pager a:hover {color:#FF479F !important;} /* feed消し */ div.feed {display: none !important;} /* 検索フォーム */ div#user-search-area input { font-family:メイリオ !important; width: 150px; } /* 検索結果 */ .result-window a.url, .result-window a.url:hover, .result-window a.url:visited, .result-window a.url:link { color: #aaa !important; } .result-window a.user { color: #999 !important; } .result-window h3 a {font-size: 14px !important;} .result-window { width: 600px !important; /*height: 600px !important;*/ /* Opera用 検索ポップアップ位置修正 */ position: absolute !important; Top: 80px !important; border:6px solid #ddd !important; font-size: 14px !important; } .result-window div.pager span.shown { color: #333 !important; } .result-window div.progress-bar { height: 5px; background-color: #bbb !important; width: 0%; font-size: 1px; line-height: 0; } /* コレクション */ #bookmarked_asin { margin: 2px !important; overflow: visible !important; } #bookmarked_asin li { width: 150px !important; margin: 0px !important; padding: 5px !important; overflow: visible !important; } #bookmarked_asin li a.thumbnail { width: 150px !important; height: 150px !important; margin-bottom: 0px !important; overflow: visible !important; } #bookmarked_asin li span.users { display: none !important; } /* ---------- 旧ブックマークレット用 (b.hatena.ne.jp/add?mode=confirm) ---------- */ /* 全体の横幅 */ body#hatena-bookmark-bookmarklet { font-size: 13px !important; margin: 5px 8px 8px 8px ; width: 600px !important; } /* 警告エリア背景色 */ p.bookmarked-confirm { background: #eee !important; /* display: none !important; */ } /* ブックマークタイトル */ table.bookmarklet p#title-edit span.title { font-weight: normal !important; } /* ブックマークURL */ table.bookmarklet a { color: #777 !important; } /* コメント入力欄 & 追加/更新ボタン */ table.bookmarklet input { font-size: 13px !important; font-family: メイリオ !important; } /* コメント欄 横幅 */ input#comment {width: 420px !important;} /* タグ注意書き消し */ p.bookmarklet-notice {display: none !important ;} /* おすすめタグ消し */ dl.recommend-tags {display: none !important ;} /* タグクラウド文字サイズ是正 */ dl.all-tags dd { font-size: 100% !important; } /* タグクラウド背景色 */ dd#all-tags { background: #fff !important; } /* タグクラウド文字色 */ dd#all-tags span.tag { color: #666 !important; border: none !important; } /* タグ選択色 */ #hatena-bookmark-user-add dd#all-tags span.tag-selected, #hatena-bookmark-user-add dd#recommend-tags span.tag-selected, dd#all-tags span.tag-selected, dd#recommend-tags span.tag-selected { background: #888 !important; color: #fff !important; } /* ---------- エントリページ (b.hatena.ne.jp/entry/) ---------- */ /* エントリタイトル */ body#hatena-bookmark-entry div.entry-info h2.entrytitle { font-size: 20px !important; } /* 参考になった */ body#hatena-bookmark-entry span.interest, body#hatena-bookmark-entry span.interest-count { display: none !important; } /* ブックマークコメント */ body#hatena-bookmark-entry div.curvebox-lb-body { font-size: 13px !important; } body#hatena-bookmark-entry ul#bookmarked_user span.comment { color: #111 !important; } /* エントリ詳細 */ body#hatena-bookmark-entry blockquote { display: normal; font-family: メイリオ !important; } /* 時刻 */ body#hatena-bookmark-entry .timestamp { color: #666 !important; } /* 関連ダイアリ消し */ body#hatena-bookmark-entry h2.comment bookmark-list, body#hatena-bookmark-entry h2.reldiary { font-family: メイリオ !important; letter-spacing: normal !important; } /* ---------- トップページ用 (b.hatena.ne.jp/) ---------- */ /* ヘッダカテゴリボタン消し */ div#category { display: none !important; } /* エントリ詳細 消し */ body#hatena-bookmark blockquote, body#hatena-bookmark-hotentry blockquote, body#hatena-bookmark-entrylist blockquote, body#hatena-bookmark-hotentrynews blockquote, body#hatena-bookmark-entrylistnews blockquote { display: none !important; } li.tags { display: none !important; } #container { margin: 0 20px !important; padding: 10px 10px 0 10px !important; } #sidebar { float: left !important; width: 100% !important; margin-left: 10px !important; }
検索クエリ
http://b.hatena.ne.jp/user/?q=
以前の "?word=" から "?q=" に変更された。インクリメンタルサーチの実装により独立した検索結果ページは消滅したが、クエリに単語を入れて投げると検索開始状態でブックマークページを開く。
Proxomitron 検索結果の表示を高速化するフィルタ
前述の検索クエリで外部からブックマーク検索をかけた場合、トップページのブックマークとタグクラウドを表示した後に検索ポップアップを表示するためリニューアル前と比べ無駄があり遅い。レンダリングを速めるため検索結果のみを表示させるスタイルシートを Proxomitron で挿入する。
[Patterns] Name = "Hatena Bookmark : UserPage CSS : Search Simpler" Active = TRUE URL = "b.hatena.ne.jp/user/?q\=" Limit = 20 Match = "(^(^</head>))$STOP()" Replace = "\r\n" "<!-- User Search Simpler -->\r" "<style type="text/css">\r\n" ".main { display: none !important; }\r" "ul#tags { display: none !important; }\r" "</style>\r" "\r\n"
または、 ul class="menu" を \k でも可。
Proxomitron コメント欄のブックマーカを消すフィルタ (ユーザページ用)
コメント欄でタグの前に表示されるブックマーカは自分のページに不要だが他人のだと必要な場合がある。Opera のユーザスタイルシートはドメイン単位で管理されるため URL からアカウントを判別できない。 Proxomitron で自分のページにだけ削除用のスタイルシートを挿入する。
[Patterns] Name = "Hatena Bookmark : UserPage CSS" Active = TRUE URL = "b.hatena.ne.jp/user/" Limit = 20 Match = "(^(^</head>))$STOP()" Replace = "\r\n" "<!-- User CSS -->\r" "<style type="text/css">\r" ".username { display: none !important; }\r" "</style>\r" "\r\n"
Proxmotron はてなスターを非表示するフィルタ (ユーザページ用)
ユーザページで "Add Star" ボタンが消える。星も消える。
[Patterns] Name = "Hatena Bookmark : Prevent Hatena Star (UserPage)" Active = TRUE URL = "b.hatena.ne.jp/user/" Limit = 50 Match = "Hatena.Bookmark.Star.loadStar\('ul.comment li'\)$STOP()" Replace = "<!-- Prevent Hatena Star -->"
カラーテーマを強制固定する
ブラウザを再起動するとカラーテーマがデフォルトに戻ってしまうのでデフォルトのカラーテーマ自体を任意に置き換える。スタイルシートで指定できない一部の画像置換に Proxomitron を併用する。
- スタイルシート (Monotone)
/* MONOTONE {{{ */ #header { border-color: #bdbdbd !important; background: #f9f9f9 !important; } #header #searchtext { border-top-color: #a5a5a5 !important; border-right-color: #f2f2f2 !important; border-bottom-color: #f2f2f2 !important; border-left-color: #a5a5a5 !important; color: #333 !important; } #header #search { background-image: url(/images/formseparator-mt.gif) !important; } #header #navigation ul li a { color: #000 !important; } div.tabbar, div.tabbar ul.tab li a, div.tabbar ul.tab li.selected a, h2.hotentry { background-position: right -120px !important; } h2.newhotentry { background-position: right -270px !important; } div.tabbar ul.tab li, div.tabbar ul.tab li.selected { background-position: left -120px !important; } div.tabbar ul.tab li.selected a { color: #666 !important; } div.tabbar ul.tab li a { color: #999 !important; } div.tabbar ul.tab { background-image: url(/images/entry_title_bg_left-mt.gif) !important; } ul.threshold li a { color: #b3b3b3 !important; } ul.threshold li.selected { background-position: left -104px !important; } ul.threshold li.selected a { background-position: right -104px !important; } #colorselecter img { background-position: left -60px !important; } div.curvebox-color-body { border-color: #ccc !important; background: #f9f9f9 !important; } div.curvebox-color-header { background-position: right -150px !important; } div.curvebox-color-header div { background-position: left -150px !important; } div.curvebox-color-bottom { background-position: right -165px !important; } div.curvebox-color-bottom div { background-position: left -165px !important; } div.sidebar div.hatena-module-title { background-image: url(/images/sidebar_h3_bg-mt.gif) !important; } #searchmain div.search_container div input.inputtext { background-position: left -140px !important; } #searchmain div.search_container div input.inputbutton { background-position: right -140px !important; color: #333 !important; } /* }}} */
- Proxomitron フィルタ (Monotone)
[Patterns] Name = "Hatena Bookmark : Color Theme (Monotone)" Active = TRUE URL = "b.hatena.ne.jp/" Limit = 32 Match = "(logo1|logo2|" "searchbutton|" "title_hotentry|title_newhotentry|title_newsindex|" "title_hotvideo|title_hotasin" ")\1.gif" Replace = "\1-mt.gif"
Mid/Side分離ルーティング
概要
ステレオ信号をセンター成分 (Mid) とステレオ成分 (Side) に分離し、それらを合成して再び元の信号に還元する方法。
ルーティング
(図1. ミキサルーティング)
- 1. 元になるオーディオトラックを用意する。(Audio)
- 2. Bus チャンネルを2つ作成し、Audio をそれぞれにセンドする。(Group1, Group2)
- 3. Audio を Mid Bus へアウトし、モノラル化する。
- 4. Group2 をモノラル・逆相化して Group1 とあわせて Side Bus へアウトする。
これで Mid Bus にはセンター成分、Side Bus にはステレオ成分のみが流れている。マスターチャンネルで合成された信号は元の Audio と同じになる。Mid/Side チャンネルに手持ちのエフェクトをインサートすれば好きな機材で M/S プロセシングを行える。
17の時、Rojamに行った
17の時、Rojam に行った。
当時、電子音楽に没頭していた僕は数ヶ月前に地元の地方都市でクラブ童貞を捨てたばかりで、クラブに夢中だった。そんな折、上海へ行った。
夕食を済ませ、ホテルでガイドマップを眺めているとクラブ情報が目に留まった。この機を逃す手はないと思った。Rojam というクラブに小室哲哉プロデュースと書かれていたのでそこに決めた。日本人が関係していれば少しでも安全そうに思えた。
そう、僕はビビっていた。知らないクラブは怖い。そのうえ、僕は未成年で、ひとりで、外国で、真夜中の繁華街だった。降る雪の中、地図を片手に歩いた。何度も胡乱な客引きに声をかけられた。はじめから日本語で話しかけてくる。どこで見分けがつくのだろう。Rojam は商業ビルの4階にあった。少し迷って、踏み込んだ。
受付は混んでいた。しばらく待つと係員が英語で話しかけてきた。上海語でなくて安堵する。チャージを支払い中へ入ろうとすると、店員に呼び止められた。しきりに「Twenty」と言っている。年齢を見咎められたのだろうか。体が熱くなる。つとめて平静を装いながら話をよく聞くと、上着を預かる、預かり賃の20元を払えとのことだった。
中に入ると、広いフロアと、それよりずっと広いテーブル席があった。DJ はミニマルテクノをプレイしている。フロアは超満員だったがチークダンスのような雰囲気が漂っている。時折酔っ払いがフロアのお立ち台に上がって踊り出す。飛び交うグリーンのレーザーを見ながら、キメラのようだと思った。
ひと心地つき緊張が解けると、いっときに疲労が襲った。踊る気にも飲む気にもならぬまま階段に腰掛けていると、女が声をかけてきた。相手にする気力もなく、適当にあしらってしまおうと日本語で返事をしたら、今度はカタコトの日本語で話しかけてきた。そこでようやく、僕はその店がどんな場所なのか理解した。
女はしきりに酒を勧めたが、頑なに断り続けるとやがて捨て台詞とともに去っていった。一杯くらい付き合ってもよかったのかもしれない。だがその時の僕は、昼に会った「日本語を勉強したい」女や「留学を目指している」女やらに疲れきっていて、すっかり疑心暗鬼になっていたのだ。
そんなことを3度も繰り返したころ、DJ が替わって音楽がトランスになった。MC が随伴している。ビートに合わせてマイクで何か叫ぶと、客も同じように叫び返している。どうやら「1、2、3、4」を上海語でコール&レスポンスしているようだった。きっとお定まりのパターンだったのだろう。客はみんな乗り気で、見事に盛り上がっていた。
それを見届けて、僕は Rojam を後にした。自分は異邦人なのだと思った。
サイドチェイン・テクニクス
サイドチェインとはエフェクタの制御信号として別のチャンネルの信号を利用する外部入力方式である。
ゲート
キックなどの無音階楽器の超低音を EQ でブーストする替わりにブーストポイントの周波数のサイン波でサブベースを混ぜてやるという技がある。無い袖は振れぬ、ならば足すという考え方。本来キックに含まれない周波数を加える事で EQ の限界を超えた低音の量感調整が調整可能になる。
平均律音階周波数対応表 - underthemoon@hatena
上記の手法はバンド PA の現場でも応用できる。まずシンセサイザなどからサブベース音を出し続けておく。サブベースの出力をノイズゲートに通し、ノイズゲートのキーインへキックの出力を分岐した信号をサイドチェインする。これでキックの入力でゲートが開放したときにだけキックの音とサブベースが同時に出力される。これらをミキサで混ぜ合わせてキックの低域補強として使われる。
コンプレッサ
サイドチェインによるベース制御は近年のエレクトロミュージックにおいてダッキングサウンドとして加熱し続けている。前述のゲートはベースエンハンサ的な用途だがこちらはダイナミクスコントロールである。コンプレッサによるパンピング効果を過剰化したもので、本来の持続音がキックでブツ切りにされては迫り上がってくるように変化する。
こちらではゲートではなくコンプレッサを使う。ベースに挿したコンプレッサにキックをサイドチェインする。コンプレッサのアタックタイムを最小、リリースタイムを曲のテンポで8分音符あたりになるよう設定すると、ゲインリダクションに応じて持続音のベースが裏打ちで波打っているようなサウンドに変化する。そのままスレッショルドを下げ続けるとやがてキックが鳴るときはベースの音が消えるようになる。
ベース以外にもストリングスやリードといった白玉パートに好んで用いられ、極端なものになるとキック以外すべてのパートにまとめてかかっていたりする。最も多く耳にするのはホワイトノイズとフィルタを組み合わせた効果音だろう。いずれも裏拍の強調効果*1がある。
サイドチェインコンプレッションはサウンドメイクからミキシングにまで幅広く使えるテクニックだ。最近はどの DAW でもサイドチェインに対応し始めているので簡単に試せる。それでも飽き足らなくて結局は自分でフェーダーを書き込むなんてことも多いが。
本稿はエントリ"平均律音階周波数対応表"の派生項をエントリ化したものです。
平均律音階周波数対応表
Oct. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | Key | |
---|---|---|---|---|---|---|---|---|---|
C | 32.7 | 65.4 | 130.8 | 261.6 | 523.3 | 1046.5 | 2093 | C | |
C# | 34.6 | 69.3 | 138.6 | 277.2 | 554.4 | 1108.7 | 2217.5 | C# | |
D | 36.7 | 73.4 | 146.8 | 293.7 | 587.3 | 1174.7 | 2349.3 | D | |
D# | 38.9 | 77.8 | 155.7 | 311.1 | 622.3 | 1244.5 | 2489 | D# | |
E | 41.2 | 82.4 | 164.8 | 329.6 | 659.3 | 1318.5 | 2637 | E | |
F | 43.7 | 87.3 | 174.6 | 349.2 | 698.5 | 1396.9 | 2793.8 | F | |
F# | 46.2 | 92.5 | 185 | 367 | 740 | 1480 | 2960 | F# | |
G | 49 | 98 | 196 | 392 | 784 | 1568 | 3136 | G | |
G# | 51.9 | 103.8 | 207.7 | 415.3 | 830.6 | 1661.2 | 3322.4 | G# | |
A | 55 | 110 | 220 | 440 | 880 | 1760 | 3520 | A | |
A# | 58.3 | 116.5 | 233.1 | 466.2 | 932.3 | 1864.6 | 3729.3 | A# | |
B | 61.7 | 123.8 | 246.9 | 493.9 | 987.8 | 1976 | 3951 | B | |
Key | 0 | 1 | 2 | 3 | 4 | 5 | 6 | Oct. |
この表は A3=440Hz とした平均律における音階と周波数の対応を示したものである。周波数は小数点第2位を四捨五入している。単位は Hz。各音程の周波数はオクターヴ0の基音周波数の(オクターヴナンバー+1)乗の関係にある。
周波数を使ってできること
88鍵盤ピアノの音域は A0〜C8、4弦ベースの最低音は E1 である。よって一般的なポピュラーミュージックの編成では有音程楽器の基音はおよそ 80Hz から下には含まれず、その帯域は主に振動や反射により構成される。ミキシング時に各パートへ挿すハイパスフィルタのカットオフ周波数は下限音域の基音周波数が一つの目安となる。
また、 ローパスフィルタにレゾナンスを強くかけると自己発振を起こせるが、このときカットオフ周波数に上記の基音周波数を設定するとソースに元来とは別の音程感を与えることができる。これを応用したフィルタによるフレージングやポルタメントも可能である。音階を作り出すのはオシレータだけではないのだ。
もっと荒っぽいところでは、キックなどの無音階楽器の超低音を EQ でブーストする替わりにブーストポイントの周波数のサイン波でサブベースを混ぜてやるという技がある。無い袖は振れぬ、ならば足すという考え方。本来キックに含まれない周波数を加える事で EQ の限界を超えた低音の量感調整が調整可能になる。打楽器の音は上から下にピッチベンドする特性を持っておりアタックから低音が鳴るまで時間差がある。そのためサブベースはキックより少し遅らせて鳴らしたほうがよりキックに溶けやすい。
このように周波数と音階の関係性を知っておくことで実現可能なアイディアは枚挙に暇がない。丸暗記せずとも、A3=440Hz という調律の基準値と、周波数とオクターヴは倍々ゲームというルールだけ理解しておけば簡単におおよその当たりをつけられる。
良いマスター、悪いマスター
マスタリングを外注できない案件の原盤制作を担当することが増えた。こういったアーティストとエンジニアの距離感が遠いプロダクションほど提出されたプリマスター=事実上のマスターとなるため、質感の調整などはあまりしない。トータルコンプ済みの 0dB にベッタリ張り付いた波形なので手の入れ様がない。せいぜいdB操作での音量平均化程度である。
では何をするかというと、各種ギャップの調整とノイズチェック等といった業務的な品質に関する作業を行う。これも別段特殊なことはしない。曲間の空白時間を適当な長さに揃えて、波形やメーターを見ながら曲を注意深く聴いてノイズが混入していないか確認する。
こうして他人のプリマスターに接する機会が増えたのだが、ズボラな音源の多さに呆れている。音割れなどザラにある。CD リリースして世に送り出す入魂の音楽をいい加減な状態で納品する神経が理解できない。
プリマスターの良し悪しの例
- 良いプリマスター
- 適度なピークマージンをとってある
- 無音から始まり無音で終わる
- 曲の前後に適度な空白部分がある
- 悪いプリマスター
- クリップしている
- 意図しないノイズの混入
- いきなり始まる・いきなり終わる
- 過度なコンプレッション
ピークマージン
今更言うまでもないことだが、デジタル音楽では 0dBFS を超えるとクリッピングノイズが発生する。これを回避するにはオーバークリップが起こらないようにすればよい。この一見とても単純なお約束があっさりと破られる背景には音圧戦争という名の脅迫心理があるのだが、どうも最近はそれだけではないような気がしてきた。
単純に、そもそもアーティストがピークメーターを見ていない。そうでも考えないと理解できないような頻度でオーヴァークリップした音源に出くわす。
メーターを見ながら通して再生すればクリップがあるかどうか一目瞭然だし、波形編集ソフトにはピーク検出機能がある。だいたいマスターバスの最後にリミッタを挿すだけで済む話だと思うのだが。
これらのことは意識的にピークマージンをとることで確実に予防できる。一般にポピュラーミュージックの CD は 0dB きっかりをピークに作成されている。少しでも音量を上げたい気持ちはわかるが、そこをこらえて、ピークを -0.1〜-0.2dB 程度になるようなプリマスターを作る。極端な話 -0.01dB でもいい。これだけでクリップノイズは起こらない。この状態でプリマスターを提出して、マージン分をノーマライズするかどうかはマスタリングエンジニアに一任してしまえばよいのだ。
僕は -0.1〜-0.2dB 程度のマージンならばそのまま CD で出してしまう。現代の音楽試聴形態は iPod をはじめとする mp3 プレイヤーへと変遷した。この場合ユーザーは CD 音源をリッピング → mp3 エンコードというプロセスを経てプレイヤーに落とし込むことになるが、0dB ピークの音源を mp3 エンコードするとクリップノイズが発生することがある。エンコード時に入るローパスフィルタ等で波形が崩れ、本来なかったクリップができるためだ。これも -0.2dB 程度のピークマージンをとることで対処できる。
前後の無音部分
ノンストップ CD 等をのぞき、CD には曲の切れ目に無音部分がある。CD のトラック2以降、初期設定で2秒の無音部分が挿入される。これをプリギャップと呼ぶ。ただし無音部分は通常トラックデータ内にも含まれる。つまり、
トラックAの終了無音部分 + プリギャップ (2秒) + トラックBの開始無音部分
これがリスナーが聴く無音部分の実時間、つまり曲間時間となる。この時間は CD ごとに統一感のあることが望ましい。短すぎても長すぎてもいけない。CD にもよるが、5秒程度が目安となる。これらの設定が原盤制作者の仕事だ。
以上を踏まえ、どのようなプリマスターを作成すべきか。
まず、無音から始まり無音から終わること。特に意図のない限り、ファイルの先頭と最後に音が鳴っている状態を避ける。無音状態からいきなり波形の位相シフトが起こると DC オフセットノイズが発生する。スライスしたサンプルの前後にフェードを設定しておかないとサンプルの切れ目でブツブツいう、あの現象だ。ハードコアなどではこの断位相差ノイズをあえて利用するケースもあるが、基本的には無音としておく。
次に、曲の前後に余白となる無音部分を作成する。200ms〜2000ms 程度で入っていればよい。この空白には色々なことが現れる。先に述べた開始・終了無音の確認がしやすい。また、空白箇所でも -60dB 以下のノイズが走っている場合はレコーディング時のノイズがそのまま載っているか無音処理されていないディザーなので消しておく。この確認には -100dB まで表示できるメーターを用意する。
曲の終了部については、余韻の長さを調整する必要がある。アウトロがリヴァーブ/ディレイなどで長い残響を持っている場合だ。感覚的には、リスナーは最後に耳にした直接音を楽曲の終了地点と捉え、以降の余韻は空白の一部として聴いている。そこにいつまでもディレイのフィードバックやらが鳴り続けていると、曲の終わりから次の曲までの間が体感時間で20秒以上あく、なんてことになりかねない。区切りのいいところでフェードアウトさせておく。
空白時間の長さについて美しいやり方だと思うのは、その曲の BPM で1小節分あけておくことだ。これだと空白時間だけでなく BPM も確認しやすい。諸般の事情で楽曲の BPM が必要な場合、アーティストの申告値とは別に念のため自分でも追試しておくのだが、0.200 BPM ずれてるなんてのは往々にしてあるのだ。
マーカーの埋め込みも非常に有効だ。もし対応したソフトを持っていれば、曲の開始地点にマーカーをが入っているとエンジニアは作業しやすくなる。マーカーの規格にどういった種類や形式があるのかは寡聞にして知らないが、Acid でプロジェクトに挿入したマーカーはレンダリングした Wav にもマーカー情報が埋め込まれていて Sound Forge で読み込める。
余談だが、以前ドイツのコンピレーションを担当した時、プリマスターに Sound Forge で読めるマーカーの入ったものがあった。おそらく Acid は使っていないと思われるので、他にマーカーの互換性のあるソフトがあるのだろうか。