コード例 #1
0
 public Fadeout16(ITimedWave16 target, Double reductionMultiplier = 1.0, Double beginningOffset = 0.0, Boolean increaseAtStart = false)
 {
     WrappedWave     = target;
     Reduction       = reductionMultiplier;
     BeginningOffset = beginningOffset;
     SkipIntro       = !increaseAtStart;
 }
コード例 #2
0
 /// <summary>
 /// Instantiates Extract object.
 /// </summary>
 /// <param name="targetWave">Raw wave.</param>
 /// <param name="playTime">Determines how long wave will play.</param>
 /// <param name="beginningOffset">Determines playback offset.</param>
 public Extract16(ITimedWave16 targetWave, Double playTime, Double beginningOffset = 0.0)
 {
     RawWave         = targetWave;
     PlayTime        = playTime;
     Blank           = false;
     BeginningOffset = beginningOffset;
 }
コード例 #3
0
        Int16 ReceiveVoltage(UInt64 Tick)
        {
            UInt64       RelativeTick = 0;
            ITimedWave16 x            = PickElement(Tick, ref RelativeTick);

            return(x[RelativeTick * DeltaTime]);
        }
コード例 #4
0
        public void PushAnew(Int32 key, String instrument)
        {
            ITimedWave16 toAdd = InstrumentMap[instrument].GetTimedWave(key, KeyMap);
            Extract16    xtr   = new Extract16(toAdd, TactTime);

            Channels[key].Add(xtr);
        }
コード例 #5
0
 public Transition16(ITimedWave16 first, ITimedWave16 second, Double fadeTime, Double firstStart = 0.0, Double secondStart = 0.0)
 {
     FadeTime    = fadeTime;
     FirstWave   = first;
     SecondWave  = second;
     FirstStart  = firstStart;
     SecondStart = secondStart;
 }
コード例 #6
0
 public void Push(ITimedWave16 i, Double time, UInt16 channelNumber)
 {
     if (Sealed)
     {
         throw new FieldAccessException("Attempt to push sequence into sealed sequencer.");
     }
     for (Double x = 0; x < time; x += DeltaTime)
     {
         Track[channelNumber].Add(i[x]);
     }
     Edited = true;
 }
コード例 #7
0
        public void Push(ITimedWave16 i, Double time)
        {
            if (Sealed)
            {
                throw new FieldAccessException("Attempt to push sequence into sealed sequencer.");
            }
            if (ChannelAmount != 1)
            {
                throw new ArgumentException("Used sequencer instance does not support single-channel inputs.");
            }

            for (Double x = 0; x < time; x += DeltaTime)
            {
                Track[0].Add(i[x]);
            }
            Edited = true;
        }
コード例 #8
0
        public void Push(Int32 key, String instrument)
        {
            Double initDelay;

            if (Channels[key].Count == 0)
            {
                initDelay = 0.0;
            }
            else if (Channels[key][Channels[key].Count - 1].Blank)
            {
                initDelay = 0.0;
            }
            else
            {
                initDelay = Channels[key][Channels[key].Count - 1].BeginningOffset + TactTime;
            }

            ITimedWave16 toAdd = InstrumentMap[instrument].GetTimedWave(key, KeyMap);
            Extract16    xtr   = new Extract16(toAdd, TactTime, initDelay);

            Channels[key].Add(xtr);
        }
コード例 #9
0
 public VerticalCompressor16(ITimedWave16 subWave, Double compressionRate)
 {
     SourceWave      = subWave;
     CompressionRate = compressionRate;
 }
コード例 #10
0
 public Polyphony16(ITimedWave16 BaseWave, UInt16 MaxSampleSize = 64)
 {
     WaveSet.Add(BaseWave);
     BitsPerSample = (UInt16)(MaxSampleSize - (MaxSampleSize % 8));
     dtime         = BaseWave.DeltaTime;
 }
コード例 #11
0
 public AmplifiedWave16(ITimedWave16 defaultWave, Double amplification)
 {
     DefaultWave        = defaultWave;
     AmplificationLevel = amplification;
 }
コード例 #12
0
 public WaveDowncast(ITimedWave16 source)
 {
     EmbeddedWave = source;
 }