Управляем звуком в Windows. Volume2 — стильный регулятор громкости

Для создания звуковых эффектов используются процедуры модуля CRT:

Sound(X)- звуковой сигнал частотой X герц;

Delay (N)- задержка на N миллисекунд;

NoSound- отменить звук.

Любой звуковой эффект используется конструкцию аналогичную следующей:

Sound(500); Delay(2000); NoSound; В данном примере звуковой сигнал частотой 500 Гц будет звучать в течение 2 с (2000 мс). Для генерации мелодий этого используется набор частот или элементы массива, соответствующие нотам различных октав:

PROGRAM Demo_Sound ;{ заголовок программы}

USES CRT ;{ подключение модуля Crt}

CONST M: ARRAY OF INTEGER= {M-массив частот нот}

(262,294,330,349,392,440,494,523);{значение частот}

VAR I: INTEGER; ChCHAR;{объявление служебных переменных}

BEGIN {начало раздела операторов}

WHILE True DO BEGIN {организация цикла WHILE}

Ch: =READKEY; {ожидание нажатия клавиши}

CASE Ch OF {анализ результата нажатия клавиши}

#49:I: =1 ;{ действие, если нажата клавиша 1}

#50:I: =2 ;{ действие, если нажата клавиша 2}…

#55:I: =7; {действие, если нажата клавиша 7}

#48:HALT ;{ выход при нажатии клавиши 0}

END ;{ завершение оператора CASE}

SOUND (M [I]) ;{ звучание с частотой M [I]}

DELAY (100) ;{ установка длительности звучания}

NOSOUND ;{ отмена звучания}

END ;{ конец оператора WHILE}

END. {конец программы}

Конец работы -

Эта тема принадлежит разделу:

Двоичное кодирование информации. Физические, математические и информационные модели

Контрольные вопросы Дайте определение логики Какие высказывания называются ложными а какие истинными Какие логические связки.. Лекция Постановка цели.. Контрольные вопросы..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Лекция 1.
Тема: «Введение». 1. Информационная картина мира. Мы живем в мире, который существует в III основных формах: вещество, энергия, информация. Почему именно так, да

Лекция 2.
Тема: «Алгебра логики». Логика (от греческого слова «logos» - слово, мысль, речь, разум) – совокупность наук о законах и формах мышления, о наиболее общих

Лекция 3.
Тема: «Преобразование формул алгебры логики». Постановка цели. 2) Устная работа. Какие из следующих предложений не являются объектами алг

Лекция 4.
Тема: «Система счисления». I. Система счисления – это совокупность приемов и правил для записи чисел цифровыми знаками. Существуют непозиционные и позиционные сис

Лекция 5.
Тема: «Перевод чисел из одной системы счисления в другую». 1) Перевод целых чисел. Чтобы перевести целое десятичное число, в двоичную (8-ю, 16-ю) систему с

Операция над двоичным числами
1. Сложение. При выполнении операции «+» можно пользоваться таблицей «+» двоичных цифр. Двоичное число 10 показывает, что при сложении в каком-нибудь разряде двух двоичных

Двоичная система счисления
Двоичная система используется в ЭВМ всех размеров, т.к. именно в двоичной форме внутри машины запоминается, перемещается из одного устройства в другое и перерабатывается вся информация. Обусловлено

Моделирование как метод познания
В своей деятельности – научной, практической, художественной – человек очень часто использует модели, т.е. создает образ того объекта (процесса или явления), с которым ему приходится иметь дело. К

Один и тот же объект может иметь множество моделей, а разные объекты могут описываться одной моделью
Все модели можно разбить на II больших класса: - модели предметные (материальные); - модели знаковые (информационные). Предметные модели воспроизводят геометрические, физ

Формы представления информационных моделей
1) Язык как средство информационного моделирования. Язык является знаковой системой, которая позволяет создавать информационные модели. Естественные языки используются

Лекция 8.
Тема: «Этапы решения задач с помощью ЭВМ». Подготовка любой задачи к решению на ЭВМ состоит из нескольких этапов. Все этапы взаимосвязаны. I этап – четкая формули

Лекция 9.
Тема: «Алгоритм и его свойства. Способы записи алгоритмов». I. Алгоритм и его свойства. Алгоритмом называется определенная, формальная, общеп

Лекция 10.
Тема: «Линейный алгоритм. Составление линейных алгоритмов» Если команды алгоритма выполняются последовательно, одна за другой, то такой алгоритм называется лине

Лекция 11.
Тема: «Разветвляющийся алгоритм». В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгорит

