カノン進行

f:id:nagae-takanori:20210829230715p:plain

MidiTrack([
MetaMessage('track_name', name='ã\x83\x94ã\x82¢ã\x83\x8e\x00', time=0),
MetaMessage('time_signature', numerator=4, denominator=4, clocks_per_click=24, notated_32nd_notes_per_beat=8, time=0),
MetaMessage('key_signature', key='C', time=0),
MetaMessage('set_tempo', tempo=500000, time=0),
Message('control_change', channel=1, control=121, value=0, time=0),
Message('program_change', channel=1, program=0, time=0),
Message('control_change', channel=1, control=7, value=100, time=0),
Message('control_change', channel=1, control=10, value=64, time=0),
Message('control_change', channel=1, control=91, value=0, time=0),
Message('control_change', channel=1, control=93, value=0, time=0),
MetaMessage('midi_port', port=0, time=0),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=72, velocity=80, time=0),
Message('note_on', channel=1, note=76, velocity=80, time=0),
Message('note_on', channel=1, note=67, velocity=0, time=455),
Message('note_on', channel=1, note=72, velocity=0, time=0),
Message('note_on', channel=1, note=76, velocity=0, time=0),
Message('note_on', channel=1, note=67, velocity=80, time=25),
Message('note_on', channel=1, note=72, velocity=80, time=0),
Message('note_on', channel=1, note=76, velocity=80, time=0),
Message('note_on', channel=1, note=67, velocity=0, time=455),
Message('note_on', channel=1, note=72, velocity=0, time=0),
Message('note_on', channel=1, note=76, velocity=0, time=0),
Message('note_on', channel=1, note=67, velocity=80, time=25),
Message('note_on', channel=1, note=71, velocity=80, time=0),
Message('note_on', channel=1, note=74, velocity=80, time=0),
Message('note_on', channel=1, note=67, velocity=0, time=455),
Message('note_on', channel=1, note=71, velocity=0, time=0),
Message('note_on', channel=1, note=74, velocity=0, time=0),
Message('note_on', channel=1, note=67, velocity=80, time=25),
Message('note_on', channel=1, note=71, velocity=80, time=0),
Message('note_on', channel=1, note=74, velocity=80, time=0),
Message('note_on', channel=1, note=67, velocity=0, time=455),
Message('note_on', channel=1, note=71, velocity=0, time=0),
Message('note_on', channel=1, note=74, velocity=0, time=0),
Message('note_on', channel=1, note=64, velocity=80, time=25),
Message('note_on', channel=1, note=69, velocity=80, time=0),
Message('note_on', channel=1, note=72, velocity=80, time=0),
Message('note_on', channel=1, note=64, velocity=0, time=455),
Message('note_on', channel=1, note=69, velocity=0, time=0),
Message('note_on', channel=1, note=72, velocity=0, time=0),
Message('note_on', channel=1, note=64, velocity=80, time=25),
Message('note_on', channel=1, note=69, velocity=80, time=0),
Message('note_on', channel=1, note=72, velocity=80, time=0),
Message('note_on', channel=1, note=64, velocity=0, time=455),
Message('note_on', channel=1, note=69, velocity=0, time=0),
Message('note_on', channel=1, note=72, velocity=0, time=0),
Message('note_on', channel=1, note=64, velocity=80, time=25),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=71, velocity=80, time=0),
Message('note_on', channel=1, note=64, velocity=0, time=455),
Message('note_on', channel=1, note=67, velocity=0, time=0),
Message('note_on', channel=1, note=71, velocity=0, time=0),
Message('note_on', channel=1, note=64, velocity=80, time=25),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=71, velocity=80, time=0),
Message('note_on', channel=1, note=64, velocity=0, time=455),
Message('note_on', channel=1, note=67, velocity=0, time=0),
Message('note_on', channel=1, note=71, velocity=0, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=25),
Message('note_on', channel=1, note=65, velocity=80, time=0),
Message('note_on', channel=1, note=69, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=0, time=455),
Message('note_on', channel=1, note=65, velocity=0, time=0),
Message('note_on', channel=1, note=69, velocity=0, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=25),
Message('note_on', channel=1, note=65, velocity=80, time=0),
Message('note_on', channel=1, note=69, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=0, time=455),
Message('note_on', channel=1, note=65, velocity=0, time=0),
Message('note_on', channel=1, note=69, velocity=0, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=25),
Message('note_on', channel=1, note=64, velocity=80, time=0),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=0, time=455),
Message('note_on', channel=1, note=64, velocity=0, time=0),
Message('note_on', channel=1, note=67, velocity=0, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=25),
Message('note_on', channel=1, note=64, velocity=80, time=0),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=0, time=455),
Message('note_on', channel=1, note=64, velocity=0, time=0),
Message('note_on', channel=1, note=67, velocity=0, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=25),
Message('note_on', channel=1, note=65, velocity=80, time=0),
Message('note_on', channel=1, note=69, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=0, time=455),
Message('note_on', channel=1, note=65, velocity=0, time=0),
Message('note_on', channel=1, note=69, velocity=0, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=25),
Message('note_on', channel=1, note=65, velocity=80, time=0),
Message('note_on', channel=1, note=69, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=0, time=455),
Message('note_on', channel=1, note=65, velocity=0, time=0),
Message('note_on', channel=1, note=69, velocity=0, time=0),
Message('note_on', channel=1, note=62, velocity=80, time=25),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=71, velocity=80, time=0),
Message('note_on', channel=1, note=62, velocity=0, time=455),
Message('note_on', channel=1, note=67, velocity=0, time=0),
Message('note_on', channel=1, note=71, velocity=0, time=0),
Message('note_on', channel=1, note=62, velocity=80, time=25),
Message('note_on', channel=1, note=67, velocity=80, time=0),
Message('note_on', channel=1, note=71, velocity=80, time=0),
Message('note_on', channel=1, note=62, velocity=0, time=455),
Message('note_on', channel=1, note=67, velocity=0, time=0),
Message('note_on', channel=1, note=71, velocity=0, time=0),
MetaMessage('end_of_track', time=1)])
MidiTrack([
MetaMessage('track_name', name='ã\x83\x94ã\x82¢ã\x83\x8e\x00', time=0),
MetaMessage('key_signature', key='C', time=0),
MetaMessage('midi_port', port=0, time=0),
Message('note_on', channel=1, note=48, velocity=80, time=0),
Message('note_on', channel=1, note=60, velocity=80, time=0),
Message('note_on', channel=1, note=48, velocity=0, time=911),
Message('note_on', channel=1, note=60, velocity=0, time=0),
Message('note_on', channel=1, note=43, velocity=80, time=49),
Message('note_on', channel=1, note=55, velocity=80, time=0),
Message('note_on', channel=1, note=43, velocity=0, time=911),
Message('note_on', channel=1, note=55, velocity=0, time=0),
Message('note_on', channel=1, note=45, velocity=80, time=49),
Message('note_on', channel=1, note=57, velocity=80, time=0),
Message('note_on', channel=1, note=45, velocity=0, time=911),
Message('note_on', channel=1, note=57, velocity=0, time=0),
Message('note_on', channel=1, note=40, velocity=80, time=49),
Message('note_on', channel=1, note=52, velocity=80, time=0),
Message('note_on', channel=1, note=40, velocity=0, time=911),
Message('note_on', channel=1, note=52, velocity=0, time=0),
Message('note_on', channel=1, note=41, velocity=80, time=49),
Message('note_on', channel=1, note=53, velocity=80, time=0),
Message('note_on', channel=1, note=41, velocity=0, time=911),
Message('note_on', channel=1, note=53, velocity=0, time=0),
Message('note_on', channel=1, note=36, velocity=80, time=49),
Message('note_on', channel=1, note=48, velocity=80, time=0),
Message('note_on', channel=1, note=36, velocity=0, time=911),
Message('note_on', channel=1, note=48, velocity=0, time=0),
Message('note_on', channel=1, note=41, velocity=80, time=49),
Message('note_on', channel=1, note=53, velocity=80, time=0),
Message('note_on', channel=1, note=41, velocity=0, time=911),
Message('note_on', channel=1, note=53, velocity=0, time=0),
Message('note_on', channel=1, note=43, velocity=80, time=49),
Message('note_on', channel=1, note=55, velocity=80, time=0),
Message('note_on', channel=1, note=43, velocity=0, time=911),
Message('note_on', channel=1, note=55, velocity=0, time=0),
MetaMessage('end_of_track', time=1)])

