1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Procedural chiptune music from arbitrary bytes — same input yields the same audio.
//! Core synthesis has no mandatory file or audio-device I/O so it builds for `wasm32-unknown-unknown`
//! as well as native targets; [`SongMetadata::from_path`] is omitted on **`wasm32-unknown-unknown`**
//! (browser) where `std::fs` metadata is unavailable—use [`SongMetadata::from_string`] there.
//!
//! ## WebAssembly
//!
//! Use the **`chiptunomatic-wasm`** crate for wasm-bindgen bindings (incremental synth + metadata for JS). It
//! depends on this library and is built with:
//!
//! ```text
//! rustup target add wasm32-unknown-unknown
//! cargo build -p chiptunomatic-wasm --target wasm32-unknown-unknown
//! wasm-bindgen target/wasm32-unknown-unknown/release/chiptunomatic_wasm.wasm --out-dir pkg --target web
//! ```
//!
//! On `wasm32`, enable this crate's **`js`** feature so `getrandom` is built with its **`js`**
//! backend (the **`chiptunomatic-wasm`** crate does that). Without **`js`**, a wasm32 build
//! must supply another `getrandom` backend. Use a JavaScript-capable host when **`js`** is on.
extern crate alloc;
extern crate std;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;