<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Very nice indeed!</div><div><br></div><div>The PluckedSound, at least, sounds better than its Squeak predecessor now. I guess we should port back your improvements :) I tried commenting out the Squeak primitive code, and found that with current CPU speeds, it is not needed anymore. On my machine the synthesis, even if interpreted, uses only about 1 % of CPU time per voice.</div><div><br></div><div>One feature missing from the Lively keyboard (that the Squeak one had) is sustaining a note as long as a key is pressed.  And loading MIDI files can't be that far off, right? Only attaching an actual keyboard might proof impractical ...</div><div><br></div><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">- Bert -</span><div><font class="Apple-style-span" face="Helvetica"><br></font><div><div>On 11.03.2012, at 10:53, Jens Lincke wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">wow, this is very clear sound now, nice :-)<div><br><div><div>Am 11.03.2012 um 03:52 schrieb Dan Ingalls:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">Hi all -</span><div><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "><br></span></div><div><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">For anyone interested, I finally got a chance to finish most of what I wanted to do.  FM synthesis now works - there's a brass-like and clarinet-like patch to try.  Also I added a line of interpolation to banish the noise in PluckedSounds - they're really nice now.  I also refactored everything so that Envelopes are free of streaming state and thus can be shared among notes.</span><div><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "><br></span></div><div><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">Should work </span><span style="font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; color: rgb(0, 0, 139); outline-style: none; outline-width: initial; outline-color: initial; ">in</span><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "> Chrome and Firefox browsers, and even </span><span style="font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; color: rgb(0, 0, 139); outline-style: none; outline-width: initial; outline-color: initial; ">in</span><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "> Safari </span><span style="font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; color: rgb(0, 0, 128); outline-style: none; outline-width: initial; outline-color: initial; ">with</span><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "> the Flash lashup.  
</span><div><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "><br></span></div><div><span style="color: rgb(0, 0, 0); font-family: Monaco, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(243, 243, 243); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "><span class="Apple-tab-span" style="white-space:pre">       </span></span><a href="http://lively-kernel.org/repository/webwerkstatt/users/Dan/SoundTest2.xhtml">http://lively-kernel.org/repository/webwerkstatt/users/Dan/SoundTest2.xhtml</a></div><div><br></div><div>Enjoy</div></div><div><br></div><div>  - Dan</div></div></div><br></blockquote></div></div></div></blockquote></div><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><br class="Apple-interchange-newline"></span>
</div>
<br></div></body></html>