/// <summary> /// Создание контрола - таблицы орнамента /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="chan"></param> public TControl(int x, int y, Channel ch) { Type = Types.Table; X = x; Y = y; Kx = 0; Ky = 0; Shift = 0; Ch = ch; }
int waveLen; //Длина волны #endregion Fields #region Constructors /// <summary> /// Инициализация синтезатора /// </summary> /// <param name="ch">Ссылка на канал, в котором орнамент лежит</param> public Sinthesizer(Channel ch) { Mute = false; Played = false; channel = ch; }
//Загрузка проекта public bool Open() { try { System.IO.BinaryReader file = new System.IO.BinaryReader(new System.IO.FileStream(FileName, System.IO.FileMode.Open)); if (file.ReadString() !="RTR") { System.Windows.Forms.MessageBox.Show("Файл " + FileName +" не поддерживается"); file.Close(); return false; } int Version = file.ReadInt32(); if (Version == 0) { //Информация о теке SongName = file.ReadString(); AlbumName = file.ReadString(); AutorName = file.ReadString(); Tempo = file.ReadInt32(); PatternLen = file.ReadInt32(); TaktLen = file.ReadInt32(); //Информация о дорожках ChannelCount = file.ReadInt32(); for (int i = 0; i < ChannelCount; i++) { Channels[i] = new Channel(); Channels[i].Volume = file.ReadInt32(); Channels[i].Atack = file.ReadInt32(); Channels[i].Hold = file.ReadInt32(); Channels[i].FadeOut = file.ReadInt32(); Channels[i].Len = file.ReadInt32(); Channels[i].Repeat = file.ReadInt32(); for (int j = 0; j < Channels[i].Len; j++) { Channels[i].ornament[j].Wave = file.ReadInt32(); Channels[i].ornament[j].Volume = file.ReadInt32(); Channels[i].ornament[j].Note = file.ReadInt32(); Channels[i].ornament[j].Frequency = file.ReadInt32(); } } //Трек Track = new int[65536]; TrackLen = file.ReadInt32(); for (int i = 0; i < TrackLen; i++) Track[i] = file.ReadInt32(); //Паттерны Patterns.Clear(); int patcount = file.ReadInt32(); for (int p = 0; p < patcount; p++) { //Patterns.Add(new Pattern(file.ReadByte())); Pattern pat = new Pattern(file.ReadInt32()); for (int i = 0; i < pat.Len; i++) for (int j = 0; j < ChannelCount; j++) pat.Note[j, i] = file.ReadByte(); Patterns.Add(pat); } file.Close(); Audio.InitAudio(this); return true; } System.Windows.Forms.MessageBox.Show("Файл " + FileName + " имеет более новый формат и в это версии программы не поддерживается."); file.Close(); return false; //System.Windows.Forms.MessageBox.Show("Проект открыт из файла " + FileName); } catch { Editor.Error("Произошла ошибка при открытии файла."); return false; } }