ピアノを始めました。
就職して最初の研修は定時に帰って結構時間が余っていました。そこでなにか新しいことでも始めてみようかと思い、ピアノを始めてみました。

かっこいい趣味を持ちたい

今まで趣味という趣味がありませんでした。アニメや漫画、Youtube、サイクリングとかゲームなどの趣味というか誰でも暇なときにすることが趣味でした。
あとは気力があるときはプログラミングをしたりしていましたが、これはなにか作りたいものがないとやる気がなかったので、モチベーションの落差が激しく、連休など時間に余裕がないとプログラミングに気力を回せないという欠点がありました。

音ゲーが好き

夢中になれて頭をあまり使わないで済むものはないか、少し考えてみました。
私は音ゲーが好きで、スマホゲーのガルパやゲーセンでmaimaiを少しやっていました。音ゲーの良いところはやっているときは音楽に合わせて体を動かすことに夢中になれるんですよね。考えずにノーツに合わせて指や腕を動かせばいいので頭が疲れることもありません。(上手い人は考えてプレイしているのでしょうけれども)

しかしガルパやmaimaiでは限られた曲しかできません。あと趣味として言うにはそこまでかっこよくない気がします。じゃあまともそうなかっこよくて夢中になれることはなんだろう・・・

ピアノをやってみたい


ピアノやってみようかな。

こうしてピアノを始めてみようと思ったのでした。なんかゆゆうたがピアノ弾いてるのとか見てるとやっぱピアノ弾けるのってかっこいいですよね。ピアノなら練習して耳コピもできるようになれば理論上好きな曲すべてを弾くことができます。さらに両手と足を使う非常に難しい音ゲーです。これはできたらものすごい楽しくて、自分で好きなように弾いて奏でた音を聞いて楽しむこともできる最高の趣味なのではないか。そう思ってピアノを始めようと思いました。

けれどピアノは価格が高い。安いものでも数万は必ずしてしまう。そんな続くかもわからないすぐに飽きてしまうかもしれないことに数万も最初はかけられませんでした。
そこでまずはパソコンのキーボードでピアノを弾こうと思いました。

パソコンでピアノ

パソコンのキーボードでピアノを弾く一番簡単な方法は、キーを押すとピアノの音がなるサイトを使うことです。そのため最初はサイトを開いてキーを押してピアノ気分を味わっていました。けれど配列が気に入らない。もっと自分好みの配列でピアノを引きたいと思うようになりました。
ピアノが88鍵盤あるのに対してパソコンのキーボードは数字の列12+アルファベット左が3*5=15+右20=47キーしかありません。
鍵盤の少ないピアノでも61鍵盤なので結構少なくなってしまうため、使う音だけをセレクトして打ちやすい位置に配置しなければなりません。
そのため既存のサイトでは物足りなくなってしまいました。
じゃあどうするか。

自分で作るしかない!!

ピアノソフトを自作する

ピアノソフトを自作と書くと大げさですが、パソコンのキーボードを押すと設定した音がなるようなアプリを作ろうと思いました。pythonかjsのどっちかで作ろうと思い、今までサイトで弾いていたのでjsで作ろうとしました。chatGPTに聞きまくって作りました。

html
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ピアノキーボード</title>
    <style>
        .piano {
            display: flex;
            flex-direction: row;
            user-select: none;
            background-color: #333;
            padding: 20px;
            border-radius: 10px;
        }

        .white-key {
            height: 200px;
            width: 40px;
            background: ivory;
            border: 1px solid #000;
            box-sizing: border-box;
            margin: 0;
            position: relative;
            z-index: 1;
            border-radius: 0 0 5px 5px;
        }

        .black-key {
            width: 20px;
            height: 120px;
            background: black;
            z-index: 2;
            margin: 0 -10px;
            border-radius: 0 0 3px 3px;
        }

        .white-key.active,
        .black-key.active {
            background: yellow;
        }
    </style>
</head>

<body>
    <button id="startAudio">Start Piano</button>

    <div class="piano" id="piano"></div>
    <script src="script.js"></script>
</body>

</html>


