Комментарии 122
А я уже много лет мечтаю о драйвере для винды, который позволит выводить через спикер все звуки в системе вместо динамиков) Такое ведь было во время DOS и Win9x. Мне даже поясняли, почему это нереально сегодня сделать, но всё же было бы прикольно позапускать фильмы, старые игры, некоторую музыку, чтобы она звучала с хрипами и искажениями из спикера.
Помню наоборот ставили драйвер, чтобы звуки модема при коннекте НЕ шли из спикера, так как там громкость не регулировалась и прямо в ночи такие истошные звуки соединения с адом доносились из него
Я в то отверстие спикера вворачивал болтик подходящего диаметра и поджимал мембрану до состояния когда звук почти исчезал.
Живодёр! :)
А не проще было выключение спикера сделать? Традиционное решение было подключить его через кнопку Turbo, благо, для этого ничего паять не требовалось, просто подсоединялись проводки нужным образом.
Зато тут была хардварная регулировка громкости. На самом деле, болт - первое что пришло в голову, а потом уже просто лень было переделывать.
А вход «Турбо» материнки подключить к тому самому аппаратному таймеру, к которому умельцы подключали спикер. И в результате найти аппаратную уязвимость 386/486 процессоров, не все же они достались современным.
А я закладывал в него немного ваты, потом тонкую резинку и заматывал скотчем.
Тумблер в разрыв, не? Или переменный резистор.
У меня сейчас есть одна китайская материнская плата, там адовый и мерзкий звук спикера при запуске, после того как пост-коды все пробегут (кто слышал — той поймет)
Так я просто жвачкой заклеил ))
Так я просто жвачкой заклеил ))
так у модема свой динамик, или речь про софтмодемы, которые выводили через звуковую?
Эммм… Софт-модем так назывался ввиду того, что из мозгов у него было примерно нифига и вся его высшая нервная деятельность вытворялась драйвером. ЕМНИП, у таких модемов под никсы и дров-то не было. Хардверные же модемы всё управление потоком данных и сессией разруливали сами, не озадачивая ЦПУ лишним геморроем.
А динамики модемы имели все.
А динамики модемы имели все.
драйверы были. собственно, у меня вопрос-удивление о том, каким местом pc speaker связан с модемом — в каком-нить ноуте вполне себе модем могли и на системные пищалки сунуть, а всё остальное и правда со своей собственной бесилкой шло.
да никак и не связан, собственно. Я же реагировал на тезис
Кстати, софт-модемы не все имели возможность работать с красноглазым пользователем как раз ввиду отсутствия дров, потому их и называли вин-модемами.
Вспомнился старый анекдот: Вин-админ — это как вин-модем, только вин-админ.
софтмодемы, которые выводили через звуковую
Кстати, софт-модемы не все имели возможность работать с красноглазым пользователем как раз ввиду отсутствия дров, потому их и называли вин-модемами.
Вспомнился старый анекдот: Вин-админ — это как вин-модем, только вин-админ.
Э… В строке инициализации добавить после AT символы M0 недостаточно было???
Мне даже стало интересно почему нельзя.. Прямо в статье пишут, что можно выводить до 256 различных тонов. Разве нельзя просто на программном уровне "перенаправить"?
Пишут, если припаять спикер к таймеру.
А так, можно выводить довольно произвольные звуки в неплохом качестве (это делали DOS-программы), одна проблема — CPU будет почти полностью занят, нет аппаратного ускорения под спикер.
А так, можно выводить довольно произвольные звуки в неплохом качестве (это делали 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.
Конечно, такие способы есть.
https://habr.com/ru/post/527006/
https://habr.com/ru/post/429198/
Но это всё костыли и дыра в безопасности.
В этом случае вы получаете ограниченный вариант: монофонический звук.
Первые звуковые карты и были монофонические. В 1996 году набор «сделай сам» из платы и деталей, представлявший собой клон не слишком широко разошедшейся карты, стоил 15$, столько же стоила мультяшка — плата портов com/lpt.
И довольно популярный благодаря простоте и дешевизне Covox был преимущественно монофоническим.
И довольно популярный благодаря простоте и дешевизне Covox был преимущественно монофоническим.
Да. Помню выводил через спикер всякую "музыку" с хрипами, т.к. звуковая карта а те времена была роскошью. Под dos резидентник писал на какое то прерывание, не помню уже.
Причем при выводе звука всё остальное дико тормозило. Под 95 винду даже драйвер был, который все звуки на спикер посылал и всё висло напрочь
К win 3x такой драйвер был, и очень выручал.
Как правильно написали выше, CPU в это время был полностью занят и запуск проигрывания длинного звукового файла без вариантов заставлял дослушать его до конца :)
Да ладно! MOD-файлы отлично игрались на PC Speaker, и можно было даже на лету переключать каналы:
О да!
Лето 98 года (примерно), кто-то выложил данный проигрыватель с несколькими треками в ЛВС КГАРФ. Администраторы конечно же пытались искать и удалять, но у нас тогда уже появилась привычка делать копии на дискетах )))
Как-то оно очень круто звучит для спикера. Полагаю в эмуляторе это дело значительно лучше звучит и уже с выводом в звуковую карту :)
поверьте, оно реально круто звучало именно из спикера. с GUS или SoundBlaster звук был ещё мягче и приятнее, но оно и из спикера выдавало отличное техно. Das Boot я мог слушать по 10 раз подряд)))
Думаю вы правы, вот пример, как звучит настоящий спискер записанный на микрофон на реальном железе и как на эмуляторе:
youtu.be/NIyQueXqRYE?t=1105
Звучит лучше, чем ожидается, но хуже, чем в видео выше.
youtu.be/NIyQueXqRYE?t=1105
Звучит лучше, чем ожидается, но хуже, чем в видео выше.
Ух, как ностальгия пробила :))
МОД файлы действительно были крутым прорывом после *.mid и весили не очень много.
Да ладно! MOD-файлы отлично игрались на PC Speaker, и можно было даже на лету переключать каналы:И как это доказывает, что CPU не загружен? Не было бы нагрузки на CPU, был бы MOD-плеер в виде TSR, позволяющий слушать музыку и запускать turbo pascal, например…
Курсор мыши плавно ездил) а Турбо Паскаль просто не влез бы в память, процессор тут ни при чём. Если уж тут каналы можно было миксовать в реальном времени, на Паскаль бы процессора хватило..
Курсор мыши не показатель. На ZX-Spectrum были плееры через бипер, которые максимально грузили процессор, но выдавали плавную анимацию в 50fps через атрибуты (бегущие цветные квадратики), там буквально сотню-две тактов нужно было от всего фрейма на эту анимацию.
сли уж тут каналы можно было миксовать в реальном времени, на Паскаль бы процессора хватилоПроблема не сколько в количестве данных, а в том, что в порт надо выдавать их равномерно по времени. Нельзя, как с нормальной аудиокартой, потратить 5% времени на плеер и микширование, настроить проигрываение готового блока на аудиокарте через DMA и забыть до следующего фрейма. Надо постоянно выводить в порт, без пауз (ну можно взять микро-паузу на курсор мыши, обработку кнопок, обновление статистики в текстовом режиме, будет немного потрескивать).
про курсор согласен, но микс каналов это явно очень прожорливое до ресурсов CPU действие
Я вторую часть дописал. Неважно, насколько мощный процессор, и насколько тяжёло миксовать каналы (там по сути умножения с весами, до пентиумных времён оно было медленным, но была куча ухищрений с таблицами). Важно то, что какой бы не был мощный процессор, после вывода бита в спикер, нужно было подождать 10-100-1000 тактов (на мощных процах) и выводить следующий бит. Никакая многозадачность так работать не сможет.
Михаил, добрый день. Прошу прощения за беспокойство и что пишу здесь. Не могу отправить вам личное сообщение и откомментировать ни один ваш пост. Прочитала вашу статью про Шутерсток, которая меня очень вдохновила. Я столкнулась с похожей проблемой. Но в отличие от вас, узнала, что с меня списывают деньги спустя полгода...У меня пакет точно такой же, как у вас. общалась с поддержкой, где сказали, что я должна заплатить 120 долларов за досрочную отмену плана, иначе деньги будут списываться еще 5 месяцев. В итоге мне отменили, так как я сказала, что нигде у них на сайте не вижу об этом информации. Честно, я не надеялась на успех, теперь думаю, попробовать вернуть деньги, которые списывались у меня. Хочу использовать вашу стратегию по части "Отмена автопродления". Скажите, пожалуйста, ведь по сути они были правы, когда сказали, что вы не туда нажали. Но как вам все-таки удалось добиться возврата денег? какие еще аргументы вы использовали, что они отступили? Помогите мне, пожалуйста
В брендовых системниках часто спикер кроме основной задачи подключён и к выходу аудиокарты, что позволяет худо-бедно обойтись без колонок для озвучивания рабочего процесса. Если вывести громкость на максимум, пожалуй можно добиться и хрипа от спикера.
Драйвер вряд ли (да и спикера классического уже нет), а вот на какой-нибудь blue pill сделать USB звуковую карту, которая будет выводить так же, как выводилось на спикер (PWM с не шибко высокой частотой) реально.
во время DOS и Win9x.
Я помню как Касперский через него оповещал о нахождении вируса, криком свиньи, и громкость не регулировалась %) И это вроде было во время ХР
в моем мониторе есть говененький динамик без "низов". всегда включен. дров не требует. звук не сильно лучше, чем в DOS-е.
В линуксе, кстати, есть для этого драйвер snd_pcsp. Работает как по мне вполне прилично.
Еще было бы интересно сделать на этом выводе софтовый UART, чтобы в него отладочные логи системы пихать. Ибо последовательные порты не везде доступны, в отличие от «пищалки».
Еще было бы интересно сделать на этом выводе софтовый UART, чтобы в него отладочные логи системы пихать. Ибо последовательные порты не везде доступны, в отличие от «пищалки».
Просто подключите спикер к звуковой карте.
часть команды ментейнеров Linux ждет каждый год нового запроса от R.F. Burns с адреса burnsrf(@)gmail.com. Причем, этот ник также имеет какой-то скрытый смысл, но пока его никто не обнаружил среди исследователей.никнейм: Resonant frequency burns, адрес почты: burn speakerphone.
В современных компьютерных корпусах спикера, зачастую, нет. Я долго искал его в своём Fractal Design Define. Но его просто нет.
Я с трудом нашел, где его купить) Точнее в продаже есть, но по 100-150 рублей за штуку. В итоге нашёл за 10 рублей, что всё равно дорого, но уже не 100)
Алиэкспресс? 22 рубля всё удовольствие. Хотя, по отзывам, пайка чрезвычайно хлипкая и эти два проводочка очень быстро отваливаются.
Нет, с али долго ждать. Нашёл какой-то подвальный магазинчик-скупку. И на али их упаковками минимум по 10 штук покупать, чтобы дешевле было.
Я на Али заказал жменю баззеров, как на картинке. Отлично работают, только у них странная зависимость от тока/напряжения, которую я не понял. То орут, то еле шелестят.
А ведь раньше были полноценные динамики


