Program to allow Printing of Songs

New Version - Version 3

New for this version is the ability to include the MIDI file name in the output as requested by @Kevin_Morris. It was a bit of a challenge (: I hope it’s kind of what you were looking for as an update. I’m only reading the BB files and not doing any updates to them.

Selecting this option will include the embedded MIDI file name in your output. The file name inside the file includes the directory path of the person that originally added it so it may not be relevant to you. You can select to only include the file name and not the path if you want.

Further, it uses / vs \ for directories. You can choose to have your output display it in windows format if you’d like. Again this only affects output and not your BB files.

Here is a screen shot of the new version. The file uses the same link already posted but I’m posting it again. Just choose the _V3 zip file.

As I indicated before, I probably won’t make any other updates unless there is some issue. And again fellow users, let me know how it’s going and working for you.


1 Like


Wow…that was fast & exactly what I was looking for!!!
I hope BB users find this feature useful

However, the program displays some extra “characters” in the MIDI file list
Because I have 100s of songs, this occurs often.
Here’s an example for song 14…

  1. I Should Have Known Better -(Metal)
    ROCK Boom Boom Tick 1.mid
    Count - Fast 4 x Stick.mid




A smaller issue is that the order of MIDI files is inconsistent & should always be as follows
1 - “Intro Fill” MIDI
2 - “Main Loop” MIDI, “Drum Fill” MIDI, “Transition Fill” MIDI, “Accent Hit” MIDI (there may be multiples of this)
3 - “Outtro Fill” MIDI

I thank you very much for doing this Joe
This will be a great help to me & has made using my BeatBuddy easier!

New Version - Version 4

@Kevin_Morris found where a few errant characters were being displayed when you included MIDI file info in the output. Good eyes.

I didn’t see this in my output originally, but after your input, Kevin, yeah, I see it too. Maybe not as prevalent in mine, but there for sure.

When you first asked on this (doing the midi at all) I looked a bit and then I was like - umm… impossible (: Then after two Doobie’s … Doobie Brother’s records, I thought well, maybe ha ha.

I don’t have access to the BB file layouts etc and so I’ve had to guess through all this. The midi stuff is buried deep in the binary files. Anyway, the issue is in recognizing the flag that there aren’t any more midi files listed. That’s where the run on characters come in.

I’ve changed the logic and you’ll have to tell me if that fixed it. It did on the limited ones I had here. The thing to watch though, Kevin, is make sure it’s not now dropping some midi files as in for example - the song has 4 midi files and now the output has only 2 listed. That didn’t occur on mine, but in testing just kind of watch that.

I did have one file ( a downloaded one) that gives a slight glitch and that I think was due to an apostrophe in the original file name. He seems like a one off (out of 1084 songs) and I don’t have enough info to track down or large enough sample base to see how that one occurred originally. Generally a bad idea to include apostrophe’s etc in some file names. I’m not positive that’s why but the song’s title lent itself to an apostrophe (:

As far as the order of them - this is the order in the BB file. As I said, I don’t have a roadmap of their binary files so I’m not sure how to figure out what order they go in. I’m not positive I can do anything about that part ): I’ll listen to a few more records, but…

The Download link is the same - just download the _V4 zip file.

Hi Joe

Thanks again!

That fixed 99% of the extra characters…it’s much, much better!

There were only 18 songs with extra stuff out of 1123 songs!

It also did not miss any MIDI files but all my songs only have 3 per song…I don’t do any fills etc

That BBM bug that certain characters in the song title cause problems has bit me a couple of times…ending up in losing all the songs in that folder after that song

I am more careful now…

Very impressive that you were able to parse the BBS files & produce the results when you don’t know their structure

The MIDI file order thing is not really important

Singular should hire you to clean up their BeatBuddy Manager

There was another thing & it’s no big deal either

There is a Program Error/Crash if you don’t point it right to the “SONGS” folder

Below is the text…

************** Exception Text **************

System.IO.FileNotFoundException: Could not find file ‘C:\Users\Kevin\Documents\BBWorkspace\user_lib\K&D BeatBuddy June2019 - Project\Config.csv’.

File name: ‘C:\Users\Kevin\Documents\BBWorkspace\user_lib\K&D BeatBuddy June2019 - Project\Config.csv’

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath,
Boolean checkHost)

at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.StreamReader…ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)

at System.IO.StreamReader…ctor(String path)

at ASW_BB_BeatsRecap.frmMain.cmdProcess_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************


Assembly Version:

Win32 Version: 4.8.4069.0 built by: NET48REL1LAST_B

CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

Great Kevin. Glad that pretty much took care of it. I’ll trap the issue next release for if someone doesn’t pick the SONGS folder - yep currently instant punishment! Ha ha.

I too experienced that BBM bug you spoke of years ago. Yeah, oops.