js
const notes = [
    'C2', 'Cs2', 'D2', 'Ds2', 'E2', 'F2', 'Fs2', 'G2', 'Gs2', 'A2', 'As2', 'B2',
    'C3', 'Cs3', 'D3', 'Ds3', 'E3', 'F3', 'Fs3', 'G3', 'Gs3', 'A3', 'As3', 'B3',
    'C4', 'Cs4', 'D4', 'Ds4', 'E4', 'F4', 'Fs4', 'G4', 'Gs4', 'A4', 'As4', 'B4',
    'C5', 'Cs5', 'D5', 'Ds5', 'E5', 'F5', 'Fs5', 'G5', 'Gs5', 'A5', 'As5', 'B5', 'C6'
];
//ずらしたいとき用
var initNote = 0;
//1オクターブ上
const ocue = 12;
/*
//左右で1オクターブちょっと弾く用
const keyMap = {
    //LEFT
    'q': 'C2', '2': 'Cs2', 'w': 'D2', '3': 'Ds2', 'e': 'E2', 'r': 'F2', '5': 'Fs2', 't': 'G2',
    'a': 'Gs2', 'z': 'A2', 's': 'As2', 'x': 'B2', 'c': 'C3', 'f': 'Cs3', 'v': 'D3', 'g': 'Ds3', 'b': 'E3',
    //RIGHT
    'y': 'C4', '7': 'Cs4', 'u': 'D4', '8': 'Ds4', 'i': 'E4', 'o': 'F4', '0': 'Fs4', 'p': 'G4', '-': 'Gs4', '[': 'A4', '=': 'As4', ']': 'B4', '\\': 'C5',
    'h': 'Cs3', 'n': 'D3', 'j': 'Ds3', 'm': 'E3', ',': 'F3', 'l': 'Fs3', '.': 'G3', ';': 'Gs3', '/': 'A3', '\'': 'As3', '`': 'B3',
};
//shiftで右だけオク上を弾けるようにしたもの
const keyMap = {
    // LEFT
    'q': notes[initNote], '2': notes[initNote + 1], 'w': notes[initNote + 2], '3': notes[initNote + 3], 'e': notes[initNote + 4],
    'r': notes[initNote + 5], '5': notes[initNote + 6], 't': notes[initNote + 7], 'a': notes[initNote + 8], 'z': notes[initNote + 9],
    's': notes[initNote + 10], 'x': notes[initNote + 11], 'c': notes[initNote + 12], 'f': notes[initNote + 13], 'v': notes[initNote + 14],
    'g': notes[initNote + 15], 'b': notes[initNote + 16],
    // RIGHT
    'y': notes[initNote + 24], '7': notes[initNote + 25], 'u': notes[initNote + 26], '8': notes[initNote + 27], 'i': notes[initNote + 28],
    'o': notes[initNote + 29], '0': notes[initNote + 30], 'p': notes[initNote + 31], '-': notes[initNote + 32], '[': notes[initNote + 33],
    '=': notes[initNote + 34], ']': notes[initNote + 35], '\\': notes[initNote + 36], 'h': notes[initNote + 13], 'n': notes[initNote + 14],
    'j': notes[initNote + 15], 'm': notes[initNote + 16], ',': notes[initNote + 17], 'l': notes[initNote + 18], '.': notes[initNote + 19],
    ';': notes[initNote + 20], '/': notes[initNote + 21], '\'': notes[initNote + 22], '`': notes[initNote + 23],
    //RIGHT shiftで1オクターブ上げる
    'Y': notes[initNote + 24 + ocue], '&': notes[initNote + 25 + ocue], 'U': notes[initNote + 26 + ocue], '*': notes[initNote + 27 + ocue], 'I': notes[initNote + 28 + ocue],
    'O': notes[initNote + 29 + ocue], ')': notes[initNote + 30 + ocue], 'P': notes[initNote + 31 + ocue], '_': notes[initNote + 32 + ocue], '{': notes[initNote + 33 + ocue],
    '+': notes[initNote + 34 + ocue], '}': notes[initNote + 35 + ocue], '|': notes[initNote + 36 + ocue],
};
*/
//右手専用を作る!!!!
const keyMap = {
    // C3 to Gs3(左下、z to b,h)
    'z': 'C3', 's': 'Cs3', 'x': 'D3', 'd': 'Ds3', 'c': 'E3', 'v': 'F3', 'g': 'Fs3', 'b': 'G3', 'h': 'Gs3',
    // A3 to Ds5 (上段、q to [,=)
    'q': 'A3', '2': 'As3', 'w': 'B3', 'e': 'C4', '4': 'Cs4', 'r': 'D4', '5': 'Ds4', 't': 'E4', 'y': 'F4', '7': 'Fs4', 'u': 'G4', '8': 'Gs4', 'i': 'A4', '9': 'As4', 'o': 'B4', 'p': 'C5', '-': 'Cs5', '[': 'D5', '=': 'Ds5',
    // B5 to C6 (右下、n to /)
    'n': 'E5', 'm': 'F5', 'k': 'Fs5', ',': 'G5', 'l': 'Gs5', '.': 'A5', ';': 'As5', '/': 'B5', '`': 'C6'
};


