From 51757f358e055a7fb3e445b256d4360a384b9e5e Mon Sep 17 00:00:00 2001 From: edwbaker Date: Thu, 22 Feb 2024 19:14:41 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20edwbaker?= =?UTF-8?q?/SonicScrewdriveR@d597739832d3cf542f3992d86eb446b23d18d178=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../figure-html/unnamed-chunk-3-1.png | Bin 27317 -> 28016 bytes .../figure-html/unnamed-chunk-3-2.png | Bin 35639 -> 37555 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 50567 -> 50695 bytes news/index.html | 27 ++++++++++++++++++ pkgdown.yml | 2 +- search.json | 2 +- 6 files changed, 29 insertions(+), 2 deletions(-) diff --git a/articles/augment-audio-data_files/figure-html/unnamed-chunk-3-1.png b/articles/augment-audio-data_files/figure-html/unnamed-chunk-3-1.png index b1f72e5a5bf4e89b7485014a0af859f54c6fef53..d0cc473aecaef6ae517161276d5055488acaa0e5 100644 GIT binary patch literal 28016 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 UyPs}*%9w|LcKWH}nD5R10jR*Eb^rhX diff --git a/articles/augment-audio-data_files/figure-html/unnamed-chunk-3-2.png b/articles/augment-audio-data_files/figure-html/unnamed-chunk-3-2.png index 5dbacd4f304914b27d599e96e128dbf191c60a37..410f1cb3acad7160b6fc3bbf42fa4f450d353812 100644 GIT binary patch literal 37555 zcmeFZcUV(hvo{$_BB(wIKS?f2mX3t)0hKL6`>g<2< z`~?Dm*r6JC^+2Gbz90~b)$wBh1%7zI9C$lst)+e!cn5yA)Nmod8{0Dt6HgF`Km6eL zP|W;KTM+012zvMSBj2>;37-)!BNNFzTI!wCPCRTfY|kHjd44KIbx|gpa9ktt?Bgqk zHA^*PLqq#QFKDu!c|XbaMnL{Jo$K!3iUOx{_-;QsMc=XM`qeF+Tw!lV@KesD_?IU8 z*!7Gtq-_%eN)e?;eh=k;|NJik|BJx?0R+OVbP0#bC}~L~3@T6vA2QTCsf$XBCkZ+^ zoH$?~dQ>@yl$Nrugc)iAfh;}UG~}ZF0twGSpzBZlSNm(EQE3Sz7ic#+yJ26G{sTN! zl6?&nT9YP?W$Gct5a*ABKrJ;E2O{2eN~NWfUc-+aKH#f{0puQh0F?=_9rzhg=yT-s z(Sr}?uKX|I|57|cSJDO$z}!!!9+5mSg=SUg>S2(o&!!hY@U2Do^KYBH{@`@|K`V$w z=>Hl*Z@MRz16U+hsQ+n^gsv&-vRA zT|d5qI8X?v`Bf##%ype6D<6F{i?KeP8zX@t=|f$I5Ep>PEG6Mwkt;18b$!$*g{Z@z zq@~x;ZYcfJ(au1Js_$|ocaK!r>LR(2e1pK{O4pT#x2)M+;J5Gr$Z>2~jb*CYt!}X} zr`@`s4-{2Um@23F_F^EM6?Ai!1FD=!dI@JeTxOdQPdW>ooJ3scl_p~jmx*bt9_~%R zy>l&{aQp{ET$o0)fIwLa|HWRasCiI{3B)O-@(`qgkX$jq`T$nI_l$YXgK4_-YBbAI zgu2KU3M@#KKLs>eCV_pQL*UsIkpB--AN6PY{R3#Jb!tdnZ~j)uXekBw3h;o>tb#)z z*rxnW)tU%_-xhj(>LoHz2H%F`c=DtP+@s-FsdVLnps9%obm&Jee&OW@60+RP;_EEEe8J?VoUDAy?vAr|`cGLBU0%VW$ zwjt9pNEj@~5y*No*uL!spZLN0dx|6GtXup05uW!tmuh)Xz?sX}!%hhMSs-yf=UA=> z?)dP721&(nU|KbfZ^F7qY$v&_tFxph{4$&w;+Q zv0lg`AO2QQx_%3#+erNasLVEw@=^%wyEK*omeuz7)oMe@xNwL#=PKH=!~k@4m53rW zLZeHwOM+1KV7!a7L*!7w$k#`Z0YTJD@C z9tDu^KtHfC4Idgg%d8N=2LtL^)|6e52gxI1!HE?4Hz{V4conc5j-u)?1Qq2fH^)*` zoi@9`AwKOI z`_#2=-<1#0jC8%yf5^`WU?V;z<)vwEoO_)npfpp!=4<1q;0ZYhegPF2@L382J0Ir5 zG`uvXgw1H0z7zZDSlG-WnkAGyN*#-6pyk_xeXY(-W{_5(I+;JmpI>Y5PY@CEvk7zm z;+q=>R_yXsN6zW_pKTFuk8;&rzWEn=5CQUAMkcEnmCxq(bR$!7)qnr;g2^hc>2?%$*x2y(9S3jvuO8@P_Uw;cbBBstPuPFifGr zaim!Q&lgNyhc!Q_j&s%obV18wY8m~I$0kvOUI}g@ATF>hfJ*~=d+{C9gzZb;U= zcPmQ+3j>5BUiuKF=-T^8TK?W?Ff3SP6GmSU6Aw|^aPoKyyyiXsChE! z8gGsCT?YSza_zvCEakZ)LA^$1Tw)U$K)O>h((!AI%&I~#2zfHS)$ zsW*y@QRtK7OSiaY5Au4fuv;4mJ5>v@iU65*iJS6xI9PnNmw6E-c3r zSRz#(v<-d1y%=elx4hmn1?XkN8QPdg8bPxZEPnV%boSwC+y08j!NN(SoNoC8s9pQb z&F|EgFM$>OnnU~iXm6Dg)chZz8zbi2njU6^+hr7uRSC%CLfV+)KLHa8x$p3mfCnR! zT9L|tcLSXNk#s+M%^+#6_azHkqLqp& za)77spACdgCQ0Gl2fPOuPkEoFu<9ct%=KcTl!g^I*5d>|=I3qMxU!jJr_EmQAH)IZJ_P8R!Yw>ZpUSv381-vH&wtzuJ4??@ zuC>^3+hfMDsc#2{4qC0dM=fx1a^fk#(^{^(h+7Y~@F#K{iHm z?XKNYMbH*>q4YOkH*_7m!`?PTc4`0_2;PWVUUHhESH$JeVG57;6~lp0Q8g9t^dFT) z7KJCS+g=&W+mpiYpvFtXYHHe!imVthl@+h#hBldhAW}Y|S+Zo*Mmfs{E(0D@EeLlU z6QKh0uK#ck>R7YSk+xm~oaYW)t+^xj$dRIm6r+P#T1 z6pPEwl;~wkTBcsd(!Lk34w9>bVmx-1t)1xF90|alJ>%LYrO;?s@9h z5F;?5>@cIplzufexChnI!Ej&L%-P==!opSX1~`rvk5A6{G+vWPqAD{&{0N7%Yn=&) zPNpA`EQ`>}*B+r$&l2jo6h?&26!9TBgCee-QOJ6U-0&TJWS}xpTCo!5qd}j7uEdcH zpuuTUX1)#*^FHq3(%Rkh`xu6aXOICV9FeIAOnToC zsSB?2k8-K8O?4VEl-U~1Oef{=5KRdNXB9ELDj($sAF}M}h;mIa9ob#F)^MWShb>Gz zaSSbb&uCr9RO`fj45qN40WmHtwB(mAE-5*Xz$)ygi;R)!-F(gCz%@2(+cOV2owiml ziFZ+W%!n1;7~J=sE$GX2{%7yV==_jdJwTP=ENdo@3okGo24)MTjtGNWr#d*vq8eKhrM zamyKJhmR$6X`7JDZ3%SaCHy^9{j<+fJ77O&O}VIxTLW>iI;q;%y|fLdfc-j)D6UCF z;1qV+xO7S)gR~A_pvk|#R+idGsf@O0Oe2koa^35{e7e3Y#V3!iwmWs2;`os$f;ru_ z((C=@hlFU$EM-M>t1gB35(bwLIz+tNKST18b|*dHtR;+g!@;@2j;Rr9hCX&3Z4LJM z>nre$!?SIAPM^&!@g9`GaNx$sbgoB7BV?EKL{a69t}Wh>i43m>C3y&*Vrn+UCfcr} z`_w%>vR*=g65QkYxsO`kf8O8+*DwE$SNGIyeKIYYglzlsgvY@f=2fFnK+t#(YTm0# z)YYu}G`RV?*kxlKELl=!X0((1v;19Oy;5bWkLvZMJJ3y2tE~md8I2P<8cJ&Hn4#1> zS4TsBR$KR?4B9Gw1Pf}|- zXmu14;i^vO4=$TY5xfO>D@v#n)+8yYBX>TNq0n#-8S+M83PmQTdq<{>jb1a9i+1f? zlMQ4(6cyqt+V}m+(eiSj<0_hbce2F&dlpY^G=v!p4Vh1 zdpvY>K(O&Jsn_r#&fm*T%Jd;A9cZU zPu)}BKf6SJ<+mRv-@?$5W?M5s%V7DfOC~SM-N@x$33qaG8^V`LC}7il`p8P6N`^5e zvRScW;4Nw~Cevldhky}iQL8M8XcIPbY@3hK7}YI7{$nQ-^hs!U2rQ}VQHo}9>@A1x zDHiDpIPI9h<86Yrj*+RvgU- z!ermE8_-}$+Yd2V=g}JY_?{IMeU_E1R&IgR^5VY>gPafZRYjKOqy=j8Y~N<=^D|AW zl$54kEDV=xULv(Y&ErXbbH%_K7YL@SW5VQM{g_BEepM~yRMHL6sW}P0IK2TkRCWt% zuC}J1)3v`#N+XVttwfdH?szEHrLqTEjJ=-IYk>Hsr!*$H-)W)xEFna>{tm97sMd@K z5_-d^e=FS5$Z{rDJWTPC*@BCzWw}Yu)fGLVJxI>k6;OHq!^y~CBcYF4C=)lCffV20 zezySGN(&zxc#;X0)S`<4@niet1j##{KZ2U}3CCO}uLp#4x_-Rq!X*qdKc2SBi%yk7 zzOplb?nx4j_~Sf2y9MqBI(58XmWO?P_PI`LXkahLJvmnFW?A=DSEa{{kFpMPw*luZ zg|q>l#!6w*)gr{zrMSs4##6^2Sq*wu95#P>a8TJ{|D>DLrJvhWG>er`=Y8!G zr%&y!FsIqTpKnFC!d)7FH6K1*e{!fxFAT=fwvOL9swX_LO>VVGgvq@(e}wzAl0Nqu z33xh5!uZOmp`VkJSMe;!`n<53l-}XqpC&c));jR8^#w1FE( zZ8}?;U(B6+G8JBskw$7CRrs5XolK#d`YtZ+yJ?@F?~B{VkhWg(n)wJushf2XEhKrc zLFHhdp5-HSA+h3s`tBm3t&KDsfmw33>S3F{9$7*+F-+dhD_|gHxbpjs-ee+YRh4qb zVjWtd?46AJQx9!+my=6L1=ny)rLFk5$OrI!yX_wnqL<&Oj36#}sl73lmkYLD^Y}?qT*fqN3is2# zLZr)WE=FgA<^rFh8SLdvY2qqzlhO-~#!@s|qkhNh48OC?boKm+*6vDu|7(qPKmZUl z+rPQFIdLKb=LDntGVbtR4ow*=n#~m@GE~O0q9DqV_R+4H*jb7|QabABWT007gWX!r z`$IZRQ5nzawd~&P((gd)J~M7I>$bsq=R!V=Xi*md+eJ(z}RpU(YyBEf@8?UK~(9KQFrQ zPrHQaGqp8g_6AQwT5P~Z9JNRCn(4DIJBDWM;_A74oiQRpDq#E)RHEJrN7M1>VmFs; z!gOvO2EqOGI+lxJBO>_By!8i@$C^+cUt}g;dYE<3&2Ys;aXxlKdDsT{A6xX%8J_~r ztc~PfmNwZ1V$;agX8Cx6KkL+27C zrOtJpW*^{YUCGdMnx4^*(Ir3>ui&*RDo;MpYozq(dL*8)HhV$`Z>4)Cj*SbU#&2}$ zc9h1E&WnbG7!?Y0gxxHkER@-zT-Q0S)`d7LzEhQ1c}64(jJ!hZw;L<%(I#j{;9Y|MECG0`)O+Qre~trPuA* zm?o8p-$14rW;56F!L=$?CP~h`F<%1=kleXxAvKQMfwzO*64#D~&Jb&gdOO8;0vIs4 zE44Nq&;3$qy6F^o@!W;M;L)ewHoUZ55@XNd+|?;1voU&3aEOUkWe*3ez;<)(rmXm{ z=4EYjab9}EB4&Lb#%$_%FniHeL@=(OW%nmn40C1Cd$jk9iUz$b4JU$U*FP=qR(P?| zmaKSt*RBIPke(pUAV4$HJVj93ds`T}7x^?=o78^5SDQ%Tyh8boCkFXKe#1!H!eF$U zcHR3Oa@3`(c5uExBRj_NfQKDNGb@c8_DN6MbKZCU$T-LN%K{V5C>&9ihA<3u{Z%_!tL*dq-G*V38j516FuEK%rqKc1a*4vnT7Rp^LJii>XJ6v3o23K2dQrTf;1|82n`-7Kt$EjU|j<04mTbH1kl06rbwL@>#!IoP#Yu?@yAr}RQr)s|E zOVGnw$J0-(1xw1FpFr!S`k9*=MEiaHN~|&nw~29f#RMH*Hp!{;sEN#aw zU~h@x-G&E;Z+HqcscKIAqPdLh6(Q@rTOf8@Pmn~r$_UhgP^qr2oRQxbB%vp@Xl4rYk*m z`Zd{(UBn~@4doV|5EHuLp~>PR(i!k^eTbyvgca%0?}wKT<)nRTbcrHFm7+7uY{Xp( z9@jkIle?6A7Qxlh-j2AMnUt>ND;V3qR?)FaGLgVRABY(bo^XtX33nQ|SD2$+OuY3N z-{VL`s_7eBjTD^}_L*1YDIAAo7$oE`Aamefxd48dTB#_W&9-X2(~nfXcbogbu-cmG zGy^UknDK(_;5rT4vA1S@hA6K%|ALW+_`+Rhf(+rEDD8jg)3@V8i;GMt(m827bdSf$ zhigA+(?3zx#q6)#f}Ya1!rh}g4)oe$YR0|+=DFIf`%5xx=AT@LGAbkeZ%FX+lrLK@ zz)ffjoP$kpyq9!rhZKr;+lMsHnzoZS=$x`Zip!3H`)O!$hSn^j$O?T1y0Q5z2ZEFrQOc;Ug{i%GrG5X(*mpuKUUPU;;*WmZ70h=Fk1+kXbr0Hy;NYy~6kU9PN5V3v=X=GiZ6K^swehpiJBdD_F9cKQ_n979+$j2Q;y%kKp*a1 zY|69=&*w`Uws$7Cy!Kml!aEkZ!i_F@r9@l!t9cAu|%9 zC|biU+gX&P&{ol3)Qk}Fe(K;2vmd8LxeVB${A^2CCnq1^<{oOo;@^=|iTM-MuRx3< zHFUqzOx9NFLyYV{TD^?#Jsv(nTDB19t3{77LZ~(s(0+ z?*s`uDdl8uQt+X0Q&+BL>nn0zSPNl>@G@<`lILzxk|%L#XnsO;>vcK4iCH3QyQ9;w z4GEGYW@J@Fn@ts)HxE#wCEu8-%wL+YsSK2|<+=2^^VCVi$f6f5qo(vR6}p6YSiNvB zzGx^sXAA!$tT?J@n4lek(ogL0--)*wFy|k-mk<=Jt6TSAZ9zX~N=adVMH;Etn1^u1 z?qXdtNa}JvQUUrs@Hv?&4f^OA3(uLs{q)BRKCRZn@UX~9HC@lpW*9p6 zS7i6B&5oneFGp-+U0}oe^@J_{WhlMsOhV}#ZsZ9sH~xpxH(I7gxy|E&spO?sUy7T` zJE2EuX>Dqr3vzbk{U*hYeJwj0$ureo3r2k~LAv+6rlyEurkXK-+qrS&tF%Co^FLF0 z>Bm+KwEk%+d#YEX264dkv>&hZ`kQ8vA9rlas$*PPaPdMI9QGn{!cw>6I%Z8oP8si( zn-0Z{Db|&=h$Se7s3K`1Tka>y#XXYeBhxzP^~qn+`i0qU%CSR8SH`3ze2xq6EG%b* zuVCoXIibNJQ5(BKz+)!(3=yp>)8pr{QZyXdadwwDxL+#ozJE`Yrb{rC>s64Mx9;|m z!a<8RPw!OUB#L>B(Q@~!HiA@49EuVhCv;%d*ey3G9aTKpS%~i`;Y5JlQ2t@wH7=7+ zG%_{hHi?7vNH+L>^nTXdMpMqLM|i%!QmYTXUKkoOyGMXx@gEP7jv1HU4?ZzCJ_wK?Yi_{;dIK zhcz#aFGM+#^S*!#HmF(tc2vD=D*r1(x$IjZ9c**Owj!LfD)FRD{i%qVPG_h57?G%= z6o#x>))y&MM&=I+RtIO_Nl7)F4=V69Z73!@n3!s3?e;D1SYEAsbbc=o*GJ_aHdE(b zLFrle!wryUI{j6zc|IWvp0z+U3~WBB#>OLRpC-_3Tv7dN)g{o5lt+mEA)4@(zhTkO zMoqsA~ye}O0e$ynYFO)v!m4!>`Xm%8rvR=BBptstx_pLLw9~e zb(r}CG-;ZkmVzva+%?>FTEk*2Hz~3=2j?mb8d+HLwGCw{J6@`qCNF_K2SY?oTR6mc zN|^usr-&nx%U;aol58(y&53q|^Np_l`;Ko+x>G$xR*=EV+EYoSO!?@U`!dzib(ez- zVJ_Xc6jPtmGof)8>tOKX4s*Co^-+bNJyLV8x=CdilN)>9!?fGAg+Y2`!wK&eZ!#J+ z5x)J6n8$hf(j=0ukhCnbp9ZFV`nBEkN$JCnXstvSNqaacHU6o<+dSm={9N#Up7V~b zu*FyI_8fHr#HMXtFqV3* zp+aM7ztPB!+1f*5JWa=U=B3Ay6yzA?qw8+onS-*98y_N>JGqmshEq)^Y-FMIytvcO zh)>%-n2o)(B)zeG&6wf2s}hN45-6Gj#1I}JBSs-To%B*vL@Wk6T3f2G@0Ec-1{W=V z3sw<=DwT9*NOdA%`F5Kp(}OCyKeuvKnm0^48l|rJPDuYF+n_Sy);)*V{6}6c0CmE^ zpx}ln;nbK&kMC1D4$&DmX6t5J$y5@p4xywB+B~huSe>%9Pks@eAJ?>`MI~XowyFE~ zAf>wU0-BRQ?$s>eQ@%<=bs2f7yY;xn!<`t zx=O+jDs?_>kbtT#w7tQfPSSF&Y3TXHEMyIX2~6v30%!Aw`m0T74~=&6{4y!Om=o)& zOXsyRREqELMm7dCrTm~|z=dr;lpDqD?a%g6dxhi2TcICAbZM3ose|@A)nK1uvG>RL zk$U;7Uq!jiWZm=Qu$e9?yHRNUz5JqBWt++x&joz9lu_g(*s6}jn-ok?iJl(i4H%QO zHeNy9%p-1u3vV&liN^Q%BMMAH*22{>nMK*moVdVk9hi$tq?Ubf!>kEEf3#NJr^n%i zO;gy@neF*c_k#^>QU_eq^eXHow__X~8V1N{m%xP-V$lbu7yj`*^r}aaCwlEWB{aHt z=6%Y+D!Oz@nc{tYF>!?|d@GKptzu|>+IBG`K`$q;!hB2!Rev)eK#ae_j)-bV+Ez}p zPOxpT*45l#X@pgkM>|Gxs0!PcDur~Ajv6dyN)@f`5ZIkqD)%xV=nikhyw4l185nWB zA(gRxZ;EQd724qa)dqHJ|F6!?>`l9=0GUVSCDkp0=_I95#X5zWj-zFTBBci5*Z1cB zqM-FB*y027wxK^rb!{Ia(|RpDDVG!Yxil`)+I@1dOipCOZf41o5K|7%y z$rS%a6Ma3$hat4li>X4>RBI9CzKiWJ<}@ck06^VX37~PWDrA4}n8mCXEc?%kG(>NE zw?C3(9U?J;xA|y`U=>*McX$4x#_+^$f9?}u*HiLb)+CM(xeW14qcSRH>5R-ZU(=lz z_b4V_;;ZlDB1`S;(dTRw^_F(ezwu^Z8rJh5aOhf^= zNrTS(z9M>~E*9IrxY>Vxvvti4wDalW|5K3ox!QiY=KhvsQsT@%(GS7>S?D^1V5 zb~@s^&!zH34$9#Nv}E7d@Gs;{utiR#k*4(ge{~JCxzGGM>=EDEr-U32B$tPny9ag3 z-x(ZY!AVM_N!_5xNR69+OEnuesa9XPxYVfM@>!Hy&q&UYC#1AAt=|eQT6tf9Vx;zsCNRqC-qRQmCN9j}#Q{+Q#ExH1GO^B1` zogj1eTxHi+ZW&I*EZeh8mnNhh&y(#2H!?E`ku^3fp3iV}R0^WoOAFwvHSZMYx*{7| zMq=>GY-dwFG?6|vwT+Ic!_rNCFBUfOlUPRst=i(bxGD>r?@*A%RLxIRL#u@>HpnL> zeL6={B6g1tS3IEL?*HbOSJ%(RAVSKy9}`~{PZG&7ViK6BwN5jzZOG1-IF4g$UhY;~ zuj0&uBa161un44E@lR}_L_!0%e^D#Ot>ew77~AT*{_%ZCApK)L&Sm;cg|y>%qRZZh zTeK@JUaF2SGCgBd#-HfrJ;q;mznwh(H(xBtc{JI0Yv#rLR2(VbHEq__YX=dCu;Bjf2KXq@>dZBF^u*c@G=37>JW?A&x_gB{n&qi9!=4 zFr>uFXs9^36*F|}^L6KnN`%M{=YG;5;*_EB-e9o>DsZf#Ul!&pm2D(bUg>yv5$;&} z>MJ%y;A?$!s;#|aI$A`C7YRXrq6qK~J}fHhZlWp5)KnLk&>T^h2Wzr9f>C3Q=YGD6 z>$C2>pRwLmNPOYW+0vQowYyF6ZyB{3V$-4_`)>f@5luKqH20}y#bao+a5zZGsCa~uGoMFqU6LbQ!RP?2;UdtsWYxnwTGdZ+@N7||zX@QDA= zYRUbNi{Y^FL`a`ADQL9Vexp}X$IyM6evhYeWhcOpozmF(u04U8NxtGZwC>|%Sdb{J z<-URNsIAdX6inIdt_rX!puP&=ZpgAoZ4eTS9?eR>*RF$jx8h8$JQwpLS>~_m(uRH! z1+Ef#+T8(eD3H!LuTs=Cu`6aPxap=s4NFk5;iUIqO+ydCyHxsdrqx1~&C- zn(z{%;?)!sunX?GTDF|#H5d1`ltPJ6%M85O#mO5SsHwDGNNxnlmv9nO?s2mfwGv1< zSJ$ePh`&bg{3SjUY_t^RN&b!_;XAp>(Z_b|-IhMy6BusB8f}b+jZHi`U5J=a5~}ml z)Wp9KuE%717x@ppSa6LU6*Ak@q9?tj>Jo02j&+7i;6Li7)lLl`aWt3^!3Xqr)4V3{ zItBHH&;9+_kZ_yPAiSa?j_(m`bgc;MLO8!Y`pH6{)iib6fpBQhA^x!qg1xd-i-_7E zzkoN=6Q&i@CjtWtMW|s8LwD!c`=`uQTlXTC8xM#q_YR)Okc}nr%1A zle0ZJKbm3hZ%mo5oYWqJ2bdt6On%A$2Vx8Ct^M2~iBy%*-4gN4B+5+kgjhYEtqq$J zI@8EslDHAn0L*2*7OcDUj9IBUW>!Cg5J(~IuvhJj92?U{a_WvZk;7aL=ERE8rI*54 z`}9-6jyohKd-aZ(9K+ki(CtSfR-bU_NhO~KuhP4A?N{;R6%^2?p={BQ=t&^4nplWF zLW`-Cy^VA0IO1fWE&Pw+`HYjPJbHJ0C*P;`DD{NJ@szH+{W&KvOgp-rLIq<8=KU_BDtibZcrng@wLOu($6$==1YX&t$Wde`Z zPEJLx!ZHFi$~|T(Ubv-S^{`1oaMFg{t`#y;rmC@V)61?7NYn;ViYQO$IB13vHsqP6 zORv~>6Yr+D^HTf%v*kcK{X?+=c2?U z7+Lo}j*Pe9II`4&v_47j7Cgw$<5&zwQ|K4g2IC!EJvV8}sWSQj6I|vpO0m2xMjO9u zJ?bL!y^z_#_Fz8;!tIm2h1_jIfw&vavpqXEYa36>_Ow$YFd3{`vvPFS@H#N)MFIqFEgTRY(a$-Rml1doVDy; zjnMPJp83f2=x7(-LWQFJN^p!ufz@WJXl10%4ph^c@t0_eWw4>=Nf7LoCwbq%dyn9H z=@baE`3?}=a!Pl2WE=qqw(S&_FBx0&<8Anu=N+v@|K7*69~%524%|%wUs4HHrj5F| zrNfpeq4%!uNdfFNoKa3rx5fzi!b!f?9R|3U`bfOW+sC+@3zKlxW<%WP!F|j;S)wda z;5ukR59gV`MAt*q1^^Dq1CuaZ88I=&n>MQ4j{ucLK*&){d!!qtOyHB}h#u;s(kH^9 zYsEIh_QSR>2tLPC+y{UHkfhlcQV3_~7fTldeJp@n^x`MSr$mP_AqUxtUpkw6tNT0y zu))Ut)I(oq_|d#b(j_2~GSt}{C~>LEDzP!f-y+vQyBxM@*>KkDUTR4<&ecS{O!u#T z=t<^~7NF2Q>%GD$dHg`ie<*wr$kYa1pI1AWi0?CXip=agY_);;kzCitCan_1fUQG6zZ4=uvx5>*ScgTg`Wa)y4HV!o6<;`3*rHNKo$>leGiO} zNA9XcmG@dmYSX`=Ujn^G=9S|~JV46o^$$-e$H-Uvo~a^xa=|`LNyyst#BmtXO$a!= z>jBHTA$vsREMVn89}sByFCc6Uk;7Yk+~EW=<^L+(+Hx4p0f*5Z>Wc%-&DQ?3!%riC z$j>LOc7N-PIioFN2U99~_MmSlJR7)cZHTPwd%Y$w8Ldpp&_BORznakxj9&OOMeGy} z_A3FQ#hy&t?{dO2vBCIhW@p5XtjP>QHmP>MJjMEV0o2GDAP8x6odr%?`5w>6aBI@X zBKDiI^NbI~fV^J=@_`eS^giZGRNyt>AP=|vB^au6{+j2=V!0sL5B8tQ>|C?RL1qfe ziQ*IWk=StX*4n`nYXsN=>Y;<|6sj}y7ETDsAYq|bI$_HXDGR`<8Doxz9}F>6W^nYS&vF`A z@H`Wzj$9L}Q$;Er)Frfk1nRDVpAl6qwn^wh4%jPXeAWLq$vYjZb@TV9-qZiCr7SGE z+Y%uv<1M=}$}{%6?Kd>Rm+*TsRr>14a|bj_qX!>;56m))O#U3u^GNHgU=pbV8Z3i9 zdOt=<1;60*_P~xnmW0JZ@RvPkH;{+`-cKRXp^b!x;#HK_P=QgzLD3XwJ*=XHcd_tp zOAk`<5`G8Cmq9`ml*-;XXlq9I+Oki2A{Fht_D8@zE7$*}^v_HF$m&w<@g^<%hX8rfQLvzTsu`a}5max-$P`Jy`L+)fRA% zmd6uh)8h3%{0fU$X+K5hxeI?eA_c))50Rcuk5vvtHKX;7UND?xs(*u|dJmr9a6krG zvi!RO&A=!k%t*HifjMjO+n~#w4bsoKBxeebhIBz>{jRmFeF4WT%L8SzAdtVB&NCLx ze<||hBf-=4bCbBH#hVA^`areplKkg@=~iY4S^QswLu9GXKuSo1$lg94efYN)&wXGH z`*wv_Vv4_vkoHwFNNGn)r%YD_qg=@4rZ029ufBOV;@}?^0GK?kW~KQV2J!)) z_cI%II8ZrPxmEVyFJ8Pk-&TCV?&K$51GLG58>ik~uoL?9h5%BzckhOW!K3SktiOQn zKT-w1d8?u4@jx}<0@UMi0^B<|By9yJ)4+cgZKw6lClT3^Mw}nioym{-0k{ zT^k19Ukn~{__4h8MqSZ5pH*q`_GRwcpI>?9HU{-gYMze%rDAFuZ{XXZpYerURJ!v2 z!-%#$P~Irl@z?HLfn&g7ghmFKZe3jqM6(lU13+%v|l{A67Rv ztP>qZ!g{rQSnrGY95NIJhf1>4MDe}+!@uiQl9DgxaHGm@cFVl+juiiI~vIC>-Qsov)O~a(o)wlfAF@( zZ?Oe3*7H~F^@>lk6Yb42k3a2LBuO+^H`_I5N>33l>WTk*Y+TktzOtS5lNr||#=xCP zndc@I|9higykC&r^NsGV`e3gd<3B@o6mHdAHBa?x$Z7T;&1fXteS7Z@L%Tc0M`+o} z1n0BHG>K$FQ{+F9|Cy#Su=<{uH&r$JOLo*NU-|EHVh%-<8}=a2_W3B|+`n$qHr$)7 zVy*u@^W;-vpA}f^U%e+aoOq_ZdfzhYV&~-1kwVP(l;+Im3oMtqr#tA=A;3zajTC-|CyVph}O-2;SSYPPo9qd!y;Ph z|23^MMaO7aL(f@RoLPLXmQBWPyt@2nzyl)QFBm_Yxt~XAp_?vP|3@`L*22D19Lv1! z0soeI1CT0+-zBY-G|N6mh4O~hX;A-&MfwA6Q<;82msZUzALh7d{pk~CEZXmFp5oWQ zF6{Gf|KMGIx}Nd9zVSjoC#rAldM98>?Rct&S^Fg(ZQ z4}8e40DMf@)r?7sBuh+m)xUf99|uH$0$AKw43Bjm@@5%k83wJSt*QOt6gTkV8xbeH z3hzjCe8V3zX8+#|_dAF?ptwG>CtQHyid+05HRy^~zWOg8~er zrO(=n09YB>nM+1j!Tw;;e-0pp+nSdO{C6xu()=2%{y$hqKYK>o*lSL|?DEHx^slFA z@v9QrG*`P1l^*6eD!`F;L=n>eZ|4CM;i^AVa@tXWb+e}0gGSkSUKvUW<$7-F;cDNh z@$-*%om7CU02Zzs#qy*b#t}%wU>F!WFiUGbR`Bw`U~|r1|7`jYSnWu#XwyOthw1^+ zH~9gZARIA_T)hbG7dK9m2i-&XlR@BuqnlcQKP;$RKIn6VHme~BTn?{v``xB^RukDF z_1QF5hzDH2yB7!aTH6{tq;UqGDG!1oAAQr;XT2WAkURX#lnlb6udz+WKVQfLyz=8^ zl>(LrH*tr3ayaf3PNx9ApA1g``lLwZ10zbACJi3)f|HNX)Iui!+f~V7zn9_%Abz3i zO>T3=;O#3{!{eat@KkwFe8mL>2$?f1e**y;khu4P(cNtKYI*lwbNh3d)2$cV%ACod zOOKHNYx1WGw#nBweq->MOekPU@`eE`6BKi_@!0s`-P67u%~ByQSI$CPTu$zu@HHo^ zf(vXqHXrYletM`eFeeBMSTx%1J$bF=EybrioCyO6k1{Sh8T!0nxHc0*PlQ&6@*m&u z-sxtUWGgw1DNkX4$3-6Rpi3>a@TjA~VAcjMPfh|M;HU z3&_wrCZLmh!HM#rY|3m;IqTh~cM?uL#e7gIZilM~9N#UuBYw&C1!J$d`_&VwdvlSL z3eL%LwC5C=rsRR|am2=*{-KAL;@55QRd8=@mKG#j9edRb3Zvb0GYc8&Yh(9~O zDmR^xoVkB|H7Us{qOuFo;i^(*p2)I<~gXD z7-yW{CA&b#e{bi9^dr6~nGW z2N>>O)w;s+bmbFe#xve-1p&6WIs%`ZzcpB)r32*;6|Oi&dAdb@Pis*2;7w$iimLB= znCB-ob`_WP{k~0z{=bV!Wl93Dp!;oH)LApb~P@)=-bc@8A-E(&1HDA}Mh zA{RUki2OYVz_Ye%%Xn;6c61RiL{I{6@E(KCQWnjvcZFvy33~lqX)>K3t(!&kb4p+H z7#QzmC%h^7NoiXl`l2xscHutr{An}Ey!8)sn7zZvh!GL@u6TthL}-4txYofrE!eFq zy^+q7^h?f`!4`%BMprn};z_X&8cX?URTL~p>*SbdC{7AdV^m7Rb8Y-|BuVIcMHJG6 z>m5gt_;P8LD<`_SLh6W^uNhD5%fWM6H^8$o!{~ej6ZqDSvZ1l%_eTA{g;kD4wuW$8MAqkyDy{%vl1o;SYjZqV`flzc85b_dptkoN1otBord$v7|ohYOtEOcyKuX=3tqPHz+LVavOzY=M!M z@^mhhmdPfii{Bu#-~DCiHO-f&G2g%3>GmxNeP}^ZP5T%vP^OSH=&1GcLc}G{z&0tA z$i?hZ#yY-Qg^)Uq5AT5Jip&kXwQWR>d}Si%Bj9@*$?qVtEa3ZjM}frb=^8`#0!3rK zmm}f`AyJ)&x`>HAbpWSoeDf9h70#z#}kCT-uv)g}6V>AX&hfcJf z9-BUaNL}7_^B)9@va&wh6~Xr}4BIy)DkpU^{?@2yi0>mC1M3Pt{8Z<}S3ghHbQOKU zLd#)qnP>M#D$I+uLc7#s`N6K#Ie;{AqARH=^p^r-v2Yh&)l?Iq`KFp>`10m&ozgjW zbVf_hYOl$vIoxD=@3=RP&47Z(u~V>vaP%tXlZA%Tx=lj(3P=mEr`#ro*+%*)vah|7SRSR5M1{^nSGRQ_x?TFQ zt5Djedw+u(u<{%aPB&C1a%lag&T^0E9{4e4X2w24L?yFy!SAv(FR`k{z!wp|a zI^36SrfzXVKwQ-+eh|;+ZTRsIzvKp#Tm&iT zYbaxvuKJrAh>z;zhoWNe57R51{Swf*%u49$Cdky(tqqexR21(RtgdRno?#c@6;ori zujunp|78-?E$e{>Do~W0Q;0iEsr4D`cd?c40`#V)W1L?>YvaD>QPR^zFJ7^bXOvux zd)0f5*JHj{l#*Ol`=2C&DWrQNPdRUsd`&hx(BiV{<&9^1j*EPR9h-IR*8ws(?K~dz z&XU=g8s^KI9hU<$L!$|Z3#ABy$REctKOg}UjkmUDX%~+IB{v|xjBfNQqDV@vuG-@W z)zXA(am0PLCWde3gs@q1@bq9ugxm8sWIjTN)_VSyjL%;cGTd!XeHPW2xQGhr2%h^& zY89r_@p0H_pu$d)pCjvu<79NN+AJaOCED?L0|K5AFpct|^3=_;s*NyQuak=%kFM?r zAlQ^*q&7G5wO*NHVlxXE7Z4rHDOy-Pk|%+6aV#5TD>Rt;fYEz7xTK}#ZJ}iMfs5jp zO1sNkAMO66vvcO^yUA;`wv(OLG)HQ+B2R3V;jJCTy{+HiLF!f29i8m)h0e4!Gt|fE zu_rpmp>^A48p_3{1Kko|&vJ^xIzm55bwqEuP}c2VW%!e^ zE6gNzI*dr92)6GjFmza1(tzp3k~F9<=;}QMhRR)^-E`2%eU>OU(Xi4{V-U6HZ!|;` z#J7Zu`(A+t1k^@A?xg#wy=nrbnIqf=3cte#oaw`4NXX=ejA4bT+J&xEvY<0d4sKC{ ze|80-=|f%REX5SH+mrTcSg}uoz-)(ok5^XWCJa5a$gZd7EEaC(wxH{$qY)MqryM?* z2UHIDAO;`uL;fu$RlU44LLQ-v^w!jX8)%Mq3Hn9WnR9i;dWkLjZ`ecWP=~XQMzYm; z{qJc|=t?f`3MSzDzSpSh!&?L!>bu&AWe4PU*vI zckBDL+n2m--y)ZOT$7*6e`wTVH4fDG=r|6kqF_v{zh-x$NpN+#e?@)xv{jUF@(cK5 zkYySOow%%jJWaV$ve9__27ms`mdItSLvfa&n>@<%v)@S$^Q~Q9p|S&s%G;R9t#I;% z&s;0Y59Fmip_rtnyP~TvWy8BW8?SEB<>nc?#20XZp&0-6m}lsb9`O`cj4(`J3;!7p z5DH~;O*hZb%yCHHPaTtTWcSU@k3d*wSA?Xlb3nT1gzA0*rGYgSZNBOyXsmF){I@j+ zp2N@?AeR%HzFkJl^A@C`z022SgRHizSe&br_^bF$moV*u=DijATL!jh9N6t)YEDcW z@3n7;$RiVul=(Txf`~$4Ccy1R=qEeI>O}L)9=b&s>)$P;uLZVM7`RUcv_m}MH{}9Uf^4G zVBISYHKYHF? zeIkGrGjBy27y|R^d+F9XcbB?+->a_}TzA-~FxEsl{-8Ln>5MjBKlz+kX~X1i^0bE@;m1_ zsTyEK;uopWPHMV9NyMqcW9G&<hONDT#<9vbN(Z{!vsj-eLQVGm44zTfPvHK20lgAlnpIu@Ua1}_2dh<0u+8~q&x3ItdE_eN-wv9 z@O8*x)l}uDYDc#2?ezoe$1R$4y5V6$j@%x`$G*rKIF--6-0&j^L7nEo1HtBGv3ou= z>$_p6kOu$OZZEQ@44S@O*<<9NOy8{j@Z{&^u{e#87{}Rap#!C0`*+;zGh^0 zMkUM17mN~ge>*G52UzdlTAbsVEHne#&MFIbEcGAi*fhLLuziv4-<5VarllxbC^c2Uhb*~ z-zxfi5m6NxV^QSx)Q)X_dt}VGPJdVG{l#4CHl;-9v`HSafKWyz=S(Wm?A1>0jUmEi z8n$51o`%q++v7h3FBCP)ySzN&#hCZT^a&DxU?PlNKGwGA#UFzHwiBmNB7`8J9NUob zj(QXs1tq*ojp3E7$`fyaAXjMP_#@TsBwO}v0lD3%%R7$;=MxpNtA_mp$N}k&u-;t= zS79op)Ul8cGv4|IdNaFe8R#XPi&pHK)5+F)Bix=C;LkWiifllHW-?FX!J4kQ!*D*89lS z@bsHVMyuh|H^=2_qVAmEQ|~`Gn!9r?p3AG#C3;g(G-2(eba7c@O*wH}a78}sY_0-E{e(v(-Yl$(M1a_;KO=d)J*kb7v z5v_ymJcb$dDv8NYA`l+RcZdVGjIeeXOH=r}(a027Wl58ZK`W*dL ze6b_uS;+6-8Pa#T)NT2X>#NMa19@ zrmsSM7Tp8iHdp^A>XJX#b`7z?ZHOOxVYtG>Vmgp~O*ha=QPsv#XEQ*5s3{va*GBHJ zxAnVqFiNM9e7-5f>n;f+HJXF9cNj?VmG3t+t?6RUc>(d6nF%c#A+csSB|7fc+`1NV zYTlS-Yn&=*2L(s&aO5S&yY?n`Htw%q`@m(N2q)F;TYo$1Bqgy!R)LMVOl2? zS095ZlU!E9^o{uOrTGRQNT=zkQkyy1T)IG|m5v_#NHfR!94|!v%J+y_6BPSQcK7hH z%&^g$FCX#Ax2969riEvV*WcdKr&Xv(`It(wDz*g-KMbs-TiT+p#?G}xy0A0~KRh;v zhMQMCoC<`E)oI+&3;hCt9NO?HD7VMiq|SdBP1N`i+cmL(P99&!;EZJ{((@B%ogT=GV=~9OS_>E|*w(G~GGtlI1ZQg$>LUa1Oc#N*D$5|$?w=o&V@k|;?jtRLaxW3TaN>Px2emZdu z)yK`CsWysdYKo^Ha>TctGpxI6$ij! zPj|ia%B@#&t}gE$fw2q~#He-Bbet1KOwh8a#vV=ayPYD(moiYaC1Vh7w(66fyfDDA z&6O)&5H(5U?4+D(E0~p&mSJ@IF@$mm(JxESPU(WFn7`xfOZ-k^Xp||%8z?Xj0h?Ie zx{r*{vaclg5vX?^C)@3y)CV;8Y%bW}Le`8=_Emi5HR`=Ko6!iI-j!7Xz4lj5QxNY= z=G(ZZRCD)|BuYH+xo*fX;LlO*;k>y9e2J|AaleCLPKF=%)6D#slY*%Hpc^F#0EA$e z5PEEmi6{?QQM8 zTW_D%I?^n;g3Yv#Qq}{dFBj;QL%Y~!@dJGn&AJfv>HL=?2CO@>o4nU}b`X&LP94Jk z-S0(U_@`!i^n`b&Q?w{$B~5IRf7V9ensB50KnS};uuzHejRoPVsr{s|0&>?=-s-)+ z$tTcGVw&m~cu`LW&Y2c0QKEsqZKh*h#@zLXX291~AD=G;Ndm25%F z1{reFOA)_OWv~)g%1_>ue&hF*VmE&4%hJRbvhxi}o{&eLCNmb@cA3gdp0y$g zp{;F1R0Eo`>IBrcU@55~Nh;s+W91RLXgUr)tu{@;82uW`!?5?eR}mgmQm-es=z84~ zI2#9vLO3WGC!gPL;3^Oi~r3kd9n4SfBW1B-^t=$>Q^^!z^Do-pA*<@XZ%f)52 zoQ(rc)e~HC3R?U8f7D7J`u9rD<~V-I(HZkx%3>j2c1dt$v-4DxT?5VflLUA|CvmNr zCOW`<=(?=f+JU(CIYRJ|C$GcQMX6nTIHkmQ|JrOf+PT8p?>YiKWriAGIra)dC$OPZ zzm8d)9A`HxcB!=C=EfLx(}K^8w7zPs)sndLP(ONqwj&FXHohcJhj!Ra}0RuREWByqIaZI|r^-Hlhuj$U= z1)hqZBV3MJL!Z&IyG9hG)}nr`6DIJIa0zO>Ofx-gs_~C6?y=hEfkym*kNb2zjxMJ4 zM~H}8Wk9r-tI>gmOrtGJY1~Y|j}&AHlkZs@l$w6CQM>G#HIMa5#^!o69yHI-g1K=m z&3~D4uOqfK%Z+zfFa)9+#q7Mju#uyxNs)?3Ds2gM!<7RRc!GHi`w zGAJyeK^)JAPC!_b?%bnuxzLs+n{y{ak=nfD`!r*MAs{D3%UUh5<*aH+;aE8@MxOaO5Xi)xru`N(sM0rIgb z_3Ucn74vQ~0&B}o)mO%`0+sc1Tm%DWNGhkH1^gXPZl=v9&vlBg-kO7_q+HGZ(Vvy`8*8X@ zN7RXfY_6`mn2p%LSXwWgWomd?RF4wo&;+6!CRr1Eq9Zxai)707uNAmueler&bcY5L zarNu=)90qF1aP?&Riby^#^o4%OK6I#XCMgrrozFitF|}z`tB%&%aF(;Gw~>;x`80k zW50}eev+vVll*EDSx3U2GHN?uMy{F~f_Ya2L=>wmp{uD6KSD4~VCYJUnl{Dc{WkO}j?HXx#Hf8vx<#@TTC($-PNiLN4qmql zuvrIIoe~b#P!SS-btn6f;Xfhlu+q-!Az2exlp2(Q+A==S=SK1SW1Cw|esMC!ryO#i z=eK}dTZ=wsWex|aMxH|Y53p&=227WaGRJdXiQNr~zZg6T@XOKXVBOFi6@fa&_h_aT z)%lyH=U+fh7(%MHjL)*5==ulGc%B)XEpYOt8@Yg=!_COwp7=w}a=pf+A#549f~FBQ?6^ z>*YVvz27vIxUFW&nsUp|+H>^IUp(uXXn!#&Sr^MmbC6Qzgoiyuv7o)SYv4YV!jDsu zg``a#9(A$#wSR%yAmP3ve+r0+ho!wKa>NlQ-?1=GtDqgmTH{w!b_WQ^;^93AU_7he zHG*a*h8Y{* zxPA1UWD_l;d+YnMJHmdd1^XuQubl2PP#X930#|-zRwJT>WME_}v3nwL!0^w3hPxyO zxdPrSzpurffE@=FDgeTL!L*?+fbSpeCKbtc+Hk&2)wEKtPwuzuD!jJ6z9sPx$m!Bx z5}$X|>R|C+zvRSLV}Iq5^Ye#eLZ#li3{*d?bQwzL<-djH>S}H=i$nN@o)S(bCyX@{ zHJ#E$<+a~bAGXUS7cQtl&8HKP(oH`bx&>2ZBBrIwQ{7s^G={53tOUXKYg@K7>kuAM zif`Tor}SvnXsHW%T<3Uu+wl<8I5tzR0S}CM5zb{#Gt9(1aEOig0DTh+o`yS>#AOT| zMVg;_ccIT7_8N;5DXdmYlWQy2rJ&u|{*tN#r))9VP20rE?(Jvub!T^hRr7DmvaV^R z2@UV$jm}a6=~r+?tbF6T8tv8$yd~E;ew8>(r=pEHuA#itPxC9;a z{ghvpllA_#d*_QYgzi%nf^Qbc?C$~7Q(HYAWHsu&Q}49Y-8EclNAn>$9H%alj6MXz z;rNWCPK4zNby;kxjCy88*3k4ZUw8%#cjb$*2k+U)Z~5>hzQ?L-$E*m(?gyXO(}de> zOsN<6R*0oy-^ryba!R(j8?|Tr?9kmRPF`BZI>$RZLY3OL9uynFEf;K6oZ4c;BZ*Wh z(Z0Q}T9~P>93(R39_}B1dA}PY5$hk(44Q9ZQB4-vTWnidE&9>df@aR_8cJ_~SJhO_ z6#Yc_TFkGM=h%J(t>)^agM5U`NU;x;uF{|xv$J%qye48!#7p5AfK zjh~f&K2}_a`hw{vhCZ9_D831#@boC*jQ|^C*vy%`YEQ@UGE%0 z>({QS&hTf+c1G~c1o%<~)=lo(=%iIz5)RJred-diXCP}Bn$7B<@zEZ6u8^99R+^*F zkqGAR{Jz83vyDYoXyDsfItKzz3%bnXF> zI>8atWeX1J$*kgSOwywrql%vd_Q*v40m_DPVaFXJo9_LXwN`@2Tr;>k37-~Aw4 zr}ViB&Ka)$ZBBBC-zA}`0zt@t8Pj)vpsGiYtl5Z^0-9c&0asjg{2GCtrvQ=D_7sV)z*BVnR0{^h+vhpJ(NRxSdTb z8*PCfH@hl*^&8}K2?v^L59A}}j2WUk_eFhA}wYDIT_EtEm#3)CT1_Y9;lk|s*0;bQX3(!QT-q)FPT=4}y}bw5(| zHfFM$f&IBC8dDM5DvQ;7XA=alW~biq<1@x1u0sAA)yq@$Pd5GLNe`|lI zjYhw7KArywWve)2t&akBVaE7#E~G9q(V-3QtB{+V&} z0o@s|!?C<;LM5B(i5Swn`;DB+%39X zEjbP>VM%UO1_fb-rGuEa)#a_q9*GO0ymuITc4#YUD|6o7>W4Zve%+AEn&pskI(I`p z7dq`{*sj_S=xo_~m`v`_CKGv|X)QJ$G&a5l3Iz0+OSs5c&fe0O4cLCLK4N+#C02^r znAA-{OWUfylccb@b++u75=otwt5H&0E%f*QUH}K7Hg0VTqV2R%BT$fCL&~$ zLVB=IY5!A7n!_&jLJ|4S#xk7`Wfa>lesO9Z`W(Lx7Y`2poVRW>ld#y2_Mmij~AZCw= zMW-Xj*ol9;M12Fo<-n>lxi`M`7ZP81Q*f(rVpSMEI@Dnw3L}3BuRwu?Fm{Gb=Ul^Q zXEVH6tM9pJ6EID+OacdAnMDACNZ6&ze&9@6KP~li8Hz8gma=Fc6-UJ${CeS=Z_md$ zPJarY2kVj^(aP;(6k99j-5+ySl;^ve_5(WhKW++rS3Oid^<}8$tELzZSF0Z-BA{l- zc)197hZ2Hs^xP%EXIDxfp$&;e?}R!Yx2EYA#F{pgITACz+Cn^g4Wf{+8QlO*bFFH5 zwx*T>e=#Nh8uZ1kQoaUt<|Iby*XjT#v~S|{G)z!$X8j_CFux7{^2z$?^$>;dxaS*w zTO1};hLxjE0(kbNZH1>7*gwzamR*JID-Qz%nhkWH77i9)$!Rt$5^Bvb&bGD{a+FrLEv<~5u z5KxF*@Ug;Gd)dI;JSc0?RI-_{jVd1aNfU-w^73%Hm7q%Xr#5wc6)lS?h%d_NshKVQ*J6{1*3YK6mh-nLoSUD6G>qr75XHHPQo zze;dlIdQ$^%sohN-7M-J-f zx|SP^C3l`}R_S2hE|vX!XY^{}?xI6z&ue82Ri$D^aa6WN{E(xa?Ev?ED>75H1U9Il zM3BmpurAjR&H+^OqkdRDX_!eECc?BWas?ah`KyQLkERSIIKy^5n!^A7ZVkzP%`bZ@Xj87bq5g zo-8D3yx&kS!L?803Dy^65XPjp5~6KnD!)P>Zy>|WD3I5TX%ghR9w0Ze^k2~l!dz&( zY>sIqb^yZS?CF8ZC!E8+RoltEe2fqzX@IdseN0&T;16Eo#b+EmyiD4bkCa>Xl>8P> zG6$}^@Ii1w35j8QDIIYVPIBiNUHOIkDh_Z4sDKi(v54{}PAz2~+1i+5obZ&thpVKR z3vi(`2%NXD=@&b<(aIZvQ4^Nd=_<`5eoCJj#fX}j!Q>GPD#ZihT%g9poDNt)JujAY zw!}x$h4^P7mmD6vC||y8BSIE@7d3_-+|PQrIIBnqsVM^5K@J3>1IM*!9w553AE|BtHk^DiDREaURAW~+-HQ~K z1+v8H;%>em`)qWN@ zpPFWeVa2`mwGZcQEkr+7(xSP2JaQ5MMm{gV9{cvF#PNZe>C1FdVD=j#I%?UJ-Y;w6 zKT>+?q>c#arq;q|ZoE5NxMch+wp)h-z*ZEjO8>J*>MsWV3-5V@!i8Q=+7^+%ym|s0 z)=XtusUbzehi105y8{Rl`qU(Iv{d2??s@G61O`n$nHH8jkycON&Hv@NWZi8@xR}HW zIaFpqTlP*Q$P|!TDPMB{f#<)L=Qu&J!(b6BK2#W%s6yK|bfWFhbu4PxMl}@v8Z!Ta}LdLTJetWO>uO|E? zMcs+T?M#p$FCnIC2S7}vO*q?FZH2(pus2HsuNrr4BvwJ#6{8r=`77jeN<;i+AW{=p zjv&gq>w=B6@tKp%Bklsh`!n9vO`!!Y%^x(Hd^Lgk0}%v&_Zpz6!bbl%WlDU6K3ETw zRvEj)NOA=NKZ+dx3xX;zv{>HqA5#M`1DvI5!QR*qfbs8t!CVRs#KWJ}FV<4U7fA8m z^?J#p)16T)lz?;to;5Bo(S^X){+8tRX zHv`Bu0MaIO0c-?l#H!?Qhv}fy6YyMr_yDc`jmt?Ka_<PDo zq!EwzJ3tkfxqtpkz^wlXYE#PyI+I>W7y3uZA^6|D5^{#$^(UHt2H290sN=sxRbcOV zr`iNC-4eoo3F7~*KPM;v5%Ooi1s>%9#;MMc1wq&iMDPC#ueAx-e8IwL3OxL8Kao%V zm*}Yf7-RhZ47~d<3;Vwyy#FTr-!lGR;5`2ytDCj2>8Hif038QDw0cR0UN7)X5Ir7w zgy-#8c)izZ%3F}IEH`#F4KEl5kyzZzs0 zefP$?t-JTr;xMA~ozn^>=}OK&HjWwg>$@&^ z53skf@v&X8X3I+e@&|XNu;6;`T?#~cHccCjvu93h z_51s0yM;)oIjfjVoJb!b37xHFTpnkhd^MacJf7DNuXld0U&noVb0PM26?(QEobTvh z=FoNzv$Gzo!d@?qzl7b+;Q`a4cIw}_UVkCnm~*+r1D@^QP~W-=ZkE&>YW&LkswVE9 z(&3qmG<~i~Nz~#yMu=8n1x&C??a)E*D_o}O=|m@?>1ZB6vlZIs{CO9+QLpC$D-Gef z{_Q6E?Ts43zWZ)>Db$<`ZTlVmJVWgTz_DOa(NyVS`q`{0#1Y#Y+0YXF%-B{CaTL1H5uT)%#^3&IH@jHy0jD-oc*K{ zfEm4fh!bd*j7ssoBZB;%;0&oC0Oa!91EJnsM1T&9!_%|93Di`4FM8TygshLN^&b$+ z`gz(V9dCFb&^tD>2@KW_BkiG|%#pZ70QUWAI9V8QlF+fAbEiC-(3ErY#+O4jX8FcT zz5h-2v>d0TFMo_QGA&@T0Rh%dW40l{81R-ry&_-j;~kg+>}(`c zHVgvWMvj=u|Byzi9u`V_d%sU}im7EZw~-BwBJ2oMFjPq0Y;v6U z-{bXlda*XHl9+x8a!rWHp#Um%hps)b4{Ju|+Hgd5mI{TOwf6HD0^AK_H@5|<_{t_K z3kDZGoO!^LFvFX^^*Zt7pm#PG?vh3@SaRzZF3gX`h((~!!_t>Ga1lOcVvhYf{3;v6 zq3h$-H0M!lbY(Nhp7!gKqWYNAF27~6(H$|-y1f9dMlQ8b3CLmN=3?s%aF(yhnBf~B z8@tKJXwWp|^nvr=w2uX=$efDRfL}+cj+4eamqnd&g|JaHa;k+UVz#LStH$vwOR9P7 z-vIQ@h?YLvV`jQRf-qwepQq;UOB7E#(b$O6f1H)m%Sq;DD}Xh8emTI#H+GYn#J|H& z@edOs%nyfdeZMLc)|tx}wGtjJR6ZAW*G>nVNUUM)tiV3r<96hX;7Sd3T-rU`z1lqr zz_ux%1wV1Q>e&F%1)RJ$#c+_b%SaJ4CqLV0GZV$IB51l}x*v2?bJcTj=1kAcY86?B z7fCtv)&|Vk%o>*E|FOxl04wanGF6CcaSN!#8DM&C?sRMJ+fmC6oQfrXU6MhMI&D{U zIGZG1z^miX=W(@5u_-@hPBEY$+YyE5E56qa<+_u&mVDVfLCEeSJhY!SR~BpR(7E@z zss8UswgNUhyTkpef(Y9`T+|V()IFM!ZpAt$T)jNN@6J(iQB1et9M6pstm=BT^Wv5o zVc#L5$IKeVh)oqhbG`U`f%NHB(WaMe0!i$7;{7A?WpSWw&SW6lA#TLp9m> z%cEDy#iQsht=;SN&E*Brk(w)DB=I9ESN>zK1KTTU=?@)E0cEqhUa!Ye85ugU?~Awf^1MG43vtLBPDU zY$L)%;J1yjfJlcf(&l_!Ztgl>Ela#BIs0Qru(Que1ai|}$bbOyW825cHfoUpCyY?j zHuAHs3>7E2^g95vTiWwW6X;-u!UEgzWp4K}S3M6{zBJ%n*~sp4uu4BS1plycWR8h% zp|HSz(d!nb{70_h0I%#%R=eTXp$>Aj+Km9SjI+0@s^!;g3PTyM?{^!`3}*&S=}rQwFPfKS)TksBX% zLIqMKo5WmTc0kPad<`b00Vic?`+EZBh6L8ywU{C@CE;CUc~8clHxc}Rdxi66YzN4| zl4^LMyq3A7^+#eu0UItOT`!h#6WS)fh~y0Le(5A~DA@Xt>x(gW%0r)Cx7Wc9sX?pa z`0XwuXN{J=SzT4aON~O#$a%%1y?nII4b{(OmD{_M?^JwAvo_jQGkn=gKNYH#dOm@g zFA)jCKsW|Do1&#$R7k5^pD)+?8&}H(_Mg`1TWNC-z(EjE92geb>LN6CCb$TfgSh^> z{e4%CPz-pP3g1h~YQ>szaNJj;E48c#U9f2TdYnng|Sk3N_)r3s}?6-Q(h7*2!*=uEnC zqQ{8{I^OXO)$CP5O`((JN;Ppe*+5zo-tD8Do@?#8k{_&{*KrRA^{Ofc+zJ&p-C51G z!bQo$!a*6&q&B$`s#k?!OK3p*wl?2WoW{xcv(sSrHz4pj#QTr=^V20|V+`}f_If#NM zQ!%NYKJO}oz9f6)Fq%|{!`U+1lf$>N)XUkD@sFV1Mw|)VyJ;50ZK&fI8Kcf+Kbd6clpq%~RbuvwPsV<@e*sSyp(B*PlTk2yH0P z4XQZPtulFZ_7=PqeY#%~SdWmxFY6M1H|a7fsNmV@|9Wp&w7OINpZ2!&8(w{eS>&HI zWWg*$0svBcu3<*7jH)y#%;Mmfw$aQW=3;2$^bE;BB0py`bAU9T`I4s)!z^qubfX7^&kt}}crq9gDgrUbc~0Im=UkVaRT>I5`g+<~_q zqkPx;Q^@}GnO-Sb7tv8G;gU69hgq>W%%6=|p35TYb-d57P8VCZ{&Tlyz{Rk6{Y;#KxAApOdquq_f_y7%XEhBUJ)BnLTT2eBj;kdG(Xn0WdDbc`f zsMo_YqT{0n}8ioe}=`vO-S%d1M)7Fx5r+(+d3&aX7)8*oc;1!K|IYs#<>Syx`7OOFxMrX ztM#z=D22+7j2|6ALekcuXt>^W;ic1QWLV`ohsbiq`TZHA2dTD8J^tVB&H+*({s+k6 zS$%z`f14Vevp7p{+*tfOu!Ri1VcaCT_YE@=w&pt1LbN2x%Wc*+2&BY&miLF#@b8Pk z-O8}BIqR1E%TufNRuszSx~|nipi}=?GFqJ}rV9T43K0F1LmaGbk4#b895awj2*gXj zs+_TQaEUsmzi8}ZThQs{miNOP9gvqmXZ{8LL=2f#o6Tz=B`4kA;S9U0oz@Kccz=U8 zGF34eGKfY>cKR8d#v=QX!_L4Rb}1^R-xg3t?SRVG5B zW5Z-z`LulSJpG`Z>2J12w|lMC5@Ibj_gTrnZ#~A709WHJgt|jCg8r&`_1n`T2NW4_ zAi)nQjZ$=vGA*hSUbvenl)if`xb_-`XeHGlOHIJM$UpaHIG_gnrn3Z~q;Gw1w6mrr zvLwrP!819fDSBNnE4Wc9>UDpW%VI#AUZ>}S5pPSm-`B0;?&C}`U5(vb=tL-JazZP&SvMteK&wue9miagDA|mzheOTUZ2(r(4c)eg6>t|KDGA=PeHN<2TxeneRORj9y9p^~*}xx9|T4bFQ&} literal 35639 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 L#oy&O+#mlBog3|u diff --git a/articles/augment-audio-data_files/figure-html/unnamed-chunk-8-1.png b/articles/augment-audio-data_files/figure-html/unnamed-chunk-8-1.png index d757c6d02965af597e717a4095ca8960e27c5712..7f211fdf656c02b19af76f387ac8c19a55af7b6d 100644 GIT binary patch literal 50695 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 m?q4U#w5Xc3SFQAJTD5PZ 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Π-k(bGjX_b=2|UvoCzM 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 P{TQxmqVwvi%l-cYyCT}v diff --git a/news/index.html b/news/index.html index 62c2f11c..74458d4d 100644 --- a/news/index.html +++ b/news/index.html @@ -57,6 +57,33 @@ Source: NEWS.md +
+

