Bleeper Music Maker - version 0.9 (revision 148)
by Robbi-985 (a.k.a. SomethingUnreal)
- - - - - - - - - -
This is a completely freeware little program which I made, and never originally even thought I was going to release to the public, for creating what I call 'bleeper' music. It's music which is played using the internal 'PC speaker' or 'system speaker' on PCs, which is only capable of making electronic 'beep' noises. However, the program also has support for MIDI in/out and MIDI file playback now, too.

NOTE: BMM Music made with version 0.7 of this program (revision 129), and later, WILL NOT play on versions of this program BEFORE 0.7 (revision 129). 
However, the newer versions of the program can always handle music made with older versions. 
So, please make sure you have the latest version of the program. ;)
You can always download the latest version from here:
http://robbi-985.homeip.net:8000/hosted_programs/update/bmm

Note that the screenshot included in the ZIP may be of an earlier version. I do this if the newer version looks not significantly different. 

REQUIREMENTS / PREPARING / COMMON CAUSES OF ERRORS
- - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT: The 'PC speaker' part of this program will only work on Windows NT, ME, 2K, XP or Vista. 
The program itself will run on Windows 95 and 98 too, but those versions of Windows ignore the TIME and FREQUENCY of the beeps. So it will just sound like a horrible pulsing monotone beep. However, you are able to use an alternative way of creating the sound (instead of using the internal PC speaker), such as with FMOD or MIDI output (these are explained later on). There should be no problems on any Windows operating system if you do that.

Extract all the files in the downloaded ZIP file into a directory before you run the program. I recommend using the great little freeware program "7-Zip" (www.7-zip.org) to extract the files. If you don't extract the files (if you just run the program straight from the ZIP file) then the program might not be able to start, or at the least, some features within it will be unavailable. Among several other files apart from the program itself, there will also be a folder extracted called 'music', which contains several save-files for this program which you can load with it. Sort of like demonstrations.

When you first run the program, if you get a message saying "FMOD error!" then you probably have a very old soundcard which FMOD doesn't support. An FMOD error will not stop you being able to use this program! :D If you REMOVE the "fmodex.dll" from the same folder as the program, there should be no problems. Just a few features of the program will be unavailable. Please read a little way below for more info on FMOD (the "WHAT'S FMOD?" section).

