Previous Thread
Index
Next Thread
Print Thread
Go To
#24217 05/24/09 05:02 AM
Band-in-a-Box for Windows
Joined: Jul 2000
Posts: 5,261
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,261
This is a question related to the rendering of midi signals. At times BiaB yields strange results when playing back its arrangements. Usually midi notes do sound during their midi duration. However, at times they do sound substantially longer. Why?

Here is how to reproduce this finding:
Load the demo song of Jazquint.sty. Set Guitar to solo such that you hear exclusively the guitar track; potentially reduce the tempo to s.th. like 60. Turn the chord Dm7 in the second bar to a shot. Press play and focus on the guitar notes of the Dm7 shot. Various synthies now yield different results. VSC DXi makes the guitar notes sound exactly during their midi duration here. Forte DXi and GS Wavetable, however, make these notes sound substantially longer - effectively botching a shot effect.

Now comes a related question.

With the style Jazquint.sty a typical guitar pattern are strums at each beat. Typically these strums are notated with respect to the respective midi durations -> long-short-long-short (long refers to durations of about 0:100, short is typically s.th. around 0:20). At times, though, some bars show up with midi durations short-short-short-short. At those bars the synthies create the following puzzling patterns -> Forte DXi: mostly long-short-long-short and sometimes even long-long-long-long, VSC DXi: long-short-long-short, Wavetable: long-short-long-short.

Why do different synthies create different renderings with respect to note durations?

Why do some synthies create long-short sounds with notes of durations short-short?


Martin
Band-in-a-Box for Windows
Joined: Sep 2003
Posts: 8,333
Veteran
Offline
Veteran
Joined: Sep 2003
Posts: 8,333
Dare I guess reverb in the samples?


John Conley
Musica est vita
Band-in-a-Box for Windows
Joined: Jul 2000
Posts: 5,261
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,261
Oh well, some inspection with the midi monitor reveals that there are a bunch of sustain controllers floating around with the midi data created by this style. Those song positions that create long sounding notes even if the note durations are rather short are accompanied by some non zero sustain controller values. Typically these values are indeed 127. That seems to account for long sounding notes with short midi durations.

Now, why do different synthies create different outputs?

In the second bar with the shot, the notes start out with a sustain controller value 127. At the end of the note durations the sustain controller value is turned to 5, not to zero.

Apparently different synthies react differently to sustain controller values, such a 0 correnponding to 'off' and any value different from 0 may correspond to 'on'. The VSC DXi seemingly takes a value 5 just as this value, thus effectively switching off sustain.

That is an interesting problem that popped up recently over at the German forum ...


Martin
Band-in-a-Box for Windows
Joined: May 2000
Posts: 38,502
M
Mac Offline
Veteran
Offline
Veteran
M
Joined: May 2000
Posts: 38,502
Yes, different devices do indeed respond differently to MIDI controller 64 (sustain).

The 5 is not generally a problem, though, as the vast majority of GM synths use the 0-127 CC as a "bang-bang" and not a continuous action, typically defining the dividing point between Pedal Up and Pedal Downs at the halfway mark, or 064. (Here's where guys like Gary will chime in about their special Sustain Pedal situation, which is programmed to emulate half-damper action. You can get it, but it is going to cost you more money, whether hardware like Gary's piano or software as in some of the high end piano modeling synths. )

So the 127 is a Pedal Down and the 5 represents a Pedal Up. This is a common MIDI programming practice when creating a MIDI file for use with different GM synths because there exist some synths that don't like going all the way to zero, can't recognize it ("1-based" synths, for example). So setting the Controller for a number slightly above zero makes sure that every possible situation can be handled with the same setting, "5" or "3" being the same action as zero anyway.

The situation can be further exacerbated by certain software synths and their implementation, too. It is customary if not de rigeur to not send MIDI Note Off data in a MIDI file. Even though the original MIDI standard includes Note Off commands, it was found early on that the inclusion of the Note Off commands was superfluous for the most part, bloating the size of MIDI files needlessly when the MIDI Note Duration command literally does the same thing as a Note Off command placed at the end of every single note in a file. But there are indeed certain times when certain softsynths, particularly those of the DXi persuasion, will miss the Note Duration data point, causing longer or shorter notes, often causing the "hung note" situation, particularly on Pad tracks such as strings, synths or organs. That bug has been reported here numerous times. I have never found a cure for the situation other than to switch to a good hardware MIDI synth, where none of this has ever occurred here.

As for CC64 being used on guitar parts, I try to avoid that situation in my own MIDI sequences, simply because the real guitar has no sustain pedal in the first place. That is really something only the Piano, and a few other percussion instruments have in real life. Harp, etc. Still, even given that, the use of the Sustain CC64 is with us forever more than likely, especially in those downloaded-for-free MIDI files that are so ubiquitous. The funny thing about that situation and human nature is that almost everybody will blame the host program they use or the developers of the host -- and never the free downloaded MIDI file from an unknown stranger that they are trying to get to act right.


