マルチコアソフトウェアシンセサイザー(仮)

Masataka Kohagura 22th June,2014

研究目的

コンピュータ上で作曲を行うときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。

ソフトシンセのマルチコア化は進んでいる。しかし、現状としてはマルチコアで駆動しているわけではなく、1つのコアだけに負荷がかかるものが多い。

作曲をする上ではソフトシンセを複数立ち上げることが基本となっている。 また、オシレーターの複数使用や Filter による波形編集を重ねると計算量が大きくなっていくため、ソフトシンセ単体の動作を軽量化する必要がある。

また、実用的なシンセサイザーは入力に対するレスポンスが必須となるので、計算量が多くなっても入力から出力までの遅延を抑える必要がある。

(軽量化しながら音を良くしたいが、抽象的すぎて評価する点がみつけづらい)
音がいいって何??
評価どうするの??

今週までの作業

SDL

SDL_audio.h(1/3)

SDL_audio.h(2/3)

SDL_audio.h(3/3)

波形の生成

矩形波

    
double
square(double t){
    double decimal_part = t - abs(t);
    return decimal_part < 0.5 ? 1 : -1;
}
    
    

波形の生成

三角波

    
double
tri(double t){

    double decimal_part = t - abs(t);

    if(abs(t) % 2 != 0){
        return decimal_part < 0.5 ? decimal_part : 1 - decimal_part;
    }else{
        return decimal_part < 0.5 ? -decimal_part : 1 - decimal_part;
    }
}

    
    

波形の生成

のこぎり波

    
double
saw(double t)
{
    double decimal_part = t - abs(t);
    return decimal_part;
}
    
    

いましていること