Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ve...
Search
Masaya Kudo
PRO
June 27, 2025
Technology
2
930
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
Masaya Kudo
PRO
June 27, 2025
Tweet
Share
More Decks by Masaya Kudo
See All by Masaya Kudo
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
2
1.2k
250830 RubyKaigi 2025 follow up 株式会社iCAREスポンサーLT「健康診断 follow up」
msykd
PRO
1
220
250825 ko.rb #1「京王線の連続立体交差事業を学ぼう」
msykd
PRO
1
70
250611 Gotanda.rb #62「Ruby技術書執筆助成金公募に採択してもらった」
msykd
PRO
1
94
250428 ko.rb #0「Ruby技術書執筆助成金公募に応募した」
msykd
PRO
0
100
240612「縁を紡ぐ」@ROSCAFE TECH NIGHT #8
msykd
PRO
0
220
240524「開発生産性を、もっと誇れる組織へ」という方針を 9ヶ月前に掲げたCTOの振り返り
msykd
PRO
0
720
Other Decks in Technology
See All in Technology
いまさら聞けない ABテスト入門
skmr2348
1
190
stupid jj tricks
indirect
0
7.8k
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
1.7k
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
430
Azure SynapseからAzure Databricksへ 移行してわかった新時代のコスト問題!?
databricksjapan
0
120
全てGoで作るP2P対戦ゲーム入門
ponyo877
3
1.3k
バイブコーディングと継続的デプロイメント
nwiizo
2
390
SOC2取得の全体像
shonansurvivors
1
350
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
110
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
130
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
830
Pythonによる契約プログラミング入門 / PyCon JP 2025
7pairs
5
2.4k
Featured
See All Featured
The Language of Interfaces
destraynor
162
25k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Why Our Code Smells
bkeepers
PRO
339
57k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
4 Signs Your Business is Dying
shpigford
185
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Building an army of robots
kneath
306
46k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Transcript
2025/06/27 ؔRubyձٞ08 લࡇ RejectKaigi ΫυϚαϠ(X: @masaya_dev) DJ on Ruby Ver.0.1
I am a DJ. Since 2009.06.20 Played 300+ gigs🎶
I Played RubyMusicMixin 2024
I am a Software Engineer. Since 2010.04.01 Contributed to 50+
applications💻
ؔRubyձٞ08ͷςʔϚ Rubyͱ࡞Ζ͏
RubyKaigi 2025ޙͷࣗ RubyͰͳʹ͔࡞Γ͍ͨ…!
RubyKaigi 2025ޙͷࣗ ͔ͯ͠͠RubyͰDJɺͰ͖ΔͷͰʁ
ͻΒΊ͖Λ͘Ε͖͔͚ͨͬ
ChatGPTʹฉ͍ͯΈͨ ͳΜ͔͍͚ͩͦ͏ͳงғؾ…?
Δͧʂ CFPग़͢͜ͱͰࣗΛ͍ࠐΉɺCFPۦಈ։ൃ
DJ on Ruby Ver.0.1
Tonight’s Playlist DJιϑτΣΞͱ ΦϦδφϧDJιϑτΣΞʮVibesʯ ʮVibesʯDJ࣮ԋσϞ ʮVibesʯͷ͘͠Έ ࡞ͬͯΈͯͷؾ͖ɺࠓޙͷల
About me ΫυϚαϠ(X: @masaya_dev) DJྺ16ɺWebΤϯδχΞྺ15 ͖ͳژͷόϯυ: ROTTENGRAFFTYɺ10-FEET ͖ͳژͷϏʔϧ: ϫχͷྦ(ژৢxژϏΞϥϘ) גࣜձࣾiCARE
CTO
What's about DJ Software?
DJιϑτΣΞͱ ओʹPCͰDJΛߦ͍͍ͨ࣌ʹར༻͢ΔιϑτΣΞɻ ָۂΛ୳ͨ͠Γྲྀͨ͠ΓΤϑΣΫτ͔͚ͨΓɻ Serato,Traktor,rekordboxͳͲ͍͔ͭ͘ϒϥϯυ͕͋Δɻ ݱͰDJίϯτϩʔϥʔͱηοτͰ͏͜ͱ͕جຊɻ
My DJ Gear… PC: Mac Book Air M3 DJ Software:
Serato DJ Pro DJ Controller: AKAI AMX Headphone: V-MODA Crossfade LP2
Vibes
Vibes 2τϥοΫ࠶ੜ ΫϩεϑΣʔμʔࡌ wav,mp3,aac(m4a)࠶ੜՄೳ ܗදࣔ BPMղੳ ςϯϙௐ ΤϑΣΫλʔ(HPF, LPF) 8ϙΠϯτHot
Cues
Vibes Demo Time
Vibes: How It Works?
2 Mix Architecture Ruby x Rust
UIɾϏδωεϩδοΫ Ruby(GTK4) ΞʔΩςΫνϟਤ FFIڥք Ruby(Ruby-FFI) ΦʔσΟΦΤϯδϯ Rust(PortAudio) UIRuby ԻॲཧRust
ٕज़બఆͷഎܠ Ruby onlyͰਐΊ͍ͨͱࢥ͍͕ͬͯͨɺChatGPTͱͷนଧͪͰRustͱͷϋΠϒϦουΛΦεεϝ͞Εͨ ࠷ऴతͳRustͷબఆཧ༝ҎԼͷ3ͭ • ϝϞϦཧͷ༧ଌՄೳੑ͕ߴ͍(GC͕ແ͍) • ԻॲཧܥͷϥΠϒϥϦ͕ॆ࣮͍࣮ͯͯ͠ݱՄೳੑ͕ߴͦ͏ • FFI(Foreign
Function Interface)࣮ະܦݧͩͬͨͷͰָͦ͠͏
DJͰ1൪ා͍͜ͱ Ի͕ࢭ·Δ
PCDJͰͷԻͷྲྀΕ(Ұྫ) ָۂϑΝΠϧ (Իσʔλ) ϦΞϧλΠϜՃ ΤϑΣΫτ ϐονมͳͲ ݱ࣮ੈքʹग़ྗ ΦʔσΟΦ ΠϯλʔϑΣʔε DJιϑτΣΞ
DJίϯτϩʔϥʔ
Իσʔλͷߏ CDͷԻ࣭ن֨(44.1kHz)ͰαϯϓϦϯά͞Εͨ Իσʔλͷ෦Πϝʔδ [αϯϓϧ1][αϯϓϧ2][αϯϓϧ3]…[αϯϓϧ44,100] = 1ඵͷԻ 23μs 23μs 23μs
ϦΞϧλΠϜՃߴϧʔϓ [Ճࡁαϯϓϧ1] → [Ճࡁαϯϓϧ2]→[Ճࡁαϯϓϧ3]… 23μs 23μs 23μs ݩσʔλͱಉ༷ʹՃσʔλ23μsִؒͰ ΦʔσΟΦΠϯλʔϑΣʔεʹ͞ͳ͍ͱԻ్͕Εͯ͠·͏ (ՃॲཧΛ࣮֬ʹ23μsҎʹऴ͑Δඞཁ͕͋Δ)
[αϯϓϧ1] ↓ [αϯϓϧ2] [αϯϓϧ3] Ճ ↓ Ճ ↓ Ճ
GCศར͕ͩɺෆ͖ͳέʔε͋Δ [Ճࡁαϯϓϧ1] → [Ճࡁαϯϓϧ2]]… 23μs 100μs RubyͰ࣮ͨ͠߹ɺGCʢΨϕʔδίϨΫγϣϯʣͷׂΓࠐΈʹΑΓԻ్͕Εͯ͠·͏ϦεΫ GCͰΑ͠ͳʹϝϞϦղ์ͯ͘͠ΕΔͷศར͕ͩɺݫ֨ͳεϧʔϓοτ͕ඞཁͳ߹σϝϦοτʹ [αϯϓϧ1] ↓
[αϯϓϧ2] Ճ ↓ GCൃੜ ΑͬͯԻॲཧϝϞϦཧΛݫ֨ʹͰ͖ΔRustΛ࠾༻ɺGUIRubyͰָͭ͘͘͠Δͱ͍͏Ξϓϩʔνʹ
Ruby-FFIͰRuby x Rust࿈ܞ f fi .rb mixer.rs audio_engine.rb
Ruby/GTK4ͰGUI։ൃ
Vibes: How to Make?
Coding Style Vibe Coding with Claude Code
(CFPஈ֊Ͱఆ͍ͯͨ͠)Vibes 2τϥοΫ࠶ੜ ΫϩεϑΣʔμʔࡌ wav,mp3,aac(m4a)࠶ੜՄೳ ܗදࣔ BPMղੳ ςϯϙௐ ΤϑΣΫλʔ(HPF, LPF) 8ϙΠϯτHot
Cues Claude Codeͷ͓͔͛Ͱ ΊͬͪΌਐΜͩ
࡞ͬͯΈͯͷؾ͖ ͜Ε·ͰԿؾͳ͍ͬͯͨ͘طͷDJιϑτΣΞͷΫΦϦςΟͷߴ͞ʹؾͮ͘ DJιϑτΣΞ։ൃΛ௨༷ͯ͠ʑͳΞϧΰϦζϜΛֶΔ • ܗදࣔBPMݕग़͢ΔͨΊͷFFT(ߴϑʔϦΤม) • ςϯϙௐͷͨΊͷWSOLAΞϧΰϦζϜ GTKɺRubyͰGUIΞϓϦέʔγϣϯखܰʹ࡞Εָ͍ͯ͠ FFIʹΑͬͯݴޠ͝ͱͷదࡐదॴ͕બΔͷૉΒ͍͠ Claude
Codeֵ໋ɺ1ؒ͘Β͍͔͔Δͱࢥ͍ͬͯͨ։ൃ͕1ϲ݄ͰऴΘͬͨ
ࠓޙͷల DJίϯτϩʔϥʔΛࣗ࡞ͯ͠࿈ܞ VibesΛૢΔAI DJΤʔδΣϯτ։ൃ
໌ָ͠Έ·͠ΐ͏ Thank you!