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
データ分析基盤の信頼を支える視点と設計
yuki_saito
2
750
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
300
テストコードのないプロジェクトにテストを根付かせる
tttol
0
220
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
0
120
RubyでRuby拡張を書いたらRubyより35倍速になったってどういうこと??
kazuho
3
850
Cloud Run のアップデート 触ってみる&紹介
gre212
0
220
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
160
Javaコミュニティをもっと楽しむための9箇条
takasyou
0
430
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
290
責任あるソフトウェアエンジニアリングの紹介4章・5章 / RSE_Ch4-5
ido_kara_deru
0
360
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
130
食べログのサーキットブレーカー導入を振り返って
atpons
1
150
Featured
See All Featured
Building an army of robots
kneath
306
46k
Claude Code のすすめ
schroneko
67
220k
Skip the Path - Find Your Career Trail
mkilby
1
130
So, you think you're a good person
axbom
PRO
2
2k
A designer walks into a library…
pauljervisheath
211
24k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
130
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Typedesign – Prime Four
hannesfritz
42
3.1k
It's Worth the Effort
3n
188
29k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
The browser strikes back
jonoalderson
0
1.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
820
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!