Как стать автором
Обновить

Комментарии 121

А я уже много лет мечтаю о драйвере для винды, который позволит выводить через спикер все звуки в системе вместо динамиков) Такое ведь было во время DOS и Win9x. Мне даже поясняли, почему это нереально сегодня сделать, но всё же было бы прикольно позапускать фильмы, старые игры, некоторую музыку, чтобы она звучала с хрипами и искажениями из спикера.
Помню наоборот ставили драйвер, чтобы звуки модема при коннекте НЕ шли из спикера, так как там громкость не регулировалась и прямо в ночи такие истошные звуки соединения с адом доносились из него
Я в то отверстие спикера вворачивал болтик подходящего диаметра и поджимал мембрану до состояния когда звук почти исчезал.

Живодёр! :)

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

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

Вы сейчас предка переменного резистора описали.
А вход «Турбо» материнки подключить к тому самому аппаратному таймеру, к которому умельцы подключали спикер. И в результате найти аппаратную уязвимость 386/486 процессоров, не все же они достались современным.

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

Душил подушкой во время подключения)

Тумблер в разрыв, не? Или переменный резистор.

Я почти такую операцию провёл с десятком детских игрушек. Среди разработчиков интерактивных игрушек почему-то принято (даже при наличии штатных кнопок настройки громкости) включать игрушку сразу на максимальной громкости.

Разбирал и впаивал резисторы.

У меня сейчас есть одна китайская материнская плата, там адовый и мерзкий звук спикера при запуске, после того как пост-коды все пробегут (кто слышал — той поймет)
Так я просто жвачкой заклеил ))
так у модема свой динамик, или речь про софтмодемы, которые выводили через звуковую?
Эммм… Софт-модем так назывался ввиду того, что из мозгов у него было примерно нифига и вся его высшая нервная деятельность вытворялась драйвером. ЕМНИП, у таких модемов под никсы и дров-то не было. Хардверные же модемы всё управление потоком данных и сессией разруливали сами, не озадачивая ЦПУ лишним геморроем.
А динамики модемы имели все.
драйверы были. собственно, у меня вопрос-удивление о том, каким местом pc speaker связан с модемом — в каком-нить ноуте вполне себе модем могли и на системные пищалки сунуть, а всё остальное и правда со своей собственной бесилкой шло.
да никак и не связан, собственно. Я же реагировал на тезис
софтмодемы, которые выводили через звуковую

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

Вспомнился старый анекдот: Вин-админ — это как вин-модем, только вин-админ.
их и при наличии дров так называли, как и GDI-принтеры.

а анекдот грустный, и до сих пор актуальный.
В микшере звуковой карты может присутствовать регулировка PC Speaker и/или TAD/Modem.
Примеры микшеров (фото из интернета, читаем подписи к ползункам)
image
image
image
image

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

Софтовые модемы могли выдавать свой звук прямо в Wave звуковой карты и их громкость регулировалась в свойствах драйвера модема. Были ещё AMR, те вообще сидели прямо на кодеке AC97.
Зачем драйвер, если есть AT команда, которую просто надо было вписать в инит строку в свойствах модема?

ATM0же.

разные варианты были, у нормальных модемов типа IDC можно было и громкость на минимум убрать и вдобавок сделать так, что он ретрейны подзвучивать будет — всё же телефонные линии в россии отличались тем, что обрыв/бизю ДАЖЕ специально адаптированные модемы далеко не всегда видели.
Э… В строке инициализации добавить после AT символы M0 недостаточно было???

Мне даже стало интересно почему нельзя.. Прямо в статье пишут, что можно выводить до 256 различных тонов. Разве нельзя просто на программном уровне "перенаправить"?

Пишут, если припаять спикер к таймеру.

