![]() |
|
|
|
|
#1
|
|||
|
|||
|
Здравствуйте, помогите реализовать одну функцию. Нужно сделать Темп в программе, вот например: ввожу в Edit1 число(Темп музыки), и есть таймер, и вот в обработчике таймера находится функция воспроизведения. И вот нужно сделать так чтобы число в Edit1(Темп) перевелся бы на время таймера как Темп. Вот пример : http://ru.wikipedia.org/wiki/BPM_(%D...8B%D0%BA%D0%B0)
Справа есть пример. Заранее спасибо ![]() |
|
#2
|
||||
|
||||
|
Как воспроизводится звук? Напрямую в буферы вывод дискретного сигнала?
|
|
#3
|
|||
|
|||
|
ну вот просто через bass.dll, это не главное, в обработчике таймера может и другая функция стоять, главное вот из числа введенного в Edit1 из него сделать темп и это число(темп) вставить в интервал таймера, и функция будет срабатывать под темп.
|
|
#4
|
||||
|
||||
|
Вика так Вика
Цитата:
Код:
procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Interval:= 60000/StrToInt(Edit1.Text); PlayUdarnik; end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
BlackMonsta (13.04.2014)
| ||
|
#5
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
BlackMonsta (13.04.2014)
| ||
|
#6
|
|||
|
|||
|
Тут ошибочка вышла, код не верный, если 60000 разделить на 140 то это будет не темп 140... там получается число 428,...
|
|
#7
|
||||
|
||||
|
428 - это количество ms между следующей и предыдущей четвертью.
Последний раз редактировалось Uniq!, 13.04.2014 в 21:29. |
| Этот пользователь сказал Спасибо Uniq! за это полезное сообщение: | ||
BlackMonsta (14.04.2014)
| ||
|
#8
|
||||
|
||||
|
Цитата:
![]() |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
BlackMonsta (14.04.2014)
| ||