If you get any error to do with a DLL or OCX file, please run "Fix DLL OCX.exe" (included in the Bleeper Music Maker download ZIP).
It tries to do what I describe below, automatically. If it fails (you'll probably be running Vista if this happens), then you can proceed to do it yourself manually, as described below.

The problem is caused by you you either not having the DLL or OCX file (or the correct version of it) in your system32 folder (usually at c:\windows\system32), or information about the file not being in your registry. The problem can be fixed pretty easily. The most common DLL and OCX files should be included with the Bleeper Music Maker download. If the one you need isn't included (highly unlikely), you can download the DLL from dll-files.com, or some other (trusted) place. 
Put the DLL or OCX, which you get an error about, in system32 (the exact folder is usually c:\windows\system32).
Then,
- - - For XP-or-earlier users:
- - - - - - Go to Start->Run.
- - - For Vista users:
- - - - - - Bring up the Start menu and type this: cmd
- - - - - - Right-click on the found program and click "Run as administrator"
Type this: regsvr32 filename.ext
(Replace 'filename.ext' with the name of the file you've put in system32, for example 'msstdfmt.dll')
Press Enter.
You should get a confirmation message, then Bleeper Music Maker should be able to run properly.

I'VE GOT WHAT'S NEEDED - HOW DO I USE THIS THING??
- - - - - - - - - - - - - - - - - - - - - - - - - -
The 2 main areas are the (musical) keyboard (horizontal area at the top of the screen), and the music list (the white list-box near the bottom-right, which has 3 columns in it). The keyboard is split into 3 coloured sections, each of which represents an octave. If you need notes outside the current range (higher than the green notes or lower than the red notes), then you can adjust the 'Octave' value which is just to the right of the keyboard. For example, if you increase this by one, the notes on the keyboard represent notes one octave higher. 

The music list holds lines of notes. 1 or 2 notes may be playing at one time. The 4 columns in the music list are "Length" (of the note or notes on this line), the middle 2 columns are for the 2 notes, and the 4th column is "Mod" (length modifier - this is explained some way below, but often you can avoid using length modifiers). As you click notes on the keyboard, the notes you click are played immediately through the system speaker. Also, by default, they're entered into the music list in the "Note 1" column. You can change this - they can be entered into either "Note 1" or "Note 2", or they can not be entered at all (so that you can find the note you want by listening as you click notes on the keyboard). The notes which you click on the keyboard are inserted at (above) the line in the music list which is currently selected. Notes are added to the end of the music if no line in the music list is selected. If you want to add notes to the end, but you have a line selected, click "Un-select line" (the turquoise button to the right of the music list). To change between inserting a note or replacing the currently-selected note, and to change which of the 2 note columns a note is inserted into (or replaces), there's a box of options under the left side of the keyboard. It's the one which has "When key is clicked," as its title. Here there's also that option of not inserting (or replacing) at all - simply playing the notes you click on the keyboard. I've tried to make the options be pretty self-explanitory.

To change the length of the note which you insert, change the "Note length" value (under the middle of the keyboard). From this drop-down menu you can select whole, half, quarter, 8th or 16th notes (so to get a "dotted half note", you could insert a half and then a quarter, OR insert a half and apply a "Dotted" length modifier - note length modifiers are explained some way below). I know that sometimes a 16th note won't be short enough, but you are able to set the tempo (BPM) of the song up to 600 BPM, which is double what most MIDI sequencers are capable of, so the problem tends to be solved by doubling the tempo and then making every other note twice as long (to compensate). By the way, that tempo control is also to the right of the keyboard, just under the octave control. You set the number of beats per minute, and there's also a "Metronome" button which lets you easily hear exactly how fast a beat that number represents.

Remember that there's a folder extracted from the ZIP, which is called 'music'. It contains several save-files (BMM) for this program which you can load with it. Sort of like demonstrations. Check out the "SAVING AND LOADING" section a little way below, for more information.

ALTERNATING BETWEEN NOTES
- - - - - - - - - - - - -
Since the system speaker can only play 1 note at a time, the program quickly switches between "Note 1" and "Note 2", if there is a note in both columns on this line in the music list. You adjust the speed of this switching by changing the number typed in the "Switch between alternating notes every: ... mS" text box, which is to the left of the music list.

For many computers, setting this value to NOT a multiple of 15 will make the alternating seem a little unsmooth (the amount of time which each pulse of the note plays for becomes uneven). So, if this is the case for you, please set it to one of 15, 30, 45, 60, 75, etc.

NOTE / SILENCE RATIO
- - - - - - - - - - -
This lets you define how much of the time of a line in the music list is actually the note, and how much is really just silent. Sometimes it just sounds better if the bleeper's not constantly producing a tone (it can be too headache-inducing otherwise).

SAVING AND LOADING
- - - - - - - - - -
You can save your music and load it later using the single beige "SAVE / LOAD" button to the right of the music list (then you can choose whether to save or to load in the box which appears). Not only what's in the music list, but most of the options are also saved and restored when you load the file again. 

The files end in "BMM", after the initials of this program, although they are actually rather simple text-based files. This means that you can open them with a text-editor such as Notepad or Wordpad, edit them, save them, and Bleeper Music Maker should still understand it. (See the first paragraph of the next section too.) Being text-based, and of a simple structure, they compress very well when compressed into ZIP files (although they don't take up much space to begin with). For example, one of the songs I made and which is included in this release is 9 and a quarter KB uncompressed, but is less than a single kilobyte in the ZIP.

Note that you don't have to use the "SAVE / LOAD" button within the program to load music - you can also associate this file type (BMM) with the Bleeper Music Maker EXE, or drag the BMM files onto the program's icon, and it should manage to open them that way.

You can't drag a file onto the running program to open it, yet. I'll probably add this feature in a future version of the program, though. ;)

TIPS FOR WHILE EDITING MUSIC
- - - - - - - - - - - - - - -
As mentioned above, the program's save-files (BMM files) are text files. It can be quite useful to use text editors' copy-and-paste when placing the same notes over and over would be tedious, or their find-and-replace function to fix mistakes which you've repeated throughout the music.

You can erase the current line (e.g. if you accidentally insert 1 too many notes) with the red "Erase whole line" button. However, you can also individually clear just one of the note columns (without losing the whole line) using the 2 blue buttons in that area.

If you want to replace the length of some notes with a new length which you've chosen, you can select the option to replace instead of insert, and the option to replace the length aswell. You might think that you'd now need to press the note on the keyboard which is the same as is in the "Note 1" keyboard for the currently-selected note, over and over (or note 2, if that's the one you've got it set to replace). However, there's a faster and less tedious way to replace the length of a large number notes without replacing each of "Note 1" or "Note 2". Select the options on the left to replace instead of insert, and to replace the length aswell. Now for each line you want to replace the length of, click "Blank line". This would normally insert a blank line at the current position, but because you've got it set to REPLACE instead of INSERT, it simply changes the length of the currently-selected line.

PLAYING MUSIC
- - - - - - -
You can play through all of the notes in the music using the top green button (it says "Play all"). When it reaches the end, it will loop to the start. You can also get it to play from the currently-selected line onwards by pressing the middle green button, and when it reaches the end it will loop back to the line which was selected when it started playing. You can stop playing music with the bottom green button, but note that the currently-playing note must finish (the "Stop playing" button rather means that it won't go onto the next note), so it may take a short while to stop if the current note is long.

Also, when you click on a line in the music list, that line is played, by default. To stop this from happening, or to make it only play one of the 2 notes on the line, change the checkboxes in the "When a line is clicked," box, which is itself in a box with "Which notes in list to play" as its title, and can be found down in the bottom-left of the program's main window. Similarly, you can change the checkboxes in the "When the music is being played," box (just underneath the other one) to affect what combination of the 2 notes are played when the music is playing through by itself (not when you click a single line).

LENGTH MODIFIERS
- - - - - - - - -
As of revision 129 of this program, you can FINALLY use dotted and triplet notes! If the length of a line in the music list is a dotted note, then under the "Mod" (4th) column in the music list, "Dot" will be shown. Similarly, if the length is a triplet note, "Tri" is shown under the "Mod" column on that line.

To make a note a dotted note (1.5 times the original length), select the equivalent line in the music list and click the "Dotted" button (directly above the music list). A dotted note is equivalent to the original length, plus the next shortest note. For example, the length of a dotted quarter note is equivalent to the length of a quarter note plus an 1/8 note. Similarly, to make a note a triplet note (1/3 of the original length), select a line in the music list and click the "Triplet" button (also above the music list). 3 triplet notes of the same length are equal to one note of the original length. For example, the length of 3 triplet quarter-notes is equivalent to the length of one quarter note. You can't make a single line be both a triplet and dotted.

To make the next notes to be inserted be a dotted or triplet, simply press "Dotted" or "Triplet" and then click the notes on the keyboard.

As the music is played, the "Dotted" and "Triplet" buttons automatically get pressed and released as "Dot" or "Tri" is encountered in the music list. Note that when a triplet is played (i.e. when a line with a triplet length modifier gets selected), momentarily a much larger amount of CPU power than usual is required to update the position displays (in the bottom-right corner of the program). Please see the next section ("TIME SIGNATURE AND POSITION DISPLAYS").

TIME SIGNATURE AND POSITION DISPLAYS
- - - - - - - - -
As of revision 127 of this program, there is a "Time Signature" setting. It can be found in the top-right of the program, under the BPM setting. It lets you choose how many beats (i.e. quarter-notes) are in a bar. Changing the time signature doesn't actually affect the sound of the played music. It changes how the metronome sounds (the number of low beeps before each high beep), and it also affects how the "position displays" actually display the position. The position displays are 3 little green displays down in the bottom-right of the program, next to the music list. They show the current position of the music. By "current position", I mean how many bars and notes into the music the currently-selected note is (or the note which is currently being played, during playback). When no note is selected, it shows what position the next note to be added will be at.

The top display shows the current measure (i.e. bar). The middle display shows the current beat, i.e. quarter-note, within this measure. The bottom display shows a more 'traditional' representation of the middle display. Instead of showing a decimal number like the middle display does, the bottom one shows the number of whole notes, and then either quarter-notes, eighths or sixteenths (the closest to whole which it can be cancelled down to). So, the lower the time signature, the quicker the top display's number changes, because a smaller number of beats need to pass (the middle display won't get so high, since it resets to 1 when the top display changes -  after all, this would be the first note in this new measure).

The point of the time signature and the position displays is to let you keep track of exactly where you are in the music, while editing it. The displays make it much harder to, for example, accidentally miss out a note in a bar, if you keep an eye on them.

The bottom position display is unable to display positions more accurate than 16ths (positions which are not divisible by a 16th) as a 'traditional' representation. It will just get a red background and say "(ERR)". This will happen if you use a dotted 1/16 length note (which comes to a total of 3/32). When you insert another, the display will become capable to display the position properly again (because 3/32 + 3/32 = 3/16). This means they also have trouble with triplet notes. But once 3 triplet notes of the same length have been entered, the position will be brought back to a position which is divisible by a 16th, so the display will start to work again.

Note that when a triplet is played (i.e. when a line with a triplet length modifier gets selected), momentarily a much larger amount of CPU power than usual is required to update the position displays. The amount of processing needed gets more as the current note in the music list gets higher (so a piece of music which contains a lot of notes, and is currently playing near the end of the music list, needs the most processing power). Sometimes the amount of power needed gets to be too much for your computer, especially when the notes are playing in quick succession, and the music will start to stutter or skip about a bit. If this becomes the case, or if the program is simply using more CPU time than you'd like it to, please tick the box underneath the position displays which says "Do not update". This will disable the position displays while the music is playing, so they will not update and will not take any CPU time. They will still update while you are editing, though - just not while the music is playing.

Notes for people who have been using, or may still use, earlier versions of this program (before revision 127):
Files made with an older version of this program will have their Time Signature setting show up as 4 by default, in this new version (127 onwards). If you change this and save the file with this new version, then this Time Signature setting is saved. If you open a file saved with this new version of the program and then open it in an older version of the program, the file will still play fine in the older version. However, if you listen to the metronome on the older version, it will still be 4-beat, no matter what the newer version of the program saved it as. More worryingly though, if you SAVE this file with the older version, then the Time Signature setting will be lost. In other words, older versions of the program completely discard the Time Signature setting and so it will revert to the default when opened in this new version of the program.

DEBUG LOGGING
- - - - - - -
If you create a file named elogenablef (with no extension, and nothing needs to be stored in the file) in the same folder as the program, detailed information about exactly whatfs going on in the program will be written (or appended) to a file called edebuglog.txtf (also in the same folder). If you have problems with Bleeper Music Maker, telling me what the problem is as well as sending this file to me should allow me to diagnose the exact problem much more quickly, because Ifll be able to see exactly where the program etrips upf. 

Note that having logging enabled will make the program require more CPU power (and therefore, probably decrease performance). Navigating Explorer out of the program's folder can often help to speed things up (since Explorer will no longer constantly be refreshing because of the TXT's file size changing).

Please try to use playback as little as possible, because playback causes the log file to get very big very quickly.
Also please note that the log file can usually be compressed very well in a ZIP file.

WRITING OF TONE/SILENCE CODE
- - - - - - - - - - - - - - -
If you create a file named etonecode.txtf (nothing needs to be stored in the file) in the same folder as the program, all code executed to create tones and silence, during live MIDI input or playback of a BMM file or MIDI file, to that text file. Code for tones made by the metronome and clicking on keys on the keyboard will also be written to the text file.

Note that having the writing of tone/silence code enabled will make the program require more CPU power (and therefore, probably decrease performance). Navigating Explorer out of the program's folder can often help to speed things up (since Explorer will no longer constantly be refreshing because of the TXT's file size changing).

