File Exchange

image thumbnail

PlayTune

version 2.0 (2.99 KB) by Alan Tan
This function plays musical tunes. Write your own musical tune and call the function to play it.

2 Downloads

Updated 21 Jul 2018

View Version History

View License

Editor's Note: This file was a File Exchange Pick of the Week

This function plays musical tunes. Write your own musical tune and call the function to play it.
Notation:
[CDEFGAB] keys, 5 full octaves
[12345678] key/rest duration, with the default [1] semiquaver, [2] quaver, [4] crochet and [8] minim
[#] sharp / [b] flat / [.] rest / [^] raise octave / [_] lower octave

The algorithm is based on the Karplus-Strong string synthesis methods:
[1] Karplus & Strong, "Digital synthesis of plucked string and drum timbres", Computer Music Journal, vol. 7, no. 2, pp. 43-55, 1983.
[2] Jaffe & Smith, "Extensions of the Karplus-Strong plucked-string algorithm", Computer Music Journal, vol. 7, no. 2, pp. 56-69, 1983.

The musical scores for Canon in D (Pachelbel), Prelude No 1 (Bach), and The Globe Trotter are also provided.

Essential files: playtune.m
Accompanying files: canon_in_d.m, prelude_no_1.m, the_globe_trotter.m

Cite As

Alan Tan (2021). PlayTune (https://www.mathworks.com/matlabcentral/fileexchange/11441-playtune), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (7)

Anran Wang

fantastic!
But still can be improved.
e.g: '4F4F'(command)='8F'(what i got),actually i want two F
and whatever the note is(semiquaver or quaver and so on),the duration of each note is decided by how many beats there are in one second(which is set by the composer),maybe we can add a input value to change the tempo?

Chihiro

Ameya Deoras

Ruoting Yang

S Murphy

Alan Tan

Hi John, I've taken your advice and added some examples and included the notation (above) in the help of playtune.

John D'Errico

Superb.

I do wish the author had included a bit more help with playtune. For example, the notation is described in the website description, but not in the help for playtune. (Please fix this!) I've rated it a 5 anyway.

MATLAB Release Compatibility
Created with R11.1
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!