const whiteKeys = ['A2', 'B2', 'C3', 'D3', 'E3', 'F3', 'G3', 'A3', 'B3', 'C4', 'D4', 'E4', 'F4', 'G4'];
const blackKeys = ['A#2', 'C#3', 'D#3', 'F#3', 'G#3', 'A#3', 'C#4', 'D#4', 'F#4', 'G#4'];

const piano = document.getElementById('piano');

notes.forEach(note => {
    const key = document.createElement('div');
    key.classList.add('key');
    if (note.includes('s')) {
        key.classList.add('black-key');
    } else {
        key.classList.add('white-key');
    }
    key.dataset.note = note;
    piano.appendChild(key);
});


const audioMap = {};

// 各ノートに対応するオーディオオブジェクトを作成
for (const note in keyMap) {
    audioMap[keyMap[note]] = new Audio(`sounds/${keyMap[note]}.mp3`);
    audioMap[keyMap[note]].preload = 'auto';
    audioMap[keyMap[note]].playing = false;
}


document.addEventListener('keydown', (e) => {
    const note = keyMap[e.key];
    if (note) {
        const key = document.querySelector(`[data-note="${note}"]`);
        if (key) {
            key.classList.add('active');
            if (audioMap[note].playing == false) {
                audioMap[note].currentTime = 0.18; // 再生位置を先頭にリセット
                audioMap[note].play();
                audioMap[note].playing = true;
            }
        }
    }
});
document.addEventListener('keyup', (e) => {
    const note = keyMap[e.key];
    if (note) {
        const key = document.querySelector(`[data-note="${note}"]`);
        if (key) {
            key.classList.remove('active');
            audioMap[note].playing = false;
        }
    }
});


音源をてきとーに用意して、キーを検知して音を再生。
これで自分の好きな配列でピアノを弾けるようになりました。
せっかくなのでyoutubeを見ながら千本桜の簡単verを弾いてみたり。
どうせ左手は弾けないのでキーすべてを右手用にしてちょっとピアノを弾いているつもりになっていました。
すると今度は遅延が気になるようになりました。押したあとに少し遅れて音が出ている気がしました。これはchatGPTに聞いて音を再生する関数を変えたり事前に読み込んでおくように色々やってちょっと改善した気がします。
けれどまだ大きな課題が。それは・・・

配置が変すぎる!!!

いくら好きな位置に音を割り当てたと言っても変な配置なのは変わりありません。47しか無いキーに音を割り当てるということは、本来一直線に並んでいる鍵盤がくねくね折り曲がって配置されているということ。ただでさえどれがドの音かすらちゃんと覚えていない状態なのに鍵盤が変な配置になっているとどうしてもまともに弾けません。

そこでなんでもいいから一直線に鍵盤が並んでいる安いものが欲しいと思うようになりました。調べてみるとロールピアノというものがあることがわかりました。そこで家電量販店やドンキに行って探しに行ったのですが、ありませんでした。(実は後にもう一度ドンキに行ったり、島村楽器に行ったところロールピアノはありました。)
ロールピアノだと5000円弱で横一列にシリコンでできた鍵盤が並んでいるのでパソコンのキーボードよりは入力しやすいはずです。けれどなかったので諦めて、数週間はピアノ欲しいけど安いやつはないし高いのはそこまでいらないかな状態が続きました。。

やっぱりピアノがほしい