Please be aware that the text file can become big quickly. Also please note that codes for silence will be written repeatedly, even if playback is stopped, for as long as 'Play a MIDI file' or 'Use live MIDI input' is ticked.

MODS
- - -
I made a few major modifications to the program which usually let the program behave in a way which I didn't originally design it to behave in. These's a list of these 'mods' in the middle, near the bottom of the screen (to the left of the music list). Each has a checkbox to activate (and usually deactivate) that particular mod. Below I explain in more detail each of the mods. If you're unable to remove the tick from a mod's checkbox to disable the mod, then simply closing the mod's window will disable the mod (and will un-tick the checkbox).

You can see a brief description of what each mod does by clicking the question-mark button to the right of its checkbox (for most mods, at least).

WHAT'S "FMOD"? / THE FMOD MOD
- - - - - - - -
FMOD's a sound engine. If you don't want to (or can't) use the internal system speaker for some reason (e.g. the computer you're working on doesn't have one, or you just don't want to disturb people next door), then you can choose to let FMOD create the beep sounds. They'll be played through your default soundcard (e.g. so you can listen to it on headphones).

This is a mod I made to let this program use the FMOD sound engine. To use this FMOD mod, tick the "Use FMOD to create the beep" checkbox, in the 'Mods' column. To be able to do this, the FMOD DLL (fmodex.dll) needs to be in the same folder as this program. The check box ill be greyed out and unavailable otherwise. When you tick the checkbox to activate FMOD, a small new window appears to the top-right of your screen. This lets you choose the kind of sound which FMOD will create (the waveform). "Sine" is a pure, smooth sound (well, as close to pure as I could get with the way I programmed). "Triangle" is a kind of harsh electronic sound, which some old game consoles used in their music. "Square" is the default sound; it's harsh, but somewhat more powerful-sounding than "triangle". It's the same "completely electronic" sound which the internal PC speaker creates - that's why it's default. "Noise" is only really good for sound effects or percussive sounds. The notes determine what frequency the noise is cut off beyond. The cutoff is very obvious, because it is actually changing the sampling rate of the noise. Note that these sound options only affect the sound which FMOD makes, not the internal PC speaker! I honestly wish I knew how to make e.g. white noise with the PC speaker, but I only know how to make it do what I've made it do. Sorry about that.

