Marcel Taeumel uploaded a new version of Sound to project The Trunk: http://source.squeak.org/trunk/Sound-dtl.68.mcz
==================== Summary ====================
Name: Sound-dtl.68 Author: dtl Time: 12 December 2019, 7:20:38.226903 am UUID: c7b5a141-2b1b-4d24-ab88-0a96dd78600b Ancestors: Sound-dtl.67
Resolve unimplemented calls in the previous update. Discussion on squeak-dev http://lists.squeakfoundation.org/pipermail/squeak-dev/2019-December/205515....
=============== Diff against Sound-dtl.67 ===============
Item was changed: ----- Method: AbstractSound>>loudness (in category 'volume') ----- loudness "Answer the current volume setting for this sound."
+ ^ envelopes detect: [:e | e isKindOf: VolumeEnvelope] + ifFound: [ :envelope | envelope scale ] + ifNone: [scaledVol asFloat / FloatScaleFactor] + ! - self hasVolumeEnvelope ifTrue: [^ self volumeEnvelope scale]. - - ^ scaledVol asFloat / ScaleFactor!
Item was changed: ----- Method: SequentialSound>>mixSampleCount:into:startingAt:leftVol:rightVol: (in category 'sound generation') ----- mixSampleCount: n into: aSoundBuffer startingAt: startIndex leftVol: leftVol rightVol: rightVol "Play a collection of sounds in sequence." "PluckedSound chromaticScale play"
| finalIndex i snd remaining count leftScaledVol rightScaledVol | currentIndex = 0 ifTrue: [^ self]. "already done"
+ leftScaledVol := leftVol * scaledVol / ScaleFactor asFloat. + rightScaledVol := rightVol * scaledVol / ScaleFactor asFloat. - leftScaledVol := leftVol * scaledVol /// ScaleFactor. - rightScaledVol := rightVol * scaledVol /// ScaleFactor.
finalIndex := (startIndex + n) - 1. i := startIndex. [i <= finalIndex] whileTrue: [ snd := (sounds at: currentIndex). [(remaining := snd samplesRemaining) <= 0] whileTrue: [ "find next undone sound" currentIndex < sounds size ifTrue: [ currentIndex := currentIndex + 1. snd := (sounds at: currentIndex)] ifFalse: [ currentIndex := 0. ^ self]]. "no more sounds" count := (finalIndex - i) + 1. remaining < count ifTrue: [count := remaining]. snd mixSampleCount: count into: aSoundBuffer startingAt: i leftVol: leftScaledVol rightVol: rightScaledVol. i := i + count]. !
packages@lists.squeakfoundation.org