そうすると少しずつピアノが欲しいという欲求が高まってきました。
もう、すぐ飽きてもいいからとりあえずピアノが欲しい!
そしてピアノをamazonで探し始めました。
amazonランキング一位のピアノは2万円し、ニコマクという中華製のピアノでした。
ピアノスタンドとペダル、イヤホンもついて2万円でピアノとしては安いけれども、趣味として買うものとしてはやはり高い買い物です。どうしようかと迷っていましたが、ずっとピアノがほしいという気持ちが頭の中を数週間も漂っていたのでどうしても欲しくなり、、

ピアノを買った

ピアノを買いました!!!



ポチったあと、ついに買っちゃったかぁと、本当に買ってよかったのかとちょっと不安になりました。けれど長い間欲しくてもやもやしていたので思い切って買ってよかったと思ってます。
値段が高いのはもちろんなんですが、やはり大きいというのも買うのをためらった原因の一つですね。電子ピアノなのでアップライトピアノよりは非常にコンパクトなんですが、88鍵盤の電子ピアノでも自分の使っているデスクの半分を占めるくらいのサイズがあります。
幸い自分はクローゼットにあまり使わないものを詰め込んで部屋にはテレビ、デスク、ベッド、ラックしか床においてない疑似ミニマリストなのでピアノを置くスペースは有りました。
ピアノが届いて使ってみると、おおお、これは弾きやすいと感じました。今までキーボードで弾いていたので感触が軽かったのですが、電子ピアノは少し重めに感じました。
今でもこのニコマクの電子ピアノはちゃんと使えているので買って良かったです。まだ慣れてはいないのですが、やはり鍵盤が一直線に並んでおり、黒鍵と白鍵も見てわかるのでパソコンのキーボードと比べて非常に弾きやすくなりました。あとこのピアノはtyoe-cで充電やパソコンと接続ができるので、結構便利です。

島村楽器へ行った

ピアノを手に入れるとどうしても比較したくなってしまう。高いピアノは押し心地はどう違うのだろう。そう思って島村楽器へ向かいました。1回目行ったときは、あれ?あんまり押し心地に大差ないじゃんと感じました。これはピアノが届いて間もないときに行ったので、そもそも自分が買ったピアノの感触をそこまで覚えていなかったからです。2回目行って触ってみると、あれ?ぜんぜん違うじゃん。なんか13万とか40万とか高い電子ピアノは鍵盤がハンマーアクションでぶるんぶるんしている・・!!まず本物のアップライトピアノに触ったことがないので本物を知らないのですが、確かに高いピアノは押し心地が違いました。ちょっと欲しくなりましたが、まだまともに弾けないので弾き心地はそこまでこだわりが強まらず、欲しい気持ちはそこまで膨れ上がらずに落ち着いていきました。

いい音で弾きたい

人間の欲というのは恐ろしいですね。全然うまく弾けないのにより良い音で弾きたいと思うようになりました。やはりピアノの中では2万円は安く、ちゃんとしたものでは6万円くらいするようです。そのためピアノの音がなんか安っぽく感じるようになりました。最初はネットで拾ったてきとーなピアノの音で満足していたのに、今度はピアノを買って、さらにより良い音でピアノを弾きたいと思うのですから。ニコマクの音は自分の感覚でいうとびぃ〜んとかうぃ〜んみたいな輪ゴムを弾くような音の成分が強めに感じました。もっといい音を鳴らす方法はないかと調べていると、Frieve-Aという人の動画にたどり着きました。

無料ピアノ音源で音を出す


この動画では電子ピアノをパソコンに繋いで、ピアノの音源を再生するソフトからピアノの入力に合わせて音を出すことで、いい音を出しています。
Frieve-Aの他の動画でNoct-Salamander Grand Pianoなどの他の音源も紹介されていたのですが、個人的には無料音源で一番聞いていて気持ちがいいのはこのHammersmith Freeでした。結構気に入ってます。ですが、このピアノ音源を再生するのに結構手こずりました。。

ASIOってなに?