Ticking the "Never automatically become silent while music is playing" checkbox is equivalent to setting the "Note/Silence Ratio" slider to 100%. Therefore if you tick the box, the slider will move to 100% by itself. Similarly, if you move the slider to 100%, the box will tick itself, and you'll need to move the slider off 100% to remove the tick from the checkbox. With the "Note/Silence Ratio" slider at 100%, there are no clicks between notes while using FMOD. There is still a click when a note starts playing, or becomes silent due to a blank line, though. Please see the "NOTE / SILENCE RATIO" section for more information.

As of version 123 of Bleeper Music Maker, using FMOD should be comparible (quality-wise) to using the PC speaker. Theoretically though, old computers or cheap soundcards may struggle a little. If you experience any problems, please let me know and I'll try to fix them. ;) (Contact details at the end of this info.txt)

If FMOD is causing you problems when you start this program, it's safe to remove its DLL file ('fmodex.dll') from this program's folder. The only (bad) side-effect would be that this FMOD mod, and the "voice system" mod (below) would no longer be available. Problems with FMOD would probably be caused by a very old soundcard or a very buggy soundcard driver (since FMOD's generally pretty compatible).

THE VOICE SYSTEM MOD
- - - - - - - - - - -
Don't get too excited, it's seriously lame. To use the mod, tick the "Use voice system" checkbox. Note that this mod also requires the FMOD DLL (see the section above). So if the DLL's not there, then the checkbox won't be able to be ticked.

The voice 'sings' the notes in the "Note 2" column of the music list. Ticking the box to use this mod opens up a new window to control the voice. This "Voice Internals" window is mainly separated into 2 (horizontally, i.e. there are 2 rows). Then there are a couple of miscellaneous sliders at the bottom, underneath the 2 rows. The bottom row, to do with sybillance, does nothing yet. The top row, to do with formants (which determine the sound of the voice caused by mouth shape), works, but not quite properly yet. 

In the top section ('voice' as opposed to 'sybillance'), there are 4 groups of 2 sliders. The 4 groups let you define 4 different resonant points in the spectrum of the voice (these are the voice 'formants'). The 2 sliders which make up each group are Frequency (Hz) and Volume. By changing the 4 pitch sliders, you effectively change the 'shape of the mouth'. The 4 volume sliders don't do anything yet. There are 5 presets (A, I, U, E, O) which set the 4 frequency and 4 volume sliders to values which make the voice sound kind of like it's pronouncing those Japanese syllables. I tried to show the general 'flow' of the voice system quite well with arrows. Playing around with the controls while the voice is 'singing' some playing music is probably the best way to learn how things affect the sound, but here's a little info.

Basically, the voice system's very primitive and incomplete. Probably the most use you can get out of it is to make a bass line in the Note 2 column (which the voice will sing), and turn all the voice's pitch sliders to the top (lowest frequency), slightly different to each other otherwise the distortion gets too unbearable. Also turn the noise generator down and leave only the tone up. The result is a kind of overdriven synth bass sound, which is often much-needed with modern computers' squealy system speakers.

You can use the voice system mod and have the system speaker playing at the same time, but note that the voice (because it uses FMOD) is in a little delay compared to the system speaker.

MIDI OUTPUT MOD
- - - - - - - -
This mod sends every note or 'beep' to a MIDI device of your choosing. It doesn't have to be an external MIDI device (e.g. it could be the default Microsoft synth which Windows XP and Vista come with), but it can be if you want.

When you tick the "Use MIDI output" box, a little window appears which lets you choose what MIDI device to use. You can also choose the MIDI channel to send the data out on (1 -> 16), and the MIDI instrument to set that channel to use.
You can exit this window when you've chosen a device, and the MIDI Output mod will still be active until you untick its checkbox. Even if you untick the checkbox, the chosen device is remembered (until you next start Bleeper Music Maker), and when you tick the box again, the device you chose previously is restored.

There is significant delay when using the default Windows synth (called "Microsoft GS Wavetable SW Synth") and some other software synths. There is simply nothing I can do about this - the program instantly sends the MIDI data no matter what MIDI device you use, but it is up to the device to decide how quickly to respond. When using hardware or external MIDI devices, there is absolutely no noticable delay in my experience.

You might want to tick "Mute PC speaker" in the bottom-left of the main program window, while using the MIDI Output mod, unless you want the MIDI device and the PC speaker to play the same things together. In fact, if you do not mute the PC speaker, then you can easily hear exactly how much delay there is between the PC speaker (which always has no delay) and your chosen MIDI device.

Often, the MIDI Output mod sounds best when "Switch between notes every ... mS" is set to 30 or 45, or higher (so the switches are slower).

NOTE: If you get an error stating something to do with a file "midiio.ocx", then you're probably running Windows Vista (don't you just love how Microsoft improves Windows? ^-^).
Please follow the instructions for resolving this error, at the bottom of the "REQUIREMENTS / PREPARING / COMMON CAUSES OF ERRORS" section. Just replace "filename.ext" in the instructions with "midiio.ocx".
Other versions of Windows, and sometimes even Vista, won't have this problem. Bleeper Music Maker attempts to run regsvr32 silently by itself, but on Vista, it sometimes thinks you don't have enough "privileges" for BMM to be allowed to do this.

