Visualize midi files




















As I mentioned, in the spring, I worked on a data visualization project for a grad school course. In it, we were asked to form teams to develop a term project. Naturally, we were allowed to work on just about anything as long as it was data visualization related.

Once we got into our teams, I worked with my partner, Stephen Wu , to flesh out some ideas for visualizing music. Ultimately, we decided to put together a MIDI file visualization dashboard.

MIDI, for those that might not know, is a music file format which thinks of music in terms of events. All the data we need is already at the note level. Of course, MIDI limits our application space, but it allowed us to create our dashboard a lot quicker. Essentially, we wanted to create a dashboard which would allow musicians to see differences in MIDI files.

In particular, we figured musicians could use it as a part of their practice regiment. In other words, they would record themselves playing a song then compare it directly to some expert recording. Given enough time, they would be able refine their technique until they mastered the song.

After a few months, we had a working dashboard which could be used to compare any number of MIDI recordings. There you can also find the sample report which outlines this project a bit more formally. Essentially, this is a plot of what notes are being play at what time. Specifically, the notes are organized from lowest to highest along the y-axis while time is listed on the x-axis.

In this case, time is in in MIDI ticks. Although, it would be nice to see time in seconds. To make this plot more interesting, we actually have a song playback feature which allows the user to play their recording against this plot.

To track progress through the song, we use a vertical line. In addition, since songs tend to have a lot of notes, we gave this pane a scroll bar.

That way, the plot would be a little easier to read. As the name suggests, the note frequency plot indicates how many times a note was played—with no relation to duration.

Specifically, the x-axis features each note that appeared, sorted by the most frequent note. Meanwhile, the y-axis indicates the number of times a note was played. The main idea behind this plot was to give a quick overview of wrong notes. As you can see in the example above, there are two recordings being compared. To highlight that difference, we fade all pairs with the same frequency. Specifically, if we hover over a bar, we should see the note list alongside its frequency and which track it came from.

Basically, this plot features the velocity i. On the y-axis, we feature the velocity. Meanwhile, on the x-axis, we feature the time in the same units as the notes played plot i. Theoretically, we would use this marker to identify the current dynamic level e. Of all the plots, this one is the most ambiguous. Ideally, we wanted to be able to show dynamics, so we could compare swells in recordings.

Unfortunately, we were never really able to get something that resembled dynamics. In our current plot, we show the range of velocities by drawing upper and lower bounds for the velocities at any given time. Initially, the dashboard is empty. In addition, a new element will be added to the song management pane: the new song. Anyway, this then gives you a plot where the radius of the point corresponds to the duration the note is played and y axis corresponds to the pitch and the x axis in what order the notes are played.

Sign up to join this community. The best answers are voted up and rise to the top. Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams? Learn more. How to visualize music from midi file format? Ask Question. Asked 4 years, 10 months ago. Active 4 years, 10 months ago. Viewed times. I uploaded a midi file here i made called c scale. Any help and insights would be appreciated.

Improve this question. Tomi 3, 11 11 silver badges 25 25 bronze badges. Add a comment. Active Oldest Votes. Improve this answer.

Tomi Tomi 3, 11 11 silver badges 25 25 bronze badges. But It doesn't animate. Like as the the midi plays i wanted the shapes and colors to move across the screen like I've seen some mathematica demo's have shown. Or maybe it was some other platform, I don't remember exactly. Would you mind terribly giving me a line by line explanation of what you're doing. I'm guessing it's because you just want the relevant part of the midi file, right?



0コメント

  • 1000 / 1000