[squeak-dev] The Inbox: Sound-dto.85.mcz

David O'Toole deeteeoh1138 at gmail.com
Sat Feb 5 18:33:31 UTC 2022


Oh, it appears I included some whitespace-only changes, this must be the
result of having 'prettyPrint' turned on. I'll make sure I turn that off
when editing system methods in the future!

On Sat, Feb 5, 2022 at 1:19 PM <commits at source.squeak.org> wrote:

> David O'Toole uploaded a new version of Sound to project The Inbox:
> http://source.squeak.org/inbox/Sound-dto.85.mcz
>
> ==================== Summary ====================
>
> Name: Sound-dto.85
> Author: dto
> Time: 5 February 2022, 1:19:37.313377 pm
> UUID: 1f3917a1-5536-4c9f-80b7-6f3613e7d087
> Ancestors: Sound-ct.84
>
> Fixes incorrect AIFF loop marker extraction, and removes obsolete path
> delimiters in SampledInstrument.
>
> =============== Diff against Sound-ct.84 ===============
>
> Item was changed:
>   ----- Method: AIFFFileReader>>loopEnd (in category 'accessing') -----
>   loopEnd
> +       ^ markers second last!
> -
> -       ^ markers last last
> - !
>
> Item was changed:
>   ----- Method: AIFFFileReader>>loopLength (in category 'accessing') -----
>   loopLength
> +       ^ markers second last - markers first last!
> -
> -       ^ markers last last - markers first last
> - !
>
> Item was changed:
>   ----- Method: AIFFFileReader>>readInstrumentChunk: (in category
> 'private') -----
> + readInstrumentChunk: chunkSize
> +       | midiKey detune lowNote highNote lowVelocity highVelocity
> sustainMode sustainStartID sustainEndID releaseMode releaseStartID
> releaseEndID |
> - readInstrumentChunk: chunkSize
> -
> -       | midiKey detune lowNote highNote lowVelocity highVelocity
> -         sustainMode sustainStartID sustainEndID
> -         releaseMode releaseStartID releaseEndID |
> -
>         midiKey := in next.
>         detune := in next.
>         lowNote := in next.
>         highNote := in next.
>         lowVelocity := in next.
>         highVelocity := in next.
>         gain := in nextNumber: 2.
>         sustainMode := in nextNumber: 2.
>         sustainStartID := in nextNumber: 2.
>         sustainEndID := in nextNumber: 2.
>         releaseMode := in nextNumber: 2.
>         releaseStartID := in nextNumber: 2.
>         releaseEndID := in nextNumber: 2.
>         isLooped := sustainMode = 1.
> +       (isLooped
> +                       and: [markers notNil])
> +               ifTrue: [(markers first last > frameCount
> +                                       or: [markers second last >
> frameCount])
> +                               ifTrue: ["bad loop data; some sample CD
> files claim to be
> +                                       looped but aren't"
> +                                       isLooped := false]].
> +       pitch := self pitchForKey: midiKey!
> -       (isLooped and: [markers notNil]) ifTrue: [
> -               ((markers first last > frameCount) or:
> -                [markers last last > frameCount]) ifTrue: [
> -                       "bad loop data; some sample CD files claim to be
> looped but aren't"
> -                       isLooped := false]].
> -       pitch := self pitchForKey: midiKey.
> - !
>
> Item was changed:
>   ----- Method: SampledInstrument
> class>>readLoudAndStaccatoInstrument:fromDirectory: (in category 'instance
> creation') -----
> + readLoudAndStaccatoInstrument: instName fromDirectory: orchestraDir
> - readLoudAndStaccatoInstrument: instName fromDirectory: orchestraDir
>         "SampledInstrument
> +       readLoudAndStaccatoInstrument: 'oboe'
> +       fromDirectory: 'Tosh:Sample Library:Orchestra'"
> -               readLoudAndStaccatoInstrument: 'oboe'
> -               fromDirectory: 'Tosh:Sample Library:Orchestra'"
> -
>         | sampleSetDir memBefore memAfter loud short snd |
> +       sampleSetDir := orchestraDir , FileDirectory slash , instName.
> -       sampleSetDir := orchestraDir, ':', instName.
>         memBefore := Smalltalk garbageCollect.
> +       loud := SampledInstrument new readSampleSetFrom: sampleSetDir , '
> f'.
> +       short := SampledInstrument new readSampleSetFrom: sampleSetDir , '
> stacc'.
> -       loud := SampledInstrument new readSampleSetFrom: sampleSetDir, '
> f'.
> -       short := SampledInstrument new readSampleSetFrom: sampleSetDir, '
> stacc'.
>         memAfter := Smalltalk garbageCollect.
> +       Transcript show: instName , ': ' , (memBefore - memAfter)
> printString , ' bytes; ' , memAfter printString , ' bytes left';
> +                cr.
> +       AbstractSound soundNamed: instName , '-f&stacc' put: (snd :=
> SampledInstrument new allSampleSets: loud;
> +                                        staccatoLoudAndSoftSampleSet:
> short).
> -       Transcript show:
> -               instName, ': ', (memBefore - memAfter) printString,
> -               ' bytes; ', memAfter printString, ' bytes left'; cr.
> -       AbstractSound soundNamed: instName, '-f&stacc' put:
> -               (snd := SampledInstrument new
> -                       allSampleSets: loud;
> -                       staccatoLoudAndSoftSampleSet: short).
>         "fix slow attacks"
> +       snd allNotes
> +               do: [:n | n
> +                               firstSample: (n
> findStartPointForThreshold: 500)].
> +       AbstractSound soundNamed: instName , '-f' put: (snd :=
> SampledInstrument new allSampleSets: loud).
> -       snd allNotes do: [:n | n firstSample: (n
> findStartPointForThreshold: 500)].
> -
> -       AbstractSound soundNamed: instName, '-f' put:
> -               (snd := SampledInstrument new
> -                       allSampleSets: loud).
>         "fix slow attacks"
> +       snd allNotes
> +               do: [:n | n
> +                               firstSample: (n
> findStartPointForThreshold: 1000)]!
> -       snd allNotes do: [:n | n firstSample: (n
> findStartPointForThreshold: 1000)].
> - !
>
> Item was changed:
>   ----- Method: SampledInstrument class>>readPizzInstrument:fromDirectory:
> (in category 'instance creation') -----
> + readPizzInstrument: instName fromDirectory: orchestraDir
> - readPizzInstrument: instName fromDirectory: orchestraDir
>         "SampledInstrument
> +       readPizzInstrument: 'violin'
> +       fromDirectory: 'Tosh:Sample Library:Orchestra'"
> -               readPizzInstrument: 'violin'
> -               fromDirectory: 'Tosh:Sample Library:Orchestra'"
> -
>         | sampleSetDir memBefore memAfter sampleSet snd |
> +       sampleSetDir := orchestraDir , FileDirectory slash , instName , '
> pizz'.
> -       sampleSetDir := orchestraDir, ':', instName, ' pizz'.
>         memBefore := Smalltalk garbageCollect.
>         sampleSet := SampledInstrument new readSampleSetFrom: sampleSetDir.
>         memAfter := Smalltalk garbageCollect.
> +       Transcript show: instName , ': ' , (memBefore - memAfter)
> printString , ' bytes; ' , memAfter printString , ' bytes left';
> +                cr.
> +       AbstractSound soundNamed: instName , '-pizz' put: (snd :=
> SampledInstrument new allSampleSets: sampleSet).
> -       Transcript show:
> -               instName, ': ', (memBefore - memAfter) printString,
> -               ' bytes; ', memAfter printString, ' bytes left'; cr.
> -       AbstractSound soundNamed: instName, '-pizz' put:
> -               (snd := SampledInstrument new allSampleSets: sampleSet).
> -
>         "fix slow attacks"
> +       snd allNotes
> +               do: [:n | n
> +                               firstSample: (n
> findStartPointForThreshold: 1000)].
> +       ^ snd!
> -       snd allNotes do: [:n |
> -               n firstSample: (n findStartPointForThreshold: 1000)].
> -
> -       ^ snd
> - !
>
> Item was changed:
>   ----- Method: SampledInstrument
> class>>readSimpleInstrument:fromDirectory: (in category 'instance
> creation') -----
>   readSimpleInstrument: instName fromDirectory: orchestraDir
>         "SampledInstrument
>                 readSimpleInstrument: 'oboe'
>                 fromDirectory: 'Tosh:Sample Library:Orchestra'"
>
>         | sampleSetDir memBefore memAfter sampleSet snd |
> +       sampleSetDir := orchestraDir, FileDirectory slash, instName, ' f'.
> -       sampleSetDir := orchestraDir, ':', instName, ' f'.
>         memBefore := Smalltalk garbageCollect.
>         sampleSet := SampledInstrument new readSampleSetFrom: sampleSetDir.
>         memAfter := Smalltalk garbageCollect.
>         Transcript show:
>                 instName, ': ', (memBefore - memAfter) printString,
>                 ' bytes; ', memAfter printString, ' bytes left'; cr.
>         AbstractSound soundNamed: instName, '-f' put:
>                 (snd := SampledInstrument new allSampleSets: sampleSet).
>
>         "fix slow attacks"
>         snd allNotes do: [:n |
>                 n firstSample: (n findStartPointForThreshold: 1000)].
>
>         ^ snd
>   !
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220205/002078df/attachment.html>


More information about the Squeak-dev mailing list