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,254
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,254
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,254
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,254
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,254
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,254
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,254
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,254
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,254
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,254
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,254
MartinB Offline OP
Veteran
OP Offline
Veteran
Joined: Jul 2000
Posts: 5,254
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
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!

Congratulations to the 2023 User Showcase Award Winners!

We've just announced the 2023 User Showcase Award Winners!

There are 45 winners, each receiving a Band-in-a-Box 2024 UltraPAK! Read the official announcement to see if you've won.

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.

Thank you to everyone who has contributed!

Video: Volume Automation in Band-in-a-Box® 2024 for Windows®

We've created a video to help you learn more about the Volume Automation options in Band-in-a-Box® 2024 for Windows.

Band-in-a-Box® 2024: Volume Automation

www.pgmusic.com/manuals/bbw2024full/chapter11.htm#volume-automation

Video: Audio Input Monitoring with Band-in-a-Box® 2024 for Windows®

We've created this short video to explain Audio Input Monitoring within Band-in-a-Box® 2024, and included some tips & troubleshooting details too!

Band-in-a-Box® 2024: Audio Input Monitoring

3:17: Tips
5:10: Troubleshooting

www.pgmusic.com/manuals/bbw2024full/chapter11.htm#audio-input-monitoring

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.

See the Melodist in action with our video, Band-in-a-Box® 2024: The Melodist Window.

Learn even more about the enhancements to the Melodist feature in Band-in-a-Box® 2024 for Windows at www.pgmusic.com/manuals/bbw2024upgrade/chapter3.htm#enhanced-melodist

Band-in-a-Box® 2024 DAW Plugin Version 6: New Features Specifically for Reaper®

New with the DAW Plugin Version 6.0, released with Band-in-a-Box® 2024 for Windows: the Reaper® Panel!

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.

Check out this video highlighting the new Reaper®-specific features: Band-in-a-Box® DAW Plugin Version 6: New Features Specifically for Reaper®

Band-in-a-Box® 2024 DAW Plugin Version 6: New Features Video

The new Band-in-a-Box VST DAW Plugin Verion 6 adds over 20 new features!

Watch the new features video to learn more: Video: Band-in-a-Box® 2024 - DAW Plugin Version 6 New Features

We also list these new features at www.pgmusic.com/bbwin.plugin.htm.

Forum Statistics
Forums66
Topics81,395
Posts732,499
Members38,441
Most Online2,537
Jan 19th, 2020
Newest Members
zagrajbarke, Ernest J, Izzy, BenChaz, Csofi
38,440 Registered Users
Top Posters(30 Days)
MarioD 195
Al-David 124
DC Ron 115
dcuny 87
rsdean 82
Today's Birthdays
CeeDee, SethMould
Powered by UBB.threads™ PHP Forum Software 7.7.5