From 04405afd84cd97983e57ff126ae398766b7dc807 Mon Sep 17 00:00:00 2001 From: Yotam Mann Date: Sun, 29 Sep 2019 17:25:31 -0400 Subject: [PATCH] feat: Adding triggerRelease to PluckSynth works by ramping the resonance down over the 'release' duration --- Tone/instrument/PluckSynth.test.ts | 18 ++++++++++++++---- Tone/instrument/PluckSynth.ts | 27 +++++++++++++++++---------- test/audio/compare/pluckSynth2.wav | Bin 0 -> 88244 bytes 3 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 test/audio/compare/pluckSynth2.wav diff --git a/Tone/instrument/PluckSynth.test.ts b/Tone/instrument/PluckSynth.test.ts index fd2212540..979b2e6d4 100644 --- a/Tone/instrument/PluckSynth.test.ts +++ b/Tone/instrument/PluckSynth.test.ts @@ -13,15 +13,25 @@ describe("PluckSynth", () => { return CompareToFile(() => { const synth = new PluckSynth().toDestination(); synth.triggerAttack("C4"); - }, "pluckSynth.wav", 0.26); + }, "pluckSynth.wav", 0.02); + }); + + it("matches a file with release", () => { + return CompareToFile(() => { + const synth = new PluckSynth({ + resonance: 0.97, + release: 0.2 + }).toDestination(); + synth.triggerAttackRelease("C4", 0.6); + }, "pluckSynth2.wav", 0.06); }); context("API", () => { it("can get and set resonance", () => { const pluck = new PluckSynth(); - pluck.resonance.value = 0.4; - expect(pluck.resonance.value).to.be.closeTo(0.4, 0.001); + pluck.resonance = 0.4; + expect(pluck.resonance).to.be.closeTo(0.4, 0.001); pluck.dispose(); }); @@ -45,7 +55,7 @@ describe("PluckSynth", () => { resonance: 0.5, }); expect(pluck.dampening).to.be.closeTo(300, 0.1); - expect(pluck.resonance.value).to.be.closeTo(0.5, 0.001); + expect(pluck.resonance).to.be.closeTo(0.5, 0.001); pluck.dispose(); }); }); diff --git a/Tone/instrument/PluckSynth.ts b/Tone/instrument/PluckSynth.ts index 96040ce7f..60d3e118c 100644 --- a/Tone/instrument/PluckSynth.ts +++ b/Tone/instrument/PluckSynth.ts @@ -1,10 +1,8 @@ -import { Param } from "../core/context/Param"; import { Frequency, NormalRange, Time } from "../core/type/Units"; import { LowpassCombFilter } from "../component/filter/LowpassCombFilter"; import { deepMerge } from "../core/util/Defaults"; import { optionsFromArguments } from "../core/util/Defaults"; import { RecursivePartial } from "../core/util/Interface"; -import { Signal } from "../signal/Signal"; import { Noise } from "../source/Noise"; import { Instrument, InstrumentOptions } from "./Instrument"; @@ -12,11 +10,11 @@ export interface PluckSynthOptions extends InstrumentOptions { attackNoise: number; dampening: Frequency; resonance: NormalRange; + release: Time; } /** - * Karplus-String string synthesis. Often out of tune. - * + * Karplus-String string synthesis. * @example * var plucky = new Tone.PluckSynth().toDestination(); * plucky.triggerAttack("C4"); @@ -41,9 +39,14 @@ export class PluckSynth extends Instrument { attackNoise: number; /** - * The resonance control. + * The amount of resonance of the pluck. Also correlates to the sustain duration. */ - readonly resonance: Param; + resonance: NormalRange; + + /** + * The release time which corresponds to a resonance ramp down to 0 + */ + release: Time; constructor(options?: RecursivePartial) constructor() { @@ -64,7 +67,8 @@ export class PluckSynth extends Instrument { resonance: options.resonance, }); - this.resonance = this._lfcf.resonance; + this.resonance = options.resonance; + this.release = options.release; this._noise.connect(this._lfcf); this._lfcf.connect(this.output); @@ -75,6 +79,7 @@ export class PluckSynth extends Instrument { attackNoise: 1, dampening: 4000, resonance: 0.7, + release: 1, }); } @@ -97,14 +102,16 @@ export class PluckSynth extends Instrument { this._lfcf.delayTime.setValueAtTime(delayAmount, time); this._noise.start(time); this._noise.stop(time + delayAmount * this.attackNoise); + this._lfcf.resonance.cancelScheduledValues(time); + this._lfcf.resonance.setValueAtTime(this.resonance, time); return this; } /** - * PluckSynths' trigger release method doesn't do anything. + * Ramp down the [[resonance]] to 0 over the duration of the release time. */ - triggerRelease(): this{ - // does nothing + triggerRelease(time?: Time): this{ + this._lfcf.resonance.linearRampTo(0, this.release, time); return this; } diff --git a/test/audio/compare/pluckSynth2.wav b/test/audio/compare/pluckSynth2.wav new file mode 100644 index 0000000000000000000000000000000000000000..6d60bdf766a57a77084f34e93202e12338401c73 GIT binary patch literal 88244 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

$CW^5cW6oWSste%xp76X*ev; zaI|y2Rsa2P`T{PzAV%AbdxiFEq29yw!+5bv#IF(QYuL4gw#Rrrmh4-^;T@yivfBNX zS?B=Pd}z2hmV&J%T3STE7=Xnu@pCASF5>&`B5)5> zZ;%t~Rf1E^#2sPT&hg{=f3I&YvR9}S`FBbEp}3a*)z&uWLSUn|4G_FRPCmthRbq6d ztLtFBNdBH66K06qQL0EdI-PwR*z$nd^N*0c2vSe+B|C`2`Fjy|ZSz^e&)XdL6w%6j zI=bNUqda>~EdGh#+1-2a!m(p>7oKKVeRddg?+IK>GGcQ)@bAaqOV3+rHzp&QL6V(dVeV*3qL}Q-M z1bz<2(fQhL5rMm)x?N7JZUR8Yj}*82b#) zC zN<2%n@`iLI+1raaq}KgCzdsMD7s=SGMm&l=|BRujA$#%bR+t_%a*ll4qwcQ6&XHEs zi%5I~!&a02Ve(hY=tXoSM?VR*x6M6IXurNddkfsw!{#%jK8>N@CjWnH*(UBctFw>t zGkd~wpfD9OGn}PL9KiltFl8dFrdl&*b<>#ljT-!<{y*?@j5ysW(t~91KwRG-ANxY| zJot}+^%cfG&ewzP&z2*3S2LXK9%i;l5Ixu1=hF&~PGR3=eA$nac{X1FsR#Iy9mFB{ zvw)YIedh6Vm*WnyH}K#}@-oxigC(hTf5Y$WZa(j7k2pTy{x>l+HRKljx=DNw7wDXJXd&G?X3Wk1zw0l*b53}@YxLqzjuaf#0U0)~v zuW^5?xbI@c1N_XM@N6hdlCjgArApkzrrnq_9#)g#nbl2W8Cv4mtl-8DwhffQ{n?gT zr#D20ux6APUuNt>d_Ca)4A>{9&(ps`sZ7u&*8$sqB`6IlieaS zn7{K1rfw38H6nc}o+VnDPtPNJ3rk-#>JwI&-!Kd9#+rj7eLnqst-K)}LiSbS@VrsaTJ3&~KRdAI0H%F}jOVR) z{y`1N3hQ1P9^zH@e5Ug61}qv*LPs&aiIw~Ku+`mFey(tDwa6S0fy|8WINPWC+|1H- zbY7zEc~bAC>n-v>Pr@cK*vg9i{G6kPO@qQX$V_s!N!0hS={jDF#_w^~jG2ua$-Js~m7Gs&zCXuT{Z1GwrmyOTi7{OzHL!==VRx&*1t0`cduwJB7Hmgc}qK!j^yY=WWQ+c zxl{W(c3i@XdHU=i`w`eZXdd+cFq5!e+^=E99eT{>@f0YGma!A)TQBN2vS|x1M&kDv zYsM1KQwuzQR)0jnjjQ$TBZJSu^^1$z==ZdU?@-4wV?WG_eB){o?5`-;HdXyUmdw${ zwNOP`$obLiTgsQ6IQc5iQXOvPOLh?Z;m-_SuJM`1&rOc&$-bBeE5t4{-Hq_t%e&Y3 z{e)5Xy1G`4xD|UohoNt)XT*i)ewno&i zW77s+oCm8B){I%*1kZ->{5d=a(YsC@ddc7(>P=>yuDIHVHG{->VUd$Nc`!pp&vUg5 z))VA!OEQNW*IX58j-$iaH=ixn;^gz}nF6Vue8~=CZ~jgxn7Tro7l`x%JX=Ux=F@%! zmlKB@Rk)8~=>10RgU$xWPVD&=1 z-fe*D3OV8T(O5GcRn*Rt|A=Q(k)5qlj5DG$6lc;u4YFM!Fjw20qRQNWbJw{)T8`vh zO<(;xn%VpxbRt*c+1mL6{qrr-y|}Pbj20VrBkl9Czn$wa^&+vDE7J4uY#wcSL)wSz zi&?tgs5`BOUc#rWWOw*`2O0aVcRr0>Sz+yh*3BZ5J)co5ztY$NB(x=eBP+M^VU4@< z{Jg-u`TXCZYTSjPdFI)w`ULGIaGR@bKdHOude(gPgq9Uzu%@WoOGJLO&j5aQ!<;eN zR*AqmS}&3lvs8js#p6^!Hw1WcDJJGitF=4|pjA!+=5Xuf>PyUYQxyXQ z4QX$(m$CE?qxPz3&+{iM**yCOp?#Q>=lDIYx6yEe$YjrFgxtNHz5PhYH_q3yax;8a zx_hCYv)r3gV&OeGC1gj5rI5Q|X_iHg?9>nc8MTXt8>;nFo`^ zXok4X!?scC|IsqxT#;+0iZmnfT=vam%Q~EVfIX=Wn<2DHWP0#-Y{Aq8B0fu`XR#~M z%6!_3>?PuGt5JK3)!^-r+6A4}1wyxC&d1FsHg(8aF{TV4e~>j!X5)q!)v&?O3OvJ&-4J$X$ zbDkVo$djJ>p9#+aqSOVJtqP6~WZyKlti{PZo2NQ#giv-6yYY84FX#G5t8*EnYL zU>14f$xR$m>+a)sb~m@VS}BejvFBk7O%1u2pUcJf3L}Tfw`CB{-fB;?!YC3qh|gpU zTt#-?(vG5gH96bKzC)z0(muaHdk&q`wcSMOX1WfN{}B?hqk9o6Hu5uj!sn4bK*kQH zFID0)HZ9{tKk^3_cqZ3tcs9YcN%RkcWd|ruWJhY_SrC}2Z7PK3iRn5Xj1{9Pu4ZG~ zF!k^#GW#1>;(3De>H6neq^Wot;5N&+t7)Hx{inMQQ!fzb^F{i6b|qRtwR^$k#38lr zZhr4JYOAZ|a&tZQ+>fEDA~2;Vfw@LFuogUc}9s-4akQqeZTv1=mrX`rt z2Uh*9ak9E;C_@`I_<8*=>zjyd^ba+nJru{$KN_+f@ouuVJfUC6r?os7Eu$y7ngQ#f z^7km2&`;!!P(_X)u^;;;v1KJr-oc(!hqXM&4q|8i4lkHGOT;IObh0AR%6!_b;PPso ztyAH$8r)&jX6P&}5ZZ=04;3|J33Rh2TW#cEJ}wl$G3@kv&crxx%GdB=zPnTWoao+E zF<2)8nHlrUvqnUN_Dnh_8<9QR^>k&vx?Rf!Vz7V}YgwN?;lZT$h0FkF7h=;&HZ8=I z-uT@Yo|%ms%Fx6Ah-VLRny>F!GPon#GV8R5XlK^+fb}F}FK5MS_Xm-YobIZB8+i5> zrB1Ls&e6*GWc~9k(yLXa%ZlnyKG#i#dj1v2GQ5~B;uA%BBD)f;ydmvE_Us}KsdcyU zJG+}3$yih%wAFg&{-TB~WXl5az1XNh@-1ujQP|nltdOUVyi*!O`eO3)mUbu|$@d0lX)>xpRCuehTSGJ&^@ZmMf@9P{1zThb2gBc9{lWxErYaO$h$>Qoh~QF z@VF&Blk11@3^(TJ+ffF0U|VLLb`U*Ve7iX&h|{Hf%{Q(Fz&`J4I_uxY%+^aTbo?Wp z$2*^>f4)V!0T)&m)nO$MvV+(Oe})uHJzvbnW5IZKC0dzJI~QDDjwPveH}gBYo9kW8 zmz$Tke>;Zmhwwap&V}hRBL~R0tl3AfGv9N|)5pc)Gm7*D`Z@6E>nv4bDVy?K-;?}v;F;ODp$t8| z!7u86CEvRi+{nL6YHQR8`piH^JqB_&J&~2t|q~HfO>c&nZ1l_iuFxN z?8Uw@d|4#FcCzPONG<0@!GIW))eHXk|V*GKVb}i0=|3`}1)&gom*+-*X!T#bx3%0t4rfpSQGw=$=pN6=Ym%?zvd| z)B^2EbS5)5l6nbUyUE|7B|EyaSh1X+*%R(ZdQW)tc6L5CEn-8S>${WR)0#1O9xg*m zJR8fk;q>R$e;9_M_l{`nT^ zWw@|hu8cQsCGBHKJK6O-2u~D?Q6inJ$bL%Z(@tbhDdLd*!mI}KjkYz=$$EDw_S{fB z$7hALg0-teCVM`8oL`7Vok?g-{#;fr=EHP%NBcR#z35pc0+|`}u4S=^2JH!Srfoee zSJ0L3cV0)rWO1L)ilusFPq;4>dcflxXQ>kN#d8KPx{=?bz%#ji2+xumePP+gsG)SE zHnzpP5u!e#s4{sj&o{1m!+ui1w!ZSW1)1HAYl`*3w7an**fIwvuVqhvRxg5Ub`ab1 zw?8k(!MLAZ=aYMZV>Ay&Lpw9we4b^$Fss4rZe9YNnT|#7Z^zKokQw+jo&WQU>dnWj z*|WELmRX@ci3`PNCd9Ql*dQoXL9{m$1ml3m7|ze-DXbSJ}qKI{9@ z(2Ml0@aXPryr}296H|=tOnz5$a#lArJbw+(vkGqH-zA-fmxJgZ;Ouk=4Aqt=^f6*O zhu{72dkD^D{_iD!o0Hi^cp5z9;Wfy7*-={dTXOQQt?7<~hC-FbCa8Eu?glK>9ZLf;;E@C;m zh|N^;2NoF>wq}l8A?L4hHXBaSJOWxnw56iX6Q!&{*O8DN$nml&>!$2s_8|Ricyx6( zS}dlqAnOtw__*MO{>l?9TfL=Xdd5Tf}=}0c02B+*P=819y*)yTk2O9^v z3OYUTtr?k}jBA4R!L*Zz4J2y{46_&8lTS0CF`kSw_}jBUHhVRLpf?CES=~)_v?V(= zUrbI1HY@foHqIm##*%hG=wzd%-q)V6kaP5tFR$&vu=?+cxx^2+s~ar+RyG zl;ddUnQ`-W-~zT!EzmF5d6~WPjoY!t4q{g_zAr5L6|wA3UYI`tPI-FBnjlZ5GhK}o zgGugZ2F^422y%zBCs}#62oB?W_6G7jjV}D0s3lctB>BB~)5XtGWXxdG0vw&BeUN_9 zoIS~`t!8S^zVm8v%Zi{YwDQzFz*(NWGf$t)yF4Rh4jZn0fCy&RZ&5JmFbEvh;MeuP zt#4TPGFab}A=H|V-lUv}eW$RejWOpKn{`lDPaRwjVBx9sbz<*mV}}$G%C|&^xs#~&WLZyMXZE%47w1 zqI%FC_fwC~)GN&CUq}xhPLfeQW&c=O@=eL?vxVuIPloV$Oi?#3fJU(BEiT!IIfFlW z6Wf73c`w$ErgLfU$i}`r=?Iy2g++;RB6~hrv7w*4UD=a-%dTJcI;P@jz6F>SOD}QB zo>Ds++7x+ve1U5D-Xim0*MhO9;8f!R%jWR>ZT;`+4`)exKIVI3$I6-Zg$+4t#h#Pc znkV_}e<%A-bKQj%C%`UqP-{|;_jJ&#I8N5L1AERX5J(nxVqfyAqh5K>lDV>zu^reG zu19*Fuv!(7>J7Vo#>VrkMN$E~JNmdkmah}}*v)lUkqA3a74N)BNNvu(?rHqU8Y)rm z29;#bX*^0^=Nm6s3-&hhEO*+|+D4yl?q@eT>#FR|g-xd$pQ_iv=#za~VMEKp*K*%2 z2y~$H4ELL0QnLniaII_byZYb5^Z3H=e9z%%7@c0&kh5d;Ki-j*XlByv;GCpydp(XN zJvrWr)RwSp>d1~rTkU7DrZ-f&v!pG1d%AOmUfCx++t_x-wjr~Pt2SCXJC23SnIhF& z|K5e?eT>R3M@L8A6@)>l54r9Dx6a0%=+i;JQ;g4Zbn8NQXE+C~)BTLar#sJzycg8M zxwBan%+6rXY1)!+U09nMk++6z$vKnmSa%YiP9Xg_Y>2Prb548hZQMQC{l}g%9*JXJz?wdu1{yh(WEEGkM%jq?AD|>g38Hs zCZFT^31r3Jw(cG!imhOIs!uD|Z5+8D98V_iL{fuj_F=MePBv#%d4{9CdwDuZWh*0* zy@q&mT!G68#+U2B=+4S474IZJV{vOTvU8Sq4yiTm=sd&S@Gku5q%AXe)|XvfpJGhr zhr~TO8xN0xO-pC7w+-o;yN~AIF))btb#Sd~@P`7=AfE^~=W%lqQb%*vLjNPRolsbm zI&z%xtz4a0NIybkjv_Ucqmd&seDW?)Z&!HU(sjv$pr3Wcsm3OEA|+Z=r-N?``cHJ0 zXNq=(??E}Ub{W6O>+BQmobG5-j5?aelU!vFvN^Ag(K|IDvPvvsaS#o@CAZRkf_}%- z+LA{>JJM2vf@|zL#`qG~V|aKJ*+x|6YBa-tjN- zZR$v#AMGsX$)T1$VP#qIk92jM9?eJ(CxiMCBt~k(qIVEKkISs1193}C>1R^7(^rOqyqC(U8gd|?pT*NH7C0nZ^NpOf@&UU(Lc z1pUv#iR8-rjQl+ zB^J>Y6f(mmH%c56iy%~LNiLtDwUz6Vi!}{lR-`v7IF^bS|Bo~}7&L)Fyl+q(;Dl#m z_p{3PAG$h@pd+!)Cu^%_KG7N+f?ckfyPp{-W24Eh-71c>9zjzuP1R}Yy5vaEKiqX9 z+RV>VOAv|fw5D&yrGM&wiOP|5l@ZOozQ_9p#SuKi)FxUpPx&ve3mwVi z!;AZAE44;SBIVQ^q<{(zEQJ)}ekAG{-Owjk zkr;a-uO_9uDqG9G@g|s*-jrkWcX=-|<579Uiuc;0N&xa?xAnY;J)@hkD1J_m3|7)kYucSG)86zQOCi_xQgtENxD| zLw{=0{?y$MO013f;N9A|@@}oq2Y=T3eDLm{clAHX|5K9Q-~avo{;9t2zxVzaeDMDJ zCBDDq&pZF0Z2A9z)1PNe)w@EVLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvR zLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvR zLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvR zLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCvR kLZCvRLZCvRLZCvRLZCvRLZCvRLZCvRLZCw6{|$lv12^weM*si- literal 0 HcmV?d00001