/// <summary> /// Воспроизведение ноты в треке /// </summary> /// <param name="tr">Ссылка на проект</param> /// <param name="pn">Номер паттерна</param> /// <param name="nn">Номер ноты</param> public static void PlayTrack(Project tr, int pn, int nn) { for (int i = 0; i < MaxChannels; i++) player.sinthesizer[i].Play(tr.Patterns[tr.Track[pn]].Note[i, nn]); }
/// <summary> /// Проигрывание трека /// </summary> /// <param name="track">Ссылка на текущий проект</param> /// <param name="mode">Режим проигрывания</param> /// /// <param name="pattern">Номер первого паттерна</param> /// /// <param name="num">Номер первой ноты</param> public void Play(Project track, Modes mode, int pattern, int num) { Track = track; Mode = mode; PatternNum = pattern; NoteNum = num; NoteTimeLen = Audio.SampleRate * 60 / Track.Tempo / Track.TaktLen; //Расчитываем длину играния ноты NoteTime = 0; }
/// <summary> /// Инициализация каналов синтезатора /// </summary> public static void InitAudio(Project tr) { ChanCount = tr.ChannelCount; for (int i = 0; i < MaxChannels; i++) player.sinthesizer[i] = new Sinthesizer(tr.Channels[i]); waveOut.Play(); }