まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

2418. 純正調キーボードの調律

2018年07月01日 | 日記

 本来はステラステージの本編の進行を一刻も早くこなさないといけないのですけど、今日の日曜日は少し前に買った純正調キーボード、ローランド JUSTY HK-100の調律の調査に費やしました。どうしても知りたかったからです。なぜかどのように調整されているかが公開されていません。

 純正調の調律に特許も何もないと思いますが、もしかしたらローランドのノウハウが含まれている可能性があるので、webですぐに手に入る表と違う部分は書きません。あしからず。

 以下、C#と書いてあるのは白鍵Cの右隣の黒鍵を指します。平均律以外ではC#とD♭の音高がが異なりますが、この記事では純粋にキーボードのキーを指します。

 このキーボードは初期設定で A = 442Hz となっているので、その次のCは(平均律で) 525.6Hzになります。ここから一オクターブ12音の周波数とC (主音)との周波数比、平均律の場合の周波数を書きます。

  C : 525.6 (1/1), 525.6
  C#: * 556.9
  D : 591.3 (9/8), 590.0
  D#: 630.7 (6/5), 625.1
  E : 657.0 (5/4), 662.3
  F : 700.8 (4/3), 701.6
  F#: * 743,4
  G : 788.4 (3/2), 787.6
  G#: * 834.4
  A : 876.0 (5/3), 884.0
  A#: 919.8 (7/4), 936.6
  B : 985.5 (15/8), 992.3

 *のあるところがwebと食い違う部分です。平均律の周波数のみ書いています。
 A#がこのキーボード独特の第7倍音です。通常の純正律の調律は、なんと本キーボードとwebで異なるので書きません。

 つまり、主音は平均律の12音で、そこから有理数比に各キーのピッチが(瞬時に)微調整されます。最初から設定されている調律は3種類(純正長調、純正短調、純正属七)で、いずれも黒鍵の調律に特色があります。

 さて、多少蛇足ですが、どうやって上記の数字を出したのかを述べておきます。一応webを探したのですけど、役立ちそうなチューナーなどのソフトがなく、やむなく低周波オシレータのソフトを日曜大工風にC言語で書いてみました。大体2時間で完成。

#include "stdafx.h"
#include <math.h>

FILE *fp;
errno_t err;
double pit = 442.0;

int main()
{
  int it1, iv1;
  double v1;

  pit = pit / 48000.0 * atan(1.0) * 8.0;

  err = fopen_s(&fp, "t.wav", "wb");

  fputc('R', fp); fputc('I', fp); fputc('F', fp); fputc('F', fp);
  fputc(0x24, fp); fputc(0xf2, fp); fputc(0x2b, fp); fputc(0x00, fp);
  fputc('W', fp); fputc('A', fp); fputc('V', fp); fputc('E', fp);
  fputc('f', fp); fputc('m', fp); fputc('t', fp); fputc(' ', fp);
  fputc(0x10, fp); fputc(0x00, fp); fputc(0x00, fp); fputc(0x00, fp);
  fputc(0x01, fp); fputc(0x00, fp);
  fputc(0x01, fp); fputc(0x00, fp);
  fputc(0x80, fp); fputc(0xbb, fp); fputc(0x00, fp); fputc(0x00, fp);
  fputc(0x80, fp); fputc(0xbb, fp); fputc(0x00, fp); fputc(0x00, fp);
  fputc(0x01, fp); fputc(0x00, fp);
  fputc(0x08, fp); fputc(0x00, fp);
  fputc('d', fp); fputc('a', fp); fputc('t', fp); fputc('a', fp);
  fputc(0x00, fp); fputc(0xf2, fp); fputc(0x2b, fp); fputc(0x00, fp);

  for (it1 = 0; it1 < 48000 * 60; it1++) {
    v1 = sin((double)it1 * pit) * 100.0 + 128.0;
    iv1 = (int)v1;
    fputc(iv1, fp);
  }

  err = fclose(fp);
  printf("complete.\n");
  return err;
}

 このプログラムをコンパイルして動作させると、同じディレクトリに「t.wav」と言う名のWindows波形ファイルが生成されますので、Windowsのメディアプレーヤーなどで再生させます。出てくるのは442.0Hzのサイン波です。5行目の442.0を他の数字に変えるとその周波数の音のファイルが出てきます。
 あとはキーボードを同時に鳴らして、いわゆるうなりを耳で聞いて周波数を合わせて行きます。このプログラムだと周波数を変えるたびにいちいち再コンパイルですけど、当初の目的は果たせます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

2417. 数学史の本

2018年07月01日 | 日記

 なぜか2冊立て続けに発売されました。どちらも翻訳。ちょっと分厚い本で、値段もそこそこ高いので、是非とも買ってほしいとは言いません。
 それと、どちらも和訳がある意味妙に癖があって、どちらかというと今読んでいる方が傑作(皮肉)なのですけど、今回は最初に読んだ方の紹介です。

 ということで、若干ネガティブな意見に見えるでしょうから邦題は省略します。原題は「Mathematics ahd the Real World: The Remarkable Role of Evolution in the Making of Mathematics」です。修辞法の話になりますが、コロン( : )は内容の具体例を示すときに使います、これとかあれとかそれとか、の感じ。英語の授業で言っていたかな?、私は社会人になってから論文の書き方の市販本でこのことを知りました。直訳すると、

 「数学と現世界、だから現実がいかに数学の改革に役立ったか」

 でしょうか。邦題から受ける印象はこれとは違って、今の数学がなぜ現在の記述法に落ち着いてしまったか、に見えました。たとえば十進法などは何の必然性も無く、でも誰も変更する気配はない、と思います。だから買ったのですけど、おもいっきり外しました。

 なので、最初に心理学が出てきたので腰が抜けたのです。言いたいのは数学の考え方が人間どころか動物の直感とはまるで別世界のように見える、ということ。なのに現代の数学は昔の数学よりも、より真実に近づいている感じがする。これは現実界の現象が影響しているに違いない、と言う立場からの解説だから、みたいです。

 内容の前半はですから王道の数学、算術と代数学と幾何学について。これらは物理学に引きずられたそうです。私の目から見ても、今の数学は、ちと物理学に寄りすぎの気がします。その具体例については機会があれば述べます。ちょっとした理解力があれば、楽しめる話なのです。

 第2部は確率と統計。なぜかベイズ理論にこだわる。あと、赤池情報量理論が出てくれば完璧でしたが、マニア方向には行かないみたいで、ベイズで終了。これもたしかに、面白い話題です。こちらも機会があれば私の理解の範囲を紹介したいと思います。

 最後の第3部は集合・論理と計算機について。ああ、ここも面白いのです。数学は無限を扱うことが出来ます。その過程も面白いのですけど、計算機は有限しか扱えないから、ここでカオス(混沌: 確定しているのに予測不可能)が登場します。ただし、この本ではカオスではなく、数学教育に突っ込んで行くので私の趣味とは合いませんでした。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする