Sie sind auf Seite 1von 8

Using Native Instruments Bandstand with Band-in-a-Box

James Chandler Jr
PG Music Inc.
04-28-2006

About Bandstand
Native Instruments Bandstand is a nice General MIDI softsynthesizer which uses large high-quality samples. Bandstand
operates a bit differently than the typical synthesizer, which can pose unique challenges in a MIDI program written to use
"a typical synthesizer."
There are two novel behaviors in Bandstand that can present issues within "a typical MIDI Program":
Program Change Latency:
A common synonym for MIDI Program Change is MIDI Patch Change. Both terms mean the same thing.
Bandstand has a slight latency after receiving a MIDI Program Change, before it can continue playing notes on a channel.
The latency varies between 'almost instant' to perhaps two seconds, depending on the selected program. Bandstand takes
longer to respond to a Grand Piano patch change, but responds to an Electric Bass patch change very quickly. A MIDI
channel 'goes silent' while Bandstand is busy changing programs. Program changes can cause brief dropouts in the
music.
A generic method to avoid Bandstand Program Change music dropouts in any MIDI program: (1) Send all program
changes before the song starts, (2) Wait until Bandstand settles, (3) Then begin song playback. Also resist the temptation
to send program changes in the middle of a song, unless you can have a bar or two of silence afterwards, on that MIDI
channel.
Sample Streaming From Disk:
Bandstand streams its large samples from hard drive, rather than attempt to load all the sample data into your computer's
RAM memory. This is generally a good thing, because you can use big samples without requiring a huge amount of
memory in your computer.
However, since Bandstand must have time to read the hard drive to play its notes, one cannot 'Render MIDI to Hard Drive
audio file' at the fastest possible rate. Most MIDI programs attempt to render MIDI songs to Wave files as fast as possible,
because there are few people who would want to wait three minutes to render a three minute song, if for instance the
computer is fast enough to render that three minute song in ten seconds.
But when rendering 'as fast as possible', Bandstand can have note dropouts, because in that case Bandstand is not given
sufficient time to stream its samples from disk. Simpler synthesizers which hold all the samples in computer memory, do
not have this disk-streaming slowdown.

Band-in-a-Box 2006 build 220


NOTE: This section describes the use of Bandstand as a VSTi plugin in Band-in-a-Box.
NOTE: We find that the VSTi version of Bandstand works better with Band-in-a-Box than the DXi version. It is
suggested that you use the VSTi version, unless you encounter some kind of problem with the VSTi version.
NOTE: You will probably get the most pleasant behavior with Bandstand and Band-in-a-Box if you can use ASIO
drivers, with the 'ASIO Always On' option.
We added features to Band-in-a-Box 2006 build 220, which attempt to better-support Bandstand. Some of these features
might be useful for other future synthesizers which might arrive on the market, which might have Program Change Delay
or incorporate Sample Streaming from Disk.
AsstSettings.ini
To more easily add specialized functions without peppering BIAB's settings dialogs with very obscure options, we added
support for a new settings file in the bb folder: AsstSettings.ini. We may later move some of these new specialized
functions to Band-in-a-Box settings dialogs if they become popular.
If the 'AsstSettings.ini' file does not exist in the bb folder, Band-in-a-Box does not care. Band-in-a-Box does not care if
certain settings are missing in the 'AsstSettings.ini' file. The only time 'AsstSettings.ini' has any effect, is IF the file exists in
the bb folder, AND a relevant setting line exists in the 'AsstSettings.ini' file.

Included with this Bandstand document is a sample AsstSettings.ini file which should work on your computer with BIAB
and Bandstand. Following are instructions should you wish to customize the settings. You must have at least BIAB 2006
build 220 for these additional features to work.
NOTE: If you wish to entirely disable the AsstSettings.ini file (for instance, to use a different synth with BIAB), you can
rename this file in your bb folder. For instance, you could rename it to 'AsstSettingsBandstand.ini' and Band-in-a-Box
would no longer recognize the file. Later should you wish to use the ini file again, just rename the file to its original name of
'AsstSettings.ini'.
Support for seven 'special for Bandstand' settings have been added via 'AsstSettings.ini'. Here are the current values I
found useful with Bandstand, but you can edit these settings to your own taste. Bandstand might work differently on your
computer than my test computer, requiring slightly different settings:
RenderDXorVST_CheckSettingsEveryRender=0
RenderDXorVST_MSDelayAfterPrgChange=500
RenderDXorVST_RenderRatePercentOfRealTime=200
RenderDXorVST_RemoveEmbeddedTrackPatches=1
PlaybackPatches_DoNotSendRedundantPatches=1
PlaybackPatches_MSDelayAfterPrgChange=500
PlaybackPatches_RemoveEmbeddedTrackPatches=1
NOTE: Apologies if these settings seem too 'wordy', but it may be easier to remember the purpose if settings
have descriptive names.
NOTE: The Windows NotePad program is a convenient way to edit this ini file.

