投稿記事

2023年 05月の記事 (2)

Quietude. 2023/05/23 08:56

ぼくのかんがえたタイムローター、次作で入れてみましょうかね?

オリジナルは探してみたが無かった。

時々催○の畑の人らが言ってるタイムローターというものに、最近やっと興味が出てきた。6,7年ほど遅い話ではある。
もはや生産されてなく、さらに2000個しか生産されてなく、あったとしても高いというね。あと今持ってる人は放出したくなかろうとも思う。

ちなみにキャッチの画像はうちのサカナどもである。
他にも色々水槽がある。ついでに植物とかもまあまあある。


タイムローター仕様の推測

概ねはPGMにトグルされているとき、内臓のフラッシュに入ったCSVデータをシリアルデータに変換してモータードライバにくれてやってるとかそんな話だと思うが、自分は音屋なわけで、当然シリアル通信というものに馴染みがあり、じゃまあ、機能を増やすと同時に中国製のAmazonで買えるいい感じのオモチャにないような機能を実装して、自分の音声に設計図とともに同梱しちまおうという算段。

生産?そんな金はない。
聞いた話によると、みんなに愛されている割には儲からなかったらしく、貧乏神である自分がキングボンビーに進化しても困る。

以下、実験で得られたデータのざっくりまとめ。

振動を曲線で設計する

乳首責めや亀頭こちょこちょなどのシチュエーションでセリフに同期して、いかにも摘んでますよみたいな感じで振動を再生するにはLFO(ウィーンウィーンと周期的に変化をつけるやつ)では間に合わず、よりヒューリスティックな動きが必要なわけで、こんなふうにベジェ曲線で描くことにする。

モニタの焦げ跡、それは自らの編集に対する苦悩を物語る

んでもって、この振動パターンを保存して、音声の再生とと共にそれを再生するデータを後述のOSCで送る。

ついでにこれには旧来のタイムローターで使えるようなCSVデータを吐ける機能も付けておこう。時間と回転数だけのCSVだ。

そういう一定のリズムでない振動が欲しいときにべしゃっとコピペしてしまえば良い。

WiFi対応

OpenSoundControlという音楽のために作られたがとりあえず数値の出し入れに便利なのでロボティクス分野でも広く使われてるものを採用。

このようにIPアドレスさえくれてやってしまえば
携帯電話からでもコンピュータ、または専用にリモコンなんかを設計して同じネットワーク内に置いてしまえばからでもローターに対して命令を送ることが出来る。
行列なんかも扱いやすい。ピンクローターがトビッコに進化した瞬間、

VPNを使うなり、中継するとかwebサービス上から送るとか方法があれば、通信可能な地域ならばどこでもこういう事ができたりもする。

ただ、

いいところ:IPアドレスとUDP
わるいところ:IPアドレスとUDP

そういう都合があるので作った振動パターンをべべべべべべべとOSCで

192.168.1.15:8000 /veocity_duration i 127, 2
192.168.1.15:8000 /veocity_duration i 160, 1
192.168.1.15:8000 /veocity_duration i 180, 1

みたいに送るのは通信状況によっては大量に速い間隔で送ったさい、パケロスが発生して動かなかったり遅れたり、順番間違っちゃったりもするので、ローター内臓のフラッシュメモリに上記の曲線エディタで作ったセーブデータを仕込んでおいて、ゲームの衝突判定のように一度送りやがれと司令を出したならば何度か送って、もしtrue/falseになってない場合のみそこをtrue/falseにするというbool型で実装するのがいいのかもしれない。

ただまあ、それはそれで旧来のタイムローターの問題が再燃するし、機械は単純なほどぶっ壊れないのでOSCから直接振動パターンを再現も魅力ではある。

あと、OSCでなくてMIDIって手もある。
AppleのネットワークMIDIとかWindowsのRTPMIDIなんかはまんまシリアルデータをネットワークに乗せる仕組みなので変換も難しくなく、らくちんでもある。

途中から再生

旧来のタイムローターでは途中から再生するということが出来なかったので、Wavファイルのチャンク内のメタデータを使ってOSCを送信することにする。

