02.08.2023

Компьютерные программы для изучения азбуки Морзе, Краснодар, Белецкий А. И


Комментарии (18):

#1 Святослав Март 17 2013

уже давно хочу выучить морзе

Нет кирилицы и ворд файл не видит.

#3 Мстислав Июнь 10 2017

Как запустить этот генератор звукового кода Морзе?

#4 root Июнь 10 2017

Программа понимает кириллицу и воспроизводит ее в код Морзе, это можно проверить введя в текстовое окно русскую букву "Х" (Ха), программа воспроизведет сигнал обозначающий четыре точки.

Для загрузки и выгрузки программа использует простой текстовый формат. Документы MS Word и другие, содержащие разметку и разную служебную информацию, не поддерживаются.

Для воспроизведения программой текста из документа MS Word, файл документа нужно предварительно сохранить как текстовый файл, после этого он может быть загружен в программу "Morse Code Trainer".

Для начала работы с программой нужно скачать архив, распаковать его и запустить файл "Morse.exe".

#5 Гузелия Август 02 2017

Программа начинает с трех Ж, нельзя ли убрать эту функцию, пока идет процесс обучения?

#6 Александр Компромистер Август 03 2017

Vik, текст можно сохранять и в формате.txt программы Блокнот, наверное. Из программы Блокнот текст уже можно вставить в Ворд.

#7 Анатолий Январь 23 2018

тупая программа начинает петь с ж ж ж не уж то ума не хватило нормальную прогу написать

#8 Андрей Апрель 10 2018

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

#9 Андрей Апрель 10 2018

Начать обучение следует с нескольких букв на малой скорости. Например В,Л,Ы,Д; затем А,П,Р,О. В текстовое поле программы нужно написать самому текст из этих первых букв, разбив его строго на группы по 5 знаков (примерно 20-30 групп). По мере освоения будете добавлять буквы и писать тексты с преобладанием этих новых букв, что позволит закрепить навыки по приёму новых букв. По мере тренировки вы будете замечать, что всё легче и легче пишете текст. Потихоньку увеличивайте скорость передачи. Вы должны как-бы тянуться за скоростью. Да, еще один момент, вы натренируете способность записывать текст с отставанием в несколько знаков. Т.е, например, звучит уже пятая буква, а вы только начинаете записывать первую, а остальные у вас в голове. Такое отставание будет когда скорость приема превысит 25-30 групп в минуту. На меньших скоростях меньшее отставание. Всё это будет получаться автоматически. Текст считается принятым, если в нем не более 2-х ошибок. Прием 12 групп в минуту - троечка, 16-хорошо, 18-отлично. 30-35 - мастер спорта. Но это уже другая песня

#10 Андрей Апрель 10 2018

Ещё кто не понял. Буквы вы принимаете по напевам, а не считаете сколько прозвучало точек, а сколько тире. Например буква а поется как "ай-дааа", б - "бааа-ки-те-кут", цифра 9 - "пааа-пааа-мааа-мууу-тук", ну и так далее. В интернете все напевы есть

#11 Вадим Сентябрь 10 2018

Отличная программа, спасибо большое!

#12 Моряк Октябрь 25 2018

Класс! Скоро 30 лет как отслужил, под конец службы вывозил 34 группы легко! 3 года круглосуточных тренировок!
попробовал, руки и уХи то помнят. 24 группы песня!)))

#13 Александр Компромистер Октябрь 26 2018

Вот, если бы при вводе текстового документа в эфир передавалась морзянка, как при J2B, было бы лучше.

#14 Владимир Январь 09 2019

Пытался скопировать текстовый файл через буфер обмена (правой кнопкой) но появляется портрет автора. Можно ли копировать файлы в поле записи?

#15 root Январь 09 2019

Здравствуйте, Владимир! Скопируйте нужный текст в буфер обмена, кликните мышкой в окне для ввода текста в программе "Morse code trainer" и нажмите комбинацию клавиш CTRL+V (вставка содержимого из буфера обмена в место где сейчас расположен курсор).

#16 Seawar Январь 09 2019

Порада початківцям - не забивайте голову кирилицею, починайте відразу з латиниці.

#17 Сергей Июнь 25 2019

Отличная программа!

#18 Александр Компромистер Июнь 26 2019

Саму программу Morse_Trainer я скачал. Можно ли ее использовать как автоматический ключ?

Приложение "" - это очень удобный способ выучить морзянку в свободное время, так как заниматься изучением на компьютере не слишком удобно, а вот мобильный девайс с платформой Андроид в кармане.

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

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

