I'm working on a little MIDI VST plugin that will generate a real-time guitar/bass fretboard display of the notes being played. What makes it different from pretty much every other fretboard visualizer that I've seen is that it shows the notes played in all possible positions simultaneously, serving as an educational tool to learn how to play the same thing in multiple positions. The user can customize the number of strings on the instrument and the tuning. Hopefully some people will find it useful. I'm planning to use it for a series of guitar lesson videos on YouTube.
Here's a simple example of my VST in its current early alpha form. This is a test with a simple example MIDI file I cooked up:
It's working pretty well so far, so I decided to export some MIDI from BIAB to test it out. Unfortunately, all of the notes coming from BIAB end up being visually "stuck," i.e. there appears to be no Note Off event telling the notes to stop playing. You can see that here:
I analyzed the output of BIAB using a third-party MIDI logger and my suspicions were confirmed. BIAB does not appear to generate Note Off events when a note ends. Take a look at this image (messages beginning with a 0x93 are note-on messages on channel 4... note-off messages would start with 0x83, but they never appear):
Further inspection led me to use BIAB's built-in MIDI Monitor (found in the Window menu). It produces the same result:
There is a filter option in the MIDI Monitor and I double-checked it to make sure that Note Off events would be displayed:
So, it's pretty clear that BIAB does not generate Note Off events. I have a few questions about this.
1) First of all, aren't Note Off messages an essential part of the MIDI spec? Why are they not being generated by BIAB?
2) How does the software know when to stop playing a note if there is no Note Off message corresponding to the Note On message? As far as I'm aware, there isn't any duration information in a Note On message, so I don't see how that would work.
3) Is there an option hidden in one of the menus in BIAB where I can enable Note Off messages?
Any insight would be greatly appreciated. Currently, BIAB's output doesn't work with my VST, which is a little frustrating.
So, this is one of those cases where I hit the post button a little too soon. It looks like BIAB sends Note On events with a velocity of 0 to represent Note Off events. That's a little odd, but now that I know this, I can modify my plugin code to make a special case for when it receives a velocity=0 Note On event.
I was able to update the code and it's now working.
I'm still curious though, why no Note Off events are generated. Again, it just seems counter-intuitive since the MIDI Spec says that notes should end with a Note Off event. Any insight?
My understanding of the MIDI spec is that there are two ways that a Note-Off event is produced.
1: Note-Off can be produced by 0x80 (top bit set in high nibble of the Status Byte), 2: Also if the velocity is set to zero then the Note-On message is interpreted as a Note-Off message, therefore releasing the note (Note-off).
BiaB probably use the second implementation
HTH. And good luck with your project!
Trevor
BIAB & RB2024 Win.(Audiophile), Sonar Platinum, Cakewalk by Bandlab, Izotope Prod.Bundle, Roland RD-1000, Synthogy Ivory, Kontakt, Focusrite 18i20, KetronSD2, NS40M Monitors, Pioneer Active Monitors, AKG K271 Studio H'phones
I wasn't aware of the second implementation, but it makes sense. Thanks for pointing it out! I have updated my code so that both cases are handled now.
Convenient Ways to Listen to Band-in-a-Box® Songs Created by Program Users!
The User Showcase Forum is an excellent place to share your Band-in-a-Box® songs and listen to songs other program users are creating!
There are other places you can listen to these songs too! Visit our User Showcase page to sort by genre, artist (forum name), song title, and date - each listing will direct you to the forum post for that song.
If you'd rather listen to these songs in one place, head to our Band-in-a-Box® Radio, where you'll have the option to select the genre playlist for your listening pleasure. This page has SoundCloud built in, so it won't redirect you. We've also added the link to the Artists SoundCloud page here, and a link to their forum post.
We hope you find some inspiration from this amazing collection of User Showcase Songs!
Our User Showcase Forum receives more than 50 posts per day, with people sharing their Band-in-a-Box songs and providing feedback for other songs posted.
Video: Enhanced Melodists in Band-in-a-Box® 2024 for Windows®!
We've enhanced the Melodists feature included in Band-in-a-Box® 2024 for Windows!
Access the Melodist feature by pressing F7 in the program to open the new MultiPicker Library and locate the [Melodist] tab.
You can now generate a melody on any track in the program - very handy! Plus, you select how much of the melody you want generated - specify a range, or apply it to the whole track.
This new panel offers built-in specific support for the Reaper® DAW API allowing direct transfer of Band-in-a-Box® files to/from Reaper® tracks!
When you run the Plugin from Reaper®, there is a panel to set the following options:
-BB Track(s) to send: This allows you to select the Plugin tracks that will be sent Reaper.
-Destination Reaper Track: This lets you select the destination Reaper track to receive media content from the Plugin.
-At Bar: You can select a bar in Reaper where the Plugin tracks should be placed.
-Start Below Selected Track: This allows you to place the Plugin tracks below the destination Reaper track.
-Overwrite Reaper Track: You can overwrite previous content on the destination Reaper track.
-Move to Project Folder: With this option, you can move the Plugin tracks to the Reaper project folder.
-Send Reaper Instructions Enable this option to send the Reaper Instructions instead of rendering audio tracks, which is faster.
-Render Audio & Instructions: Enable this option to generate audio files and the Reaper instructions.
-Send Tracks After Generating: This allows the Plugin to automatically send tracks to Reaper after generating.
-Send Audio for MIDI Track: Enable this option to send rendered audio for MIDI tracks.
-Send RealCharts with Audio: If this option is enabled, Enable this option to send RealCharts with audio.
One of our representatives will be happy to help you over the phone. Our hours of operation are from
6:00AM to 6:00PM PST (GMT -8) Monday thru Friday, and 8:00AM to 4:00PM PST Saturday. We are closed Sunday. You can also send us your questions via email.
One of our representatives will be happy to help you on our Live Chat or by email. Our hours of operation are from
6:00AM to 6:00PM PST (GMT -8) Monday thru Friday; 8:00AM to 4:00PM PST (GMT -8) Saturday; Closed Sunday.