sonicscrewdriver 0.0.5

+
+

New functions

+
  • use BirdNET-Analyzer within R using reticulate
  • +
  • readAudio() generic function to read audio files
  • +
  • readAudacityLabels() to read Audacity label files
  • +
  • citation() information
  • +
  • angle conversion
  • +
  • Dolbear’s law
  • +
  • audioblast() - search for recordings and analyses on audioblast.org
  • +
  • audioblastDownload() - Download files from audioBlast
  • +
  • allChannels for analysing multi-channel audio
  • +
  • read Respeaker6 formatted files
  • +
+
+

New classes

+
  • Annotation class (recording and manipulating annotations)
  • +
  • PseudoWave class (e.g. apply noise to a file of any length)
  • +
  • TaggedWaves class (document metadata and processing)
  • +
  • WaveFilter class (supports applying filters using pipes)
  • +
+
+

Fixes

+
  • audiomothWave() fix (comments not consistently placed in header)
  • +
+

sonicscrewdriver 0.0.4

CRAN release: 2021-05-02

  • support for reading AudioMoth configuration files
  • diff --git a/pkgdown.yml b/pkgdown.yml index cebab91d..d488d596 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -8,7 +8,7 @@ articles: audioblast: audioblast.html manage_audio: manage_audio.html sonicscrewdriver: sonicscrewdriver.html -last_built: 2024-02-22T19:10Z +last_built: 2024-02-22T19:13Z urls: reference: http://sonicscrewdriver.ebaker.me.uk/reference article: http://sonicscrewdriver.ebaker.me.uk/articles diff --git a/search.json b/search.json index 08c6ad85..96ab0700 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"interest fostering open welcoming environment, contributors maintainers pledge making participation project community harassment-free experience everyone, regardless age, body size, disability, ethnicity, gender identity expression, level experience, nationality, personal appearance, race, religion, sexual identity orientation.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes creating positive environment include: Using welcoming inclusive language respectful differing viewpoints experiences Gracefully accepting constructive criticism Focusing best community Showing empathy towards community members Examples unacceptable behavior participants include: use sexualized language imagery unwelcome sexual attention advances Trolling, insulting/derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical electronic address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"our-responsibilities","dir":"","previous_headings":"","what":"Our Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Project maintainers responsible clarifying standards acceptable behavior expected take appropriate fair corrective action response instances unacceptable behavior. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, ban temporarily permanently contributor behaviors deem inappropriate, threatening, offensive, harmful.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within project spaces public spaces individual representing project community. Examples representing project community include using official project e-mail address, posting via official social media account, acting appointed representative online offline event. Representation project may defined clarified project maintainers.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported contacting project team edwbaker@gmail.com. project team review investigate complaints, respond way deems appropriate circumstances. project team obligated maintain confidentiality regard reporter incident. details specific enforcement policies may posted separately. Project maintainers follow enforce Code Conduct good faith may face temporary permanent repercussions determined members project’s leadership.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 1.4, available http://contributor-covenant.org/version/1/4","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/audioblast.html","id":"what-is-audioblast","dir":"Articles","previous_headings":"","what":"What is audioblast?","title":"Using audioBlast with R","text":"Audioblast discovery tool bioacoustic ecoacoustic recordings. can use search recordings (e.g. species, location, date), annotations recordings, analysis results traits. Audioblast currently hosted Natural History Museum London. conceived Ed Baker University York part Leverhulme Trust funded Automated Acoustic Observatories project.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/audioblast.html","id":"accessing-audioblast","dir":"Articles","previous_headings":"","what":"Accessing audioblast","title":"Using audioBlast with R","text":"audioblast() function SonicScrewdriveR wrapper allowing full access Audioblast API. also possible download many recordings audioblast using audioblastDownload().","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Augmenting data common practice machine learning. process creating new data existing data (e.g. adding noise). done increase size training data make model robust. article show augment audio data R using sonicscrewdriver package. generateX() functions sonicscrewdriver designed operate Wave-like objects (Wave WaveMC tuneR Tagged equivalents) list Wave-like objects. Similarly, functions return list Wave-like objects. means can chain functions together create complex data augmentation pipelines.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"types-of-augmentation","dir":"Articles","previous_headings":"","what":"Types of augmentation","title":"Augmenting audio data in R with SonicScrewdriveR","text":"order demonstrate data augmentation process, use sonicscrewdriver package generate Dirac pulse.","code":"# Generate a Dirac pulse p <- pulse(\"dirac\") # Plot the pulse seewave::oscillo(p)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"noise-augmentation","dir":"Articles","previous_headings":"Types of augmentation","what":"Noise augmentation","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Noise augmentation common technique used increase size training data. process adding noise original data. sonicscrewdriver package provides generateNoise() function add noise audio data. example add two different amounts white noise Dirac pulse.","code":"augmented <- c( generateNoise(p, \"white\", noise.ratio=0.1), generateNoise(p, \"white\", noise.ratio=0.3) ) for (i in 1:length(augmented)) { seewave::oscillo(augmented[[i]]) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"time-shifting-rotationpadding","dir":"Articles","previous_headings":"Types of augmentation","what":"Time shifting (rotation/padding)","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Time shifting process shifting audio data certain number samples. sonicscrewdriver package provides generateTimeShift() function rotate audio data, either rotating audio data within file, padding file silence. demonstrate time shifting generate sum sine wave Dirac pulse. Time shifting inserting silence. Alternatively, can rotate audio data.","code":"p1 <- tuneR::sine(440, duration=44100*3) p2 <- pulse(\"dirac\", duration=44100*3) p <- 0.25*p1 + tuneR::normalize(p2) seewave::oscillo(p) # Rotate the audio data by one second rotated <- generateTimeShift(p, amount=1) seewave::oscillo(rotated[[1]]) # Rotate the audio data by one second rotated <- generateTimeShift(p, type=\"rotate\", amount=1) seewave::oscillo(rotated[[1]])"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"time-masking","dir":"Articles","previous_headings":"","what":"Time-masking","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Time-masking process zeroing section audio data. sonicscrewdriver package provides generateTimeMask() function mask section audio data. demonstrate time masking first generate sine wave. Random masking sets random section audio data zero. example use duty cycle 0.95, means 5% audio data set zero. also possible introduce masking using square wave. n.periods parameter controls number periods square wave, dutyCycle parameter controls duty cycle square wave.","code":"# Generate a sine wave w <- tuneR::sine(1000, duration=100) # Plot the left audio channel plot(w@left) # Mask the audio data masked <- generateTimeMask(w, method=\"random\", dutyCycle=0.95) plot(masked@left) # Mask the audio data masked <- generateTimeMask(w, method=\"squarewave\", dutyCycle=0.5, n.periods=5) plot(masked@left)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"combining-augmentations","dir":"Articles","previous_headings":"","what":"Combining augmentations","title":"Augmenting audio data in R with SonicScrewdriveR","text":"sonicscrewdriver package allows chain together multiple augmentations create complex data augmentation pipelines. example, can add noise audio data rotate audio data. possible use anonymous functions add multiple augmentations single step. can effectively used generate large amounts augmented data. code generates three different noise augmented versions input, two different time-shifted versions , yielding six augmented versions. approach can used list initial Wave-like objects.","code":"# Load some test audio data f <- system.file(\"extdata\", \"AUDIOMOTH.flac\", package=\"sonicscrewdriver\") w <- readAudio(f) # Add noise to the audio data and then rotate the audio data using pipes augmented <- w |> generateNoise(\"white\", noise.ratio=0.1) |> generateTimeShift(amount=1) # Create list of data and augmentations data <- c(w, augmented) # Load some test audio data f <- system.file(\"extdata\", \"AUDIOMOTH.flac\", package=\"sonicscrewdriver\") w <- readAudio(f) # Add noise to the audio data and then rotate the audio data using pipes augmented <- w |> {\\(x) c(generateNoise(x, \"white\", noise.ratio=0.1), generateNoise(x, \"white\", noise.ratio=0.3), generateNoise(x, \"white\", noise.ratio=0.5)) }() |> {\\(x) c(generateTimeShift(x, amount=1), generateTimeShift(x, amount=2)) }() # Create list of data and augmentations data <- c(w, augmented) # Load some test audio data f <- system.file(\"extdata\", \"AUDIOMOTH.flac\", package=\"sonicscrewdriver\") w <- list( readAudio(f), readAudio(f), readAudio(f) ) # Add noise to the audio data and then rotate the audio data using pipes and anonymous functions augmented <- w |> {\\(x) c(generateNoise(x, \"white\", noise.ratio=0.1), generateNoise(x, \"white\", noise.ratio=0.3), generateNoise(x, \"white\", noise.ratio=0.5)) }() |> {\\(x) c(generateTimeShift(x, amount=1), generateTimeShift(x, amount=2)) }() # Create list of data and augmentations data <- c(w, augmented)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/converting-code.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Converting code to work with SonicScrewdriveR","text":"SonicScrewdriveR introduces several tools working audio data, TaggedWave TaggedWaveMC formats. Inside SonicScrewdriveR Tagged non-Tagged versions Wave-like objects can used interchangeably, however necessarily true functions packages. guide aimed end users package developers want convert code work SonicScrewdriveR.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/converting-code.html","id":"taggedwave-and-taggedwavemc","dir":"Articles","previous_headings":"Introduction","what":"TaggedWave and TaggedWaveMC","title":"Converting code to work with SonicScrewdriveR","text":"try use function expects Wave object TaggedWave object, get error. end user can use untagWave function convert TaggedWave object Wave object. untagWave function can also used ‘untag’ TaggedWaveMC object. fix function package can make use inherits() rather alternative methods. TaggedWave inherits Wave can treated like Wave code. technique can used TaggedWaveMC objects inherits(w, \"WaveMC\").","code":"# Generate a `Wave` and `TaggedWave` sine w <- tuneR::sine(440) tw <- tagWave(w) # This will fail seewave::oscillo(tw) #> Error in seewave::oscillo(tw): argument \"f\" is missing, with no default # This will work seewave::oscillo(untagWave(tw)) # Methods that fail is(w, \"Wave\") class(w) == \"Wave\" # Method that works inherits(w, \"Wave\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/converting-code.html","id":"adding-a-process-to-a-tagged-wave-like-object","dir":"Articles","previous_headings":"Introduction > TaggedWave and TaggedWaveMC","what":"Adding a process to a Tagged Wave-like object","title":"Converting code to work with SonicScrewdriveR","text":"want add process TaggedWave object can use addProcess method. can either called end user, functions aware Tagged versions.","code":"# End user using non-Tagged aware function seewave::oscillo(untag(tw)) addProcess(tw, \"seewave::oscillo\") # Inside a Tagged aware function addProcess( tw, process = \"mypkg::functionToCountChannels\", output = list(channels = 2) )"},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"reading-audio-files","dir":"Articles","previous_headings":"Managing audio in R with SonicScrewdriveR","what":"Reading audio files","title":"Managing audio in R","text":"Several functions available read audio files R, including readWave() readMP3() functions tuneR package, well tools package av. SonicScrewdriveR simplifies reading audio files providing single wrapper functions, read_audio(), can read audio files variety formats, including WAV, MP3, FLAC.","code":"filename <- system.file(\"extdata\", \"AUDIOMOTH.WAV\", package=\"sonicscrewdriver\") w <- readAudio(filename)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"performing-analyses-on-channels","dir":"Articles","previous_headings":"Managing audio in R with SonicScrewdriveR","what":"Performing analyses on channels","title":"Managing audio in R","text":"existing functions operate single channel time. may cause unnecessarily complex workflows bulk analysing files different numbers channels. allChannels() function applies function channel returns list analyses. technique allows analysis performed channel, without reference number channels audio file. Optionally, cluster can specified process channels separate processor cores increase analysis speed.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"windowing","dir":"Articles","previous_headings":"Managing audio in R with SonicScrewdriveR","what":"Windowing","title":"Managing audio in R","text":"often desirable process long audio file chunks. windowing() function can used split audio file overlapping non-overlapping windows. function may particularly useful processing long Wave files memory-efficient manner. Optionally, cluster can specified process windows separate processor cores increase processing speed.","code":""},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"taggedwave-workflow","dir":"Articles","previous_headings":"","what":"TaggedWave workflow","title":"Managing audio in R","text":"techniques can applied generic Wave WaveMC objects tuneR package. TaggedWave class extends Wave class tuneR package can include extended metadata results analyses. allows storage additional information audio file, location time recording, results analyses. tagWave() function can used tag Wave WaveMC object additional metadata. addition, combined new classes WaveAugment, WaveFilter, WaveAnalyse possible create self-documenting pipeline audio processing analysis (also compatible R pipe).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Interacting with other tools","text":"sonicscrewdriver package provides number functions interacting audio tools software. vignette provides overview functions available interacting tools.","code":""},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audacity","dir":"Articles","previous_headings":"Interfaces with other tools","what":"Audacity","title":"Interacting with other tools","text":"Label files exported Audacity can read R using readAudacityLabels() function. function takes path label file returns list Annotation objects data frame start end times label label text. writeAudacityLabels() function can used write list Annotation objects Audacity label file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audioblast","dir":"Articles","previous_headings":"Interfaces with other tools","what":"AudioBlast","title":"Interacting with other tools","text":"audioBlast API can accessed using audioBlast() function. Files can downloaded API using audioBlastDownload() function.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audiomoth","dir":"Articles","previous_headings":"Interfaces with other tools","what":"AudioMoth","title":"Interacting with other tools","text":"AudioMoth configuration files wave files can read R using audiomothConfig() audiomothWave() functions, respectively. audiomothConfig() function takes path configuration file returns data frame configuration settings. audiomothWave() function takes path wave file returns list extracted parameters.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"birdnet-analyzer","dir":"Articles","previous_headings":"Interfaces with other tools","what":"BirdNET Analyzer","title":"Interacting with other tools","text":"BirdNET Analyzer deep learning model automatic detection bird sounds. birdNetInstall() function can used install ssd_birdnet environment required use birdNetAnalyse() function SonicScrewdriver. birdNetAnalyse() function takes list sound files analyses using BirdNET-Analyzer. function either returns data frame results analysis list Annotation objects.","code":"# Install the BirdNET environment birdNetInstall() # Analyse sound files using BirdNET-Analyzer f <- system.file(\"extdata\", \"AUDIOMOTH.WAV\", package=\"sonicscrewdriver\") birdNetAnalyse(f, lat=51.5, lon=0.1, date=as.Date(\"2021-01-01\"))"},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audio-file-with-annotations-from-audioblast-to-audacity","dir":"Articles","previous_headings":"Exemplar applications","what":"Audio file with annotations from audioBlast to Audacity","title":"Interacting with other tools","text":"audio file interest (id: 10754) recording Mole Cricket Gryllotalpa vineae BioAcoustica repository. Recordings annotations BioAcoustica made available audioBlast API. First download audio file annotations audioBlast. downloaded audio file mole_cricket directory. also saved metadata.csv file includes information audio file retrieved audioBlast. Next, download annotations file audioBlast. downloaded annotations audioBlast converted list Annotation objects. annotation data converted Annotation objects can easily manipulated number useful formats. case, convert Annotation objects Audacity label file. finished, can tidy workspace removing mole_cricket directory.","code":"# Find the file on audioblast data <- audioblast(\"data\", \"recordings\", source=\"bio.acousti.ca\", id=10754) # Download the file to the mole_cricket directory audioblastDownload(data, dir=\"mole_cricket/\") # Fetch annotations from audioBlast as `Annotation` objects a <- audioblast(\"data\", \"annomate\", source=\"bio.acousti.ca\", id=10754, output=\"Annotations\") # Convert the annotations to an Audacity label file writeAudacityLabels(a, \"mole_cricket/annotations.txt\") unlink(\"mole_cricket\", recursive=TRUE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"birdnet-analyzer-to-audacity-label-file","dir":"Articles","previous_headings":"","what":"BirdNET Analyzer to Audacity label file","title":"Interacting with other tools","text":"birdNetAnalyse() function can used analyse sound files using BirdNET-Analyzer. Get output BirdNET Analyzer list Annotation objects. Convert Annotation objects Audacity label file. Cleaning workspace.","code":"# Analyse sound files using BirdNET-Analyzer f <- system.file(\"extdata\", \"AUDIOMOTH.WAV\", package=\"sonicscrewdriver\") annotations <- birdNetAnalyse(f, output=\"Annotation\") # Convert the annotations to an Audacity label file writeAudacityLabels(annotations, \"birdnet_annotations.txt\") unlink(\"birdnet_annotations.txt\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/sonicscrewdriver.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"SonicScrewdriveR","text":"SonicScrewdriveR set tools various tasks faced bioacoustics researchers (users acoustics). tools relate management, processing, analysis, visualisation audio recordings.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Ed Baker. Author, maintainer. Quentin Geissman. Contributor.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Baker, E. (2021) SonicScrewdriveR. https://cran.r-project.org/package=sonicscrewdriver.","code":"@Manual{, title = {SonicScrewdriveR}, author = {Ed Baker}, year = {2021}, url = {https://cran.r-project.org/package=sonicscrewdriver}, }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"sonicscrewdriver","dir":"","previous_headings":"","what":"Bioacoustic Analysis and Publication Tools","title":"Bioacoustic Analysis and Publication Tools","text":"package provides tools manipulating sound files analysis visualisation. SonicScrewdriveR can: Easily read audio files many types. Work seamlessly multi-channel audio. Read/write/convert audio metadata formats used tools. Apply filters audio. Augment audio data machine learning. Visualise audio data. Create self-documenting analysis pipelines. need SonicScrewdriveR arose initially Automated Acoustic Observatories project University York, later development audioBlast. projects required ability read manipulate audio files variety formats visualise analyse data contained within . package designed flexible possible able handle audio file formats differing encoding, channel numbers, sample rates. one sense, can seen wrapper around existing packages provide unified interface, also offers many new functions visualisations.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Bioacoustic Analysis and Publication Tools","text":"NB: current development version well ahead version available CRAN due pace current research work part Urban Nature Project Natural History Museum.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"cran","dir":"","previous_headings":"Installation","what":"CRAN","title":"Bioacoustic Analysis and Publication Tools","text":"","code":"install.packages(\"sonicscrewdriver\") library(sonicscrewdriver)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"latest-master","dir":"","previous_headings":"Installation","what":"Latest master","title":"Bioacoustic Analysis and Publication Tools","text":"","code":"install.packages(\"devtools\") devtools::install_github(\"edwbaker/SonicScrewdriveR\") library(sonicscrewdriver)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Bioacoustic Analysis and Publication Tools","text":"Usage package described following vignettes: Managing audio R SonicScrewdriveR covers basics reading audio files readAudio(), performing analyses audio channels using allChannels() performing analysis sections audio windowing(). Augmenting audio R SonicScrewdriveR covers audio data augmentation. Using apps tools R using SonicScrewdriveR lists functions available interface apps tools audioBlast, Audacity AudioMoth. also gives exemplar applications using SonicScrewdriveR move data different tools platforms. Using SonicScrewriveR audioBlast covers use audioblast() find recordings, annotations, traits analyses. audioblastDownload() can used download files find using audioBlast. book Visualisation bioacoustics ecoacoustics R provides details various visualisation tools available packages. Converting code work SonicScrewdriveR provides guidance package developers end users want convert code work SonicScrewdriveR types TaggedWave TaggedWaveMC.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"contributing","dir":"","previous_headings":"","what":"Contributing","title":"Bioacoustic Analysis and Publication Tools","text":"welcome contributions anyone like help improve package. want talk us submitting pull request feel free email Ed edward.baker@nhm.ac.uk. Please note ‘SonicScrewdriveR’ project released Contributor Code Conduct.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"issue-reporting","dir":"","previous_headings":"Contributing","what":"Issue reporting","title":"Bioacoustic Analysis and Publication Tools","text":"find bug, feature request, please report issue tracker many details possible. package fails give useful error message, bug. package accepts invalid input without warning, bug. documentation unclear omits important information, bug. unsure something bug, please report .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"credits","dir":"","previous_headings":"","what":"Credits","title":"Bioacoustic Analysis and Publication Tools","text":"Initial development SonicScrewdriveR done Ed Baker supported Leverhulme Trust funded Automated Acoustic Observatories project University York, later developed support analysis functionality audioBlast. SonicScrewdriveR currently developed Natural History Museum, London.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/Annotation-class.html","id":null,"dir":"Reference","previous_headings":"","what":"A S4 class for annotations — Annotation-class","title":"A S4 class for annotations — Annotation-class","text":"Annotation class used store annotations Wave-like objects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/Annotation-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"A S4 class for annotations — Annotation-class","text":"file File annotated. metadata list storing metadata. start Start time annotation. end End time annotation. low Low frequency annotation. high High frequency annotation. source Source annotation. type Type annotation. value Value annotation.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-class.html","id":null,"dir":"Reference","previous_headings":"","what":"An S4 class to represent a PseudoWave object that is converted to a\nWave object when operated on. — PseudoWave-class","title":"An S4 class to represent a PseudoWave object that is converted to a\nWave object when operated on. — PseudoWave-class","text":"S4 class represent PseudoWave object converted Wave object operated .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"An S4 class to represent a PseudoWave object that is converted to a\nWave object when operated on. — PseudoWave-class","text":"type Type PseudoWave (e.g. \"noise\") subtype Subtype PseudoWave (e.g. \"white\" type \"noise\") scale Wave channels multiplied value offset value added Wave channels seed Random seed reproducible output, NA seed scale Logical. Whether use random seed value params List additional parameters pass generating function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","title":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","text":"PseudoWave scalar subtraction","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric -(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/STP.html","id":null,"dir":"Reference","previous_headings":"","what":"STP: Standard Temperature and Pressure — STP","title":"STP: Standard Temperature and Pressure — STP","text":"Dataset compiled various sources differing values STP.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/STP.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"STP: Standard Temperature and Pressure — STP","text":"","code":"STP"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/STP.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"STP: Standard Temperature and Pressure — STP","text":"object class list length 2.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWave-class.html","id":null,"dir":"Reference","previous_headings":"","what":"A S4 class for tagged waves — TaggedWave-class","title":"A S4 class for tagged waves — TaggedWave-class","text":"TaggedWave class extended Wave class tuneR package can include extended metadata results analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWave-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"A S4 class for tagged waves — TaggedWave-class","text":"metadata list storing metdata. analyses list storing analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWaveMC-class.html","id":null,"dir":"Reference","previous_headings":"","what":"A S4 class for tagged multi-channel waves — TaggedWaveMC-class","title":"A S4 class for tagged multi-channel waves — TaggedWaveMC-class","text":"TaggedWaveMC class extended WaveMC class tuneR package can include extended metadata results analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWaveMC-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"A S4 class for tagged multi-channel waves — TaggedWaveMC-class","text":"metadata list storing metdata. analyses list storing analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TimeRegion-class.html","id":null,"dir":"Reference","previous_headings":"","what":"An S4 class to represent a TimeRegion within a Wave object. — TimeRegion-class","title":"An S4 class to represent a TimeRegion within a Wave object. — TimeRegion-class","text":"S4 class represent TimeRegion within Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TimeRegion-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"An S4 class to represent a TimeRegion within a Wave object. — TimeRegion-class","text":"Start position End position unit Time unit (one seconds, minutes, hours)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/WaveFilter-class.html","id":null,"dir":"Reference","previous_headings":"","what":"WaveFilter object for audio filters — WaveFilter-class","title":"WaveFilter object for audio filters — WaveFilter-class","text":"WaveFilter object object containing information necessary filterWave() function apply filter Wave TaggedWave object. designed allow pipe operator (either magrittr base R) used apply filters Wave pipeline. used TaggedWave object function adds information processing slot documenting action.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/WaveFilter-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"WaveFilter object for audio filters — WaveFilter-class","text":"description Description filter. func Name function. params List additional parameters pass function.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_diel_traits.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","title":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","text":"function takes traits dataset retrieved audioblast converts values \"day\" numeric time day based date location.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_diel_traits.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","text":"","code":"ab_diel_traits(traits, date, lat, lon, overwrite = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_diel_traits.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","text":"traits Traits dataset retrieved using audioblast(). date date used conversion time. lat Latitude location. lon Longitude location. overwrite TRUE function overwrite existing min/max.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":null,"dir":"Reference","previous_headings":"","what":"Nearest start time — ab_seqss_nearestStart","title":"Nearest start time — ab_seqss_nearestStart","text":"Search audioBLAST! recordings start time closest specified date/time match specified criteria","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Nearest start time — ab_seqss_nearestStart","text":"","code":"ab_seqss_nearestStart(...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Nearest start time — ab_seqss_nearestStart","text":"... Fields values filter .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Nearest start time — ab_seqss_nearestStart","text":"data frame matching annotations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Nearest start time — ab_seqss_nearestStart","text":"","code":"if (FALSE) { ab_seqss_nearestStart(date=\"2020-05-15\",time=\"1500\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":null,"dir":"Reference","previous_headings":"","what":"Add a process to a Tagged Wave or WaveMC object — addProcess","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"function takes TaggedWave TaggedWaveMC object adds process processing slot. used keep record processes applied object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"","code":"addProcess(object, process, output = NULL, duration = NULL) # S4 method for TaggedWave addProcess(object, process, output = NULL, duration = NULL) # S4 method for TaggedWaveMC addProcess(object, process, output = NULL, duration = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"object object. process description process. output output process. duration duration process seconds.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"object process added.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":null,"dir":"Reference","previous_headings":"","what":"Add two spectra from seewave — addSpectra","title":"Add two spectra from seewave — addSpectra","text":"function takes two spectra seewave (equivalent) adds values. spectra must bins.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add two spectra from seewave — addSpectra","text":"","code":"addSpectra(s1, s2, coerceNegative = \"no\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add two spectra from seewave — addSpectra","text":"s1 First spectrum s2 Second spectrum coerceNegative Sets values zero zero, accepted values \"input\", \"output\" \"\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add two spectra from seewave — addSpectra","text":"spectrum s1+s2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add two spectra from seewave — addSpectra","text":"","code":"if (FALSE) { addSpectra(spec1, spec2) addSpectra(spec1, spec2, coerceNegative=\"input\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":null,"dir":"Reference","previous_headings":"","what":"Apply a function to all channels of a Wave or WaveMC object — allChannels","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"functions (e.g. ffilter seewave) operate single channel time. function applies function channel returns list analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"","code":"allChannels( w, FUN, cl = NULL, channel.param = \"channel\", output.FUN = NULL, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"w Wave WaveMC object FUN Function apply wave. cl Optionally cluster parallel calculation. channel.param Name channel parameter FUN. Can NULL. output.FUN Optional. Function processes output FUN. \"channels_se\" function provides standard functionality soundecology package. ... Optional. Additional parameters pass FUN.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"list outputs.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new Annotation object — annotation","title":"Create a new Annotation object — annotation","text":"Create new Annotation object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new Annotation object — annotation","text":"","code":"annotation( file = NA_character_, metadata = list(), start = 0, end = Inf, low = 0, high = Inf, source = NA_character_, type = NA_character_, value = NA_character_ )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new Annotation object — annotation","text":"file File annotated. metadata list metadata. start Start time annotation (seconds). end End time annotation (seconds). low Low frequency annotation (Hz). high High frequency annotation (Hz). source Source annotation. type Type annotation. value Value annotation.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new Annotation object — annotation","text":"Annotation object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audio_filesize.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculated size of raw audio files — audio_filesize","title":"Calculated size of raw audio files — audio_filesize","text":"Calculates raw size audio date set sample rate, bit depth duration.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audio_filesize.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculated size of raw audio files — audio_filesize","text":"","code":"audio_filesize( samp.rate = 44100, bit.depth = 16, channels = 1, duration = 1, duration.unit = \"seconds\", output.unit = \"bits\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audio_filesize.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculated size of raw audio files — audio_filesize","text":"samp.rate Sample rate bit.depth Bit depth channels number audio channels duration Duration recording duration.unit One seconds, minutes, hours, days output.unit \"bits\" \"bytes\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":null,"dir":"Reference","previous_headings":"","what":"Get data or analyses from audioBlast — audioblast","title":"Get data or analyses from audioBlast — audioblast","text":"Search data analyses audioBlast.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get data or analyses from audioBlast — audioblast","text":"","code":"audioblast( type, name, endpoint = NULL, check = TRUE, max_pages = NULL, page = 1, quiet = FALSE, output = \"data.frame\", ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get data or analyses from audioBlast — audioblast","text":"type One data, analysis, standalone. name Name data analysis source. endpoint Optionally specify endpoint audioBlast module. check Logical. Performs sanity check input sending audioBLAST. max_pages Maximum number data pages return, default set NULL returns pages. page First page results request, defaults 1. quiet true print progress. Silence virtue. output default data.frame. \"Annotations\" return list Annotation objects. ... Fields values filter . field defined audioBLAST.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get data or analyses from audioBlast — audioblast","text":"data frame","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get data or analyses from audioBlast — audioblast","text":"","code":"if (FALSE) { audioblast(\"data\", \"recordings\", taxon=\"Gryllotalpa vineae\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblastDownload.html","id":null,"dir":"Reference","previous_headings":"","what":"Download audio files from audioBlast — audioblastDownload","title":"Download audio files from audioBlast — audioblastDownload","text":"Downloads audio files associated search using audioBlast() function.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblastDownload.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Download audio files from audioBlast — audioblastDownload","text":"","code":"audioblastDownload( d, metadata = TRUE, skip.existing = TRUE, dir = \".\", quiet = FALSE )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblastDownload.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Download audio files from audioBlast — audioblastDownload","text":"d Data returned search using audioBlast(). metadata true saves data d csv file. skip.existing true overwrite existing files. dir Directory save files . quiet true print progress.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":null,"dir":"Reference","previous_headings":"","what":"Read AudioMoth configuration file — audiomothConfig","title":"Read AudioMoth configuration file — audiomothConfig","text":"Reads parses AudioMoth configuration file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read AudioMoth configuration file — audiomothConfig","text":"","code":"audiomothConfig(filename)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read AudioMoth configuration file — audiomothConfig","text":"filename Path configuration file read","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read AudioMoth configuration file — audiomothConfig","text":"data frame matching annotations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read AudioMoth configuration file — audiomothConfig","text":"","code":"if (FALSE) { audiomothConfig(\"./CONFIG.TXT\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Read AudioMoth metadata from a wave file — audiomothWave","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"Reads parses metadata stored wave files produced AudioMoth devices.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"","code":"audiomothWave(filename)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"filename Path wave file read","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"list extracted parameters","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"","code":"if (FALSE) { audiomothWave(\"./FILENAME.WAV\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":null,"dir":"Reference","previous_headings":"","what":"Automatic Band Pass Filter — autoBandPass","title":"Automatic Band Pass Filter — autoBandPass","text":"Creates automatic bandpass filter based strongest frequency. allowed bandwidth can integer multiple bandwidth either -3dB -10dB.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Automatic Band Pass Filter — autoBandPass","text":"","code":"autoBandPass(wave, bw = \"-3dB\", n.bw = 1, lowcut = 1000)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Automatic Band Pass Filter — autoBandPass","text":"wave Wave object bw Either -3dB -10dB. calculated frequencyStats n.bw number bandwidths either side centre centre keep lowcut High-pass filtering applied frequency calculating centre frequency bandwidth","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Automatic Band Pass Filter — autoBandPass","text":"band-pass filtered Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Automatic Band Pass Filter — autoBandPass","text":"","code":"if (FALSE) { autoBandPass(sheep) autoBandPass(sheep, bw=\"-3dB\", n.bw=1, lowcut=1000) autoBandPass(sheep, bw=\"-10dB\", n.bw=2, lowcut=0) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple bandpass filter — bandpass","title":"Simple bandpass filter — bandpass","text":"Creates band pass WaveFilter values specified Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple bandpass filter — bandpass","text":"","code":"bandpass(from, to, ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple bandpass filter — bandpass","text":"Bottom bandpass frequency (Hz). Top bandpass frequency (Hz). ... arguments pass ffilter.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple bandpass filter — bandpass","text":"WaveFilter object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Simple bandpass filter — bandpass","text":"simple wrapper function seewave ffilter function allowing use filterw pipes.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simple bandpass filter — bandpass","text":"","code":"if (FALSE) { nwave <- noise(\"white\", duration=44100, samp.rate=44100) fwave <- filterWave(nwave, bandpass(from=1000, to=2000)) nwave |> filterWave(bandpass(from=1000, to=2000)) -> fwave }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":null,"dir":"Reference","previous_headings":"","what":"Beat spectrum complexity — beatComplexity","title":"Beat spectrum complexity — beatComplexity","text":"function computes beatSpectrum calculates basic measurements complexity. complexity value calculated maximum identified repeating period (seconds) divided number peaks.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Beat spectrum complexity — beatComplexity","text":"","code":"beatComplexity(wave, plot = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Beat spectrum complexity — beatComplexity","text":"wave Wave object plot TRUE spectrogram overlaid peaks plotted.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Beat spectrum complexity — beatComplexity","text":"list complexity, vector peak periods, number peaks.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Beat spectrum complexity — beatComplexity","text":"","code":"if (FALSE) { beatComplexity(sheep) beatComplexity(sheep, plot=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":null,"dir":"Reference","previous_headings":"","what":"Computes a beat spectrum — beatSpectrum","title":"Computes a beat spectrum — beatSpectrum","text":"Beat spectra represent periodicity signal amplitude. computed performing continuous wavelet transform envelope preprocessed signal, processing average power per frequency band.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Computes a beat spectrum — beatSpectrum","text":"","code":"beatSpectrum(wave, min_period = 0.005, max_period = 30, dj = 1/32, ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Computes a beat spectrum — beatSpectrum","text":"wave R object path wave file min_period minimal rythmicity period expected, seconds max_period maximal rythmicity period expected, seconds dj frequency resolution cwt (voices per octave) ... extra arguments passed analyze.wavelet()","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Computes a beat spectrum — beatSpectrum","text":"spectrum data frame. contains two columns: power period. number rows depend resolution frequency range.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Computes a beat spectrum — beatSpectrum","text":"Quentin Geissmann","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Computes a beat spectrum — beatSpectrum","text":"","code":"if (FALSE) { beatSpectrum(sheep) beatSpectrum(sheep, min_period=0.005, max_period=30, dj=1/32) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":null,"dir":"Reference","previous_headings":"","what":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"function takes list sound files analyses using BirdNET-Analyzer (Kahl et al. 2021) . function either returns data frame results analysis list Annotation objects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"","code":"birdNetAnalyse( files, lat = NULL, lon = NULL, date = NULL, output = \"Annotation\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"files character vector file paths. lat latitude vector latitudes. lon longitude vector longitudes. date Date list Date objects . output One \"data.frame\" \"Annotation\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"Kahl S, Wood CM, Eibl M, Klinck H (2021). “BirdNET: deep learning solution avian diversity monitoring.” Ecological Informatics, 61, 101236.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"","code":"if (FALSE) { birdnetAnalyse(files=c(\"path/to/file1.wav\", \"path/to/file2.wav\"), output=\"data.frame\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":null,"dir":"Reference","previous_headings":"","what":"Install the BirdNET environment — birdNetInstall","title":"Install the BirdNET environment — birdNetInstall","text":"function installs BirdNET ssd_birdnet environment using reticulate.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Install the BirdNET environment — birdNetInstall","text":"","code":"birdNetInstall(unattended = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Install the BirdNET environment — birdNetInstall","text":"unattended TRUE function prompt user install environment non-interactive session.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Install the BirdNET environment — birdNetInstall","text":"","code":"if (FALSE) { birdnetInstall() birdNetInstall(unattended=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/channels_se.html","id":null,"dir":"Reference","previous_headings":"","what":"Channels for sound ecology — channels_se","title":"Channels for sound ecology — channels_se","text":"Used process output acoustic index functions soundecology package using allChannels.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/channels_se.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Channels for sound ecology — channels_se","text":"","code":"channels_se(...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/channels_se.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Channels for sound ecology — channels_se","text":"... Export bioacoustic index function soundecology package","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/circularise.html","id":null,"dir":"Reference","previous_headings":"","what":"Circularise a dataset — circularise","title":"Circularise a dataset — circularise","text":"plotting rings horizons meant cover entirety time period dielPlot() yearlyPlot() function append beginning values end ensure entire loop created.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/circularise.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Circularise a dataset — circularise","text":"","code":"circularise(values)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/circularise.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Circularise a dataset — circularise","text":"values vector values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":null,"dir":"Reference","previous_headings":"","what":"Concatenate two or more Wave-like objects. — concat","title":"Concatenate two or more Wave-like objects. — concat","text":"concat() method flexible version bind() method tuneR package, allows specifying advanced types concatenation. Setting method \"noClick\" remove click Wave objects caused sudden jumps amplitude applying tuneR::prepComb() appropriately default value zero (effective left channel stereo multi-channel recordings).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Concatenate two or more Wave-like objects. — concat","text":"","code":"concat(object, ..., method = \"bind\") # S4 method for Wave concat(object, ..., method = \"bind\") # S4 method for WaveMC concat(object, ..., method = \"bind\") # S4 method for TaggedWave concat(object, ..., method = \"bind\") # S4 method for TaggedWaveMC concat(object, ..., method = \"bind\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Concatenate two or more Wave-like objects. — concat","text":"object Wave like object. ... Wave like objects concatenate object. method One \"bind\", \"noClick\". Default \"bind\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Concatenate two or more Wave-like objects. — concat","text":"concatenated Wave like object, type object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert temperature to Celsius — convert2Celsius","title":"Convert temperature to Celsius — convert2Celsius","text":"Converts temperature measurements Celsius","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert temperature to Celsius — convert2Celsius","text":"","code":"convert2Celsius(temp, input = \"K\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert temperature to Celsius — convert2Celsius","text":"temp value temperature convert input unit temperature convert, allowed values \"K\", \"F\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert temperature to Celsius — convert2Celsius","text":"Numeric value degrees Celsius","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert temperature to Celsius — convert2Celsius","text":"","code":"convert2Celsius(15, input=\"K\") #> [1] -258.15 convert2Celsius(15, input=\"F\") #> [1] -9.444444"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert temperature to Fahrenheit — convert2Fahrenheit","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"Converts temperature measurements Fahrenheit","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"","code":"convert2Fahrenheit(temp, input)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"temp value temperature convert input unit temperature convert, allowed values \"K\", \"C\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"","code":"if (FALSE) { convert2Fahrenheit(15, input = \"C\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert temperature to Kelvin — convert2Kelvin","title":"Convert temperature to Kelvin — convert2Kelvin","text":"Converts temperature measurements Kelvin","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert temperature to Kelvin — convert2Kelvin","text":"","code":"convert2Kelvin(temp, input = \"C\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert temperature to Kelvin — convert2Kelvin","text":"temp value temperature convert input unit temperature convert, allowed values \"C\", \"F\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert temperature to Kelvin — convert2Kelvin","text":"Numeric value Kelvin","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert temperature to Kelvin — convert2Kelvin","text":"","code":"convert2Kelvin(15, input=\"C\") #> [1] 288.15 convert2Kelvin(15, input=\"F\") #> [1] 263.7056"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert pressure to Pascals — convert2Pascals","title":"Convert pressure to Pascals — convert2Pascals","text":"Converts pressure measurements Pascals","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert pressure to Pascals — convert2Pascals","text":"","code":"convert2Pascals(P, input = \"kPa\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert pressure to Pascals — convert2Pascals","text":"P value pressure convert input unit pressure convert, allowed values \"kPa\", \"dyne_cm2\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert pressure to Pascals — convert2Pascals","text":"numeric value Pascals","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert pressure to Pascals — convert2Pascals","text":"","code":"convert2Pascals(1000, input=\"kPa\") #> [1] 1e+06 convert2Pascals(10, input=\"dyne_cm2\") #> [1] 1"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert bits to bytes — convert2bytes","title":"Convert bits to bytes — convert2bytes","text":"Converts time measurements seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert bits to bytes — convert2bytes","text":"","code":"convert2bytes(S, input = \"bits\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert bits to bytes — convert2bytes","text":"S value convert input unit convert, allowed values \"bits\", \"kB\", \"MB\", \"GB\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert bits to bytes — convert2bytes","text":"numeric value seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert angle to degrees — convert2degrees","title":"Convert angle to degrees — convert2degrees","text":"Converts angle measurements degrees","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert angle to degrees — convert2degrees","text":"","code":"convert2degrees(A, input = \"radians\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert angle to degrees — convert2degrees","text":"angle value convert input unit angle convert, allowed values \"radians\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert angle to degrees — convert2degrees","text":"numeric value degrees","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"Converts pressure measurements dyne per square centimetre","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"","code":"convert2dyne_cm2(P, input = \"kPa\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"P value pressure convert input unit pressure convert, allowed values \"kPa\", \"P\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"","code":"convert2dyne_cm2(1, input=\"Pa\") #> [1] 10 convert2dyne_cm2(1, input=\"kPa\") #> [1] 10000"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert angle to radians — convert2radians","title":"Convert angle to radians — convert2radians","text":"Converts angle measurements radians","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert angle to radians — convert2radians","text":"","code":"convert2radians(A, input = \"degrees\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert angle to radians — convert2radians","text":"angle value convert input unit angle convert, allowed values \"degrees\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert angle to radians — convert2radians","text":"numeric value radians","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert time to seconds — convert2seconds","title":"Convert time to seconds — convert2seconds","text":"Converts time measurements seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert time to seconds — convert2seconds","text":"","code":"convert2seconds(T, input = \"minutes\", origin = \"day\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert time to seconds — convert2seconds","text":"T time value convert input unit time convert, allowed values \"minutes\", \"hours\", \"days\", \"years\", \"HHMM\". origin POSIX whether return relative start day (\"day\") Unix epoch (\"unix\")","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert time to seconds — convert2seconds","text":"numeric value seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":null,"dir":"Reference","previous_headings":"","what":"Correlate channels in a WaveMC object — corWaveMC","title":"Correlate channels in a WaveMC object — corWaveMC","text":"Uses corenv function seewave calculate envelope correlation timed events channels WaveMC object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Correlate channels in a WaveMC object — corWaveMC","text":"","code":"corWaveMC(wave, times, window, temp = 25, cluster = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Correlate channels in a WaveMC object — corWaveMC","text":"wave WaveMC object times One times events correlate window Width window correlate seconds (centred times) temp Air temperature Celsius cluster cluster parallel execution","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Correlate channels in a WaveMC object — corWaveMC","text":"List corenv lists events, list time differences channels","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":null,"dir":"Reference","previous_headings":"","what":"Cut wave by samples — cutws","title":"Cut wave by samples — cutws","text":"Extract section Wave object based sample positions. function automatically detect Wave object stereo.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cut wave by samples — cutws","text":"","code":"cutws(wave, from = 1, to = Inf, plot = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cut wave by samples — cutws","text":"wave Wave object First sample return Last sample return plot TRUE shows cut region within original waveform","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cut wave by samples — cutws","text":"Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cut wave by samples — cutws","text":"","code":"if (FALSE) { cutws(sheep, 1, 20) cutws(sheep, 1, 20, plot=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert data into a Wave object — data2Wave","title":"Convert data into a Wave object — data2Wave","text":"Make sequence data normalised Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert data into a Wave object — data2Wave","text":"","code":"data2Wave( left, samp.rate = 44100, bit = 16, remove.offset = TRUE, normalise = TRUE )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert data into a Wave object — data2Wave","text":"left Data mono audio channel samp.rate Sampling rate Wave object bit Bit depth Wave object remove.offset TRUE DC offset removed normalise TRUE output Wave normalised -1:1","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert data into a Wave object — data2Wave","text":"mono Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert data into a Wave object — data2Wave","text":"","code":"pattern <- seq(from=-1, to=1, length.out=100) data <- rep.int(pattern, 100) w <- data2Wave(data)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":null,"dir":"Reference","previous_headings":"","what":"Phase of day — dayPhase","title":"Phase of day — dayPhase","text":"Given start time (optionally) duration returns phase day given location. primarily used calculate phase day information soundscape recording projects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Phase of day — dayPhase","text":"","code":"dayPhase( time = Sys.time(), duration = 40000, lat = 50.1, lon = 1.83, tz = \"UTC\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Phase of day — dayPhase","text":"time time object representing start time recording duration Duration recording lat Latitude recording device lon Longitude recording device tz Time-zone recording device recording made","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Phase of day — dayPhase","text":"Data frame day phases absolute timestamps relative times within file","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhases.html","id":null,"dir":"Reference","previous_headings":"","what":"Phases of day — dayPhases","title":"Phases of day — dayPhases","text":"Wrapper suncalc::getSunlightTimes formats output package.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhases.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Phases of day — dayPhases","text":"","code":"dayPhases(time = as.Date(Sys.time()), lat = 50.1, lon = 1.83, tz = \"UTC\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhases.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Phases of day — dayPhases","text":"time time object representing start time recording lat Latitude recording device lon Longitude recording device tz Time-zone recording device recording made","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/daysPhases.html","id":null,"dir":"Reference","previous_headings":"","what":"Phases of days — daysPhases","title":"Phases of days — daysPhases","text":"Phases days","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/daysPhases.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Phases of days — daysPhases","text":"","code":"daysPhases( date = Sys.Date(), period = \"year\", plot = FALSE, lat = 50.1, lon = 1.83, tz = \"UTC\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/daysPhases.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Phases of days — daysPhases","text":"date time object representing start time recording period \"month\" \"year\" plot true plots data, default FALSE lat Latitude recording device lon Longitude recording device tz Time-zone recording device recording made","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Create Default Cluster for Windowing — defaultCluster","title":"Create Default Cluster for Windowing — defaultCluster","text":"Creates default cluster using one less total cores available system. default uses forking, available Windows. Hence, fork parameter effect Windows.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create Default Cluster for Windowing — defaultCluster","text":"","code":"defaultCluster(fork = TRUE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create Default Cluster for Windowing — defaultCluster","text":"fork TRUE uses forking create cluster (Unix like systems )","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create Default Cluster for Windowing — defaultCluster","text":"cluster object parallel processing","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create Default Cluster for Windowing — defaultCluster","text":"","code":"if (FALSE) { cl <- defaultCluster() stopCluster(cl) cl <- defaultCluster(FALSE) stopCluster(cl) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielFraction.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the fraction of a day given by a value — dielFraction","title":"Calculate the fraction of a day given by a value — dielFraction","text":"Given object can coerced POSIXlt supported string format, return fraction day represented object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielFraction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the fraction of a day given by a value — dielFraction","text":"","code":"dielFraction(t, input = \"POSIX\", unit = \"radians\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielFraction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the fraction of a day given by a value — dielFraction","text":"t Object converted fraction input One POSIX (default) HHMM unit set radians outputs position around circle. set fraction outputs raw fraction.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":null,"dir":"Reference","previous_headings":"","what":"Diel Histogram — dielHistogram","title":"Diel Histogram — dielHistogram","text":"Draws histogram dielPlot() using pre-defined bins related time day.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Diel Histogram — dielHistogram","text":"","code":"dielHistogram( times, by = \"hour\", col = \"grey\", maxval = NA, presence.only = FALSE, limits = c(1, 2) )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Diel Histogram — dielHistogram","text":"times vector times can pocessed dielFraction(). Controls size histogram bins, one \"hour\", \"15minute\", \"30minute\". col Colour plot. maxval default scales histogram within limits, specifying maximum value allows comparison plots. presence.show presence/absence values. limits Limits plotting (see dielPlot()).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Diel Histogram — dielHistogram","text":"data frame start end points bins.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate labels for a diel plot — dielLabels","title":"Generate labels for a diel plot — dielLabels","text":"Generates labels dielPlot() 12- 24-hour format. Labels generated three hourly intervals.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate labels for a diel plot — dielLabels","text":"","code":"dielLabels(format = \"clock24\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate labels for a diel plot — dielLabels","text":"format One clock24 (default) clock12","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate labels for a diel plot — dielLabels","text":"","code":"dielLabels() #> [1] \"0000\" \"0300\" \"0600\" \"0900\" \"1200\" \"1500\" \"1800\" \"2100\" dielLabels(\"clock12\") #> [1] \"0000\" \"0300 AM\" \"0600 AM\" \"0900 AM\" \"1200 NOON\" \"0300 PM\" #> [7] \"0600 PM\" \"0900 PM\""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPlot.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a diel plot — dielPlot","title":"Create a diel plot — dielPlot","text":"diel plot shows times night, twilight maximum altitude sun given date.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPlot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a diel plot — dielPlot","text":"","code":"dielPlot( date, lat, lon, limits = c(0, 2), plot = NULL, rot = tzRot(0), method = \"plotrix\", legend = F )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPlot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a diel plot — dielPlot","text":"date Date plot. lat Numeric latitude. lon Numeric longitude. limits Plotting limits daylight regions, default c(1,2) plot Character vector components plot rot Either \"Solar Noon\" offset calculated tz method Plotting library use legend Whether show legend","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate positions of labels for a diel plot — dielPositions","title":"Generate positions of labels for a diel plot — dielPositions","text":"Generates positions three-hourly labels dielPlot() radians.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate positions of labels for a diel plot — dielPositions","text":"","code":"dielPositions(format = \"3hourly\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate positions of labels for a diel plot — dielPositions","text":"format One \"3hours\" (default), \"hours\", \"minutes\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate positions of labels for a diel plot — dielPositions","text":"","code":"dielPositions() #> [1] 0.0000000 0.7853982 1.5707963 2.3561945 3.1415927 3.9269908 4.7123890 #> [8] 5.4977871 dielPositions(\"hours\") #> [1] 0.2617994 0.5235988 0.7853982 1.0471976 1.3089969 1.5707963 1.8325957 #> [8] 2.0943951 2.3561945 2.6179939 2.8797933 3.1415927 3.4033920 3.6651914 #> [15] 3.9269908 4.1887902 4.4505896 4.7123890 4.9741884 5.2359878 5.4977871 #> [22] 5.7595865 6.0213859 6.2831853 dielPositions(\"minutes\") #> [1] 0.004363323 0.008726646 0.013089969 0.017453293 0.021816616 0.026179939 #> [7] 0.030543262 0.034906585 0.039269908 0.043633231 0.047996554 0.052359878 #> [13] 0.056723201 0.061086524 0.065449847 0.069813170 0.074176493 0.078539816 #> [19] 0.082903139 0.087266463 0.091629786 0.095993109 0.100356432 0.104719755 #> [25] 0.109083078 0.113446401 0.117809725 0.122173048 0.126536371 0.130899694 #> [31] 0.135263017 0.139626340 0.143989663 0.148352986 0.152716310 0.157079633 #> [37] 0.161442956 0.165806279 0.170169602 0.174532925 0.178896248 0.183259571 #> [43] 0.187622895 0.191986218 0.196349541 0.200712864 0.205076187 0.209439510 #> [49] 0.213802833 0.218166156 0.222529480 0.226892803 0.231256126 0.235619449 #> [55] 0.239982772 0.244346095 0.248709418 0.253072742 0.257436065 0.261799388 #> [61] 0.266162711 0.270526034 0.274889357 0.279252680 0.283616003 0.287979327 #> [67] 0.292342650 0.296705973 0.301069296 0.305432619 0.309795942 0.314159265 #> [73] 0.318522588 0.322885912 0.327249235 0.331612558 0.335975881 0.340339204 #> [79] 0.344702527 0.349065850 0.353429174 0.357792497 0.362155820 0.366519143 #> [85] 0.370882466 0.375245789 0.379609112 0.383972435 0.388335759 0.392699082 #> [91] 0.397062405 0.401425728 0.405789051 0.410152374 0.414515697 0.418879020 #> [97] 0.423242344 0.427605667 0.431968990 0.436332313 0.440695636 0.445058959 #> [103] 0.449422282 0.453785606 0.458148929 0.462512252 0.466875575 0.471238898 #> [109] 0.475602221 0.479965544 0.484328867 0.488692191 0.493055514 0.497418837 #> [115] 0.501782160 0.506145483 0.510508806 0.514872129 0.519235452 0.523598776 #> [121] 0.527962099 0.532325422 0.536688745 0.541052068 0.545415391 0.549778714 #> [127] 0.554142038 0.558505361 0.562868684 0.567232007 0.571595330 0.575958653 #> [133] 0.580321976 0.584685299 0.589048623 0.593411946 0.597775269 0.602138592 #> [139] 0.606501915 0.610865238 0.615228561 0.619591884 0.623955208 0.628318531 #> [145] 0.632681854 0.637045177 0.641408500 0.645771823 0.650135146 0.654498469 #> [151] 0.658861793 0.663225116 0.667588439 0.671951762 0.676315085 0.680678408 #> [157] 0.685041731 0.689405055 0.693768378 0.698131701 0.702495024 0.706858347 #> [163] 0.711221670 0.715584993 0.719948316 0.724311640 0.728674963 0.733038286 #> [169] 0.737401609 0.741764932 0.746128255 0.750491578 0.754854901 0.759218225 #> [175] 0.763581548 0.767944871 0.772308194 0.776671517 0.781034840 0.785398163 #> [181] 0.789761487 0.794124810 0.798488133 0.802851456 0.807214779 0.811578102 #> [187] 0.815941425 0.820304748 0.824668072 0.829031395 0.833394718 0.837758041 #> [193] 0.842121364 0.846484687 0.850848010 0.855211333 0.859574657 0.863937980 #> [199] 0.868301303 0.872664626 0.877027949 0.881391272 0.885754595 0.890117919 #> [205] 0.894481242 0.898844565 0.903207888 0.907571211 0.911934534 0.916297857 #> [211] 0.920661180 0.925024504 0.929387827 0.933751150 0.938114473 0.942477796 #> [217] 0.946841119 0.951204442 0.955567765 0.959931089 0.964294412 0.968657735 #> [223] 0.973021058 0.977384381 0.981747704 0.986111027 0.990474351 0.994837674 #> [229] 0.999200997 1.003564320 1.007927643 1.012290966 1.016654289 1.021017612 #> [235] 1.025380936 1.029744259 1.034107582 1.038470905 1.042834228 1.047197551 #> [241] 1.051560874 1.055924197 1.060287521 1.064650844 1.069014167 1.073377490 #> [247] 1.077740813 1.082104136 1.086467459 1.090830782 1.095194106 1.099557429 #> [253] 1.103920752 1.108284075 1.112647398 1.117010721 1.121374044 1.125737368 #> [259] 1.130100691 1.134464014 1.138827337 1.143190660 1.147553983 1.151917306 #> [265] 1.156280629 1.160643953 1.165007276 1.169370599 1.173733922 1.178097245 #> [271] 1.182460568 1.186823891 1.191187214 1.195550538 1.199913861 1.204277184 #> [277] 1.208640507 1.213003830 1.217367153 1.221730476 1.226093800 1.230457123 #> [283] 1.234820446 1.239183769 1.243547092 1.247910415 1.252273738 1.256637061 #> [289] 1.261000385 1.265363708 1.269727031 1.274090354 1.278453677 1.282817000 #> [295] 1.287180323 1.291543646 1.295906970 1.300270293 1.304633616 1.308996939 #> [301] 1.313360262 1.317723585 1.322086908 1.326450232 1.330813555 1.335176878 #> [307] 1.339540201 1.343903524 1.348266847 1.352630170 1.356993493 1.361356817 #> [313] 1.365720140 1.370083463 1.374446786 1.378810109 1.383173432 1.387536755 #> [319] 1.391900078 1.396263402 1.400626725 1.404990048 1.409353371 1.413716694 #> [325] 1.418080017 1.422443340 1.426806664 1.431169987 1.435533310 1.439896633 #> [331] 1.444259956 1.448623279 1.452986602 1.457349925 1.461713249 1.466076572 #> [337] 1.470439895 1.474803218 1.479166541 1.483529864 1.487893187 1.492256510 #> [343] 1.496619834 1.500983157 1.505346480 1.509709803 1.514073126 1.518436449 #> [349] 1.522799772 1.527163095 1.531526419 1.535889742 1.540253065 1.544616388 #> [355] 1.548979711 1.553343034 1.557706357 1.562069681 1.566433004 1.570796327 #> [361] 1.575159650 1.579522973 1.583886296 1.588249619 1.592612942 1.596976266 #> [367] 1.601339589 1.605702912 1.610066235 1.614429558 1.618792881 1.623156204 #> [373] 1.627519527 1.631882851 1.636246174 1.640609497 1.644972820 1.649336143 #> [379] 1.653699466 1.658062789 1.662426113 1.666789436 1.671152759 1.675516082 #> [385] 1.679879405 1.684242728 1.688606051 1.692969374 1.697332698 1.701696021 #> [391] 1.706059344 1.710422667 1.714785990 1.719149313 1.723512636 1.727875959 #> [397] 1.732239283 1.736602606 1.740965929 1.745329252 1.749692575 1.754055898 #> [403] 1.758419221 1.762782545 1.767145868 1.771509191 1.775872514 1.780235837 #> [409] 1.784599160 1.788962483 1.793325806 1.797689130 1.802052453 1.806415776 #> [415] 1.810779099 1.815142422 1.819505745 1.823869068 1.828232391 1.832595715 #> [421] 1.836959038 1.841322361 1.845685684 1.850049007 1.854412330 1.858775653 #> [427] 1.863138977 1.867502300 1.871865623 1.876228946 1.880592269 1.884955592 #> [433] 1.889318915 1.893682238 1.898045562 1.902408885 1.906772208 1.911135531 #> [439] 1.915498854 1.919862177 1.924225500 1.928588823 1.932952147 1.937315470 #> [445] 1.941678793 1.946042116 1.950405439 1.954768762 1.959132085 1.963495408 #> [451] 1.967858732 1.972222055 1.976585378 1.980948701 1.985312024 1.989675347 #> [457] 1.994038670 1.998401994 2.002765317 2.007128640 2.011491963 2.015855286 #> [463] 2.020218609 2.024581932 2.028945255 2.033308579 2.037671902 2.042035225 #> [469] 2.046398548 2.050761871 2.055125194 2.059488517 2.063851840 2.068215164 #> [475] 2.072578487 2.076941810 2.081305133 2.085668456 2.090031779 2.094395102 #> [481] 2.098758426 2.103121749 2.107485072 2.111848395 2.116211718 2.120575041 #> [487] 2.124938364 2.129301687 2.133665011 2.138028334 2.142391657 2.146754980 #> [493] 2.151118303 2.155481626 2.159844949 2.164208272 2.168571596 2.172934919 #> [499] 2.177298242 2.181661565 2.186024888 2.190388211 2.194751534 2.199114858 #> [505] 2.203478181 2.207841504 2.212204827 2.216568150 2.220931473 2.225294796 #> [511] 2.229658119 2.234021443 2.238384766 2.242748089 2.247111412 2.251474735 #> [517] 2.255838058 2.260201381 2.264564704 2.268928028 2.273291351 2.277654674 #> [523] 2.282017997 2.286381320 2.290744643 2.295107966 2.299471290 2.303834613 #> [529] 2.308197936 2.312561259 2.316924582 2.321287905 2.325651228 2.330014551 #> [535] 2.334377875 2.338741198 2.343104521 2.347467844 2.351831167 2.356194490 #> [541] 2.360557813 2.364921136 2.369284460 2.373647783 2.378011106 2.382374429 #> [547] 2.386737752 2.391101075 2.395464398 2.399827721 2.404191045 2.408554368 #> [553] 2.412917691 2.417281014 2.421644337 2.426007660 2.430370983 2.434734307 #> [559] 2.439097630 2.443460953 2.447824276 2.452187599 2.456550922 2.460914245 #> [565] 2.465277568 2.469640892 2.474004215 2.478367538 2.482730861 2.487094184 #> [571] 2.491457507 2.495820830 2.500184153 2.504547477 2.508910800 2.513274123 #> [577] 2.517637446 2.522000769 2.526364092 2.530727415 2.535090739 2.539454062 #> [583] 2.543817385 2.548180708 2.552544031 2.556907354 2.561270677 2.565634000 #> [589] 2.569997324 2.574360647 2.578723970 2.583087293 2.587450616 2.591813939 #> [595] 2.596177262 2.600540585 2.604903909 2.609267232 2.613630555 2.617993878 #> [601] 2.622357201 2.626720524 2.631083847 2.635447171 2.639810494 2.644173817 #> [607] 2.648537140 2.652900463 2.657263786 2.661627109 2.665990432 2.670353756 #> [613] 2.674717079 2.679080402 2.683443725 2.687807048 2.692170371 2.696533694 #> [619] 2.700897017 2.705260341 2.709623664 2.713986987 2.718350310 2.722713633 #> [625] 2.727076956 2.731440279 2.735803603 2.740166926 2.744530249 2.748893572 #> [631] 2.753256895 2.757620218 2.761983541 2.766346864 2.770710188 2.775073511 #> [637] 2.779436834 2.783800157 2.788163480 2.792526803 2.796890126 2.801253449 #> [643] 2.805616773 2.809980096 2.814343419 2.818706742 2.823070065 2.827433388 #> [649] 2.831796711 2.836160034 2.840523358 2.844886681 2.849250004 2.853613327 #> [655] 2.857976650 2.862339973 2.866703296 2.871066620 2.875429943 2.879793266 #> [661] 2.884156589 2.888519912 2.892883235 2.897246558 2.901609881 2.905973205 #> [667] 2.910336528 2.914699851 2.919063174 2.923426497 2.927789820 2.932153143 #> [673] 2.936516466 2.940879790 2.945243113 2.949606436 2.953969759 2.958333082 #> [679] 2.962696405 2.967059728 2.971423052 2.975786375 2.980149698 2.984513021 #> [685] 2.988876344 2.993239667 2.997602990 3.001966313 3.006329637 3.010692960 #> [691] 3.015056283 3.019419606 3.023782929 3.028146252 3.032509575 3.036872898 #> [697] 3.041236222 3.045599545 3.049962868 3.054326191 3.058689514 3.063052837 #> [703] 3.067416160 3.071779484 3.076142807 3.080506130 3.084869453 3.089232776 #> [709] 3.093596099 3.097959422 3.102322745 3.106686069 3.111049392 3.115412715 #> [715] 3.119776038 3.124139361 3.128502684 3.132866007 3.137229330 3.141592654 #> [721] 3.145955977 3.150319300 3.154682623 3.159045946 3.163409269 3.167772592 #> [727] 3.172135915 3.176499239 3.180862562 3.185225885 3.189589208 3.193952531 #> [733] 3.198315854 3.202679177 3.207042501 3.211405824 3.215769147 3.220132470 #> [739] 3.224495793 3.228859116 3.233222439 3.237585762 3.241949086 3.246312409 #> [745] 3.250675732 3.255039055 3.259402378 3.263765701 3.268129024 3.272492347 #> [751] 3.276855671 3.281218994 3.285582317 3.289945640 3.294308963 3.298672286 #> [757] 3.303035609 3.307398933 3.311762256 3.316125579 3.320488902 3.324852225 #> [763] 3.329215548 3.333578871 3.337942194 3.342305518 3.346668841 3.351032164 #> [769] 3.355395487 3.359758810 3.364122133 3.368485456 3.372848779 3.377212103 #> [775] 3.381575426 3.385938749 3.390302072 3.394665395 3.399028718 3.403392041 #> [781] 3.407755365 3.412118688 3.416482011 3.420845334 3.425208657 3.429571980 #> [787] 3.433935303 3.438298626 3.442661950 3.447025273 3.451388596 3.455751919 #> [793] 3.460115242 3.464478565 3.468841888 3.473205211 3.477568535 3.481931858 #> [799] 3.486295181 3.490658504 3.495021827 3.499385150 3.503748473 3.508111797 #> [805] 3.512475120 3.516838443 3.521201766 3.525565089 3.529928412 3.534291735 #> [811] 3.538655058 3.543018382 3.547381705 3.551745028 3.556108351 3.560471674 #> [817] 3.564834997 3.569198320 3.573561643 3.577924967 3.582288290 3.586651613 #> [823] 3.591014936 3.595378259 3.599741582 3.604104905 3.608468228 3.612831552 #> [829] 3.617194875 3.621558198 3.625921521 3.630284844 3.634648167 3.639011490 #> [835] 3.643374814 3.647738137 3.652101460 3.656464783 3.660828106 3.665191429 #> [841] 3.669554752 3.673918075 3.678281399 3.682644722 3.687008045 3.691371368 #> [847] 3.695734691 3.700098014 3.704461337 3.708824660 3.713187984 3.717551307 #> [853] 3.721914630 3.726277953 3.730641276 3.735004599 3.739367922 3.743731246 #> [859] 3.748094569 3.752457892 3.756821215 3.761184538 3.765547861 3.769911184 #> [865] 3.774274507 3.778637831 3.783001154 3.787364477 3.791727800 3.796091123 #> [871] 3.800454446 3.804817769 3.809181092 3.813544416 3.817907739 3.822271062 #> [877] 3.826634385 3.830997708 3.835361031 3.839724354 3.844087678 3.848451001 #> [883] 3.852814324 3.857177647 3.861540970 3.865904293 3.870267616 3.874630939 #> [889] 3.878994263 3.883357586 3.887720909 3.892084232 3.896447555 3.900810878 #> [895] 3.905174201 3.909537524 3.913900848 3.918264171 3.922627494 3.926990817 #> [901] 3.931354140 3.935717463 3.940080786 3.944444110 3.948807433 3.953170756 #> [907] 3.957534079 3.961897402 3.966260725 3.970624048 3.974987371 3.979350695 #> [913] 3.983714018 3.988077341 3.992440664 3.996803987 4.001167310 4.005530633 #> [919] 4.009893956 4.014257280 4.018620603 4.022983926 4.027347249 4.031710572 #> [925] 4.036073895 4.040437218 4.044800541 4.049163865 4.053527188 4.057890511 #> [931] 4.062253834 4.066617157 4.070980480 4.075343803 4.079707127 4.084070450 #> [937] 4.088433773 4.092797096 4.097160419 4.101523742 4.105887065 4.110250388 #> [943] 4.114613712 4.118977035 4.123340358 4.127703681 4.132067004 4.136430327 #> [949] 4.140793650 4.145156973 4.149520297 4.153883620 4.158246943 4.162610266 #> [955] 4.166973589 4.171336912 4.175700235 4.180063559 4.184426882 4.188790205 #> [961] 4.193153528 4.197516851 4.201880174 4.206243497 4.210606820 4.214970144 #> [967] 4.219333467 4.223696790 4.228060113 4.232423436 4.236786759 4.241150082 #> [973] 4.245513405 4.249876729 4.254240052 4.258603375 4.262966698 4.267330021 #> [979] 4.271693344 4.276056667 4.280419991 4.284783314 4.289146637 4.293509960 #> [985] 4.297873283 4.302236606 4.306599929 4.310963252 4.315326576 4.319689899 #> [991] 4.324053222 4.328416545 4.332779868 4.337143191 4.341506514 4.345869837 #> [997] 4.350233161 4.354596484 4.358959807 4.363323130 4.367686453 4.372049776 #> [1003] 4.376413099 4.380776423 4.385139746 4.389503069 4.393866392 4.398229715 #> [1009] 4.402593038 4.406956361 4.411319684 4.415683008 4.420046331 4.424409654 #> [1015] 4.428772977 4.433136300 4.437499623 4.441862946 4.446226269 4.450589593 #> [1021] 4.454952916 4.459316239 4.463679562 4.468042885 4.472406208 4.476769531 #> [1027] 4.481132854 4.485496178 4.489859501 4.494222824 4.498586147 4.502949470 #> [1033] 4.507312793 4.511676116 4.516039440 4.520402763 4.524766086 4.529129409 #> [1039] 4.533492732 4.537856055 4.542219378 4.546582701 4.550946025 4.555309348 #> [1045] 4.559672671 4.564035994 4.568399317 4.572762640 4.577125963 4.581489286 #> [1051] 4.585852610 4.590215933 4.594579256 4.598942579 4.603305902 4.607669225 #> [1057] 4.612032548 4.616395872 4.620759195 4.625122518 4.629485841 4.633849164 #> [1063] 4.638212487 4.642575810 4.646939133 4.651302457 4.655665780 4.660029103 #> [1069] 4.664392426 4.668755749 4.673119072 4.677482395 4.681845718 4.686209042 #> [1075] 4.690572365 4.694935688 4.699299011 4.703662334 4.708025657 4.712388980 #> [1081] 4.716752304 4.721115627 4.725478950 4.729842273 4.734205596 4.738568919 #> [1087] 4.742932242 4.747295565 4.751658889 4.756022212 4.760385535 4.764748858 #> [1093] 4.769112181 4.773475504 4.777838827 4.782202150 4.786565474 4.790928797 #> [1099] 4.795292120 4.799655443 4.804018766 4.808382089 4.812745412 4.817108736 #> [1105] 4.821472059 4.825835382 4.830198705 4.834562028 4.838925351 4.843288674 #> [1111] 4.847651997 4.852015321 4.856378644 4.860741967 4.865105290 4.869468613 #> [1117] 4.873831936 4.878195259 4.882558582 4.886921906 4.891285229 4.895648552 #> [1123] 4.900011875 4.904375198 4.908738521 4.913101844 4.917465167 4.921828491 #> [1129] 4.926191814 4.930555137 4.934918460 4.939281783 4.943645106 4.948008429 #> [1135] 4.952371753 4.956735076 4.961098399 4.965461722 4.969825045 4.974188368 #> [1141] 4.978551691 4.982915014 4.987278338 4.991641661 4.996004984 5.000368307 #> [1147] 5.004731630 5.009094953 5.013458276 5.017821599 5.022184923 5.026548246 #> [1153] 5.030911569 5.035274892 5.039638215 5.044001538 5.048364861 5.052728185 #> [1159] 5.057091508 5.061454831 5.065818154 5.070181477 5.074544800 5.078908123 #> [1165] 5.083271446 5.087634770 5.091998093 5.096361416 5.100724739 5.105088062 #> [1171] 5.109451385 5.113814708 5.118178031 5.122541355 5.126904678 5.131268001 #> [1177] 5.135631324 5.139994647 5.144357970 5.148721293 5.153084617 5.157447940 #> [1183] 5.161811263 5.166174586 5.170537909 5.174901232 5.179264555 5.183627878 #> [1189] 5.187991202 5.192354525 5.196717848 5.201081171 5.205444494 5.209807817 #> [1195] 5.214171140 5.218534463 5.222897787 5.227261110 5.231624433 5.235987756 #> [1201] 5.240351079 5.244714402 5.249077725 5.253441049 5.257804372 5.262167695 #> [1207] 5.266531018 5.270894341 5.275257664 5.279620987 5.283984310 5.288347634 #> [1213] 5.292710957 5.297074280 5.301437603 5.305800926 5.310164249 5.314527572 #> [1219] 5.318890895 5.323254219 5.327617542 5.331980865 5.336344188 5.340707511 #> [1225] 5.345070834 5.349434157 5.353797480 5.358160804 5.362524127 5.366887450 #> [1231] 5.371250773 5.375614096 5.379977419 5.384340742 5.388704066 5.393067389 #> [1237] 5.397430712 5.401794035 5.406157358 5.410520681 5.414884004 5.419247327 #> [1243] 5.423610651 5.427973974 5.432337297 5.436700620 5.441063943 5.445427266 #> [1249] 5.449790589 5.454153912 5.458517236 5.462880559 5.467243882 5.471607205 #> [1255] 5.475970528 5.480333851 5.484697174 5.489060498 5.493423821 5.497787144 #> [1261] 5.502150467 5.506513790 5.510877113 5.515240436 5.519603759 5.523967083 #> [1267] 5.528330406 5.532693729 5.537057052 5.541420375 5.545783698 5.550147021 #> [1273] 5.554510344 5.558873668 5.563236991 5.567600314 5.571963637 5.576326960 #> [1279] 5.580690283 5.585053606 5.589416930 5.593780253 5.598143576 5.602506899 #> [1285] 5.606870222 5.611233545 5.615596868 5.619960191 5.624323515 5.628686838 #> [1291] 5.633050161 5.637413484 5.641776807 5.646140130 5.650503453 5.654866776 #> [1297] 5.659230100 5.663593423 5.667956746 5.672320069 5.676683392 5.681046715 #> [1303] 5.685410038 5.689773362 5.694136685 5.698500008 5.702863331 5.707226654 #> [1309] 5.711589977 5.715953300 5.720316623 5.724679947 5.729043270 5.733406593 #> [1315] 5.737769916 5.742133239 5.746496562 5.750859885 5.755223208 5.759586532 #> [1321] 5.763949855 5.768313178 5.772676501 5.777039824 5.781403147 5.785766470 #> [1327] 5.790129793 5.794493117 5.798856440 5.803219763 5.807583086 5.811946409 #> [1333] 5.816309732 5.820673055 5.825036379 5.829399702 5.833763025 5.838126348 #> [1339] 5.842489671 5.846852994 5.851216317 5.855579640 5.859942964 5.864306287 #> [1345] 5.868669610 5.873032933 5.877396256 5.881759579 5.886122902 5.890486225 #> [1351] 5.894849549 5.899212872 5.903576195 5.907939518 5.912302841 5.916666164 #> [1357] 5.921029487 5.925392811 5.929756134 5.934119457 5.938482780 5.942846103 #> [1363] 5.947209426 5.951572749 5.955936072 5.960299396 5.964662719 5.969026042 #> [1369] 5.973389365 5.977752688 5.982116011 5.986479334 5.990842657 5.995205981 #> [1375] 5.999569304 6.003932627 6.008295950 6.012659273 6.017022596 6.021385919 #> [1381] 6.025749243 6.030112566 6.034475889 6.038839212 6.043202535 6.047565858 #> [1387] 6.051929181 6.056292504 6.060655828 6.065019151 6.069382474 6.073745797 #> [1393] 6.078109120 6.082472443 6.086835766 6.091199089 6.095562413 6.099925736 #> [1399] 6.104289059 6.108652382 6.113015705 6.117379028 6.121742351 6.126105675 #> [1405] 6.130468998 6.134832321 6.139195644 6.143558967 6.147922290 6.152285613 #> [1411] 6.156648936 6.161012260 6.165375583 6.169738906 6.174102229 6.178465552 #> [1417] 6.182828875 6.187192198 6.191555521 6.195918845 6.200282168 6.204645491 #> [1423] 6.209008814 6.213372137 6.217735460 6.222098783 6.226462106 6.230825430 #> [1429] 6.235188753 6.239552076 6.243915399 6.248278722 6.252642045 6.257005368 #> [1435] 6.261368692 6.265732015 6.270095338 6.274458661 6.278821984 6.283185307"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielRings.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot rings on a diel plot — dielRings","title":"Plot rings on a diel plot — dielRings","text":"Plot rings diel plot.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielRings.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot rings on a diel plot — dielRings","text":"","code":"dielRings( names, starts, ends, cols = \"grey\", format = \"HHMM\", limits = c(1, 2), legend = T )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielRings.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot rings on a diel plot — dielRings","text":"names Labels rings starts Start times rings HHMM string format ends End times rings HHMM string format cols Colours rings format Defaults HHMM limits Region dielPlot() plot rings. Defaults c(1,2) legend Boolean. Whether plot legend.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":null,"dir":"Reference","previous_headings":"","what":"Dolbear's law — dolbear","title":"Dolbear's law — dolbear","text":"Calculates either chirps per minute based temperature vice versa using Dolbear's law (equivalent laws species)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dolbear's law — dolbear","text":"","code":"dolbear(n = NULL, t = NULL, species = \"Oecanthus fultoni\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dolbear's law — dolbear","text":"n Chirps per minute t Temperature Celsius species Species use (default Oecanthus fultoni)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Dolbear's law — dolbear","text":"Missing value n t","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dolbear's law — dolbear","text":"","code":"dolbear(n=6) #> [1] 5.142857 dolbear(t=25) #> [1] 145"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the duty cycle of a wave — dutyCycle","title":"Calculate the duty cycle of a wave — dutyCycle","text":"Proportion wave signal limit","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the duty cycle of a wave — dutyCycle","text":"","code":"dutyCycle(wave, limit = 0.1, output = \"unit\", normalise = TRUE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the duty cycle of a wave — dutyCycle","text":"wave Wave object limit Threshold consider signal output \"unit\" duty cycle range 0-1. percentage use \"percent\". normalise TRUE Wave normalised using tuneR","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the duty cycle of a wave — dutyCycle","text":"numerical value duty cycle 0 1 (0 100% percentage output).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the duty cycle of a wave — dutyCycle","text":"","code":"wave <- tuneR::sine(2000) dc <- dutyCycle(wave) pc <- dutyCycle(wave, output=\"percent\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyDiel.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an empty diel plot — emptyDiel","title":"Create an empty diel plot — emptyDiel","text":"Create diel plot labels without sun altitude times day plotted.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyDiel.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an empty diel plot — emptyDiel","text":"","code":"emptyDiel(method = \"plotrix\", rot = pi)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyDiel.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an empty diel plot — emptyDiel","text":"method Plotting package use rot Rotation origin (defaults pi)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyYearly.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an empty yearly plot — emptyYearly","title":"Create an empty yearly plot — emptyYearly","text":"Create yearly plot labels without sun night duration plotted.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyYearly.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an empty yearly plot — emptyYearly","text":"","code":"emptyYearly(year = 2022, method = \"plotix\", rot = pi)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyYearly.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an empty yearly plot — emptyYearly","text":"year Year plot (allows leap years) method Plotting package use rot Rotation origin (defaults pi)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Various measurements of frequency values for a Wave object — entropyStats","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"Calculates peak, centre, bandwidth quality factor. quality factor (Q) calculated -3dB -10dB discussed Bennett-Clark (1999) doi:10.1080/09524622.1999.9753408.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"","code":"entropyStats(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"wave Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"list spectral entropy types.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"","code":"if (FALSE) { entropyStats(sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Apply a WaveFilter object to a Wave object — filterWave","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"WaveFilter object object containing information necessary filterw function apply filter Wave object. designed allow pipe operator (either magrittr base R) used apply filters Wave pipeline.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"","code":"filterWave(w, filt, cl = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"w Wave object. filt Wave object selected filter applied. cl Optional. cluster specified, filter applied parallel.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"Supported filters include seewave package.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the frequency from wavelength and speed of sound — frequencySound","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"Calculates frequency sound wave given wavelength speed sound medium.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"","code":"frequencySound(wl, s = soundSpeed(medium = \"air\"))"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"wl Wavelength s Speed sound (defaults speed sound air)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"Frequency sound Hertz","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"","code":"f <- frequencySound(wl=100, s=343)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencyStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Various measurements of frequency values for a Wave object — frequencyStats","title":"Various measurements of frequency values for a Wave object — frequencyStats","text":"Calculates peak, centre, bandwidth quality factor. quality factor (Q) calculated -3dB -10dB discussed Bennett-Clark (1999) .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencyStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Various measurements of frequency values for a Wave object — frequencyStats","text":"","code":"frequencyStats(wave, wave_spec = NULL, warn = TRUE, lowcut = 1, plot = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencyStats.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Various measurements of frequency values for a Wave object — frequencyStats","text":"wave Wave object wave_spec precomputed spectrum (optional, present generated) warn TRUE provides warnings values consistent lowcut Frequency (kHz) values ignored. plot TRUE displays values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":null,"dir":"Reference","previous_headings":"","what":"Add noise to a Wave like object — generateNoise","title":"Add noise to a Wave like object — generateNoise","text":"Adding noise Wave like object allows testing robustness automated identification algorithms noise.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add noise to a Wave like object — generateNoise","text":"","code":"generateNoise( wave, noise = c(\"white\"), noise.add = FALSE, noise.ratio = 0.5, noise.ref = \"file\", output = \"list\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add noise to a Wave like object — generateNoise","text":"wave Object add noise (Wave, WaveMC, Tagged versions), list objects. noise Vector noise add (unif, gaussian, white, pink, power, red) noise.add TRUE noise sources added wave. FALSE separate outputs created noise source. noise.ratio Ratio maximum noise amplitude maximum amplitude wave. noise.ref Reference maximum noise.ratio. \"max\" maximum amplitude, \"file\" maximum amplitude wave. output TODO: implemented?","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add noise to a Wave like object — generateNoise","text":"list Wave objects required noise added.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeMask.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate time masked Wave-like objects — generateTimeMask","title":"Generate time masked Wave-like objects — generateTimeMask","text":"Given Wave-like object (list Wave-like objects), generate new Wave-like objects time masking.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeMask.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate time masked Wave-like objects — generateTimeMask","text":"","code":"generateTimeMask(wave, method = \"squarewave\", dutyCycle = 0.95, n.periods = 10)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeMask.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate time masked Wave-like objects — generateTimeMask","text":"wave Wave-like object (list Wave-like objects). method method use time masking (one \"squarewave\", \"random). dutyCycle duty cycle output. value 0.95 means 5% time masked. n.periods number waves generate squarewave method.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":null,"dir":"Reference","previous_headings":"","what":"Generated time-shifted versions of a Wave-like object — generateTimeShift","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"Given Wave-like object (list Wave-like objects), function generates time-shifted versions object. time-shifted versions generated adding constant amount time start end object. achieved either inserting silence truncating object original length, rotating audio within object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"","code":"generateTimeShift( wave, type = \"silent\", amount = c(1, 2), where = \"start\", output = \"list\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"wave Wave-like object list Wave-like objects. type type time-shift apply. Either \"silent\" \"rotate\". amount Vector amount time shift (seconds). insert silence type \"silent\". output Return list.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"Wave-like object list Wave-like objects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":null,"dir":"Reference","previous_headings":"","what":"Google Speech API Transcribe — gs_transcribe","title":"Google Speech API Transcribe — gs_transcribe","text":"Wrapper around various Google packages simplify speech transcription.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Google Speech API Transcribe — gs_transcribe","text":"","code":"gs_transcribe(filename, bucket = NULL, ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Google Speech API Transcribe — gs_transcribe","text":"filename Path file analysis bucket Storage bucket Google Cloud larger files ... Additional arguments pass gl_speech()","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Google Speech API Transcribe — gs_transcribe","text":"gs_transcribe object containing details transcription","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Google Speech API Transcribe — gs_transcribe","text":"","code":"if (FALSE) { gs_transcribe(\"demo.wav\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":null,"dir":"Reference","previous_headings":"","what":"Converts bytes in human readable form — humanBytes","title":"Converts bytes in human readable form — humanBytes","text":"Given input bytes calculates result sensible output unit (e.g. MB, GB, PB).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Converts bytes in human readable form — humanBytes","text":"","code":"humanBytes(S)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Converts bytes in human readable form — humanBytes","text":"S Number bytes","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Converts bytes in human readable form — humanBytes","text":"String human readable format","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":null,"dir":"Reference","previous_headings":"","what":"Converts time to human readable form — humanTime","title":"Converts time to human readable form — humanTime","text":"Given input bytes calculates result sensible output unit (e.g. minutes, hours).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Converts time to human readable form — humanTime","text":"","code":"humanTime(S, unit = \"seconds\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Converts time to human readable form — humanTime","text":"S Time convert unit unit unit time convert","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Converts time to human readable form — humanTime","text":"String human readable format","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the jitter in a Wave object — jitter","title":"Calculate the jitter in a Wave object — jitter","text":"Jitter measure variability periods waveform. Relative jitter scaled jitter analysed waveform.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the jitter in a Wave object — jitter","text":"","code":"jitter(wave, method = \"absolute\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the jitter in a Wave object — jitter","text":"wave Wave object method One \"absolute\" \"relative\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the jitter in a Wave object — jitter","text":"vector zero crossing locations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the jitter in a Wave object — jitter","text":"","code":"if (FALSE) { jitter(sheep, method=\"absolute\") jitter(sheep, method=\"relative\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":null,"dir":"Reference","previous_headings":"","what":"Pad labels with interval — labelPadding","title":"Pad labels with interval — labelPadding","text":"Takes labels Google Speech API transcript pads time specified number seconds.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pad labels with interval — labelPadding","text":"","code":"labelPadding(t, pad = 0.5, max_t = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pad labels with interval — labelPadding","text":"t Transcript Google Speech API pad Amount time (seconds) add start end max_t Optional. duration file, padding exceed length file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pad labels with interval — labelPadding","text":"modified Google Speech API transcript object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pad labels with interval — labelPadding","text":"","code":"if (FALSE) { labelPadding(t, pad=2, max_t=duration(wave)) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":null,"dir":"Reference","previous_headings":"","what":"Combines labels which overlap into single continuous regions — labelReduction","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"Takes labels Google Speech API transcript combines overlapping labels.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"","code":"labelReduction(t)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"t Transcript Google Speech API","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"list containing start end times speech containing regions","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"","code":"if (FALSE) { labelReduction(t) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":null,"dir":"Reference","previous_headings":"","what":"Map three vectors to RGB — map2RGB","title":"Map three vectors to RGB — map2RGB","text":"Maps three vectors equal length RGB use false-colour index spectrograms","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Map three vectors to RGB — map2RGB","text":"","code":"map2RGB(red, green, blue)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Map three vectors to RGB — map2RGB","text":"red red channel vector green green channel vector blue blue channel vector","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Map three vectors to RGB — map2RGB","text":"vector RGB values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the natural frequency — naturalFrequency","title":"Calculate the natural frequency — naturalFrequency","text":"Calculates natural frequency given inductance, capacitance resistance. acoustic case inductance inertia mass, capacitance elasticity (bulk modulus) resistance composed air resistance related quantities. units SI.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the natural frequency — naturalFrequency","text":"","code":"naturalFrequency(L, C = \"default\", R)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the natural frequency — naturalFrequency","text":"L Inductance C Capacitance, default IUPAC standard pressure. R Resistance","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the natural frequency — naturalFrequency","text":"isothermal compression, bulk modulus equal pressure. default value C therefore IUPAC standard pressure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the natural frequency — naturalFrequency","text":"","code":"naturalFrequency(L=20,R=0.5) #> [1] 0.002950812 naturalFrequency(L=20,C=1/4,R=0.5) #> [1] 0.07114845"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":null,"dir":"Reference","previous_headings":"","what":"Natural Time Domain — ntd","title":"Natural Time Domain — ntd","text":"Runs function wave outputs values Natural Time Domain (see Varotsos, Sarlis & Skordas(2011) doi:10.1007/978-3-642-16449-1).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Natural Time Domain — ntd","text":"","code":"ntd(wave, events, FUN, normalise = FALSE, argument = \"wave\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Natural Time Domain — ntd","text":"wave Wave object containing pulses events Onset detected events, e.g. pulseDetection() FUN function run normalise TRUE output probability density argument \"wave\" supplies weave object function, \"vector\" supplies left channel numeric vector. ... Additional arguments FUN","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Natural Time Domain — ntd","text":"list outputs form applied function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":null,"dir":"Reference","previous_headings":"","what":"Parse a filename — parseFilename","title":"Parse a filename — parseFilename","text":"Attempts extract meaningful information filename, typically date time recording started.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse a filename — parseFilename","text":"","code":"parseFilename(file, format = NULL, timezone = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse a filename — parseFilename","text":"file filename (list filenames). format Optionally force given format (see Details). NULL (default) attempt made automatically detect format file. \"match\" list filenames given attempt made find format matches files. may give incorrect results filename ambiguous (see Details). timezone Optionally set timezone.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse a filename — parseFilename","text":"list file, type match, datetime. possible determine additional properties files, added list.","code":""},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"determining-the-format","dir":"Reference","previous_headings":"","what":"Determining the format","title":"Parse a filename — parseFilename","text":"sometimes impossible accurately determine format filename, e.g. eight-digit 'AudioMoth HEX' contains numbers confused YYYYMMDD format. list filenames given \"match\" format specified effort made determine likely format applies filenames.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"supported-formats","dir":"Reference","previous_headings":"","what":"Supported formats","title":"Parse a filename — parseFilename","text":"AudioMoth - newer format AudioMoth devices consists standard YYYYMMDD_HHMMSS.wav format. Specifying 'AudioMoth' forces call audiomoth() function seewave package (Sueur et al. 2008) . AudioMoth HEX - Older format AudioMoth devices consisting eight hexadecimal characters. Conversion handled call seewave::audiomoth(). timestamp - standard date-time format. Uses R standard origin 1970-01-01 00:00:00 UTC. Wildlife Acoustics SM2 - Can also used Wildlife Acoustics SM4 devices. Conversion handled call seewave::songmeter(). Wildlife Acoustics SM3 - Conversion handled call seewave::songmeter(). YYYYMMDD_HHMMSS - standard date-time format.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Parse a filename — parseFilename","text":"Sueur J, Aubin T, Simonis C (2008). “Seewave, free modular tool sound analysis synthesis.” Bioacoustics, 18(2), 213--226.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Parse a filename — parseFilename","text":"","code":"parseFilename(\"5E90A4D4.wav\") #> $filename #> [1] \"5E90A4D4.wav\" #> #> $match #> [1] \"AudioMoth HEX\" #> #> $datetime #> [1] \"2020-04-10 16:54:44 UTC\" #>"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":null,"dir":"Reference","previous_headings":"","what":"Pulse detection using Dietrich (2004) — pd_dietrich2004","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"Detects pulses Wave using method described Dietrich et al (2004) doi:10.1016/j.patcog.2004.04.004.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"","code":"pd_dietrich2004( wave, U = 120, gamma = 0.05, alpha = 1.4, scaling = 32, V = 480, psi = 1 )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"wave Wave object U Window length gamma Gamma alpha Alpha scaling Scaling V V Window length psi Psi","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"list input values plus onset offset times pulses","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_simple.html","id":null,"dir":"Reference","previous_headings":"","what":"Simplified pulse detection using Dietrich (2004) — pd_simple","title":"Simplified pulse detection using Dietrich (2004) — pd_simple","text":"Detects pulses Wave.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_simple.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simplified pulse detection using Dietrich (2004) — pd_simple","text":"","code":"pd_simple( wave, U = 120, gamma = 0.05, alpha = 1.4, scaling = 32, V = 480, psi = 1 )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_simple.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simplified pulse detection using Dietrich (2004) — pd_simple","text":"wave Wave object U Window length gamma Gamma alpha Alpha scaling Scaling V V Window length psi Psi","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar addition — +,PseudoWave,numeric-method","title":"PseudoWave scalar addition — +,PseudoWave,numeric-method","text":"PseudoWave scalar addition","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar addition — +,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric +(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar addition — +,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-numeric-PseudoWave-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","title":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","text":"Numeric addition PseudoWave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-numeric-PseudoWave-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","text":"","code":"# S4 method for numeric,PseudoWave +(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-numeric-PseudoWave-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a PseudoWave object — pseudoWave","title":"Create a PseudoWave object — pseudoWave","text":"function used create PseudoWave object can used generate Wave object operated .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a PseudoWave object — pseudoWave","text":"","code":"pseudoWave( type = NA_character_, subtype = NA_character_, scale = 1, offset = 0, seed = 1, params = list() )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a PseudoWave object — pseudoWave","text":"type Type PseudoWave (e.g. \"noise\", \"sine\") subtype Subtype PseudoWave (e.g. \"white\" type \"noise\") scale Wave channels multiplied value offset value added Wave channels seed Random seed reproducible output. NA params List additional parameters pass generating function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a PseudoWave object — pseudoWave","text":"PseudoWave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a PseudoWave object — pseudoWave","text":"","code":"pw <- pseudoWave(\"noise\", \"white\") pw <- pseudoWave(\"sine\", params=list(\"f0\"=440))"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate a single pulse — pulse","title":"Generate a single pulse — pulse","text":"Generate single pulse, either Dirac pulse (Dirac delta) square pulse.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate a single pulse — pulse","text":"","code":"pulse( type = \"dirac\", leading = 22050, pulse.length = 1, duration = samp.rate, samp.rate = 44100, bit = 1, pcm = FALSE, stereo = FALSE, output = \"Wave\", invert = FALSE )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate a single pulse — pulse","text":"type Either \"dirac\" \"square\". leading number samples pulse. pulse.length number samples pulse (\"square\"). duration total number samples generated. samp.rate sample rate. bit bit depth. pcm Whether Wave generated PCM (see tuneR). stereo Whether Wave generated stereo. output output format (\"Wave\"). invert Whether invert pulse.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate a single pulse — pulse","text":"Specified output.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseDetection.html","id":null,"dir":"Reference","previous_headings":"","what":"Pulse detection — pulseDetection","title":"Pulse detection — pulseDetection","text":"Detects pulses Wave, defaults using Dietrich (2004).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseDetection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pulse detection — pulseDetection","text":"","code":"pulseDetection(wave, method = \"simple\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseDetection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pulse detection — pulseDetection","text":"wave Wave object containing pulses method method use pulse detection ... arguments pass pulse detection function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":null,"dir":"Reference","previous_headings":"","what":"Pulse intervals — pulseIntervals","title":"Pulse intervals — pulseIntervals","text":"Used locate area pulses results pulseDetection().","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pulse intervals — pulseIntervals","text":"","code":"pulseIntervals(pulses, nsd = 2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pulse intervals — pulseIntervals","text":"pulses result pulseDetection. nsd number standard deviations sid mean pulse interval discard","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pulse intervals — pulseIntervals","text":"list onset offset times pulses","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":null,"dir":"Reference","previous_headings":"","what":"The radar equation — radarPower","title":"The radar equation — radarPower","text":"Calculates power returned echolocation pulse","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"The radar equation — radarPower","text":"","code":"radarPower(P_t, r, area, G_t = 1, G_r = 1, wl = 1)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"The radar equation — radarPower","text":"P_t Power transmitted (sender) r Range target area Effective cross-sectional area target G_t Transmitter gain G_r Receiver gain wl Wavelength (use G_r G_t)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"The radar equation — radarPower","text":"received power","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The radar equation — radarPower","text":"","code":"radarPower(12, 20, 0.05) #> [1] 1.889738e-09 radarPower(12, 20, 0.05, G_t=1.2, G_r=1.5, wl=0.045) #> [1] 6.888096e-12"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":null,"dir":"Reference","previous_headings":"","what":"Radar range — radarRange","title":"Radar range — radarRange","text":"Calculates distance object based round trip time echolocation pulse","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Radar range — radarRange","text":"","code":"radarRange(t, c = soundSpeed(medium = \"air\"))"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Radar range — radarRange","text":"t Time seconds c Speed sound transmission medium m/s (default air)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Radar range — radarRange","text":"Distance object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Radar range — radarRange","text":"","code":"radarRange(2) #> [1] 343 radarRange(2, c=343) #> [1] 343 radarRange(2, c=soundSpeed(medium = \"sea water\")) #> [1] 1500"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radialPolygon.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a radial polygon — radialPolygon","title":"Plot a radial polygon — radialPolygon","text":"Used plot sectors, annuli horizons dielPlot() yearlyPlot(). polygon inner outer horizon - can set fixed radius vector.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radialPolygon.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a radial polygon — radialPolygon","text":"","code":"radialPolygon( angle1, angle2, radius1, radius2, col = \"grey\", border = NA, rot = -pi, angleinc = 0.01, reverse = TRUE, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radialPolygon.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a radial polygon — radialPolygon","text":"angle1 Angles inner line angle2 Angles outer line radius1 Radii inner line radius2 Radii outer line col Colour polygon border Border colour (see polygon() details) rot Rotation plot, defaults pi match dielPlot() yearlyPlot() angleinc angular increment radians calculating circular lines reverse FALSE plots anti-clockwise direction ... parameters passed polygon()","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":null,"dir":"Reference","previous_headings":"","what":"Rainfall detection — rainfallDetection","title":"Rainfall detection — rainfallDetection","text":"Detects rainfall Wave. uncalibrated version Bedoya et al (2017) doi:10.1016/j.ecolind.2016.12.018 available package. hardRain package can also accessed via wrapper.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Rainfall detection — rainfallDetection","text":"","code":"rainfallDetection(wave, method = \"bedoya2017\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Rainfall detection — rainfallDetection","text":"wave Wave object detect rainfall method rainfall detection method use (\"bedoya2017\") ... arguments pass rain detection function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Rainfall detection — rainfallDetection","text":"Numeric value rainfall detection algorithm chosen.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Rainfall detection — rainfallDetection","text":"","code":"if (FALSE) { rainfallDetection(sheep, method=\"bedoya2017\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudacityLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Read an Audacity label file — readAudacityLabels","title":"Read an Audacity label file — readAudacityLabels","text":"Reads Audacity label file returns either list Annotation objects data frame.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudacityLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read an Audacity label file — readAudacityLabels","text":"","code":"readAudacityLabels(file, output = \"annotations\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudacityLabels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read an Audacity label file — readAudacityLabels","text":"file Path Audacity label file. output One \"annotations\" \"data.frame\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":null,"dir":"Reference","previous_headings":"","what":"Read an audio file — readAudio","title":"Read an audio file — readAudio","text":"file used read audio file return Wave object, abstraction function various specific audio reading functions. existing method can identified attempt made use av package read audio.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read an audio file — readAudio","text":"","code":"readAudio(file, mime = \"auto\", from = 0, to = Inf, units = \"seconds\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read an audio file — readAudio","text":"file File read mime MIME type file read, \"auto\". Supported types \"audio/x-wav\" \"audio/mpeg\" (MP3) Start point file return End point file return units One \"samples\", \"seconds\", \"minutes\", \"hours\". Default \"seconds\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read an audio file — readAudio","text":"Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":null,"dir":"Reference","previous_headings":"","what":"Read output files from BirdNet Analyser — readBirdNet","title":"Read output files from BirdNet Analyser — readBirdNet","text":"Reads single file, directory files, output BirdNet Analyser.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read output files from BirdNet Analyser — readBirdNet","text":"","code":"readBirdNet(file, filename_parsing = \"none\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read output files from BirdNet Analyser — readBirdNet","text":"file Filename directory filename_parsing Allows filename parsing, accepted values one none, audiomoth, timestamp.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read output files from BirdNet Analyser — readBirdNet","text":"data frame.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":null,"dir":"Reference","previous_headings":"","what":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"Seeed Studio Respeaker-6 used described documentation saves eight channel audio file channels 7 8 containing input audio. function reads file saves six channel file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"","code":"readRespeaker6(filename, from = 1, to = Inf, units = \"samples\", header = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"filename file read. start reading wave units. stop reading wave units. units Units given, default \"samples\", can set time intervals \"seconds\". header TRUE, just header information Wave file returned, otherwise (default) whole Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"WaveMC object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":null,"dir":"Reference","previous_headings":"","what":"Reference intensity — referenceIntensity","title":"Reference intensity — referenceIntensity","text":"Provides standard reference intensity level.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Reference intensity — referenceIntensity","text":"","code":"referenceIntensity(unit = \"watt_cm2\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Reference intensity — referenceIntensity","text":"unit Unit return, \"watt_cm2\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Reference intensity — referenceIntensity","text":"","code":"ri <- referenceIntensity()"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":null,"dir":"Reference","previous_headings":"","what":"Reference pressure — referencePressure","title":"Reference pressure — referencePressure","text":"Provides standard reference pressure level.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Reference pressure — referencePressure","text":"","code":"referencePressure(unit = \"Pa\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Reference pressure — referencePressure","text":"unit Unit return, \"Pa\" \"dyne_cm2\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Reference pressure — referencePressure","text":"","code":"rp <- referencePressure() rp <- referencePressure(unit=\"dyne_cm2\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":null,"dir":"Reference","previous_headings":"","what":"Specify a region with a file to analyse — region","title":"Specify a region with a file to analyse — region","text":"Specifies time-bounded region analyse.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Specify a region with a file to analyse — region","text":"","code":"region(unit, from = 0, to = Inf)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Specify a region with a file to analyse — region","text":"unit Unit time (one samples, seconds, minutes, hours) Start time End time","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Specify a region with a file to analyse — region","text":"TimeRegion object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the resonant frequency — resonantFrequency","title":"Calculate the resonant frequency — resonantFrequency","text":"Calculates resonant frequency given inductance capacitance. acoustic case inductance inertia mass, capacitance elasticity (bulk modulus) resistance composed air resistance related quantities. units SI.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the resonant frequency — resonantFrequency","text":"","code":"resonantFrequency(L, C = \"default\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the resonant frequency — resonantFrequency","text":"L Inductance C Capacitance, default IUPAC standard pressure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the resonant frequency — resonantFrequency","text":"isothermal compression, bulk modulus equal pressure. default value C therefore IUPAC standard pressure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the resonant frequency — resonantFrequency","text":"","code":"f <- resonantFrequency(L=1)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":null,"dir":"Reference","previous_headings":"","what":"Sample duration — sDuration","title":"Sample duration — sDuration","text":"Calculates time represented n samples Wave.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sample duration — sDuration","text":"","code":"sDuration(n = 1, wave = NULL, samp.rate = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Sample duration — sDuration","text":"n number samples wave Wave object containing pulses samp.rate Integer sampling rate","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Sample duration — sDuration","text":"numeric value seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Sample duration — sDuration","text":"","code":"sDuration(n=20, samp.rate=44100) #> [1] 0.0004535147 if (FALSE) { sDuration(n=20, wave=sheep)#' }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sheepFrequencyStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Sheep frequencyStats — sheepFrequencyStats","title":"Sheep frequencyStats — sheepFrequencyStats","text":"frequencyStats sheep data file seewave package.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sheepFrequencyStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sheep frequencyStats — sheepFrequencyStats","text":"","code":"sheepFrequencyStats"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sheepFrequencyStats.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Sheep frequencyStats — sheepFrequencyStats","text":"object class list length 3.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the shimmer in a Wave object — shimmer","title":"Calculate the shimmer in a Wave object — shimmer","text":"Jitter measure variability amplitudes within periods waveform. Relative shimmer scaled shimmer analysed waveform.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the shimmer in a Wave object — shimmer","text":"","code":"shimmer(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the shimmer in a Wave object — shimmer","text":"wave Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the shimmer in a Wave object — shimmer","text":"vector zero crossing locations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the shimmer in a Wave object — shimmer","text":"","code":"if (FALSE) { shimmer(sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/slash-PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar division — /,PseudoWave,numeric-method","title":"PseudoWave scalar division — /,PseudoWave,numeric-method","text":"PseudoWave scalar division","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/slash-PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar division — /,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric /(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/slash-PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar division — /,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the speed of sound in a medium — soundSpeed","title":"Calculate the speed of sound in a medium — soundSpeed","text":"Given sufficient parameters (.e. wavelength frequency, bulk modulus density) function calculates speed sound.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the speed of sound in a medium — soundSpeed","text":"","code":"soundSpeed( medium = NULL, method = NULL, wl = NULL, f = NULL, bulkModulus = NULL, density = NULL, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the speed of sound in a medium — soundSpeed","text":"medium Propagation medium (e.g. \"air\"), \"\" return list available media. method Use specific method calculate speed sound (see Details). wl Wavelength f Frequency bulkModulus Bulk modulus density Density ... Additional parameters passed method.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the speed of sound in a medium — soundSpeed","text":"speed sound can calculated using following methods: cramer Uses method described Cramer (1993) . Additional parameters : temp Temperature temp.unit Temperature unit pressure Pressure pressure.unit Pressure unit RH Relative humidity MoleFracCO2 Mole fraction CO2 seewave Delegates calculation speed sound air package seewave (Sueur et al. 2008) . calculation . performed \\(\\text{speed} = 331.4 + 0.6 \\times \\text{temp}\\). Additional parameters : temp Temperature","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Calculate the speed of sound in a medium — soundSpeed","text":"Cramer O (1993). “variation specific heat ratio speed sound air temperature, pressure, humidity, CO2 concentration.” Journal Acoustical Society America, 93(5), 2510-2516. ISSN 0001-4966, doi:10.1121/1.405827 . Sueur J, Aubin T, Simonis C (2008). “Seewave, free modular tool sound analysis synthesis.” Bioacoustics, 18(2), 213--226.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the speed of sound in a medium — soundSpeed","text":"","code":"soundSpeed(medium=\"air\") #> [1] 343 soundSpeed(medium=\"sea water\") #> [1] 1500 soundSpeed(method=\"cramer\", temp=14, pressure=3, RH=10) #> [1] 342.682 soundSpeed(method=\"cramer\", temp=14, temp.unit=\"C\", pressure=3, pressure.unit=\"kPa\", RH=10) #> [1] 342.682 t <- 1:30 s <- lapply(t, \\(x){soundSpeed(method=\"cramer\", temp=x)})"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate and plot statistics on a frequency spectrum — specStats","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"Given list outputs meanspec generates plot mean shown line, either minimum/maximum values one standard deviation shown ribbon.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"","code":"specStats(spectra, stats = \"minMax\", line.col = \"black\", ribbon.col = \"grey70\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"spectra list spectra stats Either minMax sd line.col Colour line ribbon.col Colour ribbon","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"ggplot2 object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":null,"dir":"Reference","previous_headings":"","what":"Short term energy — ste","title":"Short term energy — ste","text":"Computes short term energy Wave.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Short term energy — ste","text":"","code":"ste(wave, method = \"dietrich2004\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Short term energy — ste","text":"wave Wave object method method used calculate short term energy, default \"dietrich2004\" use (Dietrich et al. 2004) . ... arguments pass ste method.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Short term energy — ste","text":"vector short term energy values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Short term energy — ste","text":"Dietrich C, Palm G, Riede K, Schwenker F (2004). “Classification bioacoustic time series based combination global local decisions.” Pattern Recognition, 37(12), 2293--2305.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Short term energy — ste","text":"","code":"if (FALSE) { ste(sheep, method=\"dietrich2004\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sub-Wave-TimeRegion-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","title":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","text":"Allow subsetting Wave object TimeRegion","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sub-Wave-TimeRegion-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","text":"","code":"# S4 method for Wave,TimeRegion [(x, i)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sub-Wave-TimeRegion-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","text":"x Wave Object TimeRegion object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":null,"dir":"Reference","previous_headings":"","what":"Subtract two spectra from seewave — subtractSpectra","title":"Subtract two spectra from seewave — subtractSpectra","text":"function takes two spectra seewave (equivalent) subtracts values. spectra must bins.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Subtract two spectra from seewave — subtractSpectra","text":"","code":"subtractSpectra(s1, s2, coerceNegative = \"no\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Subtract two spectra from seewave — subtractSpectra","text":"s1 First spectrum s2 Second spectrum coerceNegative Sets values zero zero, accepted values \"input\", \"output\" \"\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Subtract two spectra from seewave — subtractSpectra","text":"spectrum s1 - s2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Subtract two spectra from seewave — subtractSpectra","text":"","code":"if (FALSE) { subtractSpectra(spec1, spec2) subtractSpectra(spec1, spec2, coerceNegative=\"both\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate a frequency-swept sine wave — sweptsine","title":"Generate a frequency-swept sine wave — sweptsine","text":"Generates frequency swept sine wave returns Wave object vector.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate a frequency-swept sine wave — sweptsine","text":"","code":"sweptsine( f0 = 100, f1 = 2500, sweep.time = 1, time.unit = \"seconds\", A = 1, samp.rate = 44100, output = \"wave\", ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate a frequency-swept sine wave — sweptsine","text":"f0 Start frequency f1 End frequency sweep.time Duration swept wave time.unit One \"seconds\", \"samples\" Amplitude wave samp.rate Sample rate swept wave output \"wave\" Wave object, \"vector\" ... Additional arguments pass data2Wave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate a frequency-swept sine wave — sweptsine","text":"swept wave object type specified output.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate a frequency-swept sine wave — sweptsine","text":"","code":"sweptsine() #> #> Wave Object #> \tNumber of Samples: 44100 #> \tDuration (seconds): 1 #> \tSamplingrate (Hertz): 44100 #> \tChannels (Mono/Stereo): Mono #> \tPCM (integer format): TRUE #> \tBit (8/16/24/32/64): 16 #>"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":null,"dir":"Reference","previous_headings":"","what":"Samples per time period — tSamples","title":"Samples per time period — tSamples","text":"Calculates number samples given duration wave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Samples per time period — tSamples","text":"","code":"tSamples(time = 1, wave = NULL, samp.rate = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Samples per time period — tSamples","text":"time duration seconds wave Wave object containing pulses samp.rate Integer sampling rate","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Samples per time period — tSamples","text":"Number samples","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Samples per time period — tSamples","text":"","code":"tSamples(10, samp.rate=44100) #> [1] 441000 if (FALSE) { tSamples(10, wave=sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Tag a Wave or WaveMC object — tagWave","title":"Tag a Wave or WaveMC object — tagWave","text":"function takes Wave/WaveMC object (list objects) returns corresponding tagged version (TaggedWave TaggedWaveMC).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Tag a Wave or WaveMC object — tagWave","text":"","code":"tagWave(w, origin = \"user\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Tag a Wave or WaveMC object — tagWave","text":"w Wave WaveMC object (list objects). origin origin object (default \"user\").","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Tag a Wave or WaveMC object — tagWave","text":"TaggedWave TaggedWaveMC object (list objects).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","title":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","text":"PseudoWave scalar manipulation","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric *(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-numeric-PseudoWave-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","title":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","text":"Numeric multiplication PseudoWave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-numeric-PseudoWave-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","text":"","code":"# S4 method for numeric,PseudoWave *(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-numeric-PseudoWave-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":null,"dir":"Reference","previous_headings":"","what":"Typical volumes — typicalVolume","title":"Typical volumes — typicalVolume","text":"Typical volumes everyday things.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Typical volumes — typicalVolume","text":"","code":"typicalVolume(thing = NA_character_)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Typical volumes — typicalVolume","text":"thing Volume thing, missing returns volumes","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Typical volumes — typicalVolume","text":"Typical volume thing dBA, thing parameter data frame volumes","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Typical volumes — typicalVolume","text":"","code":"typicalVolume() #> thing dBA #> 1 steam engine 85 #> 2 printing works 87 #> 3 diesel electric generator 96 #> 4 screw-heading machine 101 #> 5 weaving shed 104 #> 6 sawmill chipper 105 #> 7 metalwork grinder 106 #> 8 wood-planing machine 108 #> 9 metal saw 110 #> 10 rock band 115 #> 11 boiler works 118 #> 12 metal hammering 118 #> 13 jet take-off 120 #> 14 rocket launch 160 typicalVolume(\"rocket launch\") #> [1] 160"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tzRot.html","id":null,"dir":"Reference","previous_headings":"","what":"Converts a timezone offset into a rotation — tzRot","title":"Converts a timezone offset into a rotation — tzRot","text":"Given timezone offset hours returns rotation radians apply values diel plot.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tzRot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Converts a timezone offset into a rotation — tzRot","text":"","code":"tzRot(tz, init = pi)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tzRot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Converts a timezone offset into a rotation — tzRot","text":"tz Timezone numeric init Initial rotation. Defaults pi.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Untag a TaggedWave or TaggedWaveMC object — untagWave","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"function takes TaggedWave/TaggedWaveMC object (list objects) returns corresponding Wave/WaveMC object (list objects).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"","code":"untagWave(w)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"w TaggedWave TaggedWaveMC object (list objects).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"Wave WaveMC object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"","code":"if (FALSE) { w <- noise(\"white\") tw <- tagWave(w) w2 <- untagWave(tw) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":null,"dir":"Reference","previous_headings":"","what":"Upsample a wave — upsample","title":"Upsample a wave — upsample","text":"Used upsample Wave object. upsampled sample rate must natural multiple current sample rate.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Upsample a wave — upsample","text":"","code":"upsample(wave, upsample.rate, method = \"basic\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Upsample a wave — upsample","text":"wave Wave object upsample. upsample.rate sample rate upsample . method \"basic\" linear, function interpolate NAs vector","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Upsample a wave — upsample","text":"resampled Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Upsample a wave — upsample","text":"","code":"wave <- tuneR::sine(4000, samp.rate=44100) wave2 <- upsample(wave, 88200)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/validateIsWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Check an object is a Wave object — validateIsWave","title":"Check an object is a Wave object — validateIsWave","text":"Helper function test input Wave object. create error .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/validateIsWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check an object is a Wave object — validateIsWave","text":"","code":"validateIsWave(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/validateIsWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check an object is a Wave object — validateIsWave","text":"wave Object test","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":null,"dir":"Reference","previous_headings":"","what":"Windowing Function for Wave Objects — windowing","title":"Windowing Function for Wave Objects — windowing","text":"Separates Wave object windows defined length runs function window section. Windows may overlap, function can make use 'parallel' package multi-core processing. also show progress bar 'pbapply' package installed.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Windowing Function for Wave Objects — windowing","text":"","code":"windowing( wave, window.length, FUN, window.overlap = 0, bind.wave = TRUE, complete.windows = TRUE, cluster = NULL, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Windowing Function for Wave Objects — windowing","text":"wave Wave object filename. Using filenames may save loading entire large file memory. window.length length analysis window (samples). FUN FUN applied windows. window.overlap overlap successive windows (samples), negative value result gap windows. bind.wave TRUE FUN returns wave objects, combined single object complete.windows TRUE (default) final window processed unless length equal window.length. cluster cluster form 'parallel' package multi-core computation. ... Additional parameters FUN","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Windowing Function for Wave Objects — windowing","text":"","code":"if (FALSE) { windowing(wave, window.length=1000, FUN=duration, window.overlap=0, bind.wave=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Write an Audacity label file — writeAudacityLabels","title":"Write an Audacity label file — writeAudacityLabels","text":"Writes list Annotation objects Audacity label file. Internally uses write.audacity() function seewave package (Sueur et al. 2008) .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Write an Audacity label file — writeAudacityLabels","text":"","code":"writeAudacityLabels(annotations, file)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Write an Audacity label file — writeAudacityLabels","text":"annotations list Annotation objects. file Path Audacity label file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Write an Audacity label file — writeAudacityLabels","text":"Sueur J, Aubin T, Simonis C (2008). “Seewave, free modular tool sound analysis synthesis.” Bioacoustics, 18(2), 213--226.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyFraction.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the fraction of a year given by a value — yearlyFraction","title":"Calculate the fraction of a year given by a value — yearlyFraction","text":"Given object can coerced POSIXlt, return fraction year represented object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyFraction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the fraction of a year given by a value — yearlyFraction","text":"","code":"yearlyFraction(t, year = 2022, input = \"POSIX\", unit = \"radians\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyFraction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the fraction of a year given by a value — yearlyFraction","text":"t Object converted fraction year Year calculate fractions (allows leap years) input One POSIXlt (default) unit set radians outputs position around circle. set fraction outputs raw fraction.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate labels for a yearly plot — yearlyLabels","title":"Generate labels for a yearly plot — yearlyLabels","text":"Generates monthly labels yearlyPlot()..","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate labels for a yearly plot — yearlyLabels","text":"","code":"yearlyLabels()"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPlot.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a yearly plot — yearlyPlot","title":"Create a yearly plot — yearlyPlot","text":"ToDO......","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPlot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a yearly plot — yearlyPlot","text":"","code":"yearlyPlot( year = 2022, lat, lon, limits = c(0, 2), plot = NULL, method = \"plotrix\", legend = F )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPlot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a yearly plot — yearlyPlot","text":"year Year plot (allows leap years). lat Numeric latitude. lon Numeric longitude. limits Plotting limits daylight regions, default c(1,2) plot Character vector components plot method Plotting library use legend Whether show legend","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate positions of labels for a yearly plot — yearlyPositions","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"Generates positions monthly labels dielPlot() radians. positions can either start month, middle month.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"","code":"yearlyPositions(year = 2022, format = \"months\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"year Year calculate format One months, mid-months, days","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"function allows leap years year parameter provided.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":null,"dir":"Reference","previous_headings":"","what":"Zero spectrum — zeroSpectrum","title":"Zero spectrum — zeroSpectrum","text":"function takes spectrum seewave creates new zero-valued spectrum structure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Zero spectrum — zeroSpectrum","text":"","code":"zeroSpectrum(s1)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Zero spectrum — zeroSpectrum","text":"s1 Spectrum emulate structure .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Zero spectrum — zeroSpectrum","text":"zero-valued spectrum.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Zero spectrum — zeroSpectrum","text":"","code":"if (FALSE) { zeroSpectrum(spec) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify zero crossings in a Wave object — zerocross","title":"Identify zero crossings in a Wave object — zerocross","text":"Returns vector position (samples) zero crossings Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify zero crossings in a Wave object — zerocross","text":"","code":"zerocross(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify zero crossings in a Wave object — zerocross","text":"wave Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify zero crossings in a Wave object — zerocross","text":"vector zero crossing locations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify zero crossings in a Wave object — zerocross","text":"","code":"if (FALSE) { zerocross(sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"sonicscrewdriver-004","dir":"Changelog","previous_headings":"","what":"sonicscrewdriver 0.0.4","title":"sonicscrewdriver 0.0.4","text":"CRAN release: 2021-05-02 support reading AudioMoth configuration files support reading AudioMoth metadata wave files audioRead function convert audio file types Wave object parseFilename now accepts POSIX timestamp format provides typical volumes (decibels)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"sonicscrewdriver-003","dir":"Changelog","previous_headings":"","what":"sonicscrewdriver 0.0.3","title":"sonicscrewdriver 0.0.3","text":"CRAN release: 2020-11-15 Jitter shimmer functions added.","code":""}] +[{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"interest fostering open welcoming environment, contributors maintainers pledge making participation project community harassment-free experience everyone, regardless age, body size, disability, ethnicity, gender identity expression, level experience, nationality, personal appearance, race, religion, sexual identity orientation.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes creating positive environment include: Using welcoming inclusive language respectful differing viewpoints experiences Gracefully accepting constructive criticism Focusing best community Showing empathy towards community members Examples unacceptable behavior participants include: use sexualized language imagery unwelcome sexual attention advances Trolling, insulting/derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical electronic address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"our-responsibilities","dir":"","previous_headings":"","what":"Our Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Project maintainers responsible clarifying standards acceptable behavior expected take appropriate fair corrective action response instances unacceptable behavior. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, ban temporarily permanently contributor behaviors deem inappropriate, threatening, offensive, harmful.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within project spaces public spaces individual representing project community. Examples representing project community include using official project e-mail address, posting via official social media account, acting appointed representative online offline event. Representation project may defined clarified project maintainers.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported contacting project team edwbaker@gmail.com. project team review investigate complaints, respond way deems appropriate circumstances. project team obligated maintain confidentiality regard reporter incident. details specific enforcement policies may posted separately. Project maintainers follow enforce Code Conduct good faith may face temporary permanent repercussions determined members project’s leadership.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/CODE-OF-CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 1.4, available http://contributor-covenant.org/version/1/4","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/audioblast.html","id":"what-is-audioblast","dir":"Articles","previous_headings":"","what":"What is audioblast?","title":"Using audioBlast with R","text":"Audioblast discovery tool bioacoustic ecoacoustic recordings. can use search recordings (e.g. species, location, date), annotations recordings, analysis results traits. Audioblast currently hosted Natural History Museum London. conceived Ed Baker University York part Leverhulme Trust funded Automated Acoustic Observatories project.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/audioblast.html","id":"accessing-audioblast","dir":"Articles","previous_headings":"","what":"Accessing audioblast","title":"Using audioBlast with R","text":"audioblast() function SonicScrewdriveR wrapper allowing full access Audioblast API. also possible download many recordings audioblast using audioblastDownload().","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Augmenting data common practice machine learning. process creating new data existing data (e.g. adding noise). done increase size training data make model robust. article show augment audio data R using sonicscrewdriver package. generateX() functions sonicscrewdriver designed operate Wave-like objects (Wave WaveMC tuneR Tagged equivalents) list Wave-like objects. Similarly, functions return list Wave-like objects. means can chain functions together create complex data augmentation pipelines.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"types-of-augmentation","dir":"Articles","previous_headings":"","what":"Types of augmentation","title":"Augmenting audio data in R with SonicScrewdriveR","text":"order demonstrate data augmentation process, use sonicscrewdriver package generate Dirac pulse.","code":"# Generate a Dirac pulse p <- pulse(\"dirac\") # Plot the pulse seewave::oscillo(p)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"noise-augmentation","dir":"Articles","previous_headings":"Types of augmentation","what":"Noise augmentation","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Noise augmentation common technique used increase size training data. process adding noise original data. sonicscrewdriver package provides generateNoise() function add noise audio data. example add two different amounts white noise Dirac pulse.","code":"augmented <- c( generateNoise(p, \"white\", noise.ratio=0.1), generateNoise(p, \"white\", noise.ratio=0.3) ) for (i in 1:length(augmented)) { seewave::oscillo(augmented[[i]]) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"time-shifting-rotationpadding","dir":"Articles","previous_headings":"Types of augmentation","what":"Time shifting (rotation/padding)","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Time shifting process shifting audio data certain number samples. sonicscrewdriver package provides generateTimeShift() function rotate audio data, either rotating audio data within file, padding file silence. demonstrate time shifting generate sum sine wave Dirac pulse. Time shifting inserting silence. Alternatively, can rotate audio data.","code":"p1 <- tuneR::sine(440, duration=44100*3) p2 <- pulse(\"dirac\", duration=44100*3) p <- 0.25*p1 + tuneR::normalize(p2) seewave::oscillo(p) # Rotate the audio data by one second rotated <- generateTimeShift(p, amount=1) seewave::oscillo(rotated[[1]]) # Rotate the audio data by one second rotated <- generateTimeShift(p, type=\"rotate\", amount=1) seewave::oscillo(rotated[[1]])"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"time-masking","dir":"Articles","previous_headings":"","what":"Time-masking","title":"Augmenting audio data in R with SonicScrewdriveR","text":"Time-masking process zeroing section audio data. sonicscrewdriver package provides generateTimeMask() function mask section audio data. demonstrate time masking first generate sine wave. Random masking sets random section audio data zero. example use duty cycle 0.95, means 5% audio data set zero. also possible introduce masking using square wave. n.periods parameter controls number periods square wave, dutyCycle parameter controls duty cycle square wave.","code":"# Generate a sine wave w <- tuneR::sine(1000, duration=100) # Plot the left audio channel plot(w@left) # Mask the audio data masked <- generateTimeMask(w, method=\"random\", dutyCycle=0.95) plot(masked@left) # Mask the audio data masked <- generateTimeMask(w, method=\"squarewave\", dutyCycle=0.5, n.periods=5) plot(masked@left)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/augment-audio-data.html","id":"combining-augmentations","dir":"Articles","previous_headings":"","what":"Combining augmentations","title":"Augmenting audio data in R with SonicScrewdriveR","text":"sonicscrewdriver package allows chain together multiple augmentations create complex data augmentation pipelines. example, can add noise audio data rotate audio data. possible use anonymous functions add multiple augmentations single step. can effectively used generate large amounts augmented data. code generates three different noise augmented versions input, two different time-shifted versions , yielding six augmented versions. approach can used list initial Wave-like objects.","code":"# Load some test audio data f <- system.file(\"extdata\", \"AUDIOMOTH.flac\", package=\"sonicscrewdriver\") w <- readAudio(f) # Add noise to the audio data and then rotate the audio data using pipes augmented <- w |> generateNoise(\"white\", noise.ratio=0.1) |> generateTimeShift(amount=1) # Create list of data and augmentations data <- c(w, augmented) # Load some test audio data f <- system.file(\"extdata\", \"AUDIOMOTH.flac\", package=\"sonicscrewdriver\") w <- readAudio(f) # Add noise to the audio data and then rotate the audio data using pipes augmented <- w |> {\\(x) c(generateNoise(x, \"white\", noise.ratio=0.1), generateNoise(x, \"white\", noise.ratio=0.3), generateNoise(x, \"white\", noise.ratio=0.5)) }() |> {\\(x) c(generateTimeShift(x, amount=1), generateTimeShift(x, amount=2)) }() # Create list of data and augmentations data <- c(w, augmented) # Load some test audio data f <- system.file(\"extdata\", \"AUDIOMOTH.flac\", package=\"sonicscrewdriver\") w <- list( readAudio(f), readAudio(f), readAudio(f) ) # Add noise to the audio data and then rotate the audio data using pipes and anonymous functions augmented <- w |> {\\(x) c(generateNoise(x, \"white\", noise.ratio=0.1), generateNoise(x, \"white\", noise.ratio=0.3), generateNoise(x, \"white\", noise.ratio=0.5)) }() |> {\\(x) c(generateTimeShift(x, amount=1), generateTimeShift(x, amount=2)) }() # Create list of data and augmentations data <- c(w, augmented)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/converting-code.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Converting code to work with SonicScrewdriveR","text":"SonicScrewdriveR introduces several tools working audio data, TaggedWave TaggedWaveMC formats. Inside SonicScrewdriveR Tagged non-Tagged versions Wave-like objects can used interchangeably, however necessarily true functions packages. guide aimed end users package developers want convert code work SonicScrewdriveR.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/converting-code.html","id":"taggedwave-and-taggedwavemc","dir":"Articles","previous_headings":"Introduction","what":"TaggedWave and TaggedWaveMC","title":"Converting code to work with SonicScrewdriveR","text":"try use function expects Wave object TaggedWave object, get error. end user can use untagWave function convert TaggedWave object Wave object. untagWave function can also used ‘untag’ TaggedWaveMC object. fix function package can make use inherits() rather alternative methods. TaggedWave inherits Wave can treated like Wave code. technique can used TaggedWaveMC objects inherits(w, \"WaveMC\").","code":"# Generate a `Wave` and `TaggedWave` sine w <- tuneR::sine(440) tw <- tagWave(w) # This will fail seewave::oscillo(tw) #> Error in seewave::oscillo(tw): argument \"f\" is missing, with no default # This will work seewave::oscillo(untagWave(tw)) # Methods that fail is(w, \"Wave\") class(w) == \"Wave\" # Method that works inherits(w, \"Wave\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/converting-code.html","id":"adding-a-process-to-a-tagged-wave-like-object","dir":"Articles","previous_headings":"Introduction > TaggedWave and TaggedWaveMC","what":"Adding a process to a Tagged Wave-like object","title":"Converting code to work with SonicScrewdriveR","text":"want add process TaggedWave object can use addProcess method. can either called end user, functions aware Tagged versions.","code":"# End user using non-Tagged aware function seewave::oscillo(untag(tw)) addProcess(tw, \"seewave::oscillo\") # Inside a Tagged aware function addProcess( tw, process = \"mypkg::functionToCountChannels\", output = list(channels = 2) )"},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"reading-audio-files","dir":"Articles","previous_headings":"Managing audio in R with SonicScrewdriveR","what":"Reading audio files","title":"Managing audio in R","text":"Several functions available read audio files R, including readWave() readMP3() functions tuneR package, well tools package av. SonicScrewdriveR simplifies reading audio files providing single wrapper functions, read_audio(), can read audio files variety formats, including WAV, MP3, FLAC.","code":"filename <- system.file(\"extdata\", \"AUDIOMOTH.WAV\", package=\"sonicscrewdriver\") w <- readAudio(filename)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"performing-analyses-on-channels","dir":"Articles","previous_headings":"Managing audio in R with SonicScrewdriveR","what":"Performing analyses on channels","title":"Managing audio in R","text":"existing functions operate single channel time. may cause unnecessarily complex workflows bulk analysing files different numbers channels. allChannels() function applies function channel returns list analyses. technique allows analysis performed channel, without reference number channels audio file. Optionally, cluster can specified process channels separate processor cores increase analysis speed.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"windowing","dir":"Articles","previous_headings":"Managing audio in R with SonicScrewdriveR","what":"Windowing","title":"Managing audio in R","text":"often desirable process long audio file chunks. windowing() function can used split audio file overlapping non-overlapping windows. function may particularly useful processing long Wave files memory-efficient manner. Optionally, cluster can specified process windows separate processor cores increase processing speed.","code":""},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/manage_audio.html","id":"taggedwave-workflow","dir":"Articles","previous_headings":"","what":"TaggedWave workflow","title":"Managing audio in R","text":"techniques can applied generic Wave WaveMC objects tuneR package. TaggedWave class extends Wave class tuneR package can include extended metadata results analyses. allows storage additional information audio file, location time recording, results analyses. tagWave() function can used tag Wave WaveMC object additional metadata. addition, combined new classes WaveAugment, WaveFilter, WaveAnalyse possible create self-documenting pipeline audio processing analysis (also compatible R pipe).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Interacting with other tools","text":"sonicscrewdriver package provides number functions interacting audio tools software. vignette provides overview functions available interacting tools.","code":""},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audacity","dir":"Articles","previous_headings":"Interfaces with other tools","what":"Audacity","title":"Interacting with other tools","text":"Label files exported Audacity can read R using readAudacityLabels() function. function takes path label file returns list Annotation objects data frame start end times label label text. writeAudacityLabels() function can used write list Annotation objects Audacity label file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audioblast","dir":"Articles","previous_headings":"Interfaces with other tools","what":"AudioBlast","title":"Interacting with other tools","text":"audioBlast API can accessed using audioBlast() function. Files can downloaded API using audioBlastDownload() function.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audiomoth","dir":"Articles","previous_headings":"Interfaces with other tools","what":"AudioMoth","title":"Interacting with other tools","text":"AudioMoth configuration files wave files can read R using audiomothConfig() audiomothWave() functions, respectively. audiomothConfig() function takes path configuration file returns data frame configuration settings. audiomothWave() function takes path wave file returns list extracted parameters.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"birdnet-analyzer","dir":"Articles","previous_headings":"Interfaces with other tools","what":"BirdNET Analyzer","title":"Interacting with other tools","text":"BirdNET Analyzer deep learning model automatic detection bird sounds. birdNetInstall() function can used install ssd_birdnet environment required use birdNetAnalyse() function SonicScrewdriver. birdNetAnalyse() function takes list sound files analyses using BirdNET-Analyzer. function either returns data frame results analysis list Annotation objects.","code":"# Install the BirdNET environment birdNetInstall() # Analyse sound files using BirdNET-Analyzer f <- system.file(\"extdata\", \"AUDIOMOTH.WAV\", package=\"sonicscrewdriver\") birdNetAnalyse(f, lat=51.5, lon=0.1, date=as.Date(\"2021-01-01\"))"},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"audio-file-with-annotations-from-audioblast-to-audacity","dir":"Articles","previous_headings":"Exemplar applications","what":"Audio file with annotations from audioBlast to Audacity","title":"Interacting with other tools","text":"audio file interest (id: 10754) recording Mole Cricket Gryllotalpa vineae BioAcoustica repository. Recordings annotations BioAcoustica made available audioBlast API. First download audio file annotations audioBlast. downloaded audio file mole_cricket directory. also saved metadata.csv file includes information audio file retrieved audioBlast. Next, download annotations file audioBlast. downloaded annotations audioBlast converted list Annotation objects. annotation data converted Annotation objects can easily manipulated number useful formats. case, convert Annotation objects Audacity label file. finished, can tidy workspace removing mole_cricket directory.","code":"# Find the file on audioblast data <- audioblast(\"data\", \"recordings\", source=\"bio.acousti.ca\", id=10754) # Download the file to the mole_cricket directory audioblastDownload(data, dir=\"mole_cricket/\") # Fetch annotations from audioBlast as `Annotation` objects a <- audioblast(\"data\", \"annomate\", source=\"bio.acousti.ca\", id=10754, output=\"Annotations\") # Convert the annotations to an Audacity label file writeAudacityLabels(a, \"mole_cricket/annotations.txt\") unlink(\"mole_cricket\", recursive=TRUE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/other-apps.html","id":"birdnet-analyzer-to-audacity-label-file","dir":"Articles","previous_headings":"","what":"BirdNET Analyzer to Audacity label file","title":"Interacting with other tools","text":"birdNetAnalyse() function can used analyse sound files using BirdNET-Analyzer. Get output BirdNET Analyzer list Annotation objects. Convert Annotation objects Audacity label file. Cleaning workspace.","code":"# Analyse sound files using BirdNET-Analyzer f <- system.file(\"extdata\", \"AUDIOMOTH.WAV\", package=\"sonicscrewdriver\") annotations <- birdNetAnalyse(f, output=\"Annotation\") # Convert the annotations to an Audacity label file writeAudacityLabels(annotations, \"birdnet_annotations.txt\") unlink(\"birdnet_annotations.txt\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/articles/sonicscrewdriver.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"SonicScrewdriveR","text":"SonicScrewdriveR set tools various tasks faced bioacoustics researchers (users acoustics). tools relate management, processing, analysis, visualisation audio recordings.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Ed Baker. Author, maintainer. Quentin Geissman. Contributor.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Baker, E. (2021) SonicScrewdriveR. https://cran.r-project.org/package=sonicscrewdriver.","code":"@Manual{, title = {SonicScrewdriveR}, author = {Ed Baker}, year = {2021}, url = {https://cran.r-project.org/package=sonicscrewdriver}, }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"sonicscrewdriver","dir":"","previous_headings":"","what":"Bioacoustic Analysis and Publication Tools","title":"Bioacoustic Analysis and Publication Tools","text":"package provides tools manipulating sound files analysis visualisation. SonicScrewdriveR can: Easily read audio files many types. Work seamlessly multi-channel audio. Read/write/convert audio metadata formats used tools. Apply filters audio. Augment audio data machine learning. Visualise audio data. Create self-documenting analysis pipelines. need SonicScrewdriveR arose initially Automated Acoustic Observatories project University York, later development audioBlast. projects required ability read manipulate audio files variety formats visualise analyse data contained within . package designed flexible possible able handle audio file formats differing encoding, channel numbers, sample rates. one sense, can seen wrapper around existing packages provide unified interface, also offers many new functions visualisations.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Bioacoustic Analysis and Publication Tools","text":"NB: current development version well ahead version available CRAN due pace current research work part Urban Nature Project Natural History Museum.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"cran","dir":"","previous_headings":"Installation","what":"CRAN","title":"Bioacoustic Analysis and Publication Tools","text":"","code":"install.packages(\"sonicscrewdriver\") library(sonicscrewdriver)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"latest-master","dir":"","previous_headings":"Installation","what":"Latest master","title":"Bioacoustic Analysis and Publication Tools","text":"","code":"install.packages(\"devtools\") devtools::install_github(\"edwbaker/SonicScrewdriveR\") library(sonicscrewdriver)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Bioacoustic Analysis and Publication Tools","text":"Usage package described following vignettes: Managing audio R SonicScrewdriveR covers basics reading audio files readAudio(), performing analyses audio channels using allChannels() performing analysis sections audio windowing(). Augmenting audio R SonicScrewdriveR covers audio data augmentation. Using apps tools R using SonicScrewdriveR lists functions available interface apps tools audioBlast, Audacity AudioMoth. also gives exemplar applications using SonicScrewdriveR move data different tools platforms. Using SonicScrewriveR audioBlast covers use audioblast() find recordings, annotations, traits analyses. audioblastDownload() can used download files find using audioBlast. book Visualisation bioacoustics ecoacoustics R provides details various visualisation tools available packages. Converting code work SonicScrewdriveR provides guidance package developers end users want convert code work SonicScrewdriveR types TaggedWave TaggedWaveMC.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"contributing","dir":"","previous_headings":"","what":"Contributing","title":"Bioacoustic Analysis and Publication Tools","text":"welcome contributions anyone like help improve package. want talk us submitting pull request feel free email Ed edward.baker@nhm.ac.uk. Please note ‘SonicScrewdriveR’ project released Contributor Code Conduct.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"issue-reporting","dir":"","previous_headings":"Contributing","what":"Issue reporting","title":"Bioacoustic Analysis and Publication Tools","text":"find bug, feature request, please report issue tracker many details possible. package fails give useful error message, bug. package accepts invalid input without warning, bug. documentation unclear omits important information, bug. unsure something bug, please report .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/index.html","id":"credits","dir":"","previous_headings":"","what":"Credits","title":"Bioacoustic Analysis and Publication Tools","text":"Initial development SonicScrewdriveR done Ed Baker supported Leverhulme Trust funded Automated Acoustic Observatories project University York, later developed support analysis functionality audioBlast. SonicScrewdriveR currently developed Natural History Museum, London.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/Annotation-class.html","id":null,"dir":"Reference","previous_headings":"","what":"A S4 class for annotations — Annotation-class","title":"A S4 class for annotations — Annotation-class","text":"Annotation class used store annotations Wave-like objects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/Annotation-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"A S4 class for annotations — Annotation-class","text":"file File annotated. metadata list storing metadata. start Start time annotation. end End time annotation. low Low frequency annotation. high High frequency annotation. source Source annotation. type Type annotation. value Value annotation.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-class.html","id":null,"dir":"Reference","previous_headings":"","what":"An S4 class to represent a PseudoWave object that is converted to a\nWave object when operated on. — PseudoWave-class","title":"An S4 class to represent a PseudoWave object that is converted to a\nWave object when operated on. — PseudoWave-class","text":"S4 class represent PseudoWave object converted Wave object operated .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"An S4 class to represent a PseudoWave object that is converted to a\nWave object when operated on. — PseudoWave-class","text":"type Type PseudoWave (e.g. \"noise\") subtype Subtype PseudoWave (e.g. \"white\" type \"noise\") scale Wave channels multiplied value offset value added Wave channels seed Random seed reproducible output, NA seed scale Logical. Whether use random seed value params List additional parameters pass generating function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","title":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","text":"PseudoWave scalar subtraction","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric -(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar subtraction — -,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/STP.html","id":null,"dir":"Reference","previous_headings":"","what":"STP: Standard Temperature and Pressure — STP","title":"STP: Standard Temperature and Pressure — STP","text":"Dataset compiled various sources differing values STP.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/STP.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"STP: Standard Temperature and Pressure — STP","text":"","code":"STP"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/STP.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"STP: Standard Temperature and Pressure — STP","text":"object class list length 2.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWave-class.html","id":null,"dir":"Reference","previous_headings":"","what":"A S4 class for tagged waves — TaggedWave-class","title":"A S4 class for tagged waves — TaggedWave-class","text":"TaggedWave class extended Wave class tuneR package can include extended metadata results analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWave-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"A S4 class for tagged waves — TaggedWave-class","text":"metadata list storing metdata. analyses list storing analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWaveMC-class.html","id":null,"dir":"Reference","previous_headings":"","what":"A S4 class for tagged multi-channel waves — TaggedWaveMC-class","title":"A S4 class for tagged multi-channel waves — TaggedWaveMC-class","text":"TaggedWaveMC class extended WaveMC class tuneR package can include extended metadata results analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TaggedWaveMC-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"A S4 class for tagged multi-channel waves — TaggedWaveMC-class","text":"metadata list storing metdata. analyses list storing analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TimeRegion-class.html","id":null,"dir":"Reference","previous_headings":"","what":"An S4 class to represent a TimeRegion within a Wave object. — TimeRegion-class","title":"An S4 class to represent a TimeRegion within a Wave object. — TimeRegion-class","text":"S4 class represent TimeRegion within Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/TimeRegion-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"An S4 class to represent a TimeRegion within a Wave object. — TimeRegion-class","text":"Start position End position unit Time unit (one seconds, minutes, hours)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/WaveFilter-class.html","id":null,"dir":"Reference","previous_headings":"","what":"WaveFilter object for audio filters — WaveFilter-class","title":"WaveFilter object for audio filters — WaveFilter-class","text":"WaveFilter object object containing information necessary filterWave() function apply filter Wave TaggedWave object. designed allow pipe operator (either magrittr base R) used apply filters Wave pipeline. used TaggedWave object function adds information processing slot documenting action.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/WaveFilter-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"WaveFilter object for audio filters — WaveFilter-class","text":"description Description filter. func Name function. params List additional parameters pass function.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_diel_traits.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","title":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","text":"function takes traits dataset retrieved audioblast converts values \"day\" numeric time day based date location.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_diel_traits.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","text":"","code":"ab_diel_traits(traits, date, lat, lon, overwrite = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_diel_traits.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert text times of day in audioblast traits to numeric values — ab_diel_traits","text":"traits Traits dataset retrieved using audioblast(). date date used conversion time. lat Latitude location. lon Longitude location. overwrite TRUE function overwrite existing min/max.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":null,"dir":"Reference","previous_headings":"","what":"Nearest start time — ab_seqss_nearestStart","title":"Nearest start time — ab_seqss_nearestStart","text":"Search audioBLAST! recordings start time closest specified date/time match specified criteria","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Nearest start time — ab_seqss_nearestStart","text":"","code":"ab_seqss_nearestStart(...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Nearest start time — ab_seqss_nearestStart","text":"... Fields values filter .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Nearest start time — ab_seqss_nearestStart","text":"data frame matching annotations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ab_seqss_nearestStart.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Nearest start time — ab_seqss_nearestStart","text":"","code":"if (FALSE) { ab_seqss_nearestStart(date=\"2020-05-15\",time=\"1500\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":null,"dir":"Reference","previous_headings":"","what":"Add a process to a Tagged Wave or WaveMC object — addProcess","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"function takes TaggedWave TaggedWaveMC object adds process processing slot. used keep record processes applied object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"","code":"addProcess(object, process, output = NULL, duration = NULL) # S4 method for TaggedWave addProcess(object, process, output = NULL, duration = NULL) # S4 method for TaggedWaveMC addProcess(object, process, output = NULL, duration = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"object object. process description process. output output process. duration duration process seconds.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addProcess-methods.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add a process to a Tagged Wave or WaveMC object — addProcess","text":"object process added.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":null,"dir":"Reference","previous_headings":"","what":"Add two spectra from seewave — addSpectra","title":"Add two spectra from seewave — addSpectra","text":"function takes two spectra seewave (equivalent) adds values. spectra must bins.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add two spectra from seewave — addSpectra","text":"","code":"addSpectra(s1, s2, coerceNegative = \"no\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add two spectra from seewave — addSpectra","text":"s1 First spectrum s2 Second spectrum coerceNegative Sets values zero zero, accepted values \"input\", \"output\" \"\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add two spectra from seewave — addSpectra","text":"spectrum s1+s2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/addSpectra.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add two spectra from seewave — addSpectra","text":"","code":"if (FALSE) { addSpectra(spec1, spec2) addSpectra(spec1, spec2, coerceNegative=\"input\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":null,"dir":"Reference","previous_headings":"","what":"Apply a function to all channels of a Wave or WaveMC object — allChannels","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"functions (e.g. ffilter seewave) operate single channel time. function applies function channel returns list analyses.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"","code":"allChannels( w, FUN, cl = NULL, channel.param = \"channel\", output.FUN = NULL, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"w Wave WaveMC object FUN Function apply wave. cl Optionally cluster parallel calculation. channel.param Name channel parameter FUN. Can NULL. output.FUN Optional. Function processes output FUN. \"channels_se\" function provides standard functionality soundecology package. ... Optional. Additional parameters pass FUN.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/allChannels.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Apply a function to all channels of a Wave or WaveMC object — allChannels","text":"list outputs.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a new Annotation object — annotation","title":"Create a new Annotation object — annotation","text":"Create new Annotation object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a new Annotation object — annotation","text":"","code":"annotation( file = NA_character_, metadata = list(), start = 0, end = Inf, low = 0, high = Inf, source = NA_character_, type = NA_character_, value = NA_character_ )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a new Annotation object — annotation","text":"file File annotated. metadata list metadata. start Start time annotation (seconds). end End time annotation (seconds). low Low frequency annotation (Hz). high High frequency annotation (Hz). source Source annotation. type Type annotation. value Value annotation.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/annotation.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a new Annotation object — annotation","text":"Annotation object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audio_filesize.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculated size of raw audio files — audio_filesize","title":"Calculated size of raw audio files — audio_filesize","text":"Calculates raw size audio date set sample rate, bit depth duration.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audio_filesize.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculated size of raw audio files — audio_filesize","text":"","code":"audio_filesize( samp.rate = 44100, bit.depth = 16, channels = 1, duration = 1, duration.unit = \"seconds\", output.unit = \"bits\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audio_filesize.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculated size of raw audio files — audio_filesize","text":"samp.rate Sample rate bit.depth Bit depth channels number audio channels duration Duration recording duration.unit One seconds, minutes, hours, days output.unit \"bits\" \"bytes\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":null,"dir":"Reference","previous_headings":"","what":"Get data or analyses from audioBlast — audioblast","title":"Get data or analyses from audioBlast — audioblast","text":"Search data analyses audioBlast.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get data or analyses from audioBlast — audioblast","text":"","code":"audioblast( type, name, endpoint = NULL, check = TRUE, max_pages = NULL, page = 1, quiet = FALSE, output = \"data.frame\", ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get data or analyses from audioBlast — audioblast","text":"type One data, analysis, standalone. name Name data analysis source. endpoint Optionally specify endpoint audioBlast module. check Logical. Performs sanity check input sending audioBLAST. max_pages Maximum number data pages return, default set NULL returns pages. page First page results request, defaults 1. quiet true print progress. Silence virtue. output default data.frame. \"Annotations\" return list Annotation objects. ... Fields values filter . field defined audioBLAST.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get data or analyses from audioBlast — audioblast","text":"data frame","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblast.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get data or analyses from audioBlast — audioblast","text":"","code":"if (FALSE) { audioblast(\"data\", \"recordings\", taxon=\"Gryllotalpa vineae\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblastDownload.html","id":null,"dir":"Reference","previous_headings":"","what":"Download audio files from audioBlast — audioblastDownload","title":"Download audio files from audioBlast — audioblastDownload","text":"Downloads audio files associated search using audioBlast() function.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblastDownload.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Download audio files from audioBlast — audioblastDownload","text":"","code":"audioblastDownload( d, metadata = TRUE, skip.existing = TRUE, dir = \".\", quiet = FALSE )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audioblastDownload.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Download audio files from audioBlast — audioblastDownload","text":"d Data returned search using audioBlast(). metadata true saves data d csv file. skip.existing true overwrite existing files. dir Directory save files . quiet true print progress.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":null,"dir":"Reference","previous_headings":"","what":"Read AudioMoth configuration file — audiomothConfig","title":"Read AudioMoth configuration file — audiomothConfig","text":"Reads parses AudioMoth configuration file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read AudioMoth configuration file — audiomothConfig","text":"","code":"audiomothConfig(filename)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read AudioMoth configuration file — audiomothConfig","text":"filename Path configuration file read","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read AudioMoth configuration file — audiomothConfig","text":"data frame matching annotations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothConfig.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read AudioMoth configuration file — audiomothConfig","text":"","code":"if (FALSE) { audiomothConfig(\"./CONFIG.TXT\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Read AudioMoth metadata from a wave file — audiomothWave","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"Reads parses metadata stored wave files produced AudioMoth devices.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"","code":"audiomothWave(filename)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"filename Path wave file read","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"list extracted parameters","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/audiomothWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read AudioMoth metadata from a wave file — audiomothWave","text":"","code":"if (FALSE) { audiomothWave(\"./FILENAME.WAV\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":null,"dir":"Reference","previous_headings":"","what":"Automatic Band Pass Filter — autoBandPass","title":"Automatic Band Pass Filter — autoBandPass","text":"Creates automatic bandpass filter based strongest frequency. allowed bandwidth can integer multiple bandwidth either -3dB -10dB.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Automatic Band Pass Filter — autoBandPass","text":"","code":"autoBandPass(wave, bw = \"-3dB\", n.bw = 1, lowcut = 1000)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Automatic Band Pass Filter — autoBandPass","text":"wave Wave object bw Either -3dB -10dB. calculated frequencyStats n.bw number bandwidths either side centre centre keep lowcut High-pass filtering applied frequency calculating centre frequency bandwidth","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Automatic Band Pass Filter — autoBandPass","text":"band-pass filtered Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/autoBandPass.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Automatic Band Pass Filter — autoBandPass","text":"","code":"if (FALSE) { autoBandPass(sheep) autoBandPass(sheep, bw=\"-3dB\", n.bw=1, lowcut=1000) autoBandPass(sheep, bw=\"-10dB\", n.bw=2, lowcut=0) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple bandpass filter — bandpass","title":"Simple bandpass filter — bandpass","text":"Creates band pass WaveFilter values specified Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple bandpass filter — bandpass","text":"","code":"bandpass(from, to, ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple bandpass filter — bandpass","text":"Bottom bandpass frequency (Hz). Top bandpass frequency (Hz). ... arguments pass ffilter.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple bandpass filter — bandpass","text":"WaveFilter object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Simple bandpass filter — bandpass","text":"simple wrapper function seewave ffilter function allowing use filterw pipes.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/bandpass.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simple bandpass filter — bandpass","text":"","code":"if (FALSE) { nwave <- noise(\"white\", duration=44100, samp.rate=44100) fwave <- filterWave(nwave, bandpass(from=1000, to=2000)) nwave |> filterWave(bandpass(from=1000, to=2000)) -> fwave }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":null,"dir":"Reference","previous_headings":"","what":"Beat spectrum complexity — beatComplexity","title":"Beat spectrum complexity — beatComplexity","text":"function computes beatSpectrum calculates basic measurements complexity. complexity value calculated maximum identified repeating period (seconds) divided number peaks.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Beat spectrum complexity — beatComplexity","text":"","code":"beatComplexity(wave, plot = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Beat spectrum complexity — beatComplexity","text":"wave Wave object plot TRUE spectrogram overlaid peaks plotted.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Beat spectrum complexity — beatComplexity","text":"list complexity, vector peak periods, number peaks.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatComplexity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Beat spectrum complexity — beatComplexity","text":"","code":"if (FALSE) { beatComplexity(sheep) beatComplexity(sheep, plot=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":null,"dir":"Reference","previous_headings":"","what":"Computes a beat spectrum — beatSpectrum","title":"Computes a beat spectrum — beatSpectrum","text":"Beat spectra represent periodicity signal amplitude. computed performing continuous wavelet transform envelope preprocessed signal, processing average power per frequency band.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Computes a beat spectrum — beatSpectrum","text":"","code":"beatSpectrum(wave, min_period = 0.005, max_period = 30, dj = 1/32, ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Computes a beat spectrum — beatSpectrum","text":"wave R object path wave file min_period minimal rythmicity period expected, seconds max_period maximal rythmicity period expected, seconds dj frequency resolution cwt (voices per octave) ... extra arguments passed analyze.wavelet()","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Computes a beat spectrum — beatSpectrum","text":"spectrum data frame. contains two columns: power period. number rows depend resolution frequency range.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Computes a beat spectrum — beatSpectrum","text":"Quentin Geissmann","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/beatSpectrum.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Computes a beat spectrum — beatSpectrum","text":"","code":"if (FALSE) { beatSpectrum(sheep) beatSpectrum(sheep, min_period=0.005, max_period=30, dj=1/32) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":null,"dir":"Reference","previous_headings":"","what":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"function takes list sound files analyses using BirdNET-Analyzer (Kahl et al. 2021) . function either returns data frame results analysis list Annotation objects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"","code":"birdNetAnalyse( files, lat = NULL, lon = NULL, date = NULL, output = \"Annotation\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"files character vector file paths. lat latitude vector latitudes. lon longitude vector longitudes. date Date list Date objects . output One \"data.frame\" \"Annotation\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"Kahl S, Wood CM, Eibl M, Klinck H (2021). “BirdNET: deep learning solution avian diversity monitoring.” Ecological Informatics, 61, 101236.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetAnalyse.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Analyse sound files using BirdNET-Analyzer — birdNetAnalyse","text":"","code":"if (FALSE) { birdnetAnalyse(files=c(\"path/to/file1.wav\", \"path/to/file2.wav\"), output=\"data.frame\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":null,"dir":"Reference","previous_headings":"","what":"Install the BirdNET environment — birdNetInstall","title":"Install the BirdNET environment — birdNetInstall","text":"function installs BirdNET ssd_birdnet environment using reticulate.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Install the BirdNET environment — birdNetInstall","text":"","code":"birdNetInstall(unattended = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Install the BirdNET environment — birdNetInstall","text":"unattended TRUE function prompt user install environment non-interactive session.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/birdNetInstall.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Install the BirdNET environment — birdNetInstall","text":"","code":"if (FALSE) { birdnetInstall() birdNetInstall(unattended=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/channels_se.html","id":null,"dir":"Reference","previous_headings":"","what":"Channels for sound ecology — channels_se","title":"Channels for sound ecology — channels_se","text":"Used process output acoustic index functions soundecology package using allChannels.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/channels_se.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Channels for sound ecology — channels_se","text":"","code":"channels_se(...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/channels_se.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Channels for sound ecology — channels_se","text":"... Export bioacoustic index function soundecology package","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/circularise.html","id":null,"dir":"Reference","previous_headings":"","what":"Circularise a dataset — circularise","title":"Circularise a dataset — circularise","text":"plotting rings horizons meant cover entirety time period dielPlot() yearlyPlot() function append beginning values end ensure entire loop created.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/circularise.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Circularise a dataset — circularise","text":"","code":"circularise(values)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/circularise.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Circularise a dataset — circularise","text":"values vector values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":null,"dir":"Reference","previous_headings":"","what":"Concatenate two or more Wave-like objects. — concat","title":"Concatenate two or more Wave-like objects. — concat","text":"concat() method flexible version bind() method tuneR package, allows specifying advanced types concatenation. Setting method \"noClick\" remove click Wave objects caused sudden jumps amplitude applying tuneR::prepComb() appropriately default value zero (effective left channel stereo multi-channel recordings).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Concatenate two or more Wave-like objects. — concat","text":"","code":"concat(object, ..., method = \"bind\") # S4 method for Wave concat(object, ..., method = \"bind\") # S4 method for WaveMC concat(object, ..., method = \"bind\") # S4 method for TaggedWave concat(object, ..., method = \"bind\") # S4 method for TaggedWaveMC concat(object, ..., method = \"bind\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Concatenate two or more Wave-like objects. — concat","text":"object Wave like object. ... Wave like objects concatenate object. method One \"bind\", \"noClick\". Default \"bind\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/concat-methods.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Concatenate two or more Wave-like objects. — concat","text":"concatenated Wave like object, type object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert temperature to Celsius — convert2Celsius","title":"Convert temperature to Celsius — convert2Celsius","text":"Converts temperature measurements Celsius","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert temperature to Celsius — convert2Celsius","text":"","code":"convert2Celsius(temp, input = \"K\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert temperature to Celsius — convert2Celsius","text":"temp value temperature convert input unit temperature convert, allowed values \"K\", \"F\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert temperature to Celsius — convert2Celsius","text":"Numeric value degrees Celsius","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Celsius.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert temperature to Celsius — convert2Celsius","text":"","code":"convert2Celsius(15, input=\"K\") #> [1] -258.15 convert2Celsius(15, input=\"F\") #> [1] -9.444444"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert temperature to Fahrenheit — convert2Fahrenheit","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"Converts temperature measurements Fahrenheit","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"","code":"convert2Fahrenheit(temp, input)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"temp value temperature convert input unit temperature convert, allowed values \"K\", \"C\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Fahrenheit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert temperature to Fahrenheit — convert2Fahrenheit","text":"","code":"if (FALSE) { convert2Fahrenheit(15, input = \"C\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert temperature to Kelvin — convert2Kelvin","title":"Convert temperature to Kelvin — convert2Kelvin","text":"Converts temperature measurements Kelvin","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert temperature to Kelvin — convert2Kelvin","text":"","code":"convert2Kelvin(temp, input = \"C\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert temperature to Kelvin — convert2Kelvin","text":"temp value temperature convert input unit temperature convert, allowed values \"C\", \"F\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert temperature to Kelvin — convert2Kelvin","text":"Numeric value Kelvin","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Kelvin.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert temperature to Kelvin — convert2Kelvin","text":"","code":"convert2Kelvin(15, input=\"C\") #> [1] 288.15 convert2Kelvin(15, input=\"F\") #> [1] 263.7056"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert pressure to Pascals — convert2Pascals","title":"Convert pressure to Pascals — convert2Pascals","text":"Converts pressure measurements Pascals","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert pressure to Pascals — convert2Pascals","text":"","code":"convert2Pascals(P, input = \"kPa\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert pressure to Pascals — convert2Pascals","text":"P value pressure convert input unit pressure convert, allowed values \"kPa\", \"dyne_cm2\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert pressure to Pascals — convert2Pascals","text":"numeric value Pascals","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2Pascals.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert pressure to Pascals — convert2Pascals","text":"","code":"convert2Pascals(1000, input=\"kPa\") #> [1] 1e+06 convert2Pascals(10, input=\"dyne_cm2\") #> [1] 1"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert bits to bytes — convert2bytes","title":"Convert bits to bytes — convert2bytes","text":"Converts time measurements seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert bits to bytes — convert2bytes","text":"","code":"convert2bytes(S, input = \"bits\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert bits to bytes — convert2bytes","text":"S value convert input unit convert, allowed values \"bits\", \"kB\", \"MB\", \"GB\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2bytes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert bits to bytes — convert2bytes","text":"numeric value seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert angle to degrees — convert2degrees","title":"Convert angle to degrees — convert2degrees","text":"Converts angle measurements degrees","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert angle to degrees — convert2degrees","text":"","code":"convert2degrees(A, input = \"radians\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert angle to degrees — convert2degrees","text":"angle value convert input unit angle convert, allowed values \"radians\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2degrees.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert angle to degrees — convert2degrees","text":"numeric value degrees","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"Converts pressure measurements dyne per square centimetre","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"","code":"convert2dyne_cm2(P, input = \"kPa\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"P value pressure convert input unit pressure convert, allowed values \"kPa\", \"P\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2dyne_cm2.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert pressure to dyne per square centimetre — convert2dyne_cm2","text":"","code":"convert2dyne_cm2(1, input=\"Pa\") #> [1] 10 convert2dyne_cm2(1, input=\"kPa\") #> [1] 10000"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert angle to radians — convert2radians","title":"Convert angle to radians — convert2radians","text":"Converts angle measurements radians","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert angle to radians — convert2radians","text":"","code":"convert2radians(A, input = \"degrees\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert angle to radians — convert2radians","text":"angle value convert input unit angle convert, allowed values \"degrees\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2radians.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert angle to radians — convert2radians","text":"numeric value radians","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert time to seconds — convert2seconds","title":"Convert time to seconds — convert2seconds","text":"Converts time measurements seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert time to seconds — convert2seconds","text":"","code":"convert2seconds(T, input = \"minutes\", origin = \"day\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert time to seconds — convert2seconds","text":"T time value convert input unit time convert, allowed values \"minutes\", \"hours\", \"days\", \"years\", \"HHMM\". origin POSIX whether return relative start day (\"day\") Unix epoch (\"unix\")","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/convert2seconds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert time to seconds — convert2seconds","text":"numeric value seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":null,"dir":"Reference","previous_headings":"","what":"Correlate channels in a WaveMC object — corWaveMC","title":"Correlate channels in a WaveMC object — corWaveMC","text":"Uses corenv function seewave calculate envelope correlation timed events channels WaveMC object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Correlate channels in a WaveMC object — corWaveMC","text":"","code":"corWaveMC(wave, times, window, temp = 25, cluster = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Correlate channels in a WaveMC object — corWaveMC","text":"wave WaveMC object times One times events correlate window Width window correlate seconds (centred times) temp Air temperature Celsius cluster cluster parallel execution","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/corWaveMC.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Correlate channels in a WaveMC object — corWaveMC","text":"List corenv lists events, list time differences channels","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":null,"dir":"Reference","previous_headings":"","what":"Cut wave by samples — cutws","title":"Cut wave by samples — cutws","text":"Extract section Wave object based sample positions. function automatically detect Wave object stereo.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cut wave by samples — cutws","text":"","code":"cutws(wave, from = 1, to = Inf, plot = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cut wave by samples — cutws","text":"wave Wave object First sample return Last sample return plot TRUE shows cut region within original waveform","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cut wave by samples — cutws","text":"Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/cutws.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cut wave by samples — cutws","text":"","code":"if (FALSE) { cutws(sheep, 1, 20) cutws(sheep, 1, 20, plot=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert data into a Wave object — data2Wave","title":"Convert data into a Wave object — data2Wave","text":"Make sequence data normalised Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert data into a Wave object — data2Wave","text":"","code":"data2Wave( left, samp.rate = 44100, bit = 16, remove.offset = TRUE, normalise = TRUE )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert data into a Wave object — data2Wave","text":"left Data mono audio channel samp.rate Sampling rate Wave object bit Bit depth Wave object remove.offset TRUE DC offset removed normalise TRUE output Wave normalised -1:1","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert data into a Wave object — data2Wave","text":"mono Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/data2Wave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert data into a Wave object — data2Wave","text":"","code":"pattern <- seq(from=-1, to=1, length.out=100) data <- rep.int(pattern, 100) w <- data2Wave(data)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":null,"dir":"Reference","previous_headings":"","what":"Phase of day — dayPhase","title":"Phase of day — dayPhase","text":"Given start time (optionally) duration returns phase day given location. primarily used calculate phase day information soundscape recording projects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Phase of day — dayPhase","text":"","code":"dayPhase( time = Sys.time(), duration = 40000, lat = 50.1, lon = 1.83, tz = \"UTC\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Phase of day — dayPhase","text":"time time object representing start time recording duration Duration recording lat Latitude recording device lon Longitude recording device tz Time-zone recording device recording made","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhase.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Phase of day — dayPhase","text":"Data frame day phases absolute timestamps relative times within file","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhases.html","id":null,"dir":"Reference","previous_headings":"","what":"Phases of day — dayPhases","title":"Phases of day — dayPhases","text":"Wrapper suncalc::getSunlightTimes formats output package.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhases.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Phases of day — dayPhases","text":"","code":"dayPhases(time = as.Date(Sys.time()), lat = 50.1, lon = 1.83, tz = \"UTC\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dayPhases.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Phases of day — dayPhases","text":"time time object representing start time recording lat Latitude recording device lon Longitude recording device tz Time-zone recording device recording made","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/daysPhases.html","id":null,"dir":"Reference","previous_headings":"","what":"Phases of days — daysPhases","title":"Phases of days — daysPhases","text":"Phases days","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/daysPhases.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Phases of days — daysPhases","text":"","code":"daysPhases( date = Sys.Date(), period = \"year\", plot = FALSE, lat = 50.1, lon = 1.83, tz = \"UTC\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/daysPhases.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Phases of days — daysPhases","text":"date time object representing start time recording period \"month\" \"year\" plot true plots data, default FALSE lat Latitude recording device lon Longitude recording device tz Time-zone recording device recording made","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":null,"dir":"Reference","previous_headings":"","what":"Create Default Cluster for Windowing — defaultCluster","title":"Create Default Cluster for Windowing — defaultCluster","text":"Creates default cluster using one less total cores available system. default uses forking, available Windows. Hence, fork parameter effect Windows.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create Default Cluster for Windowing — defaultCluster","text":"","code":"defaultCluster(fork = TRUE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create Default Cluster for Windowing — defaultCluster","text":"fork TRUE uses forking create cluster (Unix like systems )","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create Default Cluster for Windowing — defaultCluster","text":"cluster object parallel processing","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/defaultCluster.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create Default Cluster for Windowing — defaultCluster","text":"","code":"if (FALSE) { cl <- defaultCluster() stopCluster(cl) cl <- defaultCluster(FALSE) stopCluster(cl) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielFraction.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the fraction of a day given by a value — dielFraction","title":"Calculate the fraction of a day given by a value — dielFraction","text":"Given object can coerced POSIXlt supported string format, return fraction day represented object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielFraction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the fraction of a day given by a value — dielFraction","text":"","code":"dielFraction(t, input = \"POSIX\", unit = \"radians\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielFraction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the fraction of a day given by a value — dielFraction","text":"t Object converted fraction input One POSIX (default) HHMM unit set radians outputs position around circle. set fraction outputs raw fraction.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":null,"dir":"Reference","previous_headings":"","what":"Diel Histogram — dielHistogram","title":"Diel Histogram — dielHistogram","text":"Draws histogram dielPlot() using pre-defined bins related time day.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Diel Histogram — dielHistogram","text":"","code":"dielHistogram( times, by = \"hour\", col = \"grey\", maxval = NA, presence.only = FALSE, limits = c(1, 2) )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Diel Histogram — dielHistogram","text":"times vector times can pocessed dielFraction(). Controls size histogram bins, one \"hour\", \"15minute\", \"30minute\". col Colour plot. maxval default scales histogram within limits, specifying maximum value allows comparison plots. presence.show presence/absence values. limits Limits plotting (see dielPlot()).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielHistogram.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Diel Histogram — dielHistogram","text":"data frame start end points bins.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate labels for a diel plot — dielLabels","title":"Generate labels for a diel plot — dielLabels","text":"Generates labels dielPlot() 12- 24-hour format. Labels generated three hourly intervals.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate labels for a diel plot — dielLabels","text":"","code":"dielLabels(format = \"clock24\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate labels for a diel plot — dielLabels","text":"format One clock24 (default) clock12","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielLabels.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate labels for a diel plot — dielLabels","text":"","code":"dielLabels() #> [1] \"0000\" \"0300\" \"0600\" \"0900\" \"1200\" \"1500\" \"1800\" \"2100\" dielLabels(\"clock12\") #> [1] \"0000\" \"0300 AM\" \"0600 AM\" \"0900 AM\" \"1200 NOON\" \"0300 PM\" #> [7] \"0600 PM\" \"0900 PM\""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPlot.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a diel plot — dielPlot","title":"Create a diel plot — dielPlot","text":"diel plot shows times night, twilight maximum altitude sun given date.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPlot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a diel plot — dielPlot","text":"","code":"dielPlot( date, lat, lon, limits = c(0, 2), plot = NULL, rot = tzRot(0), method = \"plotrix\", legend = F )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPlot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a diel plot — dielPlot","text":"date Date plot. lat Numeric latitude. lon Numeric longitude. limits Plotting limits daylight regions, default c(1,2) plot Character vector components plot rot Either \"Solar Noon\" offset calculated tz method Plotting library use legend Whether show legend","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate positions of labels for a diel plot — dielPositions","title":"Generate positions of labels for a diel plot — dielPositions","text":"Generates positions three-hourly labels dielPlot() radians.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate positions of labels for a diel plot — dielPositions","text":"","code":"dielPositions(format = \"3hourly\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate positions of labels for a diel plot — dielPositions","text":"format One \"3hours\" (default), \"hours\", \"minutes\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielPositions.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate positions of labels for a diel plot — dielPositions","text":"","code":"dielPositions() #> [1] 0.0000000 0.7853982 1.5707963 2.3561945 3.1415927 3.9269908 4.7123890 #> [8] 5.4977871 dielPositions(\"hours\") #> [1] 0.2617994 0.5235988 0.7853982 1.0471976 1.3089969 1.5707963 1.8325957 #> [8] 2.0943951 2.3561945 2.6179939 2.8797933 3.1415927 3.4033920 3.6651914 #> [15] 3.9269908 4.1887902 4.4505896 4.7123890 4.9741884 5.2359878 5.4977871 #> [22] 5.7595865 6.0213859 6.2831853 dielPositions(\"minutes\") #> [1] 0.004363323 0.008726646 0.013089969 0.017453293 0.021816616 0.026179939 #> [7] 0.030543262 0.034906585 0.039269908 0.043633231 0.047996554 0.052359878 #> [13] 0.056723201 0.061086524 0.065449847 0.069813170 0.074176493 0.078539816 #> [19] 0.082903139 0.087266463 0.091629786 0.095993109 0.100356432 0.104719755 #> [25] 0.109083078 0.113446401 0.117809725 0.122173048 0.126536371 0.130899694 #> [31] 0.135263017 0.139626340 0.143989663 0.148352986 0.152716310 0.157079633 #> [37] 0.161442956 0.165806279 0.170169602 0.174532925 0.178896248 0.183259571 #> [43] 0.187622895 0.191986218 0.196349541 0.200712864 0.205076187 0.209439510 #> [49] 0.213802833 0.218166156 0.222529480 0.226892803 0.231256126 0.235619449 #> [55] 0.239982772 0.244346095 0.248709418 0.253072742 0.257436065 0.261799388 #> [61] 0.266162711 0.270526034 0.274889357 0.279252680 0.283616003 0.287979327 #> [67] 0.292342650 0.296705973 0.301069296 0.305432619 0.309795942 0.314159265 #> [73] 0.318522588 0.322885912 0.327249235 0.331612558 0.335975881 0.340339204 #> [79] 0.344702527 0.349065850 0.353429174 0.357792497 0.362155820 0.366519143 #> [85] 0.370882466 0.375245789 0.379609112 0.383972435 0.388335759 0.392699082 #> [91] 0.397062405 0.401425728 0.405789051 0.410152374 0.414515697 0.418879020 #> [97] 0.423242344 0.427605667 0.431968990 0.436332313 0.440695636 0.445058959 #> [103] 0.449422282 0.453785606 0.458148929 0.462512252 0.466875575 0.471238898 #> [109] 0.475602221 0.479965544 0.484328867 0.488692191 0.493055514 0.497418837 #> [115] 0.501782160 0.506145483 0.510508806 0.514872129 0.519235452 0.523598776 #> [121] 0.527962099 0.532325422 0.536688745 0.541052068 0.545415391 0.549778714 #> [127] 0.554142038 0.558505361 0.562868684 0.567232007 0.571595330 0.575958653 #> [133] 0.580321976 0.584685299 0.589048623 0.593411946 0.597775269 0.602138592 #> [139] 0.606501915 0.610865238 0.615228561 0.619591884 0.623955208 0.628318531 #> [145] 0.632681854 0.637045177 0.641408500 0.645771823 0.650135146 0.654498469 #> [151] 0.658861793 0.663225116 0.667588439 0.671951762 0.676315085 0.680678408 #> [157] 0.685041731 0.689405055 0.693768378 0.698131701 0.702495024 0.706858347 #> [163] 0.711221670 0.715584993 0.719948316 0.724311640 0.728674963 0.733038286 #> [169] 0.737401609 0.741764932 0.746128255 0.750491578 0.754854901 0.759218225 #> [175] 0.763581548 0.767944871 0.772308194 0.776671517 0.781034840 0.785398163 #> [181] 0.789761487 0.794124810 0.798488133 0.802851456 0.807214779 0.811578102 #> [187] 0.815941425 0.820304748 0.824668072 0.829031395 0.833394718 0.837758041 #> [193] 0.842121364 0.846484687 0.850848010 0.855211333 0.859574657 0.863937980 #> [199] 0.868301303 0.872664626 0.877027949 0.881391272 0.885754595 0.890117919 #> [205] 0.894481242 0.898844565 0.903207888 0.907571211 0.911934534 0.916297857 #> [211] 0.920661180 0.925024504 0.929387827 0.933751150 0.938114473 0.942477796 #> [217] 0.946841119 0.951204442 0.955567765 0.959931089 0.964294412 0.968657735 #> [223] 0.973021058 0.977384381 0.981747704 0.986111027 0.990474351 0.994837674 #> [229] 0.999200997 1.003564320 1.007927643 1.012290966 1.016654289 1.021017612 #> [235] 1.025380936 1.029744259 1.034107582 1.038470905 1.042834228 1.047197551 #> [241] 1.051560874 1.055924197 1.060287521 1.064650844 1.069014167 1.073377490 #> [247] 1.077740813 1.082104136 1.086467459 1.090830782 1.095194106 1.099557429 #> [253] 1.103920752 1.108284075 1.112647398 1.117010721 1.121374044 1.125737368 #> [259] 1.130100691 1.134464014 1.138827337 1.143190660 1.147553983 1.151917306 #> [265] 1.156280629 1.160643953 1.165007276 1.169370599 1.173733922 1.178097245 #> [271] 1.182460568 1.186823891 1.191187214 1.195550538 1.199913861 1.204277184 #> [277] 1.208640507 1.213003830 1.217367153 1.221730476 1.226093800 1.230457123 #> [283] 1.234820446 1.239183769 1.243547092 1.247910415 1.252273738 1.256637061 #> [289] 1.261000385 1.265363708 1.269727031 1.274090354 1.278453677 1.282817000 #> [295] 1.287180323 1.291543646 1.295906970 1.300270293 1.304633616 1.308996939 #> [301] 1.313360262 1.317723585 1.322086908 1.326450232 1.330813555 1.335176878 #> [307] 1.339540201 1.343903524 1.348266847 1.352630170 1.356993493 1.361356817 #> [313] 1.365720140 1.370083463 1.374446786 1.378810109 1.383173432 1.387536755 #> [319] 1.391900078 1.396263402 1.400626725 1.404990048 1.409353371 1.413716694 #> [325] 1.418080017 1.422443340 1.426806664 1.431169987 1.435533310 1.439896633 #> [331] 1.444259956 1.448623279 1.452986602 1.457349925 1.461713249 1.466076572 #> [337] 1.470439895 1.474803218 1.479166541 1.483529864 1.487893187 1.492256510 #> [343] 1.496619834 1.500983157 1.505346480 1.509709803 1.514073126 1.518436449 #> [349] 1.522799772 1.527163095 1.531526419 1.535889742 1.540253065 1.544616388 #> [355] 1.548979711 1.553343034 1.557706357 1.562069681 1.566433004 1.570796327 #> [361] 1.575159650 1.579522973 1.583886296 1.588249619 1.592612942 1.596976266 #> [367] 1.601339589 1.605702912 1.610066235 1.614429558 1.618792881 1.623156204 #> [373] 1.627519527 1.631882851 1.636246174 1.640609497 1.644972820 1.649336143 #> [379] 1.653699466 1.658062789 1.662426113 1.666789436 1.671152759 1.675516082 #> [385] 1.679879405 1.684242728 1.688606051 1.692969374 1.697332698 1.701696021 #> [391] 1.706059344 1.710422667 1.714785990 1.719149313 1.723512636 1.727875959 #> [397] 1.732239283 1.736602606 1.740965929 1.745329252 1.749692575 1.754055898 #> [403] 1.758419221 1.762782545 1.767145868 1.771509191 1.775872514 1.780235837 #> [409] 1.784599160 1.788962483 1.793325806 1.797689130 1.802052453 1.806415776 #> [415] 1.810779099 1.815142422 1.819505745 1.823869068 1.828232391 1.832595715 #> [421] 1.836959038 1.841322361 1.845685684 1.850049007 1.854412330 1.858775653 #> [427] 1.863138977 1.867502300 1.871865623 1.876228946 1.880592269 1.884955592 #> [433] 1.889318915 1.893682238 1.898045562 1.902408885 1.906772208 1.911135531 #> [439] 1.915498854 1.919862177 1.924225500 1.928588823 1.932952147 1.937315470 #> [445] 1.941678793 1.946042116 1.950405439 1.954768762 1.959132085 1.963495408 #> [451] 1.967858732 1.972222055 1.976585378 1.980948701 1.985312024 1.989675347 #> [457] 1.994038670 1.998401994 2.002765317 2.007128640 2.011491963 2.015855286 #> [463] 2.020218609 2.024581932 2.028945255 2.033308579 2.037671902 2.042035225 #> [469] 2.046398548 2.050761871 2.055125194 2.059488517 2.063851840 2.068215164 #> [475] 2.072578487 2.076941810 2.081305133 2.085668456 2.090031779 2.094395102 #> [481] 2.098758426 2.103121749 2.107485072 2.111848395 2.116211718 2.120575041 #> [487] 2.124938364 2.129301687 2.133665011 2.138028334 2.142391657 2.146754980 #> [493] 2.151118303 2.155481626 2.159844949 2.164208272 2.168571596 2.172934919 #> [499] 2.177298242 2.181661565 2.186024888 2.190388211 2.194751534 2.199114858 #> [505] 2.203478181 2.207841504 2.212204827 2.216568150 2.220931473 2.225294796 #> [511] 2.229658119 2.234021443 2.238384766 2.242748089 2.247111412 2.251474735 #> [517] 2.255838058 2.260201381 2.264564704 2.268928028 2.273291351 2.277654674 #> [523] 2.282017997 2.286381320 2.290744643 2.295107966 2.299471290 2.303834613 #> [529] 2.308197936 2.312561259 2.316924582 2.321287905 2.325651228 2.330014551 #> [535] 2.334377875 2.338741198 2.343104521 2.347467844 2.351831167 2.356194490 #> [541] 2.360557813 2.364921136 2.369284460 2.373647783 2.378011106 2.382374429 #> [547] 2.386737752 2.391101075 2.395464398 2.399827721 2.404191045 2.408554368 #> [553] 2.412917691 2.417281014 2.421644337 2.426007660 2.430370983 2.434734307 #> [559] 2.439097630 2.443460953 2.447824276 2.452187599 2.456550922 2.460914245 #> [565] 2.465277568 2.469640892 2.474004215 2.478367538 2.482730861 2.487094184 #> [571] 2.491457507 2.495820830 2.500184153 2.504547477 2.508910800 2.513274123 #> [577] 2.517637446 2.522000769 2.526364092 2.530727415 2.535090739 2.539454062 #> [583] 2.543817385 2.548180708 2.552544031 2.556907354 2.561270677 2.565634000 #> [589] 2.569997324 2.574360647 2.578723970 2.583087293 2.587450616 2.591813939 #> [595] 2.596177262 2.600540585 2.604903909 2.609267232 2.613630555 2.617993878 #> [601] 2.622357201 2.626720524 2.631083847 2.635447171 2.639810494 2.644173817 #> [607] 2.648537140 2.652900463 2.657263786 2.661627109 2.665990432 2.670353756 #> [613] 2.674717079 2.679080402 2.683443725 2.687807048 2.692170371 2.696533694 #> [619] 2.700897017 2.705260341 2.709623664 2.713986987 2.718350310 2.722713633 #> [625] 2.727076956 2.731440279 2.735803603 2.740166926 2.744530249 2.748893572 #> [631] 2.753256895 2.757620218 2.761983541 2.766346864 2.770710188 2.775073511 #> [637] 2.779436834 2.783800157 2.788163480 2.792526803 2.796890126 2.801253449 #> [643] 2.805616773 2.809980096 2.814343419 2.818706742 2.823070065 2.827433388 #> [649] 2.831796711 2.836160034 2.840523358 2.844886681 2.849250004 2.853613327 #> [655] 2.857976650 2.862339973 2.866703296 2.871066620 2.875429943 2.879793266 #> [661] 2.884156589 2.888519912 2.892883235 2.897246558 2.901609881 2.905973205 #> [667] 2.910336528 2.914699851 2.919063174 2.923426497 2.927789820 2.932153143 #> [673] 2.936516466 2.940879790 2.945243113 2.949606436 2.953969759 2.958333082 #> [679] 2.962696405 2.967059728 2.971423052 2.975786375 2.980149698 2.984513021 #> [685] 2.988876344 2.993239667 2.997602990 3.001966313 3.006329637 3.010692960 #> [691] 3.015056283 3.019419606 3.023782929 3.028146252 3.032509575 3.036872898 #> [697] 3.041236222 3.045599545 3.049962868 3.054326191 3.058689514 3.063052837 #> [703] 3.067416160 3.071779484 3.076142807 3.080506130 3.084869453 3.089232776 #> [709] 3.093596099 3.097959422 3.102322745 3.106686069 3.111049392 3.115412715 #> [715] 3.119776038 3.124139361 3.128502684 3.132866007 3.137229330 3.141592654 #> [721] 3.145955977 3.150319300 3.154682623 3.159045946 3.163409269 3.167772592 #> [727] 3.172135915 3.176499239 3.180862562 3.185225885 3.189589208 3.193952531 #> [733] 3.198315854 3.202679177 3.207042501 3.211405824 3.215769147 3.220132470 #> [739] 3.224495793 3.228859116 3.233222439 3.237585762 3.241949086 3.246312409 #> [745] 3.250675732 3.255039055 3.259402378 3.263765701 3.268129024 3.272492347 #> [751] 3.276855671 3.281218994 3.285582317 3.289945640 3.294308963 3.298672286 #> [757] 3.303035609 3.307398933 3.311762256 3.316125579 3.320488902 3.324852225 #> [763] 3.329215548 3.333578871 3.337942194 3.342305518 3.346668841 3.351032164 #> [769] 3.355395487 3.359758810 3.364122133 3.368485456 3.372848779 3.377212103 #> [775] 3.381575426 3.385938749 3.390302072 3.394665395 3.399028718 3.403392041 #> [781] 3.407755365 3.412118688 3.416482011 3.420845334 3.425208657 3.429571980 #> [787] 3.433935303 3.438298626 3.442661950 3.447025273 3.451388596 3.455751919 #> [793] 3.460115242 3.464478565 3.468841888 3.473205211 3.477568535 3.481931858 #> [799] 3.486295181 3.490658504 3.495021827 3.499385150 3.503748473 3.508111797 #> [805] 3.512475120 3.516838443 3.521201766 3.525565089 3.529928412 3.534291735 #> [811] 3.538655058 3.543018382 3.547381705 3.551745028 3.556108351 3.560471674 #> [817] 3.564834997 3.569198320 3.573561643 3.577924967 3.582288290 3.586651613 #> [823] 3.591014936 3.595378259 3.599741582 3.604104905 3.608468228 3.612831552 #> [829] 3.617194875 3.621558198 3.625921521 3.630284844 3.634648167 3.639011490 #> [835] 3.643374814 3.647738137 3.652101460 3.656464783 3.660828106 3.665191429 #> [841] 3.669554752 3.673918075 3.678281399 3.682644722 3.687008045 3.691371368 #> [847] 3.695734691 3.700098014 3.704461337 3.708824660 3.713187984 3.717551307 #> [853] 3.721914630 3.726277953 3.730641276 3.735004599 3.739367922 3.743731246 #> [859] 3.748094569 3.752457892 3.756821215 3.761184538 3.765547861 3.769911184 #> [865] 3.774274507 3.778637831 3.783001154 3.787364477 3.791727800 3.796091123 #> [871] 3.800454446 3.804817769 3.809181092 3.813544416 3.817907739 3.822271062 #> [877] 3.826634385 3.830997708 3.835361031 3.839724354 3.844087678 3.848451001 #> [883] 3.852814324 3.857177647 3.861540970 3.865904293 3.870267616 3.874630939 #> [889] 3.878994263 3.883357586 3.887720909 3.892084232 3.896447555 3.900810878 #> [895] 3.905174201 3.909537524 3.913900848 3.918264171 3.922627494 3.926990817 #> [901] 3.931354140 3.935717463 3.940080786 3.944444110 3.948807433 3.953170756 #> [907] 3.957534079 3.961897402 3.966260725 3.970624048 3.974987371 3.979350695 #> [913] 3.983714018 3.988077341 3.992440664 3.996803987 4.001167310 4.005530633 #> [919] 4.009893956 4.014257280 4.018620603 4.022983926 4.027347249 4.031710572 #> [925] 4.036073895 4.040437218 4.044800541 4.049163865 4.053527188 4.057890511 #> [931] 4.062253834 4.066617157 4.070980480 4.075343803 4.079707127 4.084070450 #> [937] 4.088433773 4.092797096 4.097160419 4.101523742 4.105887065 4.110250388 #> [943] 4.114613712 4.118977035 4.123340358 4.127703681 4.132067004 4.136430327 #> [949] 4.140793650 4.145156973 4.149520297 4.153883620 4.158246943 4.162610266 #> [955] 4.166973589 4.171336912 4.175700235 4.180063559 4.184426882 4.188790205 #> [961] 4.193153528 4.197516851 4.201880174 4.206243497 4.210606820 4.214970144 #> [967] 4.219333467 4.223696790 4.228060113 4.232423436 4.236786759 4.241150082 #> [973] 4.245513405 4.249876729 4.254240052 4.258603375 4.262966698 4.267330021 #> [979] 4.271693344 4.276056667 4.280419991 4.284783314 4.289146637 4.293509960 #> [985] 4.297873283 4.302236606 4.306599929 4.310963252 4.315326576 4.319689899 #> [991] 4.324053222 4.328416545 4.332779868 4.337143191 4.341506514 4.345869837 #> [997] 4.350233161 4.354596484 4.358959807 4.363323130 4.367686453 4.372049776 #> [1003] 4.376413099 4.380776423 4.385139746 4.389503069 4.393866392 4.398229715 #> [1009] 4.402593038 4.406956361 4.411319684 4.415683008 4.420046331 4.424409654 #> [1015] 4.428772977 4.433136300 4.437499623 4.441862946 4.446226269 4.450589593 #> [1021] 4.454952916 4.459316239 4.463679562 4.468042885 4.472406208 4.476769531 #> [1027] 4.481132854 4.485496178 4.489859501 4.494222824 4.498586147 4.502949470 #> [1033] 4.507312793 4.511676116 4.516039440 4.520402763 4.524766086 4.529129409 #> [1039] 4.533492732 4.537856055 4.542219378 4.546582701 4.550946025 4.555309348 #> [1045] 4.559672671 4.564035994 4.568399317 4.572762640 4.577125963 4.581489286 #> [1051] 4.585852610 4.590215933 4.594579256 4.598942579 4.603305902 4.607669225 #> [1057] 4.612032548 4.616395872 4.620759195 4.625122518 4.629485841 4.633849164 #> [1063] 4.638212487 4.642575810 4.646939133 4.651302457 4.655665780 4.660029103 #> [1069] 4.664392426 4.668755749 4.673119072 4.677482395 4.681845718 4.686209042 #> [1075] 4.690572365 4.694935688 4.699299011 4.703662334 4.708025657 4.712388980 #> [1081] 4.716752304 4.721115627 4.725478950 4.729842273 4.734205596 4.738568919 #> [1087] 4.742932242 4.747295565 4.751658889 4.756022212 4.760385535 4.764748858 #> [1093] 4.769112181 4.773475504 4.777838827 4.782202150 4.786565474 4.790928797 #> [1099] 4.795292120 4.799655443 4.804018766 4.808382089 4.812745412 4.817108736 #> [1105] 4.821472059 4.825835382 4.830198705 4.834562028 4.838925351 4.843288674 #> [1111] 4.847651997 4.852015321 4.856378644 4.860741967 4.865105290 4.869468613 #> [1117] 4.873831936 4.878195259 4.882558582 4.886921906 4.891285229 4.895648552 #> [1123] 4.900011875 4.904375198 4.908738521 4.913101844 4.917465167 4.921828491 #> [1129] 4.926191814 4.930555137 4.934918460 4.939281783 4.943645106 4.948008429 #> [1135] 4.952371753 4.956735076 4.961098399 4.965461722 4.969825045 4.974188368 #> [1141] 4.978551691 4.982915014 4.987278338 4.991641661 4.996004984 5.000368307 #> [1147] 5.004731630 5.009094953 5.013458276 5.017821599 5.022184923 5.026548246 #> [1153] 5.030911569 5.035274892 5.039638215 5.044001538 5.048364861 5.052728185 #> [1159] 5.057091508 5.061454831 5.065818154 5.070181477 5.074544800 5.078908123 #> [1165] 5.083271446 5.087634770 5.091998093 5.096361416 5.100724739 5.105088062 #> [1171] 5.109451385 5.113814708 5.118178031 5.122541355 5.126904678 5.131268001 #> [1177] 5.135631324 5.139994647 5.144357970 5.148721293 5.153084617 5.157447940 #> [1183] 5.161811263 5.166174586 5.170537909 5.174901232 5.179264555 5.183627878 #> [1189] 5.187991202 5.192354525 5.196717848 5.201081171 5.205444494 5.209807817 #> [1195] 5.214171140 5.218534463 5.222897787 5.227261110 5.231624433 5.235987756 #> [1201] 5.240351079 5.244714402 5.249077725 5.253441049 5.257804372 5.262167695 #> [1207] 5.266531018 5.270894341 5.275257664 5.279620987 5.283984310 5.288347634 #> [1213] 5.292710957 5.297074280 5.301437603 5.305800926 5.310164249 5.314527572 #> [1219] 5.318890895 5.323254219 5.327617542 5.331980865 5.336344188 5.340707511 #> [1225] 5.345070834 5.349434157 5.353797480 5.358160804 5.362524127 5.366887450 #> [1231] 5.371250773 5.375614096 5.379977419 5.384340742 5.388704066 5.393067389 #> [1237] 5.397430712 5.401794035 5.406157358 5.410520681 5.414884004 5.419247327 #> [1243] 5.423610651 5.427973974 5.432337297 5.436700620 5.441063943 5.445427266 #> [1249] 5.449790589 5.454153912 5.458517236 5.462880559 5.467243882 5.471607205 #> [1255] 5.475970528 5.480333851 5.484697174 5.489060498 5.493423821 5.497787144 #> [1261] 5.502150467 5.506513790 5.510877113 5.515240436 5.519603759 5.523967083 #> [1267] 5.528330406 5.532693729 5.537057052 5.541420375 5.545783698 5.550147021 #> [1273] 5.554510344 5.558873668 5.563236991 5.567600314 5.571963637 5.576326960 #> [1279] 5.580690283 5.585053606 5.589416930 5.593780253 5.598143576 5.602506899 #> [1285] 5.606870222 5.611233545 5.615596868 5.619960191 5.624323515 5.628686838 #> [1291] 5.633050161 5.637413484 5.641776807 5.646140130 5.650503453 5.654866776 #> [1297] 5.659230100 5.663593423 5.667956746 5.672320069 5.676683392 5.681046715 #> [1303] 5.685410038 5.689773362 5.694136685 5.698500008 5.702863331 5.707226654 #> [1309] 5.711589977 5.715953300 5.720316623 5.724679947 5.729043270 5.733406593 #> [1315] 5.737769916 5.742133239 5.746496562 5.750859885 5.755223208 5.759586532 #> [1321] 5.763949855 5.768313178 5.772676501 5.777039824 5.781403147 5.785766470 #> [1327] 5.790129793 5.794493117 5.798856440 5.803219763 5.807583086 5.811946409 #> [1333] 5.816309732 5.820673055 5.825036379 5.829399702 5.833763025 5.838126348 #> [1339] 5.842489671 5.846852994 5.851216317 5.855579640 5.859942964 5.864306287 #> [1345] 5.868669610 5.873032933 5.877396256 5.881759579 5.886122902 5.890486225 #> [1351] 5.894849549 5.899212872 5.903576195 5.907939518 5.912302841 5.916666164 #> [1357] 5.921029487 5.925392811 5.929756134 5.934119457 5.938482780 5.942846103 #> [1363] 5.947209426 5.951572749 5.955936072 5.960299396 5.964662719 5.969026042 #> [1369] 5.973389365 5.977752688 5.982116011 5.986479334 5.990842657 5.995205981 #> [1375] 5.999569304 6.003932627 6.008295950 6.012659273 6.017022596 6.021385919 #> [1381] 6.025749243 6.030112566 6.034475889 6.038839212 6.043202535 6.047565858 #> [1387] 6.051929181 6.056292504 6.060655828 6.065019151 6.069382474 6.073745797 #> [1393] 6.078109120 6.082472443 6.086835766 6.091199089 6.095562413 6.099925736 #> [1399] 6.104289059 6.108652382 6.113015705 6.117379028 6.121742351 6.126105675 #> [1405] 6.130468998 6.134832321 6.139195644 6.143558967 6.147922290 6.152285613 #> [1411] 6.156648936 6.161012260 6.165375583 6.169738906 6.174102229 6.178465552 #> [1417] 6.182828875 6.187192198 6.191555521 6.195918845 6.200282168 6.204645491 #> [1423] 6.209008814 6.213372137 6.217735460 6.222098783 6.226462106 6.230825430 #> [1429] 6.235188753 6.239552076 6.243915399 6.248278722 6.252642045 6.257005368 #> [1435] 6.261368692 6.265732015 6.270095338 6.274458661 6.278821984 6.283185307"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielRings.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot rings on a diel plot — dielRings","title":"Plot rings on a diel plot — dielRings","text":"Plot rings diel plot.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielRings.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot rings on a diel plot — dielRings","text":"","code":"dielRings( names, starts, ends, cols = \"grey\", format = \"HHMM\", limits = c(1, 2), legend = T )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dielRings.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot rings on a diel plot — dielRings","text":"names Labels rings starts Start times rings HHMM string format ends End times rings HHMM string format cols Colours rings format Defaults HHMM limits Region dielPlot() plot rings. Defaults c(1,2) legend Boolean. Whether plot legend.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":null,"dir":"Reference","previous_headings":"","what":"Dolbear's law — dolbear","title":"Dolbear's law — dolbear","text":"Calculates either chirps per minute based temperature vice versa using Dolbear's law (equivalent laws species)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dolbear's law — dolbear","text":"","code":"dolbear(n = NULL, t = NULL, species = \"Oecanthus fultoni\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dolbear's law — dolbear","text":"n Chirps per minute t Temperature Celsius species Species use (default Oecanthus fultoni)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Dolbear's law — dolbear","text":"Missing value n t","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dolbear.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dolbear's law — dolbear","text":"","code":"dolbear(n=6) #> [1] 5.142857 dolbear(t=25) #> [1] 145"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the duty cycle of a wave — dutyCycle","title":"Calculate the duty cycle of a wave — dutyCycle","text":"Proportion wave signal limit","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the duty cycle of a wave — dutyCycle","text":"","code":"dutyCycle(wave, limit = 0.1, output = \"unit\", normalise = TRUE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the duty cycle of a wave — dutyCycle","text":"wave Wave object limit Threshold consider signal output \"unit\" duty cycle range 0-1. percentage use \"percent\". normalise TRUE Wave normalised using tuneR","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the duty cycle of a wave — dutyCycle","text":"numerical value duty cycle 0 1 (0 100% percentage output).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/dutyCycle.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the duty cycle of a wave — dutyCycle","text":"","code":"wave <- tuneR::sine(2000) dc <- dutyCycle(wave) pc <- dutyCycle(wave, output=\"percent\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyDiel.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an empty diel plot — emptyDiel","title":"Create an empty diel plot — emptyDiel","text":"Create diel plot labels without sun altitude times day plotted.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyDiel.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an empty diel plot — emptyDiel","text":"","code":"emptyDiel(method = \"plotrix\", rot = pi)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyDiel.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an empty diel plot — emptyDiel","text":"method Plotting package use rot Rotation origin (defaults pi)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyYearly.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an empty yearly plot — emptyYearly","title":"Create an empty yearly plot — emptyYearly","text":"Create yearly plot labels without sun night duration plotted.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyYearly.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an empty yearly plot — emptyYearly","text":"","code":"emptyYearly(year = 2022, method = \"plotix\", rot = pi)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/emptyYearly.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an empty yearly plot — emptyYearly","text":"year Year plot (allows leap years) method Plotting package use rot Rotation origin (defaults pi)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Various measurements of frequency values for a Wave object — entropyStats","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"Calculates peak, centre, bandwidth quality factor. quality factor (Q) calculated -3dB -10dB discussed Bennett-Clark (1999) doi:10.1080/09524622.1999.9753408.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"","code":"entropyStats(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"wave Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"list spectral entropy types.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/entropyStats.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Various measurements of frequency values for a Wave object — entropyStats","text":"","code":"if (FALSE) { entropyStats(sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Apply a WaveFilter object to a Wave object — filterWave","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"WaveFilter object object containing information necessary filterw function apply filter Wave object. designed allow pipe operator (either magrittr base R) used apply filters Wave pipeline.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"","code":"filterWave(w, filt, cl = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"w Wave object. filt Wave object selected filter applied. cl Optional. cluster specified, filter applied parallel.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/filterWave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Apply a WaveFilter object to a Wave object — filterWave","text":"Supported filters include seewave package.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the frequency from wavelength and speed of sound — frequencySound","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"Calculates frequency sound wave given wavelength speed sound medium.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"","code":"frequencySound(wl, s = soundSpeed(medium = \"air\"))"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"wl Wavelength s Speed sound (defaults speed sound air)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"Frequency sound Hertz","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencySound.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the frequency from wavelength and speed of sound — frequencySound","text":"","code":"f <- frequencySound(wl=100, s=343)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencyStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Various measurements of frequency values for a Wave object — frequencyStats","title":"Various measurements of frequency values for a Wave object — frequencyStats","text":"Calculates peak, centre, bandwidth quality factor. quality factor (Q) calculated -3dB -10dB discussed Bennett-Clark (1999) .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencyStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Various measurements of frequency values for a Wave object — frequencyStats","text":"","code":"frequencyStats(wave, wave_spec = NULL, warn = TRUE, lowcut = 1, plot = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/frequencyStats.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Various measurements of frequency values for a Wave object — frequencyStats","text":"wave Wave object wave_spec precomputed spectrum (optional, present generated) warn TRUE provides warnings values consistent lowcut Frequency (kHz) values ignored. plot TRUE displays values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":null,"dir":"Reference","previous_headings":"","what":"Add noise to a Wave like object — generateNoise","title":"Add noise to a Wave like object — generateNoise","text":"Adding noise Wave like object allows testing robustness automated identification algorithms noise.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add noise to a Wave like object — generateNoise","text":"","code":"generateNoise( wave, noise = c(\"white\"), noise.add = FALSE, noise.ratio = 0.5, noise.ref = \"file\", output = \"list\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add noise to a Wave like object — generateNoise","text":"wave Object add noise (Wave, WaveMC, Tagged versions), list objects. noise Vector noise add (unif, gaussian, white, pink, power, red) noise.add TRUE noise sources added wave. FALSE separate outputs created noise source. noise.ratio Ratio maximum noise amplitude maximum amplitude wave. noise.ref Reference maximum noise.ratio. \"max\" maximum amplitude, \"file\" maximum amplitude wave. output TODO: implemented?","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateNoise.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add noise to a Wave like object — generateNoise","text":"list Wave objects required noise added.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeMask.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate time masked Wave-like objects — generateTimeMask","title":"Generate time masked Wave-like objects — generateTimeMask","text":"Given Wave-like object (list Wave-like objects), generate new Wave-like objects time masking.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeMask.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate time masked Wave-like objects — generateTimeMask","text":"","code":"generateTimeMask(wave, method = \"squarewave\", dutyCycle = 0.95, n.periods = 10)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeMask.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate time masked Wave-like objects — generateTimeMask","text":"wave Wave-like object (list Wave-like objects). method method use time masking (one \"squarewave\", \"random). dutyCycle duty cycle output. value 0.95 means 5% time masked. n.periods number waves generate squarewave method.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":null,"dir":"Reference","previous_headings":"","what":"Generated time-shifted versions of a Wave-like object — generateTimeShift","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"Given Wave-like object (list Wave-like objects), function generates time-shifted versions object. time-shifted versions generated adding constant amount time start end object. achieved either inserting silence truncating object original length, rotating audio within object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"","code":"generateTimeShift( wave, type = \"silent\", amount = c(1, 2), where = \"start\", output = \"list\" )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"wave Wave-like object list Wave-like objects. type type time-shift apply. Either \"silent\" \"rotate\". amount Vector amount time shift (seconds). insert silence type \"silent\". output Return list.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/generateTimeShift.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generated time-shifted versions of a Wave-like object — generateTimeShift","text":"Wave-like object list Wave-like objects.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":null,"dir":"Reference","previous_headings":"","what":"Google Speech API Transcribe — gs_transcribe","title":"Google Speech API Transcribe — gs_transcribe","text":"Wrapper around various Google packages simplify speech transcription.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Google Speech API Transcribe — gs_transcribe","text":"","code":"gs_transcribe(filename, bucket = NULL, ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Google Speech API Transcribe — gs_transcribe","text":"filename Path file analysis bucket Storage bucket Google Cloud larger files ... Additional arguments pass gl_speech()","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Google Speech API Transcribe — gs_transcribe","text":"gs_transcribe object containing details transcription","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/gs_transcribe.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Google Speech API Transcribe — gs_transcribe","text":"","code":"if (FALSE) { gs_transcribe(\"demo.wav\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":null,"dir":"Reference","previous_headings":"","what":"Converts bytes in human readable form — humanBytes","title":"Converts bytes in human readable form — humanBytes","text":"Given input bytes calculates result sensible output unit (e.g. MB, GB, PB).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Converts bytes in human readable form — humanBytes","text":"","code":"humanBytes(S)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Converts bytes in human readable form — humanBytes","text":"S Number bytes","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanBytes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Converts bytes in human readable form — humanBytes","text":"String human readable format","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":null,"dir":"Reference","previous_headings":"","what":"Converts time to human readable form — humanTime","title":"Converts time to human readable form — humanTime","text":"Given input bytes calculates result sensible output unit (e.g. minutes, hours).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Converts time to human readable form — humanTime","text":"","code":"humanTime(S, unit = \"seconds\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Converts time to human readable form — humanTime","text":"S Time convert unit unit unit time convert","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/humanTime.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Converts time to human readable form — humanTime","text":"String human readable format","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the jitter in a Wave object — jitter","title":"Calculate the jitter in a Wave object — jitter","text":"Jitter measure variability periods waveform. Relative jitter scaled jitter analysed waveform.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the jitter in a Wave object — jitter","text":"","code":"jitter(wave, method = \"absolute\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the jitter in a Wave object — jitter","text":"wave Wave object method One \"absolute\" \"relative\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the jitter in a Wave object — jitter","text":"vector zero crossing locations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/jitter.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the jitter in a Wave object — jitter","text":"","code":"if (FALSE) { jitter(sheep, method=\"absolute\") jitter(sheep, method=\"relative\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":null,"dir":"Reference","previous_headings":"","what":"Pad labels with interval — labelPadding","title":"Pad labels with interval — labelPadding","text":"Takes labels Google Speech API transcript pads time specified number seconds.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pad labels with interval — labelPadding","text":"","code":"labelPadding(t, pad = 0.5, max_t = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pad labels with interval — labelPadding","text":"t Transcript Google Speech API pad Amount time (seconds) add start end max_t Optional. duration file, padding exceed length file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pad labels with interval — labelPadding","text":"modified Google Speech API transcript object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelPadding.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pad labels with interval — labelPadding","text":"","code":"if (FALSE) { labelPadding(t, pad=2, max_t=duration(wave)) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":null,"dir":"Reference","previous_headings":"","what":"Combines labels which overlap into single continuous regions — labelReduction","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"Takes labels Google Speech API transcript combines overlapping labels.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"","code":"labelReduction(t)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"t Transcript Google Speech API","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"list containing start end times speech containing regions","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/labelReduction.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Combines labels which overlap into single continuous regions — labelReduction","text":"","code":"if (FALSE) { labelReduction(t) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":null,"dir":"Reference","previous_headings":"","what":"Map three vectors to RGB — map2RGB","title":"Map three vectors to RGB — map2RGB","text":"Maps three vectors equal length RGB use false-colour index spectrograms","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Map three vectors to RGB — map2RGB","text":"","code":"map2RGB(red, green, blue)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Map three vectors to RGB — map2RGB","text":"red red channel vector green green channel vector blue blue channel vector","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/map2RGB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Map three vectors to RGB — map2RGB","text":"vector RGB values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the natural frequency — naturalFrequency","title":"Calculate the natural frequency — naturalFrequency","text":"Calculates natural frequency given inductance, capacitance resistance. acoustic case inductance inertia mass, capacitance elasticity (bulk modulus) resistance composed air resistance related quantities. units SI.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the natural frequency — naturalFrequency","text":"","code":"naturalFrequency(L, C = \"default\", R)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the natural frequency — naturalFrequency","text":"L Inductance C Capacitance, default IUPAC standard pressure. R Resistance","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the natural frequency — naturalFrequency","text":"isothermal compression, bulk modulus equal pressure. default value C therefore IUPAC standard pressure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/naturalFrequency.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the natural frequency — naturalFrequency","text":"","code":"naturalFrequency(L=20,R=0.5) #> [1] 0.002950812 naturalFrequency(L=20,C=1/4,R=0.5) #> [1] 0.07114845"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":null,"dir":"Reference","previous_headings":"","what":"Natural Time Domain — ntd","title":"Natural Time Domain — ntd","text":"Runs function wave outputs values Natural Time Domain (see Varotsos, Sarlis & Skordas(2011) doi:10.1007/978-3-642-16449-1).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Natural Time Domain — ntd","text":"","code":"ntd(wave, events, FUN, normalise = FALSE, argument = \"wave\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Natural Time Domain — ntd","text":"wave Wave object containing pulses events Onset detected events, e.g. pulseDetection() FUN function run normalise TRUE output probability density argument \"wave\" supplies weave object function, \"vector\" supplies left channel numeric vector. ... Additional arguments FUN","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ntd.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Natural Time Domain — ntd","text":"list outputs form applied function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":null,"dir":"Reference","previous_headings":"","what":"Parse a filename — parseFilename","title":"Parse a filename — parseFilename","text":"Attempts extract meaningful information filename, typically date time recording started.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse a filename — parseFilename","text":"","code":"parseFilename(file, format = NULL, timezone = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse a filename — parseFilename","text":"file filename (list filenames). format Optionally force given format (see Details). NULL (default) attempt made automatically detect format file. \"match\" list filenames given attempt made find format matches files. may give incorrect results filename ambiguous (see Details). timezone Optionally set timezone.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse a filename — parseFilename","text":"list file, type match, datetime. possible determine additional properties files, added list.","code":""},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"determining-the-format","dir":"Reference","previous_headings":"","what":"Determining the format","title":"Parse a filename — parseFilename","text":"sometimes impossible accurately determine format filename, e.g. eight-digit 'AudioMoth HEX' contains numbers confused YYYYMMDD format. list filenames given \"match\" format specified effort made determine likely format applies filenames.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"supported-formats","dir":"Reference","previous_headings":"","what":"Supported formats","title":"Parse a filename — parseFilename","text":"AudioMoth - newer format AudioMoth devices consists standard YYYYMMDD_HHMMSS.wav format. Specifying 'AudioMoth' forces call audiomoth() function seewave package (Sueur et al. 2008) . AudioMoth HEX - Older format AudioMoth devices consisting eight hexadecimal characters. Conversion handled call seewave::audiomoth(). timestamp - standard date-time format. Uses R standard origin 1970-01-01 00:00:00 UTC. Wildlife Acoustics SM2 - Can also used Wildlife Acoustics SM4 devices. Conversion handled call seewave::songmeter(). Wildlife Acoustics SM3 - Conversion handled call seewave::songmeter(). YYYYMMDD_HHMMSS - standard date-time format.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Parse a filename — parseFilename","text":"Sueur J, Aubin T, Simonis C (2008). “Seewave, free modular tool sound analysis synthesis.” Bioacoustics, 18(2), 213--226.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/parseFilename.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Parse a filename — parseFilename","text":"","code":"parseFilename(\"5E90A4D4.wav\") #> $filename #> [1] \"5E90A4D4.wav\" #> #> $match #> [1] \"AudioMoth HEX\" #> #> $datetime #> [1] \"2020-04-10 16:54:44 UTC\" #>"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":null,"dir":"Reference","previous_headings":"","what":"Pulse detection using Dietrich (2004) — pd_dietrich2004","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"Detects pulses Wave using method described Dietrich et al (2004) doi:10.1016/j.patcog.2004.04.004.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"","code":"pd_dietrich2004( wave, U = 120, gamma = 0.05, alpha = 1.4, scaling = 32, V = 480, psi = 1 )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"wave Wave object U Window length gamma Gamma alpha Alpha scaling Scaling V V Window length psi Psi","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_dietrich2004.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pulse detection using Dietrich (2004) — pd_dietrich2004","text":"list input values plus onset offset times pulses","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_simple.html","id":null,"dir":"Reference","previous_headings":"","what":"Simplified pulse detection using Dietrich (2004) — pd_simple","title":"Simplified pulse detection using Dietrich (2004) — pd_simple","text":"Detects pulses Wave.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_simple.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simplified pulse detection using Dietrich (2004) — pd_simple","text":"","code":"pd_simple( wave, U = 120, gamma = 0.05, alpha = 1.4, scaling = 32, V = 480, psi = 1 )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pd_simple.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simplified pulse detection using Dietrich (2004) — pd_simple","text":"wave Wave object U Window length gamma Gamma alpha Alpha scaling Scaling V V Window length psi Psi","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar addition — +,PseudoWave,numeric-method","title":"PseudoWave scalar addition — +,PseudoWave,numeric-method","text":"PseudoWave scalar addition","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar addition — +,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric +(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar addition — +,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-numeric-PseudoWave-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","title":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","text":"Numeric addition PseudoWave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-numeric-PseudoWave-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","text":"","code":"# S4 method for numeric,PseudoWave +(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/plus-numeric-PseudoWave-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Numeric addition by PseudoWave — +,numeric,PseudoWave-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a PseudoWave object — pseudoWave","title":"Create a PseudoWave object — pseudoWave","text":"function used create PseudoWave object can used generate Wave object operated .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a PseudoWave object — pseudoWave","text":"","code":"pseudoWave( type = NA_character_, subtype = NA_character_, scale = 1, offset = 0, seed = 1, params = list() )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a PseudoWave object — pseudoWave","text":"type Type PseudoWave (e.g. \"noise\", \"sine\") subtype Subtype PseudoWave (e.g. \"white\" type \"noise\") scale Wave channels multiplied value offset value added Wave channels seed Random seed reproducible output. NA params List additional parameters pass generating function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a PseudoWave object — pseudoWave","text":"PseudoWave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pseudoWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a PseudoWave object — pseudoWave","text":"","code":"pw <- pseudoWave(\"noise\", \"white\") pw <- pseudoWave(\"sine\", params=list(\"f0\"=440))"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate a single pulse — pulse","title":"Generate a single pulse — pulse","text":"Generate single pulse, either Dirac pulse (Dirac delta) square pulse.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate a single pulse — pulse","text":"","code":"pulse( type = \"dirac\", leading = 22050, pulse.length = 1, duration = samp.rate, samp.rate = 44100, bit = 1, pcm = FALSE, stereo = FALSE, output = \"Wave\", invert = FALSE )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate a single pulse — pulse","text":"type Either \"dirac\" \"square\". leading number samples pulse. pulse.length number samples pulse (\"square\"). duration total number samples generated. samp.rate sample rate. bit bit depth. pcm Whether Wave generated PCM (see tuneR). stereo Whether Wave generated stereo. output output format (\"Wave\"). invert Whether invert pulse.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulse.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate a single pulse — pulse","text":"Specified output.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseDetection.html","id":null,"dir":"Reference","previous_headings":"","what":"Pulse detection — pulseDetection","title":"Pulse detection — pulseDetection","text":"Detects pulses Wave, defaults using Dietrich (2004).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseDetection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pulse detection — pulseDetection","text":"","code":"pulseDetection(wave, method = \"simple\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseDetection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pulse detection — pulseDetection","text":"wave Wave object containing pulses method method use pulse detection ... arguments pass pulse detection function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":null,"dir":"Reference","previous_headings":"","what":"Pulse intervals — pulseIntervals","title":"Pulse intervals — pulseIntervals","text":"Used locate area pulses results pulseDetection().","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pulse intervals — pulseIntervals","text":"","code":"pulseIntervals(pulses, nsd = 2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pulse intervals — pulseIntervals","text":"pulses result pulseDetection. nsd number standard deviations sid mean pulse interval discard","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/pulseIntervals.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pulse intervals — pulseIntervals","text":"list onset offset times pulses","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":null,"dir":"Reference","previous_headings":"","what":"The radar equation — radarPower","title":"The radar equation — radarPower","text":"Calculates power returned echolocation pulse","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"The radar equation — radarPower","text":"","code":"radarPower(P_t, r, area, G_t = 1, G_r = 1, wl = 1)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"The radar equation — radarPower","text":"P_t Power transmitted (sender) r Range target area Effective cross-sectional area target G_t Transmitter gain G_r Receiver gain wl Wavelength (use G_r G_t)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"The radar equation — radarPower","text":"received power","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarPower.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The radar equation — radarPower","text":"","code":"radarPower(12, 20, 0.05) #> [1] 1.889738e-09 radarPower(12, 20, 0.05, G_t=1.2, G_r=1.5, wl=0.045) #> [1] 6.888096e-12"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":null,"dir":"Reference","previous_headings":"","what":"Radar range — radarRange","title":"Radar range — radarRange","text":"Calculates distance object based round trip time echolocation pulse","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Radar range — radarRange","text":"","code":"radarRange(t, c = soundSpeed(medium = \"air\"))"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Radar range — radarRange","text":"t Time seconds c Speed sound transmission medium m/s (default air)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Radar range — radarRange","text":"Distance object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radarRange.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Radar range — radarRange","text":"","code":"radarRange(2) #> [1] 343 radarRange(2, c=343) #> [1] 343 radarRange(2, c=soundSpeed(medium = \"sea water\")) #> [1] 1500"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radialPolygon.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a radial polygon — radialPolygon","title":"Plot a radial polygon — radialPolygon","text":"Used plot sectors, annuli horizons dielPlot() yearlyPlot(). polygon inner outer horizon - can set fixed radius vector.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radialPolygon.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a radial polygon — radialPolygon","text":"","code":"radialPolygon( angle1, angle2, radius1, radius2, col = \"grey\", border = NA, rot = -pi, angleinc = 0.01, reverse = TRUE, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/radialPolygon.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a radial polygon — radialPolygon","text":"angle1 Angles inner line angle2 Angles outer line radius1 Radii inner line radius2 Radii outer line col Colour polygon border Border colour (see polygon() details) rot Rotation plot, defaults pi match dielPlot() yearlyPlot() angleinc angular increment radians calculating circular lines reverse FALSE plots anti-clockwise direction ... parameters passed polygon()","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":null,"dir":"Reference","previous_headings":"","what":"Rainfall detection — rainfallDetection","title":"Rainfall detection — rainfallDetection","text":"Detects rainfall Wave. uncalibrated version Bedoya et al (2017) doi:10.1016/j.ecolind.2016.12.018 available package. hardRain package can also accessed via wrapper.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Rainfall detection — rainfallDetection","text":"","code":"rainfallDetection(wave, method = \"bedoya2017\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Rainfall detection — rainfallDetection","text":"wave Wave object detect rainfall method rainfall detection method use (\"bedoya2017\") ... arguments pass rain detection function","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Rainfall detection — rainfallDetection","text":"Numeric value rainfall detection algorithm chosen.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/rainfallDetection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Rainfall detection — rainfallDetection","text":"","code":"if (FALSE) { rainfallDetection(sheep, method=\"bedoya2017\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudacityLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Read an Audacity label file — readAudacityLabels","title":"Read an Audacity label file — readAudacityLabels","text":"Reads Audacity label file returns either list Annotation objects data frame.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudacityLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read an Audacity label file — readAudacityLabels","text":"","code":"readAudacityLabels(file, output = \"annotations\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudacityLabels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read an Audacity label file — readAudacityLabels","text":"file Path Audacity label file. output One \"annotations\" \"data.frame\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":null,"dir":"Reference","previous_headings":"","what":"Read an audio file — readAudio","title":"Read an audio file — readAudio","text":"file used read audio file return Wave object, abstraction function various specific audio reading functions. existing method can identified attempt made use av package read audio.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read an audio file — readAudio","text":"","code":"readAudio(file, mime = \"auto\", from = 0, to = Inf, units = \"seconds\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read an audio file — readAudio","text":"file File read mime MIME type file read, \"auto\". Supported types \"audio/x-wav\" \"audio/mpeg\" (MP3) Start point file return End point file return units One \"samples\", \"seconds\", \"minutes\", \"hours\". Default \"seconds\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readAudio.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read an audio file — readAudio","text":"Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":null,"dir":"Reference","previous_headings":"","what":"Read output files from BirdNet Analyser — readBirdNet","title":"Read output files from BirdNet Analyser — readBirdNet","text":"Reads single file, directory files, output BirdNet Analyser.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read output files from BirdNet Analyser — readBirdNet","text":"","code":"readBirdNet(file, filename_parsing = \"none\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read output files from BirdNet Analyser — readBirdNet","text":"file Filename directory filename_parsing Allows filename parsing, accepted values one none, audiomoth, timestamp.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readBirdNet.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read output files from BirdNet Analyser — readBirdNet","text":"data frame.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":null,"dir":"Reference","previous_headings":"","what":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"Seeed Studio Respeaker-6 used described documentation saves eight channel audio file channels 7 8 containing input audio. function reads file saves six channel file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"","code":"readRespeaker6(filename, from = 1, to = Inf, units = \"samples\", header = FALSE)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"filename file read. start reading wave units. stop reading wave units. units Units given, default \"samples\", can set time intervals \"seconds\". header TRUE, just header information Wave file returned, otherwise (default) whole Wave object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/readRespeaker6.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read a file from Seeed Studio Respeaker 6 mic array — readRespeaker6","text":"WaveMC object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":null,"dir":"Reference","previous_headings":"","what":"Reference intensity — referenceIntensity","title":"Reference intensity — referenceIntensity","text":"Provides standard reference intensity level.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Reference intensity — referenceIntensity","text":"","code":"referenceIntensity(unit = \"watt_cm2\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Reference intensity — referenceIntensity","text":"unit Unit return, \"watt_cm2\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referenceIntensity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Reference intensity — referenceIntensity","text":"","code":"ri <- referenceIntensity()"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":null,"dir":"Reference","previous_headings":"","what":"Reference pressure — referencePressure","title":"Reference pressure — referencePressure","text":"Provides standard reference pressure level.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Reference pressure — referencePressure","text":"","code":"referencePressure(unit = \"Pa\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Reference pressure — referencePressure","text":"unit Unit return, \"Pa\" \"dyne_cm2\"","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/referencePressure.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Reference pressure — referencePressure","text":"","code":"rp <- referencePressure() rp <- referencePressure(unit=\"dyne_cm2\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":null,"dir":"Reference","previous_headings":"","what":"Specify a region with a file to analyse — region","title":"Specify a region with a file to analyse — region","text":"Specifies time-bounded region analyse.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Specify a region with a file to analyse — region","text":"","code":"region(unit, from = 0, to = Inf)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Specify a region with a file to analyse — region","text":"unit Unit time (one samples, seconds, minutes, hours) Start time End time","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/region.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Specify a region with a file to analyse — region","text":"TimeRegion object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the resonant frequency — resonantFrequency","title":"Calculate the resonant frequency — resonantFrequency","text":"Calculates resonant frequency given inductance capacitance. acoustic case inductance inertia mass, capacitance elasticity (bulk modulus) resistance composed air resistance related quantities. units SI.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the resonant frequency — resonantFrequency","text":"","code":"resonantFrequency(L, C = \"default\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the resonant frequency — resonantFrequency","text":"L Inductance C Capacitance, default IUPAC standard pressure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the resonant frequency — resonantFrequency","text":"isothermal compression, bulk modulus equal pressure. default value C therefore IUPAC standard pressure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/resonantFrequency.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the resonant frequency — resonantFrequency","text":"","code":"f <- resonantFrequency(L=1)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":null,"dir":"Reference","previous_headings":"","what":"Sample duration — sDuration","title":"Sample duration — sDuration","text":"Calculates time represented n samples Wave.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sample duration — sDuration","text":"","code":"sDuration(n = 1, wave = NULL, samp.rate = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Sample duration — sDuration","text":"n number samples wave Wave object containing pulses samp.rate Integer sampling rate","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Sample duration — sDuration","text":"numeric value seconds","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sDuration.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Sample duration — sDuration","text":"","code":"sDuration(n=20, samp.rate=44100) #> [1] 0.0004535147 if (FALSE) { sDuration(n=20, wave=sheep)#' }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sheepFrequencyStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Sheep frequencyStats — sheepFrequencyStats","title":"Sheep frequencyStats — sheepFrequencyStats","text":"frequencyStats sheep data file seewave package.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sheepFrequencyStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sheep frequencyStats — sheepFrequencyStats","text":"","code":"sheepFrequencyStats"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sheepFrequencyStats.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Sheep frequencyStats — sheepFrequencyStats","text":"object class list length 3.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the shimmer in a Wave object — shimmer","title":"Calculate the shimmer in a Wave object — shimmer","text":"Jitter measure variability amplitudes within periods waveform. Relative shimmer scaled shimmer analysed waveform.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the shimmer in a Wave object — shimmer","text":"","code":"shimmer(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the shimmer in a Wave object — shimmer","text":"wave Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the shimmer in a Wave object — shimmer","text":"vector zero crossing locations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/shimmer.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the shimmer in a Wave object — shimmer","text":"","code":"if (FALSE) { shimmer(sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/slash-PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar division — /,PseudoWave,numeric-method","title":"PseudoWave scalar division — /,PseudoWave,numeric-method","text":"PseudoWave scalar division","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/slash-PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar division — /,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric /(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/slash-PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar division — /,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the speed of sound in a medium — soundSpeed","title":"Calculate the speed of sound in a medium — soundSpeed","text":"Given sufficient parameters (.e. wavelength frequency, bulk modulus density) function calculates speed sound.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the speed of sound in a medium — soundSpeed","text":"","code":"soundSpeed( medium = NULL, method = NULL, wl = NULL, f = NULL, bulkModulus = NULL, density = NULL, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the speed of sound in a medium — soundSpeed","text":"medium Propagation medium (e.g. \"air\"), \"\" return list available media. method Use specific method calculate speed sound (see Details). wl Wavelength f Frequency bulkModulus Bulk modulus density Density ... Additional parameters passed method.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the speed of sound in a medium — soundSpeed","text":"speed sound can calculated using following methods: cramer Uses method described Cramer (1993) . Additional parameters : temp Temperature temp.unit Temperature unit pressure Pressure pressure.unit Pressure unit RH Relative humidity MoleFracCO2 Mole fraction CO2 seewave Delegates calculation speed sound air package seewave (Sueur et al. 2008) . calculation . performed \\(\\text{speed} = 331.4 + 0.6 \\times \\text{temp}\\). Additional parameters : temp Temperature","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Calculate the speed of sound in a medium — soundSpeed","text":"Cramer O (1993). “variation specific heat ratio speed sound air temperature, pressure, humidity, CO2 concentration.” Journal Acoustical Society America, 93(5), 2510-2516. ISSN 0001-4966, doi:10.1121/1.405827 . Sueur J, Aubin T, Simonis C (2008). “Seewave, free modular tool sound analysis synthesis.” Bioacoustics, 18(2), 213--226.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/soundSpeed.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the speed of sound in a medium — soundSpeed","text":"","code":"soundSpeed(medium=\"air\") #> [1] 343 soundSpeed(medium=\"sea water\") #> [1] 1500 soundSpeed(method=\"cramer\", temp=14, pressure=3, RH=10) #> [1] 342.682 soundSpeed(method=\"cramer\", temp=14, temp.unit=\"C\", pressure=3, pressure.unit=\"kPa\", RH=10) #> [1] 342.682 t <- 1:30 s <- lapply(t, \\(x){soundSpeed(method=\"cramer\", temp=x)})"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate and plot statistics on a frequency spectrum — specStats","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"Given list outputs meanspec generates plot mean shown line, either minimum/maximum values one standard deviation shown ribbon.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"","code":"specStats(spectra, stats = \"minMax\", line.col = \"black\", ribbon.col = \"grey70\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"spectra list spectra stats Either minMax sd line.col Colour line ribbon.col Colour ribbon","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/specStats.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate and plot statistics on a frequency spectrum — specStats","text":"ggplot2 object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":null,"dir":"Reference","previous_headings":"","what":"Short term energy — ste","title":"Short term energy — ste","text":"Computes short term energy Wave.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Short term energy — ste","text":"","code":"ste(wave, method = \"dietrich2004\", ...)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Short term energy — ste","text":"wave Wave object method method used calculate short term energy, default \"dietrich2004\" use (Dietrich et al. 2004) . ... arguments pass ste method.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Short term energy — ste","text":"vector short term energy values","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Short term energy — ste","text":"Dietrich C, Palm G, Riede K, Schwenker F (2004). “Classification bioacoustic time series based combination global local decisions.” Pattern Recognition, 37(12), 2293--2305.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/ste.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Short term energy — ste","text":"","code":"if (FALSE) { ste(sheep, method=\"dietrich2004\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sub-Wave-TimeRegion-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","title":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","text":"Allow subsetting Wave object TimeRegion","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sub-Wave-TimeRegion-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","text":"","code":"# S4 method for Wave,TimeRegion [(x, i)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sub-Wave-TimeRegion-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Allow subsetting a Wave object with a TimeRegion — [,Wave,TimeRegion-method","text":"x Wave Object TimeRegion object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":null,"dir":"Reference","previous_headings":"","what":"Subtract two spectra from seewave — subtractSpectra","title":"Subtract two spectra from seewave — subtractSpectra","text":"function takes two spectra seewave (equivalent) subtracts values. spectra must bins.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Subtract two spectra from seewave — subtractSpectra","text":"","code":"subtractSpectra(s1, s2, coerceNegative = \"no\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Subtract two spectra from seewave — subtractSpectra","text":"s1 First spectrum s2 Second spectrum coerceNegative Sets values zero zero, accepted values \"input\", \"output\" \"\".","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Subtract two spectra from seewave — subtractSpectra","text":"spectrum s1 - s2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/subtractSpectra.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Subtract two spectra from seewave — subtractSpectra","text":"","code":"if (FALSE) { subtractSpectra(spec1, spec2) subtractSpectra(spec1, spec2, coerceNegative=\"both\") }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate a frequency-swept sine wave — sweptsine","title":"Generate a frequency-swept sine wave — sweptsine","text":"Generates frequency swept sine wave returns Wave object vector.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate a frequency-swept sine wave — sweptsine","text":"","code":"sweptsine( f0 = 100, f1 = 2500, sweep.time = 1, time.unit = \"seconds\", A = 1, samp.rate = 44100, output = \"wave\", ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate a frequency-swept sine wave — sweptsine","text":"f0 Start frequency f1 End frequency sweep.time Duration swept wave time.unit One \"seconds\", \"samples\" Amplitude wave samp.rate Sample rate swept wave output \"wave\" Wave object, \"vector\" ... Additional arguments pass data2Wave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate a frequency-swept sine wave — sweptsine","text":"swept wave object type specified output.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/sweptsine.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate a frequency-swept sine wave — sweptsine","text":"","code":"sweptsine() #> #> Wave Object #> \tNumber of Samples: 44100 #> \tDuration (seconds): 1 #> \tSamplingrate (Hertz): 44100 #> \tChannels (Mono/Stereo): Mono #> \tPCM (integer format): TRUE #> \tBit (8/16/24/32/64): 16 #>"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":null,"dir":"Reference","previous_headings":"","what":"Samples per time period — tSamples","title":"Samples per time period — tSamples","text":"Calculates number samples given duration wave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Samples per time period — tSamples","text":"","code":"tSamples(time = 1, wave = NULL, samp.rate = NULL)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Samples per time period — tSamples","text":"time duration seconds wave Wave object containing pulses samp.rate Integer sampling rate","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Samples per time period — tSamples","text":"Number samples","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tSamples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Samples per time period — tSamples","text":"","code":"tSamples(10, samp.rate=44100) #> [1] 441000 if (FALSE) { tSamples(10, wave=sheep) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Tag a Wave or WaveMC object — tagWave","title":"Tag a Wave or WaveMC object — tagWave","text":"function takes Wave/WaveMC object (list objects) returns corresponding tagged version (TaggedWave TaggedWaveMC).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Tag a Wave or WaveMC object — tagWave","text":"","code":"tagWave(w, origin = \"user\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Tag a Wave or WaveMC object — tagWave","text":"w Wave WaveMC object (list objects). origin origin object (default \"user\").","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tagWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Tag a Wave or WaveMC object — tagWave","text":"TaggedWave TaggedWaveMC object (list objects).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-PseudoWave-numeric-method.html","id":null,"dir":"Reference","previous_headings":"","what":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","title":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","text":"PseudoWave scalar manipulation","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-PseudoWave-numeric-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","text":"","code":"# S4 method for PseudoWave,numeric *(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-PseudoWave-numeric-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PseudoWave scalar manipulation — *,PseudoWave,numeric-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-numeric-PseudoWave-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","title":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","text":"Numeric multiplication PseudoWave","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-numeric-PseudoWave-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","text":"","code":"# S4 method for numeric,PseudoWave *(e1, e2)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/times-numeric-PseudoWave-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Numeric multiplication by PseudoWave — *,numeric,PseudoWave-method","text":"e1 Input 1 e2 Input 2","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":null,"dir":"Reference","previous_headings":"","what":"Typical volumes — typicalVolume","title":"Typical volumes — typicalVolume","text":"Typical volumes everyday things.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Typical volumes — typicalVolume","text":"","code":"typicalVolume(thing = NA_character_)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Typical volumes — typicalVolume","text":"thing Volume thing, missing returns volumes","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Typical volumes — typicalVolume","text":"Typical volume thing dBA, thing parameter data frame volumes","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/typicalVolume.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Typical volumes — typicalVolume","text":"","code":"typicalVolume() #> thing dBA #> 1 steam engine 85 #> 2 printing works 87 #> 3 diesel electric generator 96 #> 4 screw-heading machine 101 #> 5 weaving shed 104 #> 6 sawmill chipper 105 #> 7 metalwork grinder 106 #> 8 wood-planing machine 108 #> 9 metal saw 110 #> 10 rock band 115 #> 11 boiler works 118 #> 12 metal hammering 118 #> 13 jet take-off 120 #> 14 rocket launch 160 typicalVolume(\"rocket launch\") #> [1] 160"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tzRot.html","id":null,"dir":"Reference","previous_headings":"","what":"Converts a timezone offset into a rotation — tzRot","title":"Converts a timezone offset into a rotation — tzRot","text":"Given timezone offset hours returns rotation radians apply values diel plot.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tzRot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Converts a timezone offset into a rotation — tzRot","text":"","code":"tzRot(tz, init = pi)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/tzRot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Converts a timezone offset into a rotation — tzRot","text":"tz Timezone numeric init Initial rotation. Defaults pi.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Untag a TaggedWave or TaggedWaveMC object — untagWave","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"function takes TaggedWave/TaggedWaveMC object (list objects) returns corresponding Wave/WaveMC object (list objects).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"","code":"untagWave(w)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"w TaggedWave TaggedWaveMC object (list objects).","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"Wave WaveMC object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/untagWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Untag a TaggedWave or TaggedWaveMC object — untagWave","text":"","code":"if (FALSE) { w <- noise(\"white\") tw <- tagWave(w) w2 <- untagWave(tw) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":null,"dir":"Reference","previous_headings":"","what":"Upsample a wave — upsample","title":"Upsample a wave — upsample","text":"Used upsample Wave object. upsampled sample rate must natural multiple current sample rate.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Upsample a wave — upsample","text":"","code":"upsample(wave, upsample.rate, method = \"basic\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Upsample a wave — upsample","text":"wave Wave object upsample. upsample.rate sample rate upsample . method \"basic\" linear, function interpolate NAs vector","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Upsample a wave — upsample","text":"resampled Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/upsample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Upsample a wave — upsample","text":"","code":"wave <- tuneR::sine(4000, samp.rate=44100) wave2 <- upsample(wave, 88200)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/validateIsWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Check an object is a Wave object — validateIsWave","title":"Check an object is a Wave object — validateIsWave","text":"Helper function test input Wave object. create error .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/validateIsWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check an object is a Wave object — validateIsWave","text":"","code":"validateIsWave(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/validateIsWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check an object is a Wave object — validateIsWave","text":"wave Object test","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":null,"dir":"Reference","previous_headings":"","what":"Windowing Function for Wave Objects — windowing","title":"Windowing Function for Wave Objects — windowing","text":"Separates Wave object windows defined length runs function window section. Windows may overlap, function can make use 'parallel' package multi-core processing. also show progress bar 'pbapply' package installed.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Windowing Function for Wave Objects — windowing","text":"","code":"windowing( wave, window.length, FUN, window.overlap = 0, bind.wave = TRUE, complete.windows = TRUE, cluster = NULL, ... )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Windowing Function for Wave Objects — windowing","text":"wave Wave object filename. Using filenames may save loading entire large file memory. window.length length analysis window (samples). FUN FUN applied windows. window.overlap overlap successive windows (samples), negative value result gap windows. bind.wave TRUE FUN returns wave objects, combined single object complete.windows TRUE (default) final window processed unless length equal window.length. cluster cluster form 'parallel' package multi-core computation. ... Additional parameters FUN","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/windowing.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Windowing Function for Wave Objects — windowing","text":"","code":"if (FALSE) { windowing(wave, window.length=1000, FUN=duration, window.overlap=0, bind.wave=TRUE) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Write an Audacity label file — writeAudacityLabels","title":"Write an Audacity label file — writeAudacityLabels","text":"Writes list Annotation objects Audacity label file. Internally uses write.audacity() function seewave package (Sueur et al. 2008) .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Write an Audacity label file — writeAudacityLabels","text":"","code":"writeAudacityLabels(annotations, file)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Write an Audacity label file — writeAudacityLabels","text":"annotations list Annotation objects. file Path Audacity label file.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/writeAudacityLabels.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Write an Audacity label file — writeAudacityLabels","text":"Sueur J, Aubin T, Simonis C (2008). “Seewave, free modular tool sound analysis synthesis.” Bioacoustics, 18(2), 213--226.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyFraction.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the fraction of a year given by a value — yearlyFraction","title":"Calculate the fraction of a year given by a value — yearlyFraction","text":"Given object can coerced POSIXlt, return fraction year represented object.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyFraction.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the fraction of a year given by a value — yearlyFraction","text":"","code":"yearlyFraction(t, year = 2022, input = \"POSIX\", unit = \"radians\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyFraction.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the fraction of a year given by a value — yearlyFraction","text":"t Object converted fraction year Year calculate fractions (allows leap years) input One POSIXlt (default) unit set radians outputs position around circle. set fraction outputs raw fraction.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyLabels.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate labels for a yearly plot — yearlyLabels","title":"Generate labels for a yearly plot — yearlyLabels","text":"Generates monthly labels yearlyPlot()..","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyLabels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate labels for a yearly plot — yearlyLabels","text":"","code":"yearlyLabels()"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPlot.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a yearly plot — yearlyPlot","title":"Create a yearly plot — yearlyPlot","text":"ToDO......","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPlot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a yearly plot — yearlyPlot","text":"","code":"yearlyPlot( year = 2022, lat, lon, limits = c(0, 2), plot = NULL, method = \"plotrix\", legend = F )"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPlot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a yearly plot — yearlyPlot","text":"year Year plot (allows leap years). lat Numeric latitude. lon Numeric longitude. limits Plotting limits daylight regions, default c(1,2) plot Character vector components plot method Plotting library use legend Whether show legend","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate positions of labels for a yearly plot — yearlyPositions","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"Generates positions monthly labels dielPlot() radians. positions can either start month, middle month.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"","code":"yearlyPositions(year = 2022, format = \"months\")"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"year Year calculate format One months, mid-months, days","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/yearlyPositions.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate positions of labels for a yearly plot — yearlyPositions","text":"function allows leap years year parameter provided.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":null,"dir":"Reference","previous_headings":"","what":"Zero spectrum — zeroSpectrum","title":"Zero spectrum — zeroSpectrum","text":"function takes spectrum seewave creates new zero-valued spectrum structure.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Zero spectrum — zeroSpectrum","text":"","code":"zeroSpectrum(s1)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Zero spectrum — zeroSpectrum","text":"s1 Spectrum emulate structure .","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Zero spectrum — zeroSpectrum","text":"zero-valued spectrum.","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zeroSpectrum.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Zero spectrum — zeroSpectrum","text":"","code":"if (FALSE) { zeroSpectrum(spec) }"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":null,"dir":"Reference","previous_headings":"","what":"Identify zero crossings in a Wave object — zerocross","title":"Identify zero crossings in a Wave object — zerocross","text":"Returns vector position (samples) zero crossings Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Identify zero crossings in a Wave object — zerocross","text":"","code":"zerocross(wave)"},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Identify zero crossings in a Wave object — zerocross","text":"wave Wave object","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Identify zero crossings in a Wave object — zerocross","text":"vector zero crossing locations","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/reference/zerocross.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Identify zero crossings in a Wave object — zerocross","text":"","code":"if (FALSE) { zerocross(sheep) }"},{"path":[]},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"new-functions-0-0-5","dir":"Changelog","previous_headings":"","what":"New functions","title":"sonicscrewdriver 0.0.5","text":"use BirdNET-Analyzer within R using reticulate readAudio() generic function read audio files readAudacityLabels() read Audacity label files citation() information angle conversion Dolbear’s law audioblast() - search recordings analyses audioblast.org audioblastDownload() - Download files audioBlast allChannels analysing multi-channel audio read Respeaker6 formatted files","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"new-classes-0-0-5","dir":"Changelog","previous_headings":"","what":"New classes","title":"sonicscrewdriver 0.0.5","text":"Annotation class (recording manipulating annotations) PseudoWave class (e.g. apply noise file length) TaggedWaves class (document metadata processing) WaveFilter class (supports applying filters using pipes)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"fixes-0-0-5","dir":"Changelog","previous_headings":"","what":"Fixes","title":"sonicscrewdriver 0.0.5","text":"audiomothWave() fix (comments consistently placed header)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"sonicscrewdriver-004","dir":"Changelog","previous_headings":"","what":"sonicscrewdriver 0.0.4","title":"sonicscrewdriver 0.0.4","text":"CRAN release: 2021-05-02 support reading AudioMoth configuration files support reading AudioMoth metadata wave files audioRead function convert audio file types Wave object parseFilename now accepts POSIX timestamp format provides typical volumes (decibels)","code":""},{"path":"http://sonicscrewdriver.ebaker.me.uk/news/index.html","id":"sonicscrewdriver-003","dir":"Changelog","previous_headings":"","what":"sonicscrewdriver 0.0.3","title":"sonicscrewdriver 0.0.3","text":"CRAN release: 2020-11-15 Jitter shimmer functions added.","code":""}]