Составление алгоритмов циклической и сложной структуры
1). Составить программу вычисления значения функции: а=1, b=2,2

Представление информации в компьютере
Компьютер может обрабатывать данные, которые представлены в специальном виде – только с помощью нулей и единиц. Каждый 0 или 1 называют битом. Один бит – это минимальная е

Внешняя память
В отличие от основной памяти внешняя память предназначена для долговременного хранения, и только хранения информации. Способность этой памяти хранить информацию не зависит от наличи

Краткая характеристика языка Паскаль
Язык программирования Паскаль разработан швейцарским профессором Высшей федеральной технической школы в Цюрихе, Н.Виртом в 1970 году. Затем в него были внесены несколько изменений и в 1979 году язы

Интегрированная среда программирования Turbo Pascal
Интегрированная среда программирования - IDE (Integrated Development Environment) включает в себя совокупность программ: экранный редактор, компилятор, компоновщик, отладчик, систему контекстной по

Клавиши оперативного вмешательства
Они представляют собой клавиши, которые устанавливаются для выполнения определенной функции, причем, находясь в любой точке среды Паскаль, нажатие клавиши Alt вместе с первой буквой любой команды и

File Edit Search Run Compile Debug Tools Options Window Help
File - работа с файлами; Debug - отладка; Edit - редактирование; Tools

Экранный редактор
Встроенный экранный редактор ТР предназначен для создания исходных текстов программ и их коррекции. В ТР 6.0 и 7.0 максимальный размер создаваемого файла – 1 Мбайт. Практически не ограничен размер

Основные команды перемещения
Команды управления перемещением курсора Ctrl-S, Ctrl-D, Ctrl-У и Ctrl-X позволяют свободно перемещаться по экрану без перехода на первый столбец в пустых стоках. Этот способ перемещения курсора осо

Символы языка
Паскаль использует следующие символы: 1. Буквы: 26 прописных латинских букв. 2. Цифры: 0,1,2,3,4,5,6,7,8,9. 3. Специальные символы: = + - * / <> () {} . , ; :

Лекция 16.
Тема: «Типы данных в языке программирования Turbo Pascal. Структура программы Turbo Pascal.» Типы данных в Паскале можно разделить на скалярны

Структура программы на языке Турбо Паскаль
Программа, написанная на языке Турбо Паскаль, имеет следующую структуру: · заголовок программы; · раздел описаний; · тело программы. Заголовок программы с

Лекция 17.
Тема: «Линейные программы» Строки программы, выполняемые одна за другой, называются линейными. Операторы языка. Операторы програм

Цикл FOR
Цикл FOR используется в трех случаях, когда число повторений может быть заранее известно. Существует две формы цикла: FOR i: =A TO B DO<тело цикла>

Понятие подпрограммы
Подпрограмма – это повторяющая группа операторов, оформленная в виде самостоятельной программой единицы. Она записывается однократно, а в соответствующих местах программы обеспечивается лишь обраще

Процедуры и функции
Цикл – это повторение группы операторов на данном этапе обработки информации. Если же какую-то группу одних и тех же команд требуется посторенние в разных местах программы, меняя лишь параметры, то

Операция над массивами
Инициализация. Инициализация-это присваивание компонентам массива начальных значений. Выполняется в цикле: FOR I: =1 TO 10 DO MASI [I]:=0 ;{ все элементы массива MASI равны 0}

Способы объявления двумерного массива
Способ 1. Если в программе используется один массива в разделе описания переменных: Var a: Array Of<тип элементов>; Спос

Сортировка массива
Сортировка – один из наиболее распространенных процессов современной обработки данных. Сортировкой называется распределение элементов множества по группам в соответствии с о

Линейная сортировка (сортировка отбором)
Идея линейной сортировки по не возрастанию заключается в том, чтобы, последовательно просматривая весь массив, отыскать наибольшее число и поместить его на первую позицию, обменяв его с элементом,

Сортировка методом пузырька
Один из самых популярных методов сортировки – ″пузырьковый″ метод основан на том, что в процессе исполнения алгоритма более ″легкие″ элементы массива

Бинарный поиск в упорядоченных массивах
Едва ли не самой внушительной демонстрацией эффективности применения компьютеров являются задачи, в которых осуществляется поиск информации в некотором списке. Ранее мы использовали метод линейного

Графический экран
Отличие графического экрана от текстового: единица управления в графическом режиме - точка (пиксел), в текстовом – символ. Прежде чем работать с графическими командами, надо запустить графическую с

Текстовый экран
Текстовый экран позволяет разместить 25х80 символов. Минимальная единица управления - символ. Для управления цветом и фоном используются процедуры, находящиеся в модуле CRT: Cl

