19.01.2019, 22:28 | #1 (permalink) |
Новичок
Регистрация: 19.01.2019
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Мелодия в Pascal.ABC.Net
program zvyk; begin System.Console.Beep(520,125); {до} System.Console.Beep(880,125); {ля} System.Console.Beep(880,125); {ля} System.Console.Beep(784,125); {соль} System.Console.Beep(880,125); {ля} System.Console.Beep(698,125); {фа} System.Console.Beep(520,125); {до} System.Console.Beep(520,125); {до} System.Console.Beep(520,125); {до} System.Console.Beep(880,125); {ля} System.Console.Beep(880,125); {ля} System.Console.Beep(987,125); {си} System.Console.Beep(784,125); {соль} System.Console.Beep(520,375); {до с точкой} system.Console.Beep(520,125); {до} system.Console.Beep(587,125); {рэ} system.Console.Beep(587,125); {рэ} System.Console.Beep(987,125); {си} System.Console.Beep(987,125); {си} System.Console.Beep(880,125); {ля} System.Console.Beep(784,125); {соль} System.Console.Beep(698,125); {фа} System.Console.Beep(698,125); {фа} System.Console.Beep(880,125); {ля} System.Console.Beep(880,125); {ля} System.Console.Beep(784,125); {соль} System.Console.Beep(880,125); {ля} System.Console.Beep(698,375); {фа с точкой} end. |
19.01.2019, 22:28 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если есть свободная минутка - займитесь прочтением похожих топиков Ringtone Rotator - случайная мелодия на звонок Как подключить усилитель от Radiotehnika Мелодия 104? Перестала работать мелодия на входящий вызов... Где отключается мелодия логотипа при включении? Cisco и мелодия |
20.01.2019, 10:32 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
К сожалению, с АВС и его производными дела никогда не имел и не собираюсь ввиду крайне негативного отношения к этим поделиям. Но так, из общих соображений, скорее всего — глюк транслятора: обращение к очередной процедуре происходит раньше завершения предыдущей.
Попробуйте вставить между каждой парой звуковых процедур небольшую задержку. Не знаю, есть ли в ABC.NET аналог паскалевской функции Delay(T), но, в крайнем случае, можно воспользоваться, например, циклическим счетом логарифма (один из самых медленных операторов), подобрав нужное число циклов. Типа for i:=1 to 500 do x:=ln(5); |
20.01.2019, 11:34 | #3 (permalink) | |
Новичок
Регистрация: 19.01.2019
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
20.01.2019, 12:19 | #4 (permalink) |
Новичок
Регистрация: 19.01.2019
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Попробовал циклический счет логарифма. Глюк сохраняется.
program zvyk; var x:real; k,i:longint; begin k:=2147483648; System.Console.Beep(520,125); {до, процедура для запуска звука} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(784,125); {соль} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(698,125); {фа} for i:=1 to k do x:=ln(5); System.Console.Beep(520,125); {до} for i:=1 to k do x:=ln(5); System.Console.Beep(520,125); {до} for i:=1 to k do x:=ln(5); System.Console.Beep(520,125); {до} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(987,125); {си} for i:=1 to k do x:=ln(5); System.Console.Beep(784,125); {соль} for i:=1 to k do x:=ln(5); System.Console.Beep(520,375); {до с точкой, т.е. четвертная плюс пол четвертной} for i:=1 to k do x:=ln(5); system.Console.Beep(520,125); {до} for i:=1 to k do x:=ln(5); system.Console.Beep(587,125); {рэ} for i:=1 to k do x:=ln(5); system.Console.Beep(587,125); {рэ} for i:=1 to k do x:=ln(5); System.Console.Beep(987,125); {си} for i:=1 to k do x:=ln(5); System.Console.Beep(987,125); {си} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(784,125); {соль} for i:=1 to k do x:=ln(5); System.Console.Beep(698,125); {фа} for i:=1 to k do x:=ln(5); System.Console.Beep(698,125); {фа} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(784,125); {соль} for i:=1 to k do x:=ln(5); System.Console.Beep(880,125); {ля} for i:=1 to k do x:=ln(5); System.Console.Beep(698,375); {фа с точкой} end. |
20.01.2019, 12:22 | #5 (permalink) |
Новичок
Регистрация: 19.01.2019
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В System.Console.Beep(880,125); длительность звучания минимальная, которая не дает сбоя это 400 вместо 125, подобрал опытным путем.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|