私がプログラミングを好きなのは、探求心と創造性を満たしてくれるからです。
このかぼちゃは何なのかというと、、、
私が昔カラオケボックスで働いていた時に、私が花屋で買ってフロントにドンと置いたハロウィン向けかぼちゃです。写真だと分かりませんが両手でヨイショと抱えるほどの大きさがありました。お客さんたちはみんな清算時にペタペタ触っていました。左の写真が私作、右がアルバイトの女の子作です。
ピアノなどの鍵盤には、白鍵盤と黒鍵盤があります。
音階 |
隣の音階(前の2倍の周波数) |
白鍵盤と黒鍵盤を区別なく左から順番に押すと、周波数としては前の鍵盤と比べて、約1.06倍の周波数になっていることがわかりました。(Excelで計算しました)
そして、音階が1つ上がると、周波数としては前の音階と比べて、約 2 倍の周波数になっていることもわかりました。
1つの音階には、白鍵盤と黒鍵盤合わせて12個の鍵盤があります。
1.06 の 12 乗は 2.012196471 で、約 2 倍ということで合っています。
なぜ白鍵盤と黒鍵盤に分かれているのかというと、ChatGPT に聞いたところ、それは複数の理由があると言っていました。
買った鍵盤には、予定通り、「符号」と、「周波数」、「12個の通し番号」を書きました。
▼やっぱり鍵盤って見栄えがするなぁ…
「綺麗にはがせるシール」を使ったので、あと腐れがないです。
「周波数」の表示はいまいち役に立たない気がしますが、C4, D4 などの「符号」は自分が今何を押しているのかわかって良さそう。
1, 2, 3 の「通し番号」は白鍵盤が1、3と飛び飛びになっていれば周波数の離れ具合が大きめ、5,6となっていれば周波数の離れ具合が少ない、と分かるのでその辺の感覚をつかむのに役立つかな、、役立たないかな、、という感じ。
ファルコムは楽曲の著作権を限定的に許しているところがあるので、ファルコムのロードモナークのエンディングテーマソング(リンクは Apple Music ウェブサイトのその曲のページ。「プレビュー」ボタンを押します)を練習しようと思っています。その曲はメロディが分かりやすいです。
曲の冒頭だけ演奏して MIDI を通してソフトウェア(シーケンサー)上に記録し、微調整して、.wav 形式で Export したものがこれです。
▼ロードモナークのエンディングテーマソング、の冒頭だけ
[ミュージック・フロム・ロードモナーク/アドバンスド・ロードモナーク] エンディング(ロードモナーク)/ファルコム・スペシャル BOX’93/Copyright© Nihon Falcom Corporation
メロディラインだけなので、お粗末に聞こえるかもしれません。
でもこの MIDI 鍵盤、打鍵の強弱まで記録してくれてて、私の打ち込みの強弱を生で伝えることができています。
▼MIDI を通してソフトウェア(シーケンサー)上に記録、の様子です。
ゴホッゴホッ、インフル、ゴホッゴホッ、エンザっていう感じで遊んでいます。(インフルエンザにかかったっぽい)
私が MIDI 鍵盤をやるのは、基本的に RPG 開発における作曲を行うためです。
できるのか、できないのかは問題ではなく、やるんです。
RPG 開発において作曲をしたいということで、ある RPG 製作サイトの「作曲講座」を読み始めました。
その講座では作曲用ソフトとして「Domino」というシーケンサーを使用しています。
ダウンロードして、講座ページを読みながら進めましたが、メロディを入力するところで、個人的に「Domino に MIDI鍵盤をつなげてみよう」と思いたち、つなげてみました。
▼Domino と MIDI 鍵盤
鍵盤を押すと、確かに Domino に入力されますが、鍵盤を押してから音が発生するまで 500ms くらい遅れる感じがしました。
そういえば Amazon の商品レビューにそんなことが書いてあったと思ってレビューを探しました。
というわけでドライバーの設定とやらを探しましたが、それっぽいものは見つけられず…
製品のユーザーガイドを見ると、おおまかなことしか書かれていません。
「高品位のオーディオ・インターフェースを買え」と言われてもね…
この鍵盤の名前を検索ワードに入れて、「keystation 遅延」でウェブ検索しました。
すると、いくつかのページで、
>ASIOドライバがあればそれ使ってみて、…
>ASIO4ALLを導入する方法もあります。…
どうやら ASIO というドライバーを導入すれば解決するようです。
遅延の原因について調べました。
図に表すとこんな感じです。
スマートホンで見ている人は図中の文字が小さくなっています。ピンチインして拡大してください。
Windows 標準の処理だと、内部でいろいろやっているのでその分時間を取るとかそういうことらしいです。
それを改善するのが「ASIO(Audio Stream Input Output、アシオ、アジオ、エイシオ)ドライバー」です。
ASIO ドライバをインストールすれば良いということですが、「ASIO」は規格であり、「ASIO ドライバー」という単一のものがあるわけではないのだそうです。
そのオーディオ・デバイスのメーカーが、ASIO に対応したドライバーを作って、そのとき初めてそのデバイスの ASIO ドライバ―が手に入る、のだそうです。
というわけで、デバイス マネージャーのオーディオ・デバイスの社名が「Synaptics」(シナプティクス)だったので、
…その名前でウェブ検索しました。
でもその会社、Synaptics は一般ユーザーにドライバを提供している様子がまったくありませんでした。
また、私が使っているパソコンのメーカーサポート(ヒューレットパッカード)のドライバ ダウンロードを探しても ASIO ドライバーは提供されていませんでした。
普通に ASIO に非対応。。
そこで、"ASIO 非対応のオーディオ機器を ASIO に対応させるソフト"、「ASIO4ALL」(代表的なフリーの 汎用 ASIO ドライバー)をインストールすることにしました。
(サイトは英語なので、リンク先は「Google翻訳-ウェブサイト」で翻訳しています)
サイトの作りがものすごく頼りない感じですが、問題なくインストールできました。
もしもの話で Domino に音源があり、音源の出力先を選択する設定があれば、出力先として ASIO を選択することができますが、残念ながら Domino にその設定はありません。
Domino は『音源を持たないシーケンサー・ソフトウェア』であり、備える出力ポートは MIDI OUT だけです。音声信号は出せません。
一方、ASIO は『オーディオ・デバイスのドライバー』であり、音声信号のみをアプリから受信するものです。MIDI 信号は受け付けません。
互いに接続する方法が無く、音源もありません。
…というわけで、『あいだで中継を行うソフトウェア』が必要になります。
「loopMIDI」と、「VSTHost」です。
▼タスクトレイに常駐 |
▼仮想 MIDI ケーブルを作成し名前を付けると… |
▼各 MIDI ソフトでその名前が出てきます。 |
▼VSTHost へ入る MIDI 入力を選ぶ |
▼加工パーツ(プラグイン)を順につなげる方式 | ▼出力先に ASIO を選べる |
プラグインは、VST という規格にそっており、DTM の世界ではよく使われているそうです。
▼これらのプラグインの音を試している動画です。(MP4/46MB/1920x1080/0:03:55)
それから、ある RPG 製作サイトの「作曲講座」のほかに、「Domino」の公式サイトの「MIDI 講座」もとても役に立ちました。
VSTHost は最初なかなか音を出してくれませんでしたが、、
→ → → | → → → |
→ → → |
→ → → |
以降同様 |
VSTHost において、出力先のオーディオ・ドライバーは下図のように選べるわけですが、、
それぞれ比べてみたところ、なんと、、
遅延 | 音質 | 競合 | |
---|---|---|---|
MME の場合 | ○特に問題ない? | ×音が大人しい? | ◎iTunes鳴らしながら可 |
DS の場合 | ○特に問題ない? | ×音が大人しい? | ◎iTunes鳴らしながら可 |
ASIO の場合 | ◎特に問題ない | ◎音に広がりがある? | ×iTunes鳴らしながら不可 |
表の「遅延」についてはどれも問題がありませんでした。
遅延を改善するために ASIO を入れたのに、どのオーディオ・ドライバーでも鍵盤を押した瞬間に遅延なく音が鳴りました。
…この記事を書く前、DS(Microsoft DirectSound)で試したときに、少し遅延していたのですが、改めて調べてみると遅延がなくなっていました。状態が少し変わったのだろうか…
たぶんですが、MME(Windows Multi-Media Extensions)や DS(Microsoft DirectSound)は他のアプリの音声出力と同時発生ができるので、もしかしたら、他のアプリが多いときなど処理がかさんで状態が悪いときに遅延が起こるのかもしれません。またはパソコン全体が重いときに遅延するとか…。
それは正しいようで、Wikipedia では、MME と DS では遅延が発生する、と言っています。
Wikipedia - DirectSound より、
>(DirectSound は、)ASIO や WASAPI 等と異なり、低遅延やビットパーフェクト(データが 1 bit たりとも変化しない入出力)は保証しないため、商業レベルでの音楽制作といった特殊な用途には不向きである。
Wikipedia - ASIO より、
>Windows 旧来の MME ではそのレイテンシ(データ送信から音声が出力されるまでの遅延時間)は 200 から 500 ミリ秒、
>DirectSound でも 50 から 100 ミリ秒、
>Mac OS の Sound Manager で 20 から 50 ミリ秒とされているが、
>ASIO の場合は数ミリ秒から 10 ミリ秒以下で、環境によっては 1 ミリ秒以下となる場合もある。
▼上記 Wikipedia のレイテンシの数値をグラフにした図
このグラフを見ると、ASIO がいかに低遅延であるかがわかります。
ただし、最近の Windows の WASAPI(ワサピー、Windows Audio Session API)、macOS の Core Audio は ASIO と同じくらいの低遅延を実現しているらしく、音楽ソフトがそれらに対応していれば、ASIO を導入する必要は無いようです。
(WASAPI では低遅延にするためには「排他モード」にする必要があります。Core Audio のほうはよく知りません)
逆に、WASAPI や Core Audio の対応がない場合は ASIO を導入すれば良い、ということです。
遅延について はっきりと問題が出るのはこの記事で一番最初に示した、
Domino から直接「Windows 標準のオーディオ処理+Microsoftr GS Wavetable Synth」へつなげて音を出したとき
です。確実に 500ms 遅れるので、たぶん MME につながっているのではと思います。
表の「音質」についてはウェブの情報を見ると、「ASIO は音質が良い」と言われているようです。
確かに、ASIO のときだけ、音に深みがある気がしました。
表の「競合」については、 MME(Multi-Media Extensions)と DS(DirectSound)は Windows のマルチメディア機能のためにあるしくみということで、もともと他ソフトと一緒に音を鳴らせるものなので、競合しなくて当たり前なのかな…と思います。
ASIO の場合は、ASIO で動いているときは、ASIO がオーディオを占有するらしく、他ソフトの音声が止まります。
でも、そのおかげで ASIO では遅延がない、というのが実現できるわけです。
通常は MME や DS の設定にして他ソフトとの音の共存を可能にしておいて、MIDI 鍵盤を使って遅延が気になる場合に、ASIO に切り替える、という使い方が良いのかなと思いました。
あと、VSTHost のプラグインが使えるようになったのは良かった!
VSTHost にて、Devices メニュー>MIDI... を選ぶと、
▼「MIDI Settings」- タブ「MIDI Input Devices」 |
▼「MIDI Settings」- タブ「MIDI Output Devices」 |
このような画面が表示されます。
また、
この赤緑青、ピンクの □□□□ で示した MIDI 端子のアイコンをクリックすると、それぞれで下図のように同じような画面が出てきます。複数の場所でほぼ同一の設定ができる状態で、違いや意味が分からず混乱します。
▼「Engine Input」- タブ「MIDI Input Devices」 | ▼「Engine Input」- タブ「MIDI Output Devices」 |
これらは、『それぞれの段階で、どの MIDI 信号を通し、どの MIDI 信号を通さないか』をフィルタしています。
「Domino」や MIDI 鍵盤などから MIDI 信号が流れてきて、VSTHost アプリに伝わったときのフィルタ(MIDI Settings - タブ「MIDI Input Devices」)で、一番最初のフィルタリングが行われます。
フィルタの画面で選択した信号だけが、後段へ流れます。
選択しなかった信号は、その時点でフィルタされるので破棄されます。
次のフィルタ(Engine Input - タブ「MIDI Input Devices」)で、2回目のフィルタリングが行われます。
例の図では、「* Keyboard Bar *」(画面上のソフトウェアキーボード鍵盤の押下)と「loopMIDI Port 1」(私が購入した MIDI 鍵盤)の信号だけを選択しているので、その信号だけが後段へ流れます。
各プラグイン(Synth1 や Magical8bitPlugなど)で処理したい信号だけをそこに通す、ということができるわけです。
VSTHost のフィルタは、そういうしくみになっています。
自作 RPG に BGM を付けるために今やっていることは、
の3点です。
今回のお話は3番の本についてです。
「作曲したい人の本」(リンクはAmazonです)。
いつ買ったか、2014/10/20 発売で、本屋に並んでいたものを買ったので、5~10年前に買ったんですかね。
ずっと読まずに私の自室図書館(棚)に埋蔵されていました。
こんなふうに買ったはいいけど1ページも読まずに読む日を待っている本が何冊かあります。
今回、RPG の開発がだいぶ進んで、そろそろ BGM が必要だと思い、MIDI 鍵盤を買い、作曲をしようと思い、それでやっとこの本を読み始めたわけです。
BGM だけ人に作ってもらうとか、BGM 素材を使うとか、そういう手段もあるんですが、私が聴いている音楽というのは90%がゲーム音楽であり、それは小学生のころからずっと続いています。聴いていると「カッコイイな」と思うことが多々あり、憧れているわけです。なので、人の手を借りるというのは考えにくいみたいです。
「自分一人で全部やるよりは人々と協力してやる方が…」という考えも持っていますが、とりあえず、今の私は自分でやりたいみたいなので、やることにしたわけです。
それで、最近、2、3、作曲っぽいものをこじんまりとやっているわけで、今回、本にならって作ったものがコレです。
(MP4/3.2MB/960x540/0:01:00)
作曲にはいくつか方法があるそうです。
今回は「歌詞から起こすのをやりましょう」ということで、
~こいをしたけどしつれんしたよ~
という歌詞が例題として出されました。ポップスって愛をテーマにしないと成立しないみたいなところがありますよね。
この歌詞は15文字で、15個のリズムを刻んだものが、動画の一番最初です。
動画の2番目には、私がそのリズムに音を付けたものが演奏されています。
ある RPG 製作サイトの「作曲講座」もそうだったんですが、この本では肝心なところで、
>では、このリズムに音を付けましょう。
>ここではシンプルなメロディをつけてみました(手本)。
>歌詞に対して健康的ですね。
>みなさんも、鼻歌でかまいませんので言葉に音をつけてみてください。
…と、適当にこれで終わっているんですよね。これでやれと。
もしかして、作曲って適当なのか??と思ってしまう。
メロディを音符ひとつひとつ打ち出すための、特別なノウハウはないのかもしれません。
その次に、本の「step 5 メロディに和音をつける」のところで、「メロディに使った音を集めて、和音を付けます。」と書かれていて、『集めて付ける?コードってそういうものなのか?』と思って、集めた音に合いそうなコードを付けて、それを伴奏みたいに付けたのが、動画の最後の曲です。
「Dsus4」なんていうよくわからないコードを選んだりしたんですが、問題なくイケました。
step 6 がまだ残っていますが、今回はここまでです。
めんどうくさいなぁ
と思ったりするんですが、重い腰を上げて取り組んだのが、今回のこの作曲でした。
『面倒だと思ってやらないでいると、習得は遠い』と思って自分を説得して、やっとで取り組んでいます。
絵もそうなんですけど、基本的に私はやる気になって動くのが鈍いんですよね。
プログラミングならわりと意欲的なんだけど…
「JavaScript」カテゴリのカテゴリマスターになりましたねぇ。
でも同じカテゴリマスターでも、「毎週の集計で条件をクリアした場合になることができるタイプのカテゴリマスター」なので、来週か再来週にその条件から外れると、カテゴリマスターの称号は消えてなくなります。
>来週か再来週にその条件から外れると、カテゴリマスターの称号は消えてなくなります。
自分で言ってた通り、称号が消えました。
さようならカテゴリマスター、こんにちはその他の回答者。
以下のプログラム(JavaScript)はどちらも同じ動きをします。
こちらは if 文の条件が多くなっています。
それに対し、こちらは if 文の条件が短くなっていますが、true 時の処理が「コメントだけ」になっており、ややイレギュラー(変則的)な書き方です。
どちらもプログラムとしては同じ動きなので、ほとんど「どちらが好きか」、「どちらが分かりやすいか」という問題です。
(例文は私が今取り組んでいるプログラムから持ってきたもので、『プログラムの内容からフローチャートを自動で描く』というプログラムです)
たとえば、仕事の現場で、if の分岐先が「コメントだけ」になっているプログラムを書くと、「そんな書き方はしない」と蹴らされそうです。
しかし、その if の条件がより簡潔で明快であれば、「コメントだけ」も可なんじゃないかなぁ、と思いました。
でも仕事の場合は協同作業なので、他の人が理解できない書き方というのは残念ながら許されないでしょうね。自分さえよければという考え方は NG ですからね。
今日は、「会計ソフトを利用した記帳指導」の最終回に出席してきました。
個人的に収入がある人(個人事業主や、本業の他に副収入がある人のうち、免税にしないことを選んだ人)は、会計(記帳)を行う必要があり、それが簡単ではないので講習会で説明を受ける必要があるんです。
講習会は国税庁から委任された組織(青色申告会など)が開催しています。
最終回は講師による説明はほどほどに、ほとんどの時間を「確定申告の電子申告の手続き(実行)」に費やされました。
おかげで生まれて 50 年目(50歳)にして初めての確定申告が出来ました。
ところで、「確定申告」の何が「確定」なのかというと、
~ 人々が会社から給料をもらったり、個人事業で売り上げがあって収入が得られるのは、「社会を利用してこそ」なので、国はその利益に対して「所得税」という税金を課すことにしました。(利益説 このリンクは Wikipedia へ)
所得税の金額については "応能負担"(能力が高い人ほど余裕があるので多く負担すべき)の考え方から、利益が多い人ほど高い所得税を徴収することにしました。
会社勤めであれば、所得税は会社が計算してくれますが(年末調整)、個人事業主や 会社の給料の他に副収入がある人 が得た利益についての所得税はその人自身が自分で計算しなくてはなりません。
国は個人個人の状況をすべて把握することはできないため、各自、自分で計算するよう求めているんです。
自分で計算して税額を「確定」するので確定申告と呼ばれています。
確定申告をしないと、国は正確に税金を徴収できないので、確定申告はしなければなりません。
会社には「確定申告」というものが無く、代わりに「法人税申告」というものがあるそうです。
「確定申告」も「法人税申告」もどちらも「計算して納税する」という部分や、「所得に対して税金を納める」という部分は同じですが、会社の法人税申告は個人の確定申告に比べて内容が複雑になっているそうです。
ちなみに、「会社」と「個人事業主」は "利益を得る組織" という意味では同じものですが、形態や運営方法、課される税金の種類などで違いがあります。
でもまぁ、よく似ていますよね。「個人事業主って会社?」って思ってしまいますよね。
今回講習会の中で行った確定申告は、電子申請で行いました。
確定申告をした後は、申告した税金を期日までに納税することになります。
▼私がイラストAC に登録している自作イラスト群
前にも説明したかもしれませんが、
確定申告のような難しい手続きをしなくても、「イラストAC」では報酬を受け取れます。
どうして確定申告をするような方法を選んだのかというと、その方が結局有利だからです。
(私自身、あまりよく分かっていないので、以下の説明は分かりづらいと思います)
確定申告をしない楽な方法とは、「免税事業者を続けること」で、
確定申告をする難しい方法とは、「あらたに課税事業者となること」です。
正確には、「インボイス発行事業者」になることを選ぶとそれは「課税事業者」になることを意味します。
▼2023/6/27 にイラストAC からのメールで「インボイス発行事業者」になることを勧められた。
消費税というのはあくまでも「末端の消費者が納める税金」です。
業者が原材料を購入するのは、「その原材料を使って製品を作るという仕事をするため」であり、消費するためではありません。
消費ではないので消費税はかからないはずですが、実際は原材料を購入するときには消費税 込みの金額で購入しています。
いっぽう、原材料を使って商品を作り、消費者に税込みで販売すると、消費者は納税の意味で消費税を販売業者に支払います。
販売業者は消費者から受け取った消費税を、消費者に代わって国に納める義務があります。
このとき、その消費税全額を納税するのではなく、原材料の購入時に支払ってしまった支払わなくても良いはずの消費税の金額を差し引いて(控除して)から納税することができます。
この「差し引く」(控除)という会計処理を法的に証明されつつ行うために「インボイス」という書類(インボイス発行事業者のナンバー入りレシート、領収書)が必要なんです。
この「インボイス」がないと、「原材料購入時の支払わなくても良いはずの消費税」を取り返すことができません。(本来支払わなくても良いはずの消費税を支払うことになってしまう)
だから原材料を購入する販売業者は、「インボイス発行事業者」との取引を好んで行うようになります。
そんなふうに「取引先から選ばれてしまう」ので、「インボイス発行事業者」になったほうが有利なんです。
「インボイス発行事業者」になると、それは「課税事業者」になることを意味し、それはつまり毎年確定申告を行うということになります。
私の場合では、例の原材料の業者にあたるのは私であり、原材料とは「イラスト」のことで、原材料(イラスト)を購入して商品化して販売するのは「イラスト AC」です。
「インボイス発行事業者」になるべきは私であり、実際に私は「インボイス発行事業者」になっています。
イラスト AC は私の「インボイス発行事業者のナンバー入り領収書」を受け取って、私からイラストを買い取った時の消費税(イラストを消費するわけではないので、払わなくても良いはずの消費税)の支払いを控除する(取り返す)ことができます。
私にはイラスト販売で受け取った消費税(イラストAC が本来払わなくても良いはずの消費税だが、消費税として受け取っているので納税しなければならない)を納税する義務があります。(上図左端の※1の矢印のこと)
義務がある私は帳簿の記帳方法と確定申告の方法を学ぶ必要があり、今回その成果として1回目の確定申告を行いました。
国は正しく計算された消費税を私から確実に受け取れるし、イラスト AC の消費税控除を正しく行えるというわけです。
で、その1年分の消費税というのは、確定申告の計算結果としては0円でした。
私のイラスト販売の規模が小さすぎてそうなってしまうという話でした。orz
フルスイングで空振りストライクバッターアウト、残念、次回に期待。って感じ。
私っていつもそうだから。
イラスト AC の件に限らず、私のホームページ上で「オンラインショップ」を開こうかなぁと思っています。
そのためにオンライン決済の PayPal の契約(店としての契約)も済ませてあります。
(PayPal は面倒だという話をちょっと聞いたので、別の方法も検討したほうが良いかもしれないんですけど)