Лекция 24.
Тема: «Операционные системы семейства Microsoft Windows». Windows- это название семейства операционных систем для IBM -совместимых персон

Основы взаимодействия пользователя с системой
После запуска системы Windows экран монитора приобретает специфическое оформление, называемое термином Рабочий стол.На нем размещаются значки-пиктограммыосновных п

Управление окнами
В основе системы Windowsтак же, как и других аналогичных систем, лежит понятие окна. Каждое окно имеет рамку и заголовок.Рамка использует

Навигация по дискам и каталогам с помощью пиктограммы
«Мой компьютер» пиктограмма «Мой компьютер» дает доступ к файловой системе ПК и позволяет запустить любое приложение. Для этого необходимо дважды щелкнуть значок «

Лекция 25.
Тема: «Запуск операционной системы. Работа с окнами, папкам и файлами». Для создания новой папки в приложении «Мой компьютер» нужно перейти в папку, где необходимо создать

Лекция 26.
Тема: «Основные возможности текстового редактора Word». В последнее время все большую популярность среди широкого круга пользователей завоевывает текстовый редактор Word д

Для отмены удаления
- на панели инструментов пиктографического меню нажать на кнопку с изображением изогнутой влево стрелки; - или использовать команду меню ПРАВКА – ОТМЕНИТЬ ВВОД. Добавление

Лекция 28.
Тема: «Работа с электронными таблицами в программе Excel». Для представления данных в удобном виде используют таблицы. Компьютер расширяет возможности использования таблиц

Ввод текста и чисел
Ввод текста осуществляется непосредственно в текущую ячейку или в строку формул, располагающуюся в верхней части окна программы непосредственно под панелями инструментов. Содержимое строки ф

Форматирование содержимого ячеек
Текстовые данные по умолчанию выравниваются по левому краю ячейки, а числа – по правому. Способ выполнения вычисления не зависит от того, каким способом данные отформатированы, но для человека внеш

Лекция 29.
Тема: «Диаграмма-графическое представление и редактирование данных». Большую помощь при обработке и анализе информации оказывает ее графическое представление. Это неудивит

Полное описание параметров, а также инструкция по настройке встроенных звуковых карт Realtek. Настройка воспроизведения, записи, 3D звука. Windows Vista/7/8

2012-02-17T18:19

2012-02-17T18:19

Audiophile"s Software

Copyright 2017, Taras Kovrijenko

Полное или частичное копирование текста допускается только с письменного разрешения автора .

Пролог

На этот раз я затрону тему, актуальную, так сказать, для энтузиастов начинающих - т. е., для тех, кто ещё не разжился на дискретную звуковую карту и хочет выжать максимум из интегрированной.

1. Ликбез

Для начала - краткий ликбез. Кто не знает, или не до конца понимает, что такое аппаратный аудиокодек , внимательно ознакомьтесь с соответствующими страницами Википедии:

Прочитали? Отлично! А теперь было бы ещё очень неплохо, если бы вы ознакомились с двумя моими статьями:

Ну вот, теперь можем и начать.

2. Что мы имеем

Итак, в моём распоряжении ОС Windows 7 SP1 Ultimate x64 (описанная в статье настройка подходит для всех ОС, начиная с Vista), встроенный в материнскую плату (ASUS P7H55-V) кодек ALC887 (имеется даташит), подключенные в задние разъемы внешний усилитель и микрофон (зелёное и розовое гнезда соответственно). Обратите внимание, что настраивать мы будем карту для вывода стерео звука по аналоговому интерфейсу.

3. Установка ПО

Прежде всего надо установить драйвера. Конечно, скорее всего ОС Windows уже сама нашла и установила драйвера для звукового устройства, однако для получения доступа ко всему функционалу, а также для душевного спокойствия, установим пакет драйверов непосредственно от Realtek, последнюю версию которого вы можете скачать на соответствующей странице моего сайта. К слову, указанные здесь настройки проверялись на версии драйверов R2.67.

Скачиваем драйвера, производим несложную процедуру установки (запустив HD_Audio/Setup.exe ), перезагружаем компьютер.

После загрузки ОС в системном трее должен появиться коричневый значок динамика:

4. Настройка драйверов

Прежде всего заходим в Панель Управления Windows->Оборудование и звук->Звук и, убедившись, что наши наушники или динамики подключены в зеленое гнездо звуковой карты, отключаем все ненужные устройства, а наше подключённое устройство делаем устройством по умолчанию:

Заодно проделаем тоже самое с устройствами записи:

