HOME | Raspberry Pi | ビジネス書籍紹介 | 2021-09-19 (Sun) Today's Access : 164 Total : 354158. Since 10 Sep. 2019

Piano Hat & Rosegarden
2020.02.13 / 2021.03.26更新

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アダプタ を挟むことで、他のデバイスも利用できます。
WINOGNEER ラズベリーパイ3モデルB、モデルB、A +、B +、Zero Transfer GPIO用の未組み立てのダブルGPIOアダプタ


私の愛用しているガス式のコードレスはんだコテなので使いやすいです。コテ先の加熱も早いです。
goot ガス式はんだこてセット GP-510SET


ガシガシ、はんだ付けをすると、こうなります。
L字型ヘッダピン、次に普通のヘッダーソケットの順番で取り付けないと、はんだ付けに苦労します。


これをRaspberry Pi 2 Model BのGPIOに被せてみました。ラズパイ2にはネットワーク接続用にUSB WiFiアダプタが取り付けられています。


その上に、Piano Hat を被せると、こうなります。


ここからは、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.

■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プロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
2020.01.05 第1回 abcjs 楽譜作成・演奏スクリプト
2020.01.09 I2S通信によるハイレゾ音源再生
2020.01.18 MIDI再生:FM音源YMF825+Arduino編
2020.01.24 FM音源YMF825+micro:bit編
2020.02.13 Piano Hat & Rosegarden
2020.03.18 テキスト読み上げ gTTS
2020.05.19 テキスト読み上げ AquesTalk pico LSI
2020.06.22 波形処理 第1回 音の波と三角関数
2020.07.22 波形処理 第2回 平均律と純正律
2020.08.26 波形処理 第3回 黒鍵と白鍵
2020.11.21 深層学習 第1回環境整備
2020.12.19 深層学習 第2回マルコフ連鎖・自動歌詞生成
2021.01.02 深層学習 第3回コード進行解析
2021.01.16 波形処理 第4回 コード演奏
2021.08.07 MIDI制御/Adafruit Music Maker
2021.08.23 MIDIフォーマット解析
2021.08.24 オーディオアンプ・スピーカー


ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場! 高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。 DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。 作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。

DIPスイッチで動作電圧を3.3Vと5Vに切り替えられるUNO互換ボード
KEYESTUDIO Plus Board for Arduino UNO R3 with Type-C USB Cable, 3.3V 5V 1.5A Output Current, More Powerful Controller Board USB-シリアルチップ:CP2102 / 動作電圧:5Vまたは3.3V(DIPスイッチ制御)/ 外部電源:DC 6-15V(9V推奨)/ デジタルI / Oピン:14(D0〜D13)/ PWMチャネル:6(D3 D5 D6 D9 D10 D11)/ アナログ入力チャネル(ADC):8(A0-A7)/ DC出力機能の各I / Oポート:20 mA / 3.3Vポートの出力能力:50 mA / フラッシュメモリ:32 KB(うち0.5 KBはブートローダーによって使用されます)/ SRAM:2 KB(ATMEGA328P-AU)/ EEPROM:1 KB(ATMEGA328P-AU)/ クロック速度:16MHz / オンボードLEDピン:D13

エレクトロクッキー Leonardo R3 ATmega32u4 ボード DIY Arduino工作用 - ピンクエディション


Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。 この本では,ベイズ統計学のきほんをやさしく紹介していきます。

Interface 2021年10月号
☆特集:~ 格好良さアップ! 機能&信頼性アップ ! ~「 3Dプリンタ & メカ設計入門 」
☆特集2:Pico達人への道…「 C/C++でMicroPython拡張 」


トランジスタ技術 2021年9月号
☆特集:~ 直流・交流・非接触・センサ微小電流の測定ノウハウ ~「電流を正しく測る技術」

トランジスタ技術スペシャル 2021年7月号 宇宙ロケット開発入門
これから開発・活用が進むと期待されている宇宙空間への交通・物流インフラとして、小型・低価格ロケットが注目を集めています。本書では、基本構造から制御メカニズムまで、小型宇宙ロケット開発の基礎知識を実例を交えて解説します。

日経Linux 2021年9月号
【特集1】おうち時間をLinuxデスクトップで楽しむ! Linux環境を作るワザ
【特集2】徹底図解で丸わかり! 「WSL2」入門   Windows 11の新機能を速報!
【特集3】IT自動化ツール AnsibleでWeb導入を自動化
【特集4】ラズパイで楽しむLinuxライフ 「今、会議中」と家族に伝えるプレートをPythonで作ろう


ラズパイマガジン2021年秋号
特集1 サクッと動くパーツ&ライブラリ総覧
特集2 ArduinoライブラリでラズパイPicoを動かす
特集3 古いラズパイをフル活用! Node-REDで 楽しい電子工作
特集4 空気の汚れをラズパイで検知しよう
特集5 ラズパイで楽しむLinuxライフ
特集6 NVIDIAのAIボードが6000円台に!
特集7 M5StickCで始める電子工作 iPhoneからサーボモーターを制御しよう


トランジスタ技術スペシャル 2021年 4月号 No.154「達人への道 電子回路のツボ」
初学者が実用的な電子回路を設計できるようになるためのポイントをまとめました。学校の教科書だけではつかめない基本電子回路やOPアンプ/トランジスタの使い方の実際を、いろいろな視点から解説しています。


Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品
【仕様概要】CPU:ARM 1.2GHz 4コア、GPU:2コア 3D・動画支援、RAM:1GB、ネットワーク:LAN/Wi-Fi/Bluetooth、インターフェース:USB/HDMI/オーディオ/GPIO(UART/I2C/I2S/SPI...)。

ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換 (3)


ESPr Developer 32
スイッチサイエンス(Switch Science)

協和ハーモネット UL1007 AWG24 耐熱ビニル絶縁電線 リール巻 100m 黒


白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81


サンハヤト TTW-203 テストワイヤ
ブレッドボードとスルーホール間の接続に便利なワイヤですブレッドボード用のオスピンと基板のスルーホール用のバネ性のある端子を組み合わせたテストワイヤです

無水エタノールP 500mlx2個パック(掃除)


ケイバ(KEIBA) マイクロニッパー MN-A04


熱収縮チューブφ1.5
印字無しで綺麗☆ シュリンクチューブ 絶縁チューブ 防水 高難燃性 収縮チューブ (2m, ブラック(黒))


サンハヤト SAD-101 ニューブレッドボード


白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02


【Amazon.co.jp限定】エーモン 電工ペンチ 全長約255mm (1452)


[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠


Copyright © 2011-2022 Sarako Tsukiyono All rights reserved®.