Здравствуйте. Меня интересует вопрос генерации звука таблично-волновым синтезом посредством Visual Basic 6 . Вообщем я пишу приложение - музыкальный редактор, что-то типа трекерного (FastTracker и т.п.) и у меня происходит синтез звука из wave файлов.
Вот алгоритм:
=========ФОРМА ОТКРЫТЬ СЭМПЛ===========
1. Открываю wav файл
2. Перекодирываю его в 8 бит 16 кгц.
3. Сохраняю данные data чанка в массив с семплами
4. Добавляю название очередного сэмпла в листбокс
=========ФОРМА ДОБАВИТЬ ИНСТРУМЕНТ======
(На форме расположены коммандные кнопки как на клавиши на пианино, два скролбара Аттака, затухание и таймер)
1. Из листбокса выбираю любой семпл
2. С помощью регулятор аттака задаю звук аттаки
3. При нажатии на клавиши посредством DirectSound воспроизводится семпл с измененной частотой дискретизации
4. По отсчетам таймера уменьшается громкость буффера
---------------------------------------------------------------------------
Вот в чем собственно мой вопрос. Как мне сделать чтобы сначала проигрывалась аттака семпла(например первые 500 байт) а затем зацикленно проигрывалась остальная часть семпла.
Пробывал так создавал два буффера один для аттаки другой для затухания(зацикленной части) с помощью метода WriteBuffer писал в буффер аттаки аттаку а в буфер затухания затухание, но проблемка я немогу проиграть их последовательно, если их проигрывать то они одновременно проигрываются, а мне надо чтобы сначала аттака один раз проигрывалась, а затем тутже циклично затухание. Слышал про метот SetCurrentPos, но может пробывать создавать один буффер, а потом просто проигрывать его не сначала? Помогите пожалуйста разобратся с данным вопросом, буду рад любой информации по генерации звука в RealTime. (сколько ни искал ни где даже под бейсик и не встречал)