Теперь дважды кликаем по значку в трее. Если значка нет, ищем его в скрытых значках, если и там нет - заходим в Панель управления->Оборудование и звук->. Так или иначе, должно открыться окно диспетчера:


Здесь сразу задаем конфигурацию динамиков (стерео), задаем наше аналоговое устройство устройством по умолчанию (после чего соответствующая кнопка потухнет), отключаем, если, не дай Бог, включено, объёмное звучание.


По кнопке в виде жёлтой папки можно настроить отключение определения разъемов передней панели:

Также обратите внимание, что подключённые разъемы отображаются ярким цветом - в нашем случае к зелёному выходу подключены динамики, к розовому входу - микрофон. Здесь - одна весьма важная деталь: дважды нажав по значку разъема, вы увидите окно с выбором типа подключенного устройства. Важно это потому, что если выбрать «наушники» , то кодек будет использовать специальный дополнительный усилитель (иначе звук в наушниках будет слишком тихим), для подключенных же активных колонок или внешних усилителей следует выбирать «Выход на передние динамики» . Здесь же включается автоматическое всплывание данного окна при подключении устройства в какой-либо из разъёмов карты:

С помощью кнопки «i» можно открыть окно с информацией о версии драйвера, DirectX, аудиоконтроллере и версии кодека, там же включается/выключается отображение значка в системном трее:


Теперь поотключаем эффекты:


Настройки «Поправки на помещение» для стерео конфигурации недоступны, что вобщем-то странно - в той же консоли от THX (которая включена, например, в пакет драйверов Creative X-Fi) можно отрегулировать расстояние и угол направления на динамики относительно вашего расположения, что бывает очень полезно, когда вы не сидите непосредственно перед колонками, или же они расположены относительно вас несимметрично. Ну да ладно, пусть это будет на совести разработчиков.

Последняя вкладка дублирует настройки панели управления (впрочем, большинство настроек из Диспетчера есть и в панели управления):


Здесь можно задать параметры системного микшера - с какой частотой дискретизации и глубиной бит Windows будет микшировать все воспроизводимые звуки. Установим 24 бит, 96 кГц. Почему - расскажу далее.

Так как меня постоянно штурмуют вопросами, как настроить микрофон (что, по моему мнению, должно вызывать минимум непоняток), я всё же остановлюсь на настройке устройств записи. Их настройки, кстати, как и устройств воспроизведения, находятся на отдельных вкладках вверху окна. Начнём со стерео микшера:


Здесь всё элементарно. Данное устройство записывает всё, что вы слышите через динамики, т. е., тот готовый звуковой поток, который Windows передает на звуковую карту. Приводится он к указанному виду (раз микшер работает с частотой дискретизации 96 кГц, то и тут поставим столько же).

Но нашим основным устройством записи является, конечно же, микрофон:

Итак, ставим громкость записи на максимум, а усиление микрофона выключаем (потом, если понадобится, можно включить). Также, очень часто люди жалуются, что у них воспроизводится звук воспринимаемый микрофоном, чтобы этого не было - отключаем воспроизведение. На свой вкус - фильтрация шума , подавление эхо . На вкладке , опять же, задается формат записи:

Учитывая характеристики звукозаписывающего тракта, здесь хватит и стандартного 16 бит/44.1 кГц.

5. Настройка foobar2000

В принципе, проделанной работы хватит, чтобы обеспечить наиболее высокое (для данной карты) качество звучания в любом плеере. Но для настоящих параноиков я приведу настройки foobar2000. Нам понадобится, собственно, сам плеер и несколько плагинов к нему - WASAPI output support и SoX Resampler . Ну или вы можете скачать мою сборку , в которой всё уже имеется.

Итак, в настройках вывода плеера (File->Preferences->Playback->Output) выбираем WASAPI: <наше устройство> , разрядность ставим 24 бит :

При выводе через WASAPI Exclusive обходятся все эффекты звуковой карты (если они включены), а также микшер Windows (для которого мы указывали частоту семплирования).

Теперь перейдём к настройкам DSP:


Тут добавляем в цепочку ресемплер SOund eXchange и Advanced Limiter. В настройках ресемплера ставим частоту 96 кГц.

А вот теперь - почему 96 кГц. Я провел серию экспериментов, и вот что мне удалось выяснить. В режиме «выход на передние динамики», если регулятор громкости установлен более чем на 90%, при воспроизведении тестового сигнала udial (частота дискретизации - 44.1 кГц) слышны сильные искажения. Искажения пропадают, если или понизить громкость, или переключиться на режим наушников, или выполнить передискретизацию аудио до 96 кГц.

