コード例 #1
0
ファイル: Voice.cs プロジェクト: eriser/alphaSynth
 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;
 }
コード例 #2
0
ファイル: MultiPatch.cs プロジェクト: eriser/alphaSynth
 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;
 }
コード例 #3
0
ファイル: PatchBank.cs プロジェクト: zwdesigns/alphaSynth
        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;
            }
        }
コード例 #4
0
ファイル: PatchBank.cs プロジェクト: eriser/alphaSynth
        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;
            }
        }
コード例 #5
0
 public PatchAsset(string name, Patch.Patch patch)
 {
     Name  = name;
     Patch = patch;
 }
コード例 #6
0
ファイル: PatchAsset.cs プロジェクト: eriser/alphaSynth
 public PatchAsset(string name, Patch.Patch patch)
 {
     Name = name;
     Patch = patch;
 }
コード例 #7
0
ファイル: MultiPatch.cs プロジェクト: eriser/alphaSynth
 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;
 }