#audio-devices #music #psg #audio #sample-rate #ay-3-8910 #sequencer

app fbd_sequencer_cli

A命令行工具,用于使用PSG或AY-3-8910声音源播放音乐。它支持播放.fbd序列文件,可以直接输出到音频设备或生成.wav文件。

1个不稳定版本

0.1.0 2024年7月1日

15个在 多媒体

Download history 151/week @ 2024-06-26 38/week @ 2024-07-03

每月87次下载

MIT/Apache

17KB
264

FBD Sequencer

Crates.io Documentation Build Status Crates.io License

概述

这个存储库实现了使用PSG或AY-3-8910声音源播放音乐的序列器。不需要实际PSG硬件,因为PCM是通过软件生成和播放的。目前,它只支持播放.fbd序列文件。

安装说明

使用cargo install

cargo install fbd_sequencer_cli

下载预构建的二进制文件

预构建的二进制文件可在存储库的发布页面上找到。

!!! 由于仅包含可执行文件,它们可能会被错误地检测为病毒,导致下载或执行复杂。如果可能,建议使用cargo install。

资产内容

文件名 描述
fbdplay-x86_64-unknown-linux-gnu.zip 适用于Linux x64的fbdplay二进制文件
fbdplay-x86_64-pc-windows-msvc.zip 适用于Windows x64的fbdplay二进制文件
fpdplay-aarch64-pc-windows-msvc.zip 适用于Windows arm64的fbdplay二进制文件
fddplay-aarch64-apple-darwin.zip 适用于macOS(带有Apple硅芯片)的fbdplay二进制文件

可以在以下位置找到fbd_files.zip(.fbd文件的存档):fbd_files.zip

如何使用fbdplay

fbdplay是一个用于播放.fbd文件的CLI工具。它可以输出到音频设备并生成.wav文件。

可以在存储库的fbd_files目录中找到fbd_files。或者,您可以从发布页面下载fbd_files.zip。

FBD Music player

Usage: fbdplay [OPTIONS] <INPUT> [OUTPUT]

Arguments:
  <INPUT>   Sets the input .fbd file
  [OUTPUT]  Sets the generated .wav file

Options:
  -p, --psg-crate <PSG_CRATE>      Sets the crate for waveform generation [default: psg] [possible values: psg, psg-lite]
  -c, --clock-rate <CLOCK_RATE>    Sets the clock rate (MHz) (e.g., 2.0, 1.7897725...) [default: 2]
  -s, --sample-rate <SAMPLE_RATE>  Sets the sample rate (Hz) [default: 44100]
  -h, --help                       Print help
  -V, --version                    Print version

示例:播放文件

fbdplay fbd_files/YS200.fbd

示例:生成.wav文件

fbdplay fbd_files/YS200.fbd YS200.wav

示例:指定48kHz的采样率

fbdplay fbd_files/YS200.fbd -s 48000

关于PSG波形生成

要生成PSG波形,可以使用两个可互换的存储库

  • psg(由Emil Loer创建)
  • psg-lite(由我创建)

要使用的盒子可以通过fbdplay中的-p选项进行更改。psg盒子是默认选项,因为它产生的波形质量比psg-lite盒子更高。正如其名所示,psg-lite轻量级,但牺牲了音质(尽管采样率大约为44.1KHz,音质差异并不极端)。

  • psg盒子内部以时钟速率精度生成波形,然后下采样到指定的采样率。
  • psg-lite盒子使用时钟速率和采样率来减少生成的波形。它不执行下采样。

在PC上使用时,使用psg盒子没有缺点,但我自从实现它以来就让它可切换。(实现psg-lite的原因是我不知道psg盒子的存在,并且为了学习Rust)。

许可证

根据您的选择,许可方式可以是以下之一

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献,包括但不限于以下内容,应以上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~1.6–4.5MB
~70K SLoC