Интерфейс и принцип работы
Обучающий бесплатный проект выполнен стильно и красиво. Перед пользователем появляется простой интерфейс с понятным и лаконичным меню. Всего программа представлена десятью основными уроками, каждый из них содержит по три упражнения.
1. Режим "Запоминания", где пользователь на слух воспринимает новые представленные звуки и новые буквы.


2. Упражнение "Прием". Здесь пользователю предлагается самостоятельно определять звуки, выученые на слух.
3. Режим "Передача". В этом упражнении искусственный интеллект будет предлагать определенные звуки, что потребуется передавать.
Как удобную особенность следует отметить, что программа фиксирует все совершенные ошибки и в дальнейшем делает акцент на ошибках, чтобы закрепить знания и помочь запомнить их и не ошибаться в дальнейшем.

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

Здесь все также 10 уроков, но они уже состоять будут из 2 упражнений: прием и передача. В игровой форме многим намного проще запоминать новые данные.

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

Программа Morse Trial генерирует радиограммы азбукой Морзе с изменяемой скоростью, паузами и тоном. Возможна загрузка текста из вашего файла, а также случайная генерация текста. Есть возможность добавления шумов при прослушивании радиограмм для большей реалистичности.

Азбука Морзе, код Морзе, «Морзянка» - способ кодирования букв алфавита при помощи длинных и коротких сигналов, так называемых «тире» и «точек» (а также пауз, разделяющих буквы). За единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между знаками в букве - одна точка, между буквами в слове - 3 точки, между словами - 7 точек. Была названа в честь американского изобретателя Сэмюэля Морзе, который изобрёл её в 1835. Азбука Морзе является первым цифровым способом передачи информации. Телеграф и радиотелеграф первоначально использовали азбуку Морзе; позже стали применяться код Бодо и ASCII, которые более удобны для автоматизации. Впрочем, сейчас и для азбуки Морзе есть средства автоматической генерации и распознавания. Для передачи русских букв использовалось коды сходных латинских букв; это соответствие алфавитов позже перешло в МТК-2, а потом в КОИ-7 и КОИ-8 (однако в азбуке Морзе букве Q соответствует Щ, а в МТК и КОИ-Я).

Основное предназначение программы Morse Trial — улучшение навыков приема телеграфа. Скачать программу для тренировок Morse Trial можно

Но если вы еще не владеете азбукой Морзе , — то пройти самостоятельное обучение можно на сайте LCWO по методу Коха

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

Обучение происходит следующим образом:

  • Вы настраиваете вашу программу, чтобы она генерировала сигналы телеграфной азбуки со скоростью порядка 20 слов в минуту для знака, но с несколько увеличенными паузами (эффективная скорость должна быть порядка 15 слов в минуту).
  • Затем вы берете бумагу и карандаш и начинаете принимать. На первом уроке компьютер должен передавать только два символа. То есть на первом уроке вам надо распознать только два варианта. Принимаете текст 5 минут, затем проверяете правильность принятого текста, и рассчитываете процент верных знаков.

LCWO — этот интернет помощник именно для самостоятельного изучения телеграфа. Сайт после Вашей регистрации станет Вашим персональным учителем. Вы будете овладевать телеграфом в процессе игры в «угадайку» — будете вырабатывать условные рефлексы на звучание знаков и их запись — хотите — рукой, хотите — на клавиатуре. Метод разработан достопочтенным Людвигом Кохом специально для индивидуального обучения. На сайте вам предложат пройти 40 уроков, к следующему уроку переходите только после освоения предыдущего. От Вас требуется только регулярность занятий, частота и продолжительность четко не регламентируются. Ничего грузить в компьютер не нужно. Заниматься можете с любого компьютера, имеющего выход в интернет дома, на работе, интернет-кафе.



По вопросам ремонта и другим техническим вопросам сюда. Ремонт бытовой и офисной техники.


Компьютерные программы для изучения азбуки Морзе. Кубань Краснодар.

Программа АДКМ-2000.


Программа АДКМ-2000, начиная с версии 2.7, стала полностью бесплатной. Для обновления версий 2.0-2.5 до версии 2.7 скачайте этот файл. Для обновления версий ниже 2.0 установите сначала версию 2.5 и обновите ее.

Общее описание.

Программный продукт АДКМ-2000 версия 2.5 (далее АДКМ-2000) предназначен для подготовки радиотелеграфистов и проведения соревнований по скоростной радиотелеграфии.

Основные функции. АДКМ-2000 выполняет следующие функции:

Воспроизведение радиограмм из знаков азбуки Морзе с заданными параметрами:

· скорость формирования от 5 до 399 зн/мин *

