package micromod; /** A class representing a ProTracker/NoiseTracker/FTK module, */ public class Module { protected String name, type; protected boolean allowsPanning, pal; protected Sequence sequence; protected Instrument[] instruments; public Module( String name, String type, boolean allowsPanning, boolean pal, Sequence sequence, Instrument[] instruments ) { this.name = name; this.type = type; this.allowsPanning = allowsPanning; this.pal = pal; this.sequence = sequence; this.instruments = instruments; } public String getName() { return name; } public String getType() { return type; } public Sequence getSequence() { return sequence; } public Instrument getInstrument( int num ) { if( num<0 || num>31 ) return null; return instruments[num]; } public int getDefaultGain() { // Give all Protracker-type mods a gain of 2.0 // No clipping possible with 4 channel mods, since they can't // pan all their channels to one side. Extended mods could cause // clipping, but it's easy to give the user the ability to adjust // things. return 65536 << 1; } public boolean allowsPanning() { return allowsPanning; } public boolean isPAL() { return pal; } }