О причинах данного явления по имеющимся данным судить трудно, но можно сделать выводы и дважды перестраховаться: всё аудио выводить с частотой дискретизации 96 кГц, а громкость не повышать более чем до 90% .

И пара слов о необходимости настройки foobar2000. В принципе, можно выводить звук на устройство «DS: Первичный звуковой драйвер». В этом случае передискретизация будет выполняться средствами Windows (ресемплер там не самый плохой), к тому же ещё и не будут отключаться все остальные звуки (как при воспроизведении через WASAPI Exclusive). Кроме того, выбрав данное устройство, Windows будет выводить звук на то устройство, которое установлено по умолчанию в панели управления, что бывает удобно (например, при отключении одного из устройств звук автоматически переключается на другое). Так что выбор за вами - удобство, или же уверенность в качестве.

6. Воскрешение трехмерного звука и аппаратного микширования

И конечно же я не забыл про геймеров. Так как в Windows, начиная с Vista, отсутствует доступ к аппаратному микшированию потоков (все операции выполняет Windows, а потом один единственный поток выводится на звуковую карту), то разработчики придумали специальную программу, аналог Creative ALchemy, но для Realtek - 3D SoundBack . Она подключается к аппаратным ресурсам через интерфейс OpenAL, эмулируя для указанных программ Windows эмулирует DirectSound устройство (как в Windows XP), а затем просто выполняет преобразование команд DirectSound (или DirectSound 3D) в команды OpenAL, в итоге - получаем настоящий EAX 2.0 в играх, а также возможность преобразования многоканального аудио в стерео с эффектами окружения.

Для запуска программы откройте папку .../Program Files/Realtek/3D Sound Back Beta0.1 , в свойствах файла 3DSoundBack.exe на вкладке «Совместимость» установите режим совместимости с Windows Vista SP2 :

Теперь запустите этот файл. Чтобы добавить приложение - нажмите Add Game , введите название и адрес папки, в которой содержится исполняемый файл программы. Например:


После добавления не забудьте выделить добавленное приложение и нажать кнопку Enable .

Теперь указанное приложение будет по умолчанию использовать эмулированное DirectSound устройство и получит доступ к аппаратным ресурсам звуковой карты:

Эпилог

Ну вот, очередная грандиозная статья завершена. Кстати, я тут подумал: а ведь по-хорошему, эту статью надо было написать одной из первых... Впрочем, на то время у меня ещё не хватило бы знаний, чтобы всё так вот подробно описать, так что оно может быть и к лучшему.

Если что-то непонятно, остались какие-то вопросы - спрашивайте, комментируйте. Желаю удачи!

Информация от спонсора

ЕвроТехника: сеть магазинов бытовой техники. На сайте http://euro-technika.com.ua/ Вы можете ознакомиться с ассортиментом современных 8-ядерных смартфонов (воспользовавшись удобным каталогом) и здесь же сделать заказ (с доставкой или самовывозом).

Работу со звуком в модуле Crt обеспечивают две процедуры:

включение сигнала заданной частоты:

Sound(N:word)

отключения сигнала:

NoSound.

Процедура Sound генерирует звуковые сигналы частотой N,изменяющейся в пределах 37-32767 Гц. Громкость звука не регулируется, сигнал будет звучать до момента его выключения процедурой NoSound.

Для организации паузы в работе программы определена процедура, выполняющая задержку на заданное число миллисекунд:

Delay(N:word).

При выводе звуковых сигналов обычно используются все указанные процедуры вместе.

Uses Crt;

Sound(220); { включения звука с частотой 220}

Delay(300); { пауза на 0.3 сек }

NoSound; { отмена звука}

Используя процедуры Sound, Nosound, Delay оформите вывод на экран музыкального слова " К О Л О Б О К " . Вывод каждой буквы сопроводить звуковым сигналом частотой, соответствующей порядковому номеру символа в кодовой таблице (функция ORD),увеличенному в 100 раз. Время звучания каждой буквы 1 секунда.

Текстовые окна.

Window(x1,y1,x2,y2:byte);

Данная процедура определяет на экране текстовое окно с координатами верхнего левого угла экрана x1,y1, нижнего правого x2,y2. Максимальный размер окна определяется выбранным режимом. Режиму с 80 столбцами соответствует окно (1,1,80,25),режиму с 40 столбцами окно (1,1,40,25). Процедура Window помещает курсор в т.(1,1) установленного окна.