Credit for MIDI output capability goes to "Mabry Software, Inc" for making such an easy-to-use MIDI OCX file.

LIVE MIDI INPUT MOD
- - - - - - - -
This mod makes the program play (on the PC speaker, FMOD, or via MIDI output, depending on which other mods you have activated) any notes which it receives from a MIDI device. There is NO LIMIT to the number of simultaneous notes! Similar to the way it alternates between "Note 1" and "Note 2" in the music list, the program will cycle through all notes which you are holding down, playing a brief pulse of each note in turn. Because of this, though, it can start to sound silly when trying to play a lot of notes at once. The cycling always starts from the lowest note and plays higher notes until the highest is reached (then it loops back to the lowest).

To activate the mod, tick "Use MIDI input" box. When you do so, a new window appears with some settings and displays for MIDI input. In this window, you can specify which MIDI device to listen to incoming MIDI data on, and even specifically which channels to listen to. Channels which you don't select will be completely ignored. By default, all channels apart from 10 (which is usually percussion) are listened to. Just tick or un-tick the checkboxes - changes take effect immediately. When you remove a tick from one of these channel checkboxes, any playing notes will be cut (stopped). If there had been a note playing on the channel which you just disabled, the "note off" message would never come through, so a note would stay on forever, so that's why the program turns off all notes there and then, to be on the safe side.