少しずつ進む

Powershell の文字色や背景色を変えたりとか。

 

Flask を使い始めた。

ubuntu、python3、pip。ufw

ubuntu 上でも作業はできるが、windows から powershell で remote login して作業したほうが平行してネットで調べたりブログに記録したりするには効率的かな。

flask run -h 0.0.0.0  

って -h 0.0.0.0 をつけなきゃいけないところではまった。

とりあえず、サーバーから midijsonで垂れ流してそれをクライアントの ue4 でバッファに貯め込んでシンセで音を鳴らすところまでやれば良かろうと思っている。垂れ流しだと面白くないんで、リアルタイム制御もしたいし、できるだけクライアント間で同期も取りたいが、そういうのはとりあえずすっとばすことになると思う。

 

ますます動画編集

近頃は1週間のうちに動画を編集しないことなどなく、週に何度も、時には1日に3つくらい動画作ってyoutubeにアップしたりしてて、そこがとてつもなく1年前とは違う。いやもう1年よりか長く続けてる。

で、去年の今頃だと動画をまずキャプチャして、premiere に並べて、そのあたりで力尽きて声を入れるのは次の日に回したりしてたんだが、そのへんもだいぶ慣れてきて休まず一気に作れるようになってきた。

慣れというのはすごいもんだ。

それにしても動画制作というやつはがりがりリソースを削られるのが怖い。再生回数が増えると増えたでまた作ろうとか思ってあっという間に時間が過ぎていく。でも、キャラクターのモデリングもそうだが何度もやってくうちに時間も全然かからなくなるし精神的負担もそれとともにかなり減っていく。自分の脳内で自動化されルーチン化されていくからだろうと思う。

