UNPKG

pxt-microbit

Version:

micro:bit target for Microsoft MakeCode (PXT)

59 lines (39 loc) 1.93 kB
# playable The **playable** data object provides a common format to play tones, melodies, and songs. Each of these music sources are created in different ways but are transformed into playable objects so that a single playback method is used to [play](/refernece/music/play) them. ## Music sources for playable objects The blocks used to create playable music sources are the following: ### Tone A tone is a musical note, or a sound frequency, and a duration. The duration is often set as the length of a `beat`. ```block music.tonePlayable(262, music.beat(BeatFraction.Whole)) ``` ### Melody Melodies are a series of notes and a tempo to play them at. ```block music.stringPlayable("D F E A E A C B ", 120) ``` ### Sound Expression A sound expression is set of parameters that describe a **[sound](/types/sound)** that will last for some amount of time. These parameters specify a base waveform, frequency range, sound volume, and effects. ```block music.play(music.createSoundExpression(WaveShape.Sine, 5000, 0, 255, 0, 500, SoundExpressionEffect.None, InterpolationCurve.Linear), music.PlaybackMode.UntilDone) ``` ## Play the music In your programs, you can simply use the ``||music:play||`` blocks for each playable object. Like this one for tone: ```block music.play(music.tonePlayable(262, music.beat(BeatFraction.Whole)), music.PlaybackMode.UntilDone) ``` ## Example Put 2 different playable music sources in an array. Play one after the other. ```blocks let playables = [ music.tonePlayable(262, music.beat(BeatFraction.Whole)), music.stringPlayable("D F E A E A C B ", 120) ] for (let someMusic of playables) { music.play(someMusic, music.PlaybackMode.UntilDone) basic.pause(500) } ``` ## See also [play](/reference/music/play), [tone playable](/reference/music/tone-playable) [string playable](/reference/music/string-playable), [create sound expression](/reference/music/create-sound-expression)