ページ

2012年8月5日日曜日

花火の音を畳み込む

今日は寮の近所で花火をやっていた.人の声に花火の音を畳み込んだら,大空から叫んだような音になるだろうか?

まずは人の声を録音


続いて花火の音を録音


畳み込んだ結果がこちら


なんか神話系のB級映画に出てくる神の声みたいで気持ち悪い...誰か爽やかな叫び声の提供求む.

2012年2月22日水曜日

MacOS X Lion で portaudio

クロスプラットフォームのオーディオIOライブラリであるportaudioを使ってみた。導入に少々手こずったのでメモ。

【環境】
MacOS X 10.7 (Lion)
Xcode 4.3 (Command Line Toolsインストール済)

【問題】
本家サイトのチュートリアル通りに ./configure &&  make すると
lipo: can't figure out the architecture type of: /var/folders/nc/xfr4g99532d8907r35nypqcc0000gn/T//ccNT0oeE.out
make: *** [src/common/pa_allocation.lo] Error 1

とかいうエラーが出てmakeが止まる。

【解決方法】
1.  portaudio/include/pa_mac_core.h の49行目
#include <audiotoolbox/audiotoolbox.h>
のコメントをはずす。

2.  portaudio/ で以下を実行
$ ./configure --disable-mac-universal

3. 生成されたMakefileの CFLAGS にある -Werror を削除

4. portaudio/ で make を実行
(いちど make に失敗している場合は make clean してから)

以上の手順で portaudio 自体のmakeは通るはず。ただしx86_64バイナリ専用(私はppcもi386も必要ない)。以下のファイルが生成されていればOK。

【プログラムのコンパイル方法】
portaudio/examples/paex_sine.cをコンパイルする例。こんな感じのMakefileで静的リンクできた。動的リンクはよくわからない。
CC = gcc
LIBS = -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon
INCLUDES = -I/(portaudioのパス)/include
LIBPA = /(portaudioのパス)/lib/.libs/libportaudio.a
OBJS    = paex_sine.o

paex_sine: $(OBJS)
$(CC) $(LIBS) -o $@ $(OBJS) $(LIBPA)
.c.o:
$(CC) $(INCLUDES) -c $<

【参考リンク】
Building PortAudio under OS X 10.7 Lion

2012年2月21日火曜日

MacOS X Lion + Xcode 4.3 での gcc

修論の本審査が無事終わったので、研究関係のデータは研究室のファイルサーバーに保存して、iMacはリカバリ。スッキリ心機一転を試みたのだけど、gcc関係でハマった。

【経緯】
1. iMacをリカバリして出荷状態(Snow Leopard)に戻した
2. Lionにアップグレード
3. Xcode 4.3 をインストール
4. ターミナルからgccを実行したら、 gcc: command not found

【原因】
どうやらXcode 4.3から、/usr/bin/のgcc や /user/include/はインストールされなくなったらしい。/Developer/もなくなって、開発関係のあらゆるソフトウェアが/Applications/Xcode.app/のアプリケーションバンドルの中に統合されている。

【解決方法】
Command Line Tools for Xcode をインストールする

【手順】
Xcode 4.3を起動し、
「Xcode」→「Preferences」→「Downloads」
からインストールできる。その際、Developer IDが要求される。
これで/usr/以下に必要なソフトウェアがインストールされて、ターミナルからgcc(llvm-gcc-4.2)が使えるようになる。これらはどうやらXcodeとは独立にインストールされる(Xcodeバンドル配下へのリンクが生成されるのではない)ので、Xcode 4.3をアンインストールしても動作するらしい。
[参考リンク] Glide Note, XcodeからCommand Line Tools for Xcodeに切り替えたらHDD使用容量が7GB減った

【疑問】
Developer IDが要求されるということは、Developerプログラムを購入していないとCommand Line Toolsはダウンロードできないということ?