投稿

9月, 2013の投稿を表示しています

Audacity built-in effectsを作ってみる

イメージ
Windows版Audacityを使っていたときは、built-in effects の開発はマイクロソフトのVC++をコンパイル時に使うこと意味していたので、手を出す気にもなれなかった。でも最近になってUbuntu系に移行したので、ようやくチャレンジしてみようと思いはじめる。 Linux版Audacityで利用できるエフェクト開発としてはNyquistやLadspaなどがあるが、パラメータの自由度や設定ファイルの保存など問題があり、どうも好きになれない。そこでAudacityに組み込んでしまうbuilt-in effectsの出番というわけ。標準のエフェクトを見る限り、設定ファイルも保存できるし、かなりの自由度があるように思える。 作るにあたって、わかりやすいドキュメントが見当たらなかったので、既存エフェクトのソースを参考に作ってみる。いろいろ謎の定義があり、それらを理解するにはかなりの量のソースを読まないとダメそうだが、とりあえず理解した範囲でも簡単なエフェクトは実現できた。ビルドすれば下のようにちゃんと表示され利用できるようになった。 下は独自のfade-in/outを適用したもの。標準のfade-in/outが直線で減衰するので自然な減衰にしてみた。内部的にはHanning窓関数を利用している。AudacityにはNyquistのAdjustable Fadeもあって、これと似たようなカーブを描けるのだが、ダイアログが出てくるので操作が面倒。個人的に使用頻度が高いfade-in/outは、ささっと適用したいので作ってみたというわけ。式はこんな感じ。ぶっちゃけcosカーブの半周期分。 buffer[i]*(0.5+0.5*cos(i*M_PI/len)); エフェクトを作るために新たに必要なファイルは2つ。例えばこんなかんじ。 NamagiFade.h NamagiFade.cpp エフェクトはEffectやEffectSimpleMonoなどを継承して作るようだ。ヘッダファイルにクラスを宣言して、ソースファイルにあらかじめあるメソッドに対して、overrideで具体的な処理を書いていくという流れ。音声信号はfloatでやり取りされている。ソースはC++。 コンパイルするためには audacity-sr

Audacity 標準エフェクトの一部を除外してみる

イメージ
標準では表示されるエフェクトが多くて小さな画面では見にくい。そこで使わないエフェクトを除外してみた。以下はGNU/Linux Lubuntuでのソースファイルからインストールする作業となる。 audacity-src-2.0.4/src/LoadEddects.cpp このファイルをいじることで実現する。使わないエフェクトをコメントアウトするだけ。一つのエフェクトに対して2ヶ所修正が必要になる。 その後 audacity-src-2.0.4/ ディレクトリ内でコンパイル、ビルド、インストールを行う。 $ ./configure --with-ffmpeg --with-lame $ make $ sudo make install Audacityを起動してeffectメニューで削除されているかを確認。 Audacity 関係の記事

Ubuntu で python

Ubuntu/Lubuntuを起動してTask Managerを見ると常にpythonが起動していて、18MBぐらいのメモリを食っている。Ubuntuではpythonは欠かせないものらしい。常時起動しているならば、実行環境は整っているわけだし、インタプリタなので、テキストを書けばそれで実行できてしまう。そんなお手軽なpythonを使うのも手だなぁと思い始める。実際pythonで何ができるのかよく分からないのだが、習得が楽なインタプリタ言語ということなので、少しいじってみることにした。 ネットで少し調べてみると、python言語はインデントを使って制御するので、だれが書いても記述が同じようになり、読みやすいというメリットがあるようだ。今までインデントがソースに影響するような言語をやったことがないので、少し興味が出てきた。 まずはHello Worldから ターミナルから直接プログラミングすることもできるのだが、他の言語と同じようにテキストファイルに書くことにした。 hello.pyという名前のテキストファイルを作成して、下の内容を書き込む。 print 'Hello World' ターミナルから実行してみると、Hello Worldが表示される。 $ python hello.py Hello World なんとも手続きの少ないプログラムだろうか。Cなどと比べると、何が起きているのかが掴みづらく思えてしまう。 次は日本語表示 日本語を扱うには下のようにコメントアウトの部分にutf-8を宣言する必要がある。そして日本語出力する前にuを書く。1行目には#!/usr/bin/env python を書いてみた。pythonで実行しますよという意味らしい。すべてコメントアウトされていているので、ちゃんと読まれているのだろうか? utfを宣言しないと日本語ではエラーが出るので読んでいるに違いない。やや謎の仕様だ。ちなみに1行目に「#コメント」など日本語を打つとエラーが起きる。3行目以降なら特に問題なし。pythonのコメントは何かいろいろ約束事がありそうだ。 #!/usr/bin/env python # coding: utf-8 # コメント print u'こんにちは パイソン'

