1

Тема: Як видати та зчитати звук лінукс?

Доброго дня!
Роблю програму для радіомодема для Ubuntu 16.04.
Що таке радіомодем, див. в інтернеті. Радіомодем - це якби передача цифрових даних через радіопередавач. Є готові модеми, є саморобні. Саморобні приєднуються до "шарманок", тобто нелегальних радіопередавачів.
Але головна роль при створенні такого модема - це правильне і швидкісне перетворення нулів та одиниць в якийсь сигнал, який має бути переданий на цю шарманку.
Люди роблять з КОМ-портом, проте у мене немає ком-шнура і я не можу це зробити.
Я не знайшов нічого простішого, аніж передавати тональний сигнал напряму через аудіовихід ноутбука, замість мікрофона шарманки.
Тобто, програма на комп’ютері має генерувати тональний сигнал і передавати на мікофонний вхід шарманки. Далі, цей сигнал передається шарманкою в ефір.
До іншого компа має бути підключений радіоприймач, аудіовихід якого має бути ввіткнутий в мікрофонний вхід компа. На цьому компі має стояти така ж програма, яка має розшифровувати тональний сигнал в нулі і одиниці.
Я спеціально подивився, моя звукова карта підтримує до 148000 гц на виході (до 148 кГц), тобто це межа, на якій передаються дані.
А далі - С та С++. Потрібно в режимі реального часу, 148 тисяч разів на секунду формувати і видавати сигнал на звукову карту. Навіть якщо використовувати буфер, то хоча б 1000 разів на секунду. Тут може справитися тільки програмна передача звуку. Тому, будь-які зовнішні програми, запуск яких забирає багато часу (для цього модему мені не потрібен суперкомп), ві-па-да-ють! Тільки програмна передача.
Я знайшов, що мені потрібно передавати звук за допомогою відкриття файлу /dev/dsp і записування в нього інформації. Проте, на моєму компі цього файлу немає.
https://en.wikipedia.org/wiki/Open_Sound_System
Пізніше, я знайшов, що цей файл доспутний тільки в Убунту нижче 10.04, а починаючи з цієї версії, файл було прибрано.
Я гуглив де тільки міг впродовж 3-х днів на англійській, російській та англійських мовах і не знайшов жодної відповіді без використання сторонніх бібліотек, які не можуть так швидко передавати сигнал, як напряму.

А як приймати звук, я взагалі не знайшов, навіть для старих версій лінукс. Прошу допоможіть.

2

Re: Як видати та зчитати звук лінукс?

Навіть може на на сі плюс плюс. Просто скажіть, в який файл виконати з консолі
sudo (echo 942893759873486789437987897)>/dev/dsp
замість дсп, щоб програвся звук? Якщо в консолі запрацює, тоді на сі легко переведу.
Просто є підозра, що треба юзати с2с а я не знаю як

3

Re: Як видати та зчитати звук лінукс?

простий таймер. не перевіряв
Далі тобі потрібен драйвер пристрою, або декодер, якщо підключаєш пристрий до з/к

Подякували: poklvo1

4

Re: Як видати та зчитати звук лінукс?

Дякую, але в лінуксі стандартні драйвери для всіх пристроїв наче ж

5

Re: Як видати та зчитати звук лінукс?

яка схема підключення пристрою?

6

Re: Як видати та зчитати звук лінукс?

Вам не ALSA PCM Interface треба?

Подякували: poklvo1

7

Re: Як видати та зчитати звук лінукс?

Може й потрібен... А як його використовувати?
Схема підключення пристрою. Напруга з аудіовиходу 0.7 Вольти на максимальній гучності (міряв) має накладуватися на частоту на коливальному контурі задаючого генератора (18.432 мгц кварц). Квадратної форми. Посилання на емулятор:

Прихований текст

Конденсатор на 56 пФ підключається послідовно з кварцем, в емуляторі кварцу немає. Тому без нього. Тобто, кварц має стояти між емітером і конденсатором 56 пФ. А конденсатор цей залишається під’єднаним до колектора.
Замість шуму через резистор 1 кілоом підключається удіовихід компа. І на емуляторі видно, що це трохи змінює частоту (спробуйте видалити шум правою клавішею миші). Це просто наочно, насправді деталі трохи інші.
Іще одне посилання:

Якщо зменшити до 47 ом (наглядно), видно накладення частоти шуму на частоту генератора. У цьому емуляторі частота шуму більша за частоту генератора. У моїй же схемі навпаки.
Ось іще приклад, уже ближчий до мого:

Тут 148 кГц квадратної форми подається через 100 ом. Треба почекати пів хвилини. Саме так і буде працювати мій модем.

Тобто, мій модем буде подавати сигнал саме квадратної форми а не іншої. На базі цього, будуть створюватися тональні імпульси. І для цього треба швидкодіюча програма.