# ArcadeMIDI extension

**URL:** <https://forum.makecode.com/t/arcademidi-extension/15079>\
**Category:** Show & Tell\
**Tags:** extension, music\
**Created:** [August 25, 2022, 4:14pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079 "2022-08-25T16:14:05Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 25, 2022, 4:14pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/1 "2022-08-25T16:14:05Z")

</div>

A new and improved version of [Musical-Images](https://forum.makecode.com/t/music-requests/6454/22), I’m introducing the extension ArcadeMIDI!

> **[GitHub - UnsignedArduino/ArcadeMIDI: The next generation of advanced music in...](https://github.com/UnsignedArduino/ArcadeMIDI)**
>
> The next generation of advanced music in MakeCode Arcade! - GitHub - UnsignedArduino/ArcadeMIDI: The next generation of advanced music in MakeCode Arcade!

> Import this extension with the URL: [**https://github.com/UnsignedArduino/ArcadeMIDI**](https://github.com/UnsignedArduino/ArcadeMIDI)

> **Blocks available**
>
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/7/7ee54796472697d8256b15c11a9ba03ed0b725c1.png)

If you use it in TypeScript, there are more primitives exposed in the `ArcadeMIDI` namespace, should you wish to use them/experiement with them. (PRs anybody?!?!?! 👀 😁 )

Example:

> **[Never Gonna Give You Up](https://arcade.makecode.com/08305-64887-13518-23118)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

> **More examples**
>
> - [命に嫌われている (Hated by Life Itself) – Kanzaki Iori](https://makecode.com/_WMcYzcP8qeq2) - [score used](https://musescore.com/user/32448106/scores/8536067) - [Original YouTube video](https://www.youtube.com/watch?v=0HYm60Mjm0k)
> - [夜に駆ける/ Racing into the Night【ピアノ】 – YOASOBI](https://makecode.com/_7wVbjJ6qjVKz) - [score used](https://musescore.com/user/32448106/scores/8500736) - Original YouTube video: [ja](https://www.youtube.com/watch?v=x8VYWazR5mE), [en](https://www.youtube.com/watch?v=b3K61cQ8_fg)
> 
> I think they are quite good, for songs that basically haven’t been optimized at all for ArcadeMIDI. 🙂 (only glissandos have been removed)

Now, as usual, I’ve made a [Python script](https://github.com/UnsignedArduino/ArcadeMIDIGenerator) to generate the images needed, like [last time](https://github.com/UnsignedArduino/Musical-Images-Generator). But this time, I’ve also ported it to TypeScript so it can run in the browser! You can see the site at [**https://arcademidigeneratoronlinemain.gatsbyjs.io/**](https://arcademidigeneratoronlinemain.gatsbyjs.io/). (Source code for **the generator, not the extension** [here](https://github.com/UnsignedArduino/ArcadeMIDIGeneratorOnline)) The website is pretty self-explanatory - select your MIDI file, wait a bit, (the page will freeze while processing - I’m unable to figure out how to get web workers to work with Gatsby, the framework I’m using) and some buttons will pop up, allowing you to just click to copy that image to the clipboard. You can then paste it into Arcade!

> **Tips on using the most out of the ArcadeMIDI extension and the online converter**
>
> - Big, complicated, and/or fast MIDI files will make big images and tax Arcade more! The bigger and more complicated the MIDI file, the lower the chance of it working on hardware! It
> - Staccatos don’t sound good most of the time, as we don’t have “reverb” so the time span of the note will be very short! Try removing them in your music editor before exporting to MIDI if it doesn’t sound good!
> - Glissandos sound terrible!
> - Higher pitched notes will sound more prominent than the lower pitched notes, so take that into account when score writing/editing.

It’s definitely not perfect, so as always, suggestions, bug reports, and PRs are always accepted! (even on the site too)

Enjoy! 🙂

---

<div class="post-metadata">

**Author:** ![isoffline](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/isoffline/32/8791_2.png) [@isoffline](https://forum.makecode.com/u/isoffline)\
**Post date:** [August 25, 2022, 4:51pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/2 "2022-08-25T16:51:26Z")

</div>

NEVER GONNA GIVE YOU UP

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [August 25, 2022, 4:51pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/3 "2022-08-25T16:51:33Z")

</div>

This is awesome! Can’t wait to use it in some projects

---

<div class="post-metadata">

**Author:** ![EuJeen](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/eujeen/32/12807_2.png) [@EuJeen](https://forum.makecode.com/u/EuJeen)\
**Post date:** [August 26, 2022, 9:26pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/4 "2022-08-26T21:26:07Z")

</div>

OMG! This is absolutely amazing! 😃 😃 😃 This is going to be helpful for my coding! Thanks so much! Oh, and by the way, a sacred sentence is below this message. Can you guess what it is? 🤔

🎵 Never gonna give you up… 🎵

---

<div class="post-metadata">

**Author:** ![Segatendo](https://avatars.discourse-cdn.com/v4/letter/s/898d66/32.png) [@Segatendo](https://forum.makecode.com/u/Segatendo)\
**Post date:** [August 26, 2022, 9:26pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/5 "2022-08-26T21:26:44Z")

</div>

> **[dr robotnik](https://arcade.makecode.com/58237-76068-47365-57857)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

do you know whats wrong with this ? it sounds so good at the start and goes downhill i dont know why 🥲

---

<div class="post-metadata">

**Author:** ![Kiwiphoenix364](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kiwiphoenix364/32/14368_2.png) [@Kiwiphoenix364](https://forum.makecode.com/u/Kiwiphoenix364)\
**Post date:** [August 27, 2022, 3:24am UTC](https://forum.makecode.com/t/arcademidi-extension/15079/6 "2022-08-27T03:24:58Z")

</div>

Ow my ears…

Also I think it sounds bad because the high notes are louder than the soft notes. Also there’s no “instruments” in arcade so it could sound worse, especially with complicated songs. But idk for sure because I didn’t make the converter.

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 29, 2022, 4:15pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/8 "2022-08-29T16:15:12Z")

</div>

@Kiwiphoenix364 is right, the high notes are louder then the lower notes. If you know music, you may be able to edit it out or make the higher parts quieter.

Maybe another tip in general when using this extension: it helps a lot when trying to optimize usage of this extension.

---

<div class="post-metadata">

**Author:** ![Kiwiphoenix364](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kiwiphoenix364/32/14368_2.png) [@Kiwiphoenix364](https://forum.makecode.com/u/Kiwiphoenix364)\
**Post date:** [August 29, 2022, 4:19pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/9 "2022-08-29T16:19:18Z")

</div>

TBH this is an amazing extension

> **[DuckTales - The Moon Theme](https://arcade.makecode.com/61844-52088-23101-27893)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

(I made a modification to make it sound a little bit better, suggestion for the extension @UnsignedArduino, it would be nice to set the tempo of the song)

---

<div class="post-metadata">

**Author:** ![frank\_schmidt](https://avatars.discourse-cdn.com/v4/letter/f/7993a0/32.png) [@frank\_schmidt](https://forum.makecode.com/u/frank_schmidt)\
**Post date:** [August 29, 2022, 4:20pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/10 "2022-08-29T16:20:31Z")

</div>

This can be adapted to Jacdac in simulator. I have not yet loaded it onto a Microbit plugged into Kittenbot Newbit ; unfortunately addon speakers will not work with pins on Newbit for Arcade until the system is updated as should be possible since pinouts on Kittenbot Jacadaptor work with amplified speakers, and Kittenbot makes Newbit also. Is there anyway to make neopixels in simulator responsive to music notes ?  
[https://makecode.com/\_eaH4RceyeExF](https://makecode.com/_eaH4RceyeExF)

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 29, 2022, 6:11pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/11 "2022-08-29T18:11:10Z")

</div>

The converter should respect the `set_tempo` MIDI message, so if your software exports that, then it should play at that speed.

But a speed multiplier wouldn’t be [that hard to add](https://github.com/UnsignedArduino/ArcadeMIDI/issues/2)…

---

<div class="post-metadata">

**Author:** ![Segatendo](https://avatars.discourse-cdn.com/v4/letter/s/898d66/32.png) [@Segatendo](https://forum.makecode.com/u/Segatendo)\
**Post date:** [August 31, 2022, 5:59pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/12 "2022-08-31T17:59:24Z")

</div>

ok i know no one is taking any requests but just could someone do one for me please  
its the trooper by iron maiden  
i really love the band and i was making a game with samurai eddie as the player  
if you could do that id be so happy

---

<div class="post-metadata">

**Author:** ![Segatendo](https://avatars.discourse-cdn.com/v4/letter/s/898d66/32.png) [@Segatendo](https://forum.makecode.com/u/Segatendo)\
**Post date:** [August 31, 2022, 6:09pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/13 "2022-08-31T18:09:04Z")

</div>

hey @Kiwiphoenix364 i used your duck tales theme and i replaced it with the sonic boss theme and it actually sounds good and if you remove the forever block then itll sound absolutely TERIBBLE and hurt your ears

> **[dr robotnik thankyou kiwiphoeinix](https://arcade.makecode.com/53145-09997-14533-77168)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

here it is

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 10, 2022, 5:38pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/14 "2022-11-10T17:38:54Z")

</div>

> [@UnsignedArduino](#):
>
> [https://github.com/UnsignedArduino/ArcadeMIDI](https://github.com/UnsignedArduino/ArcadeMIDI)

Thanks @UnsignedArduino, for this great midi-extension, and the earlier [musical-images extension](https://github.com/UnsignedArduino/Musical-Images), which makes composing more advanced music easier and with more options than the built-in basic music editor! -And a great gallery with many nice songs here from many on the forum known for more advanced contributions: [https://forum.makecode.com/t/song-gallery/5471](https://forum.makecode.com/t/song-gallery/5471)

But there seems to be few songs which feature percussion sounds and the variety in sound types/waveforms like e.g. @kwx does programatically in the [“simple” loops here](https://forum.makecode.com/t/sound-effect-demo-no-extensions/5833/6).

Would it be possible to have more control over the soundwaves, like [documented here](https://arcade.makecode.com/developer/sound), in any of your tools, other tools that are know, or any of the built-in tools, that could produce music akin to the @kwx’ et. al. “simple” loops?

And what about this built-in(or extension?) [music sequencer “based on mario paint” discussed here](https://forum.makecode.com/t/music-sequencer-for-makecode-arcade/16248/2)? I can´t even find such a music editor in the MakeCode editor with icons representing instruments and polyphonic sounds, but then again, I am pretty noob…

Are we getting closer to, or maybe they already exist, to one or more toolsets which fully utilizes or pushes the limits to what is possible to do with sound and music in MakeCode Arcade, like for example the good old trackers from the [demoscene](https://forum.makecode.com/t/makecode-arcade-demoscene/16250)?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 17, 2022, 8:50pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/15 "2022-11-17T20:50:50Z")

</div>

Just found and tested the new music editor/sequencer in beta:  
[https://forum.makecode.com/t/music-sequencer-for-makecode-arcade/16248](https://forum.makecode.com/t/music-sequencer-for-makecode-arcade/16248)

It seems to have great potential for good sounding music, especially if new sounds/waveforms can be imported and edited.

Does your midi and musical images extension already allow for tweaking waveforms and instruments how you like programatically or in the extensions, @UnsignedArduino?  
(Sorry if this is a “lame” question which easily could be figured out by using using your extensions more, but I am pretty new to this and have a hard time learning all the different ways to make music in MakeCode, and with a background in analog drums and some percussion its no breeze for me to make a melody or midi sequence on my electric piano either, I’m afraid…)

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [November 17, 2022, 11:28pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/16 "2022-11-17T23:28:49Z")

</div>

Sorry, no not really.

I plan on making a new website that will export to the new format introduced by the music editor.

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [November 17, 2022, 11:45pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/17 "2022-11-17T23:45:57Z")

</div>

@UnsignedArduino for reference, the code that encodes songs lives here:

> <https://github.com/microsoft/pxt/blob/master/pxtlib/music.ts#L391>

Sorry for how complicated the format is. There’s a lot of stuff to encode!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 18, 2022, 11:28pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/18 "2022-11-18T23:28:21Z")

</div>

Great idea, then with a greater array of sounds from a midi file recorded from a keyboard or something!

Starting to reach a certain level for producing music in MakeCode, and with more sound editing capabilities in the new music editor, it’s becoming pretty wholesome.

I am trying to motivate a musical friend of my son to contribute with some tunes for his computer club’s MakeCode projects. But he thinks programming music is too complicated, the standard music editor until now too basic, and not sure about what his problem with your extensions was. -But he very much appreciated your choice of [demo tune](https://www.youtube.com/watch?v=dQw4w9WgXcQ), as those kids are rolling it even more than we used to do in the 2000s… 😉

---

<div class="post-metadata">

**Author:** ![TheGreenArtist](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/thegreenartist/32/11096_2.png) [@TheGreenArtist](https://forum.makecode.com/u/TheGreenArtist)\
**Post date:** [November 21, 2022, 7:05pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/20 "2022-11-21T19:05:00Z")

</div>

@Sarge Languge!!!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 21, 2022, 7:05pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/21 "2022-11-21T19:05:47Z")

</div>

Hahaha, sorry! -Imagine how many have have fallen for it just by using @UnsignedArduino’s extensions!!!

_“We know the game, and we’re gonna play it”_ 😉

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [November 21, 2022, 7:19pm UTC](https://forum.makecode.com/t/arcademidi-extension/15079/22 "2022-11-21T19:19:20Z")

</div>

Someone flagged my post… What???

[Next page](https://forum.makecode.com/t/arcademidi-extension/15079.md?page=2)