C言語 OpenAL をUbuntuで使う

汎用音声ライブラリである OpanAL をLubuntu/Ubuntuにインストール。 Synapticから libopanal-dev を選択してインストール。 同時に以下もインストールされる。 libopenal1 libopenal-data 全部で519kBと小さめ さらにこれもインストール sudo apt-get install libalut0 libalut-dev 以上で開発環境は整う。Windowsよりも手軽。 コンパイルはWindowsとは少し違う。 gcc test.c -lalut -s -o test 以前windows環境で作ったソースもそのまま利用可能だった。 sound programming 目次

Lubuntu に Vim7.4 をソースからインストール

イメージ
コピペの問題 -clipboard vi(ヴィーアイ)は昔からあるテキストエディタで、大抵どのunix,linuxにもはじめからインストールされている。現在はviから派生したvim(ヴィム)を使うことが多いと思う。Lubuntuに標準で入っているviはvim-tinyというもので最小限の構成。これでは不自由なのでバージョンアップしてvim7.3.429にした。ただ困ったことにvimからテキストをコピーしてクリップボード経由で他のアプリケーションにペーストができない。 $ vim --version |grep clipboardというコマンドで調べると-clipboard となっていて、これが原因らしい。+clipboard になれば癖はあるもののコピペができるようだ。これを解決するにはソースからビルドしてインストールするしかないようだ。ちなみに他のアプリからコピーしたテキストをvimにペーストする場合はINSERTモードで Ctrl+Shift+v もしくは Shift+Insert でできる。 vim 7.4インストール作業 インストール手順は以下を参考にした。 http://vim-jp.org/docs/build_linux.html まずビルドするために必要なパッケージ等をインストールしておく必要がある。以下のコマンドはすべてのパッケージなので無駄が多そう。本当は必要なものだけチョイスしてインストールすればよいのだが、あれこれ試行錯誤する手間が惜しいのでこのまま実行。インストールには約10分かかった。 $ sudo apt-get build-dep vim vimのソースをダウンロード。保存先はカレントディレクトリ/vim。約5分間。 $ hg clone https://vim.googlecode.com/hg/ vim ここからの作業は~/vim/src内で行う。srcはSource codeの略。まずインストールする内容をオプションで設定する。下記がCUI版vimのインストールで+clipboardにするための設定。(実際は改行しない)約3分 $ ./configure --with-x --with-gnome --enable-xim --with-features=big -

LubuntuにAudacity2.0.4をインストール

イメージ
LubuntuのSynapticからのインストールだとAudacityのバージョンは2.0.0と古いため、最新のAudacityのソースをダウンロードしてきて、ビルド、インストールしてみた。 古いAudacityがあればアンインストールする 共存もできるようだが、オプションをうまく設定しないとメニューで重なったりするので、必要がなければアンインストールした方が何かと混乱しない。 ビルドに必要な環境を整える 不足している以下のようなパッケージをSynapticなどからダウンロードする。ユーザの環境が様々なので何が不足するかはreadmeをよく読んだり、インストールしてみて、そのlogで判断したりする。 libwxgtk2.8 (サイズは31MB程度) CMake (libsoxrのビルドに必要) libwxgtk2.8はSynapticからダウンロードした。CMakeは以下のようにターミナルからインストールした。 sudo apt-get install cmake Audacityに必要なライブラリ等をインストールする。 sudo apt-get build-dep audacity Audacityのソースをダウンロード 公式ページからソースファイルをダウンロード http://audacity.sourceforge.net/download/source ダウンロードされたファイルは圧縮されているので、これを解凍する。 audacity-minsrc-2.0.4.tar.xz 解凍すると下の名前のディレクトリが同じ階層にできる。 audacity-src-2.0.4 (DLサイズは5.3MB) Audacityのインストール作業 解凍されたaudacity-src-2.0.4ディレクトリ内で以下を実行してmakeファイルを作る。オプションでMP3やAACのライブラリも付け加えている。 ./configure --with-ffmpeg --with-lame 以下の作業はかなり時間がかかる。古いマシンで30分ぐらいかかった。 make 最後にインストールする。これは10秒程度で完了する。 sudo make insta

