音楽とコンピュータ。なぜパソコンにイラつくか。


はじめに

結論から言えば『機械に振り回されないようにしよう!』ということです。 

そのためには、根本的な仕組みを理解しなければならないのではないかと考えています。

といっても現代のコンピュータの全体を把握するのは困難だと思いますが。


例えばハード機材を駆使して、パソコン等をなるべく使わないようにして音楽をつくろう!

という動きは一部で強まっているように思えます。

それはなぜなのか?と言えば単純に、コンピュータを使いたくないからです。

じゃあなぜ使いたくないのか?ということも含め、

コンピュータを使う上で気をつけなければならないことなどを考えてみたいと思います。



単なる道具か支配者か?

現代の音楽制作においてはコンピュータというものは、避けることができないものになっています。よっぽどアナログ機材への強いこだわりを持つ人達を除けば、現在のほとんどの音楽は、コンピュータを中心とした制作環境において作られている、と言って過言ではないと思います。 


そういう状況においては、パソコンそのものの仕組みをある程度は理解しておかなければいけないんじゃないかと個人的には考えています。それはなぜか?理解しなければ、コンピュータは私たちにとってブラックボックスだからです。つまりよくわからないけど、使うことはできるというモノです。しかし、よくわからないからこそ、イライラするし何かトラブルが起きたら怒りが爆発します。


なぜブラックボックスなのか?といえばそれはもちろん企業秘密である部分もありますが、ユーザーが手軽にコンピュータを使えるために情報隠蔽(いい意味で)がなされているからです。もしブラックボックス化がなされていないと、コンピュータを使うのに専門的な知識、プログラミング能力が必要になってします。それはそれで問題ですし、普通の人でも使えるように改良されてきたのが、コンピュータの歴史そのものなわけです。


しかし、その反面なにか本格的に作業していこうとすると、その見えない部分に振り回されてしまうことになるわけです。それなりの知識が要求されてきます。


確かにそれなりのPC,MACを持ってさえいれば今や、それだけでいろいろな音楽が造れてしまうわけです。かなりいろいろなことが出来ます。しかし、ブラックボックスなわけですので、どこかその動作に釈然としない、モヤモヤが残るわけです。使えてるならそれでいいじゃん!という考え方もひとつの正解ではあると思います。ただ何か疑問に思っても『それはそういうもんだから』というおなじみのフレーズに、私たちは振り回されてしまうわけです。


これに対抗する手段として、この記事で書いているように全ての人がプログラミング等を学ぶわけにはいかないでしょう。というわけで、より直感的な操作の出来る、機能が限定あるいは厳選された、専用のハード機材、ビートマシンやハードシンセですね、を使っていこう!というミュージシャンが出てくるわけです。

(音楽ソフトは、大別すれば録音やオーディオ編集、MIDIなどを取り扱うDAWや、シンセサイザやドラム音源、生楽器音源などの音源ソフトがあります。なんでもありますし、なんでもできます。出来すぎるくらいです。なので何をつけばいいか、と多くの人は混乱するくらいなわけです。どのソフトを使うべきか?という問題は今回の問題とは別の大きな問題ですがここでは省略します。)



プログラミングをやってみて

自分としては、そのコンピュータの仕組みだとかデジタルオーディオやらに、具体的な興味があったので調べていたのですが、プログラミングを独学でですが、学ぶ機会に恵まれました。

正直、とにかく最初は苦痛でした。

けれども実際にプログラミングの勉強を通して、パソコンの仕組みやコンピュータの動かし方に触れてますと、 ソフトを作ることの大変さがよくわかりますし、得られる事はたくさんあったわけです。


10代の頃からパソコンに触り始め、今ではスマフォというかたちで小型コンピュータを持ち歩いているわけで、もうこれ無しには現代生活を送れないという状況です。しかし、その中でもコンピュータの動作(あるいはエラーなど)に対して、これはどういうことなんだろう?という気持ちはありました。それでも便利なものとして使えてきたのはわずらわしい部分を隠されていたからですが。


しかし、それらが一部ではありますが解き明かされそうだったのか!という清清しい気持ちになれたわけです。そういう意味で、プログラミング学習を通してその仕組みを学んだ意味はかなりありました。しかし、それがわかったからといって、作る曲が良くなるとかサウンドが良くなるとかっていうことでは無いですけどね。 



コンピュータの実態

まず言っておきたいことは、パソコンというものは一般の人が思っている以上に案外適当に動いているものだということです。適当というか愚直というべきでしょうか。昔はエラーが起きたりするのが当たり前で、かなり繊細なものでしたね。(アラサー意見)今でもおかしくなるときはなりますが。


それが、ここ20数年で相当性能が上がり、現在ではスマートフォンと言う形で個人が日常的に肌身離さず持ち歩いて秒単位で常時ネットに接続していると言う、よく考えれば近未来的な状況になっています。 


そうした状況ではコンピュータに詳しくない人からすればコンピュータは万能なものであり、絶対的なものだと考えてしまうのが普通だと思います。なんでもできますからね。しかしコンピュータというのは、二進法という0と1だけで動くものであり、人間が思っている以上にその実態は単純なもので、しかし恐ろしい量の計算を一瞬でやってしまうものなのです。


近年AIの進歩は目覚しいものがあり、話題になることも多いです。 しかし現段階では、コンピュータは自分で考える力という意味での知性を持つにはまだ至っていません。 なので1から100いや1から1000位まで人間が指示しなければなりません。


