# Having fun messing around with sound

**URL:** <https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780>\
**Category:** Arcade\
**Tags:** music, tool\
**Created:** [March 20, 2026, 5:10pm UTC](https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780 "2026-03-20T17:10:53Z")\
**Posts on this page:** 3\
**Page:** 2

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [July 22, 2026, 9:53pm UTC](https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780/21 "2026-07-22T21:53:50Z")

</div>

every track on beepbox is always the same length no matter what, but in ultrabox you get mod channels which alows this (i have it in my dwell song):

 ![Screenshot 2026-07-22 144644](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/0/a/0a1a9d5ac8e72b655cb17c3d34e16b4644e5624e.png) ![Screenshot 2026-07-22 144633](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/8/2/8280db58940e98600e5c43b1ec9630dc23dd32b0.png)

And that basically is 1/4 of a measure.

oh wait a track is an instrument i think. there is more that should be added, but i had a rough idea of organizing it as:

```typescript
class SongNote {
    pitches: number[] // 0-63 (chords and stuff are multiple, empty array is no note)
    shifts: number[] // shift of notes, ordered same as volumes but [time (in grid ticks), shiftAmount, time, shiftAmount], empty array is no pitch slide
    duration: number // Number of grid ticks
    volumes: number[] // volume can change any time the note plays! how it is ordered: [volume, time, volume, time,... volume] where time is the distance between surrounding volumes, vol is between 0 and 3
    // for volumes and shifts, the changing of pitch/vol is a slide, not an immediate change
    
    // example:
    // pitches: [18, 20, 23]
    // shifts: [1,-1, 1,0, 2,-2]
    // duration: 4
    // volume: [3 4,0]
}

class SongTrack {
    notes: Note[] // Chronological list of notes
    
    //envelopes, instrument sound, effects, etc.
}

class SongProject {
    bpm: number
    tracks: SongTrack[]
}

```

---

<div class="post-metadata">

**Author:** ![WoofWoof](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/woofwoof/32/32523_2.png) [@WoofWoof](https://forum.makecode.com/u/WoofWoof)\
**Post date:** [July 23, 2026, 2:03am UTC](https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780/22 "2026-07-23T02:03:20Z")

</div>

Can a mod send this over to my [music editor topic](https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780) so we aren’t off topic in Comings and Goings?

---

<div class="post-metadata">

**Author:** ![WoofWoof](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/woofwoof/32/32523_2.png) [@WoofWoof](https://forum.makecode.com/u/WoofWoof)\
**Post date:** [August 11, 2026, 10:00pm UTC](https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780/23 "2026-08-11T22:00:11Z")

</div>

Ok, I have done some testing and I found that you can paste text into game.askForString() boxes so that makes importing songs super easy!

[Previous page](https://forum.makecode.com/t/having-fun-messing-around-with-sound/42780.md?page=1)
