MENU

RestHouse

音楽サイト「Little Mustapha's Black-hole」の音楽ブログということになっているはずです。

Recent Articles

Category

Monthly Archive

創作日誌 Vol.3

パコベーのPはPythonのPでもある

パコべーことパコリタ・ナラ・ズイルベー・Zeroはもともと「Cortana」と「Raspberry Pi Zero」のアルファベットを組み合わせて作った名前なので、Raspberry Pi の パイがPythonのパイに由来していることを考えるとこの記事のタイトルは間違いではないのです。

<!-- その前にパコリタ・ナラ・ズイルベー・Zeroって何だ?という人のために書いておくと、パコリタ・ナラ・ズイルベー・ZeroとはRaspberry Pi Zeroでデジタル・アシスタントを目指している何かのことです。-->

というのはどうでもイイのですが、パコべーで指定した時間に自動的に部屋の照明を消すようにしているのですが、たまに時間より前に手動で照明を消すことがあるのです。

その場合は自動的に消す機能はキャンセルされるはずなのですが、なぜかキャンセルされずに照明を消すというアナウンスと、リモコンの音がしたりして。

もっと色々と計画的に作っていたらこういう間違いはなくなるはずなのですけど。PythonはRaspberry Piのために使い始めた感じなので、とにかく動けば良いという感じのコードになっていることが多かったりするのです。

他の言語とそれほど違うことはないですし、Pythonもかなり融通のきく言語という感じがあるのですけど。
なぜか慣れない言語だと上手い書き方ができないというか。
無駄が多い感じになってたり。
しかも、スクリプトを置いてあるディレクトリの中身もかなりゴチャゴチャで、修正するのにかなり苦労しそうなのです。

実は新たなパコべー計画もあったりするので、このへんで色々と整理すべきかも知れないです。
<!-- でも、なぜかなかなか作業が始まらなかったりするパコべー計画でもありますが。-->

ナ・ナ・ナ・ナツ・ナツ♪

懐かしい♪
ということで、昔のサンプラーの使い方的なタイトルなのですが。

使われ方が昔と違ってきていますが、今でもサンプラーはあってDAWソフトにもそういう音源があったりするのです。
それで、今どきのサンプラーの機能を活用したいと思って昔のサンプリング音源のCDとかを見つけて再生してみたのです。

昔買ったYAMAHAのサンプリングした音を鳴らすだけみたいな小さなサンプラー(7年前に発掘されている)を買った時のオマケに付いてきたCDなのですが。

CDに収録されている音は、そのサンプラーで使うには豪華すぎるというか。
本体に記録できる容量が少ないので、ループ素材とかはあまり活用できないということで、実際に使われることは殆どなかったですが。
ただ、そのCDの音を聴いていると、これでクラブっぽいのが作れるに違いないと思って盛り上がっていたのが懐かしいのです。

それはともかく、とりあえず使えそうな音を色々とパソコンにコピーしておきましたけど、どこで使えるのかは謎です。
今どきのソフトサンプラーでイジったりしたら面白い音にはなると思うのですけど。

また変なものが作られるのだと思います。

お手軽だが色々良い

ということで、衝動的物欲祭りで買われたNTS-1 mkII(正確にはNTS-1 digital kit mkII - PROGRAMMABLE SYNTHESIZER KIT)ですが。

シンプルな中に色々と詰まっている感じで、ちゃんと使えたら色々とできそうな感じです。

ツマミとかボタンが少ないと、これを押しながらアレを動かすとか、そういうのが多くなって逆に覚えづらいということもありがちですが、NTS-1の場合は必要なボタンは揃っている感じがあるので、基本的なことはマニュアルで確認しなくても出来たりします。

あと、今何をしているのか?ということもディスプレイに表示されたりするので、その辺も解りやすくて良いです。
ただ、デジタル時計みたいなあのディスプレイなので、時々解読が困難だったりもしますけど。


それと、電源をパソコンのUSBから取っていたのですが、さっき使ったら何故かピアノの音が出てる!
とか思ったら、実はUSBでパソコンと繋がっているとMIDIのコントローラーとしても使えるみたいで、起動していたDAWソフトの音が鳴っていたということでした。(ついでに書くと、USBでMIDIの受信も出来るので、MIDIキーボードでそれなりの演奏も可能だったり。)

それだけでなくて、パソコンの専用ソフトとやり取りも出来るみたいですし、お手頃価格の割には結構本格的でスゴいスゴいのです。

