Programming MIDI

preview_player
Показать описание
In this video I explore the MIDI protocol and MIDI file format before implementing a MIDI file parser from scratch, visualising the MIDI contents and subsequently sending the MIDI to my synthesizer.

Рекомендации по теме
Комментарии
Автор

HUGE thing to know: In the MIDI header is a value that gives you 'ticks per quarter note' and 'milliseconds per quarter note'. This is what you use to draw out MIDI note events visually. You also use 'Tempo' which is in microseconds, there are 60 million microseconds in a minute so you do 60 million / tempo = BPM and thats how you get the BPM of a song. You can then use ticks per quarter, bpm, milliseconds per quarter and get all the values you need to visualize from these.

astrahcat
Автор

This channel is a gold mine. Thank you for sharing!

danielbuenrostro
Автор

This video made me as happy as when I discovered:

* { box-sizing: border-box }

nicolasdelpuerto
Автор

Hi javidx!
I want to thank you for your work, and congratulate you on your skills.
I started my adventure with game development when I was a kid, but over time I appreciated software engineering too.

This and the synthesizer videos are currently queued to be seen, as generation and modeling of the wave for sound fascinates me.

I hope you can grow on the Internet, you deserve much more.

HealliesGames
Автор

You are doing an AMAZING job and i cant stress that enough. Trust me not everyone has the ability to teach sophisticated things that well. You are blessed sir. Thank you.

mun
Автор

This is now number one, of my top chanels of all youtube for programing. Thanks for sharing your knowledge!!!

MarceloFernandez-bbtb
Автор

Haha, how I already knew the song @9:48 :D That "wait a moment..." feeling... and then seeing I was right. Nice selection! And nice video, as always!

ChainShinra
Автор

Another fab video! I enjoyed playing with MIDI in my own audio projects, and this provides a great reference for me or anyone else interested in digital music.

StuBonham
Автор

Some days ago I was looking some stuffs on MIDI and this came up today, pretty cool!

cortexauth
Автор

Hey javidx9.
After couple of weeks it's great to see the new MIDI video. I almost finished my project that i asked your advice.
Unfortunately i couldn't find any good tutorial about understanding the structure of the MIDI files and now i'm a native Hexadecimal/Binary Reader( Sort of :) ).
Looks like i achieved to the point you've shown in this video. Only with couple of differences( Which are totally normal ).
I just wanted to thank you again. Your answer helped me believe in myself.
SO THANK YOU! <3 As i did before I'll be around and following you quietly most of the time.
Wish you the Bests of the Bests...

PuraTvOyun
Автор

I’m so glad you made this video, Javidx9. MIDI is fascinating. Cheers!

jaylectric
Автор

Fantastic! I've worked with MIDI before but never from a coding perspective, love it.

PeterMetzger
Автор

Wow, just wow! I need to implement midi in my project and this has been a huge help. Thanks mate!

jmcasler
Автор

There's a pervasive misconception in this video that took me a minute to understand. The delta time information is part of the event in the midi file, but it is not part of the midi message that is sent out. The time stamp tells the midi file player (or sequencer) when to send the message, but the midi protocol is fully asynchronous, messages can be sent any time and they are processed as they are received. This also relates to why midi bytes are mostly 7 bit values. It's not to conserve bandwidth, all 8 bits are sent, but the first byte of a message will have the high bit set to 1 so the receiving device knows this is the start of a midi message. The rest of the bytes in the message must have the high bit set to 0. Midi devices process midi messages as they are received, and they do not know or care who sent them or when. Imagine multiple midi instruments all receiving event messages and trying to comply with delta time stamps. They would need to all be in sync somehow. The midi protocol is designed specifically to avoid this problem.

plateoshrimp
Автор

Being a bit of a masochist I decided to write my own DAW but realised I only have an understanding of sending and receiving Midi messages and not so much the file structure of a typical midi file. This is great, the clearest explanation I've seen so far.

NickSBailey
Автор

Inspired by this !! great channel !!
I've just downloaded MIDI specs to give it a try !!!
thanks for you work !!

claudiostano
Автор

I'm working on optimizing a dsp library right now, this is perfect to listen to :) Thanks so much! I'd love to work on MIDI one day

supersquare
Автор

Tbh I wanted to train a neural network to make music for my game as Im not that good and you've came up with this, perfect timing :)

verdgehirn
Автор

I'm not even 1/10th through the video and you've already earned my like, comment, and subscription!

rondotexe
Автор

What a great video! Thanks @javidx9 for keep making this content.

daanielacosta