SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

WAVEファイルにリアルタイムで加工を施し再生する

ステレオデータのモノラル化と簡易ボーカルキャンセル機能

  • このエントリーをはてなブックマークに追加

ダウンロード ソースファイル (3.2 KB)

マルチメディア系のプログラムを作成していると、音のデータを扱いたいときもあると思います。今回は読み込んだWAVEに対してモノラル化(またはボイスキャンセル)を施しながら再生してみます。もちろん曲全部をメモリに展開するようなことはしません。

  • このエントリーをはてなブックマークに追加

はじめに

 マルチメディア系のプログラムを作成していると、音のデータをリアルタイムで処理したいときもあるでしょう。今回は「WAVEファイルからデータを読み込み、加工を施した上で再生する」方法を紹介します。

 もちろんWAVEデータ全部をメモリに展開するような手抜きはしません。必要応じてファイルを読み込んでいきます。

対象読者

 本稿ではC言語を利用します。WINAPIでウィンドウプログラムを作成したことがある人が対象です。それと、内容が応用系なので、参考資料で一度勉強してからの方が理解できると思います。

 「waveOut~」「mmio~」が分かる方は大丈夫でしょう。分からない方も参考資料に載っているページに行けば、すぐに分かると思います。

必要な環境

 WINAPIを利用するのでWindowsが必要です。動作はXPのみで確認していますが、他のバージョンでも動くでしょう。それと、コンパイル時に「winmm.lib」が必要です。

概要

 今回はいろいろなテクニックを使っているため、それぞれのさわりだけを解説します。分からない部分は参考資料を当たってみてください。そちらの方が1つ1つのことを詳しく説明しています。

 それでも分からない場合は、質問してください。

行う加工処理

 今回はサンプルなので、「モノラル化」と「簡易ボーカルキャンセル」を行います。それぞれ次の演算をデータに施します。

モノラル化
(L + R) / 2
ボーカルキャンセル
(L - R)

 このボーカルキャンセルは手抜きですが、モノラル化よりも違いが分かるので採用しました。それと、これらの加工は、エコーのように時間軸に対して処理する必要がないので楽です。

注意

 今回は処理を単純化しているため、次の制限があります。

  • 読み込むWAVEファイルのパスは固定(コンパイル時に埋め込み)
  • WAVEデータは無圧縮の16ビットステレオに限定。ただし周波数は限定しない(というより、周波数は調整できる)

 mp3やoggを読み込みたい方もいると思いますが、デコード処理が必要なため、今回はパスします。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
WAVEデータの読み込み

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

利都(りと)

陸奥でプログラムをしている学生。LOGOからVB6.0へ。現在は主にC系言語を利用。Atelier BlueにてManaged DirectXについてのTipsを書いている。http://www.atelier-blue.com/IL(CIL,MSIL)もしているのでそちらに興味がある方もどうぞ。Manag...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/368 2006/05/15 12:58

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング