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
510
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
85
250428 ko.rb #0「Ruby技術書執筆助成金公募に応募した」
msykd
PRO
0
86
240612「縁を紡ぐ」@ROSCAFE TECH NIGHT #8
msykd
PRO
0
200
240524「開発生産性を、もっと誇れる組織へ」という方針を 9ヶ月前に掲げたCTOの振り返り
msykd
PRO
0
700
Other Decks in Technology
See All in Technology
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
4
3.7k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
110
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
810
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.1k
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1.6k
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
390
Geminiとv0による高速プロトタイピング
shinya337
0
260
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
960
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
230
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
2
6.4k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Automating Front-end Workflow
addyosmani
1370
200k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
4 Signs Your Business is Dying
shpigford
184
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
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!