Music Generation on Different Musical Instruments Using ARM Cortex-M4F Microcontroller
Abstract – At present all the various methods present to generate music are very complex they are either based on playing recorded samples of musical instruments that is high priced and non creative or by synthesis which involves a lot of components and is very complex to generate tones .Also a synthesizer can be designed exclusively for only a single musical instrument. This paper provides an overview of how music can be generated on various musical instruments by using an ARM Microcontroller and a simple binary weighted resistor DAC. This project is based on ARM Cortex – M4F Microcontroller which has low power consumption and is economical.
Key words – Music generation, Musical Instruments, Binary weighted resistor Digital to Analog Convertor, ARM Cortex M4F Microcontroller.
Music is an indispensible part of life for billions of people all over the world. It is an art and the harmonious creation of voice. Objects used to generate sound are musical instruments. There are primarily two ways of creating music electronically, Sampling and Synthesis. In Sampling the sound of the musical instruments are recorded into digital form and then played with modifications like modulation, looping and phase shifts. Either one or
many samples for one note of a musical instrument are recorded. To play songs on various instruments expensive libraries of the samples need to be purchased. Music synthesis is a sub-field of Music Technology. In the field of music synthesizers are the instruments
that are used to generate and record music. Music Synthesizers replicate traditional musical instruments and can generate new tones that cannot be played on acoustic instruments. There are various methods by which synthesizers can generate sounds such as additive, subtractive, wavetable, modulation and sample based synthesis. Current synthesizer are very expensive and are designed to play a single instrument. They are complex in operation and consist of numerous components One of the barriers to playing music is the high cost, bulky size and regular maintenance of musical instruments. The basic motive of this project is to develop a device that can fulfil the need of playing various musical instruments under a single system. This device is user friendly as a user who does not know how to play an instrument can compose new music or play existing songs. The circuit construction and operation are very simple and creative music can be composed.
II. LITERATURE SURVEY / RELATED WORK
Each musical instrument has a unique waveform, a sequence of numbers that generate this waveform is stored as an array and is sent to the DAC. The DAC output produces the wave by playing it depending on the frequency inputted. Each note of a song is played for a duration specified by the user. This circuit is implemented using a simple binary weighted resistor DAC. Higher order DACs can be used to improve quality of the sound produced as more number of samples for amplitude are selected. The number of various musical instruments that can be played is determined by the DAC.A 4 bit binary weighted resistor DAC can play 4 different instruments and an * bit DAC can play 8 different instruments.
Push buttons correspond to each musical instrument. For a given set of notes entered by the user the song starts to play when the button is pressed. The main program contains the complete list of notes for a particular song. The digital numbers fed to the DAC is converted to produce a wave similar to that particular instrument and with the help of Systick Timer that wave is produced multiple times depending on frequency of the musical note to generate music.
The software code is executed on a microcontroller development tool/(Embedded Development Tool) Keil uVision4 and is written in the C99 programming language.
In this paper ,it is proven that by constructing a circuit with an ARM Microcontroller and DAC circuit a system could be developed to play various musical instruments in an economical and simple manner
.Presently, the project implemented can play one instrument at a time, this limitation can be overcome by utilization of the other timers or the ARM microcontroller to play more than one instrument simultaneously.