#!/usr/bin/env python3

#------------------------------------------------------------------------
# isobar: ex-euclidean
#
# Uses Euclidean rhythms to generate multiple polyrhythmic voices.
#------------------------------------------------------------------------

from isobar import *

import logging

def main():
    timeline = Timeline(100)

    timeline.schedule({
        "note": 60 * PEuclidean(5, 8),
        "duration": 0.25
    }, delay=0.0)
    timeline.schedule({
        "note": 62 * PEuclidean(5, 13),
        "duration": 0.5
    }, delay=0.25)
    timeline.schedule({
        "note": 64 * PEuclidean(7, 15),
        "duration": 0.5
    }, delay=0.5)
    timeline.schedule({
        "note": 67 * PEuclidean(6, 19),
        "duration": 0.25
    }, delay=0.75)
    timeline.schedule({
        "note": 71 * PEuclidean(7, 23),
        "duration": 0.5
    }, delay=1.0)

    timeline.run()

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO, format="[%(asctime)s] %(message)s")
    main()