Expand description
Common traits and types for YM2149 chiptune replayers.
This crate provides shared abstractions used across multiple replayer implementations (YM, AKS, AY formats).
§Traits
ChiptunePlayer- Unified player interface for any chiptune formatPlaybackMetadata- Metadata access (title, author, duration, etc.)
§Example
ⓘ
use ym2149_common::{ChiptunePlayer, PlaybackMetadata, PlaybackState};
fn play_any_format<P: ChiptunePlayer>(player: &mut P) {
println!("Playing: {}", player.metadata().title());
player.play();
let mut buffer = vec![0.0; 4096];
while player.state() == PlaybackState::Playing {
player.generate_samples_into(&mut buffer);
// ... send buffer to audio device
}
}Re-exports§
pub use channel_state::ChannelState;pub use channel_state::ChannelStates;pub use channel_state::EnvelopeState;pub use channel_state::NoiseState;pub use util::channel_frequencies;pub use util::channel_frequencies_with_clock;pub use util::channel_period;pub use util::period_to_frequency;pub use util::period_to_frequency_with_clock;pub use visualization::MAX_CHANNEL_COUNT;pub use visualization::MAX_PSG_COUNT;pub use visualization::SPECTRUM_BINS;pub use visualization::SPECTRUM_DECAY;pub use visualization::SpectrumAnalyzer;pub use visualization::WaveformSynthesizer;pub use visualization::freq_to_bin;
Modules§
- channel_
state - Channel state extraction from YM2149 registers.
- util
- Shared helper utilities for YM2149 register math.
- visualization
- Shared visualization utilities for YM2149 oscilloscope and spectrum display.
Structs§
- Basic
Metadata - Basic metadata container implementing
PlaybackMetadata. - Cached
Player - A cached wrapper around a chiptune player.
- Sample
Cache - A sample cache for efficient single-sample access.
Enums§
- Playback
State - Playback state for chiptune players.
Constants§
- ATARI_
MFP_ CLOCK_ HZ - Atari ST MFP (MC68901) clock frequency (2.4576 MHz).
- ATARI_
ST_ CLOCK Deprecated - Alias for backwards compatibility.
- CHANNELS_
PER_ PSG - Number of audio channels per YM2149 PSG chip.
- DEFAULT_
CACHE_ SIZE - Default cache size in samples.
- DEFAULT_
SAMPLE_ RATE - Standard audio sample rate (44.1 kHz CD quality).
- FRAME_
RATE_ NTSC - NTSC frame rate (60 Hz) - used by some American systems.
- FRAME_
RATE_ PAL - PAL frame rate (50 Hz) - used by Atari ST, Amiga, and most European systems.
- PSG_
MASTER_ CLOCK_ HZ - Standard YM2149 PSG master clock frequency (2 MHz).
Traits§
- Cacheable
Player - Trait for players that can be wrapped with caching.
- Chiptune
Player - Unified player interface for chiptune formats.
- Chiptune
Player Base - Object-safe base trait for chiptune players.
- Metadata
Fields - Unified metadata trait for chiptune playback.
- Playback
Metadata - Unified metadata trait for chiptune playback.
- Ym2149
Backend - Common interface for YM2149 chip backends