Naohiro Kimura-木村直広@knaohiro1
中国深センの年越し
深セン人才公園にて600機のドローンで新年を演出
m.weibo.cn/status/4336021…? https://t.co/PDf90hoFQ2
Naohiro Kimura-木村直広@knaohiro1
中国深センの年越し
深セン人才公園にて600機のドローンで新年を演出
m.weibo.cn/status/4336021…? https://t.co/PDf90hoFQ2
S.F.@SFPGMR
Firebaseかあ。。
Firebaseを使い始めたら人生が変わった(ような気がした) - Qiita
vue.jsもちょっと見てみるか。。
vue.jsって「ビュー」って読むんだな。。
これを読んでいる。
はじめに — Vue.js Vue.js - The Progressive JavaScript Framework
Web Componentsって仕様が確定してたんだな。。
カスタム要素との関係はじめに — Vue.js Vue.js - The Progressive JavaScript Framework
S.F.@SFPGMR
VueとFirebaseの基本機能全部使ってぬるぬる動くポートフォリオサイトを作ったのでソースと解説 - Qiita
S.F.@SFPGMR
expressで大きいデータをポストすると413エラーが出る件。結局この情報で解決した。
javascript - Error: request entity too large - Stack Overflow
これ。
app.use(express.json({limit: '50mb'}))
body-parserを使うのはもう古いのかね。。
いずれにしろこれでこの問題はクリアした。
が今度はx-hub-signatureで問題発生
{"error":"No X-Hub Signature."}
Securing your webhooks | GitHub Developer Guide
ペイロードのサイズが大きいと出るんだな。これがなぜか。。
原因はミドルウェアのuseの順序だった。。凡ミスだった。。
It needs to be one of the first and before bodyParser().
express-x-hub - npm X-Hub-Signature Express Middleware
かえりの電車の中で一個バグを潰せたわ。。termux恐るべし。。
x-hub-signatureのチェックは自前でチェックしてもおそらく数行で済むから自前実装でもいいような気もするな。。
とりあえず一歩前進ですわ。あとはコンテンツを生成するテンプレートをアップデートしないといけない。あとは技術的なアップデートもせんといかんなあ。。
ページ・デザインももうちょっと頑張るか。。
S.F.@SFPGMR
下のページが例なんだけど、Texの部分はMathJaxを使ってプリレンダリングしてるんだよね。つまりHTMLページを表示する前にsvg化されてるわけ。
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23) さて、ブレゼンハム・アルゴリズムである。ブレゼンハム・アルゴリズムは整数化・加減算およびシフト演算のみで実装できるということでよく紹介されているけれども、ブレゼンハム・アルゴリズムやDDAの文献を読んでみて、実はそこがポイントではないのではないかと考えるようになった。離散座標系において理想直線に最も近い描画点を求めることができる点が、ブレゼンハム・アルゴリズムの優れたところなのだろうと今は思ってい...
こうするとまあページ表示は早くなる。んだけどTexはHTML化したときに失われるので、テキストとしてのTexの意味合いは(つまりここは式だよという意味合い)は失われてしまうという欠点(かな?)があるかなあとか思ったりもする。
とは言えTeXも式の見た目を整えるものなので、式としての意味をあらわしているかというと違うとは思う。なのでSVGにしたところで失うものはないといえなくもない。
が今やTeXは数式を表現する言語の側面も持っていなくもないかなあとも思う。ただ装飾とごちゃまぜな構文となるからそこから意味を取り出すのはちょっと面倒化もしれんが、いまどきだとそれもたやすくできるかもしれん。検索されたときに数式としてみなされそうなのはTeX表記なのかなと。
コンテンツ中ではTeXのままにしておけば検索エンジンが「ここはTeXで書いとるな」と認識される可能性を残すことができるということですわな。。
しかしよく見ると(見なくても。。)TeX部分のレンダリング結果ちとおかしいなあ。
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23) さて、ブレゼンハム・アルゴリズムである。ブレゼンハム・アルゴリズムは整数化・加減算およびシフト演算のみで実装できるということでよく紹介されているけれども、ブレゼンハム・アルゴリズムやDDAの文献を読んでみて、実はそこがポイントではないのではないかと考えるようになった。離散座標系において理想直線に最も近い描画点を求めることができる点が、ブレゼンハム・アルゴリズムの優れたところなのだろうと今は思ってい...
特に日本語の文字間隔とか。。
ただTeXそのまま書いてもMathJaxではだめだったりしたから、もしKaTexに乗り換えても数式の修正が必要になりそうなだなあ。。それはちょっと面倒だ。。
KaTexを追加インストールして、katexというタグを新たに作ろうかな。。
markdownのパーサはmarked.jsを改造して使ってる。TeX拡張とか独自記法をサポートするためだけど、中身見るとpegで書き直したくなってきたな。。
今もバージョンアップされてるんだな。。
GitHub - markedjs/marked: A markdown parser and compiler. Built for speed. A markdown parser and compiler. Built for speed. Contribute to markedjs/marked development by creating an account on GitHub.
私の改造版はこちら。独自拡張と同時にes6のclassとか使って書き直したんだよなあ。。確か。
webservices/marked.js at master · sfpgmr/webservices · GitHub node.jsで作ったWebサービスたち. Contribute to sfpgmr/webservices development by creating an account on GitHub.
いわゆる正規表現使うタイプのパーサなんだけど、正規表現も凝ってくると書いてあることを理解するのにものすごく苦労するんだな。私の正規表現力は並み以下だから理解できないのはそれも大きいが。pegで書き直すとかなりすっきりするかもしれないなあと。
とりあえず修正版のコードをデプロイした。
とりあえず動いてはいる。
S.F. Blog:S.F. Blog IT技術や音楽に関する制作物の公開、情報発信を行っています。
あとはコンテンツをデプロイするところの不具合潰しですな。。gitでコンテンツをpush→webhookで更新をホストに通知→それを受けてpullして更新部分のコンテンツをgzipで圧縮する部分ですわ。。
ホスト側はnginx+nodeからnodeのみに去年移行したんだよね。expressでコンテンツをserveしてる。プロトコルはHTTP/2をサポートしてて、gzip圧縮転送も対応した。というよりそれができることがわかったのでnginxをやめたんだけどね。
nodeだけでコンテンツを配信したかったからね。そこでちょっと構成も見直したんだけどそれが尾を引いてるという。。
とりあえずコンテンツをデプロイできるところまで修正して、あとは成り行きだなあ。PEGちょっと理解したからそれ使ってmarkdownパーサを作ってみたい気もするし。今ならもう少し自由度の高い構文が作れるんじゃないかなーとか思ったりしてる。
あとはAMPページのおかしなところの見直しとか。katexの導入とかね。デザインもリフレッシュしたいよなあ。。ああ、post-cssの件もあるよなあ。。うーむ。
うーむ。webhookの受け側で413エラーが勃発。どうもデータサイズが100kbを超えてるからのよう。まあそれはそうか。
javascript - Error: request entity too large - Stack Overflow
limitを増やす設定しても全然反映されてないかのようですな。。
うーん。。
HTTP:413 Request Entity Too Large · Issue #235 · expressjs/body-parser · GitHub app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); i post more data,but happen error:HTTP:413 Request Entity Too Large. ps: node version : v5.1.1 body-parser: 1.17.1
ちゅうかexpressの理解度が低いなあ。。わたしって。。
うーむ。HTTP 413 Errorの件はテスト環境(ちゅうかローカルWSL環境)では413にならんなあ。なぜかVPSの環境だけでなっちゃうみたいだ。さらに謎が深まった。でもまあそのあとのコードも動かんのだけど。。
うーむ。非同期コードを書き直してたらますますExpressがわからなくなってきた。もう一回勉強しなおそう。これは。
なんか手を入れるとエラーがまたポコって出てきて、今まで動いてたのが不思議。。みたいな感じに今なってる。async/awaitを入れ込みたいんだがなんかうまくいかんのよね。。
この辺とかも見てるんだけど。。
StrongLoop - Asynchronous Error Handling in Express with Promises, Generators and ES7
そもそもExpressについてモヤっとした理解しかしとらんのがいかんのよ。。
nginxのコンフィグのほうがわかりやすい気がしないでもない。。
nginxのコンフィグとくらべるのはおかしいか。。
このエラーが発生してたんだよな。。
Can't set headers after they are sent.で怒られた - Qiita
この情報で直りました。なんで今まで動いてたんだろうなと考えてたら、webhookのコードはExpressルータに改造する前はExpress使わず単独サービスとして動かしてたからだな。。ということはExpressにしてから一度も動いてないということですわ。。
でまあwebhookのリクエストを受けて、シーケンシャルにアップデートする処理を書くのにqueueないとだめだなあと思って実装しようかなと思ったけど、ちょっとググったらasync.queueを見つけてこれを使うことにした。このasyncというモジュールすごいな。。
No ImagePage not found · GitHub Pages
このqueueのインターフェースというかキューの実装の仕方がなんかすごいエレガントさを感じますわ。。自分で実装したらひどい代物になるところだった。。
ちょっとだけwebhookのコードがきれいになったわ。。
webservices/webhook.mjs at 62714daf748543ebe440869c408ff0bf40c00702 · sfpgmr/webservices · GitHub node.jsで作ったWebサービスたち. Contribute to sfpgmr/webservices development by creating an account on GitHub.
次はこのエラーをつぶさないとけいけない。。
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stderr maxBuffer length exceeded
このエラーはchild_process.execのmaxBufferの値を調整すればよさそうなんだけど、この値を指定してもエラーがなくならないんだよなあ。。
No ImageChild Process | Node.js v13.2.0 Documentation
よく見るとstdoutじゃなくてstderr のバッファだな。maxBuffer
はstderrのバッファサイズには影響しないのではというのがいまいまの推測。。
とするとここはspawnを使うのが正解かもな。。
いやいや、nodeのドキュメントには
maxBuffer <number> Largest amount of data in bytes allowed on stdout or stderr.
と書いてあって、stderrも対象になっとるな。そりゃそうだわな。。
どうもパーミッションのせいでコマンドがうまく動作しなくてエラーが発生してstderrに吐こうと
したところでバッファがいっぱいとなってしまったようだ。
公開しているディレクトリのパーミッションを適切なものに修正することで、コード自体は動くようになったが。。
しかしandroidタブのおかげで、というかtermuxというアプリのおかげで外出先でもコード修正してタブレットのローカル環境でExpress動かして確認できるというのはほんとすごいな。。
あとはペイロードの更新情報が大量であった場合に設定したバッファサイズ(limit)が有効になるかどうかだな。。ローカルの環境では有効であったが、果たしてVPSの環境ではどうなるだろうか。
config周りもかなりいい加減だから、node-configでも使ってみることにするか。。
GitHub - lorenwest/node-config: Node.js Application Configuration Node.js Application Configuration. Contribute to lorenwest/node-config development by creating an account on GitHub.
github webhook のペイロードが巨大な場合も受け取ることができるか試してみたが、うまくいかないな。。やっぱり413エラーがでてしまう。。
413エラー以外にもamp html対応のコードのところでバグを見つけて直してるところ。ついでにkatex対応もやっておこう。
katexとMathJaxの差が思いのほか無くて、そんなに手をかけずに移行できそうな気がしてきたわ。。
いや、オフラインで吐くコード見比べたら全然違うわ。katexはwebfontとcssで数式作るんだなあ。<span>タグの入れ子がすごいぜ。。かたやMathJaxはsvgを吐く。svgを吐くというか吐かしてるんだっけかな。
ほお。AMPでも@font-face使えるのですな。とするとkatexはAMPページでもいけるんじゃないかなあ。たぶん。やってみるか。。
これね
カスタム フォントの追加 - amp.dev AMP pages can't include external stylesheets, with the exception of custom fonts. You can embed custom fonts into your page in two ways ...
と思ったがMathJaxでしばらくいこうかな。実はコンテンツを吐くところで遅くなる主原因が判明したのでね。
ちなみにMathJaxで静的にレンダリングした結果例はこれ。
No Image
S.F.@SFPGMR
ちょっとRYDEENカバーをアップデートしようかなと思ったが、リード音の音色がおかしいことに気づきちょっとこのバージョンはお蔵入りにした。もうちょっと元曲を聴き直して音色をちゃんとアップデートしてからにしよう。。
1-2年ほど前だけどオーディオ・インターフェースはUR22mkIIに変えたんだけど、ヘッドフォンのモニターアウトの出力がちょっと小さいんだよなあ。。フル・ボリュームで聴いてもだいじょうぶなくらい。
それはそれとしてこの間とか今日とかYouTubeにアップしたら音量が半分くらいに落ちてしまう問題に遭遇した。2年前にアップしたのと比べるとかなり小さくなってしまう。どうもこれによってノーマライズされてしまうようなんだな。。
YouTubeがラウドネス規格を導入したらしい | g200kg Music & Software
私の作ってるやつも全部のパートができる限り聞こえるようにと頑張ってたらどうも出力データが「海苔」のような波形になってしまったようだ。。うう。。
あと今更だが、聴感上小さい音量しかなっていないようにしか聞こえないパート、今回だとライディーンの右の「タッタカタッタカ」パーカッションの音量がやたらでかい音になっちゃってたりしてるのに気づいた。これなんだけどね。
これなんの音量がでかいかというと重低音の音域なんだよね。多分いいヘッドフォンとかでかいスピーカーでないと聞こえない(というか圧として感じる)やつが音量を食ってしまってるんだな。
よく聴くと耳を圧迫するような音が鳴ってるような気がするんだけど、まあこのパートにはそのような役割は期待していないので、この周波数帯域はカットすべきだわな。。
それでカットしたのが下なんだな。。
イコライジングはちょっといじりすぎたので違う感じの音になっちゃってますが。。
で左右のパーカッションを鳴らすとまあこんな感じになるんですわ。。
No ImageRydeenのパーカッション(右・左) - YouTubeYouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。
左のパーカッションは8分のウラだけが鳴ってるように聴こえるのだが、原盤をよく聴くとうっすら16分で小さく鳴ってる音もあると思うのでそれを再現しようとしてるんですな。
ただこの音色もまだまだ手を入れなくてはいけないんですわ。。実際。。言うたら全部のパートですけどね。。
ライディーンのあの特徴的なシーケンスパートも難しいものの一つですわ。。これがいまいまのバージョンなんだけど。。このパートを苦悩してる割にはなかなか近づかないパートの一つなんですわ。。
これはどうも本物のマルチトラックのシーケンスパートのようなんだけど。
youtu.be/IPNReZK-XIk
違いは一聴してわかるよね。裏打ちするシーケンスの音色がすごいパーカッシブで厚い音をしてるんですわ。。
あとなんか妙なモタリがあるような気もするし。。聴けば聞くほどわからなくなってくる。。
これはひょっとしてMC-8の特性なのかなとか勝手な想像して楽しんどるわけですよ。。
ただこれ多分ちょっと音が悪い気もするので、Giga Capsuleのかな?とか思うけどね。本物のマルチトラックテープを直に聴いてみたいわ。ほんとに。。
M.K@ryutorion
HLSLでのfloat2x3はGLSLのmat3x2,とGLSLで列行の順で数を指定していたのね・・・・・・正方行列しか使ってなかったから,気にしたことなかった
坂内綾花(21歳起業家)@FortuneFactory1
昔ある経営コンサルに「席数減らしたら店外に行列できて人気店に見える。待ちスペースも狭くするように」と指導され、高齢のお客様やお子様連れも多いのでイヤだと言うと「そんな甘い考えだから儲からないんだ」と怒られたのでコンサル契約を解除したのは奈良の繁盛とんかつ店まるかつの店長さんです。
S.F.@SFPGMR
この自機のシステムいいアイデアですね。
えれのあ / Atelier Shinosさんのツイート: "最近は、こんな感じのゲームを作ってました。 まだまだ調整が足りない感じですが、一段落。… "
S.F.@SFPGMR
サン電子ってPCも作ってたんですね!
なるおさんのツイート: "サン電子、今年はじめに本社をでっかいビルに移転してたのだねー。でもおなじみの江南市の社屋も残ってるみたいで良かった。いちど見に行ってみたい。https://t.co/Qup5d4CT70"
S.F.@SFPGMR
@syntaxerrors72 ありがとうございます。まあでもこの方でしたら個人でゲーム作って生きてけそうですよね。。
S.F.@SFPGMR
近年一番面白いというか、いわゆる「ゲーム性」っちゅうのを感じたのはこのゲームなのですわ。。レトロな感じのグラフィックもすごくいい。この2色の色使いがなんともいえない。私はSTEAMでPC版で遊んだクチですが。。
もっぴんさんのツイート: "Downwellが明日1/31にNintendo Switchで配信開始します。足から弾を撃ちながら井戸を降りていくゲームです。ぜひ遊んでみてくださいね!よろしくお願いします。… "
まあ、思わず買ってしまいました。これは。
こういう「ゲームとして楽しめる」デザイン力と個人的なリソースと折り合いをつけて完成させることができる「リソース管理能力」を合わせ持ってる感じが、ほんとリスペクトだよなあ。。
任天堂の人になってしまったようですが。。
任天堂はやめてしまったとのこと。。それはそれとして任天堂Switchって個人がゲームを発表できるようなプラットフォームになりそうなこと言ってたけど、今どうなってんだろうな。。
ああ、個人でも登録はできるんだな。。
No ImageHomepage - Nintendo Developer Portal
いや、でもSwitchは対象に入ってないよな。これ。
この状況は今も継続中なのかな。。
一個人としてswitch開発機材を購入しようとしたお話 - gamebox unityを使えば、Nintendo Switchの開発もする事ができます。 unityが使えるなら俺でも開発できる!どこにだって翔べる!どこへだって行ける!という事で個人用のswitch開発機が欲しくなりました。 Switch Development Units SDEV and EDEV | WiiUbrU & SwitchbrU Forums 高いと噂のsdev(↑写真)と、安いedevの2種類の開発機材がある様です。 edevなら市販のswitchに毛が生えた程度の価格なので自分でも買えるなー、家でswitchを舐り倒してやりたいなーと考え個人的に入手する為に動きはじめました。 いざ任…
このまとめなかなか濃いな。。
【議論】ゲームエンジンが発達したら、個人でも簡単にゲーム開発が出来るようになるのか? | ニンテンドースイッチ速報 元スレ:
今の段階ではまだ個人開発はできんということかな。。
Switchは子供が買ったこともあってちょっと興味が出て来てる。
今どきのゲームコンソールを直に触ってみたいなあと。でも任天堂のことだからある程度のハードルは課してくるんだろうなあ。
そんなこと言ってないで、とりあえず静的ブログシステムの不具合を直すか。。
S.F.@SFPGMR
@syntaxerrors72 なんと。。
S.F.@SFPGMR
昔のアーケードゲームハードはv-sync割り込み一回分の1フレーム分の処理をしてたんだよな。
でまあ、割り込みがかかったら割り込みの再入を防ぐために割り込み禁止にするので、次のv-syncまでに処理が追いつかない場合はその割り込みはスキップされるんだよね。
これがいわゆる「処理落ち」と言われるもの。
大量の敵が出た時に出現するので私のようなゲームが上手くない人にとっては嬉しかったりする。難しいシーンがスローモーションのようになるわけだからね。
この「処理落ち」対策を当時どうしてたかというと、一つのやり方としては1フレーム分の処理を分割して処理するというアプローチですわな。
1 v-syncで半分の処理を行って、次のv-syncでもう半分の処理を行うのである。こうすると敵の動きのスピードは1/2になってしまうので、移動速度は2倍にしてバランスをとるんですな。
これは実質的なフレームレートが1/30秒になるということでもある。ちょっとカクついた動きになるのがイマイチなんですなあ。。
コードの最適化についてはコードの自己書き換え以外はほぼ行われてたので、そこはもう私レベルでは手をつけるところはなかったんだよねえ。。
アーケードゲーム用のプログラムがコードの自己書き換えを使えないのは、コード自体をROMに収めることを想定してるから。当時のアーケードゲームの基板はRAMが極端に少なかったんだよね。4kとか8kあればいい方だった気がするな。いやもうちょっとあったかな。。
そこに敵やら自機の移動情報を収めると空きもほとんどないんだよな。
とあるゲームでv-sync割り込みはスプライト用のRAMへのデータ送りだけして、それ以外の処理は割り込み外で処理するようなこともやってみたような気がするな。。
まあ当時はRAMが高価だったのでコストダウンのためにできるかぎりRAMの量を減らす目的もあっだと思うなあ。
座標とキャラの番号を指定するだけで、最大128x128pxのサイズのスプライトがポコンと表示出来るようなすごいハードでしたが、それ以外の処理が追いつかないんだよな。。
私が最初にかかわったCPUはHD63C09だった。これはモトローラ6809の日立版である。CMOSでクロックが3MHzだった。つまり通常の6809より1.5倍高速な代物だった。ということでいわゆるパソコンよりは速いCPUを積んではいたんだけどね。
No ImageHitachi HD6309
6809というのは究極の8ビットCPUと言われただけあって、やっぱりすごいんですよ。何がっていうと半分忘れたけど、思い出してみよう。。
あのーこれはまあ、趣味プログラマーから「プロ」のプログラマーになってから最初に触れたCPUがということね。それまでは趣味でZ80と6809のアセンブラは理解してたんだよな。命令が両方とも簡素なので頭に入ったんだな。私のようなボンクラでもね。
だがまあ、このアセンブラを駆使してゲームを完成させることはできなかったですな。趣味プロのころは。私にとっては第一次趣味プロ時代とでも言おうか。。
何が足りなかったかというと、やっぱりアルゴリズム的な知識なのかなあ。。2Dアクションゲームを作るには固定小数点の知識はまず必要だろうなあと今になって思う。。
なぜかこの「固定小数点によるアバウトな小数点演算」というアイデアは全然思いつかないし、外部ソースから得ることもできなかったんだな。おそらく当時のゲームのソースコードを逆アセンブルしたりすれば知るチャンスはいくらでもあったと思うのだが。
おそらくはブレゼンハム・アルゴリズムよりもゲームを作るうえでは必要な知識だと思う。これは「プロ」のプログラマになってから得た知識の1つでもある。あとはsin/cosとatanのテーブルルックアップによる高速実装だよなあ。。
それで6809のことだけど、これの何がすごかったかというと、アドレッシング・モードが豊富だったということと、乗算命令があったことなんだな。
詳しくはここを読めばわかると思う。。
No ImageMotorola MC6809
レジスタの数はA,B,(A+Bで)D,U,X,Y,Sと少なかった。ああ、DPとかフラグ・レジスタ・PCもあったな。。この少ないレジスタ数をアドレッシング・モードが補ってた感じ。命令の直行性が高いというのもいいところだよなあ。。
そういう特徴がコーディングをすごく楽にしてくれたんだと思うな。Z80もそうややこしいものではないんだけど、やっぱりちょっと癖のあるCPUである(逆にいうと可愛がり甲斐があるともいえる)。
そのせいか、かかわった期間は6809系が一番長いはずなのに、なぜか思い出すのはZ80のザイログ・ニーモニックだという不思議。。
今頃発見したんだけど、63C09は日立の独自拡張が入ってたんだなあ。。
16ビットアキュムレータが1個(8bitアキュムレータ2個)、Vと0というレジスタが追加されとるな。
No ImageHitachi HD6309
S.F.@SFPGMR
グラIIとグラIIIって確か開発メンバーが変わったと思うんだよな。そのせいかゲーム性がかなり変わった印象があるんだな。ちなみに私はグラIIが最高だと思ってる。。
Jr200Okada@Jr200Okada
X68000でグラディウスIII:泡。スプレッドボムも追加して思い切り負荷をかけてみましたが…なかなか厳しい。スプライトも瞬間的に200に近く、10MHzモードではこれが限界かも。
また、泡の挙動の再現も多くの要素が絡むので試行錯誤してます。 https://t.co/d6Tzlm7yfN
S.F.@SFPGMR
ここ2-3日風邪で寝込んでいた。ようやく楽になった。。
歳のせいか、いったん風邪をひくとまず1日では回復しない。インフルではなかったからよかったが、インフルだともう2週間は体がガタガタになる。
S.F.@SFPGMR
久しぶりにREAPERをアップデートした。
No ImageREAPER | Audio Production Without Limits
私は音楽的な知識はまるでなく、譜面をなんとか読める程度である。コードとかもまったくわからない。コード理論や音楽理論の本も読んではみたがすべて忘れてしまってる。というより理解自体あまりできてない。
だがYMOのカバー曲(コピー曲)つくりには異様な熱意があった時期があって、YouTubeに連投してた時期もあった。10代のころからYMOの曲をPCでカバーするという野望があり、それはまだ消えてはいないのである。
最初はYMOの譜面を買って、X-1というPCにMMLで打ち込んだのが最初である。譜面をBASICのMMLデータに落とし、それを演奏するのである。
カバーしようとしたのはRYDEENである。が、パート数が多くて当時のパソコンが持つPSG3音では全然足りない。さてどうしたらいいものかと考えた結果、思いついたのはダブル・ラジカセを使ったピンポン録音である。
もちろん当時はMTRなんちゅうものの存在は知らなかった。1つのパートをガイドに録音して、それを再生しながら次のパートをもう1つのカセットテープにミックスしながら録音するのである。そうすればパートを増やすことができる。しかしピンポンを繰り返すとどんどん音が悪くなっていく。
そんなことよりも問題は各パートの同期である。アタマがずれたりするのはもちろん、微妙にテンポがずれてきて最後のほうになると16分音符ぐらいずれてしまってもうお話にならないのである。
原因はテープの録音時・再生時のスピードが微妙に異なってしまうのと、PC自体のテンポが演奏データ量によって狂ってしまうことだろうと思う。なので各パート打ち込んでもどうしてもずれてしまう。
MTRやシーケンサーなんかだと、シーケンサーが出すタイミング信号をまず録音して、それで同期するらしいんだけど、まあ普通のダブルラジカセとPCじゃあそんなことはできんわね。。
でどうしたかというと、最初のパートはデータを曲の最初から最後まで演奏して録音してガイドとする。2つめ以降のパートは何小節分かに区切って演奏できるようにして、手動でタイミングを合わせるようにした。Aメロはキーボードの「1」を押したら再生、Bメロは「2」を押すと再生するとかね(笑)。
あとはベースパートとかは簡単なフレーズなので、BASICで簡単なキーボードを作ってそれで演奏して重ねた。3音使えるのでデチューンしたりとかユニゾンしたりすると結構いい音がしたんだよな。。
その方法でRYDEENと東風をなんとか作って友達に聞かせたりしていたのだ。
当時の譜面は今でも持ってて、BASICの変数の書き込みなんかしてたりするのを見て「懐かしいなあ。。」とか思ったりしてる。 https://t.co/mEomaAo1lG
ただまあこの譜面、ブロックコードのパートはちょっと不正確というか間違ってるところがあるんだよな。確か。採譜が難しいのかな。やっぱり。
作成環境はかなりの変遷を経て今はREAPERを使ってデータつくりをしてるわけである。その前はBuzzトラッカーを使って作ってた。
REAPERではWAVEファイルにレンダリングして、それを動画化するための仕組みをelectronで作り、公開したのが以下の動画。かなり前(2017年)になるが。。
この仕組みを久しぶりに動かしてみようとしたら、まったく動かんわけですよ。
どうもいろいろなものがバージョンアップしてるかららしい。。まずelectronが4.0.1になってた。。
GitHub - electron/electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS :electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS - electron/electron
そしてビルドに使ってたgulpが4になってタスクの書き方がえらい変わっとる。。
No Imagegulp.js - The streaming build system
このあたりはアップデートして何とかしたのだが、次はこれに引っかかって動かない。。
The specified module could not be found, with electron v4.0.0. · Issue #1522 · lovell/sharp · GitHub With electron 3.0.12 everything seems to work fine. Changed version to 4.0.0, removed node_modules, did npm i, all ok. If I run electron-rebuild, the command runs, but it does not rebuild the sharp module, does not seem it's picking it u...
The specified module could not be found.
うむむ。。
electronを2までに落としたところ動くようになった。しかし、今度はthree.jsが動かない。。
three.jsもちょっと見ぬうちにr100になっとるな!これを作ってるときはr81だったのだが。。
No Imagethree.js – JavaScript 3D library
three.js関連コードもなんとかアップデートしたらなんとか動いたわ。。 https://t.co/ZaUmqeRzrQ
ひぃー。過去に作ったコードほとんど動かくなってるなあ。。この分だと。。
three.jsもJSON形式のモデルデータって廃止の方向っぽいなあ。gltfっていうフォーマットに移行しつつあるのかな。。追っかけてないからよくわかんないや。。
でまあ今のレベルで非公開でYouTubeにアップしたらこれまた音が小さく再生されてしまうなあ。。なんでだ?
知らぬ間にいろいろ変わっちゃってるよ。。
S.F.@SFPGMR
習志野選抜出場決定!!
おごちゃん™ / 香港加油@ogochan
「COBOLは難解な言語」「理解できる人が少ない」というのは、悪意のあるデマ。他の言語が使える奴なら1日も講義受けたら書けるようになるし、85以後のCOBOLは構造化もされていてそんなに酷い仕様でもない。クソコードであっても、モダンな言語のクソコードよりはずっと読みやすい。
S.F.@SFPGMR
COBOLのソースコードは読みやすいほうですけどね。。
カーボンさんのツイート: "「これはCOBOLで書かれた特殊なプログラムなので高齢者しか読めず、そのミスがチェックできない」、読むだけなら難しくないだろ、別に...。 勤労統計問題の原因は「COBOLプログラムのバグ」 - アゴラ https://t.co/sN5ZPITiwX"
梅田ミックスジュース@mixjuice_UMEDA
初めまして。
阪神梅田駅 東口改札すぐにあるジュースバー【梅田ジュースコーナー】です。
ミックスジュースを販売して、今年で創業50周年。
ついに、Twitterをはじめました。
どうぞよろしくお願いします。#はじめてのツイート https://t.co/Lp0hWGvSGG
S.F.@SFPGMR
将来のことを考えると、副業やマネタイズなど副収入の手段も検討しとかんといかんなあと思うようになった。このままだと60歳でリタイアできんもんな。。やばいんですよ。
70歳まで現役とかいう話あるけど、私はあり得ない。。しんどいもんなあ。。体力的に。。
今の時点でそれなりのポジションにつければあまり心配はなかったんだけど、人付き合いの悪さ等の理由により、そういうラインからは完全に外れちゃてるんだよね。。まあ望んだ結果なんだけど。
S.F.@SFPGMR
そろそろデスクトップのOSもlinuxをメインにすべしかなあ。。
というのも、VS CodeでuseWSL:trueでデバッグしようとしたら、こんなエラーがでたからなんだな。。
Error: ENOENT: no such file or directory, open '/home/sfpg/www/node/keys/wwwmaker/xxxxx.json'
このファイルは確実に存在するし、bash上で手動実行すると動くので、??である。
ちなみにVS CodeはWin10で動かしてる。デバッガは以下のコマンドを発行してWSL上でコードを動かしてくれるのだが。
C:\WINDOWS\System32\bash.exe -ic 'node --inspect-brk=38994 commands/build-blog.js update'
ちなみにwsl上で「node --inspect-brk=38994 commands/build-blog.js update」をたたくとちゃんとデバッグできた。。
まあなんちゅうか、実質linux onllyで実装を進めてて、こういうwin10/wsl間の些末な問題にかまってるっちゅうのもなんだかなあ。。と思ったりするんだよな。。
まあでももちょっと頑張って使わせてもらうとするか。。
ノートにlinux mint入れてあっていつでもいじれるし。。とこれはこれでちょっと挙動的に??なところがあるのだが。。
Hideyuki Tanaka@tanakh
いやそれより僕が疑問なのは、コーディングができなくてなんでソフトの設計ができると思う人がいるのかって所なんだけども。(´・_・`)