/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* A SoundFont 2.04 soundbank reader.
*
* Based on SoundFont 2.04 specification from:
* <p> http://developer.creative.com <br>
*
* @author Karl Helgason
*/
// version of the Sound Font RIFF file
// target Sound Engine
// Sound Font Bank Name
// Sound ROM Name
// Sound ROM Version
// Date of Creation of the Bank
// Sound Designers and Engineers for the Bank
// Product for which the Bank was intended
// Copyright message
// Comments
// The SoundFont tools used to create and alter the bank
// The Sample Data loaded from the SoundFont
private boolean largeFormat = false;
public SF2Soundbank() {
}
try {
} finally {
}
}
largeFormat = true;
sampleFile = file;
try {
} finally {
}
}
}
throw new RIFFInvalidFormatException(
"Input stream is not a valid RIFF stream!");
}
throw new RIFFInvalidFormatException(
"Input stream is not a valid SoundFont!");
}
while (riff.hasNextChunk()) {
}
}
}
while (riff.hasNextChunk()) {
}
}
}
while (riff.hasNextChunk()) {
if (!largeFormat) {
int read = 0;
read += 65536;
} else {
}
}
//chunk.read(sampleData);
} else {
}
}
if (!largeFormat) {
//chunk.read(sampleData24);
int read = 0;
read += 65536;
} else {
}
}
} else {
}
}
}
}
= new ArrayList<SF2InstrumentRegion>();
= new ArrayList<SF2InstrumentRegion>();
= new ArrayList<SF2LayerRegion>();
= new ArrayList<SF2LayerRegion>();
while (riff.hasNextChunk()) {
// Preset Header / Instrument
throw new RIFFInvalidDataException();
for (int i = 0; i < count; i++) {
if (i != count - 1)
}
// Preset Zones / Instruments splits
throw new RIFFInvalidDataException();
// Skip first record
{
count--;
}
// Offset should be 0 (but just case)
for (int i = 0; i < offset; i++) {
if (count == 0)
throw new RIFFInvalidDataException();
count--;
}
- presets_bagNdx.get(i);
if (count == 0)
throw new RIFFInvalidDataException();
count--;
}
}
// Preset Modulators / Split Modulators
}
// Preset Generators / Split Generators
}
// Instrument Header / Layers
throw new RIFFInvalidDataException();
for (int i = 0; i < count; i++) {
if (i != count - 1)
}
// Instrument Zones / Layer splits
throw new RIFFInvalidDataException();
// Skip first record
{
count--;
}
// Offset should be 0 (but just case)
for (int i = 0; i < offset; i++) {
if (count == 0)
throw new RIFFInvalidDataException();
count--;
}
if (count == 0)
throw new RIFFInvalidDataException();
count--;
}
}
// Instrument Modulators / Split Modulators
}
// Instrument Generators / Split Generators
}
// Sample Headers
throw new RIFFInvalidDataException();
for (int i = 0; i < count; i++) {
if (sampleData24 != null)
/*
sample.data = new ModelByteBuffer(sampleData, (int)(start*2),
(int)((end - start)*2));
if (sampleData24 != null)
sample.data24 = new ModelByteBuffer(sampleData24,
(int)start, (int)(end - start));
*/
if (i != count - 1)
}
}
}
} else {
globalsplit = split;
}
}
if (globalsplit != null) {
}
}
} else {
globalsplit = split;
}
}
if (globalsplit != null) {
}
}
}
}
}
}
}
return;
len++;
}
if (this.targetEngine == null)
this.targetEngine = "EMU8000";
this.name = "";
if (romVersionMajor != -1) {
}
}
byte[] pad = new byte[32];
/*
smpl_chunk.write(data.array(),
data.arrayOffset(),
data.capacity());
*/
}
if (major < 2)
return;
return;
return;
}
/*
sm24_chunk.write(data.array(),
data.arrayOffset(),
data.capacity());*/
}
}
throws IOException {
}
}
throws IOException {
}
}
continue;
continue;
}
}
int phdr_zone_count = 0;
phdr_zone_count += 1;
}
int pbag_gencount = 0;
int pbag_modcount = 0;
}
// One generator is used to reference to instrument record
pbag_gencount += 1;
}
}
}
}
}
}
if (ix != -1) {
}
}
}
int inst_zone_count = 0;
inst_zone_count += 1;
}
int ibag_gencount = 0;
int ibag_modcount = 0;
}
// One generator is used to reference to instrument record
ibag_gencount += 1;
}
}
}
}
}
}
if (ix != -1) {
}
}
}
long sample_pos = 0;
long start = sample_pos;
long end = sample_pos;
sample_pos += 32;
}
}
return name;
}
}
return engineers;
}
return comments;
}
name = s;
}
engineers = s;
}
comments = s;
}
int j = 0;
return resources;
}
return inslist_array;
}
}
}
boolean percussion = false;
if (patch instanceof ModelPatch)
boolean percussion2 = false;
if (patch2 instanceof ModelPatch)
if (percussion == percussion2)
return instrument;
}
}
return null;
}
return creationDate;
}
this.creationDate = creationDate;
}
return product;
}
}
return romName;
}
}
public int getRomVersionMajor() {
return romVersionMajor;
}
this.romVersionMajor = romVersionMajor;
}
public int getRomVersionMinor() {
return romVersionMinor;
}
this.romVersionMinor = romVersionMinor;
}
return targetEngine;
}
this.targetEngine = targetEngine;
}
return tools;
}
}
if (resource instanceof SF2Instrument)
}
if (resource instanceof SF2Instrument)
}
}
}
}