Crate ym2149_common

Crate ym2149_common 

Source
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

§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§

BasicMetadata
Basic metadata container implementing PlaybackMetadata.
CachedPlayer
A cached wrapper around a chiptune player.
SampleCache
A sample cache for efficient single-sample access.

Enums§

PlaybackState
Playback state for chiptune players.

Constants§

ATARI_MFP_CLOCK_HZ
Atari ST MFP (MC68901) clock frequency (2.4576 MHz).
ATARI_ST_CLOCKDeprecated
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§

CacheablePlayer
Trait for players that can be wrapped with caching.
ChiptunePlayer
Unified player interface for chiptune formats.
ChiptunePlayerBase
Object-safe base trait for chiptune players.
MetadataFields
Unified metadata trait for chiptune playback.
PlaybackMetadata
Unified metadata trait for chiptune playback.
Ym2149Backend
Common interface for YM2149 chip backends