At the bottom of this "MIDI Input Settings" window, there's an area which builds up a grid of rectangles as you hold down more notes. Each rectangle displays one of the notes which you're holding. Up to 32 rectangles can be displayed at once in the grid. If you hold more than 32 notes, then "(x more)" will be shown, where "x" represents how many more than 32 notes are being held down. As the program cycles through each held note, playing it for a tiny fraction of time, the rectangle for the note currently being played will light up in bright red. Ones which aren't currently being played are shown in dark red.

Changing the "Switch between notes every ... mS" text (on the main program window) also affects the speed at which notes received from MIDI input are cycled through.

If you tick "Only play each note once (don't keep alternating)", instead of constantly cycling through all currently-held notes, each note will only be played once, for the amount of time specified by the "Switch between notes every ... mS" text (each). This creates brief "woodblock"-like sounds, rather than a constant tone with no silence.

If you tick "Try to make each cycle last 60 mS (with max alternating time capped to 30mS per note)", the "Switch between notes ever ... mS" text will be changed automatically to try to achieve what the checkbox says. This is ticked by default and you probably won't want to untick it very often.

Credit for live MIDI input capability goes to "Mabry Software, Inc" for making such an easy-to-use MIDI OCX file.

MIDI FILE PLAYBACK MOD
- - - - - - - - - - - -
This mod allows you to play MIDI (*.mid) files directly through your PC speaker, without having to have a single MIDI in/out device on your computer. The file is decoded right within the program so you should have no problems even if you have no MIDI devices.

This mod is almost identical to the MIDI input mod. The only difference is that the program is told the notes to play by the MIDI file instead of by an external keyboard which you play, for example. You choose the MIDI file by clicking "Browse..." on the "MIDI File Playback Settings" window which appears. Your chosen MIDI file will be shown in the text box to the left of that button.

