2014年1月29日水曜日

ミーントーンのピッチ計算

今回はミーントーンの音律計算のプログラムです。

1/4シントニックコンマがいわゆるミーントーンですが、ここでは、引数に任意の数値を入れることで、1/4以外の音律も計算可能にしてあります。

バロック音楽では1/6シントニックコンマなどもよく使われます。分母が大きいほど、ミーントーンより平均律に近くなっていきます。

下記のプログラムでは、noteCents[]の配列に各音(12音分)のセント値が格納され、最後のfor文で noteFreq[] に鍵盤分(6octave分)の周波数が格納されます。

//--------------------------------------------------------
//  
//  1/nシントニックコンマのピッチ計算
//
//--------------------------------------------------------
void calcEachKeyFreqMeantone( int div )
{
 double tmpPitch, ratio, comma;
 int  i, j;
 
 ratio = ((double)3)/2;
 comma = 1200*log(pow(ratio,4)/5)/(log(2)*((double)div));
 
 noteCents[0]  = 0;
 noteCents[7]  = 1200*log(pow(ratio,1))/log(2) - comma;
 noteCents[2]  = 1200*log(pow(ratio,2))/log(2) - 1200 - comma*2;
 noteCents[9]  = 1200*log(pow(ratio,3))/log(2) - 1200 - comma*3;
 noteCents[4]  = 1200*log(pow(ratio,4))/log(2) - 2400 - comma*4;
 noteCents[11] = 1200*log(pow(ratio,5))/log(2) - 2400 - comma*5;
 noteCents[6]  = 1200*log(pow(ratio,6))/log(2) - 3600 - comma*6;
 noteCents[1]  = 1200*log(pow(ratio,7))/log(2) - 4800 - comma*7;
 noteCents[8]  = 1200*log(pow(ratio,8))/log(2) - 4800 - comma*8;
 
 ratio = ((double)2)/3;
 noteCents[3]  = 1200*log(pow(ratio,3))/log(2) + 2400 + comma*3;
 noteCents[10] = 1200*log(pow(ratio,2))/log(2) + 2400 + comma*2;
 noteCents[5]  = 1200*log(pow(ratio,1))/log(2) + 1200 + comma;
 
 tmpPitch = ((double)basePitch)/16; // A-1 のピッチ
 double sabun = (noteCents[9] - 1200)*log(2)/1200;
 double indexC = log(tmpPitch) - sabun;
 tmpPitch = exp(indexC);
 
 for ( i=0; i<6; i++ ){
  for ( j=0; j<12; j++ ){
   double c = (noteCents[j]*log(2))/1200 + log(tmpPitch);
   noteFreq[i*12+j] = exp(c);
  }
  tmpPitch *= 2;
 }
}

2014年1月18日土曜日

純正律のピッチ計算

少しだけ技術者のブログっぽく、ソースコードを貼ってみようと思い立ちました。

まず最初は純正律を計算するプログラムです。iOSアプリのために作りましたが、アプリの方は現在iOS7で動かなくなって放置状態・・・

簡単にコードの説明をしておきます。
justIntoCentsは2次元の配列ですが、1次元目は、0:変化音無し、1:シャープ、2:フラットです。
2次元目は、0:Do, 1:Re, 2:Mi, 3:Fa, 4:So, 5:La, 6:Ti です。合計3×7=21音のピッチ計算をします。

純正律は、完全五度が3/2の周波数比、長三度が5/4の周波数比になるので、この周波数比を元に各音程をひたすらセントの値に変換しています。