· дискретность установки скорости 1 зн/мин

· пауза между знаками от 3 до 15 (3,5,7,9,11,13,15) **

· частота сигнала от 100 до 3500 Гц

· воспроизведение помех с оперативным переключением четырёх типов помех

· раздельная регулировка громкости основного сигнала и громкости помех ***

· поддержка системы PARIS

Программа АДКМ-2008.

© Все имущественные права на программу "АДКМ_2008" принадлежат Кожевникову Ивану Викторовичу

E-Mail: [email protected]

Автоматический датчик кода Морзе 2008.

Версия 2008.1.19-02

Введение.

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

Технические требования.

Тактовая частота процессора 200 МГц и выше

Оперативная память 64 МБ и более

Windows 2000 или XP

Наличие библиотеки msvbvm60.dll

Установка.

Распакуйте архив в любой каталог, запустите ADKM_2008.exe

Данная программа распространяется бесплатно. Все права собственности и авторские права на программу (в том числе любые ее компоненты: графические изображения, звукозаписи, текст и прочее), сопровождающие печатные материалы и любые копии программы принадлежат автору - Кожевникову Ивану Викторовичу.

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

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

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

Текст формируется при помощи генератора псевдослучайных чисел и непосредственно связан с номером текста.

Скорость передачи текста изменяется в пределах от 20 до 299 знаков/минуту.

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

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

В окне дополнительных настроек можно изменить паузу между знаками, паузу между группами (пауза между группами не может быть меньше паузы между знаками + 4 точки), количество знаков в группе, количество групп в тексте, частоту тонального сигнала, язык интерфейса программы, добавить/убрать префикс начала текста VVV= и сигнал окончания текста AR (ЕЦ).

Окно ввода текста предназначено для ввода принимаемого текста. В случае неправильного приема очередного знака вместо него отображается символ "_". ВНИМАНИЕ! Текст нужно вводить на том языке, которым отображен передаваемый текст (регистр символов может быть любым). Группы отделяются клавишей "пробел". Перевод строки осуществляется автоматически (никаких дополнительных клавиш нажимать не надо). Если Вы не приняли какой-то знак, то вместо него нужно нажать любую клавишу. Знак считается принятым правильно только в том случае, если он будет записан в нужной позиции (то есть без смещения текста).

Программа CW Master.

Программа CW Master предназначена для тренировки приема CW.

Она разбита на два модуля.

Основной модуль (закладка "Прием позывных") написан по мотивам известной программы RUFZ.

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

Второй модуль (закладка "Прием текстов и радиограмм") --- формирует-воспроизводит цифровые, буквенные радиограммы и "открытый" текст.

В отличие от RUFZ, данная программа работает под Win95/98/NT/2000/XP с любой звуковой картой (в том числе и интегрированной), а вот со встроенным динамиком как раз не работает.

Программа ничего не прописывает ни в реестр, ни в системные директории Windows, что позволяет использовать ее, даже будучи пользователем с огранниченными правами в Win NT/2000.

Программа не требует инсталляции. Файлы cwmaster.exe , master.ped и readme.txt нужно положить в общую директорию и запустить cwmaster.exe.

2. Модуль "Прием позывных" --- Общие принципы.

Программа передает по очереди 30 реальных позывных, случайно выбранных из файла master.ped Если позывной принят верно, то скорость передачи следующего увеличивается на 2 wpm. Если не верно, то скорость уменьшается на 1 wpm. Тон передачи каждого позывного меняется в небольших пределах случайным образом.

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

Зависимость от скорости квадратическая, зависимость от длинны позывного --- линейная.

Количество очков не зависит от скорости введения позывного.

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

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

3. Модуль "Прием позывных" --- Как работать?

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

Для контроля предварительных установок существует режим "Предварительное тестирование", при котором непрерывно передается буква V. В него можно попасть нажав соответствующую кнопку или на клавишу F3.

Для того, что бы начать прием нажимаем кнопку "Старт" (или клавишу Enter). После того как позывной прозвучал, набираем его на клавиатуре и нажимаем клавишу Enter. Прием можно прекратить в любой момент нажав кнопку Стоп или Esc на клавиатуре.

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

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

4. Модуль "Прием текстов и радиограмм"

С радиограммами все должно быть понятно --- формируем, нажимаем на "Старт" и записываем принятое на бумажку. Такая "запись рукой" полезна на начальных стадиях изучения CW, а по достижении скорости приема 25-30 wpm целесообразно отказаться от записи и перейти к тренировкам приема открытого текста просто "на слух". Причем, советуют слушать сначала короткие слова, типа "что" , "как" и т.д., что бы запомнить их звучание, а за тем переходить к более длинным словам.

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

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

