BaWaMI (revision 121)

Posted on 2014-12-07 at 00:34 in Music, Programs by Robbi-985.

This release greatly improves PC speaker control, adds 3 more instruments, has the usual helping of bug fixes and things to avoid crashes, plus adds support for GS SysEx messages to specify how much modulation effects vibrato or tremolo. I added a new advanced command line option, and they shouldn’t cause problems with the Windows command prompt anymore. …Oh, and I added some more dodgy Japanese translations.

Not only can the PC speaker now do silky-smooth pitch-bends and vibrato (no longer sounds like scraping metal), but the cutoff volume can now take MIDI channel’s expression and volume into account. Plus, the “Arpeggio” controls, for choosing how quickly to cycle through the playing notes, are finally usable!

You can get the newest version from here (7.32 MB), and see the full list of changes below the page break:

PC speaker-related:

  • PC speaker “Arpeggio” controls on the config window are now available to use! These settings are saved between runs.
  • Now updates its frequency smoothly! Vibrato and pitch-bends are no longer painful to listen to, so I’ve increased the modulation/pitch-bend update speed from every 14ms to 1ms. Many thanks to Andrew Jenner for pointing out the easy way to fix it.
  • Added checkboxes to allow PC speaker cutoff volume to take MIDI channel expression and volume into account, allowing e.g. gating effects via expression changes. These settings are saved between runs.
  • A long note that was already playing before noise-based percussion started playing now resumes playing after the percussive note finishes playing.
  • By request, I added an advanced command line option “-pitdump” for programmers of oldschool demos who want to capture the commands that Bawami sends to the programmable interrupt timer, which is responsible for generating tones on the PC speaker. See “COMMAND LINE PARAMETERS” in info.txt for details.


  • Added Muted Trumpet (059) and Shakuhachi (077).
  • Added [GS] Hollow Mini (080_002_002), and a shortcut for the XG equivalent: [XG] Hollow (080_000_018).
  • Attempted to improve Clarinet (071), but it still doesn’t sound very realistic.
  • Redesigned Sitar (104) so that it swells, although it’s most noticable only with lower notes. It’s also (slightly) velocity-sensitive. Very low-pitched notes (out of a real sitar’s range) may sound delayed now. Please swap the new file for the included old file if this is a problem.
  • Edited [GS] 2600 Sine (080_008_001) to have no attack time.
  • Increased volume of French Horn (060).
  • Quietened Rock Organ (018).
  • Corrected the spelling of “Shakuhachi”.
  • Added shortcut file [XG] Solo Sine (080_000_065) (shortcut to [GS] 2600 Sine (080_008_001)).
  • Added support for percussive note Square Click (note 032) by remapping it to Kick 1 (note 035).
  • If invalid line is seen when loading an instrument file, “default.txt” is now used for that instrument, instead of the bad instrument file; “Default (BAD FILE)” is then shown on the instrument-overriding menu for that instrument.


  • Added support for GS SysEx messages to control how much modulation affects frequency or volume by (like ModToFreq and ModToVol in instrument files). Roland calls these parameters “MOD LFO1 Pitch” and “MOD LFO1 TVA Depth“. See “SUPPORTED SYSTEM-EXCLUSIVE MESSAGES” section in info.txt for details.
  • Changed strength of exponential curve of cutoff frequency (affects CC #74 and NRPN H001.L032) so that lower frequencies are more likely to be used.
  • For command line options requiring a parameter in <angle brackets>, you can now use [square brackets] instead (doesn’t cause problems with the Windows command prompt).
  • As usual, hopefully less likely to crash when exiting…


  • GUI shows the reset MIDI parameters when “Reset MIDI system” is clicked even if no MIDI file is playing and live MIDI input is not in use.
  • Added Alt-key shortcuts for various controls on the config window, and resolved some conflicting ones.
  • Fixed bug where, if the language was changed with “-guilang” on the command line, the chosen language wasn’t selected on the “Interface” tab of the config window.
  • Corrected slight vertical alignment problem of text in instrument category menu.
  • Finished (badly) translating all message boxes’ text to Japanese.
  • “(No sound output)” text in the “driver + device” drop-down menu is now language-specific.

When initialising sound system:

  • GUI stops being blank and returns to normal when sound system successfully initialises after the GUI has previously become blank due to the sound system failing to initialise.
  • Fixed stupid bug where expression on all MIDI channels is “forgotten” when sound system is restarted. This bug has been present for a shamefully long time (since revision 98), but I only just noticed it…
  • No longer possible to crash Bawami by clicking “Reset MIDI system” if sound system has failed to initialise.
  • Notes being sent on MIDI-out are now released instead of staying stuck on if sound system fails to initialise when clicking “Apply” to restart it.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>