$30 off During Our Annual Pro Sale. View Details »

Spotify物理リモコンがほしい v0.2

Spotify物理リモコンがほしい v0.2

2022/5/26 Music LT Vol.2 登壇スライド

田中みそ

May 26, 2022
Tweet

More Decks by 田中みそ

Other Decks in Technology

Transcript

  1. Spotify物理リモコンがほしい v0.2
    田中みそ
    2022/5/26 Music LT Vol. 2

    View Slide

  2. 自己紹介
    田中 みそ (田中 大樹)
    Qiita: miso_develop
    Twitter: miso_develop
    Facebook: 田中みそ

    Music LT主催

    LINE API Expert

    IoT界隈やスマートスピーカー界隈に
    よくいます

    View Slide

  3. Spotify物理リモコンがほしい背景
    • 普段スマートスピーカーからSpotifyで音楽を流すけど、
    曲選択や音量調整といった操作は音声ではやりづらい
    • なのでWeb Playerを使ってPCから操作してるけど、
    PCのあるところに行かないといけなかったり、
    ウインドウ切り替えたりと地味にめんどくさい

    View Slide

  4. コンポのリモコンみたいなので操作したい
    理想はコンポ(死語?)のリモコン感覚で物理ボタンを
    ポチポチしてSpotifyをコントロールできたらいいな

    View Slide

  5. (余談)こんなのもあるらしい
    https://www.itmedia.co.jp/news/articles/2202/23/news041.html より

    View Slide

  6. ソフトウェア実装

    View Slide

  7. Spotify Web API
    https://developer.spotify.com/documentation/web-api/reference/#/operations/transfer-a-users-playback より

    View Slide

  8. Spotify Web API
    • シンプルなREST API
    • Spotify for Developersにログインするとプロジェクト
    (APP)を作成でき、Client ID/Secretが発行される
    • 曲情報やアルバム情報取得APIなんかがあり、
    Player APIも一通り揃ってる
    • ただし無料プランだとPlayer APIは動かない…

    View Slide

  9. (余談)初回3ヶ月無料キャンペーン中!
    https://www.spotifypremium.jp/ より

    View Slide

  10. Web Consoleがとても便利
    https://developer.spotify.com/console/get-user-player/?market=ES&additional_types= より

    View Slide

  11. Web Consoleがとても便利
    https://developer.spotify.com/console/get-user-player/?market=ES&additional_types= より

    View Slide

  12. Web Consoleがとても便利
    https://developer.spotify.com/documentation/general/guides/authorization/code-flow/ より

    View Slide

  13. Use Caseに合わせたクラスを作成
    Use Case
    • 再生/停止
    • 次の曲へ
    • 前の曲へ
    • 音量アップ
    • 音量ダウン
    • リピート
    • シャッフル
    https://github.com/thelinmichael/spotify-web-api-node より

    View Slide

  14. ハードウェア実装

    View Slide

  15. 物理コントローラーどうするか
    • ひとまずM5Stackでプロトタイプ実装
    • 3ボタンあるので組み合わせでUse Caseは網羅できる
    • 前の曲へ A
    • 再生/停止 B
    • 次の曲へ C
    • 音量ダウン A B
    • 音量アップ B C
    • リピート A C
    • シャッフル A B C

    View Slide

  16. 物理コントローラーどうするか

    View Slide

  17. プロトタイプのシステム構成
    Web API
    JavaScriptでマイコンを制御できるIoTフレームワーク。
    M5Stackから直接Web API叩けるけど、Cで実装し
    たくなかったのでopnizを使ってTypeScriptで実装。
    ボタン信号

    View Slide

  18. 本番構成
    マイコン: M5ATOM or M5Stamp
    ソフトウェア実装:Spotify Web API & opniz
    物理ボタン:どうしよう…
    https://www.switch-science.com/catalog/7360/ より

    View Slide

  19. 物理ボタン案その1
    • 4x3キーパッド作成キット
    • 350円
    • 小さすぎるかも?
    https://akizukidenshi.com/catalog/g/gK-12229/ より

    View Slide

  20. 物理ボタン案その2
    • 100均のUSBテンキーボード
    • 330円!
    https://note.com/tomorrow56/n/n9e9a02586d76 より
    https://lang-ship.com/blog/work/usb-numeric-keypad/ より

    View Slide

  21. 物理ボタン案その3
    • 謎の赤外線リモコン
    • 多分昔買った電子パーツ詰め合わ
    せみたいのについてきたやつ
    • ボタンいっぱいあるし最適解かも

    View Slide

  22. 物理ボタン案その3
    https://lang-ship.com/blog/work/m5sitckc-daiso-remote-led/ より
    https://akizukidenshi.com/catalog/g/gM-07245/ より

    View Slide