<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        Hi Dave,<div><br></div><div>+1 for 5.3</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 12.12.2019 13:20:46 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">David T. Lewis uploaded a new version of Sound to project The Inbox:<br>http://source.squeak.org/inbox/Sound-dtl.68.mcz<br><br>==================== Summary ====================<br><br>Name: Sound-dtl.68<br>Author: dtl<br>Time: 12 December 2019, 7:20:38.226903 am<br>UUID: c7b5a141-2b1b-4d24-ab88-0a96dd78600b<br>Ancestors: Sound-dtl.67<br><br>Resolve unimplemented calls in the previous update.<br>Discussion on squeak-dev http://lists.squeakfoundation.org/pipermail/squeak-dev/2019-December/205515.html<br><br>=============== Diff against Sound-dtl.67 ===============<br><br>Item was changed:<br>  ----- Method: AbstractSound>>loudness (in category 'volume') -----<br>  loudness<br>       "Answer the current volume setting for this sound."<br>  <br>+    ^ envelopes detect: [:e | e isKindOf: VolumeEnvelope]<br>+                ifFound: [ :envelope | envelope scale ]<br>+              ifNone: [scaledVol asFloat / FloatScaleFactor]<br>+ !<br>-  self hasVolumeEnvelope ifTrue: [^ self volumeEnvelope scale].<br>- <br>-    ^ scaledVol asFloat / ScaleFactor!<br><br>Item was changed:<br>  ----- Method: SequentialSound>>mixSampleCount:into:startingAt:leftVol:rightVol: (in category 'sound generation') -----<br>  mixSampleCount: n into: aSoundBuffer startingAt: startIndex leftVol: leftVol rightVol: rightVol<br>    "Play a collection of sounds in sequence."<br>          "PluckedSound chromaticScale play"<br>  <br>      | finalIndex i snd remaining count leftScaledVol rightScaledVol |<br>     currentIndex = 0 ifTrue: [^ self].  "already done"<br>  <br>+     leftScaledVol := leftVol * scaledVol / ScaleFactor asFloat.<br>+  rightScaledVol := rightVol * scaledVol / ScaleFactor asFloat.<br>-        leftScaledVol := leftVol * scaledVol /// ScaleFactor.<br>-        rightScaledVol := rightVol * scaledVol /// ScaleFactor.<br>  <br>   finalIndex := (startIndex + n) - 1.<br>   i := startIndex.<br>      [i <= finalindex]="" whiletrue:=""></=><br>               snd := (sounds at: currentIndex).<br>             [(remaining := snd samplesRemaining) <= 0]="" whiletrue:=""></=><br>                      "find next undone sound"<br>                    currentIndex < sounds=""><br>                             ifTrue: [<br>                                     currentIndex := currentIndex + 1.<br>                                     snd := (sounds at: currentIndex)]<br>                             ifFalse: [<br>                                    currentIndex := 0.<br>                                    ^ self]].  "no more sounds"<br>                 count := (finalIndex - i) + 1.<br>                remaining < count="" iftrue:="" [count="" :=""><br>                 snd mixSampleCount: count into: aSoundBuffer startingAt: i <br>                   leftVol: leftScaledVol<br>                        rightVol: rightScaledVol.<br>             i := i + count].<br>  !<br><br><br></div></blockquote>
                                        </div></body>