From 30d6b920622a3db0e5998a8706268a637f6efd17 Mon Sep 17 00:00:00 2001 From: MasterGordon Date: Sun, 27 Jan 2019 22:58:50 +0100 Subject: [PATCH] Added Loop to refrain + different length --- bin/technomaker/MelodyMaker.class | Bin 3963 -> 3999 bytes src/technomaker/MelodyMaker.java | 49 ++++++++++++++++-------------- test1.mid | Bin 4108 -> 3994 bytes 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/bin/technomaker/MelodyMaker.class b/bin/technomaker/MelodyMaker.class index 47945809f984f46346e60dd2276ade00449362d3..78e2295039d00740d44444bfef27a6aba75859b3 100644 GIT binary patch delta 1444 zcmb7^?{8CO6vw}}z4w;hb=@89gtFUBBV?@LDrUiKvb~rXz<>^_j1t7&ZOvA;b#>Iq zFDW7w`85Yua5&g3n@(X9htjHxKY}kbzA);4U}9pTiN4XqA58q-yTYcvFy=N-pXa&f zoaZ^;&pG#xvf*;&^FQDJ5I{AqOe%xY5(kb7PIT-8+-f zE*H+>ys<~VT^Ke7WoYBUc+-Ii z0UqmevF>1FPb{7cC3~VeV_r7ycU)7vAE5FomIYMr+eP!%3C?b;KmxUR!qA;RIs0IP zz+6`uVI}C>AIM>EpjcR#!@)`J+7RPdg#zQevcyx3HMkECVh8tJd9SY&f9f+h_yE6% z@1oR;bVpyL&R#!;Z;Gt-;f|KRm7>2yjMN9h@1SA|N5VNA)1-DWlErbYHF6ad0lrX` z5jX>?a&x&gV=lLHIfY8PG}lT#sTd#A_D*{iEmLR+`y^+oG_B{bx>n|XjZe;EP1E1( z`>oiiTMqv8e>fcYheL^&_NVoKJNeb6nH%MkDW-0>gxZb;oIivDG(yEjXb9mBJWA0v zV>Oy6-4^bI`D{Zo9z!>_V?Q3p^IV-o3x?5(%ZTDVwBZ`s@g<{vOSyk!yr0o!3BPtm zYILBJXHj&d`k|0U0lsGth0F@^9Zqp(=LNoo!I{Vdj$=3WK;nT3^k64syh!&Vh|^F7 z;W}yr_wU@Y;b|=5=;ce1VNaVm2|YBIxidbCc$K|w3mmZdbG7~vlEVcpi;*nGvbZ#c zMzdE;u_#Q!7;u-(HytdoIH@u_LNh*c`%>FxHLHc2hn(P1{Y>X1d`zfv!P?b%K*8p(sVT0pZ~0-P`ExL$;NBN`DH7~S z#M*;TN8&A=9ZpW*F$UemDNgHGZTIJ8hZB+Jwz^2y_DEBE)WMkUwpS!4_`t#B%@pmC zcxy0xXn!Kw;bMvprD$hQLZRSEvqG#hxUD-DPlOZQ(MZQb4$dePnwFKogcw_^dt&V^ z(e4b+DX7tdv4oRpb{WIREiFZEyS_imWwf`ju4 z>uyug#hhN^_|ED7n&Np%0&f3>YmQnavx73?RMM%}X8xXe91Dst+@wG13>F*>KnfnE0gR4-DLPhZ<`W5`-H!%yD+-1JU9 z{TCU?XQ-{YdAKUjFo$oE6AcTzrP=nXjVVrQEsgW|0%8~^BVbL>^XQ!-GvH3jdXZuY zXsT2_Y98N+=RMXG&5IOPH+a;{qQ1xiHI+8m-|Vracw(o%KHHNtY~H?GjsHp3Ym{{- z&1^=1)7uxhHN@-oPc3T(603=1H+Rasjx4s~<|+Jysb;$XdWL#-u#24}pJz9%>>&*C@Uk(q^T zeq~f#)y}?NdIn3QM=1V$NQoTnZD0@Ueo9vuh z74TteXhuXy3)pYS7FsJ?QCha5|CeozZuO;kjI05@M$A?InlQ%h_Jzc;L@N!;r&RN( z#y6;GTQ#?DYB|0tK|Sl_*xf=TArkbko&#*+AX|h*jnJr1@`@<(s=z-injI0>B)#%K z&T9;Clo7!-$}uJ-!CBcgTDxL}MH+h+VlEl^IfXeP9A@4L1MF#iM^0I?{0iE6#uu4xxZ~^sGg^v|Qhb);s~Kt* zsctYKlxsKJSC#cP diff --git a/src/technomaker/MelodyMaker.java b/src/technomaker/MelodyMaker.java index f39192b..cd16f7f 100644 --- a/src/technomaker/MelodyMaker.java +++ b/src/technomaker/MelodyMaker.java @@ -66,8 +66,9 @@ public class MelodyMaker { addStrophe(40 * 3); addRefrain(40 * 4); addStrophe(40 * 5); - addRefrain(40 * 6); - addStrophe(40 * 7); + addStrophe(40 * 6); + generateRefrain(); + addRefrain(40 * 7); // for (int i = 0; i < 8; i++) // addRefrain(40 * i); } @@ -77,14 +78,15 @@ public class MelodyMaker { int variation = 1 + (int) (Math.random() * 3); for (int i = 0; i < 40;) { + int länge = (int) (1 + Math.random() * 2); - i += 1 + Math.pow(Math.random() * 3, 2) * 0.3; + i += länge; ton += new Random().nextInt(variation * 2 + 1) - variation; - if (ton <= 0) - ton = 0; - if (ton >= 128) - ton = 127; + if (ton <= 10) + ton = 10; + if (ton >= 90) + ton = 90; // **** set instrument to Piano **** ShortMessage mm = new ShortMessage(); @@ -100,36 +102,37 @@ public class MelodyMaker { // **** note off - middle C - 120 ticks later **** mm = new ShortMessage(); mm.setMessage(ShortMessage.NOTE_OFF, ton, 127); - me = new MidiEvent(mm, (long) 1 + i + offset); + me = new MidiEvent(mm, (long) länge + i + offset); t.add(me); } } - ShortMessage[] refrainOn = new ShortMessage[40]; - ShortMessage[] refrainOff = new ShortMessage[40]; + ShortMessage[] refrainOn = new ShortMessage[20]; + ShortMessage[] refrainOff = new ShortMessage[20]; int[] tonLänge = new int[40]; private void generateRefrain() throws InvalidMidiDataException { int variation = 1 + (int) (Math.random() * 3); - for (int i = 0; i < 39;) { - i += 1 + Math.random() * 2; + for (int i = 0; i < 19;) { + int länge = (int) (1 + Math.random() * 2); + i += länge; ton += new Random().nextInt(variation * 2 + 1) - variation; - if (ton <= 0) - ton = 0; - if (ton >= 128) - ton = 127; + if (ton <= 10) + ton = 10; + if (ton >= 90) + ton = 90; ShortMessage mm = new ShortMessage(); mm.setMessage(ShortMessage.NOTE_ON, ton, 127); ShortMessage mm2 = new ShortMessage(); mm2.setMessage(ShortMessage.NOTE_OFF, ton, 127); - if (i >= 40) - i = 39; + if (i >= 20) + i = 19; refrainOn[i] = mm; refrainOff[i] = mm2; - tonLänge[i] = i; + tonLänge[i] = länge; } } @@ -143,16 +146,16 @@ public class MelodyMaker { MidiEvent me = new MidiEvent(mm, (long) 0 + offset); t.add(me); - if (refrainOn[i] == null) { - System.out.println("exit"+i); + if (refrainOn[i % 19] == null) { + System.out.println("exit" + i); continue; } // **** note on - middle C **** - me = new MidiEvent(refrainOn[i], (long) i + offset); + me = new MidiEvent(refrainOn[i % 19], (long) i + offset); t.add(me); // **** note off - middle C - 120 ticks later **** - me = new MidiEvent(refrainOff[i], (long) tonLänge[i] + offset); + me = new MidiEvent(refrainOff[i % 19], (long) tonLänge[i % 19] + offset + i); t.add(me); } diff --git a/test1.mid b/test1.mid index 2e8684fd2006b7a67d0fc9ed29d5e1867f2e8060..bcdd406bbaede97c2969fc2fcd5e559f89e082ea 100644 GIT binary patch literal 3994 zcmeH}%TiN85QcjusJPIT58xX}xCBTD5I_hNw^S(imS~wmHdd}en7P?y-){JcY1c#7L$>P%q-_rY?qS?R&26OKa&EgJbXr zWFf~&))C=!I?imDFYHb~#jC86c9lde538hYxk=KNl{%bukk^aT_2RU{skEEmCb$J| zfrUOGN90J9KNkDubGLpRO}CnIg-l-4h7p>s$RTD_)2Iz)~)JDuQ+K5@%HrbAC@>XLI(wYY#TXVylR^Ec@x*D3Jr8be;;0m}h zk^^$g5NRyY9oL^;S;4s6RvY(tv$plW7|YLMiKB#%1V zdf}PdqPuId7p2uHu}mc5lSjm#MN1{>mWtvHRTSSoDp=n>R4c7)s#0fA%^+951<0jJ zS~(CE>%WgUji<5;R5&q_%d)A`PQG&#<|$fx;dZY=P`aBb+A=z*LiY77gmSkaJ~U-0Lkm% zb#O=pxg6w`AoF)!((8h;z7CF-xaCQj&ZZ|Payc%J6VE!E zsJDsvwt!o}GFQKY_zvQR&ToTncjc4sVw*pD9i*vk6vcwWjo>vP{+sKN&)1G)7v~?2 zg>mXbZu(`NsOJX8ZFK2oaZP%2ocSQfdpUhmuIIdQjlL3mwG>}3a*h20`~{zcjs0t% zgg?mP%O1|0cbk~w)Qow?UDAyG)STWTrsVfIoZ4qBdn12y${x-h?}?}1 vEQ5=m{>}0{BKKp3+@az14?Hezr$UppI)~~U!u76vQ2C(p!N>O?{Kx+Wi+Vv~