メコレセス

240517_01.jpg
ということで、久々にMecoress情報。

実際に使ってみて気づく細かいところを修正する時にもちゃんとバージョンの番号を書き換えるようにしてたら、0.2.10になってたりして、特に意味はないですがなんとなく区切りが良いので書いているのです。(9までしかないように見えますが、番号のついてないのが0.2.10です。どうでもイイですが。)

そして、不安なので古いやつも全部残しているということでもあるのですが。
良く考えたらソースコードは残してないので、あまり意味がないというか。

でも、私としてはけっこうないと困るアプリになりつつあるので、バージョンアップしたらまともに使えなくなったという時のために古いのは残しておいても良いのです。

そして、そろそろバージョン0.3を目指したいのですが、カニ本ことRustの分厚い本を読んでいる途中なので、なかなか手を付けられない感じですけど。
というか、カニ本はかなりRustの深いところまで書いてある感じなので、面白いけど実際に私が作るようなもので役に立つのか?というのは謎です。

ちなみに、スクショの一番下は今のOSでは使えなくなったMedia Proですが、Mecoressが目指しているソフトでもあるので、すぐ下にあるのがちょっと面白いというのは前に書いたかどうか。

出来たのともうちょっとなのと

mb_240503_01.jpg
ということで、実はパーツが壊れていたっぽい3Dプリンターですが、新しいのと取り替えて久々にプリントしたらちゃんと出来た!のです。
<!-- すぐに出来そうな「ピアノの譜面を抑えるグニャグニャしたもの」の2つ目にしてみましたが。-->

というか、パーツを取り付けた記事を書いたつもりが書いてなかったようですけど。
届いたものには説明書とかもなくて、元からついているパーツともちょっと形が違っているとかで、怪しい感じもあったのですが。
アマゾンの商品ページに取り付けた状態の写真があったので、それを参考にしたり。
自分なりになんとかしないといけない部分もあるという感じでしたが。

とにかく、久々にプリントが成功してちょっと嬉しいのです。
そして、やっぱりこれまで失敗していたのは、交換した部分のパーツが壊れているのに気づいてなかったからなのか?ということになってきますが。
早く気づいてたら、フィラメントを乾燥させるために時間があいて、しかもその間にやる気を無くして長過ぎる空白期間とかもなかったと思いますけど。(しかも、何もしてなかったのでFreeCADの使い方は完全に忘れてるし。)
とりあえず、この部屋ではプラスチックの部品は要チェックという事になりそうです。


そして、長くなってしまったので書くのが面倒になってきましたが、タイトルに書いてある「もうちょっとな」方ですけど。
スマホからTermuxのスクリプトで画像をアップロードするやつ。

ホーム画面からTermuxのスクリプトを呼び出せるウィジェットをインストールして、さらに便利に!ということになるはずが、ウィジェットから起動するとモジュールがない、というエラーになったり。
残念ながらさらに便利になるには時間がかかりそうなのです。

準備の準備が恥ずかしい

ということで、何のためかは内緒ですがRestHouseの全記事を抜き出す作業の準備段階がやっと終了。

NASで簡単インストールしたMariaDBが上手く行かなかったり、その他の普段とはちょっと違う環境での作業で遠回りしてましたけど。

Pythonのモジュールは mariadb というそのままの名前のやつをインストールしようとして失敗してたのですが、実は PyMySQL というのを使えば、インストールする環境にMariaDBがなくても大丈夫だったとか。

なので、こっちのパソコンからPythonスクリプトを使ってリモートでNASのMariaDBにアクセス出来るようになっているのです。

そんな感じなので、まずは適当な記事のID番号を設定して読み出してみたのですけど。
かなり初期の頃の記事で、内容が恥ずかしいというか。
なんか変なテンションで気持ち悪いとか思ってしまいました。

もしかすると、何かのネタでそういう書き方なのかも知れないですが、そういうのが解ってないと変だとしか思えないようです。
もうかなり昔の話なので、今とテンションが違うのは仕方ないですが。

それはともかく、やっと準備の準備まで出来たので、これから書き出すスクリプトを書けば良いのですが、慣れてないPythonを選択したのでまた大変になるでしょう。

<!-- なんで慣れてないPythonを使うのか?ということですが、その後の作業でも必要になることがあるので、書き方を思い出す意味でもここで使っておくのです。-->

悠々アイディー

