プロジェクト計画書(仮)¶
概要¶
ピアノ打鍵に関わる能力(視覚-聴覚-触覚の連携)を向上させるためのアプリ「tri-sense」の開発プロジェクト。
・視覚 → 触覚
・聴覚 → 触覚
この2種類の連携を強めることにより、
「概念上の音」を「実際の音」に変換しやすくすること(ピアノを体の一部にすること)を目指す。
種別 | 具体例 |
---|---|
視覚 | 音符、コード |
聴覚 | 音(単音、和音) |
触覚 | 打鍵時の運動制御 |
※本当は "触覚"(入力)というより "運動"(出力)なのだろうけど、細かいことは気にしない...。
ウェルカム¶
環境¶
- Python3.5
リポジトリ¶
$ git clone https://git.fukurous.org/gitbucket/git/g0947424/tri-sense.git
ライブラリのインストール(1)¶
PythonからMIDIを扱うため、ライブラリ「pygame」を導入する。
Python3.5向けにはやや面倒な手順になるのでメモを残しておく。
ちなみに、Python3.5 ─ pygame ─ SDL+portmidi ─ MIDI機器 という具合に接続されることになる。
↓Homebrewユーザ向け(書籍『パーフェクトPython』等より)
# 1. SDL(クロスプラットフォームのマルティメディアライブラリ)とそのインストール # cf. https://www.libsdl.org $ brew install sdl sdl_image sdl_mixer sdl_ttf $ brew install smpeg # もし # > Error: This is a head-only formula; install with `brew install --HEAD smpeg` # と表示された場合は、その内容に従って、 # $ brew install --HEAD smpeg # でインストールしなおすらしい。 # 2. portmidi(クロスプラットフォームのMIDIライブラリ)のインストール $ brew install portmidi # 3. X11(XQuartz)のインストール。pygameがこれを必要とするため。 # 次のURLから dmg をダウンロードしてインストール。(ex. XQuartz-2.7.11.dmg) # https://www.xquartz.org # 4. Mercurial(hg)のインストール(Python3.5向けのpygameを取り寄せる際に使用するツール) # cf. https://www.mercurial-scm.org/wiki/Download $ brew install mercurial # 5. pygame(Python3.5対応)のインストール $ pip install hg+https://bitbucket.org/pygame/pygame # 6. ちゃんとインストールできたかの確認(BGMとともにインベーダーゲームが動くはず) $ python -m pygame.examples.aliens
要求¶
★:最優先、☆:優先
要求ID | 内容 | 理由 | 5/5 | ?/? | ?/? | ?/? | ||
---|---|---|---|---|---|---|---|---|
要求 | RQ-1 | 視覚 → 触覚 の連携を強化できること | 既存の音楽(楽譜中の音楽等)を音に変換しやすくするため | ★ | ||||
要求 | RQ-1-1 | 音部記号表示(ト音,ヘ音)に対応していること | 両手ともに連携を強化したいため | ★ | ||||
要求 | RQ-1-2 | 調号表示に対応していること | ☆ | ★ | ||||
要求 | RQ-1-3 | 臨時記号表示(#, ♭, ♮)に対応していること | ☆ | ★ | ||||
要求 | RQ-1-4 | 臨時記号表示(重嬰, 重変)に対応していること | ☆ | ★ | ||||
要求 | RQ-1-5 | 和音表示に対応していること | ☆ | ★ | ||||
要求 | RQ-1-6 | コード名表示に対応していること | ☆ | ★ | ||||
要求 | RQ-1-7 | オクターブ変化(8va/8vb)に対応していること | ☆ | ★ | ||||
要求 | RQ-1-8 | オクターブ変化(15va/15vb)に対応していること | ☆ | ★ | ||||
要求 | RQ-2 | 聴覚 → 触覚 の連携を強化できること | 想像上の音楽(作曲時の音楽等)を音に変換しやすくするため | ☆ | ★ | |||
要求 | - | (未分析) | ||||||
要求 | RQ-3 | その他の機能/非機能が備わっていること | ||||||
要求 | RQ-3-1 | MIDI接続機器によって打鍵操作できること | 実際の物理装置を使用における運動精度を高めるため | ★ | ||||
要求 | RQ-3-2 | 設問回答の流れがスムーズであること | 操作ストレスによる "習慣化の阻害" を避けるため | ☆ | ★ | |||
要求 | RQ-3-3 | 設問から打鍵までの速度を計測できること | 目標到達に対する効果測定を行なうため | ☆ | ★ | |||
要求 | RQ-3-4 | 練習状況の計測結果を蓄積できること | 念のため(えっ...)(蓄積するだけでok、分析等は不要) | ☆ | ★ | |||
要求 | RQ-3-5 | 打鍵の強さ(velocity)を表示できること | 打鍵の強弱精度向上のため(おまけ機能) | ☆ | ★ |