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
1.4k
2
Share
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
Masaya Kudo
PRO
June 27, 2025
More Decks by Masaya Kudo
See All by Masaya Kudo
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
2
1.7k
250830 RubyKaigi 2025 follow up 株式会社iCAREスポンサーLT「健康診断 follow up」
msykd
PRO
1
300
250825 ko.rb #1「京王線の連続立体交差事業を学ぼう」
msykd
PRO
1
110
250611 Gotanda.rb #62「Ruby技術書執筆助成金公募に採択してもらった」
msykd
PRO
1
130
250428 ko.rb #0「Ruby技術書執筆助成金公募に応募した」
msykd
PRO
0
140
240612「縁を紡ぐ」@ROSCAFE TECH NIGHT #8
msykd
PRO
0
310
240524「開発生産性を、もっと誇れる組織へ」という方針を 9ヶ月前に掲げたCTOの振り返り
msykd
PRO
0
780
Other Decks in Technology
See All in Technology
組織の中で自分を経営する技術
shoota
0
210
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
300
Agentic Design Patterns
glaforge
0
260
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
290
Kaggle未経験社員をメダリストに育てる「AIドラゴン桜」
lycorptech_jp
PRO
0
650
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
0
500
Generative UI × A2UI で AI エージェントを作った話 AI-DLC も使ってみた!
kmiya84377
1
270
まだ道半ば、AI-DLCを歩み始めている話
news_it_enj
2
210
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
160
Dynamic Workersについて
yusukebe
1
370
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
920
JJUG CCC 2026 Spring AI時代の開発こそ標準化を武器に! ― 方式・プロセス・プラットフォームの標準化
s27watanabe
2
600
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.1k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Accessibility Awareness
sabderemane
1
130
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
Building AI with AI
inesmontani
PRO
1
1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
74k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
200
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
270
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!