Hammersmith Freeの音源を再生するにはNative Accessというソフトが必要で、そこからKontact Playerというソフトを通して音源を鳴らします。最初Kontact Playerをインストールして起動して、ピアノを押したのですが音がなりませんでした。原因がわからずネットで色々調べていたのですが、なにやらasioドライバーというのが必要だとわかりました。なにやらwindowsのデフォルトのオーディオドライバではレイテンシという音が再生されるまでの遅延時間が長くて使い物にならなく、asioという方式だと速くなるようです。
自分の場合はそもそも音がならなかったんですけどね。しかしasioドライバというのはオーディオインターフェースという別の機器が必要だというではありませんか。ピアノを2万円に抑えたのにオーディオインターフェースに1.5万円なんてかけられない。。。
そんな事するくらいなら6万のピアノを買ってやる!と思いつつ更に調べると、asio4allというソフトが有ることがわかりました。これをインストールすると、asio似対応していないものでもasioとしてイヤホンやスピーカーを接続できるそうです。
実際にインストールして接続してみると、、

イヤホンから音がなりました!!!

Hammersmith Freeのいい音がピアノを弾くと流れました!良かった、これで一件落着だ。。と思ったらちょっと使いにくい部分があることがわかりました。

YouTubeが再生できない

Hammersmith Freeの音いいなーと思いつつ、気が向いたときにすぐにピアノが弾けるようにKontact Playerを起動しっぱなしにしていました。新しい曲を覚えるためにYouTubeでかんたんピアノ譜面動画でもみよーっとと見ようとしたところ、動画の読み込み似時間がかかり、オーディオなんとかがクラッシュてきな文字が出てきて動画が再生できませんでした。
え、なにこれ?youtube見れないんだけど、、と問題にぶつかりました。
原因はasioというのが排他的な方式らしく、再生デバイスを占有してしまうそうです。そのためKontact Playerがイヤホンを占有してしまい、youtubeをイヤホンで聞こうとするとyoutubeがイヤホンから音を出せないのでエラーが出るみたいな感じですかね。
対処としては別の再生デバイスを使えばいいだけです。私はテレビをモニターとして使っているため、イヤホンをピアノ用に、youtubeをテレビから流してこの問題を回避しました。
ふぅ、これでまた一件落着だ、、、とはなりませんでした。

遅延がひどくなる

Kontact Playerを起動しっぱなしにしていつでもピアノを弾けるようにしていたのですが、ある時ピアノの鍵盤を押すと音が明らかに遅延するようになりました。ピアノ本体からも音を出してみると、音がダダーンというように、ピアノ本体の音とKontact Playerの音で2回聞こえるくらい遅延していました。なんでだろうとバッファとかサンプリングレートとかてきとーにいじったのですが直りませんでした。しかしパソコンを再起動すると直りました。そのため長時間Kontact Playerを起動したらいちいちパソコンを再起動しないといけなくなりました。
おそらくasio4allが無理やりasio似対応させているため不安定夏目かなと思っています。遅延を直そうと試行錯誤しているとき、タスクバーに隠れていたasioのアイコンをクリックして少しいじるとすぐにフリーズして固まっていたからです。
調べるとオーディオインターフェースなら安定して遅延を抑えられるとのことでした。なるほど、オーディオインターフェースって配信者じゃなくても需要があるのね、と理解しました。それでもういっそのことオーディオインターフェース買っちゃうかと思い始めました。やすいもので6000円くらいかー、まあ変えなくはないなと感じ始めていたその時、ある情報に出会いました。それは、、

macならasioなくても遅延なく再生できる!!!

mac信者に近づく

幸運なことに前に私はヤフオクでmacbookを買っていたのでした。けれどキーボード操作やウィンドウ操作など細かいところでwindowsと異なっていて使いにくさを感じており、macbookの半分はwindowsでbootcampでwindowsをメインとして使っていました。
しかしこのオーディオの件で、macを使ってみようと思いました。
macにKontact Playerをインストールして、ヘッドホンを接続して弾いてみると、、、

遅延なく再生できた!!

さらにはピアノとYouTubeを同時に同じデバイスで再生できる!!!