В целом, интерфейс программы настолько прост, что легче попробовать, чем описать что и как надо делать:)

Его можно украшать, "оттачивать", сделать статистику и подобные "примочки", но мне это не интересно.

Вводить модули PILE-UP-а и уж,тем более, CyberContest-a не вижу смысла --- все это есть в эфире! :)

Программа Азбука Морзе.

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

В программе нет никаких регулировок, скорость и тон установлены постоянными.

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

Программа Morse Code Trainer.

[email protected]

Простая программа с приятным интерфейсом, которая прокручивает кодом Морзе заданные тексты с заданной скоростью.

Программа NuMorP.

Программа NuMorP применяется для обучения и тестирования солдат армии США.

http://www.nu-ware.com/

Программа прокручивает кодом Морзе заданные тексты с заданной скоростью.

Для получения англоязычной расладки клавиатуры запустить программу из папки "Из программфафла" или запустить инсталяционный файл, он установит программу с записью в реестре, при этом будет английская раскладка клавиатуры.

Для удобства окна этих сообщений закрывать комбинацией клавиш Alt+F4.

Программа NuMorse 2.2.2.0.

Программа NuMorse 2.2.2.0 применяется для обучения и тестирования солдат армии США.

http://www.nu-ware.com/

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

Для получения русскоязычной раскладки клвиатуры, просто запустить екзе файл из папки программы RUS.

Для получения англоязычной расладки клавиатуры запустить программу из папки ANGL или запустить инсталяционный файл, он установит программу с записью в реестре, при этом будет английская раскладка клавиатуры.

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

Для удобства окна этих сообщений закрвывать комбинацией клавиш Alt+F4.

Программа Морзе ДКМ Military Edition.

http://europpa.narod.ru

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

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

Программа APAK-CWL.

Не сложная, не требующая инсталяции программа для изучения азбуки Морзе.

Для запуска программы зайдите в папку "apak" и запустите стартовый файл.

Папка "apak", это уже распакованный архивы "apak-2r.exe" и "ruswav.exe".

Очень полезная программа для изучения CW на русском языке, по ДОСААФовской методе.

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

Это позволяет избегать "пролистывание" упражнений, которые не нравятся, а позволяет систематизировать учебный процесс).

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

Распакуйте архив в желаемую папку и программа готова к работе. Win 9x,NT Необходимо, чтобы были включены маленькие шрифты. Win NT. Отключите системные звуки.

Схема: "Нет звука". Для де инсталляции просто удалите все, что относится к программе.

Это два самораспаковывающихся архива в apak-2r.exe находится сама программа и необходимые для нее данные, а в ruswav.exe находятся напевы.

Если вы не желаете изучать CW при помощи напевов, то вам нет необходимости копировать ruswav.exe.

Оба архива следует распаковывать в одну и ту же папку.

Тем, кто использует предыдущие версии, нет необходимости копировать ruswave.exe.

Программа написана достаточно давно, поэтому для успешной работы в современных операционных системах (WINDOWS XP SP2 и выше) необходимо запускать ее в режиме совместимости с windows 95. (Правая кнопка мыши на ярлыке - Свойства - закладка Совместимость - Установить "галку" Режим совместимости).

Программа Morse Generator.

Описание: MorseGen2 - немного переделанная программа MorseGen by Julian Moss (G4ILO).

По сравнению с оригиналом внесены следующие изменения:

1. (+) изменён интерфейс программы (часть сообщений и надписи переведены на русский),

2. (+) поддержка знаков русского алфавита,

3. (+) выбор числа групп (10..500 с шагом 10),

4. (+) увеличена максимальная скорость (40 wpm),

5. (-) генерация QSO не поддерживается. Увеличена скорость передачи до 80 wpm и при передаче произвольного текстового файла удаляются повторяющиеся пробелы и некоторые другие служебные символы, т.е. форматирование текста не влияет на передачу.

24 сентября 2015 в 11:18

Программа для генерации звукового кода Морзе

  • Программирование ,
  • C++ ,

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

В качестве инструмента реализации идеи был выбран С++ в связке с Qt.

Основная идея программы

Атомом (единицей времени) кода Морзе является точка, относительно нее формируется длительность всех остальных элементов:
  1. Тире равняется трем звучащим точкам;
  2. Пауза между элементами одного символа (знака) - одна незвучащая точка;
  3. Между знаками - три точки;
  4. Между словами - семь точек.
