ヤーマンにとってのプログラミングとは? - 自作メディアプレーヤー作成日記①

二コニコとYouTubeで、TM NETWORKのライブを見てテンションの高めのヤーマンです。
(余談1)

時は1989年のツアー『TM NETWORK CAROL TOUR FINAL CAMP FANKS!! '89』
宇都宮隆のヘタウマなダンス
小室哲哉のダサかっこいいショルキー
木根尚登のエアギターテクニック(いや、ちゃんと引いてるはず)
バックギターには後のB'zの松本孝弘がいます。いや~豪華だねぇ。

ヤーマンは高校生になったばかりです。おじさんにも若かった頃はあったんですよ。
私の音楽ライフはこの頃から始まりました。その後は言わずと知れたバンドブームが到来します。

今やすっかりア●ソン漬けですが。
いや、他のジャンルもちゃんと聞きますよ。

 

そんな感傷的になって来たところで、今回からのお話は、私がエンジニア復帰する切っ掛けにもなった自作アプリケーションについてです。特殊な再生ロジックを持つ音楽プレーヤーです。


■特殊再生ロジックの音楽プレーヤー とは?

みなさん音楽を聴くときはどうします?
最近はSpotifyなどのサブスクも台頭してますが、私はまだ手元に所有の音楽メディアを聞いてます。

とは言え今時CDやMDなどのメディアを使っている訳はなく、もっぱらレンタルやネット購入なんから所有している形。
それらをWAVでHDDに保管。その曲数は1,000曲を超えてまだ増えてます。

私はmp3が広まった頃から、手持ちの音楽メディアを全てシャッフルして聞き流すのが好きで、iPodなどが普及し始めて持ち歩きの音楽も、全曲シャッフル再生です。

 

そうしてくると、古くに手に入れた曲と新しく手に入れた曲が混ざって存在しています。
そうすると、以下のような思いになるのは当然でして…

「この曲は買ったばかりだから沢山聞きたいな」
「この曲は飽きたからしばらく聞かなくてもいいけど、頃合いを見てまた流れないかな?」

要は自分がいっぱい聴きたい曲をいっぱい流してくれるシャッフル再生のプレーヤーが欲しいのですね。
厳密に言えばシャッフル再生ではないのですが。

 

それで私の希望を叶えてくれるプレーヤーを探したのですが、これが実は無いのです。
Spotifyもちょっと違うようだし。

これ10年以上前からずっと思っていた事なんですよ。


■無ければ作ればいいのだが… 

仕方なくVLCプレーヤーを使って擬似的に実現させてました。
プレイリストを登録する際に工夫して、お気に入りの曲を沢山プレイリストに登録するようにしたり、スマホだったらフォルダ構成を工夫して、よく聞きたい曲を沢山スマホに転送したり。

でも、曲が聞き飽きるとプレイリストを作り直したり、スマホのファイルを削除したりしなきゃいけない。面倒くさい。
漠然とそうした機能を持つプレーヤーを作りたいなと、ずっと思ってました。

 

ここで自己紹介のエンジニア復帰話に繋がるのですが、なぜにその約2年前に、音楽プレーヤーを作ろうと思ったのでしょうか?なぜプログラミングを再開しようとしたのでしょうか?

 

エンジニアを止めて20年。時間が無かった訳では無いです。お気に入りの曲を沢山再生してくれるプレーヤーを探していた頃から、自分で作成することも、ちらっとは思い立った事はありましたが、二の足を踏んでました。
それはWeb技術しか身につけてないからという事でなく、根本的にプログラミングが苦手(ヘタクソ)だからなのです。

 

それでよくもエンジニアにまたなろうとしているなと思われるでしょうが、そこは深くて浅い訳があるのです


■私のとってのプログラミングとは?①

昔話になります。
8ビットホビーパソコン時代という物をご存じでしょうか?

NECのPCシリーズ、富士通のFMシリーズ、シャープのMZとX1、そして複数のメーカーから発売されていたMSX規格。
日本の各メーカーが、CPUにゼッパチ(Z80)、メモリ8~64KBと言う共通点を持ちながら、それぞれ違うアーキテクチャを採用し、ソフトウェアの互換性の無いパソコンが発売されていた、良い意味で狂った時代でした。
(富士通のFMシリーズはMPU68B09 でしたが)

バブル前で、高度成長時代の後の成熟期です。
日本の企業は独自色を出すために様々な尖った製品やサービスを展開し、模索していた時代のあだ花です。

このあたりを語り出すときりがないですが、私の初パソコンはMSXでした。後にバイトで貯めて買ったペケロッパ(X68000)。ロマンですね。

 

で、バリバリにプログラミングをしていたかというと…精々ベーマガの投稿プログラムを懸命に手打ち。頑張って実装するも、バグを出してイヤになり放置。BASICの入門書を買うも、『print,if』でテキストアドベンチャーを作り、友達と交換して遊んだだけ。情けなや。。。

今思えばガチではないですがADHD気質が今よりひどかったですね。とにかくこらえ性が無い。
興味があること(パソコンのプログラミング)には高い興味を示すのですが、ちょっと躓くと、すぐに他の興味のあることに向かってしまう。知識を入れるのは大好きで、実践しないプログラミング書籍やベーマガを読むのは好きだけど、じっくり成功するまでプログラミングができない。

今の方がよっぽど粘り強くて強い意志を持ってます。
余談2


■私のとってのプログラミングとは?② 

この調子ですので、X68000を手に入れても、もっぱらゲームで遊んでいるだけでした。
あ、ゲームミュージックが好きでしたから、FM音源を鳴らすコードは作ってましたね。でも音作りまではしてないですね。今度再挑戦しようかな…

 

しかし、前述したように知識欲だけは強くて、続かないのにX68k向けのプログラミング入門書を買ったり、Oh!Xの技術記事をよく読んでました。
ですので殆どプログラミングしないのに、構造化プログラミングの初歩知識は持ってしまったりしました。X68kにはC言語の開発環境が標準で備わっていましたから、雑誌などで連載企画などがあったんですよ。

 

しかし、社会人になり私はパソコンと離れました。どうせゲームしかパソコン使わないんだったら、同じMPU68000積んでいるメガドライブでいいだろうと。
しばらくはPC界隈の技術情報とも断絶します。

そして、Windows98SEで再びパソコンと再会します。

彼らの世界は様変わりしてましたが、世の中のパソコンブームとインターネットのおかげで、私の技術知識のキャッチアップは捗ります。
勘違いしすぎてフリーランス(と言う名のフリーター)になったりもしましたが。

 

そして紆余曲折があり、30歳でプログラマーとして地元の小さなWeb屋さんで働く事に。

運命ですかね。そこには構造化プログラム言語のPHPと出会います。というか構造化言語しか生き残ってない訳ですが。
ですので、ベースのプログラミング知識があったのでPHP開発も割とすんなりなじめました。後はひたすら努力と根性です。

 

 

今回はここで締めます。
次回はなぜ私がプログラミングを苦手(ヘタクソ)と感じているかを語ります。


■おまけ

余談1
GET WILD'89

https://www.nicovideo.jp/watch/sm2397109

ウツのギターや!

https://www.youtube.com/watch?v=PclGHTEt8Ds

 

余談2

よくADHDの人の過集中(ハイパーフォーカス)を、日常生活や社会生活に影響が出るくらい、高い集中力が続くと解説されますが、私の実感は集中と言うより夢中と言ったほうがいいと思います。 スポーツ選手のゾーンとは違い、集中が必要な作業は全くダメですから。