Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Playing music with note names
Last updated at 7:28 pm UTC on 24 July 2022
AbstractSound_Squeak5.0_2015-11-10.png
(AbstractSound noteSequenceOn: PluckedSound default from: #(
(c4 1 500)
(d4 1 500)
(e4 1 500)
(g4 1 500)
(a4 1 250)
(a4 1 250)
(c5 1 500))
) play


Elements of the array are (pitch, duration, loudness) triples.
See method comment of
 noteSequenceOn: aSound from: anArray
The pitch may be given by a note name; then
 pitchForName: aString
is used to get the number value.

Purpose:
Anybody remember the old PLAY command in early BASICs, where you could enter a tune encoded in a string and it would play it through the scratchy speaker? This is similar. namedNoteSequenceFrom: expects an array of either:
Sending this to a subclass of AbstractSound will create the sound. Tell the sound to play to hear it.

Why this is interesting:
Squeak has some powerful music capabilities: sound synthesis, stereo sound, etc. This is a starting point into them. If you look at the class method examples in AbstractSound, you'll find a lot more. – Mark Guzdial

Remark: #( () () () ) is the syntax for building an array of literals. Here it is an array of arrays. The notes are defined as symbols.

See also

Musical objects for Squeak, a system which builds on this.