Многие процедуры и функции CRT работают относительно координат текущего окна, включая Window, ClrEol, ClrScr, DelLine , GotoXY , InsLine , WhereX , WhereY и все процедуры ввода/вывода. Координаты текущего окна хранятся соответственно в переменных WindMin и WindMax типа word, и отсчитываются отностительно точки с координатами (0,0), а не (1,1). Младший байт содержит значение координаты Х, а старший байт Y, поэтому координаты верхнего левого угла определяются выражениями:

x1:=Lo(WindMin),

y1:=Hi(WindMax),

координаты правого нижнего:

x2:=Lo(WindMax) ,

y2:=Hi(WindMax).

(* вывод на экран окон произвольного размера *)

(* различного цвета фона *)

Uses crt;

Var x,y:integer;

Randomize;

x:=random(MaxX);

y:=random(MaxY);

Window(x,y,x+random(10),y+random(8)); { определение }

TextbackGround(random(16)); { размера окна }

Delay(100);

ClrScr; { заполнеие фоном }

until KeyPressed;

Вывести изображение российского трехцветного флага в центре экрана размером 30*15. Каждая цветовая полоса задается текстовым окном (ширина 30 позиций, высота 5) и заполняется соответствующим цветом.

Использование клавиатуры.

Клавиатура - это основное средство ввода информации в ПЭВМ, поэтому гибкая обработка сигналов с клавиатуры является важным элементом создания эффективных программ.

В процессе работы с клавиатурой производится анализ кода нажатой клавиши, называемый кодом сканирования. Каждая из клавиш клавиатуры имеет свой уникальный код.

Сдандартная клавиатура имеет три типа клавиш:

символьные (буквы, цифры, знаки арифметических операций, знаки пунктуации и специальные ENTER, ESC, BACKSPACE, TAB);

управляющие (функциональные F1-F10, клавиши перемещения курсора, Alt+<другие клавиши>, Ctrl+<другие клавиши>, Shift+<другие влавиши>).;

сдвига (смена регистов Ctrl,Alt,Shift, фиксации регистров CapsLock,ScrollLock,NumLock, вспомогательные клавиши).

Символьные клавиши генеируют при нажатии код в виде одного значения.

Управляющие клавиши генерируют расширенный код сканирования, состоящий из двух значений. Первое является признаком управляющей клавиши, второе содержит код сканирования.

Клавиши сдвига имеют коды, которые не распознаются средствами Паскаля. Обработка кодов производится на системном уровне.

В модуле Crt определены две дополнительные функции управления клавиатурой: ReadKey и KeyPressed.

KeyPressed:boolean возвращает значение true если на клавиатуре была нажата клавиша, и false в противном случае. При этом введенные символы из буфера клавиатуры не удаляются. Данную функцию можно использовать для завершения цикла по нажатию любой клавиши.

Пример 1.

(* использование функции ReyPressed *)

Uses Crt;

(* заполнение экрана до нажатия любой из клавиш *)

Randomize;

GotoXY(Random(70),Random(50));

write("привет!");

delay(300)

Until KeyPressed;

Readkey:char.

