Skip to main content

一个用numpy实现的8bit音乐生成器

Project description

一个用numpy实现的8bit音乐生成器

功能特性

  • MIDI 音符映射:通过枚举类将 MIDI 缺陷值与音名绑定。
  • 多种波形支持:包括正弦波、方波、三角波、锯齿波和白噪声。
  • 基本鼓组支持:Kick、Snare、Hi-hat 等常见打击乐器模拟。
  • 通道生成器:支持旋律和鼓声分别生成独立通道。
  • 后处理与播放:混音、音量控制、裁剪与播放功能。
  • ️参数配置系统:灵活定义采样率、BPM 和时长等音频参数。

安装方式

pip install chippymu

示例用法

播放一段旋律

from chippymu.models import Note, WaveType
from chippymu.configs import BasicParams
from chippymu.channelgen import generate_wave
from chippymu.sound import post_processing, play

params = BasicParams(sample_rate=16000, bpm=90, length=4)

melody = [(0, Note.C1, 1), (2, Note.E1, 1), (3, Note.G1, 1)]
wave = generate_wave(melody=melody, wave_type=WaveType.SINE, params=params)
mixed = post_processing([wave], volumes=[0.8])
play(mixed, params)

播放一段鼓点

from chippymu.models import DrumType
from chippymu.channelgen import generate_drums
from chippymu.sound import post_processing, play

drums = [(0, DrumType.KICK, 1), (1, DrumType.HIHAT, 0.5), (2, DrumType.SNARE, 1)]
drum_audio = generate_drums(drums=drums, params=params)
mixed = post_processing([drum_audio], volumes=[0.8])
play(mixed, params)

核心模块说明

  1. models 模块:定义了 MIDI 音符映射、波形类型和鼓点类型。

    • WaveType:波形类型,包括 SINESQUARESAWTOOTHTRIANGLE
    • DrumType:鼓点类型,包括 KICKHIHATSNAREPERC
    • Note:音符对象,包含音符的起始时间、持续时间、音高和音量等信息。
  2. configs 模块:定义了参数配置,包括采样率、每分钟节拍数、总时长。

    • sample_rate:采样率,默认为 16000 Hz。
    • bpm:每分钟节拍数,默认为 90。
    • length:总时长(以拍数为单位)。
  3. utils 模块:工具函数集合。

    • note_to_freq:将音符对象转换为频率。
    • basic_wave_gen:生成基本波形。
    • basic_drum_gen:生成基本鼓声。
  4. channelgen模块:通道生成器。

    • generate_wave: 生成波形通道。
    • generate_drum: 生成鼓声通道。
  5. sound模块:后处理与播放。

    • post_processing: 混音、裁剪、量化等。
    • play: 使用sounddevice播放音频。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chippymu-0.2.1.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chippymu-0.2.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file chippymu-0.2.1.tar.gz.

File metadata

  • Download URL: chippymu-0.2.1.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for chippymu-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4202bea2d01cbd8fa1fb1a763069b2aada8518a451815f3acec9f56c962803cf
MD5 0dd1cf53f6f6dab7c73652f9bcf34470
BLAKE2b-256 15aef68c299cc7a8e3ff0db839b0491536931e8f6998e97a25a7bd4c9279268a

See more details on using hashes here.

File details

Details for the file chippymu-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: chippymu-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for chippymu-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c11a9eb93ebf903f9425cdc4c9a5529acee211a1e7bc4d4b988a8761731ef088
MD5 c13406777e9ee0f8d22d7bf9e140394c
BLAKE2b-256 21dc7c2d2290a191dcbd7f7b7066883f6bb8ee13f7c129037856592e01c6545f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page