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
Composerだって音楽を奏でたい
Search
hideki kinjyo
PRO
November 07, 2026
Programming
13
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Composerだって音楽を奏でたい
PHPMatsuri Reboot in Hackone での成果発表LTです
hideki kinjyo
PRO
November 07, 2026
More Decks by hideki kinjyo
See All by hideki kinjyo
phperだってパンチカードでコーディングしたい
o0h
PRO
0
580
Symfonyが 簡単にAI agentになる
o0h
PRO
1
160
yield再入門 #phpcon
o0h
PRO
0
1.9k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
520
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
3
420
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
400
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
690
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
310
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
1.1k
Other Decks in Programming
See All in Programming
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
5.1k
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.2k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
300
Next.js: The final boss of Web Performance
guaca
0
380
AmebaブログはKMPから卒業します
kmars0605
0
330
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.2k
SODA - FACT BOOK(EN)
sodainc
1
210
小さなアプリを作って公開するまで
onozaty
0
130
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
620
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
14
11k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
550
Crafting Experiences
bethany
1
430
Build your cross-platform service in a week with App Engine
jlugia
234
19k
How to make the Groovebox
asonas
2
2.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
900
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
760
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.2k
The Cost Of JavaScript in 2023
addyosmani
56
10k
Transcript
Composerで音鳴らし PHPMatsuri Reboot in Hackone Hideki Kinjyo GitHub: o0h /
X: @o0h_ [公開用] v1.0.0
None
3 He is (a) Composer 彼はPHPライブラリの パッケージマネージャーです
None
https://forbesjapan.com/articles/detail/75779 (2026年11月8日 閲覧)
それは指揮をしている最中の指揮者です。 作曲家ではありません。 https://github.com/composer/composer/issues/1713 (2026年11月8日 閲覧)
7 閑話休題
8 [IMO] 彼も音楽を 奏でたいんじゃないか?
9 彼も音楽を 奏でたいんじゃない か? (パッケージのマネージ・・・もう1つの人生・・)
〜音が鳴るタイプのcomposer installをしよう〜
11 [demo] composer installで 音がなります
色々なイベント Composer Plugin 音を作る 音Server UDPパケット
音の送信 $osc = new UdpOscClient( '127.0.0.1', 9000, ); $osc->send( '/drum/snare',
[0.8, 0.22], ); • Open Sound Control • という規格(に乗っかった) • 「メッセージ」と 「引数」で構成される
音の送信 for ($n = 0; $n < $count; $n++, $i++)
{ $t = $i / $sampleRate; $phase += 2 * M_PI * (46 + 170 * exp(-$t / 0.028)) / $sampleRate; $body = sin($phase) * exp(-$t / $decayConstant); $click = self::noise() * exp(-$t / 0.0015) * 0.35; $fade = min(1.0, ($length - 1 - $i) / self::FADE_SAMPLES); $sample = tanh(self::DRIVE * $body + $click) * $fade * $gain; $left[$n] += $sample; $right[$n] += $sample; } 受け 取っ た音 を波 形 デー タに する
音の再生 • FFIで良い感じにやる foreach ($buffer->samples as $i => $sample) {
$this->samples[$i] = $sample; } $result = $this ->portAudio->Pa_WriteStream( $this->stream[0], $this->samples, intdiv( count($buffer->samples), $this->format->channels), ); • • PortAudio
16 [demo] いくつか鳴らすね
17 [omake] PHP Unit Extension
おしまい! お付き合いいただき ありがとうございました!!