from util import stopwatch from api import GenerationRequest from data import wavtool2midi import json from logitbias_json import json2logitbias WARMUP_INPUT = """ {"notes":[{"pitch":73,"start":0,"end":0.16666666666666666,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":0,"end":0.16666666666666666,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":0,"end":0.16666666666666666,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":0.5,"end":0.6666666666666666,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":0.5,"end":0.6666666666666666,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":0.5,"end":0.6666666666666666,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":1,"end":1.1666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":1,"end":1.1666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":1,"end":1.1666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":1.5,"end":1.6666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":1.5,"end":1.6666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":1.5,"end":1.6666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":2,"end":2.1666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":2,"end":2.1666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":2,"end":2.1666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":2.5,"end":2.6666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":2.5,"end":2.6666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":2.5,"end":2.6666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":3,"end":3.1666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":3,"end":3.1666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":3,"end":3.1666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":3.5,"end":3.6666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":76,"start":3.5,"end":3.6666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":81,"start":3.5,"end":3.6666666666666665,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":4,"end":4.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":4,"end":4.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":4,"end":4.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":4.5,"end":4.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":4.5,"end":4.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":4.5,"end":4.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":5,"end":5.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":5,"end":5.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":5,"end":5.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":5.5,"end":5.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":5.5,"end":5.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":5.5,"end":5.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":6,"end":6.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":6,"end":6.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":6,"end":6.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":6.5,"end":6.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":6.5,"end":6.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":6.5,"end":6.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":7,"end":7.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":7,"end":7.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":7,"end":7.166666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":69,"start":7.5,"end":7.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":73,"start":7.5,"end":7.666666666666667,"velocity":0.7874015748031497,"lifted":false},{"pitch":78,"start":7.5,"end":7.666666666666667,"velocity":0.7874015748031497,"lifted":false}],"accompany":[{"pitch":52,"start":0,"end":0.375,"velocity":0.7480314960629921,"lifted":false},{"pitch":49,"start":0.5,"end":0.9166666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":51,"start":1,"end":1.4166666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":52,"start":2.5,"end":2.9166666666666665,"velocity":0.7480314960629921,"lifted":false},{"pitch":51,"start":3,"end":3.4166666666666665,"velocity":0.7480314960629921,"lifted":false},{"pitch":52,"start":3.5,"end":3.9166666666666665,"velocity":0.7480314960629921,"lifted":false},{"pitch":52,"start":4,"end":4.416666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":49,"start":4.5,"end":4.916666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":52,"start":5.5,"end":5.916666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":52,"start":6,"end":6.416666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":49,"start":6.5,"end":6.916666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":57,"start":7.5,"end":7.916666666666667,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":8,"end":8.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":8.5,"end":8.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":9,"end":9.25,"velocity":0.7480314960629921,"lifted":false},{"pitch":56,"start":9,"end":9.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":34,"start":9,"end":10.125,"velocity":0.9448818897637795,"lifted":false},{"pitch":59,"start":9.5,"end":9.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":9.5,"end":9.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":10,"end":10.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":10,"end":10.25,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":10.5,"end":10.75,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":10.5,"end":10.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":56,"start":10.875,"end":11.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":51,"start":10.875,"end":11.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":11,"end":11.583333333333334,"velocity":0.7480314960629921,"lifted":false},{"pitch":68,"start":11,"end":11.625,"velocity":0.8661417322834646,"lifted":false},{"pitch":61,"start":11.5,"end":11.875,"velocity":0.7086614173228346,"lifted":false},{"pitch":59,"start":11.5,"end":11.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":12,"end":12.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":12,"end":12.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":12.5,"end":12.833333333333334,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":12.5,"end":12.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":49,"start":12.5,"end":12.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":13,"end":13.375,"velocity":0.7480314960629921,"lifted":false},{"pitch":56,"start":13,"end":13.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":51,"start":13,"end":13.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":13.5,"end":13.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":13.5,"end":13.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":13.5,"end":13.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":14,"end":14.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":14,"end":14.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":64,"start":14,"end":14.25,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":14.5,"end":14.75,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":14.5,"end":14.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":49,"start":14.5,"end":14.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":15,"end":15.333333333333334,"velocity":0.7480314960629921,"lifted":false},{"pitch":51,"start":15,"end":15.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":56,"start":15,"end":15.416666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":54,"start":15.5,"end":15.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":59,"start":15.5,"end":15.916666666666666,"velocity":0.7480314960629921,"lifted":false},{"pitch":61,"start":15.5,"end":15.875,"velocity":0.7480314960629921,"lifted":false}]} """ def warmup(api): with stopwatch("entire request **********"): api.generate( wavtool2midi(json.loads(WARMUP_INPUT)), [ GenerationRequest( 0.4, bias=json2logitbias( {"pitch >= 1000": -1000, "length > 1.0": -1000} ), stop_cond="error || beat >= 10 || (steps >= 8 && (beat >= 12 || maxProbability < 0.2))", min_polyphony=4, max_polyphony=8, dists=False, ), GenerationRequest( 0.6, rest_temperature=0.0, bias=json2logitbias( {"pitch >= 1000": -1000, "length > 1.0": -1000} ), stop_cond="error || beat >= 10 || (steps >= 8 && (beat >= 12 || maxProbability < 0.2))", min_polyphony=4, max_polyphony=8, dists=False, ), GenerationRequest( 0.8, rest_temperature=1.6, note_length_temperature=2.4, bias=json2logitbias( {"pitch >= 1000": -1000, "length > 1.0": -1000} ), stop_cond="error || beat >= 10 || (steps >= 8 && (beat >= 12 || maxProbability < 0.2))", min_polyphony=4, max_polyphony=8, dists=False, ), ], text_prompt="dark sky", )