Направление потока аудио-файла в LPT-порт

Тема в разделе "WASM.WIN32", создана пользователем _vovan_, 9 ноя 2004.

  1. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    Ребят, такая проблема. Помогите, пожалуйста, любыми советами или дайте ссылки на нужную литературу!



    В общем, есть WAV-файл, который я подгружаю в прогу на Делфях.

    1-й вопрос: Как выхватить понравившийся кусок и затем его воспроизвести?

    2-й вопрос: Как направить этот кусок файла в LPT-порт для записи на цифровое устройство, которое к нему подключено?



    Заранее благодарен всем высказавшимся по этому поводу!
     
  2. Foamplast

    Foamplast New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2003
    Сообщения:
    80
    Адрес:
    Russia
    Выхватить кусок элементарно. Загрузить оглавление файла в память, узнать его формат. А далее, зная время начала куска и его конца, находим адрес куска в файле и читаем. Далее используем функции WaveOut*** и всё ништяк. Описаний формата WAVE в инете тысячи. Главное, проверять, чтобы в файле не применялся никакой способ сжатия. А то ещё придётся распаковкой заниматься.



    Решение второго вопроса зависит от устройства. Кстати, скорости порта может запросто не хватить.
     
  3. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    Foamplast, а ты можешь поподробней о загрузке оглавления файла в память и какие/как функции WaveOut*** использовать для выхватывания фрагмента?

    И, вообще, я правильно понимаю, что пусть WAV-файл будет даже сжат, но мне-то нужно в LPT посылать побайтово выхваченный кусок аудиопотока. А он, как я понимаю, будет в памяти уже в распакованном виде? И тогда возникает попутный вопрос: Как узнать адрес куска в памяти, чтобы начать его пересылать в порт?

    Только ли распакованный WAV можно записывать на цифровое устройство, в моем случае подключенное к LPT-порту?



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

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    _vovan_



    Так это от устройства зависит.



    И ты надеешься, что за одно сообщение,

    тебя сразу научат :) Даже Си минимально

    учат "за 21 день", а звук + устройства -

    это вообще надолго. А вот если бы ты изучал

    стандартные программы Виндов, то без всяких

    Дельфей смог бы вырезать кусок звукового файла

    и записать его :) sndrec32 называется.
     
  5. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    valterg'уСлушай, мне не нужны стандартные проги Винды. Мне нужно запрограмить! А насчет того, что быстро не научусь - не переживай, это мое дело.



    Ты бы лучше дельным советом помог!!!
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    _vovan_



    Тогда уточни, что ты понимаешь под

    словом "подгружаю" ?!

    А по Дельфи есть отличный ресурс для

    начинающих и не только : torry.net

    Правда там на английском,

    но ребята в основном русские :)
     
  7. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    valterg



    То есть открываю его с помощью стандартного VCL-компонента Delphi - TMediaPlayer.
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    _vovan_





    Тогда два варианта : либо найти готовый

    компонент, в котором нужные функции реализованы

    ( вырезание куска) и "запрограммить" их

    на "кнопочки", либо разбираться с "механикой"

    компонента и дописывать свои функции через

    механизм подклассов(subclass). Я в этом деле

    больше теоретик и вряд ли могу помочь.

    Поэтому лучше сходить на специализированные

    форумы по Дельфи и там поспрашивать : скорее

    всего все функции есть и в твоем компоненте,

    только ты либо не знаешь про них, либо не

    умеешь пользоваться. В Visual Basic я обычно

    шел в help и смотрел список свойств и методов

    об"екта и довольно часто находил то, что нужно.

    На torry.net есть проекты со свободными текстами :

    например я оттуда взял пакет для работы с COM-портом

    и на его основе сделал прогу для модема.

    А если хочешь чтобы здесь ответили, так формулируй

    вопрос конкретнее, здесь ведь wasm и все

    "очень просто программируется" :)
     
  9. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    Ладно, допустим я выхватил кусок звукового файла и этот кусок у меня находится в буфере. Теперь надо переслать данные из этого буфера на устройство в LPT.



    У меня такой вопрос: из драйвера тупо писать в порт с помощью OUT или нужно делать фильтр LPT?
     
  10. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    _vovan_



    Неупакованный WAV, насколько я знаю,

    содержит просто амплитуды сигнала. Но - он

    бывает 8-битный(старые) и 16-битный (новые).

    Может быть запакованный, тогда без

    фильтра не обойтись, но мне кажется, что

    компонента уже должна его распаковать.

    Если твое устройство пишет аналоговый

    сигнал, тогда нужен ЦАП( цифро-аналоговый

    преобразователь), если в цифре, то все

    равно нужно согласовать сигналы.

    Кроме того, передача по LPT требует

    синхронизации в обе стороны.

    А что ты имеешь ввиду под фильтром ?!

    +++++++++++++++++++++++++++++++++++

    А вообще-то для этого дела гораздо

    лучше подходит звуковая карта -

    у нее уже есть аналоговый выход.

    С цифрой, наверное, сложнее, но ведь

    веревка к СиДи - цифровая ?! Или я не прав.
     
  11. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    valterg

    "А что ты имеешь ввиду под фильтром ?!"



    Под фильтром я имею ввиду драйвер-фильтр LPT-порта.

    И спрашиваю, использовать ли в обычном одноуровневом драйвере IN и OUT либо создавать PnP драйвер и цеплять его к стеку драйверов(устройств) LPT ???



    А насчет использования звуковой карты - отпадает, мое устройство подсоединяется к LPT и принимает звук в цифровом формате.
     
  12. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105




    Может для тебя эта фраза и имеет смысл, но

    для меня - в ней 0 информации. Цифровые устройства

    (стандартные)напрямую к LPT не подсоединяются. Там формат и интерфейс другие. Что касается работы с LPT :

    я разбирался тут с тем, как работать с портами

    SVGA и с удивлением обнаружил, что фри-драйвер

    porttalk прекрасно с этим справляется и ни с чем

    не конфликтует в ВИН2000. Если ты не собираешься

    паралельно с записью звука печатать на принтер

    ( я видел такие сканеры например...),

    то по-моему porttalk - лучший выбор,

    хотя вопрос синхронизации остается.

    +++++++++++++++++++++++++++++++++

    Не надо вводить людей в заблуждение

    красивыми словами. Напиши : есть самодельное

    устройство или самодельный интерфейс

    под порт LPT. Тогда тебе ответят.

    И лучше тогда перейти в тему Electronics.

    Win32 подразумевает соблюдение стандартов

    и covox к ним не относится.
     
  13. _vovan_

    _vovan_ New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    18
    valterg

    Не надо вводить людей в заблуждение

    красивыми словами. Напиши : есть самодельное

    устройство или самодельный интерфейс

    под порт LPT. Тогда тебе ответят.





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



    И лучше тогда перейти в тему Electronics.

    Win32 подразумевает соблюдение стандартов

    и covox к ним не относится.




    Не понял, что такое covox? И какие стандарты ты имеешь ввиду?

    А насчет темы - мне кажется, что ты немного ошибаешься.



    Но, в любом случае, благодарю тебя за проведенную со мной дискуссию!