Skip to content

Instantly share code, notes, and snippets.

@Enkerli
Last active December 18, 2023 04:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Enkerli/dc9dcf317a015b0ce02ab596e02cee24 to your computer and use it in GitHub Desktop.
Save Enkerli/dc9dcf317a015b0ce02ab596e02cee24 to your computer and use it in GitHub Desktop.
Simple Python code to create MIDI files from melodic patterns formatted as arrays of intervals in semitones (from #DigThatLick). Created with the kind help of ChatGPT 4 (because I’m a noncoder and it was a valuable learning exercise).
Pattern ID Instances
[-1, -1, -1, -2, -2, -1] r3prd0u5e1 127
[-1, -1, -1, -1, -1, -2] k68sn02uof 126
[-3, 1, 2, 1, 2, 2] 2bf2a3yced 122
[-2, -1, -2, -2, -2, -1] lv7dtm7aeu 110
[-2, -1, -1, -1, -1, -1] pghi0goc5x 106
[-2, -1, -2, -2, -1, -1] 7b2ryh0s2e 98
[1, 2, 2, 2, 1, 2] yt0htbzb45 95
[2, 1, 2, 2, 2, 1] janxn6gkmj 94
[-1, -2, -2, -2, -1, -2] 6sjw0i0kzw 93
[-2, -2, -1, -2, -2, -2] vqa271mzru 88
[-1, -1, -1, -1, -2, -1] 06xg6x4q47 83
[-1, -1, -2, -1, -2, -1] aruwh8so82 83
[-2, -2, -2, -1, -2, -2] hiwu2n5v5n 80
[1, -1, -1, -1, -1, -1] j4xv9o9o82 78
[-1, -1, -1, -2, -1, -2] ue3mz8p5r9 73
[-1, -2, -1, -1, -1, -1] vkjippytri 73
[2, 2, 1, 2, 2, 2] 6h9jb9eo9o 71
[2, 2, 2, 1, 2, 2] zv3suhltyi 71
[-1, -2, -2, -1, -1, -1] afm41109og 70
[-1, -1, -1, -2, -1, -1] qpi42qiz15 67
[1, 2, 1, 2, 2, 3] rjm5xnhqx1 64
[3, -3, 1, 2, 1, 2] hyzodowcve 62
[-2, -1, -2, -2, 2, 2] 86ggrbch8t 61
[1, 1, 1, -1, -1, -1] 47ixwv50wu 61
[2, 1, 2, 2, 3, -1] cnj69rfh6s 61
[-1, -1, -1, -1, -1, -1, -2] 5djhcbgq2n 60
[-1, -1, -2, -2, -1, -2] zgsbjbf19o 60
[1, 2, 1, 2, 2, 2] wssyhmwqxw 60
[-2, -2, -1, -2, -2, -2, -1] cn0ru26du2 59
[-1, -2, -2, -1, -2, -1] r9e8iu8nom 58
[-2, -2, -1, -1, -1, -1] fyp0mfxc4n 58
[-1, -1, -2, -1, -2, -2] wxagva22fs 57
[-2, -2, -1, -2, -2, -1, -1] ay4c561p9y 55
[-1, -1, -2, -1, -1, -1] aw6qoxytb6 53
[-1, -2, -2, -2, -1, -2, -2] y4vlg0d2xt 53
[-2, -2, -1, -1, -1, -2] q3a3xn2qkz 53
[-1, -1, -1, -1, -1, -2, -1] ia99etpi73 52
[-1, -1, -1, -1, -2, -2] eoz7ac41n8 50
[2, -2, -2, -1, -2, -2] j0scng2ryu 50
[2, 1, 2, 2, 2, 1, 2] 569kp33rf6 50
[2, 2, 1, 2, -3, 1] o7vwpo8gsf 50
[-1, -1, -1, -2, -2, -1, -2] umz7hg63hp 49
[-2, -1, -1, -1, -1, -1, -1] 29c8n3qwg7 49
[-2, -1, -2, -2, -2, -1, -2] t3src2bsn2 49
[1, 1, -1, -1, -1, -1] av9ky7r2h5 49
[1, -1, -1, -1, -1, -1, -1] hpsr1v83r8 48
[-1, -2, -1, -2, -2, -1] z9z48eu85v 47
[-2, -1, -2, -1, -1, -1] mgzw5zvo1m 47
[1, 2, 1, 2, 1, 1] 3z2wdjwyj0 47
[1, 2, 2, 2, 1, 2, 2] ma8imclwhl 47
[2, 2, 1, -1, -2, -2] 6gbmr9efvp 47
[2, 2, 1, 2, 1, 2] 20dogxzlua 47
[-2, -1, -1, -1, -2, -2] elwngp6d46 46
[-2, -2, -2, -1, -2, -1] tbqb30zjrb 45
[1, 2, 1, 1, 1, 1] tl9ymv45s7 45
[1, -1, -2, -2, -1, -2] 1kmpo6xnej 44
[2, 2, 3, -3, 1, 2] 7z7kz2374t 44
[-2, -2, -1, -2, -2, 2] 036l5p73xs 43
[1, 2, 2, 1, 2, 2, 2] r3ja8105zi 43
[2, 1, 2, -3, 1, 2] bu6ivkw684 43
[2, 1, 2, 2, -2, -2] sv0787nrh9 43
[-2, 1, -1, -1, -1, -1] 18jh2n2ntu 42
[1, 2, -3, 1, 2, 1] 5dzpamkfb0 42
[2, -3, 1, 2, 1, 2] sgxipm6xw2 42
[-1, -2, -1, -1, -1, -2] cx1ar7yzi6 41
[-1, -2, -2, 2, 2, 3] bfmhhg61f5 41
[-1, -1, -1, -1, 2, 2] yrii4tgu5n 40
[2, 2, 1, 2, 2, 2, 1] krcm1p8p76 40
[-1, -2, -1, 3, 3, 3] smmktv9pt6 39
[-2, -1, 3, 3, 3, -1] o45v2holdt 39
[1, 2, 2, 3, -1, -2] ka8bjppofc 39
[2, 2, 2, 1, 2, 1] 3gx33bizmk 39
[-1, -2, -1, -1, -1, -1, -1] 38xqjd9lo5 38
[-2, -1, -2, -1, -2, 1] gfpb5g1lwt 38
[-2, -2, -1, -2, -2, -3] uh27odhgee 38
[-1, -2, -2, -1, -2, -2, -2] a3pdvulrrh 37
[2, 1, 2, 1, 2, 2] 7u014ly4ty 37
[2, 2, 1, 2, -2, -1] 6izxrap7y7 37
[-1, -2, -2, -2, -1, 3] 51nzazcusl 36
[-2, -2, -1, -2, -1, -1] 6b0uvo7pm1 36
[1, 2, 2, 1, 1, 1] 3myamr94sb 36
[2, 1, 2, -2, -1, -2] 54qlgqnn19 36
[-1, -1, -1, -2, -1, -1, -1] nag1igi5si 35
[-2, -1, -2, -1, -2, -2] y9wk06hm67 35
[1, 2, 2, 1, 2, -3] ju7cwgyptz 35
[2, -1, -1, -1, -1, -1] 7msm7qqg78 35
[2, 2, -2, -2, -1, -2] vfluq91n4z 35
[-1, -1, -2, -2, -1, -2, -2] su3qugqml6 34
[-2, -1, -2, -1, 3, 3] hsucvsg60h 34
[1, -1, -1, -1, -1, -2] j2bq9jbou5 34
[1, -1, -1, -1, -2, -1] w9j9hxfs4x 34
[2, 2, 3, -1, -2, -2] 41tb3gmwli 34
[3, -3, 1, 2, 1, 2, 2] mrgff1va1z 34
[-1, -1, -1, -1, -1, -3] mu8s519t9c 33
[-2, -2, -1, -2, -1, -2] fv24ckn9jy 33
[-3, 1, 2, 2, 2, 1] bfto7srza8 33
[1, -1, -2, -2, -2, -1] r8bjbn9cf4 33
[1, 2, -2, -1, -2, -1] psgdr0o6iz 33
[2, 1, -1, -2, -2, -1] txz4h9fruh 33
[3, -3, 1, 2, 2, 3] psteigqty8 33
[-2, -1, -1, -1, -2, -1] ph69ynogo5 32
[1, 2, -2, -1, -2, -2] fop1somy3n 32
[1, 2, 2, 1, 2, 1] jmeegjiu0t 32
[2, 1, 2, 2, 3, -1, -2] 9kk0shyhgq 32
[-1, -1, -1, -1, -1, 4] 3wny48qw5z 31
[-1, -2, -2, -1, -1, 4] fbhawtjs6s 31
[-2, -1, -2, -2, 2, 2, 3] u7hxljsxz1 31
[-3, 1, 2, 1, 2, 2, 3] 18ocqynsw0 31
[1, 1, 1, 1, 1, 2] 2tjzpz9ehb 31
[1, 2, 1, 1, 1, 1, 1] owuz444ql0 31
[2, 1, 2, 2, 2, 1, 2, 2] wpa228gdxw 31
[2, 2, 1, 2, 1, 1] rc2wwujzwd 31
[2, 2, 1, 2, 2, 3] kgap7cljue 31
[-1, -1, -1, -2, -2, -1, -2, -2] mtdjer5lyt 30
[-2, -1, -1, -2, -1, -2] pchs54k36a 30
[-2, -2, -1, 1, 2, 2] 85g43is1xr 30
[1, -1, 1, -1, 1, -2] kpcfoz8b0q 30
[2, 2, 2, 2, 1, 2] iu2tioh7oy 30
[3, 2, 2, 3, -3, 1] hpxuozlr5h 29
[-1, -1, -1, -1, -2, -1, -2] og35u5wjwc 28
[-2, -1, -3, -1, -2, -2] 6zdt65iak3 28
[-2, -2, -1, -1, 2, 2] ey2dwd9zgg 28
[0, 0, 0, 0, 0, 1] 9myuoucrkf 28
[1, 2, 2, 1, 2, 2, 2, 1] qc63fftk0f 28
[1, 2, 2, 2, 1, -1] 2lq7du2gi3 28
[3, -1, -2, -2, -1, -1] o5y5n7w9wl 28
[-1, -2, -1, -2, -2, -2] yput9cep2o 27
[-1, 1, -1, -1, -1, -1] 87zoeme081 27
[-2, -1, -2, -2, -2, -1, -2, -2] 49mltp83oo 27
[-2, -2, -1, -2, -2, -2, -1, -2] 1yfep2qkfn 27
[-2, -2, 2, 2, 3, 5] bare5ucy7f 27
[-2, 1, 2, 1, 2, 2] ach0q7kalx 27
[-3, 1, 2, -2, -1, -2] 6f4ut04loh 27
[2, 2, 1, 2, -3, 1, 2] w6rm5c2rl3 27
[-1, -1, -1, -1, 4, -2] 8lovq2pmlm 26
[-2, -1, -2, -2, -1, 3] ulfarpvnqo 26
[-2, -2, -1, -2, -2, 2, 2] 7pgpplpjy4 26
[1, -2, -2, -1, -2, -2] ptbu7c6ewq 26
[-1, -1, -1, -1, -1, -1, -2, -1] loqdp7j611 25
[-1, -1, -1, -1, -1, 3] l0fzjmc20e 25
[-1, -2, -1, 3, 3, 3, -1] d4llc0s5ch 25
[-3, -1, -1, -1, -1, -1] i095grngp4 25
[0, -1, -1, -1, -1, -1] iox1iuee6o 25
[-1, -1, -1, -2, -1, -1, -1, -1] dnyfhkmh4q 24
[-1, -2, -1, -2, -2, 2] t4jqe87kvx 24
[-1, 1, 2, 1, 2, 2] 96tc1tq8zh 24
[-2, -1, -2, -2, -3, 1] imnswgkzh0 24
[-2, -1, -2, 1, 2, 2] we35hmptwb 24
[-2, -1, 1, 2, 2, 1] w3ejyavomk 24
[-3, -2, -2, 2, 2, 3] dwn8oziehe 24
[2, 1, 2, 2, 1, -1] e58kza0xyt 24
[2, 2, 1, 2, 2, -4] mivsgcslkd 24
[4, -2, -2, -1, -2, -2] 91fkhxtb2v 24
[-1, -1, 2, 2, 3, 4] 61odsmm1n8 23
[-1, -2, -2, -1, -1, -1, -1] sl04d7xhdf 23
[-1, -2, -2, -1, 3, 3] jtrc3oci0h 23
[-1, -2, -2, -2, -1, -2, -1] 83dnnrg92z 23
[-1, -2, 1, 2, 1, 2] c0a95gbjb0 23
[-2, -1, -2, -1, 3, 3, 3] vz6hq972qi 23
[-2, -2, -1, -2, -1, -1, -1] dpb9wmx42u 23
[-2, 2, -2, 2, -2, -2] aqwg0vb0s1 23
[-2, 2, 1, -1, -2, 2] yhu9q50m9o 23
[1, 1, -1, -1, -1, -1, -1] 3do71f9x6s 23
[1, 1, -1, 1, -1, 1] 70dtwdnxiw 23
[1, 2, 1, 2, 2, -2] x0ecrhxlv0 23
[1, 2, 2, 2, 2, 1] s82pivei5s 23
[2, 1, 2, 2, 1, 2, 2, 2] vzqcw8m8sn 23
[2, 1, 2, 2, 2, 2] 9pbjpbs130 23
[2, 2, 1, 2, 1, 2, 2] y20ag9kco6 23
[3, -3, 1, 4, 3, 4] hzpureyer1 23
[3, 2, 2, 1, 2, 2] 9qjsq6gf5f 23
[-1, -1, -1, -1, -2, -1, -1] bab3449cwd 22
[-1, 1, 2, 2, 1, 2] 69kfuhbpj3 22
[-2, -1, 3, -2, -2, -1] 47elc6whnu 22
[-2, -3, -2, -2, -1, -2] d1ddnjgb98 22
[0, 0, 0, 0, 0, 2] b11lazps34 22
[1, -2, -1, -2, -1, -2] bxtxm9xnwc 22
[1, 2, 1, 2, 2, 2, 1] wo5nil90cr 22
[2, 1, 2, 2, -4, -1, -2] 9xo4419dkb 22
[2, 1, 2, 2, 2, 3] t2urdf6hxc 22
[-1, -1, -1, -1, -1, 1] f0xecc97ac 21
[-1, -1, -1, -2, -1, -2, -2] qm26zfcrn5 21
[-1, -1, 4, -2, -3, -2] emuutl9ctr 21
[-2, -1, -1, -1, -1, -1, -1, -1] geajmf8kse 21
[-2, -2, -1, 3, 3, 4] ncizqhhxon 21
[-2, 1, 2, 2, 1, 2] b68fcg3a17 21
[-2, 2, 1, 2, 2, 3] yigw2ausos 21
[1, -2, 1, -1, -1, -1, -1] a27wao3mhy 21
[2, 1, 2, 2, 2, 5] znc9excgiu 21
[2, 2, 3, -1, -1, -1] waez8tu3t1 21
[4, -2, -2, -1, -2, -1] m7s5uezj57 21
[-1, -1, 2, -1, -1, -1] fizomutzbf 20
[-1, -1, 4, -2, -2, -1] nmo6q9ysv4 20
[-1, -2, -1, -1, -1, -1, -1, -1] ywrnjds48s 20
[-1, -2, -1, 3, -2, -2] btrq5y9wrq 20
[-2, -1, -2, -2, -2, -2] 2cb0hwq7i1 20
[-3, -2, -3, -1, -1, -2] 1vr4o8q2ct 20
[0, 0, 0, 0, 0, 0, 1] w8rza02dpo 20
[1, 1, 1, 1, 1, -3] 9lqm5a6s5a 20
[1, 2, 2, 2, 1, 2, 1] ujwte10gkr 20
[1, 2, 2, 2, 1, 2, 2, 1] wpmlm9rjib 20
[2, 1, 1, 1, 1, 1, 1] eqv9ojuoty 20
[2, 2, 1, 2, 2, -2] lb5dl89zlj 20
[3, -1, -1, -1, -1, -1] 1xwh724qvt 20
[-1, -1, -1, -1, -1, -1, 4] cepimnffu4 19
[-1, -1, -1, 2, 2, 3] ly3jx7sy41 19
[-1, -2, -1, -2, -2, -1, -1] zex7tzjtsb 19
[-2, -1, 1, 4, 3, 2] sh4d6vwisb 19
[-3, 1, 2, 2, 3, 4] 8j8r17ssm7 19
[1, -1, -2, -2, -1, -2, -2] oo8aoveill 19
[1, 1, 1, 2, 2, 1] yvr50ftedx 19
[1, 2, 2, 1, 2, -3, 1] nd9640na08 19
[2, -2, -2, -1, -2, -1] 6jjipnyhb2 19
[3, 3, 3, -3, 1, 1] nwp5w9chsb 19
[-1, -1, -1, 4, -2, -3] otyzow45vm 18
[-1, 3, 3, 3, -1, -2] p7x4vztwt3 18
[-3, -2, -2, -3, -2, -3] 73u4m7r2u6 18
[3, -2, -1, 1, 4, 3] xufi7xeo3q 18
[-1, -2, -1, -2, -2, 2, 2] jqv9qvync0 17
[-2, -1, -2, -2, -3, -2] 7rorbxrkaw 17
[-2, -1, -9, 3, 3, -1] ncmsl03owp 17
[-2, -2, -2, -1, -2, -2, 2] 6f5bqtqveu 17
[-2, 1, -2, -3, 1, 1] 4b09qj4eve 17
[1, 2, 1, 2, 2, 3, -1, -2] mwgjihgebb 17
[2, -2, -1, -2, -1, 3] gi19rfb0wx 17
[2, -2, -2, -1, -2, -2, -2] g1ooi25erf 17
[2, 0, 0, 0, 0, 0, 0] sicb0lhro6 17
[2, 1, 2, -3, -1, -1] 6tb29xx387 17
[2, 1, 2, -3, -2, -2] d1weu6fp2b 17
[2, 1, 2, 2, -2, -2, -1, -2] ypuo7sgf90 17
[2, 2, 3, -2, -1, -2] g5lk1m0l3r 17
[2, 2, 3, 2, 3, 2] o5xg6leab5 17
[2, 3, 2, 3, 2, 2] d02kerr6vx 17
[3, 2, 2, 3, -2, -1] 8bfm578psd 17
[5, -1, -1, -1, -1, -1] svktcdl9rq 17
[-2, -1, -1, -1, -2, -1, -1] 2dxxshx10o 16
[-2, -1, -2, -1, -2, -2, -1] e9fa1fzq8n 16
[-2, -1, -2, -1, -2, 1, 2] bo9gq2vky6 16
[-2, -1, -2, -2, 2, 2, 3, 5] udcfswcpg5 16
[-2, -1, 3, 3, 3, -1, -2] tz2qccj52u 16
[-4, 2, 2, 1, 2, 2] g4ef0yjy4n 16
[0, -2, 2, -2, 2, -2] tmzdtd4bnp 16
[0, 0, 0, 0, 0, 0, 0, 1] te8915h8be 16
[1, 1, -1, -1, -1, -1, -1, -1] ljt0ussqsl 16
[2, 1, 2, 1, -2, 1] v59mpxvjqm 16
[2, 1, 2, 2, -4, 2] 0upmp5o1rt 16
[2, 2, 1, 2, 1, 1, 1] xeewlrssyk 16
[2, 3, -3, -2, -2, -3] 6gmfvxwy7c 16
[3, 2, 3, 2, 2, 3] y49yt3hs1p 16
[-1, -1, -2, -1, -2, -1, -2] lseca4dcky 15
[-1, -2, -1, -2, 1, 2, 2] 7atqiwpcty 15
[-1, -2, -1, -9, 3, 3] pks7t73n6g 15
[-1, 0, 0, 0, 0, 0, 0] ojlm1t4j5e 15
[-2, -1, -1, -1, -1, 2] q5u7i971q2 15
[-2, -1, -1, 4, -5, -2] owbxmt66jc 15
[-2, -1, -2, -1, 3, 3, 3, -1] bg6pew73nu 15
[-2, -1, 9, -3, 1, 1] mr4gs24o8a 15
[-2, -2, -1, 3, 3, 3] gl87p6nymh 15
[-2, -2, 2, 2, 3, 4] j6mcpina5y 15
[-3, 3, 4, -4, 4, 3] ld2ig9n8oj 15
[1, -1, -2, -2, -2, -1, -2] jl0hdojqg6 15
[2, 1, 2, 1, 1, 1, 1, 1] aubtl6fy9a 15
[2, 1, 2, 2, 1, 2, 2, 2, 1] xbgf8v44mv 15
[2, 2, 3, -3, -2, -2] dvtm577n7v 15
[2, 3, 2, 2, 1, 2] z360nel81q 15
[4, -2, -2, -2, -1, -2] za8v3jiz24 15
[-1, -1, -1, -1, 4, -5] bxqo2x9nk1 14
[-1, -1, -1, 1, -1, -1, -1] ob7id64wbh 14
[-1, -2, -2, -1, -2, -1, 3] 1ijgpo2o4d 14
[-1, -3, -1, -1, -1, -1] 6z9c6yc1av 14
[-1, 1, -1, 1, -1, -1] j4dwcixq1s 14
[-2, -1, -2, 1, 2, 1] ek9s1thyx3 14
[-2, -2, -1, -2, -2, -2, -1, -2, -2] bjma9raxt8 14
[-3, -2, -3, -1, -1, -2, -3] kdeh5jotjs 14
[1, -1, 1, -1, -1, -1] i9pwg1n1ik 14
[2, -2, -1, -2, -2, -1] ufc5c2sp7o 14
[2, 1, 2, 1, 1, -2] 3d2fbkxfjx 14
[2, 2, 2, 1, -1, -1] zzvbjbsqgb 14
[2, 2, 2, 2, 1, 2, 1] wvnehtv2n7 14
[3, -2, -2, -1, -2, -1] y87xh73k9y 14
[3, 4, 3, -2, -1, -2] ectg98u8jb 14
[-1, -1, -1, -1, 2, 2, 3] v2hucdfslo 13
[-1, -1, -1, 4, -2, -3, -2] vww20d13gm 13
[-1, -2, -3, 1, 2, 2] ltkf34gaxm 13
[-2, -1, -1, -2, -1, -2, -2] kic8v1yimn 13
[-2, -2, -1, -1, 2, 2, 3] uz66kpr4qb 13
[-2, -2, -3, -2, -3, -2] f9j1e71mcd 13
[-3, -4, -3, 9, -2, -2] 5nkncelj54 13
[-3, 1, -2, 1, -1, -1] 16eazssl1m 13
[1, 1, 1, 1, 2, 2] ao0699qzwa 13
[1, 2, 1, 2, -3, -2] cbuej05vqy 13
[1, 2, 2, 2, -2, -2] a8qey2oa6f 13
[1, 2, 2, 2, 1, 1, 1] o0fur3g6l3 13
[2, -2, 2, -2, -2, -3] ef89fz7ust 13
[2, 1, 1, 1, 1, 1, 2] 09f2m9k5qt 13
[2, 2, -2, -2, 2, 2] wlzslzi280 13
[2, 2, 1, -1, -1, -1] 7f1io7h484 13
[2, 2, 2, -2, -2, -2] qe2qcibygj 13
[2, 2, 2, 1, -1, -2] iqbq76glok 13
[2, 2, 2, 1, 2, -3, 1] wyhk61laiu 13
[3, 2, 2, 3, 2, 3] 5k35auvwuc 13
[3, 4, -1, -1, -1, -1] r4dwvqu386 13
[4, -4, 4, 3, -3, 3] ixcslfdgo1 13
[-1, -2, -1, -9, 3, 3, -1] bkps013j8d 12
[-2, -1, -2, -1, -2, 1, 2, 2] fw3qsep7kx 12
[-2, -1, 3, 3, 4, -2] kk7as0pqr2 12
[-2, -2, -1, -2, -1, -2, -1] 0qm7jth1mi 12
[-2, -2, -2, -1, -2, -2, 2, 2] bt01vzr8c8 12
[-2, 1, 2, 1, 2, 2, 3] segfoc5rsa 12
[-2, 2, -2, -3, 3, -3] i7vcxli3m6 12
[-2, 2, 1, 2, 2, 1] rfwn4hzgze 12
[-3, 2, -2, -2, -2, -1] dz98joowva 12
[1, -1, -2, -2, -3, 1] 37yxop4uin 12
[1, 2, 2, 1, 2, 0] 8l48ym1tmi 12
[1, 2, 2, 2, 1, 2, 2, 1, 2] fw59li8fie 12
[1, 2, 2, 2, 2, 1, 2] av4a9s9ufn 12
[2, 0, 0, 0, 0, 0, 0, 0] 88mg0rxwbc 12
[2, 1, 1, -1, -1, -1, -1] 25620ks2h0 12
[2, 1, 1, 1, 1, 1, -3] 6y5f6poj8v 12
[2, 2, -1, -1, -1, -1] 7ze1h2fasf 12
[2, 2, -2, -2, -1, -1] jzognrdv1d 12
[2, 2, 1, 2, 2, -2, -2] mc7kgazkf5 12
[2, 2, 1, 2, 2, 1, 2, -3] xxt5m0vtm9 12
[2, 2, 1, 2, 2, 1, 2, 2, 2] iwh3uzw3wq 12
[2, 2, 1, 2, 2, 2, 1, 2, 2] 2q3pd2hf3k 12
[2, 2, 2, 1, 2, 1, 2] 3iw0moz6m8 12
[3, -3, 1, 2, -2, -1] sblza9e4cq 12
[-1, -1, -1, -1, -1, 4, -2] xkahhdo5ui 11
[-1, -2, -2, -1, 3, 3, 4] 6ftmo6q05s 11
[-1, -3, -1, -1, -1, -1, -1] lzhv8eam6c 11
[-2, -1, -1, 2, 2, 3, 4] 4ygp86t1jl 11
[-2, -1, -2, -1, -9, 3] xwtb03ak4i 11
[-2, -1, 3, 4, 3, -2] hhvqalj7uc 11
[-2, -2, -1, -1, 2, 2, 2] 4kbbadsxs8 11
[-2, -2, -2, -1, -2, -1, 3] zarqeooarn 11
[-2, 1, 1, 1, 1, 1] smx2uzgdpf 11
[-3, 1, 4, 3, 4, 1] 5vlb8v2lkd 11
[-4, 5, 2, 1, 2, 2] pvlcb1uzpu 11
[0, 2, -2, 2, -2, 2] uhgqsvkg4i 11
[1, -1, -2, 2, 1, -1, -2] yn7un54wwu 11
[1, 1, -2, 1, -1, -1, -1, -1] al7x04lh56 11
[1, 1, 2, 2, 2, 1] os4wyraf2f 11
[1, 2, 1, 1, 3, -3] 5vqdbn3ghs 11
[2, 1, 1, 1, 2, 1] sulqpqsqt4 11
[2, 2, -4, 2, 2, 1] o3zgwf6fsu 11
[3, -3, -2, -2, -3, -2] ti7zjodzis 11
[3, 2, 1, 2, 2, 2] a2p467zxm7 11
[4, -2, -2, -1, -1, -1] 5pg6m59xtl 11
[-1, -1, -1, -1, -1, 4, -5] 5x6oqkfl7a 10
[-1, -2, -1, -2, -1, -2, -2] 34y5semfyd 10
[-1, -2, -1, -2, -2, 2, 2, 3] 4xrnx1cwtn 10
[-1, -2, -1, -4, 2, 2] orhl94uzj4 10
[-1, -2, -2, -1, -1, 2, 2] zzyz4e7lty 10
[-1, 1, -1, -1, -1, 2] zwil5o23pr 10
[-2, -1, -2, -2, -3, -2, -2] 2s37t82rw6 10
[-2, -1, -9, 3, 3, -1, -2] lb3on64555 10
[-2, 1, -1, -1, -1, -2] lr45eeu70z 10
[-3, -2, -1, -1, -1, -1] 1h1yxco9j0 10
[-3, 1, -1, -1, -1, -1] 6hybym9nid 10
[-3, 1, -2, 1, -1, -1, -1] mizifby78p 10
[1, 2, -1, -1, -1, -1] md5qh7gtk0 10
[1, 2, -2, -2, -1, -2] utscxnqlqj 10
[1, 2, 1, 1, 1, 1, 1, 1] 35hshqexyi 10
[1, 2, 1, 2, 2, 2, 2] qjs9vo2er2 10
[1, 2, 2, 2, 1, -1, -2] 6kwehzmxjt 10
[1, 2, 2, 2, 3, -1] 5qjve7i9op 10
[1, 3, 4, 3, -3, 1] rjl9ytq00t 10
[2, 3, -2, -1, 1, 4] 6m4mgps0ob 10
[3, -2, -1, -2, -2, -3] frymksws5v 10
[3, 4, 1, -1, -2, -2] bekgnuj7ih 10
[4, 3, 4, -1, -1, -1] 6w3p29b53v 10
[-1, -2, -1, -2, 1, 2, 2, 1, 2] sy1i05pigh 9
[-1, -2, -1, 3, 4, 3] ntf33hb423 9
[-1, -2, -2, -1, 3, 3, 3] p5a57kokzr 9
[-1, 1, 1, -1, -1, 1, 1, -1, -1, 1] ooskoz8id5 9
[-2, -1, -2, -1, -9, 3, 3] qbbimi34u3 9
[-2, -2, -1, -1, 2, 2, 3, 4] yt7r7t8eu7 9
[-2, -2, -1, -2, -1, 3, 3, 3] y1o6rew409 9
[-3, -2, -2, -3, 3, 2] jkal1jlue8 9
[-3, 1, -2, -1, -2, -2] 9a6eiqnwez 9
[-3, 1, 1, -4, 1, 1] nr4rrwuje6 9
[0, 0, 0, -2, 2, 0] 6q1j9wmpxi 9
[1, -2, 1, -2, 1, 2] 72py15can9 9
[1, 1, -1, 1, -1, 1, -1, 1] r2uaukxshx 9
[1, 1, 2, 2, 1, 1] h4q6fn17i8 9
[1, 2, 1, -2, 1, -2] kymzu37iv8 9
[1, 2, 2, 1, 3, 1] fv885v0oc2 9
[2, 1, -1, -1, 2, 1] ot872oj8lr 9
[2, 1, 2, -2, -1, -2, -1] jso2isoeic 9
[2, 2, 3, -3, -2, -2, -3] 1tbhyejkr2 9
[2, 2, 3, 2, 1, 2] 4g5wbij63q 9
[4, -2, -2, -2, -1, -2, -2] st80bf1lmb 9
[-1, -1, -1, -1, 2, 2, -4, 2] pnyqy3rsvd 8
[-1, -1, -1, 2, 1, 2, -3] 6cehoeoq7e 8
[-1, -1, -1, 4, -2, -2] au8si89lsk 8
[-1, -1, -2, -2, -1, -2, -2, -2] naakkoav0k 8
[-1, -1, 4, -2, -2, -1, -2] yebc53gm5h 8
[-1, -1, 4, -2, -4, -3] imwgyokbgl 8
[-1, -2, -1, -9, 3, 3, -1, -2] p8dgczupg2 8
[-1, -2, -2, -2, -2, -3] d2akhdestq 8
[-2, -1, -2, -1, -1, -1, 2] ukkuh3daa0 8
[-2, -1, -2, -1, -2, 1, 2, 2, 1, 2] dm23s7t5bw 8
[-2, -1, -2, -2, -1, 3, 3] 29lkpzz1jz 8
[-2, -1, 3, -2, 2, 1, 2] y6iqj90cxa 8
[-2, -3, 2, 1, 2, 2] 016bvnpgzz 8
[-3, -2, -2, -1, -1, 2] 8385vzr8oz 8
[-4, -1, -1, -1, 2, 1, 2] vl00oljoe9 8
[1, -2, 1, -2, -1, 3] 3x4xqci269 8
[1, -2, 1, 1, 1, 1] daloby2gbq 8
[1, 2, -2, -1, -2, -1, 3] xeoxdxkqfo 8
[2, -2, -1, 1, 4, 3] x08537rt6a 8
[2, 1, 2, 2, -2, -3] wdwg4u1m54 8
[2, 1, 2, 2, 1, -1, -1] y5ktycgryo 8
[2, 2, 2, 1, 2, 2, -4] b7fii848pr 8
[2, 2, 2, 3, 2, 1, 2] p38jvgjcgr 8
[2, 2, 3, -1, -2, -1] zc3ekkcy94 8
[3, 4, 3, -2, 2, 2] xcz8zegx27 8
[-1, -1, -1, 4, -2, -4] ijy5kjrtkd 7
[-1, -1, -3, 1, -2, 1] pfh1ef690t 7
[-1, -1, -5, -3, 5, -2] qliaye5loe 7
[-2, -1, -2, -1, -4, 2, 2] 7aw0ib2yt0 7
[-2, -1, -4, 2, 2, 1, 2] 5lqnwyr6bt 7
[-2, -2, -1, -2, -2, -1, 3, 3] 3gollut1gc 7
[-2, -2, -1, 3, 3, 3, -1] 16gq8m4u39 7
[-2, -2, -3, -4, -3, 9] idtqjf6ghv 7
[-2, -2, 2, 2, 3, 5, -3] edybpl134w 7
[-2, -3, 1, 2, 2, 1] f2xkg5gutc 7
[-2, 1, -2, -1, 3, 3] 5i910q3ukd 7
[-2, 1, 1, 1, 1, 1, 1] 08ouedzlvp 7
[-2, 1, 3, 2, 2, 3] 67vmk0q57n 7
[-2, 2, -2, -3, 2, -2] pr1c9koj7g 7
[-3, -4, -3, 9, -2, -2, -2] livbcdoe31 7
[-3, 1, -2, 1, -1, -1, -1, -1] to9nam8dzp 7
[-3, 1, 0, -1, -1, -1, -1, -1] k5xv171zhb 7
[-4, -1, -2, 5, -2, -3] csfpv7v6hs 7
[1, 1, -2, -2, -1, -2] 8b1aev7pl7 7
[1, 2, -2, -1, -4, -3] do09gqkuqx 7
[1, 2, -2, -1, 1, 4] yil7ikwz7m 7
[10, -1, -5, 3, -2, -1] tq0djk8j8f 7
[2, -4, -1, -2, 5, -1, -1, -1] pr7zptgtof 7
[2, 2, 1, 2, 2, 1, 2, -3, 1] 409gtz38wi 7
[2, 2, 2, 1, -2, 1] elivpur9wx 7
[2, 2, 2, 2, 1, 2, 1, 2] q1gbekng4y 7
[2, 3, 2, 3, 2, -2] 69a02fsxg0 7
[3, -1, -2, -1, 3, -2] aelo9ddh05 7
[3, -2, -1, -2, -2, -2] b0cntdb691 7
[3, -2, 2, 2, 3, 2] dt37i4q6gu 7
[3, 3, 3, -3, 1, 1, -2] oqqj8n9v0g 7
[3, 4, -2, -1, -2, -1] 8mvb7ddwui 7
[3, 4, 3, -3, 1, 1] 2qu1tq3x2m 7
[-1, -1, -1, -1, 2, 1, -2, 1, -1, -1, 4] jtje0677b8 6
[-1, -1, 2, 2, 2, 2] oh37ukku8d 6
[-1, -1, 4, -1, -5, -3, -2, 7, -2] bunf1qe2qu 6
[-1, -2, -1, -2, 1, 2, 1] 5m050iu134 6
[-1, -3, 1, 2, -2, -1] 1jpo7jo17j 6
[-2, -1, -2, -1, -2, -2, 2] q3t5yt9m0i 6
[-2, -2, -1, -2, -1, -1, -1, -1, -1] z9qv0flj94 6
[-2, -2, -1, -2, -1, -1, -1, 2] 6600rt9hvz 6
[-2, -3, -4, 2, 2, 3] kg0mhzrpuh 6
[-2, 1, -4, -1, -1, -1] eemfiyd035 6
[-2, 2, 2, 3, 2, 3] bbz506uf47 6
[-3, 1, -4, 3, -3, 1] sizqi2k1gt 6
[-3, 1, 1, -2, -1, 3] leny5g0cts 6
[-3, 1, 2, -2, -1, -4] ht2r9lvcq7 6
[-3, 3, 2, 2, 3, -3] 70ueipyf1b 6
[-4, -1, -2, -1, -2, -2] gjvr7hhx3e 6
[0, 0, 0, 0, 1, 2] iub4okdx12 6
[1, -2, 1, -1, -1, -1, -1, 2, 2] 3ophj7rvcv 6
[1, -4, -3, -1, -2, -1] n7uyhp64zn 6
[1, 1, 1, 1, 2, 1, 2, 2] tc7dgh9sgi 6
[1, 1, 1, 2, -2, -2, -1] j12f9r20mt 6
[1, 2, 1, 2, 2, 2, 2, 1] gjyj6hrb76 6
[1, 2, 2, 1, 2, 2, 2, 1, -1] 12hhdrewal 6
[1, 2, 2, 2, 1, -1, -1, 2] t82v81b8nk 6
[1, 3, 4, 3, -2, -1] hnpjg67lhs 6
[2, 1, -2, 1, -2, 1] f5z2uluvuf 6
[2, 1, 2, 1, 1, 1, 1, 1, 1] c0rglmvp64 6
[2, 1, 2, 2, 2, 1, -1, -2] qdbnfe4xqc 6
[2, 2, -9, 5, 2, 2] 7jttj7v0sy 6
[2, 2, 1, 2, 0, 0] xhwvrrt26a 6
[2, 2, 3, -3, -4, -3] tvnl82mgy1 6
[2, 3, -2, -1, 1, 4, 3] 42g6atieo0 6
[2, 3, 2, 1, 2, 2, 2] 5p2fu9a2qy 6
[2, 3, 2, 2, -4, 2] z76twjs9hh 6
[3, -1, -2, -1, 3, 3] tf4c65evq2 6
[3, -3, 1, -2, -1, -2, -2] 8mjts85qhq 6
[3, -3, 3, -3, -2, -2] z1w6y1jodt 6
[3, 2, 2, 3, -3, -2] ru69ti79ld 6
[3, 3, 3, -1, -2, -1] xpg5pxl6tf 6
[4, 3, 4, -1, -1, -1, -1] 4tmv25mg66 6
[5, 2, 1, 2, 2, -2] k4gi69g68s 6
[-1, -1, -1, -1, -1, 4, -3] i2rwjx7zvd 5
[-1, -1, -1, -1, 3, -4] 2asgwjj7lu 5
[-1, -1, -1, -1, 4, -2, -2] jinbs1qoq4 5
[-1, -1, -1, 2, -2, 2] v7n7k7irtm 5
[-1, -1, 2, -1, -1, -1, -1, -1, 2, 1, -2, 1, -1] egfik3q5yc 5
[-1, -1, 2, 2, 3, 4, 3] 8rlzs6zlxq 5
[-1, -1, 4, -2, -2, -1, -2, -2] bsj683fct9 5
[-1, -2, -2, 0, 2, 2] os2hy2tgly 5
[-1, -2, -2, 2, 3, 2] qg0keg2i5o 5
[-1, 1, 2, 2, 2, 1, 2] w6ua4xftdy 5
[-2, -1, -2, 1, 2, 2, 2, 1] ltvr04erm4 5
[-2, -1, 1, 4, 3, 2, 2] 3xviz0cday 5
[-2, -2, -1, 3, 3, 4, -2] ma0lmitg54 5
[-2, 1, 0, 0, 0, 0] xziqpilut9 5
[-3, -2, -2, -1, 2, 2] 11v6orrqly 5
[-3, -2, 5, 1, -1, -1] 9twd94syd0 5
[-3, 5, -3, 1, 2, 1] bxmwe3tcto 5
[-4, -1, 3, -2, -3, -1, 3, -2] inx7ohs7g4 5
[0, 0, 0, 1, -1, 1] 4wscztvxsm 5
[1, -1, -1, -1, 2, -2, -1] vpzsmxrbi2 5
[1, -1, -2, -2, -1, -1, 4] jg1mv6asqd 5
[1, -1, 1, -1, 1, -2, -2] mp8vm4ktkk 5
[1, -2, -2, -1, -1, -1, -1] nm6ps0uaqv 5
[1, 1, -2, 1, -1, -1, -1, -1, 2, 2] cm70ig7gcs 5
[1, 2, 2, 2, 2, 1, 2, 1] w5lnewoj75 5
[2, -2, -3, 2, -2, -2] iol0gpleui 5
[2, -2, 1, 1, -2, 2] b7ika4xfnx 5
[2, -4, -3, 5, -3, -4, 5] yvef7cyicm 5
[2, 1, -1, -1, 2, 1, 1] s2gb8gginz 5
[2, 2, 1, 2, 1, -3] 9x9veu9c6u 5
[2, 2, 2, 2, 1, 2, 1, 2, 2] zd88cvuot0 5
[2, 2, 2, 3, -1, -1] odqpwcrq7t 5
[2, 2, 3, -6, 2, 2] veg2b81c76 5
[2, 3, -1, -2, 1, -3] hohxq6ue5j 5
[3, -2, -3, -2, 5, 1] 5ay1hus7gl 5
[3, 1, -1, 1, -1, 1, -1] 1qui2fzo2r 5
[3, 2, 1, 2, -2, -1] 4e5ouyygsb 5
[3, 3, -1, -1, -1, -3] etlcspdn76 5
[5, -3, 1, 2, 1, 2, 2] pq7luuzvte 5
[-1, -1, -1, -1, 2, 1, -2, 1, -1, -1, 4, -2] eeow0rla09 4
[-1, -1, -1, -1, 2, 2, -4, 2, -1, -1, 4, -2] kgyefj1zpy 4
[-1, -1, -1, -1, 4, -3, 1] kzo8eyvxh4 4
[-1, -1, 2, -1, -1, -1, -1, -1, 2, 1, -2, 1, -1, -1, 4] csl0dt5cyr 4
[-1, -1, 2, -1, -1, -1, -1, -1, 2, 2] joo1mtedjv 4
[-1, -1, 3, -2, -3, -2, 5, 1] rejk96ull1 4
[-1, -2, -2, -1, 3, 3, 3, -1] wdn7b6chvb 4
[-1, -2, -2, -1, 3, 3, 4, -2] 860jytxmd9 4
[-1, 2, 2, 2, 1, 2, 2] vic14w3ewz 4
[-2, -1, -2, -1, -2, 1, 2, 2, 1, 2, 2] vzxz85df00 4
[-2, -1, -2, -2, -1, 3, 3, 4] 61i6pvw69w 4
[-2, -1, -2, -2, 2, 5] j2j43ha21n 4
[-2, -1, 3, -3, -2, -2, 2] 9z3q4pu9kb 4
[-2, -1, 3, -3, 1, -5] 9z2qqj2xud 4
[-2, -2, -1, -2, -2, -1, 3, 3, 4] u5txcenoz5 4
[-2, -3, -2, 5, 1, -1, -1] 2hjnh6mi2g 4
[-2, -8, 1, 5, -1, -4] vroayzyqlv 4
[-2, 1, -1, -1, 2, 1] v90n4ll30p 4
[-2, 1, -1, -1, 4, -3] m06xkzdtta 4
[-2, 1, -4, -4, -4, 7] l6mfnylt0r 4
[-2, 1, 2, 2, 1, 2, 2, 2] i4a5bxiwbi 4
[-3, -2, -2, -3, -2, -3, 5] vl6343v4k3 4
[-3, -2, -2, 2, 2, -4, 2] 3mt792ctc1 4
[-3, 1, 1, 1, 2, 2, 2] tamz3docum 4
[-3, 2, 3, -2, -1, 1, 4] hgmjioug88 4
[-3, 2, 3, -2, -1, 1] hbrwbby9j3 4
[-4, -1, -1, -1, 2, 2] s1yzzqb9kq 4
[-4, -1, -1, 2, 2, 3] 1iu9fngatj 4
[-4, -1, -2, -1, 1, 5, -2] 5od395nl0g 4
[-5, 3, -3, -2, -2, -3] zmce4quvxe 4
[1, -1, -1, -1, -1, 2, 2, -4] 7hq3jo5t7k 4
[1, -1, 1, -2, -2, -5] 19xyqe3tra 4
[1, 1, 1, 2, -2, -2, -1, -2] tnh0wx3qvd 4
[1, 2, 2, 1, 1, -1] mfn4bap4my 4
[1, 2, 2, 2, 1, -1, -1, 2, 1] ug7wibjrzq 4
[2, -2, -3, 3, -3, 0] 9x7sb5opzt 4
[2, 1, -2, 1, -1, -1, -1] 6m7tyq16bx 4
[2, 1, 2, 2, 1, -1, -1, -1] osr8iqp3d7 4
[2, 1, 2, 2, 2, 2, 1, 2, 1] gsmtn0qmem 4
[2, 2, 1, 2, -3, 1, 4, 3] vumv9sna06 4
[2, 2, 1, 2, 2, 1, -1, -1] b5a0s35om1 4
[3, -2, 2, 2, 3, 5] oo9t2k27sm 4
[3, -3, -2, -2, -3, -2, -2] nyq283l0i9 4
[3, -3, 2, 3, 3, 3] hibty7xcml 4
[3, 2, 3, 1, 1, 1, 1] lbcvy94fkw 4
[3, 3, -1, -2, -1, 3] 24h1x23c5i 4
[3, 3, 3, -1, -2, -3, 1] 5tazogyxfd 4
[3, 4, -2, -1, -2, -1, -2] m59zzwnw60 4
[4, -2, -1, -2, -1, -2, -2] 2cdkg5uuzi 4
[-1, -1, -1, 2, -1, -1, -1, -1, -1] zjpkml6sys 3
[-1, -1, -2, 1, 1, -2, 1] 15mv5la9ej 3
[-1, -1, -3, 1, 2, -2, -1] k8ss2rp84r 3
[-1, -1, 1, -2, 1, -2, 1] hjuads3xjx 3
[-1, -1, 1, 3, 2, 1] vurupzdwtk 3
[-1, -1, 2, 2, 2, 1, 2, 2] empaqxsk2d 3
[-1, -1, 3, -2, -3, -2, -2] tis0humb24 3
[-1, -1, 3, -2, -3, -2, 5, 1, -1, -1] u6k5sejc5z 3
[-1, -1, 4, -2, -3, -4, -2] f4wh06w4dv 3
[-1, -2, -1, -1, -1, 2, -3] ic7nmq4vvd 3
[-1, -2, -2, -1, -1, 2, 2, 2, 1, 2] awnu394k64 3
[-2, -1, -4, -3, -2, 7] 9c5j6o3gre 3
[-2, -1, -4, 2, 2, 1, 2, 2] w8qqk6ye0s 3
[-2, -1, 3, -3, 1, -5, -2] qs9ysdt0vc 3
[-2, -1, 3, 3, 3, -1, -2, -1] xesna3ol9l 3
[-2, -2, -3, -2, -1, -2] m4w0q88bqe 3
[-2, 1, -3, 1, 2, 2] 32fm6xysm7 3
[-2, 1, 1, -2, 1, -1, -1] htbvdbwnn1 3
[-3, 1, 2, -2, -1, -4, -3] cr04x7y8qt 3
[-3, 5, -3, -4, 5, -1] kc9qwa75lo 3
[-4, -1, -1, -1, 2, 2, 3] nk2zdb236w 3
[-4, -3, -1, 2, 2, 3] b4nsej19e1 3
[-4, -3, 2, 3, -3, 1] rm9ufyp8ea 3
[-9, 2, 3, -1, -2, 1] gfpzbj4rx3 3
[0, -1, -1, -1, -1, -1, 3] mpddby7f37 3
[0, 0, -1, -2, 0, 0, 0, 0] l5s13byrqc 3
[0, 1, 2, 2, 2, -2, -2, -2, -1] ax9xd048p7 3
[1, -1, -1, -1, -1, 2, 1] 4myk8topzl 3
[1, -1, -1, -3, -3, 3] ha74aq5gq5 3
[1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1] wj7nd9268x 3
[1, -1, -1, 4, -1, -5, -3, -2] bn8p8xvmzu 3
[1, -2, -1, 1, 4, 3, 2] 2y6qgc5zse 3
[1, -2, 1, -1, -1, 4, -2, -3] 8yflxjf2ai 3
[1, 1, -2, -1, 1, 4, 3] 00k1jx6cd2 3
[1, 1, -2, 1, -1, -1, -1, -1, 2, 2, -4, 2] slfdsltn17 3
[1, 3, 4, 3, -2, -1, -2] xl6cizef0x 3
[2, 1, 1, 1, -1, -1, 4] d6hhbo4ziv 3
[2, 1, 2, 2, 3, -6] heoylotshl 3
[2, 2, -4, 2, -1, -1, 4, -2, -3] eep2xuesql 3
[3, -2, -1, -2, -1, -2, -2] 13ujy4ekbv 3
[3, 4, 3, -2, -1, -2, -2] vphyv7dmh9 3
[4, -2, -2, -1, -2, -1, -1, -1] lcfatagwif 3
[5, -2, -2, -1, 5, -2, -2, -1, 5, -2, -2, -1, 5, -2, -2, -1] 2tvgukrl76 3
[-1, -1, -1, -1, 2, 1, -2, 1, -1, -1, 4, -2, -3] oz4o1yfqkc 2
[-1, -1, -1, -1, 2, 2, -4, 2, -1, -1, 4, -2, -3] 4gk30k80ob 2
[-1, -1, -1, -1, 2, 2, 3, -1] oni1nvmb7s 2
[-1, -1, -1, -2, 2, 1, 2, -3, -2] qu3t2jih4k 2
[-1, -1, -1, 1, 1, -2, 1, -1, -1, -1, -1] 4exf79buer 2
[-1, -1, 4, -1, -5, -3, -2, 7, -2, -5] khq1o1w6as 2
[-1, 1, 0, -1, -1, -1, -1, 2] kymtdjirxm 2
[-1, 1, 1, -2, 1, -1, -1, -1, -1, 2] ticmdilwxc 2
[-2, -2, -1, 5, -2, -2, -1, 5, -2, -2, -1, 5, -2, -2, -1, 5, -2, -2, -1] yne347ko7x 2
[-3, 1, 1, -4, 1, 1, -2, -2, -1, -2, -2, -1, 3, 3] s9l5bpf6s3 2
[-3, 1, 1, -4, 1, 1, -2, -2] w55j9bbfei 2
[-4, -1, -1, 4, -2, -4, -3, 6] 83x5a0a6sw 2
[-4, -3, 1, -4, -3, -4, 5] e1y4gik86b 2
[-4, -3, 2, -4, -3, -4, 5] mz2atyifiq 2
[-4, -4, 1, 2, 2, 3, 5] jt21nugvym 2
[-4, 4, 1, 2, -3, 1, 2] osvi3x2gpk 2
[1, -1, -1, 4, -1, -5, -3, -2, 7, -2] wel3x3e7oo 2
[1, -1, -1, 4, -2, -3, -4, -2] cyvkh0ozck 2
[2, -2, 1, -1, -1, 1, -2, -1, -1] nmglju7d4y 2
[2, -3, -2, -2, 2, 2, -4, 2, -2, -3] ea62zuq136 2
[2, 1, 2, -3, 3, 5, 2, 2] 534ubs54ii 2
[3, -3, 1, 1, -4, 1, 1, -2, -2, -1, -2, -2, -1] 5diypsgm16 2
[3, -3, 1, 1, -4, 1, 1, -2] jowjgcvhy7 2
[3, 4, 3, -3, 1, 1, -4, 1, 1, -2, -2, -1, -2, -2, -1] 0de75ac7pd 2
[3, 4, 3, -3, 1, 1, -4, 1, 1, -2, -2, -1, -2, -2] ktqcqf8vak 2
[4, -4, 4, 2, 3, -5, 2, 3, 3, 4] eu907v34a9 2
[4, 3, -3, 1, 1, -4, 1, 1, -2, -2, -1, -2, -2, -1, 3, 3] 23hjg2dlfx 2
[5, -5, -4, 4, -2, -5, -2] uytstxb3ut 2
[1, 3, 4, 3, -3, 1, 1, -4, 1, 1, -2, -2, -1] mqzkak64b8 1
[1, 3, 4, 3, -3, 1, 1, -4, 1, 1, -2, -2] og420b0r9z 1
[1, 3, 4, 3, -3, 1, 1, -4, 1, 1] drc13xfxji 1
import mido
from mido import MidiFile, MidiTrack, Message
import csv
import ast
def intervals_to_midi_pattern(intervals, start_note=60):
"""
Converts a list of intervals into a MIDI pattern (sequence of notes).
:param intervals: A list of intervals (difference in pitch between notes).
:param start_note: The MIDI note number to start the pattern from.
:return: A list of MIDI note numbers forming the pattern.
"""
pattern = [start_note]
for interval in intervals:
pattern.append(pattern[-1] + interval)
return pattern
def append_pattern_to_track(track, pattern, bar_duration=1920):
"""
Appends a MIDI pattern to a track, followed by silence to align the next pattern to a new bar.
:param track: The MIDI track to append the pattern to.
:param pattern: The MIDI pattern to append.
:param bar_duration: The duration of a bar in MIDI ticks (default is 1920 for a 4/4 bar).
"""
is_first_note = True
pattern_duration = 0
previous_note = None # Initialize previous note
for note in pattern:
# Duration of a note alternates for a swing rhythm
note_duration = 320 if is_first_note else 160
# Accentuate notes on the downbeat that are higher than the previous note
if is_first_note and (previous_note is None or note > previous_note):
velocity = 120 # Higher velocity for accented note
else:
velocity = 30 # Regular velocity
note_on = Message('note_on', note=note, velocity=velocity, time=0)
note_off = Message('note_off', note=note, velocity=velocity, time=note_duration)
track.append(note_on)
track.append(note_off)
previous_note = note # Update the previous note
pattern_duration += note_duration
is_first_note = not is_first_note
# Add silence to align the start of the next pattern with a new bar
remaining_duration = bar_duration - (pattern_duration % bar_duration)
if remaining_duration < bar_duration:
track.append(Message('note_off', note=0, velocity=0, time=remaining_duration))
# Add an extra bar of silence
track.append(Message('note_off', note=0, velocity=0, time=bar_duration))
def create_combined_midi(patterns, output_file):
"""
Creates a single MIDI file from a list of MIDI patterns, each starting at a new bar.
:param patterns: A list of MIDI patterns.
:param output_file: The filename for the output MIDI file.
"""
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)
for pattern in patterns:
append_pattern_to_track(track, pattern)
mid.save(output_file)
def create_midi_for_single_pattern(pattern, pattern_id, index, num_instances, bar_duration=1920):
"""
Creates an individual MIDI file for a given pattern.
:param pattern: The MIDI pattern.
:param pattern_id: The ID of the pattern.
:param index: The index number of the pattern.
:param num_instances: The number of instances of the pattern.
:param bar_duration: The duration of a bar in MIDI ticks.
"""
filename = f"pattern_{index}_{num_instances}_{pattern_id}.mid"
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)
append_pattern_to_track(track, pattern, bar_duration)
mid.save(filename)
# Read melodic patterns from CSV file and create individual MIDI files
with open('JazzPatt.csv', newline='') as csvfile:
reader = csv.reader(csvfile, delimiter=';')
next(reader) # Skip the header row
for index, row in enumerate(reader, start=1):
pattern = ast.literal_eval(row[0])
pattern_id = row[1]
num_instances = row[2]
midi_pattern = intervals_to_midi_pattern(pattern)
create_midi_for_single_pattern(midi_pattern, pattern_id, index, num_instances)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment