Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rubyで理解する音響信号処理 音をふわっと立ち上げる編 / Audio Signal P...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
5hun
October 28, 2026
9
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyで理解する音響信号処理 音をふわっと立ち上げる編 / Audio Signal Processing in Ruby, Part: Soft Attack Envelopes
Gotanda.rb#70 LT
5hun
October 28, 2026
More Decks by 5hun
See All by 5hun
Rubyで理解する音響信号処理 ADSR編 / Audio Signal Processing in Ruby, Part: ADSR
5hun
1
52
2026年、OSSコントリビュート初心者の歩き方 〜軽い一歩を、軽いままにしないために〜 / oss-contribution-for-beginners-2026
5hun
0
1.6k
Sine Wave By Ruby
5hun
1
80
Rubyと演奏したい〜その第一歩〜.pdf
5hun
1
90
Array#forty_two
5hun
0
95
与信管理を形にする: Ruby の柔軟性が支える高速データ収集・自動化基盤
5hun
1
430
ぼっちが秘める可能性〜孤高のRubyistが語る交流会サバイバル術〜
5hun
1
70
君もRailsもアップグレード!
5hun
1
30
完璧主義にこだわり続けるとシステム開発は不幸になると思った
5hun
0
53
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
640
Designing Powerful Visuals for Engaging Learning
tmiket
1
620
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
So, you think you're a good person
axbom
PRO
2
2.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Embracing the Ebb and Flow
colly
88
5.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
Transcript
Ruby 理解する音響信号処理 音をふわっと立ち上げる編 で Gotanda.rb #70
•楽器のような 然界の をプログラミン グで再現 • 々考慮しないといけないことがある • アナログ信号からデジタル信号へ 量変化←今 •
のテーマ •倍 • 量や倍 の揺れ 音 自 日 音 • etc 音 音 色 音 今日話したいこと
音 •楽器の は、鳴り始めから消えるまで、 量が変化する •この「時間による 量の変化」を「エン ベロープ」と呼ぶ 音 音 楽器の音
エンベロープにはパターンがある 日 立 立 •急に ち上がってすぐ消える(ピアノ、 打楽器など) •ふわっと ち上がって伸ばして消える (管楽器など)←今
のテーマ
•少し待ってから、なめらかに ち上がる 音 立 大 • ち上がってからはすぐに最 量に到 達し、 定時間それを保つ
•最後は滑らかに0になる(ブツ切りにな らない) 一 立 今日作るエンベロープ 今日作るエンベロープ
最初に聴き比べをしましょう •サイン波(シンプルな )を2回鳴らしま す •1回 :そのまま •2回 :エンベロープを追加し、 がりと終わりを加 ち上
立 音 工 目 目 • 鳴り始めと終わりを意識して聞いてみてください
• 量が最後まで 一 音 DEMO サイン波(440Hz) 定で、唐突に切れる
DEMO エンベロープを追加した サイン波
音 Rubyで実装するには • 量の変化を3つの区間に分けて作る • ①:アタック • ②:サステイン • ③:リリース
① ② ③
前提:コンピュータは、音を「点の集まり」で表す •現実の :時間が途切れずに続く 一 音 音 •コンピュータの :時間を 定の間隔で 区切り、点(サンプル)で表す
0:準備(秒数をサンプル数に変換) 長 •それぞれの区間の さを引数「秒」で指 定する •1秒あたりのサンプル数に引数をかけて変 換
•アタックのスタート時間 = 指定した遅延 時間 • 量を0から最 まで上げていけばよい 入 •経過時間を cos
に 量を計算する 大 音 音 1:アタックタイムの実装 れて、各サンプルの
補足:Math.cos •引数をラジアンで指定する • https://docs.ruby-lang.org/ja/latest/method/Math/ m/cos.html •滑らかなS字のグラフになる
• ち上がりが終わってから、消え始める までの区間 • 量を変化させずに保てば良い •区間内のすべてのサンプルに同じ れる 音 音 立
入 2:サステインの実装 量を
•サステインが終わってから、 が消える までの区間 • 量を最 から0まで下げていけばよい れて、各サンプルの 音 入 •経過時間を
cos に 量を計算する 大 音 音 3:リリースの実装
•楽器の を再現する 法の つを説明 した • のまわりの のしくみを、Ruby で書い て確かめるのは楽しい
一 音 手 音 色 • プログラムに落とし込むことで の理解が深くなる 音 身 まとめ