//--------------------------------------------------------
//  
//  純正律のピッチ計算
//
//--------------------------------------------------------
void calcEachKeyFreqJustInto( void )
{
 double ratio, mj3ratio;
 
 ratio = ((double)3)/2;
 mj3ratio = ((double)5)/4;
 
 // fa-do-so-re
 justIntoCents[0][3]  = 1200*log(pow(ratio,-1))/log(2) + 1200;
 justIntoCents[0][0]  = 1200*log(pow(ratio,0))/log(2);
 justIntoCents[0][4]  = 1200*log(pow(ratio,1))/log(2);
 justIntoCents[0][1]  = 1200*log(pow(ratio,2))/log(2) - 1200;
 
 // la-mi-ti-fi
 justIntoCents[0][5]  = 1200*log(pow(ratio,-1)*pow(mj3ratio,1))/log(2) + 1200;
 justIntoCents[0][2]  = 1200*log(pow(ratio,0)*pow(mj3ratio,1))/log(2);
 justIntoCents[0][6]  = 1200*log(pow(ratio,1)*pow(mj3ratio,1))/log(2);
 justIntoCents[2][3]  = 1200*log(pow(ratio,2)*pow(mj3ratio,1))/log(2) - 1200;
 
 // di-si-ri-li
 justIntoCents[2][0]  = 1200*log(pow(ratio,-1)*pow(mj3ratio,2))/log(2);
 justIntoCents[2][4]  = 1200*log(pow(ratio,0)*pow(mj3ratio,2))/log(2);
 justIntoCents[2][1]  = 1200*log(pow(ratio,1)*pow(mj3ratio,2))/log(2) - 1200;
 justIntoCents[2][5]  = 1200*log(pow(ratio,2)*pow(mj3ratio,2))/log(2) - 1200;
 
 // mi#-ti#
 justIntoCents[2][2]  = 1200*log(pow(ratio,-1)*pow(mj3ratio,3))/log(2);
 justIntoCents[2][6]  = 1200*log(pow(ratio,0)*pow(mj3ratio,3))/log(2);
 
 // ra-lo-ma-ta
 justIntoCents[1][1]  = 1200*log(pow(ratio,-1)*pow(mj3ratio,-1))/log(2) + 1200;
 justIntoCents[1][5]  = 1200*log(pow(ratio,0)*pow(mj3ratio,-1))/log(2) + 1200;
 justIntoCents[1][2]  = 1200*log(pow(ratio,1)*pow(mj3ratio,-1))/log(2);
 justIntoCents[1][6]  = 1200*log(pow(ratio,2)*pow(mj3ratio,-1))/log(2);
 
 // fab-da-sa
 justIntoCents[1][3]  = 1200*log(pow(ratio,0)*pow(mj3ratio,-2))/log(2) + 1200;
 justIntoCents[1][0]  = 1200*log(pow(ratio,1)*pow(mj3ratio,-2))/log(2);
 justIntoCents[1][4]  = 1200*log(pow(ratio,2)*pow(mj3ratio,-2))/log(2);
}

2014年1月11日土曜日

どうやって曲を作ってきたか

ボカロベースのDTM回帰計画を考えてはいるものの、なかなかまだきっかけがつかめていません。一つにはどんな系統のジャンルで、どのようなやり方で曲を作るかがまだ定まっていないということがあります。

自分自身の作曲プロセスの再構築のためにも、一度、今まで自分がどのように作曲してきたかを振り返ってみたいと思います。

今までの作曲方法を振り返ると、2つの方法がありました。
一つは、合唱曲を作り始めるまでJ-POPまがいの曲を作っていたのですが、そのときの方法。そしてもう一つは、その後のアカペラを中心とした合唱曲作曲の方法です。
今回はそれぞれ二つの方法について紹介しましょう。


高校の頃からJ-POPまがいの曲を作っていました。
幸か不幸か、幼少の頃ヤマハ音楽教室に通っていたおかげもあって、作曲=楽譜を書くこと、という感覚が最初の頃からありました。
また、作曲を始めた当初から、最初にメロディを作って、その後そのメロディに詩を付ける、という現在のポップミュージックのやり方に倣っていました。どこかで学んだわけではないけれど、1番2番で歌詞が違ってもメロディにほとんど変化がないことから、そういうやり方が正しいと肌で感じていたのでしょう。

ですので、数曲作るうちに以下のようなプロセスが確立します。
1)メロディを作る。Aメロ、Bメロ、サビ程度。
2)メロディにコードネームを付ける。
3)最後に歌詞を付ける。
高校生の当時、DTMというものもなかったし、録音する機材もなかったので、1曲分のメロディとコードと歌詞を1枚の楽譜にした段階で完成です。
なお作曲量が増えるに従って、コードはメロディと同時に出てくるようになってきました。

