/* append a new oscillator */
 public static void AppendOscillatorToList(
     OscillatorListRec OscList,
     OscillatorRec NewOscillator)
 {
     Array.Resize(ref OscList.OscillatorArray, OscList.OscillatorArray.Length + 1);
     OscList.OscillatorArray[OscList.OscillatorArray.Length - 1] = NewOscillator;
     OscList.NumOscillators++;
 }
        /* create a new array of oscillators */
        public static OscillatorListRec NewOscillatorListSpecifier()
        {
            OscillatorListRec OscList = new OscillatorListRec();

            OscList.OscillatorArray = new OscillatorRec[0];
            OscList.NumOscillators  = 0;

            return(OscList);
        }
        /* check list of oscillators */
        public static SynthErrorCodes CheckOscillatorListForUnreferencedSamples(
            OscillatorListRec OscillatorList,
            CheckUnrefParamRec Param)
        {
            int Limit = GetOscillatorListLength(OscillatorList);

            for (int Scan = 0; Scan < Limit; Scan += 1)
            {
                SynthErrorCodes Error = CheckOscillatorForUnreferencedSamples(
                    GetOscillatorFromList(OscillatorList, Scan),
                    Param);
                if (Error != SynthErrorCodes.eSynthDone)
                {
                    return(Error);
                }
            }

            return(SynthErrorCodes.eSynthDone);
        }
 /* find out how many oscillators there are in the list */
 public static int GetOscillatorListLength(OscillatorListRec OscList)
 {
     return(OscList.NumOscillators);
 }
 /* get one of the oscillators from the list */
 public static OscillatorRec GetOscillatorFromList(
     OscillatorListRec OscList,
     int Index)
 {
     return(OscList.OscillatorArray[Index]);
 }