Long ago, when dinosaur’s ruled the Earth, I would convert large dissimilar accounting systems often residing in systems as far apart in every aspect as possible. Documentation would be nearly non existent. So I often had to be super creative to do those kind of conversions. Things are easier now - for example, we have the light bulb… ha ha.

Kevin, if you’d like to send DM me the .bbs file for one or two of the 18 songs that still glitched, I’ll be happy to look at them. I don’t need anything else. Not sure I can’t improve it but we’ll see.


Hi Joe

Attached is a ZIP of the SONG Folder with the BBS files & your program output for that particular folder that shows the 3 songs with the extra characters (28.5 KB)

(Sorry, I wasn’t sure how to DM you in this forum)

New Version - Version 5 - Choose “” from the download link.

Kevin - that was very helpful. I think the changes I just made should hopefully fix the errant characters in those files. I ran it against the ones you sent and it fixed them. There seem to be multiple termination flags for the midi file names. Let’s see how this does.

I also made it required to use the SONGS folder. Thank you very much for your help.

Good Morning Joe

VERSION 5 appears to have fixed everything
There were no more extra characters in my 1123 songs & the MIDI list seemed complete

Well done!
Now…if we could only get you to work on the BBM software too!

Kevin - that’s awesome! Thanks so much for your diligence in testing it. I wouldn’t have been able to get it cleaned up or even provide that as another feature of my program without your help and sample. I hope that enhancement is helpful to you and other BB users.

To recap -

Version 1 - this allowed for printing your entire Song list (exporting to html, text or csv format)

Version 2 - this version optionally allows you to include the drum set in your output. It also allowed for the selection of one or more song folders for output (vs all of them) or songs that include one or more drumsets that you select. (Harder to explain than use …)

Version 3 & 4 - initial implementation of option allowing you to include the song’s midi file info in output. This proved to be more challenging…

Version 5 - you can choose to optionally include midi file info in your output. You can also use this together with song folder selection or drumset selection.

Keep on Rocking in the Free World fellow BB users. I’ll post the link again to make it easier to find.



Thanks. This is great!! Functionality that you think would be standard with BB Manager.
Appreciate this since I used to have take screen shots of my lists.

I have been trying your program out. Awesome!!
One other thing that would complete this functionality(at least for me)…to know which part of the song each midi part was associated with. i.e intro, main, fill, transition.


I see that the BB Manager is now going to be open source. That sounds really good. It reminded me though - and I mentioned this before when I released the printing solution here, but as a reminder…

** Please note that this program (the printing program) probably will not work on any BB Manager version beyond the version available when I made the program. Using it on any version beyond that - I have no idea as to what would happen because it wasn’t designed for that. It was designed for the then current version.****

I may look at the open source - I’m curious, so we’ll see. Also, always make sure you have a backup of your BB directories.

Keep on Rocking in the free world

I will be trying your updates, thank you so much for your updates. I am using version two to identify the midi location info used to midi select a Sng file for forScore (HEX MSB 00, LSB 20, PChh) and Songbook Chordpro(DEC) MSB 00,LSB 32, PC

Every time I update the project with the new SNG packages I would have to update all my program links.

I created two directories at the top level which the Sng organization file organization doesn’t change unless I add it to the last listing. I then update the link affected.

You program listing in invaluable to me. I use unlimited the csv file and import it to my spreadsheet.

Thank you very much for your program.

Is my latest project File listing in a Google spreadsheet format.

If your able to let me know you can access

Sir - I have a question on usage of your program. I am able to run it but apparently have not figured out how to cull specific info.
As I wanted to post my songs to the BB forum with the stock beats I am using, all I was looking for was the Song Name (where I also put the BPM) and the Main DrumLoop source. I have only found a way to print ALL the info so it comes out like this:
47. Young Americans 84 -(Brushes 1.1)
FUNK- Beat 60- swung 16ths driving hats busy kick.mid
FUNK- Beat 61- swung 16ths driving ride busy kick.mid
FUNK- Fill 26- swung full kit dyn rolling triplets.mid
FUNK- Fill 52- swung groovy.mid
FUNK- Fill 32- swung full kit sparse + rolling.mid
FUNK- Fill 38- swung delicate fancy snare.mid
FUNK- Fill 44- swung full kit sync rolling triplets.mid
FUNK- Fill 58- swung straight forward sparse.mid
FUNK- Fill 55- swung sync groovy busy hats.mid
FUNK- Fill 20- swung full kit fancy.mid
FUNK- Fill 11- swung full kit sync.mid

where “FUNK 9 Swung”, the source beat name is sufficient. Advice?

All good.
THank you

Latest Update on my spreadsheet with Default and Premium songs

1 Like

I tried to use it but this error keeps popping up image
All I want it to is give me an output of all the songs in the folder so as I can print it.

I copy the location of the folder, paste it into my browser address bar, hit go, and print from there.
Screenshot of the browsers result and where it came from.