仮置

主に ~/tmp から救出したもの。とくに断りがなければソースは public domain 。

Python から C++ ファイルを直接インポート

Download: cpp.py

test.py:
    import cpp
    import adder # addr.cpp を自動的にコンパイルしてインポート。

    print adder.add(1, 2) # -> 3

adder.cpp:
    #include <boost/python.hpp>

    int add(int x, int y)
    {
        return x + y;
    }

    BOOST_PYTHON_MODULE(adder)
    {
        boost::python::def("add", add);
    }

とりあえず UNIX 系 OS 上でのみ、 c++ -MM にて依存関係を調べ、必要なときだけコンパイルするようになっている。

cpp.compiler が distutils.ccompiler.CCompiler のインスタンスなので、ライブラリの追加等はこれをいじる。 boost_python-mt は追加済み。

boost.python の numarray 拡張

Download: numarray.hpp

boost::python::numeric とは違い、必要に応じて連続な配列を作るので、配列へ直にアクセス可能。インターフェイスの詳細は numarray.hpp の冒頭コメントに。

arr_sum.cpp:
    #include <boost/python.hpp>
    #include "numarray.hpp"

    int sum(cnumarray_in<int> arr)
    {
        int s = 0;
        for(int i = 0; i < arr.shape(0); ++i)
        {
            s += arr[i];
        }

        return s;
    }

test.py:
    import arr_sum
    arr = numarray.array([1, 2, 3])
    print arr_sum.sum(arr) # -> 6

各種 HRTF(頭部伝達関数)を wave ファイルに変換

MIT Media Lab. : compact.tar.Z
Download: towave_mi.py
鈴木研究室 : sub?.tar.gz
Download: towave_sz.py
島田研究室 : samrai*.tar.gz, subject*.tar.gz
Download: towave_sm.py
板倉研究室 : data02.tgz
Download: towave_it.py

Python と numarray が必要。解凍したディレクトリで実行すると wave ファイルが生成されるはず。SIR とかで畳み込んでほげほげするなど。

freetype で sub-pixel sampling を有効にしたときの色付きを改善するパッチ

Download: freetype-2.2.1-filter.patch / fonts.conf の例

これを実装してみたもの。このパッチを当てると、 rgba = rgb, bgr 以外ではまともに使えなくなる。 autohinter の利用を推奨。 hintstyle は強制的に hintslight 相当になる。ちなみに、上のスクリーンショットの日本語フォントは M+ 1p

もう上のパッチは古いです。 freetype の開発者 David Turner 氏による非公式パッチがあります。これに加えて、

を行ったパッチを置いておきます。

mlterm の再描画高速化パッチ

Download: mlterm-fast-redraw.patch

Expose イベントの再描画を一文字単位で行い、ちらつきを抑える。縦書対応が面倒で放置していたモノ。そのうちなんとかする予定…。効果を得るためには --enable-optimize-redrawing が必須。

Brown noise 生成

Download: brown.cpp

周りの音が気になって集中できないときにどうぞ。

Ogg コンテナを含むファイルから Ogg を切り出し

Download: oggcut.py / Win32 バイナリ

複数のストリームが重なっているファイルの切り出しにも使えるはず。 -c で CRC をチェックするのでコンテナの誤認識がほぼなくなるが、 CRC の計算コードが Python なので遅い。

2008/01/08: Win32 バイナリを追加。

戻る

y.fujii <y-fujii at mimosa-pudica.net>