Hi all,
I never have dealt with the Sound system in Squeak before so here is a newbie question from my side: How can I turn off the reverb which you hear every time you play an FM sound? Take this example:
AbstractSound dial: '#'.
Either my speakers are broken or there is a reverb that is hidden somewhere in the implementation of FMSound. :-) I can also reproduce this when creating an FMSound manually without defining any envelopes. I also took a look at the ingenious Speech-TTS package from Squeak 3 and could hear a reverb there, too. Is this a bug? Is this a - maybe unfortunate - default setting? How can I turn off this?
Thanks in advance! :-)
Best,
Christoph
Hi Christoph, you’ll find a class variable called (IIRC) Reverb or UseReverb or done such in ind of the sound classes. Use the MessageNames to track it down.
_,,,^..^,,,_ (phone)
On May 24, 2021, at 3:40 PM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
Hi all,
I never have dealt with the Sound system in Squeak before so here is a newbie question from my side: How can I turn off the reverb which you hear every time you play an FM sound? Take this example:
AbstractSound dial: '#'.
Either my speakers are broken or there is a reverb that is hidden somewhere in the implementation of FMSound. :-) I can also reproduce this when creating an FMSound manually without defining any envelopes. I also took a look at the ingenious Speech-TTS package from Squeak 3 and could hear a reverb there, too. Is this a bug? Is this a - maybe unfortunate - default setting? How can I turn off this?
Thanks in advance! :-)
Best,
Christoph
Is this a - maybe unfortunate - default setting?
The default reverb is indeed unfortunate IMO. It is hard-coded in SoundPlayer>>#startReverb
In muO, I use a much lighter reverb (no reverb would make some FMSounds end badly):
ReverbState := ReverbSound new tapDelays: #(1601 3469 7919) gains: #(0.012 0.007 0.001).
Whatever the default, I guess it would be good to have it defined elsewhere.
Stef
SoundPlayer stopReverb
Fantastic! This was what I was searching for.
no reverb would make some FMSounds end badly):
Hm ... I just haved tried this out at the example of brass:
FMSound brass1 play
And I have to tell that, both with default and without reverb, I can hear the abrupt end of the sound very clearly. IMHO it does not make a large difference, except for the fact that a pure tone should not have any reverb by definition.
I am not an expert in sounds at all, but couldn't it be a more elegant solution to adjust the envelopes of the problematic sounds instead and to extend their release phase?
I changed #brass1 like this:
| snd p env | snd := FMSound new modulation: 0 ratio: 1. p := OrderedCollection new. - p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 360@0.0. + p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 440@0.0. snd addEnvelope: (VolumeEnvelope points: p loopStart: 4 loopEnd: 6).
p := OrderedCollection new. p add: 0@0.5; add: 60@1.0; add: 120@0.8; add: 220@0.65; add: 320@0.8; add: 360@0.0. env := Envelope points: p loopStart: 3 loopEnd: 5. env target: snd; updateSelector: #modulation:; scale: 5.0. snd addEnvelope: env.
(snd setPitch: 220.0 dur: 1.0 loudness: 0.5) play
The only difference is that I moved the last envelope point 80 ms to the right. I can't hear any "plop" now any longer.
My proposal is to turn off reverb in the SoundPlayer by default and to adjust the most problematic FMSounds manually instead. What do you think? :-)
Best, Christoph
FMSound brass1 play
And I have to tell that, both with default and without reverb, I can hear the abrupt end of the sound very clearly.
Well without reverb there is a definitely non-musical harsh noise. With reverb on, the sound still does stop abruptly, but more musically. This makes all the difference to me.
But I do agree that overall the FMSounds releases are not graceful :)
IMHO it does not make a large difference, except for the fact that a pure tone should not have any reverb by definition.
A FMSound is not a pure tone. A pure tone is a sinusoid, which ends with a clear click (a very non-musical noise).
Now anyway the reverb is used only when playing a sound, not when processing it - here it is not part of the FMSound itself: you will not see the reverb in the waveform or the spectrogram.
From a musical perspective, there is always some reverb. Nobody plays a concerto in an anechoic chamber. So you can think of the default reverb setting as the sound of the Squeak room itself - when just playing sounds like, for a game, it is nicer to have one. And when we need Squeak to behave like an anechoic chamber, we can just turn the reverb off.
I am not an expert in sounds at all, but couldn't it be a more elegant solution to adjust the envelopes of the problematic sounds instead and to extend their release phase?
I changed #brass1 like this:
| snd p env | snd := FMSound new modulation: 0 ratio: 1. p := OrderedCollection new.
- p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 360@0.0.
- p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 440@0.0.
snd addEnvelope: (VolumeEnvelope points: p loopStart: 4 loopEnd: 6).
p := OrderedCollection new. p add: 0@0.5; add: 60@1.0; add: 120@0.8; add: 220@0.65; add: 320@0.8; add: 360@0.0. env := Envelope points: p loopStart: 3 loopEnd: 5. env target: snd; updateSelector: #modulation:; scale: 5.0. snd addEnvelope: env.
(snd setPitch: 220.0 dur: 1.0 loudness: 0.5) play
The only difference is that I moved the last envelope point 80 ms to the right. I can't hear any "plop" now any longer.
Right, but the duration of the sound cannot be considered to be one second anymore - it is much closer to 0.9 seconds (where it was around 0.95 before, so already too short).
See the attached pictures: SoundElementEditor1.png is the current waveform, SoundElementEditor2.png the one you propose. See how it ends prematurely?
I would say 390@0.0 for the last point is better. It still sounds good, but does not shorten the sound as much.
For composition, it is important that a sound lasts as long as it claims to last. Else, the phrasing articulations cannot be right - you would hear a staccato when a legato is asked for.
So a sound release should happen after the sound nominal duration (which is not the case at the moment)
My proposal is to turn off reverb in the SoundPlayer by default and to adjust the most problematic FMSounds manually instead. What do you think? :-)
My counter-proposal would be to keep the default reverb and give it the settings it has in muO :)
And then, if you want to tweak some sounds, have their nominal duration respected. So I would vote for having releases after nominal duration, but this means a mechanism would then be needed to differentiate the nominal duration from the duration you get from the raw number of samples.
This mechanism exists in muO.
In fact it is rather difficult for me to give any specific piece of advice about how music should be handled in Squeak proper, because my own way to do this has been to implement a much vaster and deeper framework where many different perspectives work together. Not to say it is perfect, but it is thorough - one thing lead to another and I could talk for hours...
Best,
Stef
Hi Stéphane.
From a musical perspective, there is always some reverb. Nobody plays a concerto in an anechoic chamber. So you can think of the default reverb setting as the sound of the Squeak room itself - when just playing sounds like, for a game, it is nicer to have one. And when we need Squeak to behave like an anechoic chamber, we can just turn the reverb off.
Aha! Thanks for this explanation. :-)
Best, Marcel Am 31.05.2021 09:36:10 schrieb Stéphane Rollandin lecteur@zogotounga.net:
FMSound brass1 play
And I have to tell that, both with default and without reverb, I can hear the abrupt end of the sound very clearly.
Well without reverb there is a definitely non-musical harsh noise. With reverb on, the sound still does stop abruptly, but more musically. This makes all the difference to me.
But I do agree that overall the FMSounds releases are not graceful :)
IMHO it does not make a large difference, except for the fact that a pure tone should not have any reverb by definition.
A FMSound is not a pure tone. A pure tone is a sinusoid, which ends with a clear click (a very non-musical noise).
Now anyway the reverb is used only when playing a sound, not when processing it - here it is not part of the FMSound itself: you will not see the reverb in the waveform or the spectrogram.
From a musical perspective, there is always some reverb. Nobody plays a
concerto in an anechoic chamber. So you can think of the default reverb setting as the sound of the Squeak room itself - when just playing sounds like, for a game, it is nicer to have one. And when we need Squeak to behave like an anechoic chamber, we can just turn the reverb off.
I am not an expert in sounds at all, but couldn't it be a more elegant solution to adjust the envelopes of the problematic sounds instead and to extend their release phase?
I changed #brass1 like this:
| snd p env | snd := FMSound new modulation: 0 ratio: 1. p := OrderedCollection new.
- p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 360@0.0.
- p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 440@0.0.
snd addEnvelope: (VolumeEnvelope points: p loopStart: 4 loopEnd: 6).
p := OrderedCollection new. p add: 0@0.5; add: 60@1.0; add: 120@0.8; add: 220@0.65; add: 320@0.8; add: 360@0.0. env := Envelope points: p loopStart: 3 loopEnd: 5. env target: snd; updateSelector: #modulation:; scale: 5.0. snd addEnvelope: env.
(snd setPitch: 220.0 dur: 1.0 loudness: 0.5) play
The only difference is that I moved the last envelope point 80 ms to the right. I can't hear any "plop" now any longer.
Right, but the duration of the sound cannot be considered to be one second anymore - it is much closer to 0.9 seconds (where it was around 0.95 before, so already too short).
See the attached pictures: SoundElementEditor1.png is the current waveform, SoundElementEditor2.png the one you propose. See how it ends prematurely?
I would say 390@0.0 for the last point is better. It still sounds good, but does not shorten the sound as much.
For composition, it is important that a sound lasts as long as it claims to last. Else, the phrasing articulations cannot be right - you would hear a staccato when a legato is asked for.
So a sound release should happen after the sound nominal duration (which is not the case at the moment)
My proposal is to turn off reverb in the SoundPlayer by default and to adjust the most problematic FMSounds manually instead. What do you think? :-)
My counter-proposal would be to keep the default reverb and give it the settings it has in muO :)
And then, if you want to tweak some sounds, have their nominal duration respected. So I would vote for having releases after nominal duration, but this means a mechanism would then be needed to differentiate the nominal duration from the duration you get from the raw number of samples.
This mechanism exists in muO.
In fact it is rather difficult for me to give any specific piece of advice about how music should be handled in Squeak proper, because my own way to do this has been to implement a much vaster and deeper framework where many different perspectives work together. Not to say it is perfect, but it is thorough - one thing lead to another and I could talk for hours...
Best,
Stef
I know this is a late reply, but I never tire of learning more about the sound system in Squeak. Maybe Stéphane could wite some swiki articles on that subject. It would be extraordinarily useful to a lot of us experimenters.
/*—————————————————-*/ Sent from my iPhone https://boincstats.com/signature/-1/user/51616339056/sig.png See https://objectnets.net and https://objectnets.org https://datascilv.com and https://datascilv.org
On Jun 6, 2021, at 23:43, Marcel Taeumel marcel.taeumel@hpi.de wrote:
Hi Stéphane.
From a musical perspective, there is always some reverb. Nobody plays a concerto in an anechoic chamber. So you can think of the default reverb setting as the sound of the Squeak room itself - when just playing sounds like, for a game, it is nicer to have one. And when we need Squeak to behave like an anechoic chamber, we can just turn the reverb off.
Aha! Thanks for this explanation. :-)
Best, Marcel
Am 31.05.2021 09:36:10 schrieb Stéphane Rollandin lecteur@zogotounga.net:
FMSound brass1 play
And I have to tell that, both with default and without reverb, I can hear the abrupt end of the sound very clearly.
Well without reverb there is a definitely non-musical harsh noise. With reverb on, the sound still does stop abruptly, but more musically. This makes all the difference to me.
But I do agree that overall the FMSounds releases are not graceful :)
IMHO it does not make a large difference, except for the fact that a pure tone should not have any reverb by definition.
A FMSound is not a pure tone. A pure tone is a sinusoid, which ends with a clear click (a very non-musical noise).
Now anyway the reverb is used only when playing a sound, not when processing it - here it is not part of the FMSound itself: you will not see the reverb in the waveform or the spectrogram.
From a musical perspective, there is always some reverb. Nobody plays a concerto in an anechoic chamber. So you can think of the default reverb setting as the sound of the Squeak room itself - when just playing sounds like, for a game, it is nicer to have one. And when we need Squeak to behave like an anechoic chamber, we can just turn the reverb off.
I am not an expert in sounds at all, but couldn't it be a more elegant solution to adjust the envelopes of the problematic sounds instead and to extend their release phase?
I changed #brass1 like this:
| snd p env | snd := FMSound new modulation: 0 ratio: 1. p := OrderedCollection new.
- p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 360@0.0.
- p add: 0@0.0; add: 30@0.8; add: 90@1.0; add: 120@0.9; add: 220@0.7; add: 320@0.9; add: 440@0.0.
snd addEnvelope: (VolumeEnvelope points: p loopStart: 4 loopEnd: 6).
p := OrderedCollection new. p add: 0@0.5; add: 60@1.0; add: 120@0.8; add: 220@0.65; add: 320@0.8; add: 360@0.0. env := Envelope points: p loopStart: 3 loopEnd: 5. env target: snd; updateSelector: #modulation:; scale: 5.0. snd addEnvelope: env.
(snd setPitch: 220.0 dur: 1.0 loudness: 0.5) play
The only difference is that I moved the last envelope point 80 ms to the right. I can't hear any "plop" now any longer.
Right, but the duration of the sound cannot be considered to be one second anymore - it is much closer to 0.9 seconds (where it was around 0.95 before, so already too short).
See the attached pictures: SoundElementEditor1.png is the current waveform, SoundElementEditor2.png the one you propose. See how it ends prematurely?
I would say 390@0.0 for the last point is better. It still sounds good, but does not shorten the sound as much.
For composition, it is important that a sound lasts as long as it claims to last. Else, the phrasing articulations cannot be right - you would hear a staccato when a legato is asked for.
So a sound release should happen after the sound nominal duration (which is not the case at the moment)
My proposal is to turn off reverb in the SoundPlayer by default and to adjust the most problematic FMSounds manually instead. What do you think? :-)
My counter-proposal would be to keep the default reverb and give it the settings it has in muO :)
And then, if you want to tweak some sounds, have their nominal duration respected. So I would vote for having releases after nominal duration, but this means a mechanism would then be needed to differentiate the nominal duration from the duration you get from the raw number of samples.
This mechanism exists in muO.
In fact it is rather difficult for me to give any specific piece of advice about how music should be handled in Squeak proper, because my own way to do this has been to implement a much vaster and deeper framework where many different perspectives work together. Not to say it is perfect, but it is thorough - one thing lead to another and I could talk for hours...
Best,
Stef
I know this is a late reply, but I never tire of learning more about the sound system in Squeak. Maybe Stéphane could wite some swiki articles on that subject. It would be extraordinarily useful to a lot of us experimenters.
As all things related to documentation, I would much prefer some live tutorial or set of examples living in the image.
I never tire of saying that, when I first discovered Squeak about 20 years ago, the image featured "The worlds of Squeak", a set of projects full of fun, surprising and wonderful demos - and where the sound system was introduced properly and nicely.
We need this back in a form or another. Nowadays, a fresh image is just a dark grey background with nothing to show.
Stef
Hi Stef --
We need this back in a form or another. Nowadays, a fresh image is just a dark grey background with nothing to show.
Try experimenting with the HelpBrowser. Lets' make it easier to maintain rich, multimedia content in the form of an active essay in the image.
Also "Squeak Objectland" is still lurking around the corner. It's just missing a nice entry point to all the stuff hidden in "MorphicExtras" and "Etoys" :-) I wish that I had more time to integrate Christoph's efforts of a custom project with that stuff for 6.0. :-( ...
Best, Marcel Am 20.07.2022 10:31:50 schrieb Stéphane Rollandin lecteur@zogotounga.net:
I know this is a late reply, but I never tire of learning more about the sound system in Squeak. Maybe Stéphane could wite some swiki articles on that subject. It would be extraordinarily useful to a lot of us experimenters.
As all things related to documentation, I would much prefer some live tutorial or set of examples living in the image.
I never tire of saying that, when I first discovered Squeak about 20 years ago, the image featured "The worlds of Squeak", a set of projects full of fun, surprising and wonderful demos - and where the sound system was introduced properly and nicely.
We need this back in a form or another. Nowadays, a fresh image is just a dark grey background with nothing to show.
Stef
Try experimenting with the HelpBrowser.
Ah, sorry if what I wrote seemed to imply I will do something - I will not.
On sound and music in general, I have for years provided an image with a lot of contents and documentation (including help browers, and also notebooks that are way more dynamic):
http://www.zogotounga.net/comp/squeak/sqgeo.htm
Before I do anything else in this area, I would expect feedback on that work - and so far I never had any, which lead me to conclude that there is in fact no interest in this topic (of course I'll be happy to be wrong, but again I will only be convinced after someone has actually reviewed even a fraction of what I have done).
Stef
On 2022-07-20, at 2:32 AM, Stéphane Rollandin lecteur@zogotounga.net wrote:
Before I do anything else in this area, I would expect feedback on that work - and so far I never had any,
This is a perennial problem that extends far beyond the bounds of the Smalltalk or even software world. I think almost all of us here would love to get more (any!) feedback about what we create, and simultaneously fail to make time to review other people's work. This afflicts even the most important core facilities, let alone any of our varied interests.
I *have* loaded up one or two of your images in the past and been blown away by the stuff - but I know damn all about music composition and so almost every aspect of it simply whizzes over my head - and then I have to get back to work.
How do we fix this? I suppose finding ways to spread the word better must be a part of it?
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Why use one word when two polysyllabic agglomerates will do?
How do we fix this? I suppose finding ways to spread the word better must be a part of it?
I think there are different layers at work here. The end-side one is editorialization, that is the maintainance of curated content known to be of interest.
But the first one is simply to get a couple of people to review the work. In my experience, that's the hard one. These persons must be interested, qualified, and see the potential quality of stuff that, precisely, has not been curated yet.
Spreading the word may be a starting point, but in my experience again, people will tell you that, as the creator, you are also supposed to be the publicist - while this is in fact a completely different mindset.
Stef
On Wed, Jul 20, 2022 at 10:31:48AM +0200, St??phane Rollandin wrote:
I know this is a late reply, but I never tire of learning more about the sound system in Squeak. Maybe St??phane could wite some swiki articles on that subject. It would be extraordinarily useful to a lot of us experimenters.
As all things related to documentation, I would much prefer some live tutorial or set of examples living in the image.
I never tire of saying that, when I first discovered Squeak about 20 years ago, the image featured "The worlds of Squeak", a set of projects full of fun, surprising and wonderful demos - and where the sound system was introduced properly and nicely.
We need this back in a form or another. Nowadays, a fresh image is just a dark grey background with nothing to show.
I agree with Stef. The live tutorials and exploration of Worlds of Squeak is a wonderful way to provide documentation. Help browsers, wiki pages, and other tools are important but it is the live exploration and interaction make Squeak really enjoyable to learn.
Stef's prepared image at www.zogotounga.net/comp/squeak/muo/muO357.zip provides great examples of this (and I enourage everyone to download it and have a look). In addition to a full help browser, there are interactive menus, flaps, workspaces, and Morphic objects all very nicely presented to encourage learning and exploration.
But these "worlds of Squeak" need to be easily explored from the base image, otherwise most new users will never find them. Maybe as we move forward with Squeak 6.1+ we can find ways to re-energize the worlds of Squeak concept.
Dave
squeak-dev@lists.squeakfoundation.org