import random
from pydub import AudioSegment
from granules import Granule, Render
# Загружаем аудиофайл
audio = AudioSegment.from_file("./mocart-lacrimosa-dies-illa.mp3")
# Инициализируем класс рендера
render = Render()
# Создаем случайное количество гранул от 5 до 30
for _ in range(random.randint(5, 30)):
# Определяем случайную позицию гранулы с 10мс до 100000мс,
# а так же ее длину от 50мс до 300мс
start = random.randint(10, 100000)
end = start + random.randint(50, 300)
# Случайно выбираем длительность сглаживания начала и завершения гранулы
fade_start=random.randint(0, 10)
fade_end=random.randint(0, 10)
# Случайно выбираем от 2 до 10 повторений гранулы
iterations = random.randint(2, 10)
# Инициализируем класс гранулы и рендерим ее
granule = Granule(
audio,
iterations=iterations,
start=start,
end=end,
fade_start=fade_start,
fade_end=fade_end
)
granule.render()
# Добавляем рендер гранулы в очередь рендеринга
render.append(granule)
# Запускаем рендер очереди в единый аудио-файл, сохраняем и проигрываем его
render.render()
render.export_mp3('./lacrimoza_mix.mp3')
render.play()