FartScrollLid — MacBookの蓋でおなら音を鳴らすユーモア系アプリ
概要
FartScrollLidは、MacBookの蓋(lid)の開閉動作に合わせておなら音を鳴らす、ジョーク系のmacOSアプリです。蓋の角度に応じてピッチを変化させ、閉じ気味では低音の「ボフッ」とした音、開き気味では高音の「キューッ」とした音を出すなど、動作の強さ(速度)や角度を使ったリアルタイムな音の制御が特徴です。UIは角度や速度、音声パラメータを表示する簡易モニタを備え、動作が活発なときのみ反応するフィルタ機能など実用的な配慮もあります。Objective-Cで書かれた小さなXcodeプロジェクトで、音声再生やセンサ検出の実装例を手早く確認できます。
リポジトリの統計情報
- スター数: 28
- フォーク数: 2
- ウォッチャー数: 28
- コミット数: 5
- ファイル数: 5
- メインの言語: Objective-C
主な特徴
- 蓋の角度に合わせてピッチが変化する「動的おなら音」再生
- 動きがあるときのみ鳴る「モーションアクティベーション」
- 蓋角度・速度・音声パラメータを表示するリアルタイムモニタ
- 軽量なObjective-C製のXcodeプロジェクトで学習や拡張が容易
技術的なポイント
このプロジェクトは小規模ながら、macOSアプリで「物理的な動作」を音にマッピングする実装例として興味深い点がいくつかあります。まず、蓋の開閉検出にはシステムイベントや各種センサデータ(加速度やヒンジ角度など)をポーリングまたはイベント購読で取得し、角度と速度を算出していると想定されます。取得した角度・角速度は、音声パラメータ(ピッチ、音量、フィルタ)にマッピングされ、連続的に変化するパラメータを滑らかに補間することで不自然な音変化を避けています。音声再生は低レイテンシが求められるため、AVAudioEngineやAudioUnits、あるいはAudioToolbox系APIのいずれかを用いてバッファ駆動で実装されている可能性が高く、ピッチシフトやEQで「低いボフッ」「高いキューッ」といった音色を作っています。また、モーション閾値を設けることで、微小な振動や机の揺れなどによる誤検出を抑え、ユーザーが意図した開閉動作のみをトリガにする工夫が見られます。UIはCocoa(AppKit)ベースで、角度や速度をリアルタイムに描画しデバッグやデモに便利な情報を表示します。さらに、アプリが常駐する場合のバッテリーや権限まわりの配慮、サウンドファイルの管理やライセンス記載(リポジトリにLICENSEあり)など、実用性とジョーク要素を両立する設計がなされています。ソースはObjective-Cで整然とまとめられており、音声合成・センサ処理・UI連携の入門教材としても有用です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- FartScrollLid.xcodeproj: dir
- FartScrollLid: dir
- (ソースコード、リソース、サウンドファイル、UIファイルが含まれる想定)
- LICENSE: file
- README.md: file
まとめ
軽量で遊び心溢れるサンプルプロジェクト、音声制御学習に最適。
リポジトリ情報:
- 名前: fartscroll-lid
- 説明: A hilarious macOS app that plays fart sounds as you open and close your MacBook lid
- スター数: 28
- 言語: Objective-C
- URL: https://github.com/iannuttall/fartscroll-lid
- オーナー: iannuttall
- アバター: https://avatars.githubusercontent.com/u/6681919?v=4
READMEの抜粋:
FartScrollLid 💨
A hilarious macOS app that plays fart sounds as you open and close your MacBook lid - inspired by the classic “fart scroll” browser extension!
Features
- 🎵 Dynamic Fart Sounds - Pitch changes based on lid angle (deep bass when closed, high squeaks when open)
- 🎯 Motion-Activated - Only farts when you’re actively moving the lid
- 📊 Real-Time Monitoring - Shows lid angle, velocity, and fart parameters
- 😄 Funny Status Messages - “Maximum pressure!”, “Ga…