sonydbでUbuntuからWALKMAN NW-E044に転送

イメージ
Windowsの使用頻度を減らすためにUbuntuからWALKMAN NW-E044に転送することにした。iPodや一部のWALKMANではUbuntuの標準的な音楽プレーヤで転送可能なようだがNW-E044は無理だった。ネットを探すとやや古いがsonydbというものがあり、これで転送ができるようだ。 インストール環境を整える ソースをダウンロードしてきて、自分でコンパイルする必要があるため、コンパイルに必要な以下のツールが必要。 gcc id3lib autotools 自分の環境ではid3libが入っていなかったので、Synaptic Package Managerからインストール。 sonydbのソースをダウンロードしコンパイル 公式ページ http://mattn.kaoriya.net/software/linux/20071121165107.htm ダウンロードサイト https://github.com/mattn/sonydb sonydb-master.zipをダウンロード これを解凍する。次のコマンドでコンパイル、インストールする。 $ make -f Makefile.gcc 同じディレクトリにsonydbというexecutabeleファイルができる。478KBと小さくNW-E044に入れておいてもいいかもしれない。これをターミナルから起動すれば転送できるようになる。sonydbには下記のようなコマンドがある。とてもシンプルだ。 注意点としては、ハブ経由だとうまく転送できない場合がある。 NW-E044の中身をリスト表示するコマンド。 $ ./sonydb songs 1曲を転送するときのコマンド。 $ ./sonydb songsadd /home/usr/Music/sample.mp3 フォルダ内のすべてのmp3を一度に転送するときはワイルドカードが使える。 $ ./sonydb songsadd /home/usr/Music/*.mp3 NW-E044内の曲を削除するコマンド。下はトラック24を指定。 $ ./sonydb songsdel 24 NW-E044内の複数曲を一度に削除する

半壊した古いノートPCにLubuntu12.04を入れる

イメージ
はじめに インストールするノートPCは、液晶のバックライトが切れ、ハードディスクも壊れている。そこでハードディスクは余っていたものと交換。液晶は直す気はないので、外部モニターに接続することにした。 CPUはPentium-MでPAE(物理アドレス拡張)がなく、最新のubuntuなどのlinuxは入れることが出来ない。調べてみるとubuntu派生の軽量ディストリビューションであるLubuntu12.04がnon PAEに対応していることが分かったので、これをインストール。ちなみにオリジナルubuntu12.04は要PAEだった。どうもカーネルが違うらしい。 8ヶ月ぐらい使ってみて 140508 良い点は、古くて遅いマシンでも快適に動くこと! これに尽きる。windowsXPでは作業するたびに無駄にカリカリとアクセスで待たされていたが、Lubuntuではキビキビと動くので、数倍速いPCと同じぐらいの快適さ。これが本来のマシンの速度なのだろう。そういう意味ではwindowsはマシンの足を引っ張るOSということが判明した。使っていると、ほとんどの作業は問題ないが、ネット上の一部のマイクロソフトに依存するコンテンツは当然のように見れない。そんなコンテンツは大抵くだらなので大きな問題はない。また、より快適にしようと手を加えはじめると、情報不足で試行錯誤になることが多く、結構時間がかかってしまうのが難点かな? XPのサポートが切れた2014年4月以降、このページのアクセスが増え続けているので、Lubuntu, Ubuntuへの世間の関心が高まっている様子。個人的には多くの人に使ってもらいたいとは思っていないし、このOSを使いこなせるのは一部のPC好きぐらいだと思う。PCそのものに関心がない人は手を出さないほうがよいと思う。 Lubuntu http://www.lubuntu.net/ LXDE (Lightweight X11 Desktop Environment) を使用していて軽量なデスクトップ。要求されるマシンスペックも低く、RAM 256MB以上、CPU 500MHz以上、HDDも5GBもあればよさそうだ。今回入れるLubuntu12.04のカーネルはLinux 3.2.0-53-generic (i686) この12.