その後、大学生になってMTRを購入した後、曲にイントロを付けたり間奏を付けたり、各種楽器の打ち込みをするようになって、録音された音楽として完成させるようになりました。
それでも、高校時代に確立した1曲を楽譜1枚にまず仕上げるという行為は変わらず、それが終わってから、録音のためのアレンジをするという流れで曲を作っていました。

残念ながら録音物としての完成度はかなり低く、そこに関しては十分なスキルを得ないまま、録音活動はだんだんやめてしまいました。


その後、私は合唱曲の作曲をするようになりました。
ご存知の通り、合唱曲作曲のアウトプットはあくまで楽譜です。
クラシック寄りの作曲活動をすることにより、楽譜を書くことがアウトプットになる作曲に活動の軸足が移ります。

例えば混声四部なら同時に4つのパートの音を書かねばなりません。
どうも多くの人が、いきなり同時に4つのパートを作曲していると考えているようです。もちろん、そのように作曲している人もいるとは思いますが、私の場合、やはり高校時代に培った方法がベースになっています。

つまり、
1)歌詞を見ながら一本のメロディを考える。
2)メロディにコードネームをつける。
3)コードネームに従って、複数のパートを書いていく。
という流れです。

ただし、上記の流れは数小節単位で行ないます。
例えば、ある歌詞の一節で8小節のメロディを作ります。それにコードをつけて、複数のパートを作っていきます。これが一通り終わったら、次の歌詞に取りかかります。
つまり上記のプロセスを細かい単位に分割しながら作業を進めるわけです。

ポップミュージックに比べると、クラシック系の音楽の方が構成が複雑になるので、メロディ作りを開始する前に多少の構成の検討が必要になります。ただし、これはやり過ぎないようにします。なぜなら、作曲をすすめる過程で音楽の流れから構成も変更することがあるからです。
だから、私が言っている構成とは、非常にシンプルなものです。
例えばこんな感じ「しっとり→アップテンポ、激しく→ゆっくり穏やかに→最初のテーマ」。この程度の大まかな流れを事前に考えるわけです。

従って1曲全体で見ると、合唱曲の作曲プロセスはこんな流れになります。
1)おおまかに曲の構成を考える。
2)歌詞の一節にメロディを付ける。
3)コードを付ける。
4)各パートを作る。
5) 2)に戻って曲が終わるまでこれを繰り返す。

もちろん、何が何でもこの流れに沿うわけではありません。
ユニゾンにするならコードは必要ないし、ポリフォニーっぽくする場合は、上の流れでは作曲できなくなります(それが面白くて、最近ポリフォニーに凝ってたのですが)。
最初からオノマトペ的に曲を作ろうと思った場合は、メロディは歌詞に関係なくゼロから作ることになります。


以上、これまでの作曲プロセスについて紹介しました。

今後、録音を前提とした作曲活動を行う場合、こういったプロセスをまた再構築する必要があると思っています。
恐らく今の私は、流行りのポップミュージックみたいな曲を作ることは無いでしょうから、詩は後でも先でも構わない。そもそもどんなジャンルを指向するのか、その辺りから検討する必要がありますね。
まあ、今は面白いアイデアが出てくるまでゆっくり待つことにしています。


2014年1月4日土曜日

大きな使命のやらされ感と個人の小さなやりたい感

またまた電機メーカーネタですが、ソニーのリストラについてこんな記事がありました。曰く、こんなリストラの仕方では、働いている人たちの士気が落ちてしまうよ、との意見。

私たちは何となく大企業に務めれば将来は安定していると思いがちです。
しかし、ここ数年の日本の電機メーカーの状況を見ていると、そういう感覚自体がすでに神話の領域に入っているのではないかと私には思えてしまいます。

大きなものに所属して、その中で大きな使命感を持って働く、ということはそれなりに自尊心を刺激し、やりがいを感じるものだと思います。しかし、大きな使命感を満足するためには、その使命が明確であり、その効果が実績として良い方向に現れていると感じることが必要です。
今、大手電機メーカーで起きていることは、使命感が不明瞭であり、結果的に実績が悪い方向に現れていること、しかし、自分の意図せざる「やらされ感」だけが仕事を覆っている、というような状況に思えるのです。