RenderDXorVST Settings
The RenderDXorVST settings add special features in BIAB's Render To Disk functions. The Render dialog is opened by
the Menu items "Audio | Render MIDI to Stereo .WAV file etc" and "Audio | Burn an Audio CD (using CDR, CDRW
drive)".

RenderDXorVST_CheckSettingsEveryRender
If this setting is not equal to zero, BIAB will read the 'AsstSettings.ini' file before each Render. If this setting line is not
present, or if it equals zero, BIAB will only check the 'AsstSettings.ini' file on the first render you perform after starting
BIAB. This setting allows you to experimentally adjust the 'AsstSettings.ini' file settings without having to exit Band-in-aBox and then restart every time you wish to make a settings change.
If you want to read the settings before each Render, use a line like this:
RenderDXorVST_CheckSettingsEveryRender=1
If you are happy with your settings and don't want BIAB to take extra time to re-check the settings on each render, you can
delete the line from the ini file, or you can set it to zero, or temporarily misspell the line. For instance:
RenderDXorVST_CheckSettingsEveryRender=0
xRenderDXorVST_CheckSettingsEveryRender=1
RenderDXorVST_MSDelayAfterPrgChange
BIAB will wait after sending a Program Change to Bandstand. The wait gives Bandstand a chance to load its samples from
the hard drive, to avoid note dropouts in the rendered wave file.
The value is in milliseconds (thousandths of a second). So if you use 500 ms, and BIAB sends 6 program changes to
Bandstand before rendering, BIAB would wait a half second after sending each program change, before continuing to

render the wave file. In this example case (six program changes), the total time added to the rendering would be 3
seconds. Bandstand handles some program changes faster than others, and Bandstand's program change latency may
be larger on a slow computer. BIAB cannot predict how long Bandstand takes to change programs, so this number might
require some experimentation on your computer.
This setting works well on my test computer-RenderDXorVST_MSDelayAfterPrgChange=500
You can change the delay to fine-tune your computer. If you do not want any delay, you can either delete the line, misspell
the line, or set the line to zero,
RenderDXorVST_MSDelayAfterPrgChange=0
xRenderDXorVST_MSDelayAfterPrgChange=500
RenderDXorVST_RenderRatePercentOfRealTime
Throttle the speed of rendering, to give Bandstand a chance to stream its samples from the hard drive and avoid note
dropouts in the rendered wave file. It is set in Percent of the song's play time.
For instance, if a song's duration is three minutes, and you use 100 percent, it will take at least three minutes to render this
song to wave file. If you use 200 percent, it will render twice as fast as the play time, and it will take at least 1.5 minutes to
render the song. If you wish to experiment, you keep adjusting the setting until it is as high as it will go while still avoiding
note dropouts in the rendered wave file.
On my test computer, 200 percent (render twice as fast as the playback speed) always works without dropouts-RenderDXorVST_RenderRatePercentOfRealTime=200
If you set the value too fast, perhaps MOST songs would render without dropouts, but PERHAPS you could get surprised
by an occasional dropout when you least expect it. If Bandstand can play a song on your computer in realtime, then 100
percent should always work. In unlikely stubborn cases, you could set the value less than 100 percent. For instance, if you
use 50 percent, it would take at least 6 minutes to render a 3 minute song. For instance, twenty-five percent would take at
least 12 minutes to render a 3 minute song.
To disable render throttling, either delete the line or misspell the line. Then BIAB will render as fast as possible, which is its
default behavior.-xRenderDXorVST_RenderRatePercentOfRealTime=500
RenderDXorVST_RemoveEmbeddedTrackPatches
As mentioned earlier, program changes sent in the middle of a song can cause short audio dropouts until Bandstand
finishes responding to the program change. If you can afford to plan an arrangement so that there is a bar or two of silence
in a track after the program change, embedded patches are no problem.
The earlier-discussed parameter RenderDXorVST_MSDelayAfterPrgChange, might avoid dropouts from mid-song
program changes (such as automatic program changes embedded in some styles). But you can set
RenderDXorVST_RemoveEmbeddedTrackPatches=1 to cause BIAB to ignore program changes in the middle of a song if
you still have troubles.
To disable this feature, either delete the line, misspell the line, or set it to zero-RenderDXorVST_RemoveEmbeddedTrackPatches=0
xRenderDXorVST_RemoveEmbeddedTrackPatches=1

PlaybackPatches Settings
The PlaybackPatches settings work during BIAB realtime playback. For maximum flexibility, there are different settings for
Rendering versus Playback.
PlaybackPatches_DoNotSendRedundantPatches
This setting 'prunes' BIAB's patch sending, so it will never send more than one program change per track before playing a
song. Styles can have embedded patches, and you can have patches selected in the BIAB main window. Soloists and
Melodists can have embedded patches, and of course you can use the PianoRoll or Event List windows to insert program
changes inside a track. Most synthesizers do not have bad side-effects if they happen to receive multiple program

