Skip to content

111 #861

@luutanloc953-dotcom

Description

@luutanloc953-dotcom

from pydub import AudioSegment
from pydub.playback import play

Load các sample âm thanh

kick = AudioSegment.from_file("kick.wav")
snare = AudioSegment.from_file("snare.wav")
hihat = AudioSegment.from_file("hihat.wav")

Cấu hình thời lượng cho 1 bar

bpm = 120 # tốc độ beat
beat_duration_ms = int((60 / bpm) * 1000) # 1 nốt đen = 500ms ở 120bpm

bar_length = 4 * beat_duration_ms # 4 nốt đen = 1 bar = 2000ms

Tạo 1 ô nhịp trống

bar = AudioSegment.silent(duration=bar_length)

Thêm kick và snare

bar = bar.overlay(kick, position=0) # beat 1
bar = bar.overlay(snare, position=beat_duration_ms) # beat 2
bar = bar.overlay(kick, position=2 * beat_duration_ms) # beat 3
bar = bar.overlay(snare, position=3 * beat_duration_ms) # beat 4

Thêm hi-hat mỗi 1/8 (250ms)

for i in range(0, bar_length, beat_duration_ms // 2):
bar = bar.overlay(hihat - 6, position=i)

Tạo track lặp lại

track = bar * 8 # 8 bars

Phát beat

print("▶️ Đang phát beat kiểu 'buông hàng'...")
play(track)
print("✅ Phát xong!")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions