Домой / Faq / Самый удобный способ управления громкостью в windows. Программа Volumouse. Volume2 — стильный регулятор громкости

Самый удобный способ управления громкостью в windows. Программа Volumouse. Volume2 — стильный регулятор громкости

Управление звуком 0 out of 5 0 based on 0 voters.



  • < Назад
  • Вперёд >

Управление звуком

Управление звуком 0 out of 5 0 based on 0 voters.



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

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

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

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

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

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

Если ваш компьютер работает на OC Windows XP, Vista или 7, а также оснащен аудиочипом от Realtek, то для работы звука вам необходимо иметь специальный драйвер. Для его активации наберите «Realtek» в поиске Пуска. Когда вы найдете в результатах Диспетчер Realtek HD - запустите его. Если этой программы нет в поиске, то на компьютере отсутствует этот драйвер либо установлена слишком старая версия. В этой статье будет написано, как произвести установку и настройку драйвера Realtek.

Установка драйвера Realtek

Следуйте этой пошаговой инструкции, если на компьютере отсутствует драйвер либо он устарел.

  1. Загрузите актуальную версию необходимого драйвера с сайта Realtek либо либо с нашего сайта по следующей ссылке: .
  2. Начините установку, запустив скачаный файл в формате «.exe».
  3. Для продолжения установки нажимайте «Далее».

    Внимание: если при установке будет предупреждение, что Windows не знает об издателе драйвера, то просто нажмите на «Установить», для продолжения работы установщика.

  4. После установки драйвера перезагрузите компьютер, чтобы все изменения начали свою работу.
    Сигналом о правильной установки программного обеспечения будет знак Realtek HD Audio Manager на панели задач. Чтобы перейти в диспетчер Realtek просто кликните на знак два раза.

Функции и настройки Realtek High Definition Audio

Аудикодек Realtek поддерживает 8-канальное аудио, Jack-Sensing, а также обладает множеством других функций. Кроме того он успешно работает с Universal Audio Jack, благодаря чему можно легко устранять ошибки связанные с кабельным соединением.

Аудио Менеджер Realtek поддерживает системные платы, которые работают с аудиобработчиком от Realtek.

Примечание: все меню указаны ниже для справки и их названия могут сильно отличаться от того, что будет находиться на вашем компьютере. В среде обозначенных выше версий Windows, Диспетчер Realtek HD будет сам находить устройства, подключенные к портам. И в зависимости от них уже будут показаны вкладки с настройками. Также интерфейс программы может отличаться из-за версии драйвера либо модели установленной на вашем компьютере звуковой карты.

Например:

Меню «Динамики»

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

Цифровой выход

Для настройки входа цифрового звука сделайте следующее:

  1. Во вкладке «Дополнительные настройки устройства» можно настраивать параметры разделения входных гнезд.
  2. После вам станут доступны еще четыре вложенных меню.

Для настройки акустических систем:

1. Выберите меню «Динамики».
2. Для установки аналогового порта вывода как устройства по умолчанию нажмите на «Задать стандартное устройство».
3. Выберите меню «Конфигурация динамиков», расположенною в «Динамики». Там будут находиться параметры конфигурации. Также там можно настроить объемный звук и указать конфигурацию динамиков.

4. В меню «Звуковой эффект» можно настроить караоке, выбрать окружающую вас обстановку, а также выбрать один из нескольких режимов для эквалайзера.

5. Для регулирования громкоговорителей необходимо перейти в меню «Поправка на помещение». Там можно регулировать расстояние и углы, исходя от вашего расположения. Это очень полезная функция пригодится тогда, когда вы находитесь не прямо перед колонками, а стоите в несимметричной позиции от них. Но ее работа возможно только в режимах 5.1 и 7.1.
6. Меню «Стандартный формат» отвечает за параметры микшера. А если конкретно, то за частоту дискретизации и разрядность, с которой ОС будет обрабатывать исходящие звуки.

Настройка микрофона

Настроить свой микрофон можно в последнем меню, которое так и называется — «Микрофон». Вверху будут находиться ползунки для настройки громкости и баланса микрофона. Регулируйте их, пока не добьетесь желаемой громкости.

Этот раздел делится на две вкладки: «Эффект микрофона» и «стандартный формат».

Во вкладке «Эффект микрофона» можно изменить параметры конференц-режима, а также включить режим подавления эхо и шума.

Меню «Информация»

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

Спасибо за внимание! Пишите ваши уточнения по настройке Realtek High Definition Audio. 🙂

Если вы ярый меломан, который много сидит за компьютером, то наверняка часто слушаете на нем музыку, у вас установлен классный мультимедиа проигрыватель, который позволяет вам максимально удобно работать с вашей музыкальной коллекцией. Но может ли ваш проигрыватель дать вам возможность удобно и наглядно регулировать громкость? У многих пользователей ноутбуков есть такая возможность. Пользователям же стационарных компьютеров приходится хуже, так как громкость можно регулировать либо с мультимедийной клавиатуры, либо мышкой тыкать в «Регулятор громкости». Но существует еще один весьма неплохой и наглядный способ регулировать громкость с помощью колесика мышки, наведя курсор на панель задач. При этом на рабочем столе будет показываться большой и стильный регулятор, который покажет текущее состояние громкости. Все это можно сделать с помощью утилиты Volume2.

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

Не стоит думать, что на этом возможности программы заканчиваются! Помимо красивого регулятора вы можете менять значения огромного количества самых разнообразных настроек. На вкладке «Основные» вы найдете список устройств, для которых можно изменять громкость, там же можно задать отдельное приложение, в котором следует регулировать громкость.

На вкладке «Системный трей» в Volume2 можно задать внешний вид и настройки индикатора, расположенного в области уведомлений (трее). Тут вы найдете множество самых разнообразных вариантов отображения индикатора, которые красиво меняются при изменении громкости. Главное, при использовании этого индикатора, отключить стандартный, чтобы в области часов был один, а не два индикатора.

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

Помимо управления громкостью программа Volume2 позволяет задавать различные дополнительные возможности, которые к громкости не имеют никакого отношения. Например, можно назначать горячие клавиши не только на управление громкостью, но и на управление яркостью экрана, извлекать диски из CD/DVD привода, а также безопасно извлекать USB-устройства. Еще одной интересной особенностью программы является возможность задавать расписание выполнения различных задач. Можно автоматизировать процесс выключения или снижения уровня громкости в определенное время суток, автоматически запускать приложения в заданное время, а также по расписанию показывать на экране сообщения.

В целом, Volume2 достаточно сильно напичкана самыми разнообразными настройками, которые могут показаться полезными некоторым меломанам. Естественно, программа полностью русифицирована (автор наш с вами соотечественник) и разобраться в настройках не составит труда, если у вас есть на это время и желание кастомизировать свою систему, сделав ее максимально удобной для работы и прослушивания музыки. Работает утилита под операционными системами Windows 7/Vista/XP.

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

Позволю себе привести здесь пару ссылок на сайты, автором и/или идейным вдохновителем которых является этот человек – Александр Макарчук из города Борисов, Беларусь:

Для работы на компьютере Александр использовал программу «Vocal Joystick» - разработку студентов Университета штата Вашингтон, выполненную на деньги Национального Научного Фонда (NSF). См. melodi.ee.washington.edu/vj

Не удержался

Кстати, на сайте университета (http://www.washington.edu/) 90% статей именно про деньги. Трудно найти что-нибудь про научную работу. Вот, например, выдержки с первой страницы: «Том, выпускник университета, раньше питался грибами и с трудом платил за квартиру. Теперь он старший менеджер ИТ-компании и кредитует университет», «Большие Данные помогают бездомным», «Компания обязалась заплатить 5 миллионов долларов за новый учебный корпус».

Это одному мне режет глаз?


Программа была сделана в 2005-2009 годах и хорошо работала на Windows XP. В более свежих версиях Windows программа может зависнуть, что неприемлемо для человека, который не может встать со стула и её перезапустить. Поэтому программу нужно было переделать.

Исходных текстов нет, есть только отдельные публикации, приоткрывающие технологии, на которых она основана (MFCC, MLP – читайте об этом во второй части).

По образу и подобию была написана новая программа (месяца за три).

Собственно, посмотреть, как она работает, можно :

Скачать программу и/или посмотреть исходные коды можно .

Никаких особенных действий для установки программы выполнять не надо, просто щёлкаете на ней, да запускаете. Единственное, в некоторых случаях требуется, чтобы она была запущена от имени администратора (например, при работе с виртуальной клавиатурой “Comfort Keys Pro”):

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

Если у вас есть возможность поворачивать голову, то хорошей альтернативой eViacam может послужить гироскоп, крепящийся к голове. Вы получите быстрое и точное позиционирование курсора и независимость от освещения.

Если вы можете двигать только зрачками глаз, то можно использовать трекер направления взгляда и программу к нему (могут быть сложности, если вы носите очки).

Часть II. Как это устроено?

Из опубликованных материалов о программе «Vocal Joystick» было известно, что работает она следующим образом:
  1. Нарезка звукового потока на кадры по 25 миллисекунд с перехлёстом по 10 миллисекунд
  2. Получение 13 кепстральных коэффициентов (MFCC) для каждого кадра
  3. Проверка того, что произносится один из 6 запомненных звуков (4 гласных и 2 согласных) при помощи многослойного персептрона (MLP)
  4. Воплощение найденных звуков в движение/щелчки мыши
Первая задача примечательна лишь тем, что для её решения в реальном времени пришлось вводить в программу три дополнительных потока, так как считывание данных с микрофона, обработка звука, проигрывание звука через звуковую карту происходят асинхронно.

Последняя задача просто реализуется при помощи функции SendInput.

Наибольший же интерес, мне кажется, представляют вторая и третья задачи. Итак.

Задача №2. Получение 13 кепстральных коэффициентов

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

И среди тех, кто занимается распознаванием речи, идёт поиск «философского камня» - набора признаков, которые бы однозначно классифицировали звуковую волну.

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

История их такова, что изначально они предназначались совсем для другого, а именно, для подавления эха в сигнале (познавательную статью на эту тему написали уважаемые Оппенгейм и Шафер, да пребудет радость в домах этих благородных мужей. См. A. V. Oppenheim and R.W. Schafer, “From Frequency to Quefrency: A History of the Cepstrum”).

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

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

Это всего лишь одна из проекций 13-мерного пространства MFCC в 3-мерное, но и на ней видно, что я имею в виду – красные, фиолетовые и синие точки получены от разных микрофонов: (Plantronix, встроенный массив микрофонов, Jabra), но звук произносился один.

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

Чтобы не ошибиться в реализации, в первых версиях программы в качестве основы был использован код из хорошо известной программы CMU Sphinx, точнее, её реализации на языке C, именующейся pocketsphinx, разработанной в Университете Карнеги-Меллона (мир с ними обоими! (с) Хоттабыч).

Исходные коды pocketsphinx открыты, да вот незадача – если вы их используете, то должны в своей программе (как в исходниках, так и в исполняемом модуле) прописать текст, содержащий, в том числе, следующее:

* This work was supported in part by funding from the Defense Advanced * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium.
Мне это показалось неприемлемым, и пришлось код переписать. Это сказалось на быстродействии программы (в лучшую сторону, кстати, хотя «читабельность» кода несколько пострадала). Во многом благодаря использованию библиотек “Intel Performance Primitives”, но и сам кое-что оптимизировал, вроде MEL-фильтра. Тем не менее, проверка на тестовых данных показала, что получаемые MFCC-коэффициенты полностью аналогичны тем, что получаются при помощи, например, утилиты sphinx_fe.

В программах sphinxbase вычисление MFCC-коэффициентов производится следующими шагами:

Шаг Функция sphinxbase Суть операции
1 fe_pre_emphasis Из текущего отсчёта вычитается большая часть предыдущего отсчета (например, 0.97 от его значения). Примитивный фильтр, отбрасывающий нижние частоты.
2 fe_hamming_window Окно Хемминга – вносит затухание в начале и конце кадра
3 fe_fft_real Быстрое преобразование Фурье
4 fe_spec2magnitude Из обычного спектра получаем спектр мощности, теряя фазу
5 fe_mel_spec Группируем частоты спектра [например, 256 штук] в 40 кучек, используя MEL-шкалу и весовые коэффициенты
6 fe_mel_cep Берём логарифм и применяем DCT2-преобразование к 40 значениям из предыдущего шага.
Оставляем первые 13 значений результата.
Есть несколько вариантов DCT2 (HTK, legacy, классический), отличающихся константой, на которую мы делим полученные коэффициенты, и особой константой для нулевого коэффициента. Можно выбрать любой вариант, сути это не изменит.

В эти шаги ещё вклиниваются функции, которые позволяют отделить сигнал от шума и от тишины, типа fe_track_snr, fe_vad_hangover, но нам они не нужны, и отвлекаться на них не будем.

Были выполнены следующие замены для шагов по получению MFCC-коэффициентов:

Задача №3. Проверка того, что произносится один из 6 запомненных звуков

В программе-оригинале «Vocal Joystick» для классификации использовался многослойный персептрон (MLP) – нейронная сеть без новомодных наворотов.

Давайте посмотрим, насколько оправдано применение нейронной сети здесь.

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

Если у нейрона N входов, то нейрон делит N-мерное пространство пополам. Рубит гиперплоскостью наотмашь. При этом в одной половине пространства он срабатывает (выдаёт положительный ответ), а в другой – не срабатывает.

Давайте посмотрим на [практически] самый простой вариант – нейрон с двумя входами. Он, естественно, будет делить пополам двумерное пространство.

Пусть на вход подаются значения X1 и X2, которые нейрон умножает на весовые коэффициенты W1 и W2, и добавляет свободный член C.


Итого, на выходе нейрона (обозначим его за Y) получаем:

Y=X1*W1+X2*W2+C

(опустим пока тонкости про сигмоидальные функции)

Считаем, что нейрон срабатывает, когда Y>0. Прямая, заданная уравнением 0=X1*W1+X2*W2+C как раз и делит пространство на часть, где Y>0, и часть, где Y<0.

Проиллюстрируем сказанное конкретными числами.

Пусть W1=1, W2=1, C=-5;

Теперь посмотрим, как нам организовать нейронную сеть, которая бы срабатывала на некоторой области пространства, условно говоря – пятне, и не срабатывала во всех остальных местах.

Из рисунка видно, что для того, чтобы очертить область в двумерном пространстве, нам потребуется по меньшей мере 3 прямых, то есть 3 связанных с ними нейрона.

Эти три нейрона мы объединим вместе при помощи ещё одного слоя, получив многослойную нейронную сеть (MLP).

А если нам нужно, чтобы нейронная сеть срабатывала в двух областях пространства, то потребуется ещё минимум три нейрона (4,5,6 на рисунках):

И тут уж без третьего слоя не обойтись:

А третий слой – это уже почти Deep Learning…

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

Если бы меня попросили отрезать прямыми красное от синего, то я бы сделал это как-то так:

Но нейронная сеть априори не знает, сколько прямых (нейронов) ей понадобится. Этот параметр надо задать перед обучением сети. И делает это человек на основе… интуиции или проб и ошибок.

Если мы выберем слишком мало нейронов в первом слое (три, например), то можем получить вот такую нарезку, которая будет давать много ошибок (ошибочная область заштрихована):

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

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

- Что ты думаешь, доедет то колесо, если б случилось, в Москву или не доедет?
- А ты как думаешь, сойдётся ента нейронная сеть или не сойдётся?

Есть ещё один неприятный момент, связанный с нейронными сетями. Их «забывчивость».

Если начать скармливать сети только синие точки, и перестать скармливать красные, то она может спокойно отхватить себе кусок красной области, переместив туда свои границы:

Если у нейронных сетей столько недостатков, и человек может провести границы гораздо эффективнее нейронной сети, зачем же их тогда вообще использовать?

А есть одна маленькая, но очень существенная деталь.

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

Я неплохо смогу отделить плоскостями статую Венеры от окружающего её трёхмерного пространства.

Но в четырёхмерном пространстве я не смогу ничего, извините. А в 13-мерном - тем более.

А вот для нейронной сети размерность пространства препятствием не является. Я посмеивался над ней в пространствах малой размерности, но стоило выйти за пределы обыденного, как она меня легко уделала.

Тем не менее вопрос пока открыт – насколько оправдано применение нейронной сети в данной конкретной задаче, учитывая перечисленные выше недостатки нейронных сетей.

Забудем на секунду, что наши MFCC-коэффициенты находятся в 13-мерном пространстве, и представим, что они двумерные, то есть точки на плоскости. Как в этом случае можно было бы отделить один звук от другого?

Пусть MFCC-точки звука 1 имеют среднеквадратическое отклонение R1, что [грубо] означает, что точки, не слишком далеко отклоняющиеся от среднего, наиболее характерные точки, находятся внутри круга с радиусом R1. Точно так же точки, которым мы доверяем у звука 2 находятся внутри круга с радиусом R2.

Внимание, вопрос: где провести прямую, которая лучше всего отделяла бы звук 1 от звука 2?

Напрашивается ответ: посередине между границами кругов. Возражения есть? Возражений нет.
Исправление: В программе эта граница делит отрезок, соединяющий центры кругов в соотношении R1:R2, так правильнее.

И, наконец, не забудем, что где-то в пространстве есть точка, которая является представлением полной тишины в MFCC-пространстве. Нет, это не 13 нулей, как могло бы показаться. Это одна точка, у которой не может быть среднеквадратического отклонения. И прямые, которыми мы отрежем её от наших трёх звуков, можно провести прямо по границам окружностей:

На рисунке ниже каждому звуку соответствует кусок пространства своего цвета, и мы можем всегда сказать, к какому звуку относится та или иная точка пространства (или не относится ни к какому):

Ну, хорошо, а теперь вспомним, что пространство 13-мерное, и то, что было хорошо рисовать на бумаге, теперь оказывается тем, что не укладывается в человеческом мозгу.

Так, да не так. К счастью, в пространстве любой размерности остаются такие понятия, как точка, прямая, [гипер]плоскость, [гипер]сфера.

Мы повторяем все те же действия и в 13-мерном пространстве: находим дисперсию, определяем радиусы [гипер]сфер, соединяем их центры прямой, рубим её [гипер]плоскостью в точке, равно отдалённой от границ [гипер]сфер.

Никакая нейронная сеть не сможет более правильно отделить один звук от другого.

Здесь, правда, следует сделать оговорку. Всё это справедливо, если информация о звуке – это облако точек, отклоняющихся от среднего одинаково во всех направлениях, то есть хорошо вписывающееся в гиперсферу. Если бы это облако было фигурой сложной формы, например, 13-мерной изогнутой сосиской, то все приведённые выше рассуждения были бы не верны. И возможно, при правильном обучении, нейронная сеть смогла бы показать здесь свои сильные стороны.

Но я бы не рисковал. А применил бы, например, наборы нормальных распределений (GMM), (что, кстати и сделано в CMU Sphinx). Всегда приятнее, когда ты понимаешь, какой конкретно алгоритм привёл к получению результата. А не как в нейронной сети: Оракул, на основе своего многочасового варения бульона из данных для тренировки, повелевает вам принять решение, что запрашиваемый звук – это звук №3. (Меня особенно напрягает, когда нейронной сети пытаются доверить управление автомобилем. Как потом в нестандартной ситуации понять, из-за чего машина повернула влево, а не вправо? Всемогущий Нейрон повелел?).

Но наборы нормальных распределений – это уже отдельная большая тема, которая выходит за рамки этой статьи.

Надеюсь, что статья была полезной, и/или заставила ваши мозговые извилины поскрипеть.

Работу со звуком в модуле 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 завершает работу программы и восстанавливает первоначальные параметры цветности.