public void Configure(int channel, int note, int velocity, Patch patch, SynthParameters synthParams) { VoiceParams.Reset(); VoiceParams.Channel = channel; VoiceParams.Note = note; VoiceParams.Velocity = velocity; VoiceParams.SynthParams = synthParams; Patch = patch; }
public int FindPatches(int channel, int key, int velocity, Patch[] layers) { int count = 0; switch (_intervalType) { case IntervalType.ChannelKeyVelocity: for (int x = 0; x < _intervalList.Length; x++) { if (_intervalList[x].CheckAllIntervals(channel, key, velocity)) { layers[count++] = _intervalList[x].Patch; if (count == layers.Length) break; } } break; case IntervalType.ChannelKey: for (int x = 0; x < _intervalList.Length; x++) { if (_intervalList[x].CheckChannelAndKey(channel, key)) { layers[count++] = _intervalList[x].Patch; if (count == layers.Length) break; } } break; case IntervalType.KeyVelocity: for (int x = 0; x < _intervalList.Length; x++) { if (_intervalList[x].CheckKeyAndVelocity(key, velocity)) { layers[count++] = _intervalList[x].Patch; if (count == layers.Length) break; } } break; case IntervalType.Key: for (int x = 0; x < _intervalList.Length; x++) { if (_intervalList[x].CheckKey(key)) { layers[count++] = _intervalList[x].Patch; if (count == layers.Length) break; } } break; } return count; }
private void AssignPatchToBank(Patch.Patch patch, int bankNumber, int startRange, int endRange) { if (bankNumber < 0) { return; } if (startRange > endRange) { var range = startRange; startRange = endRange; endRange = range; } if (startRange < 0 || startRange >= BankSize) { throw new Exception("startRange out of range"); } if (endRange < 0 || endRange >= BankSize) { throw new Exception("endRange out of range"); } Patch.Patch[] patches; if (_bank.ContainsKey(bankNumber)) { patches = _bank[bankNumber]; } else { patches = new Patch.Patch[BankSize]; _bank[bankNumber] = patches; } for (int x = startRange; x <= endRange; x++) { patches[x] = patch; } }
private void AssignPatchToBank(Patch.Patch patch, int bankNumber, int startRange, int endRange) { if (bankNumber < 0) return; if (startRange > endRange) { var range = startRange; startRange = endRange; endRange = range; } if (startRange < 0 || startRange >= BankSize) throw new Exception("startRange out of range"); if (endRange < 0 || endRange >= BankSize) throw new Exception("endRange out of range"); Patch.Patch[] patches; if (_bank.ContainsKey(bankNumber)) { patches = _bank[bankNumber]; } else { patches = new Patch.Patch[BankSize]; _bank[bankNumber] = patches; } for (int x = startRange; x <= endRange; x++) { patches[x] = patch; } }
public PatchAsset(string name, Patch.Patch patch) { Name = name; Patch = patch; }
public PatchInterval(Patch patch, byte startChannel, byte endChannel, byte startKey, byte endKey, byte startVelocity, byte endVelocity) { Patch = patch; StartChannel = startChannel; EndChannel = endChannel; StartKey = startKey; EndKey = endKey; StartVelocity = startVelocity; EndVelocity = endVelocity; }