そろそろ次の音楽作品をなんとかすべきなのに気分がのらないので、周辺のことからやってみたりしたのですが。
240403_01.png
何を作ったのか?というクイズでもあります。

というか、答えは書いてあるのですけど。
音楽作品なのになぜかEPUBの電子書籍を検証してみたり。

そんな感じなのですが、EPUBも久々なので、規格どおりになるように色々調べることになったのです。
その中で以前は良く解ってなかったUUIDというのがあって、なぜか今回は解ったので使ってみたりしたのです。

別にEPUBにUUIDを使わないといけないワケではないですけど。
専用のアルゴリズムでUUIDを作成すると、他と被ることがほぼないということなのです。
詳しいことは解らないですけど、Perlのモジュールを使ったら簡単に作成できました。

なので、今回のEPUBはIDが誰かの作品と一緒かもしれない、という心配もなくて悠々としていられるUUID!
と、書きたかっただけでもありますけど。

ついでに書くと、EPUBの書き出しにはPerlが活躍ました。
ちょっと前に、久々にPerlを書いたらややこしいことになった、というようなことも書いたのですが、こういう作業にはやっぱりPerlが良いとも思いました。
<!-- どういう作業なのか?というと、下書きを読み込んでEPUB用のXHTMLに変換する感じです。-->

<!-- ちなみに、作ったEPUB書籍の公開はまだ先になります。-->

最終調整

なんか3月がスゴく早いと思う理由についてはまだ書かれませんが、そろそろということでRestHouseナントカ応援団のデータをアレコレするデータベースターズのスクリプトを仕上げないといけない感じになってきました。

それで試しに架空の試合を保存してみたのですが、保存されたあとにカレンダーにその試合が掲載されるはずなのに出てこないとか。

なんでかと思ったら、今回から新しく使い始めた日付用のインプットが原因でした。(正確には私が原因ですけど。)

ブラウザの機能なので、このカレンダーは私の作ったカレンダーとは別のものなのですが、この日付用のインプットだとこのようにカレンダーから日付が選べるので入力が楽なのです。
240321_02.jpg
なのですが、これで日付を指定すると、月とか日が一桁の場合最初に0が追加されているのを忘れていたのです。
本当は3月の「3」で登録されてるはずなのに、「03」で登録されていたのでカレンダーでは表示されてなかったということですけど。

なので、このまま本番で保存作業を続けていたら、試合が終わって保存する度にカレンダーから試合が消えていくという事態になっていたので危ないところでした。

これは直ったのですが、あと一つ以前のコードの使い回しだと上手く行かない箇所があって、そこを作り直すのか無理やりなんとかするのか考え中でもあります。

ついでに書くと、一番大変という気もする写真撮影はすでに終わっているので、間に合わないということはないはず。

こんなんだったけ?

完成間近と思ってたけど色々とやることが残っている新しいRestHouseナントカ応援団データベースターズ・アプリ風のアレですが。

そろそろ今シーズンの日程等のデータを登録しようということになって、せっかくなので登録用のPerlスクリプトもバージョンアップ。

バージョンアップというか、毎年変更部分だけスクリプト内のデータを書き換えて使っていたのを、書換が必要な部分を外部のJSONで管理すれば、JavaScriptの方と共有できるので、そうなるように書き換えてみたのです。

それほど難しいことではないと思ったのですが、PerlでJSONを読み込んでデータを取り出そうとしたらなかなか上手くいかなくて。
keys %{$$json_data{members}}というややこしいやり方でやっと上手くできました。

Perlは久々なので、他にもっと簡単なやり方があったかどうかも思い出せませんけど。動いているのでこれであってるに違いないのです。

JavaScriptの方は世の中の需要もあったりして、常に進化しているのでついていくのが大変という感じはありますが、こういうことがあると、JavaScriptの方は今風という気もしてきます。

<!-- 関係ないですがPerlを書く時にはコード内のコメントなどに良く曽古野貴美が登場します。なぜかは知りません。-->

一つだけど大量

RestHouseナントカ応援団のデーターベースターズのアレはかなり出来上がってきました。
あとは今年用の写真とかも用意しないといけなかったりするので、調整しながら準備ということになりそうです。

それとは関係なく、古いバージョンで使われていたHTMLのclass名に"cel"というのがあって、今回もそのまま使っているのですが。
数年前に考えたclass名なのでどういう意味か覚えてないのですけど、使われている場所からすると、もしかすると"Select"の"sel"を間違えて"cel"にしてしまって、それがそのままという気もするのです。