--Mac

Band-in-a-Box for Windows
Joined: Jul 2000
Posts: 5,261
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,261
I read you Mac, yet here we have a pure BiaB setting - not talking about some downloaded midi files; it's all about the midi data created by BiaB.

The CC#64 controller value was probably a misleading trace anyway. Shifting the guitar track to the melody and editing the suspicious sustain controller value 5 down to 0 does not change anything with the strange playback behavior. Now what?

Maybe some soul from PG Music might chime in here ...


Martin
Band-in-a-Box for Windows
Joined: Jun 2004
Posts: 404
F
Journeyman
Offline
Journeyman
F
Joined: Jun 2004
Posts: 404
Quote:

The situation can be further exacerbated by certain software synths and their implementation, too. It is customary if not de rigeur to not send MIDI Note Off data in a MIDI file. Even though the original MIDI standard includes Note Off commands, it was found early on that the inclusion of the Note Off commands was superfluous for the most part, bloating the size of MIDI files needlessly when the MIDI Note Duration command literally does the same thing as a Note Off command placed at the end of every single note in a file.



Mac,

I've never heard of a "MIDI Note Duration" command..
Can you please explain in more detail? How is it defined in the MIDI standard?

Thanks.

Band-in-a-Box for Windows
Joined: May 2000
Posts: 38,502
M
Mac Offline
Veteran
Offline
Veteran
M
Joined: May 2000
Posts: 38,502
Note Duration is defined by number of MIDI Clock Ticks.

If you investigate using something like Event List viewer or the like, you should find that the majority of MIDI files do not contain Note Off data, only Note On and then the Duration data. This is contained in one parcel and thus there is no need to send a separate Note Off and time, which is another line of data.

MIDI standard is getting a bit long in the tooth, but it is what we have. Some of the ideas that the MIDI Manufacturer's Association first agreed upon way back when at the design tables turned out to be not so wonderful after all. Still, they did a pretty good job of it, considering. I often find myself wishing for a new standard that would encompass a few more musical parameters than what the current thing can yield. As it is, we spend time creating "illusion" more than anything else. Or -- if something doesn't work, try doing something else instead kind of thing.

Check out the Event List View to see the Note On and its Duration value.

Then look for any Note Off data...


--Mac

Band-in-a-Box for Windows
Joined: Jun 2004
Posts: 404
F
Journeyman
Offline
Journeyman
F
Joined: Jun 2004
Posts: 404
Quote:

If you investigate using something like Event List viewer or the like, you should find that the majority of MIDI files do not contain Note Off data, only Note On and then the Duration data. This is contained in one parcel and thus there is no need to send a separate Note Off and time, which is another line of data.



Well, the event list of sequencers in general don't show the raw MIDI commands of the file but just a compact and readable interpretation. But when looking directly at the MIDI file with a MIDI-to-Text converter you'll see the original Note Off commands (usually Note On with velocity 0).


Band-in-a-Box for Windows
Joined: Jul 2000
Posts: 5,261
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,261
The Event List displays Duration values, the Midi Monitor does not. The Midi Monitor lists a bunch of Note On commands with pertinent velocity values. A velocity value=0 is equivalent to a Note Off command.

This recalcitrant Jazquint style defeats a lot of velocity=0 commands, though ...


Martin
Band-in-a-Box for Windows
Joined: Jun 2004
Posts: 404
F
Journeyman
Offline
Journeyman
F
Joined: Jun 2004
Posts: 404
The inconsistent behavior may be due to overlapping notes. I've noticed that different synths behave differently in this regard. If you have a sequence like this

Note On C5 ----- Note On C5 ----- Note Off C5 ----- Note Off C5

some synths stop immediately at the first Note Off while others require the second one (ie. matching number of Note Ons and Note Offs).


Band-in-a-Box for Windows
Joined: May 2000
Posts: 38,502
M
Mac Offline
Veteran
Offline
Veteran
M
Joined: May 2000
Posts: 38,502
Quote:


NOTE ON and NOTE OFF Commands

By far the most common command blocks are the NOTE ON and NOTE OFF commands. A NOTE ON command might contain the following hexadecimal byte sequence:

0x92 NOTE ON, Channel 2
0x3C Pitch = Middle C
0x40 Velocity = 0x40

The hexadecimal value 92 identifies a NOTE ON command for Channel 2. Next, hexadecimal data byte 3C is a pitch (frequency) value corresponding to Middle C on the piano. Notes are assigned integer pitch values, increasing with frequency. There are 12 intervals in an octave, so adding or subtracting 12 (decimal) to a sequence of pitch values would raise or lower the pitch by one octave.

