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
7
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
570
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
680
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
310
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
1.1k
Other Decks in Programming
See All in Programming
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
280
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
490
Getting Started with Vibe Coding
miccheng
0
180
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.1k
SODA - FACT BOOK(EN)
sodainc
1
200
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
170
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
380
ChromeでローカルLLM
ryu1013
0
190
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
190
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
1
150
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
180
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
290
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
5
5.7M
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
600
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.7k
Music & Morning Musume
bryan
48
7.5k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Designing for humans not robots
tammielis
254
26k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
The untapped power of vector embeddings
frankvandijk
2
2k
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
おしまい! お付き合いいただき ありがとうございました!!