示例#1
0
 void SynthesizeChannelsData(DAC::TrackBuilder& track)
 {
   for (uint_t chan = 0; chan != CHANNELS_COUNT; ++chan)
   {
     OrnamentState& ornament = Ornaments[chan];
     ornament.Update();
     DAC::ChannelDataBuilder builder = track.GetChannel(chan);
     builder.SetNoteSlide(ornament.GetOffset());
   }
 }
示例#2
0
 void SynthesizeChannelsData(DAC::TrackBuilder& track)
 {
   for (uint_t chan = 0; chan != CHANNELS_COUNT; ++chan)
   {
     VolumeState& vol = Volumes[chan];
     if (vol.Update())
     {
       DAC::ChannelDataBuilder builder = track.GetChannel(chan);
       builder.SetLevelInPercents(100 * vol.Value / 16);
     }
   }
 }
示例#3
0
 void SynthesizeChannelsData(DAC::TrackBuilder& track)
 {
   for (uint_t chan = 0; chan != CHANNELS_COUNT; ++chan)
   {
     GlissData& gliss(Gliss[chan]);
     if (gliss.Update())
     {
       DAC::ChannelDataBuilder builder = track.GetChannel(chan);
       builder.SetFreqSlideHz(StepToHz(gliss.Sliding));
     }
   }
 }
示例#4
0
 void GetNewLineState(const TrackModelState& state, DAC::TrackBuilder& track)
 {
   if (const auto line = state.LineObject())
   {
     for (uint_t chan = 0; chan != CHANNELS_COUNT; ++chan)
     {
       if (const auto src = line->GetChannel(chan))
       {
         DAC::ChannelDataBuilder builder = track.GetChannel(chan);
         GetNewChannelState(*src, Volumes[chan], builder);
       }
     }
   }
 }