Как видите, любой код, основанный на азбуке морзе, можно представить в виде набора звучащих и незвучащих точек: от этой идеи я и отталкивался, причем такое решение мне показалось достаточно оригинальным.

Первоначальный вариант реализации

В первой версии программы комбинация звучащих и незвучащих точек хранилась в виде вектора с булевыми элементами, где true соответствовал включению звука, а false - выключению.

Как вы уже поняли, для получения конечного сигнала я всего лишь «дергал» звук с некоторой задержкой (с помощью таймера, равного длительности точки в миллисекундах) при бесконечно воспроизводящемся.wav файле с записью синуса. Но данный подход имел значительный минус и заключался он в том, что приходилось каждую точку загружать отдельно с помощью перегруженного оператора или специального метода. Из-за такого подхода пришлось писать отдельный макрос для каждой буквы (вроде такого - #define I DOT << false << DOT) и создать огромный жуткий switch для воспроизведения переданной строки. Это было ужасно, но если вам любопытно, то вы можете ознакомиться
с первой версией программы (у меня не получилось полностью загрузить на GitHub локальный репозиторий - только последнюю версию).

Кусочек жуткого свитча:

bool Morse::StringToMorse (QString &line) { line += "\0"; for (int i = 0; i < line.size () - 1; ++i) { switch (line.at(i).unicode ()) { case "A": *this << A; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; case "B": *this << B; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; // И так далее


А вот так происходило включение и выключение звука (собственно, генерация звукового кода):

void Morse::PlayLinePoints () { QTimer::singleShot (duration_point_, this, SLOT (Mute ())); sound_.play (); } void Morse::Mute () { if (line_points_.empty ()) { //Останавливаем воспроизведение sound_.stop (); return; } if (line_points_.at (0)) { //Включаем звук sound_.setMuted (false); line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); return; } else { sound_.setMuted (true); //Выключаем звук line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); return; } }

Окончательная версия

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

//Хранит соответствующие комбинации точек и тире символов QMap codes_;
Такой подход оказался очень удобным. Теперь я всего лишь использовал текущий воспроизводимый символ в качестве ключа и получал готовый
для воспроизведения код (набор булевых значений), правда, алгоритм воспроизведения немного усложнился: понадобилось ввести счетчик текущего элемента символа и счетчик символов в строке:

Новая реализация воспроизведения:

void Morse::MiniSpace () { if (stop_) { this->Stop (); return; } sound_.setMuted (true); ++id_element_; //Преходим на другой элемент кода if (id_element_ == codes_.value (string_to_play_.at (id_char_)).size ()) { ++id_char_; id_element_ = 0; QTimer::singleShot (duration_dot_ * 3, this, SLOT (Mute())); //Пауза между символами return; } QTimer::singleShot (duration_dot_, this, SLOT (Mute())); //Пауза между элементами символа } void Morse::Space () { if (stop_) { this->Stop (); return; } sound_.setMuted (true); //Пауза длится 7 точек //Но так как после символа идет пауза в три точки, то доп паузу нужно выставить длиной в 4 точки QTimer::singleShot (duration_dot_ * 4, this, SLOT (Mute())); } void Morse::Mute () { if (stop_) { this->Stop (); return; } if (id_char_ == string_to_play_.size ()) { // Строка закончилась this->Stop (); return; } if (string_to_play_.at (id_char_) == " ") { Space(); ++id_char_; //Преходим на другой элемент кода return; } if (codes_.find (string_to_play_.at (id_char_)) == codes_.end ()) { qDebug() << string_to_play_.at (id_char_) << ": No code!"; sound_.stop (); return; } sound_.setMuted (false); //Включаем звук if (codes_.value (string_to_play_.at (id_char_)).at (id_element_)) { QTimer::singleShot (duration_dot_, this, SLOT (MiniSpace())); //Воспроизводим точку } else { QTimer::singleShot (duration_dot_ * 3, this, SLOT (MiniSpace())); //Воспроизводим тире } } bool Morse::Play () { if (!stop_) return false; if (string_to_play_ == "") return false; stop_ = false; id_char_ = 0; id_element_ = 0; sound_.setMuted (true); //Выключаем звук sound_.play (); Mute (); } void Morse::Stop () { if (stop_) return; sound_.stop (); id_char_ = 0; id_element_ = 0; stop_ = true; }


Флаг stop_ был введен для предотвращения некорректной работы программы (два вызова подряд Play() и прочих нехороших вещей).
Остальную часть исходных кодов и заголовочные файлы не вижу смысла приводить в теле статьи, так как там все достаточно очевидно и прозрачно.

Полный набор исходников последней версии вы можете скачать на