June 18, 2006
June 18, 2006
June 21, 2006
11.945.1 - 11.945.12
Music in MATLAB: A series of programming challenges for an introductory course.
Students often find their first course that includes programming a difficult new world. First-year students may not be inspired by programs that input numbers, perform a calculation and then output a number. To help motivate students there are many examples of courses using robotics or graphics projects and problems to provide a more concrete result for programming exercises. MATLAB’s ability to output a time series to the sound card of a PC provides an opportunity for problems that create sounds and music instead of numbers. This approach requires little or no equipment to implement.
Over the past year and a half, we have developed problems and small projects for an introductory computer tools course where MATLAB is taught. Music and sound form the basis of challenges with a range of topics and difficulties. Problems have been developed that illustrate almost all aspects of the course from a script that plays a very simple tune to a general song player that reads a data file containing the note names, durations and amplitudes. This player illustrates the use of loops, conditionals and several sub-functions.
Other project problems include functions to distort a .wav file illustrating file handling, a stereo player illustrating arrays, graphing a wave file illustrating graphing issues, adding harmony to illustrate array calculations, converting note names to frequencies illustrating the use of a switch structure or a complex calculation. More advanced projects can include adding attack and decay to notes, random generation of notes, developing a wind chime simulator and analysis of sound waves using a preprogrammed FFT function. Problems build over the course of the semester as students develop their ability with the software.
In addition to developing students understanding of computer manipulations they are introduced to a range of important engineering topics including: waves, wave shape, sampling, digital representation of analogue phenomenon, sound, signal processing, analogue/digital conversion and bit resolution.
These projects have added an interesting variation into the course. The students have found these projects challenging, and it has been important to develop aids to help them understand working with sound. Particularly important is providing materials to help students who have little or no musical training. This paper includes a discussion of the various problems and projects used and the lessons learned in implementing them.
In a recent assessment of their first-year engineering program, Notre Dame found that their greatest student attrition coincided with a first semester programming module.1 This result is not unusual. First-year students often find programming a challenging topic.2 In addition to
Moor, S. S. (2006, June), Music In Matlab: Programming Challenges For An Introductory Course Paper presented at 2006 Annual Conference & Exposition, Chicago, Illinois. 10.18260/1-2--1192
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2006 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015