Piano Hat & Rosegarden
2020.02.13 / 2022.02.05更新
YouTubeでポイントを説明しています。画像をクリックすると再生できます。
今回は、Pimoroni Piano Hat を DAWソフトウェア Rosegarden の音符入力に利用します。
Pimoroni Piano HAT FramboiseDorf for Raspberry Pi
Piano Hat は、MIDI経由でソフトウェア/ハードウェアシンセサイザーの制御が可能な、Raspberry Piの拡張基板です。
【特徴】
・タッチセンサボタン:16個(各ボタンの機能はPythonで割り当て可能)
・ピアノ鍵盤:13個(フルオクターブ)
・オクターブ アップ/ダウンボタン
・楽器選択タッチパッド:シンセサイザーと高相性
・白色LED:16個(自動点滅、Pythonで制御可能)
・Microchip CAP1188静電容量式タッチドライバチップを二つ搭載
・MIDI経由でソフトウェア/ハードウェアシンセの制御が可能
・Raspberry Pi 3、2、B+、A+、およびZeroで利用可能
・ピンソケット実装済み
・Pythonライブラリあり
Rosegarden
RosegardenはLinuxで動作するMIDIシーケンス機能を備えた、DAW(Digital Audio Workstation)ソフトです。GPLライセンスでリリースされています。
■Piano Hat と Raspberry Pi の結線
Ref.https://pinout.xyz/pinout/piano_hat
普通はラズパイに被せてしまうので、意識する必要はありませんが、一応結線を確認しておきます。
Piano HatとラズパイはI2C接続(BCM2,3)ピンの他に、BCM4,17,27,22のGPIOピンを使用しています。
また、3.3V(Pin:17と5V(Pin:2)およびPin:30,34のGroudを使用しているようです。
Piano Hat に限らず、拡張基盤(Hat)を被せてしまうと、他のGPIOピンが使えなくなってしまいます。
Raspberry Pi と Hat の間に GPIOアダプタ を挟むことで、他のデバイスも利用できます。
→ Raspberry Pi GPIO拡張
ここからは、SSH接続でパソコンから操作します。ラズパイのOSは Raspberry Pi OS です。
■Piano Hat サンプルコードおよび実行環境のインストール
Ref.https://github.com/pimoroni/Piano-HAT/blob/master/README.md
$ curl -sS https://get.pimoroni.com/pianohat | bash
This script will install everything needed to use
Piano HAT
Always be careful when running scripts and commands copied
from the internet. Ensure they are from a trusted source.
If you want to see what this script does before running it,
you should run: 'curl https://get.pimoroni.com/pianohat'
Note: Piano HAT requires I2C communication
Do you wish to continue? [y/N] y
Checking environment...
Updating apt indexes...
..................
Checking hardware requirements...
Checking for packages required for GPIO control...
...raspi-gpio is already installed
.....................RPi.GPIO installed and up-to-date
I2C must be enabled for Piano HAT to work
I2C is now enabled
Checking packages required by I2C interface...
Python 2 smbus installed and up-to-date
Python 3 smbus installed and up-to-date
Piano HAT comes with examples and documentation that you may wish to install.
Performing a full install will ensure those resources are installed,
along with all required dependencies. It may however take a while!
Do you wish to perform a full install? [y/N] y
Checking for dependencies...
python-cap1xxx is already installed
python3-cap1xxx is already installed
Installing python-pianohat...
install ok installed
Installing python3-pianohat...
install ok installed
Checking for additional software...
python-numpy is already installed
python3-numpy is already installed
python-pygame is already installed
python3-pygame is already installed
Downloading examples and documentation...
Resources for your Piano HAT were copied to
/home/pi/Pimoroni/pianohat
All done. Enjoy your Piano HAT!
インストールが完了すると、/boot/config.txt が
dtparam=i2c_arm=off
↓
dtparam=i2c_arm=on
に書き換わっています。
$ cd ~/Pimoroni/pianohat/examples
$ ./simple-piano.py
初期状態では、ドレミの鍵盤を押すと、ドラムの音が鳴ります。
「INSTRUMENT」ボタンを押すと、ピアノの音色に変わり、すべての鍵盤を使用できます。
コードを編集する際には下記を参考にしてください。
セットアップガイド(英文)
■Python MIDI インストール
Piano Hat をMIDI入力機器として利用します。
Ref.https://github.com/pimoroni/Piano-HAT/tree/master/examples
$ sudo apt-get install python-dev libasound2-dev swig
$ cd ~/Pimoroni/pianohat
$ git clone https://github.com/vishnubob/python-midi
$ cd python-midi && sudo ./setup.py install
copying build/scripts-2.7/mididumphw.py -> /usr/local/bin
copying build/scripts-2.7/mididump.py -> /usr/local/bin
copying build/scripts-2.7/midiplay.py -> /usr/local/bin
changing mode of /usr/local/bin/mididumphw.py to 755
changing mode of /usr/local/bin/mididump.py to 755
changing mode of /usr/local/bin/midiplay.py to 755
If it installs properly, you should get a handy new tool `mididumphw.py` which will tell you
what MIDI-compatible synths you've got running and what Client/Port IDs you'll need to connect to to use them.
### Using `midi-piano.py`
You'll find the MIDI Piano example in the examples folder of this repository, or in `~/Pimoroni/piano-hat`
if you used our installer script. By default it supports SunVox and yoshimi:
Run either of these synths first,
and then run
$ sudo ./midi-piano.py
and start playing. For best results, you should use a Pi 2- especially
with Yoshimi which can be a bit taxing on the older models.
------------------------------------------------------------
※Raspberry Pi OS (64bit/bullseye)の場合
$ curl -sS https://get.pimoroni.com/pianohat | bash
This hardware is not supported, sorry!
Config files have been left untouched
https://get.pimoroni.com/pianohat スクリプトの中をみてみると、
if ! $IS_ARMHF; then
warning "This hardware is not supported, sorry!"
warning "Config files have been left untouched\n"
exit 1
fi
$ sudo pip3 install pianohat
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: pianohat in /usr/lib/python3/dist-packages (0.1.0)
Requirement already satisfied: cap1xxx in /usr/lib/python3/dist-packages (from pianohat) (0.1.3)
Requirement already satisfied: RPi.GPIO in /usr/lib/python3/dist-packages (from cap1xxx->pianohat) (0.7.0)
$ sudo apt-get install libasound2-dev swig
$ sudo pip install pygame
pygame 2.1.2 (SDL 2.0.16, Python 3.9.2)
旧環境の/home/pi/Pimoroni/pianohat 以下を複製
旧環境の/usr/local/lib/python2.7/dist-packages/midi以下を無理やり/usr/local/lib/python3.9/dist-packages 以下に複製
$ ./midi-piano.py
AttributeError: module 'midi.sequencer' has no attribute 'SequencerHardware'
現状、ここで中止
------------------------------------------------------------
■Rosegarden インストール
Ref.https://www.rosegardenmusic.com/
$ apt-cache search rosegarden | grep rosegarden
rosegarden - music editor and MIDI/audio sequencer
$ sudo apt-get install rosegarden
Rosegarden を実際に使用する際には、ラズパイにモニター、キーボード、マウスを接続しますが、
環境設定ですので、ノートパソコンからVNC接続して、Rosegarden を起動します。
デバイスリストを表示して確認します。
$ cd ~/Pimoroni/pianohat/python-midi/scripts
$ mididumphw.py
] client(128) "rosegarden"
] port(2) [r, w, sender, receiver] "external controller"
] port(1) [r, sender] "sync out"
] port(3) [r, sender] "out 1 - General MIDI Device"
] port(0) [w, receiver] "record in"
] client(129) "__sequencer__"
] client(14) "Midi Through"
] port(0) [r, w, sender, receiver] "Midi Through Port-0"
] client(0) "System"
] port(1) [r, sender] "Announce"
] port(0) [r, w, sender] "Timer"
一旦、Rosegardenを終了します。
midi-piano.py に 'rosegarden' を追記します。
$ cd ~/Pimoroni/pianohat/examples
$ vi ./midi-piano.py
......
supported = ['yoshimi','SunVox','rosegarden']
......
jackd の起動
Rosegardenは、同じコンピューター上の他のJACKアプリケーションとトランスポートを同期するためのJACKトランスポートメカニズムをサポートしています。
jackd をバックグランドで起動します。
$ jackd -dalsa -n4 -r44100 -p512 &
再度、rosegarden を起動します。
Piano Hat のサンプルコード midi-piano.py を起動します。
$ ./midi-piano.py
Rosegarden のスタジオ(S)→MIDIデバイスの管理(D)を開きます。
MIDI入力の有効な入力にある、130.0 __sequencer__:__port__(read)が Piano Hat です。
Piano Hat のラの鍵盤を押して、Rosegardenトランスポート(表示されていない場合は、表示→トランスポートの表示)画面をみてみると
IN に「A3 100」と表示され、ラ(A)の音が押されたのがわかります。
メイン画面でトラックを選択して右クリック→[マトリクスエディタを開く]で画面が開いたら、[ステップ録音]ボタンを押します。
Piano Hat の鍵盤を押すと、マトリクス上に音が追加されます。
音符を入力して、[巻き戻し]→[再生]を実行しても音は鳴りません。MIDI音源が必要です。
プラグイン音源の利用
Rosegardenではハードウェア/ソフトウェアMIDI音源の他に,DSSIのプラグイン音源を利用することができます。
一旦、rosegarden を終了します。
DSSI(Disposable Soft Synth Interface)は,LADSPAを利用して作られたプラグイン音源です。
このLADSPA(Linux Audio Developers Simple Plugin API)はLinuxにおけるサウンド合成のためのフレームワークです。
ここでは、fluidsynth-dssi を利用します。fluidsynth-dssiはサウンドフォントを利用するタイプのシンセサイザーです。
$ apt-cache search fluidsynth-dssi | grep fluidsynth-dssi
fluidsynth-dssi - DSSI wrapper for the FluidSynth SoundFont-playing synthesizer
$ sudo apt-get install fluidsynth-dssi
DSSIによるプラグイン音源をトラックに適用するには,トラックを選択して,
メイン画面左の「特別パラメータ」中段の「トラックパラメータ」で,
「再生パラメータ」の「デバイス」を「シンセサイザープラグイン」にします。
その下の「楽器」では1番から16番のチャンネルからひとつを指定します。
プラグイン音源の割り当ては「特別パラメータ」下段の「インストゥルメントパラメータ」で行います。
「シンセサイザー無し」と表示されているボタンをクリックすると,プラグインを指定するウィンドウが開きますので、
プラグインに「FluidSynth DSSI plugin」を指定します。
次に、fluid-soundfont をインストールします。
$ sudo apt-get install freepats fluid-soundfont-gm fluid-soundfont-gs
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libportaudiocpp0 uuid-dev
これを削除するには 'sudo apt autoremove' を利用してください。
提案パッケージ:
fluidsynth timidity
以下のパッケージが新たにインストールされます:
fluid-soundfont-gm fluid-soundfont-gs freepats
$ sudo apt autoremove
以下のパッケージは「削除」されます:
libportaudiocpp0 uuid-dev
サウンドフォントの読込みは,
「インストゥルメントパラメータ」の「エディタ」をクリック、「Load SoundFont...」をクリックして、
ファイル「/usr/share/sounds/sf2/FluidR3_GM.sf2」を指定します。
サウンドフォントがロードされるとウィンドウにサンプリングされたインストルメントの一覧が表示されます。
音色を選択して「Send Test Note」ボタンを押すと、音がでます。
マトリックスエディタで音符を打ち込んだ状態で[最初に戻す]→[再生]またはメイン画面の[表示]→[最初まで巻き戻し]→[再生/一時停止]で再生してみてください。
また、ひとつのプラグインチャンネルにはひとつのプラグイン音源を割り当てることができるため,全部で16のプラグインを同時に使うことができます。
JACK Audio Connection kit
イヤホンジャックからではなく、外部のDACなどから音を鳴らしたい場合には設定が必要です。
設定ファイルを直接操作するにはかなりの知識が必要になりますので、Jack Audio Connection Kit を使うと便利です。
Raspbian Stretch では標準でインストールされているようです。必要な場合はインストールしてください。
$ sudo apt-get install qjackctl
一応、ログインユーザを audio グループに追加しておきます。
$ sudo gpasswd -a pi audio
LXTerminal を開きます。
$ /usr/bin/qjackctl
[設定]→[Advanced]
「出力デバイス」は通常 (default) になっています。GPIOアダプタなどを使って、I2SでDACなどが接続されていると、それを選択することができます。
例) hw:sendrpihifiberry,0 (hw:1,0)
設定完了後、次回の手順で利用できます。
1. $ jackd -dalsa -n4 -r44100 -p512 &
2. rosegarden を起動
3. $ cd ~/Pimoroni/pianohat/examples
$ ./midi-piano.py
MIDI音源の利用
MIDI音源を利用するには、メイン画面の「スタジオ」→「MIDIデバイスの管理」をクリックして,MIDIポートを設定します。
ここでは、バックグランドで、ttymidi を動かしています。
$ ttymidi -s /dev/ttyUSB0 -b 38400 &
MIDI出力に、「ttymidi」が現れます。
USBでMIDI対応機器につなぐと利用できると思います。
ttymidi に関しては、「MIDI再生:FM音源YMF825+Arduino編」をご覧ください。
また、Piano Hat の鍵盤を押すと同時にイヤホンジャックから音を出したいときは、
Piano Hat のサンプルコード simple-piano.py と midi-piano.py をうまく合体させると実現できます。
【補足】
fluidsynth-dssiインストール後に、~/Pimoroni/pianohat/examples/simple-piano.py を実行してみると、音が汚れます。
下記のように、simple-piano.py を変更すると元に戻りました。
$ vi simple-piano.py
pygame.mixer.pre_init(44100, -16, 1, 512)
↓変更
pygame.mixer.pre_init(44100)
【参考資料】
・pimoroni/Piano-HAT
・第176回 Rosegardenで作曲する
・Rosegarden Wiki
|
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
Arduinoで学ぶ組込みシステム入門(第2版)
●Arduinoを使って組込みシステム開発を理解する
・ハードウェアやソフトウェアなどの基礎知識/
・設計から実装までを系統的に説明するモデルベース開発/
・Arduinoを用いた実際の開発例
最新 使える! MATLAB 第3版
◆◆すぐに「使える!」 全ページフルカラー!◆◆
・MATLAB R2022bに対応し、解説もより詳しく!/
・コマンド・スクリプトの例が豊富で、動かして学べる!/
・超基本から解説。これから使いはじめる人にぴったり!/
・全編フルカラー、スクリーンショットも豊富!
Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版
1.システム構築をインフラから始めるには/
2.ネットワークを構築する/
3.サーバーを構築する/
4.Webサーバーソフトをインストールする/
5.HTTPの動きを確認する/
6.プライベートサブネットを構築する/
7.NATを構築する/
8.DBを用いたブログシステムの構築/
9.TCP/IPによる通信の仕組みを理解する
C言語は第二の母国語: 独学学生時代から企業内IT職人時代に培った、独立のための技術とノウハウ 平田豊著
学生時代から独学でプログラミングをはじめ、企業内でデバイスドライバを開発し、そして独立後もたくさんのアプリケーション開発や技術書制作に携わってきた著者。その筆者が大事に使い続ける「C言語」の“昔と今”について、気づいたことや役立つ知識、使ってきたツールなどについて、これまで記してきたことを整理してまとめました。
本書では、現役プログラマーだけでなく、これからプログラミングを学ぶ学生などにも有益な情報やノウハウを、筆者の経験を元に紹介しています。
1冊ですべて身につくJavaScript入門講座
・最初の一歩が踏み出せる! 初心者に寄り添うやさしい解説
・最新の技術が身につく! 今のJavaScriptの書き方・使い方
・絶対に知っておきたい! アニメーションとイベントの知識
・プログラミングの基本から実装方法まですべて学べる
図解! Git & GitHubのツボとコツがゼッタイにわかる本
ソフトウェア開発では欠かすことのできないGit、GitHub。
これからGit、GitHubを使いたいという入門者の方でも、実際に手を動かしながら使い方を学べます。
C自作の鉄則!2023 (日経BPパソコンベストムック)
メーカー製のパソコンはスペックが中途半端で、自分が本当に欲しい機種がない――。そう思っている人には、ぜひ自作パソコンをお薦めします。自作パソコンのパーツは進化が速く、しかも驚くほど種類が豊富。価格も性能も、幅広く用意されているため、満足度100%の“自分だけの1台”を手に入れることができます。
Interface 2023年6月号
特集:第1部 フィルタ設計 基礎の基礎/
第2部 係数アプリや波形観測アプリで合点!FIR&IIRフィルタ作り/
第3部 配布プリント基板で体験!マイコンで動くフィルタ作り
日経Linux 2023年5月号
【特集 1】 AI時代の最強フリーソフト ~ 25のやりたいを実現!
【特集 2】 AWS、Azureのうまみを無料で体感!面倒なことはクラウドに任せよう
【特集 3】 新しいRaspberry Pi Cameraで遊んでみよう
【特集 4】 Linuxで旧型PCを復活! 1kg切るモバイルPCを「ChromeOS Flex」でChromebook化
ラズパイマガジン2022年秋号
特集:5大人気ボード 電子工作超入門
「半導体不足で在庫が不足し、電子工作のボードがなかなか買えない…」。そんな今にふさわしい特集を企画しました。5種の人気ボードにすべて対応した電子工作の入門特集です。「GPIO」や「I2C」を使った電子パーツの制御方法は、どのボードでも同じです。手に入れられたボードを使って、今こそ電子工作を始めましょう。
地方で稼ぐ! ITエンジニアのすすめ
学歴、理系の知識、専門スキル……全部なくてもITエンジニアになれる!
地方でも高収入でやりがいをもって働ける!ITエンジニアの魅力を一挙大公開
Raspberry Piのはじめ方2022
本書は、ラズパイやPicoの買い方やインストール、初期設定といった基本から、サーバー、電子工作、IoT、AIといったラズパイならではの活用方法まで、1冊でお届けします。
ラズパイをこれから始める方向けに、全36ページの入門マンガ「女子高生とラズベリーパイ」も巻末に掲載。これを読むだけでラズパイがどんなものなのか、すぐに分かって触れるようになります。
ハッカーの学校 IoTハッキングの教科書
生活にとけこみ、家電機器を便利にするIoT技術。
Webカメラなど、便利の裏側に潜むセキュリティの危険性をハッキングで検証。
専門家がパケットキャプチャからハードウェアハッキングまで、その攻撃と防御を徹底解説。
本書は2018年7月に刊行された「ハッカーの学校IoTハッキングの教科書」に一部修正を加えた第2版です。
攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング
本書は、経済産業省から2021年4月にリリースされた、IoTセキュリティを対象とした『機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き』の『別冊2 機器メーカに向けた脅威分析及びセキュリティ検証の解説書』をもとに、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説しました。
ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS…
全WEB媒体で効果バツグン!
カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術
プログラマーは世界をどう見ているのか 西村博之著
イーロン・マスク(テスラ)、ジェフ・べゾス(Amazon)、ラリー・ペイジ(Google)…etc.
世界のトップはなぜプログラマーなのか?
ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場!
高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。
DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。
作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。
Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。
この本では,ベイズ統計学のきほんをやさしく紹介していきます。
白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81
無水エタノールP 500mlx2個パック(掃除)
ケイバ(KEIBA) マイクロニッパー MN-A04
サンハヤト SAD-101 ニューブレッドボード
白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02
[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠
|