Upgrade to Pro — share decks privately, control downloads, hide ads and more …

New "Type" system on PicoRuby

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

New "Type" system on PicoRuby

PicoRubyを使った"Type"システムを作ったので紹介します。これはまったく新しくて、ダイナミックで、そしてとても楽しい"Type"システムです。このトークではその紹介と、どのようにデザインしたのかをお話ししながら、楽しさをお届けしようと思います。

https://regional.rubykaigi.org/sekigahara01/talks/pocke/

Avatar for pocke

pocke

May 30, 2026

More Decks by pocke

Other Decks in Programming

Transcript

  1. 名乗り 藤原 桒原 備中守 歩通鍵 仁雄 (ふじわらの くわばら びっちゅうのかみ ぽつけ

    まさたか) 備中(現在の岡山県)在住 RBSメンテナ Rubyで静的型を扱うためのライブラリ PicoRubyファン 株式会社コードタクト勤務 趣味: ピアノ / 園芸 / 車 / 城巡り 🏯Tips: 岡山城は黒い外壁から別名「烏城」とも呼ばれる 🏯
  2. Scrimonia scrivere (書く) + armonia (ハーモニー) MIDIキーボードを、文字入力のキーボードとするプロダクトを作成しました PicoRubyで実装 Raspberry Pi

    Pico上で動作 MIDIキーボードとPCの間に入って、MIDI入力を文字入力に変換する https://github.com/pocke/scrimonia (トーク終了後に公開予定)
  3. Rubyでのキーマップ設定 設定ファイルはRubyで記述 MIDIのNote(鍵盤の入力)から文字へのマップを定義する require 'scrimonia' include Scrimonia::Notes include Scrimonia::Keycodes s

    = Scrimonia.new s.add_layer :default, { C3 => KC_A, # C3 を弾くとAが入力される } Rubyファイルで設定を書くという点はprk_firmwareを参考にしています 🏯Tips: 津山城近くのつやま自然のふしぎ館は、初代館長のホルマリン漬けが展示されていることで有名 🏯
  4. 和音 複数の音を同時に打鍵した時のキー出力を定義できる s.add_layer :default, { [B3, C4] => KC_SPC, #

    B3, C4を同時に弾くと、スペースが入力される B3 => KC_G, # 当然単音との同居も可能 C4 => KC_H, }
  5. レイヤー切り替え 複数のレイヤーを切り替えられる s.add_layer :default, { # ... # 3つのキー同時押しで別のレイヤーに切り替え [C3,

    Cs3, D3] => Scrimonia::Action::LayerChange.new(:fn, :switch), } s.add_layer :fn, { # ... # もとのレイヤーに戻るキー [C3, Cs3, D3] => Scrimonia::Action::LayerChange.new(:default, :switch), }
  6. MIDI出力 当然MIDIキーボードとしても使える s.add_layer :default, { C4 => C4, # C4を弾いたときはそれをそのまま出力する

    D4 => D5, # 別の音に振り替えることも可能 } 🏯Tips: 今年2026年の秋に、焼失した首里城正殿の復元が完成する予定らしい。早くない!? 🏯
  7. Scrimonia 開発タイムライン 2024-12-19: Interface 2022年10月号を注文 Raspberry Pi Pico特集 2024-12-20: Raspberry

    Pi Pico と部品諸々を注文 この頃からScrimoniaの原形となるイメージがあった 年末年始にやるぞという気持ちはありつつ、Lチカだけして放置 2025-09-07: 無職で時間があったので、ChatGPTにScrimoniaの開発相談 ChatGPTに提案された回路は、現在のScrimoniaのものより複雑だった なんか難しそうで実装までたどり着けず… 2026-02-21: 出雲Ruby会議01で沼から手が伸びてきた背中を押される これが本当に転換点でした
  8. Scrimonia 開発タイムライン (2) 2026-02-24: picorubyに初PRを出す Steepアップデートの課題の第一歩 出雲Ruby会議の3日後! 2026-02-25: Scrimonia first

    commit 2026-03-01: 基本のコンセプトであるMIDI-文字入力変換は動くように 福岡Rubyist会議05の翌日で、岡山に帰ってきてすぐ開発していた 2026-03-09: 関ケ原Ruby会議のCFPに応募 出雲で背中を押されてからは、すごい速度で開発していました