А так, можно выводить довольно произвольные звуки в неплохом качестве (это делали DOS-программы), одна проблема — CPU будет почти полностью занят, нет аппаратного ускорения под спикер.
Пишут не совсем правду. В IBM PC «Пищалка» уже припаяна к выходу таймера, так что ничего делать не нужно, загружаем в таймер делитель, разрешаем работу, и наслаждаемся звуком меандра. Поскольку меандр генерируется аппаратно, пищалка продолжает пищать, даже если сама программа намертво зависла.
Пищать – да, а вот выводить какой-то более сложный звук – нет. Для этого надо постоянно параметры таймера менять (емнип там обычно использовалось два таймера: один дёргал прерывание, по которому меняли длину второго, подключенного к спикеру).
Да, всё так и есть было. Но эти операции не затратные, и ЦП, как тут пишут, не нагружают почти никак.
Чтобы выводить качественный звук ШИМ-ом или ещё как-то, нужно менять параметры спикера с частотой 256khz-1mhz. 1bit/1mhz интерполируется в нормальные 16bit/44khz.

Именно так. Причём здесь важна не только частота, но и точность интервалов. Тут никакие средства операционной системы здесь не помогут — они слишком грубые, только busy wait с приоритетом реального времени. Во времена одноядерных процессоров это означало, что ничего, кроме как воспроизводить звук, система делать не могла.


Небольшой экскурс: PC Speaker может управляться как программируемым таймером, так и напрямую через выставление 0 или 1. Соответственно, весь вопрос — как эти 0 и 1 отправлять в нужные моменты времени.


Способ 1: поднять частоту системного таймера (INT 8) и посылать 0 или 1 в обработчике прерываний. Но вызов прерываний — это довольно дорого.


Способ 2: просто крутить холостой цикл для обеспечения задержки. Минус: надо ещё учесть время, которое процессор потратил на полезную работу.


Способ 3: программируемый таймер имеет обратную связь. Можно поднять ему частоту и постоянно опрашивать его состояние. Плюс: это точнее, чем способ 2. Минус: может криво работать и пропускать циклы.


Способ 4: RDTSC. На старых процессорах недоступен.


И да, во всех случаях это возможно только в реальном режиме (или в ring 0).

Было несколько вариантов разрешения работы с портами в ring 3, к примеру, giveio.

В этом случае вы получаете ограниченный вариант: монофонический звук.

Первые звуковые карты и были монофонические. В 1996 году набор «сделай сам» из платы и деталей, представлявший собой клон не слишком широко разошедшейся карты, стоил 15$, столько же стоила мультяшка — плата портов com/lpt.

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

Да. Помню выводил через спикер всякую "музыку" с хрипами, т.к. звуковая карта а те времена была роскошью. Под dos резидентник писал на какое то прерывание, не помню уже.

Причем при выводе звука всё остальное дико тормозило. Под 95 винду даже драйвер был, который все звуки на спикер посылал и всё висло напрочь

К win 3x такой драйвер был, и очень выручал.

Как правильно написали выше, CPU в это время был полностью занят и запуск проигрывания длинного звукового файла без вариантов заставлял дослушать его до конца :)

Да ладно! MOD-файлы отлично игрались на PC Speaker, и можно было даже на лету переключать каналы:


https://www.youtube.com/watch?v=Biyjb4pa8zE&t=28s

О да!
Лето 98 года (примерно), кто-то выложил данный проигрыватель с несколькими треками в ЛВС КГАРФ. Администраторы конечно же пытались искать и удалять, но у нас тогда уже появилась привычка делать копии на дискетах )))

Как-то оно очень круто звучит для спикера. Полагаю в эмуляторе это дело значительно лучше звучит и уже с выводом в звуковую карту :)

поверьте, оно реально круто звучало именно из спикера. с GUS или SoundBlaster звук был ещё мягче и приятнее, но оно и из спикера выдавало отличное техно. Das Boot я мог слушать по 10 раз подряд)))

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

Думаю вы правы, вот пример, как звучит настоящий спискер записанный на микрофон на реальном железе и как на эмуляторе:
youtu.be/NIyQueXqRYE?t=1105

