< prev index next >
src/java.desktop/share/classes/com/sun/media/sound/SF2Instrument.java
Print this page
*** 20,29 ****
--- 20,30 ----
*
* 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.
*/
+
package com.sun.media.sound;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
*** 43,71 ****
int bank = 0;
long library = 0;
long genre = 0;
long morphology = 0;
SF2GlobalRegion globalregion = null;
! List<SF2InstrumentRegion> regions
! = new ArrayList<SF2InstrumentRegion>();
public SF2Instrument() {
super(null, null, null, null);
}
public SF2Instrument(SF2Soundbank soundbank) {
super(soundbank, null, null, null);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Patch getPatch() {
if (bank == 128)
return new ModelPatch(0, preset, true);
else
return new ModelPatch(bank << 7, preset, false);
--- 44,73 ----
int bank = 0;
long library = 0;
long genre = 0;
long morphology = 0;
SF2GlobalRegion globalregion = null;
! List<SF2InstrumentRegion> regions = new ArrayList<>();
public SF2Instrument() {
super(null, null, null, null);
}
public SF2Instrument(SF2Soundbank soundbank) {
super(soundbank, null, null, null);
}
+ @Override
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
+ @Override
public Patch getPatch() {
if (bank == 128)
return new ModelPatch(0, preset, true);
else
return new ModelPatch(bank << 7, preset, false);
*** 79,88 ****
--- 81,91 ----
bank = patch.getBank() >> 7;
preset = patch.getProgram();
}
}
+ @Override
public Object getData() {
return null;
}
public long getGenre() {
*** 119,146 ****
public void setGlobalZone(SF2GlobalRegion zone) {
globalregion = zone;
}
public String toString() {
if (bank == 128)
return "Drumkit: " + name + " preset #" + preset;
else
return "Instrument: " + name + " bank #" + bank
+ " preset #" + preset;
}
public ModelPerformer[] getPerformers() {
int performercount = 0;
for (SF2InstrumentRegion presetzone : regions)
performercount += presetzone.getLayer().getRegions().size();
ModelPerformer[] performers = new ModelPerformer[performercount];
int pi = 0;
SF2GlobalRegion presetglobal = globalregion;
for (SF2InstrumentRegion presetzone : regions) {
! Map<Integer, Short> pgenerators = new HashMap<Integer, Short>();
pgenerators.putAll(presetzone.getGenerators());
if (presetglobal != null)
pgenerators.putAll(presetglobal.getGenerators());
SF2Layer layer = presetzone.getLayer();
--- 122,151 ----
public void setGlobalZone(SF2GlobalRegion zone) {
globalregion = zone;
}
+ @Override
public String toString() {
if (bank == 128)
return "Drumkit: " + name + " preset #" + preset;
else
return "Instrument: " + name + " bank #" + bank
+ " preset #" + preset;
}
+ @Override
public ModelPerformer[] getPerformers() {
int performercount = 0;
for (SF2InstrumentRegion presetzone : regions)
performercount += presetzone.getLayer().getRegions().size();
ModelPerformer[] performers = new ModelPerformer[performercount];
int pi = 0;
SF2GlobalRegion presetglobal = globalregion;
for (SF2InstrumentRegion presetzone : regions) {
! Map<Integer, Short> pgenerators = new HashMap<>();
pgenerators.putAll(presetzone.getGenerators());
if (presetglobal != null)
pgenerators.putAll(presetglobal.getGenerators());
SF2Layer layer = presetzone.getLayer();
*** 265,275 ****
ModelByteBufferWavetable osc = new ModelByteBufferWavetable(
buff, sample.getFormat(), pitchcorrection);
if (buff24 != null)
osc.set8BitExtensionBuffer(buff24);
! Map<Integer, Short> generators = new HashMap<Integer, Short>();
if (layerglobal != null)
generators.putAll(layerglobal.getGenerators());
generators.putAll(layerzone.getGenerators());
for (Map.Entry<Integer, Short> gen : pgenerators.entrySet()) {
short val;
--- 270,280 ----
ModelByteBufferWavetable osc = new ModelByteBufferWavetable(
buff, sample.getFormat(), pitchcorrection);
if (buff24 != null)
osc.set8BitExtensionBuffer(buff24);
! Map<Integer, Short> generators = new HashMap<>();
if (layerglobal != null)
generators.putAll(layerglobal.getGenerators());
generators.putAll(layerzone.getGenerators());
for (Map.Entry<Integer, Short> gen : pgenerators.entrySet()) {
short val;
*** 606,615 ****
--- 611,621 ----
performer.getConnectionBlocks().add(
new ModelConnectionBlock(
new ModelSource(ModelSource.SOURCE_NOTEON_VELOCITY,
new ModelTransform() {
+ @Override
public double transform(double value) {
if (value < 0.5)
return 1 - value * 2;
else
return 0;
< prev index next >