#DOCUMENTATION by exept
class: SoundStream
comment/format in:
#tuneTone:seconds:
#tuneToneF32:seconds:
class: SoundStream class
comment/format in: #defaultClass:
--- a/SoundStream.st Mon Jan 06 16:02:38 2020 +0100
+++ b/SoundStream.st Tue Jan 07 20:34:28 2020 +0100
@@ -1291,6 +1291,7 @@
"
SoundStream defaultClass:(SoundStream::JackAudio)
+ SoundStream defaultClass:(SoundStream::PortAudio)
"
!
@@ -2042,19 +2043,19 @@
tuneTone:freq seconds:nSeconds
((audioFormat startsWith:#S16) or:[audioFormat startsWith:#U16]) ifTrue:[
- ^ self tuneTone16:freq seconds:nSeconds
+ ^ self tuneTone16:freq seconds:nSeconds
].
audioFormat == #F32 ifTrue:[
- ^ self tuneToneF32:freq seconds:nSeconds
+ ^ self tuneToneF32:freq seconds:nSeconds
].
audioFormat == #MU_LAW ifTrue:[
- ^ self tuneToneMU:freq seconds:nSeconds
+ ^ self tuneToneMU:freq seconds:nSeconds
].
self tuneTone8:freq seconds:nSeconds
"
SoundStream writing tuneTone:880; close
- SoundStream writing setSampleRate:4000; tuneTone:440 seconds:1; close
+ SoundStream writing setSampleRate:4000; tuneTone:440 seconds:1; close
SoundStream writing setSampleRate:4000; tuneTone:880 seconds:1; close
SoundStream writing setSampleRate:8000; tuneTone:440 seconds:1; close
SoundStream writing setSampleRate:8000; tuneTone:880 seconds:1; close
@@ -2090,8 +2091,8 @@
|buffer numSamples val scale restSamples|
(audioFormat == #F32) ifFalse:[
- self error:'must be in f32 mode' mayProceed:true.
- ^ self
+ self error:'must be in f32 mode' mayProceed:true.
+ ^ self
].
"allocate memory for 1sec playing time"
@@ -2102,16 +2103,16 @@
scale := freq * 2 * (Float pi) / numSamples.
1 to:numSamples do:[:i |
- val := (scale * i) sin.
- buffer at:i put:val
+ val := (scale * i) sin.
+ buffer at:i put:val
].
1 to:nSeconds truncated do:[:s |
- self nextPutBytes:(numSamples*4) from:buffer startingAt:1
+ self nextPutBytes:(numSamples*4) from:buffer startingAt:1
].
restSamples := ((nSeconds - nSeconds truncated) * numSamples) truncated.
restSamples > 0 ifTrue:[
- self nextPutBytes:(restSamples*4) from:buffer startingAt:1
+ self nextPutBytes:(restSamples*4) from:buffer startingAt:1
].
"of course, the frequency should be below half the
@@ -2122,23 +2123,23 @@
SoundStream writing tuneTone; close
SoundStream writing setAudioFormat:#F32; tuneTone; close
- SoundStream writing setSampleRate:4000; tuneTone:440 seconds:1; close
- SoundStream writing setSampleRate:4000; tuneTone:2000 seconds:1; close
- SoundStream writing setSampleRate:8000; tuneTone:440 seconds:1; close
- SoundStream writing setSampleRate:8000; tuneTone:2000 seconds:1; close
- SoundStream writing setSampleRate:8000; tuneTone:4000 seconds:1; close
- SoundStream writing setSampleRate:10000; tuneTone:440 seconds:1; close
- SoundStream writing setSampleRate:10000; tuneTone:2000 seconds:1; close
- SoundStream writing setSampleRate:10000; tuneTone:4000 seconds:1; close
- SoundStream writing setSampleRate:20000; tuneTone:440 seconds:1; close
- SoundStream writing setSampleRate:20000; tuneTone:2000 seconds:1; close
- SoundStream writing setSampleRate:20000; tuneTone:4000 seconds:1; close
- SoundStream writing setSampleRate:20000; tuneTone:8000 seconds:1; close
- SoundStream writing setSampleRate:40000; tuneTone:440 seconds:1; close
- SoundStream writing setSampleRate:40000; tuneTone:2000 seconds:1; close
- SoundStream writing setSampleRate:40000; tuneTone:4000 seconds:1; close
- SoundStream writing setSampleRate:40000; tuneTone:8000 seconds:1; close
- SoundStream writing setSampleRate:40000; tuneTone:10000 seconds:1; close
+ SoundStream writing setSampleRate:4000; tuneTone:440 seconds:1; close
+ SoundStream writing setSampleRate:4000; tuneTone:2000 seconds:1; close
+ SoundStream writing setSampleRate:8000; tuneTone:440 seconds:1; close
+ SoundStream writing setSampleRate:8000; tuneTone:2000 seconds:1; close
+ SoundStream writing setSampleRate:8000; tuneTone:4000 seconds:1; close
+ SoundStream writing setSampleRate:10000; tuneTone:440 seconds:1; close
+ SoundStream writing setSampleRate:10000; tuneTone:2000 seconds:1; close
+ SoundStream writing setSampleRate:10000; tuneTone:4000 seconds:1; close
+ SoundStream writing setSampleRate:20000; tuneTone:440 seconds:1; close
+ SoundStream writing setSampleRate:20000; tuneTone:2000 seconds:1; close
+ SoundStream writing setSampleRate:20000; tuneTone:4000 seconds:1; close
+ SoundStream writing setSampleRate:20000; tuneTone:8000 seconds:1; close
+ SoundStream writing setSampleRate:40000; tuneTone:440 seconds:1; close
+ SoundStream writing setSampleRate:40000; tuneTone:2000 seconds:1; close
+ SoundStream writing setSampleRate:40000; tuneTone:4000 seconds:1; close
+ SoundStream writing setSampleRate:40000; tuneTone:8000 seconds:1; close
+ SoundStream writing setSampleRate:40000; tuneTone:10000 seconds:1; close
"
"Modified: / 15.12.1997 / 13:43:05 / cg"