Звучит лучше, чем ожидается, но хуже, чем в видео выше.
Ух, как ностальгия пробила :))
МОД файлы действительно были крутым прорывом после *.mid и весили не очень много.
Кстати не по теме, а есть хоть какие-нибудь трекерные плееры для симбиана? Нагуглил на единственном сайте некий Mobi tracker, ссылка битая и даже гугл о таких не слыхивал. Один спам мне ищет.
Да ладно! MOD-файлы отлично игрались на PC Speaker, и можно было даже на лету переключать каналы:
И как это доказывает, что CPU не загружен? Не было бы нагрузки на CPU, был бы MOD-плеер в виде TSR, позволяющий слушать музыку и запускать turbo pascal, например…

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

Курсор мыши не показатель. На ZX-Spectrum были плееры через бипер, которые максимально грузили процессор, но выдавали плавную анимацию в 50fps через атрибуты (бегущие цветные квадратики), там буквально сотню-две тактов нужно было от всего фрейма на эту анимацию.
сли уж тут каналы можно было миксовать в реальном времени, на Паскаль бы процессора хватило
Проблема не сколько в количестве данных, а в том, что в порт надо выдавать их равномерно по времени. Нельзя, как с нормальной аудиокартой, потратить 5% времени на плеер и микширование, настроить проигрываение готового блока на аудиокарте через DMA и забыть до следующего фрейма. Надо постоянно выводить в порт, без пауз (ну можно взять микро-паузу на курсор мыши, обработку кнопок, обновление статистики в текстовом режиме, будет немного потрескивать).

про курсор согласен, но микс каналов это явно очень прожорливое до ресурсов CPU действие

Я вторую часть дописал. Неважно, насколько мощный процессор, и насколько тяжёло миксовать каналы (там по сути умножения с весами, до пентиумных времён оно было медленным, но была куча ухищрений с таблицами). Важно то, что какой бы не был мощный процессор, после вывода бита в спикер, нужно было подождать 10-100-1000 тактов (на мощных процах) и выводить следующий бит. Никакая многозадачность так работать не сможет.

Михаил, добрый день. Прошу прощения за беспокойство и что пишу здесь. Не могу отправить вам личное сообщение и откомментировать ни один ваш пост. Прочитала вашу статью про Шутерсток, которая меня очень вдохновила. Я столкнулась с похожей проблемой. Но в отличие от вас, узнала, что с меня списывают деньги спустя полгода...У меня пакет точно такой же, как у вас. общалась с поддержкой, где сказали, что я должна заплатить 120 долларов за досрочную отмену плана, иначе деньги будут списываться еще 5 месяцев. В итоге мне отменили, так как я сказала, что нигде у них на сайте не вижу об этом информации. Честно, я не надеялась на успех, теперь думаю, попробовать вернуть деньги, которые списывались у меня. Хочу использовать вашу стратегию по части "Отмена автопродления". Скажите, пожалуйста, ведь по сути они были правы, когда сказали, что вы не туда нажали. Но как вам все-таки удалось добиться возврата денег? какие еще аргументы вы использовали, что они отступили? Помогите мне, пожалуйста

Ответил в личку, обязательно помогу

В брендовых системниках часто спикер кроме основной задачи подключён и к выходу аудиокарты, что позволяет худо-бедно обойтись без колонок для озвучивания рабочего процесса. Если вывести громкость на максимум, пожалуй можно добиться и хрипа от спикера.
Драйвер вряд ли (да и спикера классического уже нет), а вот на какой-нибудь blue pill сделать USB звуковую карту, которая будет выводить так же, как выводилось на спикер (PWM с не шибко высокой частотой) реально.

У меня есть ощущение, что тут вполне хватит какой-нибудь attiny.

По быстродействию да, но на stm32 можно сделать USB sound card, которая подхватится стандартными драйверами. А на AVR придётся ещё драйвер писать.
во время DOS и Win9x.

Я помню как Касперский через него оповещал о нахождении вируса, криком свиньи, и громкость не регулировалась %) И это вроде было во время ХР

Вот с тех пор я не люблю антивирусы.

Я тогда ещё не знал, что Касперский под ментами, что антивирусы не нужны и проч. Визг госпожи Касперской невозможно забыть.

в моем мониторе есть говененький динамик без "низов". всегда включен. дров не требует. звук не сильно лучше, чем в DOS-е.