Also, since this is a MIDI file rather than "live" input, you can jump to specific positions within the file by moving the slider. You can also see the current position of playback in 2 ways. The first is time, which you're probably familiar with. It shows "00:00.00" at first (minutes, seconds, hundredths of a second). Because it only updates when new MIDI messages happen, it might not look accurate. However, the MIDI messages themselves are played at the correct times (as long as the tempo doesn't change). The second display is a percentage of MIDI messages which in the file which have passed at the current position. This may seem strange, because, for example, if the first half of the MIDI file has not much happening and the second half has many notes per second, the percentage will not have reached 50% by the time the complex part starts (because the total number of notes played hasn't reached half yet). Note that the slider works in the same way (as a percentage of all MIDI messages within the file). When you move the slider, it jumps back to the most recent MIDI message before this position (you probably won't land on the precise millisecond at which a message is due to be played).

The 3 buttons below the slider, from left to right, are for rewinding (i.e. jumping to first thing in MIDI file), playing (from the current position onwards), and stopping (but not rewinding). There's also a checkbox to make the playback loop (jump back to the beginning) instead of stop, when it reaches the end.

Everything else on the "MIDI File Playback Settings" window is also on the "Live MIDI Input Settings" window. So, please see the "LIVE MIDI INPUT MOD" section (directly above this section) for info on these controls.

Credit for MIDI file playback capability goes to "Mabry Software, Inc" for making such an easy-to-use MIDI OCX file (a different one to what MIDI in/out uses).

SYNCHRONIZED PLAY MOD
- - - - - - - - - - -
This mod makes Bleeper Music Maker start playing the music at a certain time. You might wonder what the point of this is. Well, if you make several BMM files for different parts of the same piece of music, you may want to play them on several running instances of Bleeper Music Maker, and you want all of the instances to be in sync with each other. Well, if you set them all up to start at the same time, you can easily get them all to play in sync with each other.

When you tick the box to activate this mod, a new window appears (to the top-left). It lets you type the exact hour, minute and second (according to your system time, which you can see in your system tray, usually at the bottom-right of your screen) at which you'd like the music to start playing. You also get a display of the current time. The time which it should start playing at automatically sets itself to 1 minute ahead of what the current time is. Of course, you can change this, and you'll need to, if you're going to get several BMMs to play together. The section below that lets you specify whether it should play from the begining of the music, or from the currently-selected line in the music list. When the time comes, this section specifies whether the program should act as if you click the green "Play all" button, or the "Play from selected line" button, on the main program window. Just to the right of that is a button to tell the program to start waiting for the set time to arrive. When you click the button, the display underneath the button turns green and says that the program's waiting, and the button which previously said "Start waiting" now says "Stop waiting". If the program isn't waiting when the set time arrives, the program will do nothing.

You can tell the program to start waiting, and then exit the "Synchronized Play Settings" window by clicking the cross at the top-right, and the program will still start playing when the set time arrives. 

If you are trying to synchronize this instance of Bleeper Music Maker with an instance which is using FMOD (but this instance is NOT using FMOD), then please tick the box at the bottom of the "Synchronized Play Settings" window. FMOD has a slight delay, and if you tick this box, then this computer will start playing fractionally in delay too. The idea is that it should stay in sync with the instance which is using FMOD. (Not guaranteed to work, though, especially when multiple instances of BMM are running on a single computer which has no hyperthreading technology...)

If you exit the window, the only way to get it back is by un-ticking the "Use Synchronized Play" box, then ticking it again. But when you un-tick it, the program stops waiting, if it is currently waiting, for the set time to arrive. So please only exit the "Synchronized Play Settings" window if you don't mind losing its settings.

Please stop any playing music on this program before telling it to start waiting for the set time. Please don't tell the program to start waiting when music is already playing, because weird things happen. If you tell it to start when music's already playing, you should be able to fix things by telling it to stop waiting.

Theoretically, the instances of Bleeper Music Maker program can even be running on 2 or more different computers, and they will still start at the same time, as long as the computers' system clocks are set to precisely the same time. Therefore, I recommend that you synchronize their clocks before you try to use Synchronized Play between 2 or more different computers.

Synchronized Play usually works fine on modern computers, but it often doesn't quite synchronize correctly on computers which don't have hyperthreading technology.