changes before playback, and obediently just play the latest patch received. But with BandStand's program change
latency, this is not good.
PlaybackPatches_DoNotSendRedundantPatches=1
To disable this feature, either delete the line, misspell the line, or set it to zero-PlaybackPatches_DoNotSendRedundantPatches=0
xPlaybackPatches_DoNotSendRedundantPatches=1
PlaybackPatches_MSDelayAfterPrgChange
This setting causes BIAB to wait after sending program changes, before playback begins. This gives Bandstand an
opportunity to respond to program changes before the song starts. If the delay is set to 500 ms, and BIAB sends 6 track
program changes before playback, then BIAB would wait a total of 3 seconds after you click the Play button. Some
Bandstand patches change faster than a half-second, but others take longer than a half-second. On our test computer a
500 ms delay PER PROGRAM CHANGE, will average out to a sufficient wait time and make sure Bandstand is properly
setup before the song starts. On your computer, a different value could be better.
PlaybackPatches_MSDelayAfterPrgChange=500
The biggest program change latency will be on the first playback after a new song is opened. Often Bandstand will load
new patches on most tracks before a song's first playback. A replay will send patches which Bandstand has already
loaded, so the delay appropriate for a 'first playback' might seem too long on replays.
If you open the DirectX Window, you can watch the 'Loading...' progress dialogs popup as Bandstand is loading new
patches, which can help you judge whether your settings are in the ballpark.

To disable this setting, either delete the line, set the line to zero, or misspell the line-PlaybackPatches_MSDelayAfterPrgChange=0
xPlaybackPatches_MSDelayAfterPrgChange=500
PlaybackPatches_RemoveEmbeddedTrackPatches
This option physically removes program changes embedded in tracks, except the program changes which are embedded
at the very beginning of the song, in the first four beats of the countoff bar. This will eliminate dropouts which might happen
if a style or soloist contains embedded program changes.
PlaybackPatches_RemoveEmbeddedTrackPatches=1
Use caution with this option-- If you have intentionally inserted program changes in the middle of a melody or soloist
track, this option will permanently remove them (if you save the file after playing it). So if you wish to embed patches
thruout the Melody or Soloist tracks, disable this option. If you can afford to have a silent bar or two after each intentionally
embedded program change, you will not have dropouts when changing patches in the middle of the song.
To disable the setting, either delete the line, set the line to zero, or misspell the line-PlaybackPatches_RemoveEmbeddedTrackPatches=0
xPlaybackPatches_RemoveEmbeddedTrackPatches=1

Bandstand Tweaking

Tweaking of Bandstand's settings could help.

Update
You could check with Native Instruments to make sure you have the most recent version of Bandstand.
Velocity Curve
You may like the mix better on Band-in-a-Box styles with a velocity curve other than the default Neutral curve. To my ear,
Soft 1 or Soft 2 sounds somewhat better with 'out of the box' Band-in-a-Box styles and demo songs. Mixes are a matter of
personal taste, and others might disagree.
DFD Buffer Size
Direct From Disk Buffer Size is a piece of computer memory reserved by Bandstand to stream its samples from your hard
drive. Adjusting this parameter may make your system play more smoothly. If it works satisfactorily at the default setting,
there is no need to bother tweaking the DFD Buffer Size. It is difficult to predict 'which way to go' when tweaking the buffer
size. On my computer, performance seemed to improve with a smaller buffer size, but on other computers, perhaps
performance could be improved with a larger buffer size. When adjusting such variables, sometimes it is difficult to know
whether one has actually made a difference.
Ignore Program Changes after first Note
Ignore Mixer Settings after first Note
These two features should usually be disabled when used as a plugin within BIAB. These features may be helpful when
using Bandstand in standalone MIDI Player mode. If these settings are enabled in plugin mode, Bandstand will ignore all
program changes after you play your first BIAB song. That would usually not be a good thing.
In rare situations perhaps these options would be useful. For instance, if you always play similar styles-- perhaps you only

play Trad Jazz combo arrangements. You could set Bandstand to ignore program changes (under the Current Preset
button in the Bandstand Options dialog), then select your favorite combo patches inside Bandstand, and save your
favorites as Bandstand presets. When you exit Band-in-a-Box with Bandstand selected as the synthesizer, Bandstand
settings are saved to the hard drive. The next time you open Band-in-a-Box, Bandstand will be automatically loaded with
the remembered settings from the previous BIAB session. So if you prefer to always use the same combo patches,
Bandstand will automatically tend to always contain the patches you prefer.
The MIDI Player
Interesting trivia-- When running Bandstand as a plugin in BIAB, using ASIO Always On, the Bandstand MIDI Player works
just fine. Normally this is a 'useless feature', but maybe there are situations where it is useful to have an additional MIDI
File Playlist player embedded within BIAB. For instance, on a live music gig, a musician could play some backing songs via
.MID files loaded into the Bandstand MIDI Player, and then play other .MGU songs via Band-in-a-Box.
Interestingly enough, you can even play a .MID song in the Bandstand MIDI Player, while also playing an entirely different
.MGU song in Band-in-a-Box. Simultaneously playing two different songs may only appeal to musicians/audiences with
strange musical tastes. But it is a neat trick.

Das könnte Ihnen auch gefallen