#861·pydub

111

Author: luutanloc953-dotcomCreated Sep 15, 2025Updated Sep 18, 2026

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!")