Данная функция предназначена для управления работой клавиатуры и возвращает код нажатой клавиши. Символ соответствующей нажатой клавиши на дисплее не отображается. При использовании клавиш управления функция ReadKey сначала получает значение нулевого символа (#0), следующее обращение к ReadKey возвращает расширенный код клавиши.

Функция ReadKey считывает символ из буфера клавиатуры с одновременным его удалением из буфера или ожидает нажатия какой-либо клавиши.

{ анализ вводимых пользователем клавиш }

Uses Crt;

var ch:char;

write(" Нажмите клавишу:");

ch:=ReadKey;

if ch=#0

then { расширенный код сканирования }

ch:=readkey;

write(" Клавиша ");

case ch of

#59..#68: writeln("функциональная: F1-F10");

#82: writeln(" вставка : Ins");

write(" перемещения курсора");

writeln(" расширенный код = ",ord(ch))

end ; {case}

else writeln(" код символа = ",ord(ch))

until ch=#27 ; { клавиша Esc }

ch:=ReadKey { ожидание нажатия клавиши

для выхода из программы }

В приложении 1 приведена кодовая таблица ПЭВМ и все расширенные коды сканирования.

Используя рассмотренные процедуры разработать программу,которая по нажатию клавиш:

«стрелка вправо и влево» меняет цвет фона (по кругу от 0до 7)

«стрелка вверх и вниз» меняет цвет символов (от 0до 15)

Алфавитно-цифровой клавиатуры воспроизводит данный символ на экран дисплея.

Ecs завершает работу программы и восстанавливает первоначальные параметры цветности.

Мы рассмотрим:

  • создание звуковых объектов (объектов типа Sound);
  • привязку звуков к таким объектам;
  • управление воспроизведением звука;
  • динамическое изменение параметров звучания (громкость и панорамирование);
  • загрузку в объект Sound внешних.mp3 файлов.

Объект Sound появился в 5-й версии Flash, поэтому все приёмы,
рассмотренные в статье, кроме загрузки внешних.mp3 файлов, могут быть использованы
и в 5-й версии.

Создание звуковых объектов

Начнём. Вы уже наверное догадались, чтобы производить какие-либо
операции со звуком, нужно создать объект типа Sound . Сделать это очень
просто. Существует стандартная конструкция

soundObject = new Sound(target);

где soundObject - это имя создаваемого звукового объекта, а target
- необязательный параметр, указывающий объект типа MovieClip, или уровень. Если
мы хотим, чтобы наш звуковой объект работал только в одном MovieClip-е или на
одном уровне, то мы должны его создавать с указанием данного параметра:

movieSound = new Sound("SomeClip");

MovieSound = new Sound("_root.teddy.mouth");

LevelSound = new Sound("_level1");

Если же планируется использовать объект в любом месте вашей флэшки,
то он создаётся без параметров:

globalSound = new Sound();

Привязка звука к объектам Sound

Объект Sound позволяет вопроизводить звуки, не втавленные непосредственно
в ключевой кадр временной шкалы. Но для этого их надо сначала поместить в библиотеку,
а затем экспортировать для использования в ActionScript.

Для помещения звука в библиотеку достаточно выбрать "File
-> Import to Library...", и в появившемся окне указать имя звукового
файла.

Теперь, когда файл уже находится в библиотеке, выделяем его,

кликаем правой кнопкой мыши на названии звука, и в появившемся
контекстном меню выбираем "Linkage...". Должно появится подобное окошко:

В поле Identifier мы вводим идентификатор (имя) звукового ресурса.
Можно включить галочку "Export in first frame", тогда звук будет загружен
уже в первом кадре мульта, однако, такой способ неприменим при хоть сколько-нибудь
больших звуках, т.к. до начала загрузки 1-го кадра (даже прелоадера не видно!)
мы видим пустое место, появляется ощущение "зависшего клипа". Поэтому
рекомендуется выключать эту галочку, а в кадре где нужна загрузка звука, помещать
его на временную шкалу с параметрами Sync Stop. Тогда звук не будет загружен
до этого кадра и можно спокойно использовать прелоадер.

Далее, чтобы привязать звуковой ресурс к звуковому объекту, нужно
воспользоваться функцией attachSound(idName) , в которой параметр idName
указывает идентификатор звукового ресурса:

mySound = new Sound();

MySound.attachSound("tada");

После этого наш звуковой объект готов к манипуляциям.

Воспроизведение и остановка звуков

Основными действиями, выполняемыми со звуковыми объектами являются,
конечно же, воспроизведение и остановка воспроизведения.

Для того, чтобы воспроизвести звук, используется функция start(offset,
loops)
объекта Sound . Параметр offset , указывает смещение
в секундах, от начала звукового фрагмента, а loops - количество повторений
проигрываемого фрагмента.

Например, если мы хотим проиграть вторую половину 20-тисекундного
фрагмента 3 раза, мы запишем:

someSoundObject.play(10, 3);

Звук начнёт проигрываться с 10-й секунды.

Оба параметра функции start() являются необязательными.
По умолчанию звук проигрывается с самого начала один раз:

someSoundObject.play();

Можно повторить звуковой фрагмент несколько раз с начала, тогда
мы указываем нулевое смещение:

someSoundObject.play(0, 5);

Чтобы остановить проигрывание, используется функция stop(idName) .
Вызванная без параметров, функция останавливает все звуки. Указав параметр idName,
обозначающий идентификатор звука, можно остановить только один специфический
звук:

globalSnd.stop();

SomeSnd.stop("tada");

Динамическое изменение параметров звука

Объект Sound позволяет динамически устанавливать уровень громкости
и баланс (панорамирование) звука. Существуют также функции для получения значения
баланса и громкости.

Для установки громкости звука используется функция setVolume(value) .
Параметр value может принимать значения от 0 (минимальный уровень) до
100 (максимальный уровень). По умолчанию уровень громкости равен 100.

Для установки баланса используется функция setPan(value) .
Здесь параметр value может принимать значения от -100 (весь звук в левом
канале) до 100 (весь звук в правом канале). Значение 0 (оно стоит по умолчанию)
означает, что звук равномерно распределён между обоими каналами.

globalSnd.setVolume(50); // Половинная
громкость

GlobalSnd.setPan(70); // Сместить звук по большей части в правый канал

Можно использовать функции getVolume() и getPan()
для получения текущего значения громкости и баланса соответственно.

currentVolume = someSnd.getVolume();

CurrentPan = someSnd.getPan();

Можно одновременно устанавливать все параметры звука при помощи
функции setTransform() , но мы её в данной статье не рассматриваем.

Можно в цикле вызывать функции setVolume() и setPan() ,
плавно изменяя значение параметра, и тем самым создавать эффекты затухающего,
возрастающего и/или перемещающегося звука.

Во Flash MX появилась возможность загрузки внешних файлов. Для
этого используется функция loadSound(url, stream) объекта Sound .
Первый параметр, url , указывает путь к файлу. Второй, stream ,
является логической (булевой) переменной, определяющий потоковый режим загрузки
звукового файла. Если значение stream равно false , то Flash дождётся
полной загрузки файла, прежде чем его воспроизводить. Если же stream
равен true , то файл может воспроизводиться в потоковом режиме не загрузившись
полностью. Данный режим рекомендуется использовать только на быстрых каналах
связи или при использовании на локальной машине, т.к. потоковое воспроизведение
по нашим каналам Интернет часто приводит к прерыванию воспроизведения длинными
паузами:).

