From e3ab7134d4e59c2d17b0b2965a95b0b01012bda1 Mon Sep 17 00:00:00 2001 From: litter Date: Tue, 29 Oct 2019 10:35:54 -0400 Subject: [PATCH] Run in P2D mode. Much more efficient using OpenGL. --- examples/BasicOptical/BasicOptical.pde | 5 +++-- .../OpticalWithPlayback.pde | 4 ++-- library/SoundtrackOptical.jar | Bin 5564 -> 5589 bytes src/soundtrack/optical/SoundtrackOptical.java | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/BasicOptical/BasicOptical.pde b/examples/BasicOptical/BasicOptical.pde index a5cd4f4..41e7cdf 100755 --- a/examples/BasicOptical/BasicOptical.pde +++ b/examples/BasicOptical/BasicOptical.pde @@ -11,9 +11,10 @@ String pitch = "long"; //whether the film is "long" or "sh boolean positive = true; //whether the film is positive or negative void setup() { - size(213, 620); //this will perfectly fill the frame with the soundtrack @ 2400DPI + size(213, 620, P2D); //this will perfectly fill the frame with the soundtrack @ 2400DPI + //must run in P2D or P2D (acheives realtime playback easier) - frameRate(24); //this will playback at realtime speed + frameRate(24); //this will playback at realtime speed soundtrack = new SoundtrackOptical(this, soundtrackFile, dpi, volume, type, pitch, positive); } diff --git a/examples/OpticalWithPlayback/OpticalWithPlayback.pde b/examples/OpticalWithPlayback/OpticalWithPlayback.pde index 9ad525c..ef9840a 100644 --- a/examples/OpticalWithPlayback/OpticalWithPlayback.pde +++ b/examples/OpticalWithPlayback/OpticalWithPlayback.pde @@ -12,12 +12,12 @@ String pitch = "long"; boolean positive = true; void setup() { - size(213, 620); + size(213, 620, P2D); frameRate(24); soundtrack = new SoundtrackOptical(this, soundtrackFile, dpi, volume, type, pitch, positive); playback = new SoundFile(this, soundtrackFile); - playback.play(); + playback.play(); //playback alongside image } void draw () { diff --git a/library/SoundtrackOptical.jar b/library/SoundtrackOptical.jar index 94d9b24d7530ff9b9e428d5a797760e2bbf4f562..0230963f2e8effae00bd42d1c8933c51abc1fb0e 100644 GIT binary patch delta 2671 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 delta 2667 zcmV-x3Y7KLE4(WVP)h>@6aWYa2mo&su?!Lf0%jDGAOt>td3;;N5&l+^CE4D@vf?;# zY$u^j!Bzn0Al!r)Y$YnT;|s+JA&D%@wrp7vvTPcTa^-@OKuMsb_)d(Z#piKhXafq!`5P*^gW z8cX(NGm+?ja6>AcjYlJihOUBXy=C#hrQjQij7J(0k>o(b`re^fG^^n1-q_x(;BT2) z>dI!~$$|3}oK5W^1;wAYeSKG`I~3+lwMoGpUf*(Qt4x9lMd^4pI>dZWlM+ z&c+S4sZ`X0!)Y@*b+?4tjN)l(ZX?W%jMLH_?BTHc||Q6&giwi*|;F2VT+6)F?)Y zXlHAbLVIy8JttDh0kNI0F$->2;|nWS%Jf2ijWTH0nt#7$p14TECsW^{*JRqPQ4THI zS`9yR2|~EUgO8IOQwL~`WCt}`K*|(lB<+k=7pxD-W9v2MSg1NQDlDx_W3HuLs!?fa z8#Lxw+D47}mUfv&m8D&-vA}|{RioOnMKo$GEviv#X)%q3*1iFaMV1!VI0bd04QtGQ zhTFYn;Z?7%eW>DUD#JS$9_x5p4t0e_2BSPce-j(Sa4!$l^}~NrBGz- z=^us>^&5-WkcpOzA_ic)i9AvgkH;CmW>tW^-H zyCj!V5)m%JVN7^%gx%nTInj7fE@*LYY#^R&Vuz83zO3;Tv3ip!dQJ_;#P~Ihhww1* zu~{Xobn#9N zmjx~8d+<$-r}2#GrD<6T8W%x-FP&}`MJic;-n(KJ^a2XztH%lWT!0erfDjvzt;GT)Ws7^_F1)m+JoO|{2qT` z$>SrDftcKZnHL}=OXpb?Af0;n<9kaPpMTQ$vnf=9Y~1!N93G3QHl_9NF(gcG}u;l_P( zE}1>$&S7Ujy!Xg|bP~IB*y}vgJHaf=Lvy{8xGjhM)aBQA=Y1%Zh5eEa%hrF_Jq26; z4zHT)wWA$8{>&q+vJ-c5d=ASwo(dPMUP9KCv(}Z=s>$V($lFuM+0$rUNscy>pB?1p zX6{Iki&v0`LSuJ}YFVCVW;#yPG%BVYJWjluo04p0~kew0pQ(WHhB7L7S4Blk+e(MOz0<}~(9mTgNFl>z9J#73h_djLqk_g=-c$j3~K-%}P{cYr>*hF$(jtjAcJ9=q}^1l!Lh#`qV z?8Xpo#V~y(_%=!M6`jKKNb?1l!CM%`Kl$c=mmjBYjH_x~sh02ybQ!j*RTxrhaE)4v zYt=S>GY;W8L*IZ!g#vwt@j7XzjP?dK2X4lHQM_sBd%t-}`1GRU>N%cwP^*?!EGVrg zFP-J!wrBJF;^B(SJFCnPM6y!NZ2VDj;4nETkxPLa`J%eXU|4Kz&tstWriFo8mBHYU z&j;Im(so}bOzElVE3!M@7754S7KRg1v+ezHXPf7CvAOK#CEYVEc3mNMT_JW|A@<9E zh1mDY--ySOuv+bU*mojdMWmj2K%N#?J7X+ zDnRWjKz+3Ub&^oUPlti(^CfEd%Y$|C%AJu1CUou@^mz-|rVKTFD1hy-!B*m2)8s5(dEj^lRivszKGp0qJSb+$ zPSX^sr<#KQFZqrjZ)ekV%I)K9p2S<$rQK_GZSJSRW}@jOg=|}gSjZS4$Xa&mCG67; z?9eONo7WIr2cg|%4r)*o4%2BLMu5BESTT$G-%b7A{x48V2M8tYzv1Bt007$o5wm0t zcLf4(6qDT(=?-QTT~8(Lzv1Bt007$&lhhPw0Zo%V6*mE+lXVq8Aqx=z08B|kMNU&i ZP)h{{000002mlBG@Bsh-wi5sV003l_D$)P| diff --git a/src/soundtrack/optical/SoundtrackOptical.java b/src/soundtrack/optical/SoundtrackOptical.java index 6214dbd..e2ffa61 100755 --- a/src/soundtrack/optical/SoundtrackOptical.java +++ b/src/soundtrack/optical/SoundtrackOptical.java @@ -63,7 +63,7 @@ public class SoundtrackOptical { FRAMES = (int) Math.ceil(soundfile.frames() / RAW_FRAME_H); frameSample = new float[RAW_FRAME_H]; - raw = parent.createGraphics(RAW_FRAME_W, RAW_FRAME_H); + raw = parent.createGraphics(RAW_FRAME_W, RAW_FRAME_H, parent.P2D); for (int x = 0; x < soundfile.frames(); x++) {