つい最近始めたといえば github で、これは平仄くんのソースを自分のサーバーとかじゃなくて配布するのに github が一番便利だろうと思って始めたわけだが、gitub pages という機能で html を公開することもできるんでそれも使い始めた。

なんにせよレンタルサーバーとか自前のサーバーを外に公開するのはもうやめたい。wordpress を自分で管理するのもやめる。

できるだけはやいうちにやめてしまう。

あとやはりこれも最近始めたのは作曲とか daw とかシンセとか。

作曲するようになったきっかけは comptone だったんだけど、それを midi で書き出して musescore でいじっているうちに最初から自分で作曲したほうが早いじゃんということになり、musescore で打ち込んで midi を書き出して fl studio で読み込んで vital とか vst plugin のシンセで鳴らして遊び始めた。

とりあえず fl studio に最初からついてるシンセでもよかったんじゃないかと思うんだが、すでに vital にそこそこ慣れてしまったので vital メインでやってる。

それから ue4 でも modular synth というのがあって blueprint でシンセ作れるのがわかったんでそれにもはまった。

今一番はまってるのはこれかもしれない。

動画編集

コロナ騒ぎのせいで図書館通いもできなかったが、授業も12月16日で終わり、資料の仕込みも終わったのでこの週末はヨドバシへ行ったり、図書館をハシゴしたり、趣味の動画を作ったり(笑)、ブログを更新したりした。

コロナのせいで頻繁にpremiereを使うようになった。声を吹き込んで切り貼りするのもpremiereが一番便利だ。audacityではこうはいかない。blenderのビデオ編集機能は便利だが、ライブで声を録音する機能がないのが不便だ。audacityblenderを組み合わせてそれっぽいことはできると思うのだが、どうしてもpremiereが手っ取り早いということになる。

授業の資料で動画を作るようになり、やり方を覚えてくると、それはそれとして、できれば大学の研究費に依存しないで、自分の好き勝手に動画を作って公開したい、収益化したいという気持ちが出てくる。もちろん自腹でpremiereを買えば良いのだが、その出費を補ってくれるほど収益が出るとも思えずなんか腹立たしい。

だからいまさらながら脱adobeということを考えつつある。

unreal editor にもビデオ編集機能はある。しかしue4シーケンサーで動画を作ろうというのはよほどの物好きだろう。思うに、オープンソースの動画編集ソフトはどれもいまいちで、将来有望なのはblenderしかないと思う。多くの人の期待が集まれば、blenderの動画編集機能もだんだんに進歩するのではなかろうか。

Macユーザー

例年11月頃に必ず風邪を引く。去年はそのときマスクを買い置きしておいたので、あとで助かった。今年はうっかり風邪も引けない。コロナ騒ぎはだいぶ落ち着いてきたので、ようやくブログなぞ書く精神的余裕も出てきた。

Windowsで課題を提出するように言っているのに必ずMacで出して来る者が一定数含まれている。今年はコロナのせいで自宅にMacしか無いという学生がいてしょうがないので、学科オフィスから Mac Book Pro を借りてきて採点していたのだが、これから卒業制作となり、Mac Book Pro が貸し出されていることも多くなるだろうから、仕方なく Mac を買うことにした。生協にはいまたまたま Mac Book Pro の 2017年のやつがアウトレットで8万円で売っていて在庫もあったのでそれを買うことにした。

私の学科はMacユーザーが多く、私以外の教員はみなMacユーザーだ。非常に窮屈な思いをしている。

Unity と UnrealWindowsMac、全部やるのはめんどうだ。できれば UnrealWindows の組み合わせに特化したい、したいんだけどなかなか出来なくて困っている。 

ブログの引っ越し

socialakiba.com で http サーバーを走らせていたわけだが、https じゃないと「保護されてない通信」とか怒られるので、もう自前のレンタルサーバーは使わないことにしようかと思っている。サーバーは解約するとして、ドメインはどうしようか google 様が何かサービスしてたような気もするが、ともかく、hatena に昔作ったブログがあったんで、とりあえずこちらに備忘録代わりの記事は書くことにする。

 古いパソコンに centos6 を入れようと思ったら LAN のドライバが無いらしくて、centos6 はそろそろサポートも切れるっぽいんで、systemctl とか好きになれないが、しかたないので centos7 に移行する。

 

https://qiita.com/katsuta/items/17eee8e78543871b5f27

yumwget の proxy 設定。

 

外には置かずに大学内部のネットワークだけでみれるようにする。

http://grad01.int.t-kougei.ac.jp/ で名前もひける。

mediawiki も入れ直したんで、学生に使わせてみるかね。しかし今はコロナで、大学の外から見れないサーバー立ててもあまり意味ないような気もする。

ubuntu は大学のネットワークの中だと update とかできないっぽいんだが、どうなのかね。centos7 なら普通に yum update できたんでよしとする。

 https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0

 もはや php などまったくいじってないのだが、mediawikiwordpress を使うには必要。centos7の php は古すぎて怒られるので、レポジトリをいじらなきゃいけないらしくて、あちこち見比べた結果、どこもまあだいたい同じようなことをやってるようなんでまねして php7.x をいれる。