From a64bbc7633c41251ad75f85d87d7513a4d4fe7bf Mon Sep 17 00:00:00 2001 From: Mirko Di <84203046+mirk0dex@users.noreply.github.com> Date: Fri, 17 Nov 2023 15:46:28 +0000 Subject: [PATCH] Add BPM tags to built-in beat loops (#5439) (#6747) * Added floating-point vorbis BPM tags to files in lmms/data/samples/beats * Added rounded BPM to filenames, surrounded by square brackets and separated from the rest of the filename by an underscore --- .../{briff01.ogg => briff01 - 140 BPM.ogg} | Bin 27665 -> 27680 bytes ...e_bass01.ogg => rave_bass01 - 180 BPM.ogg} | Bin 21713 -> 21728 bytes ...e_bass02.ogg => rave_bass02 - 180 BPM.ogg} | Bin 19925 -> 19940 bytes .../{tb303_01.ogg => tb303_01 - 123 BPM.ogg} | Bin 57560 -> 57575 bytes ...bass01.ogg => techno_bass01 - 140 BPM.ogg} | Bin 12535 -> 12550 bytes ...bass02.ogg => techno_bass02 - 140 BPM.ogg} | Bin 14282 -> 14297 bytes ...nth01.ogg => techno_synth01 - 140 BPM.ogg} | Bin 57923 -> 57911 bytes ...nth02.ogg => techno_synth02 - 140 BPM.ogg} | Bin 79129 -> 79117 bytes ...nth03.ogg => techno_synth03 - 130 BPM.ogg} | Bin 58176 -> 58164 bytes ...nth04.ogg => techno_synth04 - 140 BPM.ogg} | Bin 68143 -> 68158 bytes ...{909beat01.ogg => 909beat01 - 122 BPM.ogg} | Bin 36745 -> 36760 bytes .../{break01.ogg => break01 - 168 BPM.ogg} | Bin 18545 -> 18560 bytes .../{break02.ogg => break02 - 141 BPM.ogg} | Bin 23345 -> 23360 bytes .../{break03.ogg => break03 - 168 BPM.ogg} | Bin 20580 -> 20595 bytes ...eat01.ogg => electro_beat01 - 120 BPM.ogg} | Bin 45021 -> 45036 bytes ...eat02.ogg => electro_beat02 - 119 BPM.ogg} | Bin 19679 -> 19694 bytes ..._loop01.ogg => house_loop01 - 142 BPM.ogg} | Bin 21398 -> 21413 bytes .../{jungle01.ogg => jungle01 - 168 BPM.ogg} | Bin 33772 -> 33787 bytes ...hihat01.ogg => rave_hihat01 - 180 BPM.ogg} | Bin 23405 -> 23420 bytes ...hihat02.ogg => rave_hihat02 - 180 BPM.ogg} | Bin 21052 -> 21067 bytes ...e_kick01.ogg => rave_kick01 - 180 BPM.ogg} | Bin 21596 -> 21611 bytes ...e_kick02.ogg => rave_kick02 - 180 BPM.ogg} | Bin 19349 -> 19364 bytes ...snare01.ogg => rave_snare01 - 180 BPM.ogg} | Bin 20955 -> 20970 bytes ...rass01.ogg => latin_brass01 - 140 BPM.ogg} | Bin 22401 -> 22412 bytes ...tar01.ogg => latin_guitar01 - 126 BPM.ogg} | Bin 43831 -> 43846 bytes ...tar02.ogg => latin_guitar02 - 140 BPM.ogg} | Bin 64762 -> 64750 bytes ...tar03.ogg => latin_guitar03 - 120 BPM.ogg} | Bin 135040 -> 135028 bytes include/DataFile.h | 3 +- src/core/DataFile.cpp | 75 +++++++++++++++++- 29 files changed, 74 insertions(+), 4 deletions(-) rename data/samples/bassloops/{briff01.ogg => briff01 - 140 BPM.ogg} (98%) rename data/samples/bassloops/{rave_bass01.ogg => rave_bass01 - 180 BPM.ogg} (98%) rename data/samples/bassloops/{rave_bass02.ogg => rave_bass02 - 180 BPM.ogg} (97%) rename data/samples/bassloops/{tb303_01.ogg => tb303_01 - 123 BPM.ogg} (98%) rename data/samples/bassloops/{techno_bass01.ogg => techno_bass01 - 140 BPM.ogg} (92%) rename data/samples/bassloops/{techno_bass02.ogg => techno_bass02 - 140 BPM.ogg} (92%) rename data/samples/bassloops/{techno_synth01.ogg => techno_synth01 - 140 BPM.ogg} (86%) rename data/samples/bassloops/{techno_synth02.ogg => techno_synth02 - 140 BPM.ogg} (87%) rename data/samples/bassloops/{techno_synth03.ogg => techno_synth03 - 130 BPM.ogg} (92%) rename data/samples/bassloops/{techno_synth04.ogg => techno_synth04 - 140 BPM.ogg} (99%) rename data/samples/beats/{909beat01.ogg => 909beat01 - 122 BPM.ogg} (99%) rename data/samples/beats/{break01.ogg => break01 - 168 BPM.ogg} (94%) rename data/samples/beats/{break02.ogg => break02 - 141 BPM.ogg} (89%) rename data/samples/beats/{break03.ogg => break03 - 168 BPM.ogg} (95%) rename data/samples/beats/{electro_beat01.ogg => electro_beat01 - 120 BPM.ogg} (99%) rename data/samples/beats/{electro_beat02.ogg => electro_beat02 - 119 BPM.ogg} (98%) rename data/samples/beats/{house_loop01.ogg => house_loop01 - 142 BPM.ogg} (98%) rename data/samples/beats/{jungle01.ogg => jungle01 - 168 BPM.ogg} (98%) rename data/samples/beats/{rave_hihat01.ogg => rave_hihat01 - 180 BPM.ogg} (98%) rename data/samples/beats/{rave_hihat02.ogg => rave_hihat02 - 180 BPM.ogg} (98%) rename data/samples/beats/{rave_kick01.ogg => rave_kick01 - 180 BPM.ogg} (98%) rename data/samples/beats/{rave_kick02.ogg => rave_kick02 - 180 BPM.ogg} (97%) rename data/samples/beats/{rave_snare01.ogg => rave_snare01 - 180 BPM.ogg} (98%) rename data/samples/latin/{latin_brass01.ogg => latin_brass01 - 140 BPM.ogg} (95%) rename data/samples/latin/{latin_guitar01.ogg => latin_guitar01 - 126 BPM.ogg} (95%) rename data/samples/latin/{latin_guitar02.ogg => latin_guitar02 - 140 BPM.ogg} (92%) rename data/samples/latin/{latin_guitar03.ogg => latin_guitar03 - 120 BPM.ogg} (90%) diff --git a/data/samples/bassloops/briff01.ogg b/data/samples/bassloops/briff01 - 140 BPM.ogg similarity index 98% rename from data/samples/bassloops/briff01.ogg rename to data/samples/bassloops/briff01 - 140 BPM.ogg index a307df85f6151c40ff0a6c3fd5b8a582339da978..0b9cc32f7f835256fca45fe5ece8c27a9a252fd2 100644 GIT binary patch delta 42 wcmbPugK@zP#t8vzcDw#t8vz<&$bc1#~BdnX@ne!Nvs**#M7c2|oY; diff --git a/data/samples/bassloops/rave_bass01.ogg b/data/samples/bassloops/rave_bass01 - 180 BPM.ogg similarity index 98% rename from data/samples/bassloops/rave_bass01.ogg rename to data/samples/bassloops/rave_bass01 - 180 BPM.ogg index 920ff4a740fbd4b30956fb8fe2dad63cdcd7d933..335195747d6511aea4b5bff8c02b0b64cff13e43 100644 GIT binary patch delta 42 wcmcb(lJUVx#t8vz`{Q3d;j@_-W-83cz`(!_#7+Uewua`GdKLy|8~dF?06bm{yZ`_I delta 27 hcmaE`lJVk7#t8vz&S`(t_;e?RnX)hd!Nz$`ApnsI2=@R0 diff --git a/data/samples/bassloops/rave_bass02.ogg b/data/samples/bassloops/rave_bass02 - 180 BPM.ogg similarity index 97% rename from data/samples/bassloops/rave_bass02.ogg rename to data/samples/bassloops/rave_bass02 - 180 BPM.ogg index ff38123df91394ec91ae66491387332d88c9dc7f..230d99d2e95952ce7cbfe2fd30daa25118a4f8e6 100644 GIT binary patch delta 42 wcmcaQoAJqP#t8vz&8lkNd^QuqOobU47#O&L*eSr**3iO0&(PRnW51g(002)4$N&HU delta 27 hcmaDdoAK&w#t8vz|I>>X@##(sGi6}_f{pXsd;yy#36KB) diff --git a/data/samples/bassloops/tb303_01.ogg b/data/samples/bassloops/tb303_01 - 123 BPM.ogg similarity index 98% rename from data/samples/bassloops/tb303_01.ogg rename to data/samples/bassloops/tb303_01 - 123 BPM.ogg index 41e1b1fc478c57418c6c540c4c22f94da81428bf..1057201756ed450c4c6b871ec2676095d220e741 100644 GIT binary patch delta 118 zcmca{kooyR<_Q68+ox)Z3ffEzvk+!vU|`?|Vy6IKTSFrwJu@?djgv~`MUsJHKwvUA z(u^5M-wu>$(3mWxpw7s?*-=4GK&eJ?0UrwkvwwPeFatwFFIX{HH4Bir;qZ@Ym&w%z LE}M@T2yFlW)Bhd> delta 103 zcmaEUkom?z<_Q68TC@M+&r>6%qFgV13Rf3f=1DS_J zR%^>mUau(2n6&wwBCEh;eWN6((gVE+r7S?^=0Dpq6({o>DKN%to@m4@F!`cW3{+{u zZiG@+Aaiwq?j5Dc8=MpwZ8z&WU*w-`8*B?R^(8_n8;I#TZ==d&sbFPB_03hm!2*+c zQ`BKf#Xz2hc#9oKxBT3&Qf2bXWR=Y(DWU=*9tc?upsaki&K0G}u_cN?pVXBs7MPsW z3iC-rDMBeHP^tO1=_zWHZCh0t-8Ua;-OE4u&{TJro%0Y%xqwPf%Ify1O`bbdl~Hjs z=d>66lXaFU!aRKup%fG|0TzGuD@^8HCeP@)*>~9={>jbTT&*FYet;PiEfAmZ0O^@G z7-uQCxj6lI{crO>^MA6ptE-pmf3^SO{}ui#{zEp|`+tkgW+%4sZI-=W$EXLklcm8Ip_&h0m~n`hrx!3h9+a@wi@ delta 670 zcmdmfg!%9h<_Q5}DuU}@3+nzy0~6CVSQvm{NbE(nz0xEsR+q_>7G zh-I{yJXyd=ltBwD1D0Y2GN-k~)v8T?C7`xhP_SIU5~ANB0-*?Gc1C-tg`CoV!~Zt_ zJ^zROF9G6oM@JhwCo5m~|BnCl{zv?u+@Ywn`LQCa0MrQwIuS;&0-2ju&p)G>G&$8s zVe$*Zq|I$c%rKP>I}s|`fXvRx)_O`YlbjVNcRIyvR&u@w^%cW`rwE1YK&EuogQ+UE zlf8qLCw~sI-JBmB3^Ve87$gWl{^tOy^eVX&s;WMjB}HZOp=9;V8Y!XzA}$CeoIoXN z0Vfm{CkK`&ZZ0la3^RwJ6rqRezyAUMqit+$ zJRJTj0|f*A$J*NZI!%7IRB^M@vOh5E4*W+L!V5HnX*E}nyzAt7+vFzOZFAkcZ`)OV zS+I2s4Z5HN07(jbKsxT4!ZD5i;geZTsBNBnER1op?ul)DhG4ZU4ZaAq{6MvVSH1Ja k-2YqrcLqY2|33e%{wFv)d$>4-gl&F&t&VYX|BV%#0L($_y#N3J diff --git a/data/samples/bassloops/techno_synth02.ogg b/data/samples/bassloops/techno_synth02 - 140 BPM.ogg similarity index 87% rename from data/samples/bassloops/techno_synth02.ogg rename to data/samples/bassloops/techno_synth02 - 140 BPM.ogg index dfa972e1defc4d07af5166dfe30c0e23d61d43bd..afb27172b0d900ccf2702afee29ff1de55ea7054 100644 GIT binary patch delta 963 zcmZ9Kdo0yq7{|}=_;D_7Kb*N{rG%6uBy-C((&^y1EKBP)v>BExu{AQ3#&B4(X)T+T ztOOZ$ETrd3xpNj-$e{(}=Eu@#!;$)Xpv_G`46D3ROnSu?Uy~*7%JDz#MAg z5hmqSg$Zg0MMj2FAULMpU^ieR>PBRi5AIVb6I_K@C$7pSbIrvyMxR?e!sm*p`?`1$ z&Z^l9yI2GKP?EJv5;NkT7b85PmtNu1#ni2|v(I%%MnC3JqexDSiPRNm5vGX83jP98 zax;I@lvI_nte0NEUN@i3#w66PN6uWc*7frVQz*k_T)_==;SV4pwG~Y!B&}Y{dg|F= zo|RH|(#U;}3}69UEa3^%cm{%(XeP2onF&d0vDqfmc~bW_s{G&)89vhQ74D(|*HMXX zbYh%jw>F!Qpw6gmvYIDNDEV!-%1DMmj9?n0c#ko>!$UOFJ4?IgjLE&BUPHglY6seQ z(v*@eWy|Y3P#qi+5*ZPRui@bV;lc4qfDp@A#b?Zu)5Bv@a_&Q)p^v`b30}dBDtIbZ zf7)f|_+1dT6mdctMF7 z4C4z1Fhm|NHAqO#FH7+j>CTfJC2ObJ&dTULEqH|IbjbOrKrK3u+fl+4inSgRMlJHz z*PP0u78Ld9Ykg`9IRfa8MHcSRS>M75L?8(#wG$k}Nwkjk%zlxtp0DP4OUm!fE@`kw zCKSk{WEv9S4?hGUkt#+ZMH}tJ#7eaN?#x@!&J6|jO+Bw*MHPzXLS0y#hnu$UFjFD? E2YDi;{{R30 delta 957 zcmZ9~X-HI26bJBm;~QsjmN#yrk+=joh1ne=sq6z9Js%8&%5tlUuBzD*_+4R z$(Pegbs+v54Mr_1prf#K%`D^y=^Pqbzs!W2OkA48fu_0P>tkev z3*#hK_<76!GST@S4Sy`Ef;CFKXoxqvE~(P6FONaqZ*XMqNt5z&UkRICCDz#W@d z0aPG-H9j{IG4B zDDWYDXSNvfqd=n;au7)*I3?qs_tNl3~|<`luU%6g^k2&}!! z=;~XwRKu%V&EUB+)mD?zz58VJg zkBi50Y;0I;WJVSs#5a;RIw&HB@hMq|{it5@B~-LTep&jo20!r;OI83$RALG)A{)7= zCfavHBI3DFB@43SH6C*mcWK9}T`-8pwCyeo&?W}(gvR8~(!3+-SZk8nAftD;UQ65M zQqx(nInv_t9^?3g5scCb?RbD;^peP5&XVpcOqt|gyD>a;rqEA)ZI1>es6hj|aRI3a zqi+fdQ4ha*S{nB;Z^V}B5T-`>7ejrW!Tg4k@Gu;X_ff=Ei<0J+rR*YZ59?qzY|B=wRS&Lpx}aEKA-K!5(nn^!ri02B%>d w20?~{AkgRQt2Vm)k!KH8s?;%a#)Vd_G9u^xSdn!UL^uu}d_!mHv(2>S9|*4%{Qv*} delta 719 zcmdmTjQPMZ<_Q5}MNbE(lcJxEsR+r0t(A z(qXijJXye5L?0{xmSF}mJ8J%{|0n-d)Y=@SbO&a)!(@bJRuJ=RK$Lvg#TMuoJ1ZMAOJ@g{|8Dz*IWKAyje#Ri=7d9FzB(e7#g|a$c$5=5M8{FqH>-5h}TWDp%YTiIw%7 zT;C=$S-Q=0^PDy*m=7EdB2;n%RZiZrrd!?-=yJXPj{k%Hd;Yio?*W8CmNqul)=m!p zP5&GHpS*3F<7UI@88F)%J|fKE0h-ZXU|l0uJXw8(?Btoti#NNjcmRuo11g|chr~ZG zkajt7>!`fj`i63gG|% diff --git a/data/samples/beats/909beat01.ogg b/data/samples/beats/909beat01 - 122 BPM.ogg similarity index 99% rename from data/samples/beats/909beat01.ogg rename to data/samples/beats/909beat01 - 122 BPM.ogg index 1892eb91bc40140077687f3f4fb60e7a471199e0..2bae5135716ada4ddce0b7e3e6336c56b318004e 100644 GIT binary patch delta 42 wcmeC2&opB`(}Vyv{Z)5-_-rPInF=#9Ffecfu~UGrt)Y>To{@#+#{OS@00(Id8UO$Q delta 27 icmbO+pQ&>`(}V!F6@QAJ@aawrGi6}_f{pWj^#K5uGYWP9 diff --git a/data/samples/beats/break01.ogg b/data/samples/beats/break01 - 168 BPM.ogg similarity index 94% rename from data/samples/beats/break01.ogg rename to data/samples/beats/break01 - 168 BPM.ogg index d1f5769bd5a57625ca541e829037daf4ef5c864e..5d9bd2f4bb1782c4c5c8155a66dcf0c9e143968b 100644 GIT binary patch delta 42 wcmex3fw5sCf}A>| z;${)~NP)>~^cA5>8FnL-vH+QKnm624CU@#9Ga79^tN((3@+*5Is8WZ&2&Jq*=G%?M QERvHi+DmShaS)XT0CA2p_5c6? delta 230 zcmX@Gjd9~P#t8vz(f<0k_;n|SnXxbc!N&QMctxy0ECvQ0rAwkrK$^?ZWt+leS3ZT! zX?$@4GXCl5!3>NC%D`&CikN}Sw=*n`X~<6gBd0D~wT#c7g_Yrju!FrNccf#%Q>9x9 zS67F=npXaDE9+(z`AC=<4Z9F#fNYPx*gjcBaq>=m<;k`Bikt81zu-3o+s5GV7on0B w$P78I?j~hq@cGH>XWu^m{iLa-reSDe@}KF$+fVPm{P{WgsJ+o_-!VJnF%v8Ffecfu~UGrt)ZEPo{6!^#tB#a0UeJFJOBUy delta 27 hcmeyofbq!!#t8vzk$E}q_;n|SnXxbc!N&Pl`~jID3Gn~` diff --git a/data/samples/beats/electro_beat01.ogg b/data/samples/beats/electro_beat01 - 120 BPM.ogg similarity index 99% rename from data/samples/beats/electro_beat01.ogg rename to data/samples/beats/electro_beat01 - 120 BPM.ogg index 57cd690fc9675d432f9f5c7647aaa7c05208e6b4..29352b68375f4e0700d3494889ebc61eb31e32a0 100644 GIT binary patch delta 42 wcmcb6pXtqgrU?OT;WF8R0yY!F%!L^l7#O&L*eSr**3i&W&&rU?OTtn2282GiPA{f{hD&)&l^S_6dLh diff --git a/data/samples/beats/electro_beat02.ogg b/data/samples/beats/electro_beat02 - 119 BPM.ogg similarity index 98% rename from data/samples/beats/electro_beat02.ogg rename to data/samples/beats/electro_beat02 - 119 BPM.ogg index b89260bab5299a6d8c1c2b07520c775011cb1564..775b64d8851a52a38e7e7093d3a95dcf603335b5 100644 GIT binary patch delta 42 xcmcaVlkwe5#t8vz4L@fb6|k8YW-iRgz`(!_#7+UewuXildgcaZ8z=ht0023o45R=6 delta 27 hcmaDilkxsc#t8vz*H-aJ3g}J@GiPA{f{hFOd;pLk2-g4r diff --git a/data/samples/beats/house_loop01.ogg b/data/samples/beats/house_loop01 - 142 BPM.ogg similarity index 98% rename from data/samples/beats/house_loop01.ogg rename to data/samples/beats/house_loop01 - 142 BPM.ogg index 09f3a260bc1d8a1927de247c4aa6a36f21700a4b..9f04d1debf75f6298ed9953335fc8b0a9bafb753 100644 GIT binary patch delta 42 wcmbQXoN?)L#t8vz4?}&81Z*aTnF}*AFfecfu~UGrt)YpLo{@q1#)+)K00Yem!~g&Q delta 27 hcmZ3woN?N6#t8vz{!$e^0=g5!%vl(KVB-STU;ut72j>6) diff --git a/data/samples/beats/jungle01.ogg b/data/samples/beats/jungle01 - 168 BPM.ogg similarity index 98% rename from data/samples/beats/jungle01.ogg rename to data/samples/beats/jungle01 - 168 BPM.ogg index 9662e4514ab7d3491eb4b26e780468f4c79cfe6a..b7196044fd3599bd3a1fa97e04b01b7e3132c4ca 100644 GIT binary patch delta 42 wcmaFU&h)#TX+i+oO($&=L7RzT7Q&1S3=G^r>=fW@YiMSnXJT%$aZ*$>01vDSjQ{`u delta 27 hcmey}&h)08X+i)Shj{RMLEVXA7Ay=vuyJ8jGXR9z2$28) diff --git a/data/samples/beats/rave_hihat01.ogg b/data/samples/beats/rave_hihat01 - 180 BPM.ogg similarity index 98% rename from data/samples/beats/rave_hihat01.ogg rename to data/samples/beats/rave_hihat01 - 180 BPM.ogg index 236f447a8bf8342f798ea91225847a70d1ffc4ad..632bb0becfc1cebd84f8cc84cc199e630e370f94 100644 GIT binary patch delta 42 xcmaF6jq%Sm#t8vz>Oa@+;j@_-W-83cz`(!_#7+UewuTl4dWM!}8~g7?0RTPD4MzX~ delta 27 icmeyfjq&X^#t8vzuTD;T%cnar%#?)z2sX~U7X<*Z^9xo0 diff --git a/data/samples/beats/rave_hihat02.ogg b/data/samples/beats/rave_hihat02 - 180 BPM.ogg similarity index 98% rename from data/samples/beats/rave_hihat02.ogg rename to data/samples/beats/rave_hihat02 - 180 BPM.ogg index 33329bd559d6bf3c8165d085b4979392dcd79b67..a6e5426f4df2fca0565b682772a62a870abaa6fc 100644 GIT binary patch delta 42 wcmdn9gz@we#t8vzha!TH^Vv)cGZkiJU|`?|Vy6IKTSE&2Jp)UNjs0r_0UnkNGXMYp delta 27 hcmX@TgmKRj#t8vzVJ9Rr`E)0SnX)hd!Nz%O0|AOo2><{9 diff --git a/data/samples/beats/rave_kick01.ogg b/data/samples/beats/rave_kick01 - 180 BPM.ogg similarity index 98% rename from data/samples/beats/rave_kick01.ogg rename to data/samples/beats/rave_kick01 - 180 BPM.ogg index 79f99ffb89cddd1487f2cdf6c3f25cf6de4974a0..5633f6e1c91f3e80936a503a500fe4614f061ad6 100644 GIT binary patch delta 42 wcmcb!g7NhV#t8vzALdt^^4UxbGZkiJU|`?|Vy6IKTSIe8Jqt5~js0hX0WAXztpET3 delta 27 icmaF8g7MA@#t8vzGp`*>;nSTMX3D|<1RLj_4F&+A-3ns> diff --git a/data/samples/beats/rave_kick02.ogg b/data/samples/beats/rave_kick02 - 180 BPM.ogg similarity index 97% rename from data/samples/beats/rave_kick02.ogg rename to data/samples/beats/rave_kick02 - 180 BPM.ogg index 463112869217c41f4354ebe1002d39b6b9a3eda3..c57cfc0d9dd594e373a121186e14373e42e7ff17 100644 GIT binary patch delta 42 wcmbO_opH%@#t8vz-BytXd^QuqOobU47#O&L*eSr**3iO0&(gqTV?UcW0Pz0`Gynhq delta 27 hcmZ27opI`P#t8vzs@FXq@aawrGi6}_f{pXoya9$j2yg%Z diff --git a/data/samples/beats/rave_snare01.ogg b/data/samples/beats/rave_snare01 - 180 BPM.ogg similarity index 98% rename from data/samples/beats/rave_snare01.ogg rename to data/samples/beats/rave_snare01 - 180 BPM.ogg index ceec2d6e0a4a305f16f6905ffefaca070ae60daf..6e17a6af37ae690e59568e1efd89dec494fe8995 100644 GIT binary patch delta 42 wcmcb;nDNzO#t8vzFBAVQ=d+m@W-83cz`(!_#7+Uewua`GdX~l}8~c3%0Y1JA&;S4c delta 27 icmaF0nDO>v#t8vzC%!H(;?tcNX3D|<1RLl11Ofn~@Cp$C diff --git a/data/samples/latin/latin_brass01.ogg b/data/samples/latin/latin_brass01 - 140 BPM.ogg similarity index 95% rename from data/samples/latin/latin_brass01.ogg rename to data/samples/latin/latin_brass01 - 140 BPM.ogg index 3bf7dcd27d08db510681b1e8ed3070860c652a18..ac9a2c59b25b03af3f81bfd7bb4c86ab4c282e04 100644 GIT binary patch delta 38 scmZo%&)Bn`aY6u_^ZPUL{1y|#%=j4@7#P@r*eSr**3iUYW+u$Yz`(!_#7+UewuVNgdgcZu8z-D<647J=3NkQc v-?$sY38Wn!yz*90H}1x80%@)8}e`oEvvzSb#L+k8LkiCLc6ZX7t_s z#L!(}a=w$Vw10YfFi>tGNFhWiE09jB43O5G?Czw&7_fPd({cXE`-1|YN)H?ds|1_M z24wCodX}a*d47-r&{Y25|NN8vl3}Jgd_pK?2QqUtPf4pz)=E}kEZ96dIYVHwT}c7d zR0m~{Cm{~t0Mb+1#4jsMmM@WKwBNk0q)1?LOshT20p19uoIs@)^k%$LoNUvoz?iam zcB_NHWRYnpFmF{LlyU);@*no>ke~d0sw`80+vbXC%lId!FPjEc+b|cQ78KaNpVR*9 zPPSgA!x*&r@3Kw&lb>%3f;sjCLMabW>2LlQoU)ToZ0e>;U;|hh!Vm@s01bHB`c{VJf6#x+&4s@@nEV$(H&HL9prFSfhU&@mGQQ1+3(jTU!0-KM{%>BTs#~w> zGIGbs<7ck7_rQNKuh`ot5{nOi8O@TSgs2v^R3lpYdZLx&8TsR>78W7eZ_ttQ>HE_Q zxJ)awLB06nb&A0wwjtUyMJf{NEj`JxtnWz|dfD5BS9{%bLwfdsiqxSEBzu0YT-qg~ zn}QuNf`}J|qLHl)LFEfIuqL;W9L@2L37Z@cIbIs}`QbLq!!%q5Wq{`e7weKjZ~+uR z7lSfx3qjKgU(r+yu+%N0iO5c*i-76*HO;YBx-LitiBvX@f$TPa368@;?5NfXjhS&f=G zVBs+D;tmZ5BoXdG7OuiA(meqZAhFEhLb-=#Y6AM%uqMz>1ZGUmxB4&yVLw`{hVj|; Gxz@i&;193> diff --git a/data/samples/latin/latin_guitar03.ogg b/data/samples/latin/latin_guitar03 - 120 BPM.ogg similarity index 90% rename from data/samples/latin/latin_guitar03.ogg rename to data/samples/latin/latin_guitar03 - 120 BPM.ogg index 0ae9bb3f78ddbd0d6ec59540d00ec1e06b02898b..1f6a9275ea22f7952f402b8de8212f9d0cb7bb07 100644 GIT binary patch delta 1580 zcmZA1e@sPe6p=UIYSszjzMSLT4Zv zn6eha!A=>7rV%S6>?U`))sPa?e;R0ut!d8b6k27hlCjz8`*`nlx9;}#y?f_#zW001 z{od0(>htGGpJUe0>-XL)-zc#EUBWA&Q+1Wu zW-ej9>;!v`l`s<%SuV?C6{2KLJHnBm+~a~X$@Irc5-+^n5wdSaXA*37OQGFtd8T@o zn7_?tV{L3NJA$cNFv(7qC5`9a<;bi(OYJJ|{o3{+Pv&|= z7Zn>7x&i6AZ1pcOWTGcV3hYhiw-9C27e{X;?0po@-erezUC**wTvzK(O9ks-1FW4@ zNv|9~$dlBuDt8%QDYG4K-f}^GJC+2D#XzUjH@3);3sar$G8Ps31XABtua0=qKNSbf zQktB?6MCiDO(PvG;@k&+jPIG}f8Ip8u7pFSkd5qSVKNpi~^(NwUp13zEz`}exy(yY5e}J7vo67>SoB0 zF0bbCG}jL@T3ua=Tu^xbe7Z*A!N`w=?AaYlTLp-Lc-cD#s(3nF3i0mbZ!0)e$vj9$ZI9RD_KXdr^7_JbPo z<&u7|@$}v(Hz;}&>fa-eez1jpISR>8FDIUYZhRw?Q15>BkfPP7zi((;j-i() zAsQ;>qVsT#qlK5?zdoE*bOh?d>8EDZH02V6tJpUA^dWdqPIb7bm}SB&Gc zh{IS}o|qYU5qJ|po4(DAmvs1%QYXeGXqBPvZif7!zbq3js~z}bT?RJj9O9JjhQbsW zNapQhGLkkQ8Du|bYZ}ZZPN=IiH+$+E>g!+_K7kjZ4$Qzq8I%L=diH{7-E&5f5uB}e zf(419&G^rvzsPj)xVKD;zp;#n7t59vdxLb~9-~jv=GVI-3p7Tk0y~sKH5j1~O5i!* z=wq#@6)dGTkAMdqMsdvnTbm=3MF;oCzd6w~M(0%FZJiT8->Su{FF3`)R-d9|Yjs6T z#!$(v=Dn-7*ILT$u6j5QgHQlEI-ZHHsTB6o-(tX?Zo9bDJs#RhzKw<0Mnh=nd zUK+~6r-yhka=1{Lc$Se^N@|lkze~ZwNQ&4tG8l^Eon|PGqNtv?lJp*YU?K}Y9QTNC zOss^?p8ti(cq;GT@tw)-J1^znBRBfQTq!>kl2`dtBbX%HY27os>vn1<{&`-7_s@5V z|I9Zjxvc}LWKuz;@QNx{=Z0FSplhx#G489fx!`51yTMWBs)HsF;0QPY+k9^EzVAwS zypt@7l133xkyFFrA6L|PXoVBkSFB-qmB|Du?_CqDIVSwUdNww%o5Y#*@{sg?%j8p3 zPJXrLbxjcwVv(BsyA2gd9kHl5ga@Mh86RBm)3kP+KG>$Qk+^h<$I_5ZGNhxMTS+PN z?q)cV;(htoEIFK!^cs+!{I&yiOJfE!5!N22lc?succ02Om5{p}$|6-9Iw5Uv$P=1~ z>^-KFsh-~G(`V+A4+W$nP66dgQv&)soUStrKSOcC1-&7&nPeZP`1&E#EL9#xiy_QE zU^s>1*XG}`X&cGuE~FuA9ow$ix+f}_*HZuX_)#GbtiTcBG15z)uc3aq^y*_o p; UPGRADE_METHODS; diff --git a/src/core/DataFile.cpp b/src/core/DataFile.cpp index b87d06931..b83e1bebb 100644 --- a/src/core/DataFile.cpp +++ b/src/core/DataFile.cpp @@ -80,7 +80,8 @@ const std::vector DataFile::UPGRADE_METHODS = { &DataFile::upgrade_automationNodes , &DataFile::upgrade_extendedNoteRange, &DataFile::upgrade_defaultTripleOscillatorHQ, &DataFile::upgrade_mixerRename , &DataFile::upgrade_bbTcoRename, - &DataFile::upgrade_sampleAndHold , &DataFile::upgrade_midiCCIndexing + &DataFile::upgrade_sampleAndHold , &DataFile::upgrade_midiCCIndexing, + &DataFile::upgrade_loopsRename }; // Vector of all versions that have upgrade routines. @@ -1807,7 +1808,76 @@ void DataFile::upgrade_sampleAndHold() // Correct old random wave LFO speeds if (e.attribute("wave").toInt() == 6) { - e.setAttribute("speed",0.01f); + e.setAttribute("speed", 0.01f); + } + } +} + + +// Change loops' filenames in s +void DataFile::upgrade_loopsRename() +{ + static constexpr auto loopBPMs = std::array{ + std::pair{"bassloops/briff01", "140"}, + std::pair{"bassloops/rave_bass01", "180"}, + std::pair{"bassloops/rave_bass02", "180"}, + std::pair{"bassloops/tb303_01", "123"}, + std::pair{"bassloops/techno_bass01", "140"}, + std::pair{"bassloops/techno_bass02", "140"}, + std::pair{"bassloops/techno_synth01", "140"}, + std::pair{"bassloops/techno_synth02", "140"}, + std::pair{"bassloops/techno_synth03", "130"}, + std::pair{"bassloops/techno_synth04", "140"}, + std::pair{"beats/909beat01", "122"}, + std::pair{"beats/break01", "168"}, + std::pair{"beats/break02", "141"}, + std::pair{"beats/break03", "168"}, + std::pair{"beats/electro_beat01", "120"}, + std::pair{"beats/electro_beat02", "119"}, + std::pair{"beats/house_loop01", "142"}, + std::pair{"beats/jungle01", "168"}, + std::pair{"beats/rave_hihat01", "180"}, + std::pair{"beats/rave_hihat02", "180"}, + std::pair{"beats/rave_kick01", "180"}, + std::pair{"beats/rave_kick02", "180"}, + std::pair{"beats/rave_snare01", "180"}, + std::pair{"latin/latin_brass01", "140"}, + std::pair{"latin/latin_guitar01", "126"}, + std::pair{"latin/latin_guitar02", "140"}, + std::pair{"latin/latin_guitar03", "120"}, + }; + + const QString prefix = "factorysample:", + extension = ".ogg"; + + // Replace loop sample names + for (const auto& [elem, srcAttrs] : ELEMENTS_WITH_RESOURCES) + { + auto elements = elementsByTagName(elem); + + for (const auto& srcAttr : srcAttrs) + { + for (int i = 0; i < elements.length(); ++i) + { + auto item = elements.item(i).toElement(); + + if (item.isNull() || !item.hasAttribute(srcAttr)) { continue; } + for (const auto& cur : loopBPMs) + { + QString x = cur.first, // loop name + y = cur.second, // BPM + srcVal = item.attribute(srcAttr), + pattern = prefix + x + extension; + + if (srcVal == pattern) + { + // Add " - X BPM" to filename + item.setAttribute(srcAttr, + prefix + x + " - " + y + " BPM" + + extension); + } + } + } } } } @@ -1984,5 +2054,4 @@ unsigned int DataFile::legacyFileVersion() return std::distance( UPGRADE_VERSIONS.begin(), firstRequiredUpgrade ); } - } // namespace lmms