The last byte value of 0x40 indicates a turn-on velocity of 64, decimal. Actually, many keyboards don't use the velocity value at all, but simply use a fixed turn-on and turn-off velocity.

Now let's look at the NOTE OFF command. A typical NOTE OFF command block might appear as:

0x81 NOTE OFF, Channel 1
0x3C Pitch = Middle C
0x40 Velocity = 0x40

Here the bytes represent a NOTE OFF status word on Channel 1, a note pitch of 0x3C (Middle C again), and a turn-off velocity of 0x40.

Implicit NOTE OFF commands

A special case of the NOTE ON command allows it to be interpreted as a NOTE OFF command. This is true whenever the velocity value is zero: a zero-velocity NOTE ON command always equals NOTE OFF for the indicated pitch value.





(emphasis added)

The latter case above is now the defacto method for most cases. For reasons already given, but look at it like this: All Note On data is leaner and meaner than interspersing the Note Off strings. It is faster and demands less state change events.

This also depends on the coding of the software you use to view the MIDI data, though. Some will imply the Note Off that really isn't there, kind of like a smart filtering or interpretation situation. It may be necessary to be able to look at the raw MIDI data in order to see the real.


--Mac

Band-in-a-Box for Windows
Joined: Jun 2004
Posts: 404
F
Journeyman
Offline
Journeyman
F
Joined: Jun 2004
Posts: 404
Quote:

This recalcitrant Jazquint style defeats a lot of velocity=0 commands, though ...



So I have looked at the exported MIDI file with a special editor to inspect the raw data. It turns out that on the guitar track on each beat the complete chord is generated *multiple* times with an offset of some ticks, and for each of these chords all but one Note On are immediately followed by a Note Off (velocity=0). Thus a strum effect is created but the method seems questionable. I'd suspect that sending Note On and Note Off with same pitch on the same tick may confuse some synths.


Band-in-a-Box for Windows
Joined: Jul 2000
Posts: 5,261
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,261
What special editor did you use?

I have only access here to the event list and the midi monitor of BiaB or RealBand. Looking closer at those data I might have a clue now of what is going on here:

While in an above post I assumed that the CC#64 business might be a blind alley, it appears definitely to play a role. I was led to thinking it doesn't play a role, because setting the above mentioned CC#64 value from 5 to 0 didn't seem to change anything. Now, that holds true for the Forte DXi only - which was the active synth when I tried this exercise. Checking on the effect of setting a CC#64 value from 5 to 0 with either Wavetable or VSC DXi does, however, create results, which one would expect -> a nice shot and otherwise nice strumming patterns throughout the style.

So, why does Forte DXi seemingly botch this strumming exercise?

Looking at the Event list, it appears that the Forte DXi holds notes despite of some CC#64 value=0, supposed to silence played notes, whenever such a CC#64 command happens to show up after some note off command was issued. Most of the time this style creates CC#64 value=0 commands shortly before a pertinent note off command. In these circumstances the notes stop sounding with the Forte, VSC and Wavetable. Sometimes such a CC#64 value=0 command is issued slightly after such note off commands. In these instances VCS and Wavetable do silence notes anyway, however Forte keeps those notes sounding, thus compromising this style.

Weird ...


Martin
Band-in-a-Box for Windows
Joined: May 2000
Posts: 38,502
M
Mac Offline
Veteran
Offline
Veteran
M
Joined: May 2000
Posts: 38,502
Sounds like the Coyote Forte may be programmed to accept any value above zero as Pedal Down...

Band-in-a-Box for Windows
Joined: Jun 2004
Posts: 404
F
Journeyman
Offline
Journeyman
F
Joined: Jun 2004
Posts: 404
Quote:

What special editor did you use?



It's a self-made program written in Java.

As a Mac user I can't check the synths you're using but I still think the basic problem is that BiaB generates note on commands immediately followed by note off commands. This may result in timing issues with note management and sustain handling of some synths.


Band-in-a-Box for Windows
Joined: May 2000
Posts: 38,502
M
Mac Offline
Veteran
Offline
Veteran
M
Joined: May 2000
Posts: 38,502
What Fred B says makes sense.

Matter of fact, there is even a command in the global Prefs, "Send extra Note Offs" -- I presume that is to handle stuck synths.

You might check to make sure you don't have that one st to true...


--Mac

Band-in-a-Box for Windows
Joined: Jul 2000
Posts: 5,261
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,261
Quote:

Sounds like the Coyote Forte may be programmed to accept any value above zero as Pedal Down...



Forte DXi keeps pedal down even with CC#64 value=0, if this command is issued after a note off command.
If CC#64 value=0 is issued before a note off command, the note gets silenced after its duration.

Appears to be a timing issue and may well be a bug with the Forte Software.


Martin
Previous Thread
Next Thread
Go To

Link Copied to Clipboard
ChatPG

Ask sales and support questions about Band-in-a-Box using natural language.