snd1 = new Sound();

Snd1.loadSound("track03.mp3", true);

Snd2 = new Sound();

Snd2.loadSound("http://someserver.com/some_file.mp3", false);

Специально для этого урока я сделал маленький проигрыватель,
который использует подгрузку внешних файлов и позволяет менять громкость и баланс
проигрываемой композиции. Он также позволяет отслеживать сколько процентов запрошенной
композиции загружено. Этот пример можно скачать ( ,
218k), и поэкспериментировать самому.

Внимание! mp3 файлы не включены в архив с примером, поэтому вам
придётся использовать свои, предварительно изменив пути к ним в параметрах компонента
ComboBox.

Надеюсь, данная статья оказалась вам полезной.

0 out of 5 0 based on 0 voters.

После того как вы, насколько смогли, защитили помещение от внешнего мира, вам следует разобраться, как звук распространяется внутри самого помещения.

Звук распространяется в воздухе в виде волн. Эти волны отражаются от стен комнаты и вызывают такие эффекты, как реверберация и эхо. Одним из проклятий домашних студий является то, что они, как правило, имеют очень маленькие размеры. Так как звук распространяется достаточно быстро (со скоростью около 330 м/с), то когда вы сидите около акустических систем и слушаете музыку, вы в равной степени слышите звук, исходящий от колонок, и звук, отраженный от стен. В больших помещениях исходный и отраженный звук вы слышите раздельно, что уменьшает проблемы. В хорошей студии нужно "укротить" эти отражения, чтобы они не мешали слышать чистый звук, исходящий из акустических систем.

Описать все отражения, происходящие в комнате, довольно трудно. Почитайте книги по акустике (науке о распространении звуков), и вы узнаете, что существуют разные моды резонанса: аксиальные (одно измерение), тангенциальные (два измерения) и косые (три измерения). Каждая из мод связана с определенным способом распространения и взаимодействия звуковых волн в помещении. Знание мод своего помещения может помочь с выбором стратегии работы с акустикой. Однако формулы, служащие для вычисления мод, действительно очень сложные, особенно для тангенциальных и косых.

Вы можете более подробно узнать о модах резонанса помещения и даже найти калькуляторы мод в Internet, задав в любимой поисковой системе словосочетание “моды резонанса”. Вам будет предложено всего несколько ссылок, с которых вы и сможете начать изучение данного вопроса. Изучите его самостоятельно, так как подробное его рассмотрение достойно целой книги.

Итак, рискуя быть преданным анафеме профессиональными инженерами-акустиками всего мира, я все же поделюсь с вами некоторыми хитростями, которые я использовал в своих студиях. Моей главной целью было создание комнаты с тем звучанием, которое нравится лично мне, и достаточным уровнем контроля над отражениями. Я, как и многие, записывал и микшировал в одной и той же комнате, что давало возможность выполнять по ходу небольшие корректировки для того, чтобы звук больше напоминал то, к чему я стремился.

Существуют два момента, при которых звучание играет очень важную роль, - собственно записывание и микширование. Каждый из этих процессов требует особого подхода, чтобы запись имела наилучшее из возможных звучание. Оба эти процесса мы рассмотрим в настоящем разделе.