ArcadeMIDI extension

A new and improved version of Musical-Images, I’m introducing the extension ArcadeMIDI!

Import this extension with the URL: https://github.com/UnsignedArduino/ArcadeMIDI

Blocks available

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?!?!?! :eyes: :grin: )

Example:

More examples

I think they are quite good, for songs that basically haven’t been optimized at all for ArcadeMIDI. :slight_smile: (only glissandos have been removed)

Now, as usual, I’ve made a Python script to generate the images needed, like last time. 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/. (Source code for the generator, not the extension here) 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! :slight_smile:

9 Likes

NEVER GONNA GIVE YOU UP

4 Likes

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

3 Likes

OMG! This is absolutely amazing! :smiley: :smiley: :smiley: 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? :thinking:

:musical_note: Never gonna give you up… :musical_note:

6 Likes

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

2 Likes

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.

2 Likes

lol not clicking it XDDD

@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.

3 Likes

TBH this is an amazing extension

(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)

2 Likes

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

2 Likes

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

2 Likes

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

2 Likes

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

here it is

4 Likes

Thanks @UnsignedArduino, for this great midi-extension, and the earlier musical-images extension, 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

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.

Would it be possible to have more control over the soundwaves, like documented here, 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? 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?

2 Likes

Just found and tested the new music editor/sequencer in beta:
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…)

2 Likes

Sorry, no not really.

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

3 Likes

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

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

2 Likes

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, as those kids are rolling it even more than we used to do in the 2000s… :wink:

2 Likes

@Sarge Languge!!!

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” :wink:

2 Likes