Что толку, если он не делает «пип» при инициализации BIOS.

мой UEFI с настройками по умолчанию и на спикере не пищит.
у мониторного динамика есть плюс: игры в dosbox звучат аутентично.

В линуксе, кстати, есть для этого драйвер snd_pcsp. Работает как по мне вполне прилично.

Еще было бы интересно сделать на этом выводе софтовый UART, чтобы в него отладочные логи системы пихать. Ибо последовательные порты не везде доступны, в отличие от «пищалки».

Просто подключите спикер к звуковой карте.

часть команды ментейнеров Linux ждет каждый год нового запроса от R.F. Burns с адреса burnsrf(@)gmail.com. Причем, этот ник также имеет какой-то скрытый смысл, но пока его никто не обнаружил среди исследователей.
никнейм: Resonant frequency burns, адрес почты: burn speakerphone.
Т.е. отсылка к коричневой ноте Картмана из серии Южного парка 2000 года только для мира старых ПК? Было бы жестоко, но время прошло. И типа он знает сам, как это сделать, судя по нику и адресу, и просто троллит разработчиков?
В современных компьютерных корпусах спикера, зачастую, нет. Я долго искал его в своём Fractal Design Define. Но его просто нет.

Я с трудом нашел, где его купить) Точнее в продаже есть, но по 100-150 рублей за штуку. В итоге нашёл за 10 рублей, что всё равно дорого, но уже не 100)

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

Я на Али заказал жменю баззеров, как на картинке. Отлично работают, только у них странная зависимость от тока/напряжения, которую я не понял. То орут, то еле шелестят.

У них ещё есть резонансная частота. Это как раз где-то между 1 и 3 кГц. На них отдача максимальная. Всё-таки это не громкоговоритель и предназначен выдавать бип определённой частоты но зато максимально громко.
А ведь раньше были полноценные динамики
image

Худо-бедно, но средние частоты они вытягивали)
Во, у меня несколько таких где-то лежали, но чаще всё таки крохотные.
Причем эти мелки в старых корпусах их ведь до морды вели, а в новых прям у мамки висят на хвостиках.
Если взять 4 таких динамика (если они валяются без дела) и подключить по схеме «четвёрка резвых», и вклеить в пластиковый корпус, можно получить колоночку со звуком средней паршивости)) Добавляем mp3-декодер и усилитель на 3 ватта, антенну, обклеиваем фетром, и радио на кухню готово) Единственный такой динамик тоже можно, но звук слишком уж писклявый.

Какой я старый... Для меня по-умолчанию динамик корпуса как правило бумажный и сантиметров 5 диаметром.

А вы его подключали через кнопку «Turbo» или через ключ клавиатуры?
(было удобно отключать звук на ночь)

в моем Поиске не было ни того, ни другого. звук полицейской сирены в игре test drive вымораживал.

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

В старых системниках спикер - это обычная 8 Ом , 0.5 ватт динамическая головка. В 2000-х их заменили примитивной пищалкой, а потом и её убрали.

Он идет в комплекте с некоторыми материнскими платами.

Был в комплекте какой-то из матплат, и теперь уже много лет переезжает из сборки в сборку
А почему именно «взорвать»? У слова blow столько значений, что даже на порнхабе есть такая категория…

интересно, где вы увидели в тексте слово blow? там же burn

На скриншотах писем.


Is it possible to write a kernel module which, when loaded will blow PC speaker.

Я бы все таки перевел это как гудеть, а не взорвать. По аналогии с blow a horn - гудеть в охотничий рог.

В оригинале всё-таки обсуждается уничтожение.


One tongue-in-cheek but helpful responder to R.F. Burns (we’re now as good as certain that the name is part of the joke), in the first year of asking, suggested that it might be possible to find a specific frequency for each speaker at which you would cause resonance, and get it to shake itself to bits.
В данном случае to blow — всего лишь, пережечь, заставить перегореть, как предохранитель. Вполне пересекается с упомянутым там «make it no longer usable». Но как известно, при прочих равных громкоговоритель будет потреблять максимальный ток, если пропустить через него постоянку. Если там тупо ключ, это вполне возможно. Но. 5 В через 8 Ом — это 0,625 А, будет греться, но сутками не перегорать. А ведь он там и на 32 Ома может быть, тогда и греться почти не будет.
Если он совсем ни на одно письмо не отвечает, то возможно это действительно просто скрипт.

