読者です 読者をやめる 読者になる 読者になる

aokcub::Blog

/PIC|dsPIC|Perl|Terragen3|風景CG|CSS3/

NDS27に参加してきたよ!よ!

PIC NDS Git

NDS23からの連続参加記録も5に延びました.
卒業まで連続参加続けたい.



今回は
・Gitハンズオン
・ふつうのLTセッション
の二本立てで行われました.

順に書いていきます



Gitハンズオン
Niigata.scmとのコラボ企画です.


Gitについては最近個人的なプロジェクトで使ってはいるんですが,
うまく運用出来てない感じがするので,
その辺の感覚を掴みたくて参加しました.


まずは@masaru_c_blさんからGitの起源,特徴,利点や学習法の解説.
入門Git,買っちゃおうか.


そして@dictavさんによる操作方法解説と演習.
add/commit/log/reflog/reset/clone/checkout/branch/merge/rebase
あたり?
push戦争が非常に楽しかったー.


講師の@masaru_c_blさん,@dictavさん,
途中merge/rebaseの素晴らしい解説をしてくださった@neko_gata_sさん,
TAの@Nkznさん,ありがとうございます!!

changelog,ちゃんと書くようにしたい…



LTセッション

自分を含めて7本ありました.


1. 電子国土と地形図(その後) @yu_horiさん
NDS23での電子国土地図の発表の続き.


2. 長岡にギークハウスを @geek_niigataさん
ギークハウス新潟のオーナーからの,長岡にギークハウスつくろうぜという話.
来年卒業して長岡を離れるのが残念.


3. やったーPICで作曲できたよー\(^o^)/ @aokcub
後述


4. git-svn @masaru_c_blさん
中央リポジトリsvnなときに,ローカルでGitを使う方法
今は個人ではGitかsvnかどちらか単体でしか使わないけど,
どこかで使う機会があるかもしれない.めもめも.


5. ソフトウェアメトリクス調査2012を読み解く @hiro55bsさん
JUASのソフトウェアメトリクス調査の概要.
COBOL強い.
自分は来年何を書いているんだろう(あ,SIerじゃないです)


6. やったーPerlでにゃん読化ツールできたよー\(^o^)/ @neko_gata_sさん
ソースコードをnyanで難読化するモジュール.
Acme::BleachAcme::DoubleHelixみたいな感じ.
Niigata.pm遊びにきてね!!


7. NDSから大切なお知らせ @civicさん
NDSによる勉強会立ち上げサポート.
NDS傘下型勉強会として,なぜかNiigata.pmやNiigata.rbがNDSの傘下にされていたw
「SRNDS(それNDSでできるよ)」




自分のトーク (内容と補足)

スライドはここ.

デモ


何をやったんだ

元ネタはNDS25での猫型さんの「やったーGAでDTMできたよー\(^o^)/」
ハードウェアで鳴らしたらかっこいいんじゃね?ってことでやりました.


ただしメロディ生成のためのアルゴリズムには粒子群最適化(PSO)を用いた,と.


補足があるんだ

最初は秋月で手に入るPIC32MX120F032Bを使う予定でした.
が,どうもRAM(8kB)に収まらない恐れが出てきて,
手元にあったdsPIC33FJ128GP802に変更.
これは秋月では取り扱ってないです.どこで買ったか忘れたけど,メーカーの直販サイトであるMicrochip DIRECTから直接買ったような気がします.

dsPIC33FJ128GP802にはD/Aが内蔵されてるのに使っていないです.
もともとPIC32MXを使うつもりだったから.


でも,さっきRAM使用量再計算したらなんか足りそうな気がする.ピンコンパチなので,デバイス変えてビルドし直せばIC挿し替えだけでいけそう.


なお,開発環境はMPLAB X + XC16 C Compiler + PICkit3です.
今回初めてOS (FreeRTOS)使いました.
楽しい.


まだ整理しきれていなくて汚いところはありますが,リポジトリをGithubに上げました
プロジェクトファイル無いのでそのままではビルドできないです.後日導入手順書きます...
FreeRTOSはGPLですが,それを呼び出しているユーザコードはクローズドでもいいというライセンスになっています.なんとなくMITにしてますが.
また,LCD駆動タスクは含まれません.
初期化コードがデータシート丸コピなので...



今後の課題とか

今回生成できるメロディ,乱数値にもよるけどいいメロディと言えるかは微妙なところです.主観が入るので何を持っていいメロディといえるのかは難しいですが.


一番の問題は評価関数です.
今回は猫型さんの例に倣って,単音ごとの評価値(と,その音の重み)の総和で決めています.小節全体の流れを考慮した評価アルゴリズムにする必要がありそう.
あと,既存の曲から学習するとか.
そこまで来るとよく分からない.
そもそも音楽理論分からない.


このような用途にPSOが適しているのか?という疑問もあったりする.


今回,波形ジェネレータは過去に作った奴を単音に特化させました.単なる三角波DDSです.CPUリソースにも空きはあるので,3和音くらいならいけると思います.そうしたらもっとおもしろくなりそう.VS1053bあたりにMIDIシグナルとして送って,鳴らしてもらうのもいいかも.


せっかく作ったメロディを保存できないのは,
・過去に作ったH/Wを使いまわしたのでスロットが無い
・SPIをもう一本用意するためのピンの空きが無い
・新しく作る時間的リソースが無い
のが理由.ピン数の多いPIC32MX3xxあたりでH/W作り直そうかな.



まとめ

今回は10時開始18時終了+懇親会という長丁場でしたが,
非常に中身の濃い勉強会で楽しかったです.


次回も何かネタがあれば発表したい.

以上でっす



リンク
Togetterまとめ
hayajoさん
sasaplus1さん
neko_gata_sさん
dictavさん
shogo82148さん
jewel_x12さん
civicさん
masaru_b_clさん