Page 7: A new sound
Asynchronicity at work
![]()
We're now gonna see asynchronicity at work by creating a new sound. For this sound we need four wave generators that modulate each other's frequency. Create a setup like the one shown here. Listen to the sound when you're done.
Several settings that can be made in a controller can also be made for all generators at once. We're going to set the frequency of all generators to 12000 Hz. You can do this by opening the 'Generators' menu in the main window and pick the 'frequency' item. Next enter a value of '12000', hit 'Enter' to confirm your setting and click the 'Close' button to close the dialog window. Then listen to the sound. You'll notice its pitch has gone up. It's not a very interesting sound, but that will soon change.
When changing settings for all generators at once you can exclude one or more generators. Next we're going to add some frequency asynchronicity to this setup by changing this setting for all generators in one go. Suppose now that we don't want to change it for the generator on the top, the one in cell Y17. To do this you open its controller, then choose the 'Options' menu and uncheck the 'Follow overall frequency asynchronicity' option. Now it will not respond to attempts to change this setting from outside of its own controller.
Usually, if you want to make a generator not respond to overall settings, you have to change one of these 'Follows' settings. The 'Follow overall inverted mode' option works a bit differently, however. If you ever change the 'inverted mode' of one particular generator, it will assume from then on that you don't want this generator to follow the overall setting for this particular mode anymore. You can change it back then by making the appropriate setting in its 'Options' menu.
Now open up the 'Modulation' menu in the main window and pick the 'frequency asynchronicity' item. Enter a value of 1, hit 'Enter' and close the dialog. Then you should listen to the sound. This is pretty amazing, isn't it? This is what frequency asynchronicity can do. It can change a sound completely.
![]()
If you're a control freak you can check all generators and see that the frequency asynchronicity has changed for all except the one on the top.
Now we're going to add some amplitude modulation and amplitude asynchronicity to complicate this sound a bit more. First you should place another wave generator in cell X20. Then connect its output connector to the amplitude connectors of the three generators above it. You'll have to do this in three steps, each connection has to be created separately. But, there is an easy way to connect a new line to an already existing line: just click on it. So the easiest way to make these three connections is by first creating the one between the generator in cell X20 and the generator in cell Y17. Then click on the amplitude connector of the generator in cell Y18, and next on the line in front of it. This connects this amplitude connector to the output connector of this already existing line. Do the same thing for the generator in cell Y19. Finally connect the amplitude connector of the generator in cell Z19 to the output connector of the one in cell Y19 in the same way. Your setup should look like shown here. You can ofcourse listen to the sound between steps to hear how it changes.
Now open up the controller for the new generator. Notice that the frequency has been set to 12000 Hz, instead of the usual 440 Hz, and that the frequency asynchronicity is 1.0, instead of the usual 0.0. Whenever you change some global setting, the program will assume that you want this to be the default setting, so the changes we made to the generators before have changed the way new generators are being created. You can use this, for instance, when starting to create a new setup and you know you're gonna use a particular setting a lot. Just change the global setting before you start placing your generators.
This time, however, this new generator is going to do a lot better at a frequency of 14000 Hz, so you should change it and listen to the sound. This makes the sound a bit better, but to really get a good sound you should change the overall setting for the amplitude asynchronicity to 128000. Now we have a good sound.
The remainder of this tutorial will deal with a couple of miscellaneous items.
Sample rate and sample size
Digital sound does not create a continuous signal, like analog sound does. Instead, a DA-converter only changes the current it sends to the loudspeaker a limited number of times per second. This is a logical consequence of using numbers to generate sound. You can't send an infinite number of them each second, a computer just can't handle that amount of data. The number of numbers a computer generates per second to create sound is called the 'sample rate', and it is expressed as a 'Herz' number, like the number of cycles of a wave generator. So a sample rate of 48,000 Hz means that 48,000 times per second a new number is being send to the DA-converter, so it changes its current to the loudspeaker also 48,000 times per second.
MathSounds allows you to choose a sample rate from a list of preset values. These values are chosen based on what commonly is used for sample rates. You'll find this list by opening the 'Format' menu in the main window and place your mouse cursor on the 'Sample Rate' item. Then you can pick one.
If you do that now you'll notice that many of the options are grey, meaning you can't pick them. This is because MathSounds won't allow you to have a frequency in one of your generators that is higher than the current sample rate. The reason for this is, that this way the program can be fast, and since having a higher frequency than the sample rate makes no sense, because the same result can be achieved with a lower frequency, this is no problem at all.
Usually higher sample rates are considered to be better, because they allow for a more continuous signal. You might wonder why we are so fond of digital sound, while an analog signal already equals an infinitely high sample rate. Anyway, a higher sample rate is definitely better when it comes to replaying sound that has been recorded from real world sounds. When it comes to synthetic sound using lower sample rates can often create really cool results. You can hear this by setting the sample rate to 48,000 Hz and play our sample sound. Personally I like the 22,050 Hz version better.
Another important aspect of digitally created sound is the sample size. You might have heard that computers do their work by using bits. A bit can have a value of either one or zero. The more bits you use, the more information you can transmit. If you only have one bit, you can only send a value of either one or zero. When generating sound you could then only switch the membrane in a loudspeaker between its two most extreme positions. When using eight bits you can send values ranging from -127 to 127, which equals 255 positions for the membrane. When using sixteen bits, values can range from -32767 to 32767, which equals 65535 positions. So it figures that using more bits creates better sounds.
MathSounds allows you to choose between 8 bits and 16 bits sample sizes. You can do this in the 'Format' menu, like the sample rate. You can notice the difference in sound quality if you try that now. When looking at the buffer status display at the bottom of the main window you can notice another difference between the two sample sizes. Especially when you have a couple of viewers open, the display will show in the red longer when you start playing a sound using a sample size of 16 bits, meaning that it takes the program longer to fill up the sound buffer. This is because the higher quality of 16 bits sound comes at the price of longer processing times. So when creating a large setup you might switch to 8 bits sound, to allow for more wave generators.
Sound info
![]()
You can personalize the sounds you create with MathSounds by giving your sounds names. You can also add your name, so everyone will know it was you who created it. Furthermore, you can save a sound as a protected sound. It can then be distributed to other people without the risk of them redistributing it using their own name, or change it a bit and then save it again. It will allways remain the sound you created.
You can do all this by opening the 'Sound' menu in the main window and choosing the 'Info' option. Entering a name for the sound and for the composer is ofcourse easy to do. You should be carefull with the 'protected sound' option. Once a protected sound gets loaded again in MathSounds it can be changed in whatever way the user likes, but he or she will never be able to save it again, nor change the information specified in this dialog window. And neither will you, so you should allways have an unprotected backup of a sound you send into the world as a protected sound.
The information you enter here will also be shown when a user opens up the 'Sound' item of the 'Info' menu with this sound loaded.
The future we envision for MathSounds is a community that saves its sounds online for others to listen to and play with. That time has not come yet, but if you have a sound that you think is really cool, you can send it to info@mathsounds.com in order to get it added to the examples that can be loaded from within the program. In order for a sound to qualify as an example it needs to meet the following requirements:
1: It needs to have quality. Not every sound is good enough. It should not be a sound anyone can conjure up in a couple of minutes.
2: A decent name should be attached. Use as few numbers or strange characters as possible. Use only capitals for the first letter of the sound and only for the first letter of names, as is commonly done.
3: The name of the file should be exactly the same as the name of the sound you specify from within the program.
4: No offensive names for the sound or the composer.
5: Protected sounds are not allowed as examples.
If you think your sound qualifies, do by all means send it in. Ofcourse we have the right to refuse it, and if you send it in, but it does not meet the aforementioned requirements, we have the right to change it in such a way that it does meet those requirements prior to placing it as an example. We will however not change the sound, only names, so you won't see another sound published under your name. We will only make minimum changes, just to make it comply with the rules. If you don't agree with a change made by us, you can send an e-mail to instruct us to remove it from the list of examples, and we will then do so. And ofcourse, when we wish to remove an example, we have the right to do so.
The end
And with this we have reached the end of this tutorial. If you have read through it all and tried the examples, then you know more than enough to create great sounds with MathSounds. If you want to know everything there is to know about MathSounds, then you can continue with the manual. You can ofcourse also just use the manual to look up the information when the need arises.
Page 1: Introduction, news and installation
Page 2: Tutorial: creating a simple sound
Page 3: Modulation: wave generators working together
Page 4: Inverted mode and the interval of a wave
Page 5: Frequency modulation, waves and inverted mode
Page 8: Manual: the main window
Page 13: Release notes, known bugs and issues
If you can't find a button to download MathSounds try
Please send your questions, comments or remarks to info@mathsounds.com