# MIDI to MakeCode

**URL:** https://forum.makecode.com/t/midi-to-makecode/40857
**Category:** Arcade
**Created:** [December 9, 2025, 7:24pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857 "2025-12-09T19:24:54Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![WoodysWorkshop](https://avatars.discourse-cdn.com/v4/letter/w/ea666f/32.png) [@WoodysWorkshop](https://forum.makecode.com/u/WoodysWorkshop)
#### Post date: [December 9, 2025, 7:24pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/1 "2025-12-09T19:24:54Z")

</div>

_Easily convert MIDI tracks to the hexcodes used within MakeCode Arcade’s built in music feature: Play Song_

### **Go to the tool: [HERE](https://monk070.github.io/midi-to-makecode/)**

1. Drag and drop (or select) MIDI file.

(Default settings are good but you can tweak the octaves)

1. Copy the generated code with the copy code button

2. In MakeCode Arcade editor, switch to the JavaScript (JS) option and paste in your song.

3. Switch back to blocks to see it on the visual score!

**Try it with [Daisy Bell](https://share.google/Hxt0M1x9obyNhMQ13)**

Inspired by some of the work from 2022 by @UnsignedArduino

💭 Would love to hear everyone’s thoughts on this tool and any improvements! 😊

---

<div class="post-metadata">

### Author: ![randomuser](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/randomuser/32/32505_2.png) [@randomuser](https://forum.makecode.com/u/randomuser)
#### Post date: [December 9, 2025, 9:44pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/2 "2025-12-09T21:44:56Z")

</div>

This is awesome, I’m glad you made the tool so easy to use!!  
I should’ve used something like this on _my_ rendition of daisy bell, I got the notes all wrong 🤣

---

<div class="post-metadata">

### Author: ![MeatballDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/meatballdev/32/28502_2.png) [@MeatballDev](https://forum.makecode.com/u/MeatballDev)
#### Post date: [December 9, 2025, 9:57pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/3 "2025-12-09T21:57:49Z")

</div>

@WoodysWorkshop I was literally searching for a way to do this a day before this got approved, but can you make it so it recognizes what note to place

---

<div class="post-metadata">

### Author: ![WoodysWorkshop](https://avatars.discourse-cdn.com/v4/letter/w/ea666f/32.png) [@WoodysWorkshop](https://forum.makecode.com/u/WoodysWorkshop)
#### Post date: [December 10, 2025, 4:03am UTC](https://forum.makecode.com/t/midi-to-makecode/40857/4 "2025-12-10T04:03:32Z")

</div>

# Update! V1.2

## Now with Lyrics Sync!

It’s a lot like Animal Crossing!

Try the new tool: [HERE](https://monk070.github.io/midi-to-makecode/)

Here’s a demo project:

> **[Sync'd Lyrics!](https://arcade.makecode.com/76720-78253-39534-04831)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

---

<div class="post-metadata">

### Author: ![WoodysWorkshop](https://avatars.discourse-cdn.com/v4/letter/w/ea666f/32.png) [@WoodysWorkshop](https://forum.makecode.com/u/WoodysWorkshop)
#### Post date: [December 10, 2025, 4:03am UTC](https://forum.makecode.com/t/midi-to-makecode/40857/5 "2025-12-10T04:03:43Z")

</div>

Yeah I will 🙂 Hex data is tricky! I did have a go at this today but couldn’t match up the instruments quite right so I’ll come back to this. 😓

---

<div class="post-metadata">

### Author: ![WoodysWorkshop](https://avatars.discourse-cdn.com/v4/letter/w/ea666f/32.png) [@WoodysWorkshop](https://forum.makecode.com/u/WoodysWorkshop)
#### Post date: [December 10, 2025, 6:32pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/6 "2025-12-10T18:32:31Z")

</div>

1. First, you need the Text-Sprite extension

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/e/de4dce068ca8a433ee88d4b1167730d72e355e95.png)

1. Choose the audio track for the lyrics to sync to; 1 note: 1 syllable

2. The demo project looks like:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/2/8/28371a4e518d6b3cf05dfa81a78f9a3726a8c10e.png)

Select the one channel that carries the melody. From the Daisy Bell example, this is the middle one “8-Bit Square with 162 notes”.

The notes of the melody could show as ‘Dai sy Dai sy give me your an swer do’, but I wanted the whole word to show instead of the syllable, which is why you see words with more than one syllable repeated.

---

<div class="post-metadata">

### Author: ![WoodysWorkshop](https://avatars.discourse-cdn.com/v4/letter/w/ea666f/32.png) [@WoodysWorkshop](https://forum.makecode.com/u/WoodysWorkshop)
#### Post date: [December 10, 2025, 6:40pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/7 "2025-12-10T18:40:01Z")

</div>

Idea: Karoke game

---

<div class="post-metadata">

### Author: ![MeatballDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/meatballdev/32/28502_2.png) [@MeatballDev](https://forum.makecode.com/u/MeatballDev)
#### Post date: [January 23, 2026, 6:23pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/8 "2026-01-23T18:23:56Z")

</div>

how is it going

---

<div class="post-metadata">

### Author: ![nayrbgo](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/nayrbgo/32/668_2.png) [@nayrbgo](https://forum.makecode.com/u/nayrbgo)
#### Post date: [May 1, 2026, 7:42pm UTC](https://forum.makecode.com/t/midi-to-makecode/40857/9 "2026-05-01T19:42:54Z")

</div>

> [@WoodysWorkshop](#):
>
> [https://arcade.makecode.com/76720-78253-39534-04831](https://arcade.makecode.com/76720-78253-39534-04831)

wow! just found this – such a good idea and fills a void!