このへんはまだ作ってないのだが、先日作ったWavファイル内のマーカーを読み取ってライブ録音のデータを半自動で切り分けるReascriptがある(このへん https://github.com/crackerjacques/Jacques_Reascript_repoのだけど、マーカー/リージョンに

160 00:01:06.180000 00:01:06.250000
170 00:01:08.080000 00:01:08.110000
180 00:01:10.360000 00:01:10.960000

とか書いて、それを読んで直接振動させるシリアルデータとして送信することは容易く出来たので、これを専用アプリで開いて送信できるようにするのも手か。

ちなみにカラオケ練習用ソフトのピッチ補正なんかも、MIDIをメタデータに入れたWavなんぞの音源ファイルで再生しながら歌わせてピッチをリアルタイムでそこに持っていくなんて言う仕組みもたしかあったので、それに近いものかもね。

仕様の青写真は増える、実際の機能はその何分の一

農学系なので工学というものは下手の横好きである。だからぼくは自分のエンジニアとは呼ばない。

ああいう人間がすぐに思いつく解決法を2,3日かかってやっとこさ再現できるような感じで色々書いているわけでどこまで実装できるかわからず、色々前途多難だが、とりあえず飽きなければ新作に設計図とプログラムを封入予定なのでお楽しみに。


頭はふわふわ 世界はグルグル

タイトルは 「サカナ」 です
ジャケはこんな感じです。


前作ヒロインとの比較としては

矢埜杢子さん(new!)

・かわいい
・くらい
・色白
・おっぱいでかい
・どS
・いいにおい
・やらせてくれない
・タトゥーあり


玉枝ミウさん

・かわいい
・あかるい
・色黒
・おっぱいあんまりない
・どM
・くさい
・やらせてくれる
・ピアスあり

という感じです。
イラストレーション ヨシジマシウ様

タトゥー入れてるおねーさんいいよなー。自分も手の甲とかにいつでもカンニング出来るようにdBと音速の公式と早見表でも入れておこうかと。
オジーオズボーンみたいに指の背中に入れるならば、三角測量用の目盛り入れたりな。

さあ歪み切れ。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Quietude. 2023/05/20 01:21

編集料金値上げのお知らせとタイムローターのようなもので音楽を作りたくなった

そのむかしタイムローターというものがあった。

作者の方にも聞いたんだけど、そんなに難しくない仕組みをしており、各自工夫して色々やってるとのことで、じゃあぼくはMIIDIで動かしてみようかなあとか。
そして案外アッサリと出来た。


ポルターガイスト現象発生

モーター制御のシリアルデータが自分の使ってるボードだと8ビットであり、MIDIをシリアルデータに変換するさい7ビットを単純に2倍するだけでまあまあいい感じの数値が得られたりする。


これで音楽をやる方法

音階、一般的なクロマチックなものは
261.63 Hz, 277.18 Hz, 293.66 Hz, 311.13 Hz, 329.63 Hz,
349.23 Hz, 369.99 Hz, 392.00 Hz, 415.30 Hz, 440.00 Hz, 466.16 Hz, 493.88 Hz
になっており、オクターブを上げ下げするさいは単純に2倍とか1/2とかにすりゃ良い。
そんでもってこの音を得るには秒速で数字の回数、空気を振動させりゃ良い。
ものが揺れると、その周りにある空気が一緒に動いてそれが音として聞こえる。

だから北斗百裂拳は実際には100Hzのブー…という低い音で聞こえてない場合、本当に秒速100回秘孔を突いてない。まあ100m道路も実際は100mじゃないところもあるし、細かいことはどうだっていいのだろう。

問題点としては思ったよりモーターの回転速度の幅が狭く、かつ、あんまりにも遅いと十分な遠心力が発生せずに震えない。
なので上記の周波数の約数の振動が得られないので、ローターのモーターを入れ替えたり、ガラス瓶やコップ、アルミパイプを切って中にローターを入れて、ヘルムホルツ共鳴で音階を作ったほうが良いかもしれない。

そういった場合、シリアルデータ送信用のピンがArduinoでは足らず、TX-RXで並列にするか適当なFPGAでやる必要がある。
あと単純にでかいArduinoは54本くらいだった気がするので4オクターブくらいは出るものだと思われる。

前者は多機能で高いが後者は後発品が3000円くらいである。
まあとりあえず両方でやってみるか。

ついでにArduinoはWi-FiやLANポートやBluetoothを実装することが出来るアタッチやらセンサー類のアクセサリが充実しておりOSCやら、BLU-MIDIでやってもいいかもなあとか。

その手の用途としては

つかえると思うよ。

そしてこういう風な情報のほうが需要がある!
諸君らはそういうことを考えるだろう!または音楽を作りながら女の子をヒィヒィいわせたいこともあるだろう。

タイムローターというものの実物を手にしたことがないため、仕様が分からずに想像でものを申しているわけだが、これはCSVベースの処理よりも時間軸情報に対して基準点を決められたり補正がきく…ようするにクロックが使えるのでタイミングがズレにくいもんだと思われる。

でも、なるべくそういうことを致すときには身軽な方がよいわけで、CSVという数値や文字列をコンマで区切ったものはWavファイルのチャンクにバラして収めることができるので、再生側のソフトウェアで処理してファイル一個でウィンウィン言わすことができはする。

なのでそれもそのうち気が向いたら作っておこう。

コードくれ

高度なことはやってないゆえ、こんなもんはポイである。

・マイコン側

double_rotor.ino (1.12kB)

ダウンロード

・ソフト側

doublemidirotor.py (2.65kB)

ダウンロード

ポートを適当に選び、チャンネルで左右のローターを制御する初心者チュートリアル的な内容である。

マイコン側でMIDIを受けているわけではなく、シリアルデータを受信している。
つまりMIDIから送信側のソフトが翻訳している。
arduinoじたいはMIDIの出し入れができるわけで、そこでNote_onで送られてきた数字を2倍してモーターをコントロールすりゃいいわけだが、圧倒的に細かなことを単純なものに翻訳したほうがおそらく、演奏時により高度にコントロールできるんじゃないかみたいな算段がある。


編集料金値上げのお知らせ。

他人と興味や面白いと思うものが非常にズレていることを最近ものすごく感じており、そういうのって作家ならびに作家業に関わる人間としてどうなの? って思ってる。困ったね。

そしてこれはあまりにも忙しいので現実逃避のために機械買ってきて作って書いた。


同人音声1案件を2倍位に値上げする。絶対値上げする。
そうしないと僕が僕のやりたいことが出来ない上に、やればやるほど貧乏になる。

たくさんの締切に追われ、各作品ごとに割ける時間が減り、クオリティは下がり、凡ミスを出して客にドヤされる。現在そういう状況。

そういうわけで2倍位に値上げします。
もし高いのがいやなら他の人を雇ってください。
何卒宜しくお願いします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事のタグから探す

記事を検索