Posts Tagged ‘MIDI’
I started playing around using the melody and chord progression that a huge number of people created together at CrowdSound, and ended up making this little arrangement for Bawami, my MIDI synth. It took a few hours over 3 nights.
CrowdSound is a site where people were given a chord progression and song structure, and were then allowed to vote note-by-note to make a melody. It’s an experiment to see if lots of people can work together to gradually make an entire song by voting on many tiny additions. Since people are making remixes already, I decided I’d try, too.
As of the 15th of August 2016, only the melody is complete, so I imported the MIDI of the melody (from here) into Sekaiju (the MIDI editor I use). From there, based on the chord progression, I made tracks for bass, percussion, overdriven and acoustic guitar parts, 2-part pad and a portamento synth sequence to liven things up a bit. Then I decided on how I’d switch between the various backing parts so they weren’t all fighting for the spotlight at the same time. After that, I changed the velocities of all the melody notes (since I’m using a velocity-sensitive lead instrument on Bawami), to make it sound less annoying and repetitive and to complement the beat. I also shortened some long notes (which is within CrowdSound’s rules for arranging) to let the lead stop for breath every now and then, added modulation (vibrato) sparingly, and decided to somtimes pitch-bend from one note to another during the conclusion instead of instantly jumping (I think this should be allowed, because a real human voice would have to do this all the time =P).
In keeping with the openness of CrowdSound, you can download my MIDI (designed to be played on Bawami rev.132 or later) here. It uses several GS “variation” instruments, so it will sound worse on GM synths. It also uses an instrument (12-string Guitar) which is not present in Bawami rev.131, the currently-released version, but it should still sound fine on that version (it’ll fall back to the “Acoustic Guitar (Steel)” instrument). That, along with many other changes, will be in the next version I release!
This MIDI is playing on BaWaMI, which is a freeware, retro-sounding MIDI synth that uses subtractive synthesis. I’ve been working on it every now and then since 2010. You can find out more (and grab the latest version) here (click its title to get to the download page).
The 3D scrolling view of notes is MIDITrail.
Here’s my MIDI software synth Bawami doing its best to even keep responding while trying to play TheSuperMarioBros2‘s black MIDI “Arecibo“. The left view shows how it’s processing every MIDI message. Not shown: About 5 minutes of Bawami loading the 12MB MIDI file hideously inefficiently (tempo changes make it even worse).
This problem of my player stopping responding when maxed out is something I need to (re-)fix. I fixed this a long time ago (probably before releasing Bawami), but broke it again afterwards somehow, also a long time ago now… As always, the most recent version of Bawami can be download here (also check the most recently tagged posts to see recent changes).
TheSuperMarioBros2 have made a lot of great black MIDIs that are often fun to stress-test MIDI players with. You can see lots playing at their channel (they also provide download links for the MIDI files). However, Bawami’s loading of MIDIs is inefficient, so I’d recommend not trying to torture it with black MIDIs too much. I also suggest unticking “Loop” so that, if it stops responding during playback, it’ll eventually start responding again at the end.
This is a small update which fixes OGG file rendering, and a couple of other superficial things.
- Fixed tabbing order of controls on “Mod shape” tab of the config window.
- Writing OGG files works again – I accidentally removed a file needed by the OGG encoder in revision 130. Users who extracted revision 130′s folder over revision 129′s would not have experienced the problem.
- Stopped warning about buggy controls from being displayed on the “MIDI params” tab of the config window, since it’s no longer true.
This update lets Bawami write WAV files in paths containing non-ASCII characters (something long-overdue), and fixes a bunch of complicated interwoven bugs related to the handling of “bad” MIDI files and of percussive notes. There’s also a load of other fixes, including for portamento-related bugs, crashing in /translator mode, and visual fixes, and a couple of new instruments.
You can grab the latest version from here (7.81 MB), and see details of the changes below the page break:
This is a nice big bunch of fixes – mostly related to /console-mode, but a couple of more serious things (which affect more people) are fixed, too.
You can grab this latest version from here (7.87 MB), and see details of all the changes below.
General bug fixes
- Fixed bug where button to browse for a new MIDI file remained disabled after opening a MIDI by dropping it onto the main window.
- Now recognises when a filename is passed on the command line without speech marks (and without any command line parameters). This fixes the problem of Bawami not opening a path+file containing no spaces if such a file was dragged onto its icon (or if Bawami is associated with .MID files), because Windows does not automatically surround such a path+file with speech marks when passing it to the program.
Fixes for when using /console
- No longer crashes if you’re redirecting Bawami’s output to a file or other program.
- When using “/infolevel 2“, log file text is now sent to StdOut instead of (accidentally) to StdErr.
- “Finished.” is now (always) displayed when shutting down.
- Key prompts for answers to questions are now sent to StdErr instead of StdOut (as was already being done for the question’s title and message), so that they’re visible on the console even if you’re redirecting Bawami’s StdOut to a file.
- Green “settings” button’s tooltip is now loaded in the chosen language (instead of having no tooltip) (broken in revision 128).
- Corrected Z-order of several controls on the config window so that the dotted border that indicates a control that has focus isn’t having one of its horizontal edges cut off unnecessarily.
- Corrected a reference to how green “settings” button appears in info.txt.
Logging (also affects text shown when using /console /infolevel >=1)
- No longer shows “Closing MIDI input port” when shutting down, if MIDI-in wasn’t in use.
- No longer shows “Decoding absolute timings” a few lines after the last track has finished being decoded.
This version includes a whole load more bug fixes, plus some serious support for running Bawami from the console (command prompt), which also guarantees to never display message boxes, along with several other fun new command line parameters. It should also start slightly faster (less writing to log file, and some language files are now only loaded when they’re needed), seeking to a different playback position is easier on the ears, and there’s a bunch of safeguards added to the code related to writing OGG files. A few command line parameters have been renamed to make them less long-winded, they all begin with a slash instead of a hyphen now, and Bawami now lets you know exactly which ones it didn’t understand (if any). But despite a lot of work being focussed on command line parameters, there are several GUI-related bug fixes, too!
NOTE: In order for Bawami to be able to output to the Windows console (command prompt) when using /console option, the EXE file is now compiled as a console-mode program. Annoyingly, this causes a console window to appear for a brief moment before Bawami’s main window appears. However, this doesn’t slow anything down; it’s only for part of the amount of time where, previously, nothing at all was displayed.
You can download the new version here (7.87 MB). Full details on all of the changes and bug fixes are below, but allow me to first introduce a new feature of Bawami:
If you run Bawami from the command line, this option should be very useful, and is highly recommended instead of /invisible. Text is output to “standard output” (meaning you can see what Bawami’s doing in the console), and you can respond to any messages by pressing keys on the console, too. In this mode, Bawami also starts faster and is safe to crash in the middle of playback (nothing is leaked – but for now, make sure that you also kill the OGG encoder if you crash it in the middle of writing an OGG file). Just for fun, you can also view every single raw MIDI message scrolling up in the console as it plays (/stdmidi) , and use /infolevel 1 or 2 to get a more in-depth look at exactly what’s going on internally. Of course, these options which spam text to the console will slow Bawami down a bit. Please check the “COMMAND LINE PARAMETERS” section in info.txt for full details, and see below for an overview of all changes/additions.
View all changes below the page break:
When I first published revision 127 of Bawami about 25 minutes ago, the download included a 64-bit version of “vcut.exe” (official Vorbis splitter, used by this version of Bawami) which would not work on 32-bit Windows. A universally-compatible, 32-bit version is now included instead.
To avoid problems (OGG file export not working), I highly advise that you re-download it if you downloaded it within the past 25 minutes. I am sorry for the inconvenience.
This is essentially a whole bunch of bug fixes, including one that I really should’ve released sooner (no longer freezes at the end of exporting a WAV/OGG file under certain conditions). There aren’t really new features, which should mean that, for once, the total number of bugs has actually decreased! ^^;
Most fixes are regarding WAV/OGG file-writing, click artifacts due to release times, and a couple of visual glitches. Full details are below the page-break.
EDIT: When I first published this post, the download included a 64-bit version of “vcut.exe” (official Vorbis splitter, used by this version of Bawami) which would not work on 32-bit Windows. A universally-compatible, 32-bit version is now included instead. Sorry for the inconvenience.
Here’s the Roland SC-88Pro synth being pushed quite hard by the power of moe (ending theme of the anime Moetan, “Skip!”, originally sung by Nomico, to my surprise). MIDITrail’s fancy 3D view is good for notes, but doesn’t show any control changes, so I included a scrolling view of those, too, next to the synth’s display. And hey, why not 60FPS for those who can view that? =)
This MIDI took me about 5 days to make, plus a few hours of tweaking at the end. It sounded like it was nearly finished after 2 days, but the hardest stuff was still left to do at that point (I do hate struggling to transcribe barely-audible parts, but they really fill in the gaps and make it sound complete).
Firsts for me include the fast arpeggio effect (surprisingly, the 88P never complained about this), wah effect on the quiet guitar (on the right), and gratuitous use of “All Sound Off” whenever possible, to try to keep things running quickly enough. Also, 4 sound effects I’ve never used before!
3 channels get re-used for different instruments (16 channels has never been so insufficient), but more annoyingly, the synth’s update speed drops really low during the chorus because of all the playing voices, making pitch-bends sound jumpy, and it took a lot of tweaking and quite some luck to get a clean recording. I kind of wonder if it’s just my 88P which slows down so much when many notes are playing (even if there are not many MIDI messsages), or if it’s simply a limitation of its CPU speed. It might just be a coincidence, but it seemed to handle it better immediately after power-up, so perhaps it becomes worse as it gets hotter. In that case, maybe I could attach a heat sink to the CPU, or just put a fan in there (I don’t really want to drill holes, though). The case doesn’t really get very hot, though. I kind of wish I could limit it to playing only 32 voices at once, instead of letting it struggle with 64. Lowering release times only gets you so far.
Somehow, the fact that an anime of Moetan had been made eluded me for 8 years and I only recently discovered it. “YOU MAGGOTS ARE HUFFING AND PUFFING–” oh wait, wrong English-teaching mahou shoujo.
Something a little different this time. I had a burst of nostalgia and got this theme stuck in my head, so I decided to try to remake it for the SC-88Pro synth. It’s the first MIDI I’ve made in less than 18 hours (including sleep)! It’s also the first I’ve made for the 88P which doesn’t use all the sound channels (4 are untouched), despite using 3 just for trying to emulate the FM snare. And the first that messes around with time signatures to keep in-sync with the original while still having the notes align sensibly in my MIDI editor…
This is a remake of the music from the DOS version of the game “Dizzy: Prince of the Yolkfolk”. It was released on many different platforms, and I’m sure the instruments vary a lot on the different versions, but I’ve only ever played the DOS version. It used AdLib music (technically, the Yamaha OPL2 FM synth).
I’ve seen some remixes of this, but I tried to stay faithful to the original (including overlapping notes, monophonic channels and notes that get cut because of the limitations of the AdLib hardware). Originally, I was going to use a synth trumpet sound to really match the original, but I couldn’t find a suitable FM-style harpsichord to go along with it, and synth trumpets sounded stupidly out-of-place when paired with the realistic harpsichord, so I had to go for modern-sounding brass instruments.
Yamaha music on a Roland synth… heresy!