郷ひろみとリッキーマーチンの競演
[今回用意したもの]
SPRESENSEメインボード[CXD5602PWBMAIN1]
https://www.switch-science.com/catalog/3900/
B-stem PDA01 SPRESENSE用機能拡張ボード
https://www.switch-science.com/catalog/5687/
KIOXIA(キオクシア) 旧東芝メモリ microSDHCカード 32GB
https://www.amazon.co.jp/dp/B08PTNWQ6P?aaxitk=a8f1b316576d3af7dc8db832d10d5cd9&smid=AN1VRQENFRJN5&ref=dacx_dp_7467415030103_8217637380303&th=1
あと、楽曲 2曲は各自、編集可能なMP3とかで入手してくださいね。
GOLDFINGER'99
郷ひろみ
https://www.sonymusic.co.jp/artist/HiromiGo/discography/SRDL-4643
Livin' la Vida Loca
リッキー・マーティン
https://music.oricon.co.jp/php/music/MusicTop.php?music=26679
[じゃあ、やってみよう!]
で、それぞれの曲を聞いてみますと…。
おお、リッキーの方が前奏がちょっと長い…。
そして、リッキーの方がほんのちょっとだけ早い…。
ってことで、まいどおなじみの、Audacityで前奏の位置合わせ…。
※今回はピッチは変えませんでした。
Audacity
https://www.audacityteam.org/
位置の合った2つのMP3ファイルを、Spresense の Dual Playerで再生。
https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_mp3_dual_players
これで、まずは、同時再生ができるようになった。
これを何らかのセンシングによって各プレーヤーごとの音量を調整するようにしてみる。
今回は、ロームさんのボードの加速度を選択。
https://www.chip1stop.com/view/searchResUpt/InventryInfo?unqPartId=ROHM*0085974&unqPartNm=SPRESENSE-SENSOR-EVK-701&keyword=SPRESENSE-SENSOR-EVK-701&partId=ROHM-0170579
この中の加速度を使って音量を切り替えてみます。
自分が持っているボードは古いので、KX122-1037 が載っています。
なので、includeとインスタンス生成は、以下。
#include <Wire.h>
#include <KX122.h>
KX122 kx122(KX122_DEVICE_ADDRESS_1F);
で、setupの先頭で、
void setup()
{
Wire.begin();
kx122.init(); //TODO: Error Handling.
と初期化します。
dual_players.ino は、それぞれのPlayerが別なタスクになっているので、
loop() の中は、何もないのですが、ここに、加速度のセンシングとそれに合わせたPlayerの音量調整を実装します。
今回、動画にあるように、基板上面に垂直、GPSのアンテナのある方向を軸に回転させるので、
ACCのX軸の値をベースに調整しました。
※傾きと音の調整はファイルに合わせてやってもらうのが良いです。
void loop()
{
byte rc;
float acc[3] = {0,0,0};
/* Change mixing ratio from acc */
rc = kx122.get_val(acc);
if (rc == 0)
{
int player0_db = -80 + acc[0] * 80;
int player1_db = -80 - acc[0] * 80;
printf("player0 db = %d \n", player0_db);
printf("player1 db = %d \n", player1_db);
theAudio->setVolume(-80, player0_db, player1_db);
}
usleep(100000);
}
とすることで、簡単に競演できました!
投稿者の人気記事
-
Interested_Spresense
さんが
2022/02/26
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する