Submit Search
Upload
Introducing libpd -Pdをアプリのサウンドエンジンに-
•
13 likes
•
7,264 views
Yoichi Hirata
Follow
ビジュアルプログラミング言語であるPure Data(Pd)を、別のプログラム内で動作させるライブラリ"libpd"の説明です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 17
Download now
Download to read offline
Recommended
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
Recruit Lifestyle Co., Ltd.
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
KLab Inc. / Tech
Gunosyにおける仮説検証とABテスト
Gunosyにおける仮説検証とABテスト
Shunsuke Kozawa
開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発
Yahoo!デベロッパーネットワーク
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
Takayoshi Tanaka
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
Atsuki Yokota
自然言語処理で読み解く金融文書
自然言語処理で読み解く金融文書
Takahiro Kubo
粒子フィルターによる自動運転
粒子フィルターによる自動運転
Masato Nakai
Recommended
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
Recruit Lifestyle Co., Ltd.
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
KLab Inc. / Tech
Gunosyにおける仮説検証とABテスト
Gunosyにおける仮説検証とABテスト
Shunsuke Kozawa
開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発
Yahoo!デベロッパーネットワーク
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
Takayoshi Tanaka
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
Atsuki Yokota
自然言語処理で読み解く金融文書
自然言語処理で読み解く金融文書
Takahiro Kubo
粒子フィルターによる自動運転
粒子フィルターによる自動運転
Masato Nakai
M5Stack用3G拡張モジュールの光と闇
M5Stack用3G拡張モジュールの光と闇
Kohei MATSUSHITA
深層学習と音響信号処理
深層学習と音響信号処理
Yuma Koizumi
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
Hironori Washizaki
システム監視のアラート大量発生を抑えるZabbixトリガー「依存関係」機能の紹介
システム監視のアラート大量発生を抑えるZabbixトリガー「依存関係」機能の紹介
Haruki Yamashita
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
Jason Cheng
Holographic Whisper - CHI2017 oral presentation by Yoichi Ochiai
Holographic Whisper - CHI2017 oral presentation by Yoichi Ochiai
Yoichi Ochiai
Basic of Basics of Agile Development Returns
Basic of Basics of Agile Development Returns
Naoto Nishimura
音声コーパス設計と次世代音声研究に向けた提言
音声コーパス設計と次世代音声研究に向けた提言
Shinnosuke Takamichi
音声合成のコーパスをつくろう
音声合成のコーパスをつくろう
Shinnosuke Takamichi
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
Tetsutaro Watanabe
Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット
Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット
Masashi Ito
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Tools & Middleware Forum
AARIのご紹介
AARIのご紹介
Automation Anywhere Japan
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Tier_IV
脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
QUICとNATと
QUICとNATと
Yuya Rin
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
DeNA
複数話者WaveNetボコーダに関する調査
複数話者WaveNetボコーダに関する調査
Tomoki Hayashi
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
Shuichi Tsutsumi
More Related Content
What's hot
M5Stack用3G拡張モジュールの光と闇
M5Stack用3G拡張モジュールの光と闇
Kohei MATSUSHITA
深層学習と音響信号処理
深層学習と音響信号処理
Yuma Koizumi
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
Hironori Washizaki
システム監視のアラート大量発生を抑えるZabbixトリガー「依存関係」機能の紹介
システム監視のアラート大量発生を抑えるZabbixトリガー「依存関係」機能の紹介
Haruki Yamashita
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
Jason Cheng
Holographic Whisper - CHI2017 oral presentation by Yoichi Ochiai
Holographic Whisper - CHI2017 oral presentation by Yoichi Ochiai
Yoichi Ochiai
Basic of Basics of Agile Development Returns
Basic of Basics of Agile Development Returns
Naoto Nishimura
音声コーパス設計と次世代音声研究に向けた提言
音声コーパス設計と次世代音声研究に向けた提言
Shinnosuke Takamichi
音声合成のコーパスをつくろう
音声合成のコーパスをつくろう
Shinnosuke Takamichi
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
Tetsutaro Watanabe
Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット
Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット
Masashi Ito
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Tools & Middleware Forum
AARIのご紹介
AARIのご紹介
Automation Anywhere Japan
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Tier_IV
脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
QUICとNATと
QUICとNATと
Yuya Rin
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
DeNA
複数話者WaveNetボコーダに関する調査
複数話者WaveNetボコーダに関する調査
Tomoki Hayashi
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
Shuichi Tsutsumi
What's hot
(20)
M5Stack用3G拡張モジュールの光と闇
M5Stack用3G拡張モジュールの光と闇
深層学習と音響信号処理
深層学習と音響信号処理
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
システム監視のアラート大量発生を抑えるZabbixトリガー「依存関係」機能の紹介
システム監視のアラート大量発生を抑えるZabbixトリガー「依存関係」機能の紹介
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
Holographic Whisper - CHI2017 oral presentation by Yoichi Ochiai
Holographic Whisper - CHI2017 oral presentation by Yoichi Ochiai
Basic of Basics of Agile Development Returns
Basic of Basics of Agile Development Returns
音声コーパス設計と次世代音声研究に向けた提言
音声コーパス設計と次世代音声研究に向けた提言
音声合成のコーパスをつくろう
音声合成のコーパスをつくろう
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット
Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
AARIのご紹介
AARIのご紹介
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
脱RESTful API設計の提案
脱RESTful API設計の提案
QUICとNATと
QUICとNATと
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
複数話者WaveNetボコーダに関する調査
複数話者WaveNetボコーダに関する調査
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
Introducing libpd -Pdをアプリのサウンドエンジンに-
1.
Introducing libpd -Pdをアプリのサウンドエンジンに-
2.
一応 自己紹介 ● 半導体メーカ勤務 ○
Arduino互換ボード ヨロシク! ● 学生時代は計測工学・信号処理が専門 ○ LabVIEW とか Simulink がお友達 (Pdの遠い親戚) ● 趣味1 音楽制作 ○ DJしてました(最近あんまり機会がない) ○ チェロも弾く ○ 同人CDとか作ったり ふと、music-orientedなゲームを作ろうと思い立つ
3.
自作のプログラムで音を鳴らしたいとき… QuickTime AVAudioPlayer SoundPlayer SoundPool 「このwavファイル再生しといて」 程度のノリ ● 変更できるのは音量、ステレオ、再生速度くらい ● タイミング(発音遅延など)の精度は考慮なし かんたん再生機能
4.
本格的なサウンドAPIは… DirectX CoreAudio ASIO AudioTrack エフェクト、ミキシング、シンセサイズ なんでも自由にできるが… ● バッファ制御(音を鳴らしている間に次の音を準備する) ● ストリーミング(時間を止めるわけにはいかない) など、リアルタイム系プログラミングの知識が必要で ハードル高い サウンドデバイスに直接 波形データを渡せる
5.
コンピュータ 音 音楽 DirectX CoreAudio ASIO AudioTrack このへんで 音楽的な発想をプログラムしやすい Pdみたいな環境があったらいいな… それぞれのドメイン(立ち位置) ファイル QuickTime AVAudioPlayer SoundPlayer SoundPool
6.
_人人人人人_ > l i b
p d <  ̄Y^Y^Y^Y^Y^ ̄ それぞれのドメイン(立ち位置) コンピュータ 音 音楽 DirectX CoreAudio ASIO AudioTrack このへんで 音楽的な発想をプログラムしやすい Pdみたいな環境があったらいいな… ファイル QuickTime AVAudioPlayer SoundPlayer SoundPool
7.
libpdとは ● Peter Brinkmann先生がメイン開発者 ○
Patchfield (Android版Rewireみたいなん)の作者でもある ● Pdをプログラム内に組み込む ○ 描画に関する機能は無し(Pdのnogui mode) ● Cでコンパイルできれば動作環境は不問 ○ DSPのサポート手厚いのは、iOSとAndroid ○ MaxにないPdならではの特徴 Pd Max libpd - 小文字らしい
8.
ここでひとつサンプル ゲームエンジン プロジェクトにlibpdを組み込んだもの 内蔵してみた音楽的な発想: ● 効果音を16分刻みで揃えて鳴らす →適当に操作してもリズミカルに ● フレーズキャプチャ →フレーズ変化をゲーム化したい でスケッチ中の
9.
どうやって動いてるか 1. 自作のプログラムの中でPdが起動する 2. [send]や[receive]で値を通信 意外とシンプルやん
10.
libpdのウリ クロスプラットフォームな「サウンドエンジン」 動作環境やプログラミング言語の違いを越えて サウンドまわりの機能をPdで書ける libpd PortAudio / OpenFrameworks DirectSound
ASIO CoreAudio AudioTrack OpenSL Your App Pure Data C / C++ / C# / Obj-C / Java / Processing / Python
11.
libpd PortAudio / OpenFrameworks DirectSound
ASIO CoreAudio AudioTrack OpenSL Your App Pure Data C / C++ / C# / Obj-C / Java / Processing / Python クロスプラットフォームな「サウンドエンジン」 動作環境やプログラミング言語の違いを越えて サウンドまわりの機能をPdで書けるlibpdの機能がすごいというか libpdを色々な環境に対応させる取り組みがすごい libpdのウリ
12.
❖ 音楽をダイナミックに変化させたい ➢ サウンドエンジンを自作する必要あり ■
libpd: 細かいリアルタイム制御不要で高い柔軟性 (Pdそのものの素性の良さ...クセはあるけど) libpdをモバイルアプリ制作に活かす
13.
❖ 音楽関係の知り合いを巻き込みたい ➢ 制作環境をばらまくため可搬性が必要 ■
libpd: Pure Data上で音楽データ制作 ■ libpd: 開発・テスト環境がフリーなAndroidで動く Main Developer Sound Designer TEST Sound Designer TEST Sound Designer TEST libpdをモバイルアプリ制作に活かす
14.
❖ ある程度は反応の速さ(レイテンシ)を気にする ➢ Androidのサウンド事情は結構悲惨 ■
libpd: OpenSL ESに対応、しかも自動で最適化 Droidcon Italy 2014 slide: http://www.slideshare.net/rotxed/tales-legends-of-low-latency-audio-on-android libpdをモバイルアプリ制作に活かす
15.
おすすめ文献 “Making Musical Apps” Peter
Brinkmann直々に解説(英語) 20% Pd入門 20% RjDj入門 15% libpd入門 25% libpd on Android 20% libpd on iOS Githubでサンプルコード公開
16.
GPLはモバイルアプリと相性が悪い iOS : App
Storeの規約に適合せず Android : Google Playで公開するには全ソースをGPL化 注意事項 Pd-extendedはGPLオブジェクトを含有 例: [expr], [expr~], [knob], [freeverb~], [route~], [atoi] 初期状態のlibpdにGPLオブジェクトは無いが Pd側でパッチを仕込むときに使わないよう注意
17.
おわり http://tkrkapps.blogspot.jp/
Download now