つまりそれがまさしくプログラミングということになるのですが、 そう考えると、プログラマの思考というものがそこにかなり反映されるのです。どういう動作をどのように指示するのか?ということですね。同じことをやるにしても、プロセスが違えば、結果が変わるということもあるでしょう。


所詮0と1といっても、いうほど白黒はっきりしたものでは無いようなのです。 特に音楽なんて個人によって何が良いかなんてかなり違いますし。 音の処理の仕方に対して、どういう方法をとるか?によって、結果としてのサウンドに違いが出るのはある意味当然のことです。

これが様々なソフトごとの音の違いになります。また音楽の場合は、アナログ機材をモデリングしたソフトが多用されていますからね。 

これはより複雑な計算、処理が内部で行われていることになりますが、アナログ機材における各々の反応をどういう計算処理で、またどこまで再現するかによって、音は変わってきます。モデルにする実機の状態による影響もあります。


だからデジタルの世界は0と1の世界ですが、 かといってその動作、結果が単純明確なものとは限らないということは、頭の片隅においておくべきです。 



コンピュータも間違える?

あとやや専門的な話になるのですが(当然自分も素人ですけどね!) コンピュータは0と1によって数字を表現する二進法で動いてます。 1,2,3,4...などの整数についての単純な計算においては、コンピュータが間違える余地はないんのですが、小数点以下を含めた"実数" (小数点以下を含めたより細かい数字)についてはその構造上、正確に表すことができなかったり、計算できなかったりします。(12.45や32.7844といったより細かい数字、滑らかなグラフィック、オーディオ処理には不可欠。)


言ってしまえば二進法においては、 実は正確に『0.1』という数字を正確に表現することができません。 二進法で動くコンピュータが実数を表現するための代替的な手段として『浮動小数点数方式』を使いますが、 結局パソコンの処理能力は有限なものなので、かつ音はリアルタイムで処理するとあらば、その演算能力の都合上どこかで端数を切り捨てなければいけないのです。(例えば1.33333333...といった割り切れない数字などを1.33とするように)


つまりコンピュータ上の"実数"の計算結果はあくまで擬似的なものであり、ごく小さいにせよ必ず誤差というものが発生するのです。信じがたい話ではありますが・・・。


コンピュータの計算能力は限界があるのでどこかで区切らないといけません。そして細かい計算によって、発生した端数は切り捨てないといけないません。それによって生まれる誤差をいかに小さくするのか?という問題があるわけです。そこまで細かい計算して、人間がその違いを聞き取れることができるのか?という問題もまたありますが、とりあえずそれは置いておいて。

この問題を克服できるプログラムを組む、誤差を出来る限り小さくする、

ということは至難の業と思われます。  


では具体的なプログラムで如何にコンピュータが適当な計算をしているか?ということをみてみたいと思います。といっても『0.01』100回足すだけのプログラムです。コードを理解する必要はないので、このことだけわかっていればOKです。ただし、二通りのやり方で行います。

floatdecimalという二つのデータタイプを使います。

データタイプはとりあえずデータのフォーマットと理解すればいいです。

CDの16bit44.1kHzかハイレゾ音源の24bit96kHzか、という感じです。


  • floatは二進法の浮動小数点方式による擬似的な実数です。

 DAWは解像度を32bit floatを選択できると思いますが、あのfloatといっしょです。

 つまり、DAWはfloatによる実数を使い、デジタルオーディオデータを

 計算、処理していることになります。

  • decimalは、10進法によるもので小数点以下の計算に誤差が出ません。

 なので金利計算などで誤差があってはならない銀行などのシステムで使われます。


ではプログラムを見てみます。

理解する必要はないです。

floatというフォーマット上の0.01

decimalというフォーマット上の0.01

それぞれ100回足してその合計を画面に表示するというだけのものです。

答えはもちろん『1』のはずです。ではプログラムを起動させます。

何ということでしょう!

コンピュータは案外適当ということがお分かりいただけたでしょうか?

コンピュータは有限のものであり、処理能力には限界があります。

なので必ず誤差は生まれる、ということです。


そもそも誤差は許容できるの?ということについては、科学技術計算的にそれでよいのだそうです。しかし、ごく小さな誤差も積み重なれば影響が大きくなるので、そうならないための対策が必要になるわけです。デジタルは0と1の世界であり、そのためはっきりしているようで、必ずしもそういうわけではない、ということは頭に入れておくべきかもしれません。



途方もない数式の連なり

ヨーロッパでは広く使われている、samplitudeというドイツのmagix社によるDAWがあるのですが、このソフトはドイツの数学科大学院を出たバリバリの数学者が、内部で適切な計算処理が行われるようにプログラミングしているそうです。 完全文系の自分からすれば途方も無い、想像も出来ないような遠い世界ではありますけどもプログラミングを多少なりとも学んだ今ではその重要性というもののがわかってきました。 


とにかく言える事はコンピューターを信用しすぎないことが大事だと思います。バグがまったくないプログラムと言うものは存在しませんし、音楽制作ソフト、音源ソフトなどはリアルタイムに高度な計算、処理をしてるんですからなおさらですね。 プログラミングを学ぶ、ということまで必要は無いかと思いますが、やはりパソコンを使うって事はもう避けて通れない事ですので、 機械に振り回されないためにも、これらのような事を頭の片隅に置いておくとちょっとしたトラブル時とか、よくわからない動きをされた時に振り回されることも少なくなるかなと思います。


参考文献:

miur-us Logには、音楽制作に関する様々な記事があります!ぜひ!



miur-us.com

新たなる時代と新しいサウンドを。

0コメント

  • 1000 / 1000