Sound Synthesis

Sound Synthesisers are also used to create electronic sounds, unknown in the traditional music scene. In 1951 the University of Manchester recorded the earliest example of computer generated music playing on theFerranti Mark 1computer. Since then computers have had a massive impact on the music industry and this section will look into sound synthesis.

Sound Synthesis generally creates smaller file sizes compared to recordings taken from live recordings such as MP3 and AAC as it records notation which the computer performs using a selection of programmed or digital instruments, rather than recording the wave forms of each second of sound. However, the recordings often don't sound as real as the live recordings. Listen to the music on the left to see what I mean.

MIDI connectors and a MIDI cable

A common means to produce sound synthesised music is by usingMIDI. MIDI does not record analogue sound, but send digital signals recording musical notation, pitch and intensity, control signals for parameters such as volume, vibrato and panning, cues, and clock signals to set the tempo. The computer then interprets these commands and outputs sound corresponding to them. MIDI is a popular way to record music from devices such as electronic keyboards.

Exercise: Sound synthesis

Why might you prefer to use sound synthesis over recording an orchestra?

Why might you not want to use sound synthesis?

Extension: Creating a Sound Synthesiser
As we know each character on our keyboard has an ASCII code attached to it. We are going to take this code and turn out computer keyboard into a musical keyboard!
console.beep(frequency,duration)
Wherefrequencyis the number of oscillations per second anddurationis the length that the beep will last inmilliseconds.
AscW(key)
WhereAscWis the ASCII number of key pressed. Giving us:
Dim duration AsInteger = 200
Dim frequency AsInteger
Dim key AsString'stores the numeric ASCII value
Console.WriteLine("press any key to play music, press q to quit")
Do
key = Console.ReadKey().KeyChar'get the numeric ASCII value input
frequency = (AscW(key) + 50) * 50
Console.Beep(frequency, duration)
Loop Until key = "q"
To extend this try to add the following:
+ - increase and decrease frequency
= _ increase and decrease duration of sound