Худо-бедно, но средние частоты они вытягивали)
Если взять 4 таких динамика (если они валяются без дела) и подключить по схеме «четвёрка резвых», и вклеить в пластиковый корпус, можно получить колоночку со звуком средней паршивости)) Добавляем mp3-декодер и усилитель на 3 ватта, антенну, обклеиваем фетром, и радио на кухню готово) Единственный такой динамик тоже можно, но звук слишком уж писклявый.
Какой я старый... Для меня по-умолчанию динамик корпуса как правило бумажный и сантиметров 5 диаметром.
В старых системниках спикер - это обычная 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.
Он сам объяснял: lkml.org/lkml/2007/6/12/185
В данном случае to blow — всего лишь, пережечь, заставить перегореть, как предохранитель. Вполне пересекается с упомянутым там «make it no longer usable». Но как известно, при прочих равных громкоговоритель будет потреблять максимальный ток, если пропустить через него постоянку. Если там тупо ключ, это вполне возможно. Но. 5 В через 8 Ом — это 0,625 А, будет греться, но сутками не перегорать. А ведь он там и на 32 Ома может быть, тогда и греться почти не будет.
Если он совсем ни на одно письмо не отвечает, то возможно это действительно просто скрипт.
За столько лет можно бы уже и самому освоить программирование и написать этот драйвер.
Я — Р.Ф. Бёрнс, и всё не так однозначно...
del
Вот это я понимаю, Техподдержка с железными нервами. 15 лет клиент просит решить проблему, 15 лет его футболят.
Шутка юмора, если что.
Шутка юмора, если что.
взорвать спикер
Прямо вижу как на дэшборде у товарища майора замигала красная лампочка…
энтузиасты припаивали провод питания динамика к программируемому интервальному таймеру (Programmable Interval Timer, PIT) и получали возможность имитировать на спикере 6-битные (64 различных уровня звука) или даже 8-битные (256 различных уровней звука) мелодии и немного странную, но понятную человеческую речь
Еще в 1992м я случайно где-то скачал маленький (17-25 кб) .com файл, который показывал морду мужика, и громко посылал на йух через динамик. Морда была нарисована в текстовом режиме с перепрограммированием знакогенератора, звук был относительно четкий и разборчивый (как минимум, леща от сестры я отхватил сразу же после установки этой проги в autoexec.bat на рабочей ЕС1840).
Ностальгия, как круто из PC Speaker музыка из Prince of Persia звучала:
В 2007 году он дал ответ, зачем ему это нужно:
lkml.org/lkml/2007/6/12/313
lkml.org/lkml/2007/6/12/313
Но потом так и не ответил, почему он продолжает слать запросы. Может 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кстати, пищалки есть в современных видеокартах. их как взрывать будем?
В спецификациях производителя не нашёл таких ))
Пищалки бывают даже в вентиляторах, типа применяемых в компьютерах. При заклинивании вентилятор делает попутку раскрутиться, если не удаётся — пищит.
До ПЗУ видеокарты, по крайней мере, добираться научились давно, к примеру программа uniflash.
До ПЗУ видеокарты, по крайней мере, добираться научились давно, к примеру программа uniflash.
Сначала надо в raid контроллерах их уничтожить — вот там они жутко громкие стоят
Выше выкладывали Принца Персии как пример хорошей музыки на спикере. Нет уж, это плохой пример, а вот это куда лучше:
www.youtube.com/watch?v=SnOwboZQ_sM
www.youtube.com/watch?v=SnOwboZQ_sM
Зашёл сюда прочитать воспоминания старожилов про Scream Tracker, но увы. Что ж, пусть будет хотя бы упоминание…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Неизвестный уже 15 лет просит сделать драйвер в Linux, чтобы взорвать спикер