ChatPG's knowledge base includes the full Band-in-a-Box User Manual and sales information from the website.

PG Music News
Video: Band-in-a-Box® 2025 for Mac®: VST3 Plugin Support

Band-in-a-Box® 2025 for Mac® now includes support for VST3 plugins, alongside VST and AU. Use them with MIDI or audio tracks for even more creative possibilities in your music production.

Band-in-a-Box® 2025 for Macs®: VST3 Plugin Support

Video: Band-in-a-Box® 2025 for Mac®: Using VST3 Plugins

Join the conversation on our forum.

Band-in-a-Box 2025 for Mac Videos

With the release of Band-in-a-Box® 2025 for Mac, we’re rolling out a collection of brand-new videos on our YouTube channel. We’ll also keep this forum post updated so you can easily find all the latest videos in one convenient spot.

From overviews of new features and walkthroughs of the 202 new RealTracks, to highlights of XPro Styles PAK 8, Xtra Styles PAKs 18, the 2025 49-PAK, and in-depth tutorials — you’ll find everything you need to explore what’s new in Band-in-a-Box® 2025.

Reference this forum post for One-Stop Shopping of our Band-in-a-Box® 2025 Mac Videos — we’ll be adding more videos as they’re released!

Band-in-a-Box 2025 for Mac is Here!

Band-in-a-Box® 2025 for Mac is here, packed with major new features and an incredible collection of available new content! This includes 202 RealTracks (in Sets 449-467), plus 20 bonus Unreleased RealTracks in the 2025 49-PAK. There are new RealStyles, MIDI SuperTracks, Instrumental Studies, “Songs with Vocals” Artist Performance Sets, Playable RealTracks Set 4, two new sets of “RealDrums Stems,” XPro Styles PAK 8, Xtra Styles PAK 19, and more!

Special Offers
Upgrade to Band-in-a-Box® 2025 for Mac with savings of up to 50% on most upgrade packages during our special—available until July 31, 2025! Visit our Band-in-a-Box® packages page for all the purchase options available.

2025 Free Bonus PAK & 49-PAK Add-ons
We've packed our Free Bonus PAK & 49-PAK with some incredible Add-ons! The Free Bonus PAK is automatically included with most Band-in-a-Box® for Mac 2025 packages, but for even more Add-ons (including 20 Unreleased RealTracks!) upgrade to the 2025 49-PAK for only $49. You can see the full lists of items in each package, and listen to demos here.

If you have any questions, feel free to connect with us directly—we’re here to help!

Band-in-a-Box 2025 Italian Version is Here!

Cari amici
È stata aggerate la versione in Italiano del programma più amato dagli appassionati di musica, il nostro Band-in-a-Box.
Questo è il link alla nuova versione 2025.

Di seguito i link per scaricare il pacchetti di lingua italiana aggiornati per Band-in-a-Box e RealBand, anche per chi avesse già comprato la nuova versione in inglese.

Band-in-a-Box 2025 - Italiano
RealBand 2025 - Italiano

Band-in-a-Box 2025 French Version is Here!

Bonjour à tous,

Band-in-a-Box® 2025 pour Windows est disponible en Français.
Le téléchargement se fait à partir du site PG Music

Pour ceux qui auraient déjà acheté la version 2025 de Band-in-a-Box (et qui donc ont une version anglaise), il est possible de "franciser" cette version avec les patchs suivants:

BIAB 2025 - francisation
RealBand 2025 - francisation

Voilà, enjoy!

Band-in-a-Box 2025 German Version is Here!

Band-in-a-Box 2025 für Windows Deutsch ist verfügbar!

Die deutsche Version Band-in-a-Box® 2025 für Windows ist ab sofort verfügbar!

Alle die bereits die englische Version von Band-in-a-Box und RealBand 2024 installiert haben, finden hier die Installationsdateien für das Sprachenupdate:

https://nn.pgmusic.com/pgfiles/languagesupport/deutsch2025.exe
https://nn.pgmusic.com/pgfiles/languagesupport/deutsch2025RB.exe

Update Your Band-in-a-Box® 2025 to Build 1128 for Windows Today!

Already using Band-in-a-Box 2025 for Windows®? Download Build 1128 now from our Support Page to enjoy the latest enhancements and improvements from our team.

Stay up to date—get the latest update now!

Forum Statistics
Forums58
Topics84,190
Posts776,215
Members39,595
Most Online25,754
Jan 24th, 2025
Newest Members
gestes, TSIRY10, Albertcolin, Snow, Siggi D
39,594 Registered Users
Top Posters(30 Days)
MarioD 156
zedd 113
WaoBand 93
DC Ron 82
rsdean 78
nonchai 71
Today's Birthdays
There are no members with birthdays on this day.
Powered by UBB.threads™ PHP Forum Software 7.7.5