めちゃくちゃいいじゃないですかmacのオーディオ関連。 OSがデフォルトで低遅延・並列再生に対応しているなんて、、
こうして感動してmac信者に近づきました。。
実は他にも理由があって、自分が持っているwindowsノートパソコンはtype-cが一つしかなく、映像出力が1つしかできないんですよね。けれどmacbookはtype-cが2つあって2つ映像出力ができる。ちょうどモニターが手に入ったのでテレビとモニターの2つに出力したくてmacbookをメインに使おうと思っていたのです。
あとスピーカーも手に入って、イヤホンジャックをusb-Aに変換するアダプタやモニターアームをAmazonプライムデーに購入しました。モニターアームはamazonランキング一位のあのエルゴトロンのモニターアームで、別に記事を書こうと思ったのですが、最近書く気力がないのでここにちょろっと書きました。このピアノの記事はピアノの設定にめちゃくちゃ時間がかかったのでどうしても残しておきたいと思ったので書くモチベーションが湧きました。

開放型ヘッドホンも買う

あのプリンで有名なゼンハイザーの開放型ヘッドホンも買いました。amazonプライムデーのときはこのヘッドホンは半額になるんですよね。前から半額になることは知っていたのでずtrとプライムデーを待っていました。プリン色ではない、黒いamazon限定モデルです。黒もいいんですがプリン色のほうが良かったなぁ。調べるとヘッドホンには密閉型、開放型、セミオープン型があり、セミオープン型が一番音質がいいんだとか。けれど種類もたくさんあり、どうせなら前から知っていた有名なものがほしいと思いゼンハイザーHD599を買いました。そんなに高いものは今は買えないので。。
開放型は音がドライバ付近の穴から抜けてこもらず、耳が疲れにくいとのことで前から使ってみたかったんですよね。ピアノにイヤホンがついてはいたんですが、やはり音が悪く、せっかくいい音をわざわざパソコンから出しているのにもったいないと思っていました。そのためヘッドホンを買ったのですが、やっぱり違いますね。音がより広がったように良い音になりました。けれど開放型の音と密閉型の音のはっきりとした区別は自分には難しかったです。確かになんか音の雰囲気が違うようなという感じはしました。周りの音がこもらず結構聞こえたのは一番わかりやすかったですね。

現在に至る

こうしてmacでゼンハイザーのヘッドホンを使ってHammersmith Freeの音源を用いてピアノを弾くようになりました。環境だけはいっちょ前に整えたのですが、肝心の演奏は全然弾けません。特に左手。両手で異なるリズムとか気が狂いそうだし、そもそも運指がてきとーなので片方の手しか見れないと正しい音を鳴らせません。6/7にピアノを買って1ヶ月ちょっと経ちましたがなかなか難しいですね。
本当はピアノで弾けるようになった曲を記事としてまとめてこのくらいの期間でこのくらい弾けるようになったというような日記を書こうと思っていました。
けれど買ってから2週間位はめちゃくちゃピアノに夢中になっていたので、仕事から帰ってからすぐにピアノをずっと弾いていました。しかし2週間ちょっと経つと、少しずつ飽き始めてきました。最初は指が一切動かなかったのがどんどん右手だけでも動きに慣れてきてかんたんな曲なら弾けるようになっていく。少しずつできる事が増えていくのが楽しかったのですが、一定のレベルになると上達している気分になれず、同じことを繰り返している気分になりました。好きな曲も何回も弾いていると何回も聞くことになるので飽きてきちゃうんですよね。
仕事も少しずつ忙しくなってくるとますます時間がなくなってやらなくなってきます。それでも時々なにかしたくなってピアノに触れるとちょっとやってみようかなという気持ちが芽生えて、そしてプライムデーが重なってヘッドホンを買ったり環境が更に整って来たのでまたちょっとずつやる気が戻ってきました。

あと書き忘れましたが、ニコマクにレビューを書くとちゃんとしたペダルがもらえるということでもらいました。星5を強要されているのではなくてレビューを書いたらなので問題はないですよね??しらんけど。付属のペダルは昔あった半球状の裏返して時間が経つと吹っ飛ぶおもちゃのように踏むとひっくり返っていましたが、もらったペダルは押してもひっくり返らず使いやすいです。(ペダルを押すタイミングが難しくてできていないんですが。。)

さいごに

こんな感じで大人になってからピアノを始めて色々楽しんでいます。ピアノを買ってよかったと思えたので思い切って新しいことを始めて良かったです。これからも飽きたりまた興味を持ったりを繰り返しながら長く楽しんでいけたらと思います。