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
740
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
250611 Gotanda.rb #62「Ruby技術書執筆助成金公募に採択してもらった」
msykd
PRO
1
87
250428 ko.rb #0「Ruby技術書執筆助成金公募に応募した」
msykd
PRO
0
91
240612「縁を紡ぐ」@ROSCAFE TECH NIGHT #8
msykd
PRO
0
200
240524「開発生産性を、もっと誇れる組織へ」という方針を 9ヶ月前に掲げたCTOの振り返り
msykd
PRO
0
710
Other Decks in Technology
See All in Technology
手動からの解放!!Strands Agents で実現する総合テスト自動化
ideaws
3
410
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
160
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
250
2025-07-31: GitHub Copilot Agent mode at Vibe Coding Cafe (15min)
chomado
2
270
Mambaで物体検出 完全に理解した
shirarei24
2
100
Recoil脱却の現状と挑戦
kirik
3
480
robocopy の怖い話/scary-story-about-robocopy
emiki
0
420
[MIRU25] NaiLIA: Multimodal Retrieval of Nail Designs Based on Dense Intent Descriptions
keio_smilab
PRO
1
150
Tableau API連携の罠!?脱スプシを夢見たはずが、逆に依存を深めた話
cuebic9bic
2
160
公開初日に個人環境で試した Gemini CLI 体験記など / Gemini CLI実験レポート
you
PRO
3
1.1k
Wasmで社内ツールを作って配布しよう
askua
0
160
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ @ OpenTelemetry Meetup 2025-07
getty708
0
330
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
860
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
For a Future-Friendly Web
brad_frost
179
9.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Typedesign – Prime Four
hannesfritz
42
2.7k
Become a Pro
speakerdeck
PRO
29
5.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Site-Speed That Sticks
csswizardry
10
730
Building Applications with DynamoDB
mza
95
6.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!