~はじめに~
この記事はだいぶ取り留めのない内容になりますが、結論「何かに挑戦しよう」と考えている方の背中を押すためのものです。(何か偉そうですみません)
私事ですが、2~3ヶ月くらい前からPython(今流行り目のプログラミング言語)の勉強をしてました。
このブログでWordpress(簡単にホームページを作れるシステムみたいの)をいじっていたり、仕事でWebサイトの軽微な修正はしていたのでHTMLの知識は多少あったのですが、本格的なプログラミングは人生初。
「独学はしんどいだろうな」と思ったので、「Codecamp」の2ヶ月コースを利用、結果「先人に習うのはやはり効率的だった」と思いました。※とはいえ最初の方はそれでもけっこうしんどくて「なるほど、わからん」を一生分使った気がしています。。
そんな中でPython、プログラミングを勉強していたわけですが、思ったのが
「プログラミングと編曲は似ている」ということでした。
「だから何なんだ」って言われそうな気もいたしますが、
「音楽経験あるけどプログラミングやってみたかった」
「プログラミング経験者だけど昔から音楽に興味があったんだよね」
みたいな方がこれを読んで、一歩踏み出すきっかけになってくれると嬉しいなと思います。
目次
「プログラミング」と「編曲」が似ていると思った理由
結論、「似ている」と感じたのは、以下の点が共通しているためです。
・楽譜 ※「編曲」の成果物
対象(演奏者)に対し、意図した動き(演奏)を命令するもの
・コード ※「プログラミング」の成果物
対象(PC)に対し、意図した動き(操作/作業)を命令するもの
Pythonで行き詰まっていたとき、「対象が演奏者かPCかの違いだけで、どちらも対象に意図した動きを命ずるものやんけ」と妙に腹落ちして、そこからは頭への入りが早かったです。
「似ていると思った理由」をもう少し掘ってみる
ここまでの内容だけでは意味不明だと思いますので、もう少し掘り下げたいと思います。
私は専ら「編曲」をやってきた身なのですが、学生時代から特に「ギター合奏の編曲」をやっていました。
どんな音楽ジャンルかと言いますと、こんなやつです。
…この手のジャンルは初めてご覧になる方もいらっしゃるかもしれません。(余談ですが高校や大学ではこうした「ギター合奏サークル」が実はけっこうあったりするんですよ)
この「ギター合奏」というのは、1曲を数パートに分け、時として数十人規模で演奏する形式の音楽で、「ギター合奏の編曲」というのは、「大人数で演奏されること」を見越して楽譜を作ります。
要は、実際の(演奏されるときの)完成系をイメージしながら、「ああでもない、こうでもない」と試行錯誤して楽譜を作る、という作業です。
。
この「完成系をイメージして作業する」点はプログラミングにも通ずる部分があり、
・プログラミング→「このコードだったら動くかなー、とイメージしながらコーディングする」
・編曲→「この楽譜だったら良い演奏になるかなー、とイメージしながら編曲する」
という部分で、ほとんど同じだと感じました。
実行結果がその場で確認でき、すぐに修正まで行える分、プログラミングの方が分かりやすいとさえ思いました。
「編曲」の場合も楽譜作成ソフトのプレイバック機能で楽譜を再生し、「その場で確認」相当のことはできるのですが、「ギター合奏」については最終的には人間が演奏するわけなので、実際に弾いてもらうと「ちょっとイメージと違うな」みたいなことが往々にしてあるのです。
極端な例では、同じ楽譜でも違う人(グループ)に弾いてもらうと全体のバランスが変わって、「ちょっと楽譜直した方が良さそうだな」みたいな状況になったりもします。
おまけに「学生のギターサークル」って「初めて楽器触るんです!」みたいな音楽未経験者がめちゃくちゃ多くて、編曲するときは「数ヶ月後の本番に焦点を合わせて、一同の成長も想定して楽譜を作る」みたいな動きが大事だったりします。(私もかつては「音楽未経験で高校から」だったのですが、とっつきやすくて数ヶ月で舞台に立てるというのはギター合奏の良いとこだと思います。)
上記の事情から、いざ練習を進めてみると「なんかみんな思ったより早くマスターしてるやんけ」とか「全然弾けるようにならんな」みたいな誤算もあって、まあぶっちゃけそこまで読み切るのは無理ゲーでした。(プログラミングで言うなら「数ヶ月後のアップデートも予測してコーディング」、みたいなことでしょうか。これはもう超能力者ですね。)
終始機械で再現する打ち込み音楽ならまた勝手が違うのでしょうが、こうした面倒くささもギター合奏編曲の魅力だったりもします。もちろん逆に、「なんか実際にギターで弾くと異様に綺麗だなここ」みたいな思わぬ誤算があったりするのも面白いです。
…少々長くなりましたが、「完成系をイメージして手を動かす」という点においては編曲もプログラミングも通ずる部分があった、というのはこんな感覚に基づいての意見でした。
相互に良い影響があった
両者を経験したことで、双方に良い影響があったと感じています。
編曲への好影響
無心で取り組めるようになりました。
個人的には「編曲」はそれなりに慣れた作業で、時間を投下すれば必ず成果物(楽譜)が完成する見込みが立つ活動なのですが、それでも集中して取り組むモードになるのは少し気合が必要でした。(これはまあ元々私が怠け者ってのもありますが)
が、Python・プログラミングって、不慣れな状況下では、数時間かけてコードを書いたところで、「できないものはできない」んですよね笑。
演習問題に4時間くらいかけたのに全然だめ、みたいのは日常茶飯事で泣きそうでした。
それに比べると、「時間かければ必ずできるって、なんて幸せなんだろう」と、前向きに編曲に取り組めるようになったと感じています。
Python(プログラミング)への好影響
前述の通り、合奏編曲というのは最終的には人間相手なので、けっこう難儀なものでした。
そのことに改めて気付くことで、Python(プログラミング)の勉強中に行き詰ったとき、「これまで『合奏編曲』っていう難儀なこともやってきたわけだし、機械相手なだけ分かりやすくていいや」と、根気強く進められるようになりました。
コードが意図通りに動かないときも、「うんうん、そういうこともあるよね」と、試行錯誤することで、最後の最後には「とりあえず動く」みたいに仕上げることができるようになりました。(スクールの先生からは「何としても動かす、という意志を感じるコードですね」とありがたいお言葉をいただきました笑)
特にPythonは勉強している先人の方々も多いので、私レベルの人間が躓くような部分はググればだいたい答えに辿り着けるのも大きいです。「編曲」って、良くも悪くもググっても答えはないんですよね。
【おわりに】気軽に挑戦してみましょう
とりとめのない内容になりましたが、所感としては
・不慣れなことに挑戦することで、慣れていることと相互に好影響がある
・経験のあることに結び付けることで、挑戦していることの吸収スピードが伸びる
ということで、新たな挑戦をしてみるのはとてもおすすめだと感じています。やってみてダメだったとか、面白さを感じなければ辞めてしまっても良いわけですから。
「前からあれやってみたかったんだよな」みたいなことがある方は、今からでもチャレンジされると良いと思います。きっと新しい世界が開けますよ。
ここまで読んでいただきありがとうございました。