CIRCUIT-BENT MOD
- - - - - - - - -
This simply plays random notes very quickly out of the PC speaker (and sends random notes through MIDI if you have the MIDI output mod enabled, so please be careful of your MIDI device's volume). That's all. Without a doubt, the most pointless mod ever, probably for any program.

BEAT SOUND MOD
- - - - - - - -
This makes the bleeper play a kind of 'beat' sound on every beat (or on every other beat, if you don't want it to sound so crazy at fast tempos). It sounds like a kind of techno beat, which I suppose is what you'd expect from something as electronic as the system speaker. When you tick the "Play a beat sound" checkbox to activate the mod, a new window will appear. This lets you choose whether to make the beat sound play on every beat, or every odd-numbered beat (in other words, every other beat). That second option effectively halves the tempo of only the beats. If you start the program, add 4 quarter-notes to the music list, tick "Play a beat sound", and change between the 2 options for the beat sound mod, then you should easily be able to hear what I mean about it halving the tempo of the beat sounds. You can close the window for the options of the beat sound mod, and the mod will still be active. To get the options window back, just un-tick then re-tick the "Play a beat sound" checkbox. ;)

BLEEPER PORTAMENTO MOD
- - - - - - - - - - - -
I only made this for fun. The mod makes the tone of the bleeper rise gradually from the previous note to the current note. On the "Bleeper Portamento Settings" window which appears when you tick the "Bleeper Portamento" box, you can adjust how quickly it 'bends' from one note to another (from so quick it's unnoticable as bending, down to so slow it will still probably be going half a minute later), and also change how long the note plays for when you click it (or simply make it not stop playing).

MOTOR-SPEED MOD
- - - - - - - -
I made this mod in a hurry to make the program able to control the speed of a motor to make it sound like it 'sings'. There's a short demo of it 'singing' Deck The Halls which you can see if you check out my YouTube profile ('SomethingUnreal') (look out for 'Singing Motor'). However, this mod requires 2 additional pieces of hardware (the SSC-32 board and the SyRen-10 motor speed controller), not to mention a serial cable, and connecting it all up... agh! So unless you're really interested in trying to do this (in which case, feel free to contact me and I'll try to help - see the 'contacting me' section), then I recommend just ignoring this. It shouldn't do any harm if you accidentally tick it though. ;)

WHERE CAN I FIND BMM MUSIC?
- - - - - - - - - - - - - -
Well, since this is just a program I made myself, and since it hasn't really become popular, I doubt you'll be able to find many places. However, I have a little download section on my site. Most of them are included with the download for the program itself, though, in a folder called "music". ;)

THE PLAYBACK IS STUTTERING OR SKIPPING ABOUT! HOW CAN I KEEP IT SMOOTH?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bleeper Music Maker by default tells Windows to give the program very little priority with regards to processing time. Therefore, background processes (which are inevitable with Windows) are likely to interfere with the performance of Bleeper Music Maker. Please put the program to "Above Normal" priority. To do this, load Task Manager (which you can do by right-clicking at the absolute bottom of your screen and choosing "Task Manager"). On the "Applications" tab, select "Bleeper Music Maker". Right-click it and choose "Go to process". This takes you to the "Processes" tab and automatically selects the program, which is probably "Bleeper Music Maker.exe". Right-click it, go to "Priority", and choose "High" (or "Above Normal", if you feel uneasy about "High"). You'll be given a standard warning, to which you should answer "Yes". You've basically just told Windows to now pay more attention to BMM and less attention to other programs. When next time you load BMM, its priority will be reset to "Normal".

If the music still stutters, then it's likely that the position displays (the green things down in the bottom-right of Bleeper Music Maker) are using too much of the CPU time, not allowing enough for the actual music playback. You can disable the position displays, which will reduce the amount of processing time they use to 0%. Please see the second-last paragraph of the "TIME SIGNATURE AND POSITION DISPLAYS" section, some way above.

CREDIT / CONTACTING ME
- - - - - - - - - - - -
Programmed by Robbi-985 aka SomethingUnreal.
Firelight Technologies's FMOD Sound System is used for producing sound.
Mabry Software's MIDI libraries are used for reading MIDI files and using live MIDI input.

If you have questions, suggestions, or really any random comments, please feel free to send them to me (Robbi-985 aka SomethingUnreal)! ^-^
Also, if you'd like to share music which you make with me (and others!), feel free to send them to me too! I'll put them on the BMM music download section of my site.
My email address is:
robbi985@gmail.com
You can check out my YouTube profile and leave comments on my videos, or send me a message! My user name's "SomethingUnreal".
Also, you can leave comments on related entries at my blog (and feel free to browse around!), at:
http://robbi-985.homeip.net:8000/blog
And last but ... possibly least, you can have a look at the bunch of everything else of mine which has no place of its own - my so-called "web site", a.k.a. "messy collection of rubbish":
http://robbi-985.homeip.net:8000

Enjoy the stuff! (^^