こんな時代ならむしろ、使命の大きさよりも個人が持っている小さな「やりたい感」を満足させた方が良いのではないかと私は感じています。


大きな使命のためには、いろいろな種類の仕事が必要です。
例えば、世界中に同じ商品を大量に販売するとします。
そのためには、まず世界が欲している商品を企画する必要があります。いろいろな要求をまとめて商品の仕様をまとめる必要があります。仕様を満たすために最大の効率で開発される必要がありますし、その品質も十分吟味しなくてはなりません。
設計と試作が終われば、それを最小のコストで生産する方法を検討する必要があります。また、それらを世界中に配送する仕組みを考え、流通を速く安くする仕組みを考える必要があります。世界中に販売網を作り、商品の特徴や知識を販売店に伝える必要があります。また世界の売り上げの状況を把握し、販売が振るわない地域では何らかのテコ入れの必要があります。
こういった全体の仕事を俯瞰しながら、全体として投資以上の利益が出ているか監視する必要があります。それを行なうための計測の仕組みやルールを構築する必要もあります。

どんな仕事も、大きな使命感があるからこそ、適度なやらされ感の下、何とかこれまで回っていました。
しかし上記のどの仕事も、上手い具合に分割され、それぞれ個別の利益構造がきちんと定義されるようになれば、その仕事内の小さな「やりたい感」を満たすような働き方が出来るように思うのです。

例えば,上記の中で流通を速く安くする仕組みを考える、という使命は大きな使命の一部かもしれません。しかし速く安い流通網を作ることによって,その業務だけで目に見える利益が上がるのであれば、この業務自体の使命感を持って働くことは十分に可能です。
流通となると、実際には「小さい」とは言えませんが、それでも一般消費者から見れば縁の下の力持ち的な仕事です。流通の新しい仕組みを考えれば、それは十分創造的な仕事になりうるわけで、そういう意味ではどんな仕事であっても、その中に「やりたい感」を感じることは可能なハズです。

もし自分の仕事が面白くなく、やりたい感よりもやらされ感を強く感じているとするなら、それは自分の使命の設定の仕方が間違っています。あるいは、組織がその人に与えている使命、ミッションの与え方が間違っているのかもしれません。
人はある種の創意工夫を発揮し、自分の意志で行なった業務によって業績が上がったと感じるのなら、必ずやりたい感がそれに見合って上昇するものです。
逆に言うなら、個人のやりたい感を向上させるには、より使命を分割して、その人の能力にあった仕事で、その人が個人の意志で存分に働いてもらう環境を作らねばなりません。


しかし、大企業が社内だけで、そのような業務設計をすること自体、かなり難しい話です。社内政治も絡んでくるし、どれかの仕事がないがしろにされやすい状況も生まれてくるかもしれません。

企業形態として、水平分業か垂直統合か、という話はよく聞きます。
日本の大企業はこれまで垂直統合的でしたが、例えばApple, Amazon, Googleのようなアメリカの優れたIT企業並に優秀なトップがいるのであれば、それは素晴らしく上手く回るのですが、どうも現在の日本企業の場合、そのような状況は望むべくもありません。なぜなら、日本では経営能力がきちんと定義されておらず、そういう人がきちんと経営者になる仕組みが出来ていないからではないでしょうか。

それなら、今の日本では水平分業のほうがもっと効率的な社会が作れるのではないかという気がしています。
上記で挙げたいろいろ種類の仕事が全て別会社として独立し、それぞれの小さな会社がそれぞれの「やりたい感」を発揮してそれぞれの利益を追求すれば、全体として最適化した分業体制となり、結果的には利益も増え、国全体、社会全体がよりよい方向に向かうと思うのです。

今自分がしている仕事をベースにしつつ、個人個人が独立して採算が取れるような努力をすることが、むしろ今の日本に必要なことではないか、あるいはそういう圧力が少しずつですが私たちに迫っていると感じています。

もしこれから社会がそのように移行していくのなら、今私たちが心に中に秘めている小さな「やりたい感」を見つめ直し、それを少しずつ明確な形にしておくことが、これからの時代を生き抜くためにも必要なのではないでしょうか。