Конференция "Media" » Выковырять инфу из wav-ки [D6, WinXP]
 
  • AL2002_ (19.02.08 17:40) [20]
    >Как можно определить частоты, громкости и длительности хрюканья
    >борова, оцифрованного и записанного в wav-файл ?)

    Хрюканье и прочее в звуке и есть совокупность частот распределенных в соответствии звучания, которое разбирает наше ухо. 8))

    >Они делают Фурье-преобразования.
    Угу. На основе частот.

    >А причем здесь таймер ?)
    Не таймер, а спикер.
  • Jeer © (19.02.08 17:53) [21]

    > AL2002_   (19.02.08 17:00) [18]


    Случай с тобой тяжелый, однако.
    С такой кашей в голове шашлык нэ вийдет:)
  • AL2002_ (19.02.08 18:11) [22]
    >Случай с тобой тяжелый, однако.
    >С такой кашей в голове шашлык нэ вийдет:)

    Если ответить нечего, то обычно переходят на личности.
  • AL2002_ (19.02.08 18:20) [23]
    А вопрос-то очень прост.

    Код відергивает инфу из wav-файла, обрабатывает ее и отсылает на спикер в виде череды частот и длительностей. Мне они и нужны.
    Если бы я в асме шарил, я бы здесь темы не создавал.

    Неужели никто не может сделать перевод из асма в паскаль?
  • AL2002_ (19.02.08 19:10) [24]
    А белый шум изобрел я:
    for i:=0 to 10000 do windows.Beep(random(10000)+500,1);
    (с) easy из чата
  • @!!ex © (19.02.08 19:48) [25]
    > [23] AL2002_   (19.02.08 18:20)

    Я чего то не понимаю, или в асмовском коде как раз и делается преобразование Фурье...
  • AL2002_ (19.02.08 20:11) [26]
    @!!ex ©   (19.02.08 19:48) [25]
    >Я чего то не понимаю, или в асмовском коде как раз и делается
    >преобразование Фурье...


    Ну, если     shr al,6 и and al,2 это фурье, то я, конечно, рад.
    Но мне надо это на нормальный дельфийский код, без asmа, перевести.
  • @!!ex © (19.02.08 20:21) [27]
    > [26] AL2002_   (19.02.08 20:11)

    ну так переведи. команды - элементарные. Если не знаешь асма - идешь в гугль и смотришь значение каждой команды. и переводишь на дельфи.
  • Сергей М. © (19.02.08 20:34) [28]

    > AL2002_   (19.02.08 18:11) [22]


    Но случай, поверь уж, действительно тяжелый.


    > Не таймер, а спикер.


    А спикер, по-твоему, куда воткнут - в задницу ?)

    Классически он управляется каналом таймер-чипа 8253, к этой "классике" как раз и относится тот код, который ты тут привел, ничерта не понимая происходящего в нем)
  • Сергей М. © (19.02.08 20:37) [29]
    Удалено модератором
  • Compiler © (19.02.08 23:47) [30]
    А по-моему где-то были компоненты для чтения тегов. Сам не использовал, но имеются.
  • AL2002_ (19.02.08 23:58) [31]
    Сергей М. ©   (19.02.08 20:34) [28]
    >А спикер, по-твоему, куда воткнут - в задницу ?)

    Вам виднее.

    >Классически он управляется каналом таймер-чипа 8253, к этой "классике"
    >как раз и относится тот код, который ты тут привел, ничерта не понимая
    >происходящего в нем)


    Ну я и этому рад, конечно.
    Но это не дает решения вопроса.

    Значит, вы, нафлудив здесь кучу сообщений, отняв у себя и у меня немерено времени, не можете перевести код управления таймер-чипа, который в свою очередь управляет системным динамикомъ, з асма на дельфи, рассказывая мне при этом, что в wav-файле нету сведений о частоте, громкости и прочей инфе о звуке?

    Так, получается?
  • @!!ex © (20.02.08 00:22) [32]
    > [31] AL2002_   (19.02.08 23:58)

    Пока поулчается, что вы сами не можете решить простейшую задачу(перевод асм кода в дельфи), которая школьник с 1 месяцем информатики решает без проблем, тупо смотря в справочник по асму.
  • Сергей М. © (20.02.08 09:56) [33]

    > рассказывая мне при этом, что в wav-файле нету сведений
    > о частоте, громкости и прочей инфе о звуке?


    SampleRate - это частота дискретизации.

    BytesPerSecond - кол-во байт, которыми представлен оцифрованный звук длительностью в секунду.


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


    Угу. А куст есть совокупность веток, произрастающих из одного корня)

    Вот тебе ликбез:

    http://www.google.ru/search?q=%D0%BF%D0%BE%D1%80%D1%82%D1%8B+%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%D0%B0+8253&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a
    http://forum.sources.ru/index.php?showtopic=94967&hl=
    http://www.progiblog.ru/cgi-bin/content.pl?id=665
    http://pascal.sources.ru/sound/index.htm

    Вот как только разберешься в необходимости реализации конвертера ИКМ/АДИКМ -> ШИМ (хоть на Паскале, хоть на чем угодно), так и милости просим)

    А asm здесь ни причем : вывод в порты управления спикером готовой инф-ции (т.е. результата работы этого самого конвертера) - последнее и самое простое дело.
  • wicked © (21.02.08 03:05) [34]
    в порядке оффтопа
    ----
    > Сергей М. ©   (19.02.08 10:12) [5]

    > TWaveHeader = record
    > Marker1:        Array[0..3] of Char;
    > BytesFollowing: LongInt;
    > Marker2:        Array[0..3] of Char;
    > Marker3:        Array[0..3] of Char;
    > Fixed1:         LongInt;
    > FormatTag:      Word;
    > Channels:       Word;
    > SampleRate:     LongInt;
    > BytesPerSecond: LongInt;
    > BytesPerSample: Word;
    > BitsPerSample:  Word;
    > Marker4:        Array[0..3] of Char;
    > DataBytes:      LongInt;

    это плохая структура заголовка wav, не приводи её никогда, чтобы не позориться и не вводить никого в заблуждение

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

    > Compiler ©   (19.02.08 23:47) [30]

    > А по-моему где-то были компоненты для чтения тегов. Сам
    > не использовал, но имеются.

    20 минут работы и никаких компонентов
  • Сергей М. © (21.02.08 08:23) [35]

    > wav файлы являются составными


    Мне это хорошо известно.
    Простой файл или составной - по барабану.
    Ни в одном заголовке ни одной из частей нет той инф-ции, которую автор страстно желает иметь)
  • Jeer © (21.02.08 15:58) [36]

    > wicked ©   (21.02.08 03:05) [34]


    Я, что-то, тоже не понял - при чем тут плохая или хорошая структура заголовка ?

    Сергей привел ее только лишь для уточнения факта, что в header не содержится желаемой автору сабжа информации.

    Все, что нужно автору содержится в "теле" wave-файла, а, поскольку, желаемым источником звука является системный speaker, то нет другого способа ( без hardware-переделок) "пропищать" wave-файл через speaker, кроме как преобразования амплитудно-модулированного сигнала из wave-файла (PCM) в ШИМ-сигнал для подачи на speaker через системный таймер.

    Именно эти и предлагалось неоднократно заняться автору сабжа, но - каша в голове.
    А вот когда научится готовить бастурму, тогда и шашлык может выйти.
    А может и не выйти из-за несварения:)
  • Сергей М. © (21.02.08 16:39) [37]

    > Jeer ©   (21.02.08 15:58) [36]


    ))

    Так точно, сэр !
    Ваша поддержка, как и всегда, как нельзя кстати)

    Кашу ту, изрядно пересоленную "эквалайзерами", СайндФоржами и прочей не имеющей отношения к делу лабудой, будет действительно трудновато превратить в шашлык)
  • Jeer © (21.02.08 17:43) [38]

    > Сергей М. ©   (21.02.08 16:39) [37]


    "Если не мы, то кто ? " (С)
    "В любое время, в любом месте - любая задача" (С)
  • AL2002_ (21.02.08 19:29) [39]
    Вопщем, никто ничо не смог. На том и закончим.
 
Конференция "Media" » Выковырять инфу из wav-ки [D6, WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]