Question

I want to manually have a function that creates a MIDI file according to users demands, for example.

User write 2 patches that contain 8 bars of 4 quarters of A4 (Concert A - 440hz) and C4 (each as a seperated channel) on 120 speed, at velocity 100, instrument piano (01) and patch 49 or whatever.

How should the MIDI file look like according to the above. My goal is to learn how to create a function that generates MIDI data, then write everything to a MIDI file.

So first I have to understand how to create this function or to understand 'MIDI-file language' so I can write it.

Thanks in advance.

Was it helpful?

Solution 2

From all the MIDI info I read recently, this seems to be the most comprehensive tutorial, in the other hand the following link is a good place to get started:

MIDI structure at the official MIDI website

Also, NAudio is a .NET library that works with MIDI files by Mark Heath.
I've also found this link very useful, I thought why not share it with people here.

I think this is the best .NET API for messing with MIDI files.

OTHER TIPS

Other good links on the MIDI file format can be found here:

Just wanted to add that Somascape has a very comprehensive and well-laid out resource for MIDI file structure and MIDI protocol. (Check out the drop-down menu on their site for additional resource pages). It helped me a lot recently while writing a MIDI framework for Swift.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top