Не, он там местами в переписке участвовал.

За столько лет можно бы уже и самому освоить программирование и написать этот драйвер.

Я — Р.Ф. Бёрнс, и всё не так однозначно...

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

Шутка юмора, если что.

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

взорвать спикер

Прямо вижу как на дэшборде у товарища майора замигала красная лампочка…
Спикер гос. думы?
опять замигала

Еще в Совете Федерации есть.

/Опять замигала
энтузиасты припаивали провод питания динамика к программируемому интервальному таймеру (Programmable Interval Timer, PIT) и получали возможность имитировать на спикере 6-битные (64 различных уровня звука) или даже 8-битные (256 различных уровней звука) мелодии и немного странную, но понятную человеческую речь


Еще в 1992м я случайно где-то скачал маленький (17-25 кб) .com файл, который показывал морду мужика, и громко посылал на йух через динамик. Морда была нарисована в текстовом режиме с перепрограммированием знакогенератора, звук был относительно четкий и разборчивый (как минимум, леща от сестры я отхватил сразу же после установки этой проги в autoexec.bat на рабочей ЕС1840).
Если я не ошибаюсь, то эта программа называлась «шлюхер». И да это было очень громко!

Таки да! Благодарствую

https://youtu.be/RPQtCC0nlKE

Ещё была замечательная "[фанфары]Здравствуй жопа" программа.
Ностальгия, как круто из PC Speaker музыка из Prince of Persia звучала:
Пример крутого звука на PC спикере ингейм выложили пример внизу. А если речь только за титры, то тут только Myth, только хардкор!

Помню на моём PC спикере (именно динамичке) разрывал просто в клочья!
Но потом так и не ответил, почему он продолжает слать запросы. Может cron у него был так настроен, причем в разные дни, а потом он забыл про эту задачу).

Хабраэффект и туда добрался О_о


--2021-06-22 13:29:58--  https://lkml.org/lkml/2007/6/12/185
Resolving lkml.org (lkml.org)... 104.21.79.90, 172.67.143.11, 2606:4700:3035::ac43:8f0b, ...
Connecting to lkml.org (lkml.org)|104.21.79.90|:443... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 522
  Date: Tue, 22 Jun 2021 09:30:31 GMT
Кстати интересно, получается ему нужно не именно «взорвать» пищалку, а просто отключить ее любым способом, чтобы ученики не могли баловаться спикером даже в обход ОС (хотя мне прям очень интересно, как они все-таки смогли использовать спикер без ядерного модуля и без root-прав одновременно; почему-то сомневаюсь, что в линухе реально писать ручками в 61h из юзерспейса).

В рассылке предположили, что у него биос не запаролен и/или позволяет загрузку с носителей. Даже дали инструкцию, как это исправить, но на это R.F. Burns уже не ответил.

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

В спецификациях производителя не нашёл таких ))

спецификации чего?
если не подключить внешнее питание, раньше пищали. 30хх хуанга непонятно зачем пищали в режиме CSM.

В спецификации видеокарты строчка: «присутствует монофонический динамик 16 Ом, 20 Гц – 18 кГц» ))
Пищалки бывают даже в вентиляторах, типа применяемых в компьютерах. При заклинивании вентилятор делает попутку раскрутиться, если не удаётся — пищит.
До ПЗУ видеокарты, по крайней мере, добираться научились давно, к примеру программа uniflash.
Сначала надо в raid контроллерах их уничтожить — вот там они жутко громкие стоят

На самом деле, их сравнивать будет не совсем честно.

В Prince of Persia используется классический подход -- музыка играется по нотам, для каждой ноты задается частота таймера, который и генерирует сигнал для спикера.

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

Зашёл сюда прочитать воспоминания старожилов про Scream Tracker, но увы. Что ж, пусть будет хотя бы упоминание…
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.