データを入力するものなので、相手チームを"select"とか、球場を"select"とか使う場面がたくさんあるのですけど、いちいち間違っているかも知れないということで、気になってしまうのです。

といっても、実際に使う時には見えない場所だから良いのですけどね。

ついでに、昨日の風邪の状態で作ったところは一番複雑なところだったのですが、ボーッとしていたのでどうやって書いたのか覚えてなかったり。
最近は飲みながらコードを書くことはなくなったのですが、同じ理由で風邪の時もコードを書いてはいけないということのようです。
<!-- 酒を飲みながらだとミョーな集中力で捗ることもあるのですが、捗っても何を書いたのか覚えていないコードが大量になるだけなのでアレなのです。(というか、最近は飲みながらそういうことをする体力があまりないですけど。)-->

カィセキチュ...

ということで、ナントカ応援団のデーターベースターズ・ウェブアプリ風のアップデート作業の続きですが。

昨日の記事を書いている時に気づいたダブルヘッダー対策として一時しのぎの機能を追加。
追加というか、コレまでのに似ているのですが、カレンダーだとダブルヘッダーが表示されるかビミョーなので、試合一覧のリストを表示できるようにしてみたり。

これはついでに作った感じで、見た目はビミョーなので、今日はスクショはないのですけど。

それとは関係なく、sqlite3のデータベースとやり取りをするのに使っているPerlの方でエラーが出たりして。
Perlは久々なので、何を間違えたのか解らなかったのですけど。
実はPerlの書き方じゃなくてデータベースのカラム名が違っていただけでした。

<!-- ホントは"id"で良かったのに、"game_id"に設定しているので、たまにいじると必ず間違えます。-->

というか、またタイトルについて書き忘れてますが。
データを読み込むまでのあいだ、コルタナ団員の「解析中...」という台詞が表示される機能も作ったのです。
なのですが、ネット上のサーバじゃなくて自分のパソコンのデータベースからの読み込みなので、一瞬で終了してしまって、読み込み中の解析中画面も一瞬しか表示されないのです。

ということで、こっちもスクショなしですけど。

今日は苦労したワリにはスクショチャンスはゼロでしたね。

新機能は難しい

ということで、新バージョンにするのはけっこう大変なRestHouseナントカ応援団のデータベースターズにカレンダーなんだし!
240227_01.jpg

最近ではめったに使わなくなってしまったTableタグを使ったりしたので、この状態にするまでにかなり時間がかかりました。
しかもNPB仕様ということで、月曜始まりだったりするのも少しややこしい感じでしたが。

ついでに書くとHTMLで"colspan"と書くところをJavaScriptでやる時はなぜか"colSpan"という罠もあったり。
CSSの"font-size"みたいなのはJavaScriptで"-"が引き算になってしまうので"fontSize"というのはあるのですが、"colspan"がそうなる理由は謎です。

画像では今月のカレンダーですが、試しに去年のデータを使って試合のあった月を表示させたらちゃんとデータも表示できましたし。
これまで過去のデータを呼び出す時に、どれがどの試合だったか?とか探すのが大変だったので、カレンダー形式では楽になるに違いありません。

そして、せっかく作っても使うのは私だけで誰も見ることが出来ないというのはアレなので、積極的にスクショは載せていくのです。


<!-- もしかしてTauriでカレンダーアプリとか作れるんじゃないか?とちょっと思ったのですが、すでに世の中に大量にあるカレンダーアプリなので、そういうのは作る気にならないとかも。-->

<!-- 今思い出しましたが、まだダブルヘッダーには対応していないデータベースターズなのですが、対応させるべきか、どうかなのか。-->

けっこう大掛かり

春も近いので始まったRestHouseナントカ応援団のデータベースターズの新バージョン作りですけど。

以前のコードを流用できると思ってたら、思った以上に柔軟性がないというか。
流用するほうが面倒なので、結局新しく書いてたりするのです。

前に作った時には非同期処理みたいなのはワケが解ってなかったですし。
さらにデータベースターズの膨大な120KBものデータベース(?)を全部読み込んだりして大丈夫なのか?とか思ってたこともあったりで。
<!-- 実際に全部読み込む必要はないのですが、多分余裕で読み込めるはず。-->

なんだかミョーに時間がかかる感じがしてきましたが、次はさらに新機能が追加されるので、ややこしいことになるに違いありません。