小さなJSリングトーンジェネレーター-仕組み

ZzFXMツールについて話しています。これは、非常に限られた量のメモリで操作することを余儀なくされているインディーゲームやWebアプリケーションの開発者に役立ちます。



アナログについても話しましょう-rFXGen、wafxr。





写真chuttersnap /スプラッシュ解除



プロジェクトの詳細



ZzFXMは、ゲーム開発ブログKilled By aPixelのプログラマー兼著者であるFrankForceによって発表されました。彼の資料では、彼はメモリの節約の問題に特別な注意を払っています。彼はかつてわずか1キロバイトのJavaScriptピアノシミュレーターを作成しました。



メロディジェネレーターはこのアイデアを引き継いでいます-フランクは超小型プログラム用の音楽を生成するために特別に設計しました。このようなプロジェクトは、参加者が数十KBのメモリを使用してHTML5とJavaScriptでゲームを作成するjs13kGamesオープンコンペティションの一部として実装されます。



ZzFXMは、本格的なインディーゲームの開発に使用できます。MITライセンスの下ライセンスされているため、商用プロジェクトに適しています。


設定のソースと手順は、GitHubのリポジトリにあります



「フード」の下にあるもの



このユーティリティは、ZzFXエンジン使用して、8ビットに似たサウンドエフェクトを作成します。ボリュームから周波数、波形まで、19のサウンドパラメータを制御できます。ZzFXが生成できるサウンドの例は、FrankForceのWebサイトにあります。ZzFXMはそれらのいくつかをサンプルとして使用します。



完成したファイルのフォーマットは、Amigaパーソナルコンピュータ楽曲を保存および再生するために使用されるMODに似ているため、楽器の音を含むすべてのサンプルは異なるファイルに保存されます(モジュラリティの原則)。



使い方



作曲家は、どの楽器がいつ演奏するかを示す一連の音符を作成します。このシーケンスはトラックと呼ばれます。並行して鳴るいくつかのトラックは、独自の番号を持つブロック(パターン)を形成します。さらに、作曲家はプログラムコードでどのパターンをいつ鳴らすかを指定します。



このアプローチにより、目的の構成をすばやく作成できますが、結果のコードをコメントなしで読むことは困難です。GitHubのリポジトリ上では、発電機の作者は与え、次の例を:



[                                     // Song
  [                                     // Instruments
    [.9, 0, 143, , , .35, 3],             // Instrument 0
    [1, 0, 216, , , .45, 1, 4, , ,50],    // Instrument 1
    [.75, 0, 196, , .08, .18, 3]          // Instrument 2
  ],
  [                                     // Patterns
    [                                     // Pattern 0
      [                                     // Channel 0
        0,                                    // Using instrument 0
        -1,                                   // From the left speaker
        1,                                    // play C-1
        0, 0, 0,                              // rest (x3)
        3.5,                                  // play E-1 with 50% attenuation
        0, 0, 0                               // rest (x3)
      ],
      [                                     // Channel 1
        1,                                    // Using instrument 1
        1,                                    // From the right speaker
        2,                                    // play D-1
        2.25,                                 // play D-1 with 25% attenuation
        3.5,                                  // Play E-1 with 50% attenuation
        4.75,                                 // Play F-1 with 75% attenuation
        -1,                                   // Release the note
        0, 0, 0                               // rest (x3)
      ]
    ]
  ],
  [                                     // Sequence
    0,                                    // Play pattern 0
    0,                                    // ...and again
  ],
  120,                                  // 120 BPM
  {                                     // Metadata
    title: "My Song",                      // Name of the song
    author: "Keith Clark"                  // Name of the author/composer
  }
]


GitHubの ユーティリティサウンドを使用して生成されたトラックがどのように生成されるかを聞くことができます曲のサイズは550バイトを超えません。



類似物は何ですか



ZzFXMの類似物の1つはrFXGenです。これはCで書かれており、LD48コンペティションの参加者の1人によって2007年に導入されたsfxrプロジェクトに基づいています。そのフレームワーク内で、各開発者は48時間以内に小さなゲームを提出する必要があります。RFXGenユーティリティは、オシレータ、ビブラト、ローパスおよびハイパスフィルタをサポートします。





写真提供:Ohmydearlife / Pixabay



別のコンパクトなサウンドジェネレーター-wafxrWebAudioAPIとwasgenライブラリを使用してライブオーディオをレンダリングしますWafxrは、オシレーター、トレモロ/ビブラト、およびさまざまなフィルターもサポートしています。GitHubでの作業のデモがあります。そこで、ツールを自分で評価できます。






Habréにあるもの:








« Hi-Fi»:





— ,

VR

Sporth — live-

: 5 , «»







All Articles