public void LoadSf2(Sf2.Sf2Region[] regions, AssetManager assets)
 {
     intervalList = new PatchInterval[regions.Length];
     for (int x = 0; x < intervalList.Length; x++)
     {
         byte loKey;
         byte hiKey;
         byte loVel;
         byte hiVel;
         if (BitConverter.IsLittleEndian)
         {
             loKey = (byte)(regions[x].Generators[(int)GeneratorEnum.KeyRange] & 0xFF);
             hiKey = (byte)((regions[x].Generators[(int)GeneratorEnum.KeyRange] >> 8) & 0xFF);
             loVel = (byte)(regions[x].Generators[(int)GeneratorEnum.VelocityRange] & 0xFF);
             hiVel = (byte)((regions[x].Generators[(int)GeneratorEnum.VelocityRange] >> 8) & 0xFF);
         }
         else
         {
             hiKey = (byte)(regions[x].Generators[(int)GeneratorEnum.KeyRange] & 0xFF);
             loKey = (byte)((regions[x].Generators[(int)GeneratorEnum.KeyRange] >> 8) & 0xFF);
             hiVel = (byte)(regions[x].Generators[(int)GeneratorEnum.VelocityRange] & 0xFF);
             loVel = (byte)((regions[x].Generators[(int)GeneratorEnum.VelocityRange] >> 8) & 0xFF);
         }
         Sf2Patch sf2 = new Sf2Patch(patchName + "_" + x);
         sf2.Load(regions[x], assets);
         intervalList[x] = new PatchInterval(sf2, 0, 15, loKey, hiKey, loVel, hiVel);
     }
     DetermineIntervalType();
 }
 //public void LoadSfz(SfzRegion[] regions, AssetManager assets, string directory)
 //{
 //    //Load sub instruments first
 //    intervalList = new PatchInterval[regions.Length];
 //    for (int x = 0; x < intervalList.Length; x++)
 //    {
 //        SfzRegion r = regions[x];
 //        DescriptorList descList = new DescriptorList(r);
 //        assets.LoadSampleAsset(descList.GenDescriptions[0].AssetName, patchName, directory);
 //        SfzPatch sfzPatch = new SfzPatch(patchName + "_" + x);
 //        sfzPatch.Load(descList, assets);
 //        intervalList[x] = new PatchInterval(sfzPatch, r.loChan, r.hiChan, r.loKey, r.hiKey, r.loVel, r.hiVel);
 //    }
 //    DetermineIntervalType();
 //}
 public void LoadSf2(Sf2.Sf2Region[] regions, AssetManager assets)
 {
     intervalList = new PatchInterval[regions.Length];
     for (int x = 0; x < intervalList.Length; x++)
     {
         byte loKey;
         byte hiKey;
         byte loVel;
         byte hiVel;
         if(BitConverter.IsLittleEndian)
         {
             loKey = (byte)(regions[x].Generators[(int)GeneratorEnum.KeyRange] & 0xFF);
             hiKey = (byte)((regions[x].Generators[(int)GeneratorEnum.KeyRange] >> 8) & 0xFF);
             loVel = (byte)(regions[x].Generators[(int)GeneratorEnum.VelocityRange] & 0xFF);
             hiVel = (byte)((regions[x].Generators[(int)GeneratorEnum.VelocityRange] >> 8) & 0xFF);
         }
         else
         {
             hiKey = (byte)(regions[x].Generators[(int)GeneratorEnum.KeyRange] & 0xFF);
             loKey = (byte)((regions[x].Generators[(int)GeneratorEnum.KeyRange] >> 8) & 0xFF);
             hiVel = (byte)(regions[x].Generators[(int)GeneratorEnum.VelocityRange] & 0xFF);
             loVel = (byte)((regions[x].Generators[(int)GeneratorEnum.VelocityRange] >> 8) & 0xFF);
         }
         Sf2Patch sf2 = new Sf2Patch(patchName + "_" + x);
         sf2.Load(regions[x], assets);
         intervalList[x] = new PatchInterval(sf2, 0, 15, loKey, hiKey, loVel, hiVel);
     }
     DetermineIntervalType();
 }