BaWaMI (revision 131)

Posted on 2016-04-10 at 18:13 in Music, Programs by Robbi-985.

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.

You can grab the new version from here (7.87 MB)!

10 Responses to BaWaMI (revision 131)

  1. lol says:

    No instruments ? WHY ?

    • Robbi-985 says:

      Hah, sorry! If it’s of any consolation, revision 132 will come with a new feature for instrument files (“mutli-oscillator”), including some new instruments and some updated versions of instruments to take advantage of the new feature for detune/octave/stack/fifths effects. Proof of concept of that is working, but I have to fix a bunch of stuff.

      Basically, adding new stuff tends to break some old stuff, even though I spend a lot of time testing before I release it. So some releases add new things and some releases fix old things.

  2. Icronace says:

    How does it work to make the beep sounds on Windows 8.1+ because I had tried to Create a NT HANDLE from \\Device\\Beep but it doesn’t work and returns the NTSTATUS 0xC0000034.

    • Robbi-985 says:

      It uses the virtual device driver contained in inpout32.dll, which allows it to directly access any port on the motherboard. Using that, it sends commands to the 8254-compatible programmable interval timer, which is responsible for generating the square wave that drives the PC speaker. See the “Control Word Register” section of that article.

      Bawami writes 10110110 to port 0×43 to put the timer into mode 3 (square wave) and prepare it for setting the interval of timer 2. Then it writes the interval to port 0×42. Port 0×61 controls what the speaker is connected to. Toggling the lowest bit will directly control the speaker, and setting the lowest 2 bits high will connect timer 2 to the speaker.

      You may also find this and this article useful.

  3. Joel Robert Justiawan says:

    Hey guys! for you using WINE in Linux, or whatever, says the app needs “Administrator” all the way out,
    NEVER RUN WINE UNDER ROOT, BECAUSE IF YOU DO THAT YOU MAY DAMAGE YOUR COMPUTER! Plus, breaking the .wine permission into belongs root. If it’s too late, change the .wine permission back using
    chmod $USER:USER $HOME/your_username/.wine

    Back to topic.
    Do as I say:

    download BaWaMI as usual and extract it's 7z contents

    download these dlls: mfc40.dll, mfc42.dll

    Open terminal a.k.a. console and type: wine explorer

    find where you put the extraction of BaWaMI is. Usually the download folder in Ubuntu follows your language, so it could be like such: /home/username/Downloads/BaWaMI stuffs like that
    try to check on drive Z:\ where the linux root was mounted on by default, if not, mount it.

    As you are in there, the BaWaMI folder, copy these dll to C:\windows\system32
    what again? tell me more! BaWaMI should tells us what files should be in there, if fails, they tell which file are not found.

    then go to the directories where you put the downloaded dll, e.g. right in the download folder $HOME/Downloads

    $HOME stands for the Home folder, a.k.a /home/your_username

    copy those dlls I mentioned as well to C:\windows\system32

    close the Wine explorer.

    back to main terminal, type wine $HOME/Downloads/BaWaMi/BaWaMI.exe or whatever you know where the directory is.

    IT WORKS!!!!!!!!!!!!!!!!!!!!!!! but if fail, make sure you followed steps clear. still fail? ask me, reply me!

    I hope I put HTML codes correctly...

    • Joel Robert Justiawan says:

      NOooo!! i Missed the HTML code on line 4, I forgot to close the code tag!

  4. Mike says:

    I appear to be having a similar activex cannot create object error a user had on a previous build, though the error didn’t start happening until today, if it’s of any use i’m on the latest build of windows 10, and the possibility of being answered seems slim given that the last comment is from 2016

    • Robbi-985 says:

      Although Bawami doesn’t officially support Windows 10, it’s strange that the problem only just appeared. I would assume that a Windows update messed with info in the registry regarding system files that Bawami relies on. Firstly, I’d recommend (re-)installing the Microsoft VB6 Runtime from here, which should fix info for at least some of the files Bawami relies on:

      I’ll send you an email too, in case that doesn’t fix it.

  5. oldmud0 says:

    Hello, how big of a footprint does BaWaMI leave on my computer? It registers quite a few ActiveX extensions, but there doesn’t seem to be a way to unregister them. Moreover, it overwrites MS Gothic with a version that is over 20 years old, and I’m pretty sure there have been various Unicode code point additions since then, and I’m pretty sure there are some other OCX files that already existed on my computer but just got overwritten with old versions. How do I cleanly uninstall BaWaMI, uninstall the PC speaker driver, and bring back the original versions of those overwritten files? I think I will do an sfc /scannow on the computer once this mess is cleaned up, although I’m actually just going to move to a Linux distro very soon. I just wanted to play some MIDI on my PC speaker, but it’s quite concerning the amount of things that had to be registered/overwritten to make the program work as if it were for Windows 98. Thanks for your hard work.

    • Robbi-985 says:


      I’m sorry my program has concerned you like this. Bawami only copies files if they don’t already exist in the destination. It doesn’t overwrite any existing files, so you haven’t lost any files. If you already had a font named “MS Gothic”, it must have had a different filename (not “MSGOTHIC.TTF”). By the way, that file comes already installed on Windows 7 (at least, if you have Japanese IME installed, because it contains the glyphs needed for that), even though it’s from 1996. As for the registering of files, it’s only the following handful (and only if they weren’t already present). An installer would normally do this behind-the-scenes, but as I haven’t made one for Bawami yet, it has to do this itself.

      * * * Common system files: * * *

      On startup, Bawami copies a suitable version of the following files if no version already exists in “windows\SysWOW64″ (64-bit Windows) or “windows\System32″ (32-bit Windows):
      - msvbvm60.dll (MS Visual Basic 6 Runtime, needed for any program made using VB6 to run)
      - SYSINFO.OCX (MS SysInfo Control, for detecting Windows suspend/resume to pause/resume playback)
      - mscomm32.OCX (MS Comm Control, for controlling motors via Arduino on serial port, not yet possible in public version)
      - msstdfmt.dll (MS Data Formatting Object Library, for formatting time, date and other numbers as text)
      - comdlg32.ocx (MS Common Dialog Control, used when browsing for files)
      - MSCOMCTL.OCX (MS Windows Common Controls, for sliders, drop-down menus, etc)
      - midifl32.ocx (Mabry MIDI File Control, for decoding .MID files)
      - SSubTmr6.dll (vbAccelerator Subclassing and Timer Assistant, for more control over elements on config window)
      - vbalHTmr6.dll (vbAccelerator High Resolution Timer, for 1000 Hz clock used as basis for MIDI playback timing)

      There is currently no uninstaller, but it would simply involve running the following command from the Windows command prompt, once for each file above, replacing “FILE” with the filename (including the extension)…
      %windir%\SysWOW64\regsvr32 /u FILE (for 64-bit Windows)
      %windir%\System32\regsvr32 /u FILE (for 32-bit Windows)
      …and then removing the files from the system folder. However, there’s a chance that other programs you have installed are also using these files, and removing them would upset those other programs. The last 3 files listed above are in particular very unlikely to be being used by any other program. The first one is fairly likely to be used (it will already have been present before running Bawami if you had explicitly installed the Visual Basic 6 runtime). I have tried to order the list in roughly decreasing likelihood of the files being required by other programs. If a program stops working, just place the system file back into the system folder and run the same regsvr32 command above, but without the /u switch.

      * * * PC speaker virtual device driver: * * *

      Bawami uses inpoutx64.sys (64-bit Windows) or inpout32.sys (32-bit Windows), but it is always copied into “windows\System32\drivers”, even if you’re running 64-bit Windows. This is only ever used on demand (the moment Bawami wants to play a tone on the PC speaker), so it is safe to simply delete the .sys file without worrying about errors or overhead when Windows is booting. However, if you absolutely want to nuke every last trace of it, please see: (ignoring the part which mentions the DLL file, since Bawami doesn’t copy that out of its own folder)

      * * * Fonts: * * *

      The fonts MSGOTHIC (contains font named “MS Gothic”) and mikachan_puchi.ttc (contains fonts named “mikachan-puchi” and “mikachan-puchiB”) are installed if no fonts with the same filename already existed in the Windows Fonts folder. You can uninstall them from the Windows Fonts control panel. Or, if you prefer, you can delete the files directly from “windows\Fonts” and then run FontReg.exe from Bawami’s “tools” folder, which ensures that the registry is up-to-date with the reality of the contents of the “Fonts” folder (ensures there are no references to now-missing font files).

      I hope this helps, and sorry for my delayed response.

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>