Fundamentals of data representation: Sound synthesis

PAPER 2 - ⇑ Fundamentals of data representation ⇑

← Nyquist-theorem Sound synthesis Streaming audio →


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

Fairlight CMI series II – an early digital synthesiser
Sound synthesis - Electronically generated sounds that mimic musical instruments or the human voice

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 using MIDI. 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.


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 our computer keyboard into a musical keyboard!

console.beep(frequency,duration)

Where frequency is the number of oscillations per second and duration is the length that the beep will last in milliseconds.

AscW(key)

Where AscW is the ASCII number of key pressed. Giving us:

        Dim duration As Integer = 200
        Dim frequency As Integer
        Dim key As String '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
Exercise: Sound synthesis
Why might you prefer to use sound synthesis over recording an orchestra

Answer:

  • Sound synthesis produces smaller file sizes without loss of quality
  • Sound synthesis allows for easy editing of files after they have been recorded
  • Sound synthesis allows for sounds that would be unachievable using traditional instruments
Why might you not want to use sound synthesis

Answer:

  • Sound synthesis struggles to recreate the sounds made by traditional instruments
  • Sound synthesis struggles to recreate the human voice