Просмотр полной версии : Проигрыватель WAV-музыки
Интересуют проигрыватели Wav музыки. Но не просто проигрыватели для Covox, а проигрыватели с разархивацией.
У меня такая идея берётся wav файл и архивируется по типу мп 3 с потерей качества. т.е. кодирование не 8 а 7 битное. Бит 0 идёт как служебный. Указывает что следующие за ним байты сжаты(повторяются), или надо сделать прыжок. При разархивации процесс такой-же. Я когда-то писал эту программу на ассемблере. Быстродействия хватает с лихвой для моно и 12кгц. Кто поможет написать программу? Желательно работа с HDD.
Или может кто подскажет какие идеи.
Barmaley_m
13.09.2010, 20:16
Интересуют проигрыватели Wav музыки. Но не просто проигрыватели для Covox, а проигрыватели с разархивацией.
У меня такая идея берётся wav файл и архивируется по типу мп 3 с потерей качества. т.е. кодирование не 8 а 7 битное. Бит 0 идёт как служебный.
Сжатие "по типу мп3" - оно гораздо сложнее, чем тот простой алгоритм, который ты описал. Вообще методов сжатия звука существует великое множество. Думаю, что для такой скорости, как на Спектруме, подходят очень немногие из них. Можно попытаться реализовать ADPCM (АДИКМ). В русской Википедии этот алгоритм не описан, поэтому даю ссылку на английскую:
http://en.wikipedia.org/wiki/ADPCM
Впрочем, все эти простые методы дают очень малый выигрыш в размере при значительной потере качества.
---------- Post added at 18:16 ---------- Previous post was at 18:15 ----------
P.S. по-моему данную тему лучше перенести в раздел "программирование"
искать CacheVOX от AlCo, там применен adpcm. а сжимать звук через повторения... не знаю, не знаю... не полуцца нормально.
я пробовал сжимать по методу простого повторения. Коэффициент сжатия составил 25-30%. Мо предложенному мною методу коэффициент будет ещё больше, так как позволяет произвести сжатие уже при 3 повторяющихся подряд символах на 33%, а также за счёт использования служебных команд. Также если произвести предобработку файла коэффициент ещё увеличится. Так как я 0 бит не использую то последовательность байт например 201,200,201,200,155 можно привести к виду 201,201,201,201,155 и после сжатия получим 201,4,155 т.е сжатие 40% где бит 0 служебный и нигде в архиве данных его не будет.4 это бит0 показывающий что было повторение, и 3 повторяющихся байта. Служебные команды образуются путём подачи 0 и следующим за ним байтом команды.
так не пойдет. возьмите более-менее динамичную музыку и результаты в студию. вот это: 201,201,201,201,155 - только теория, и таких повторов - мало. при таком методе, возможно, лучше даже использовать дельта-код.
или даже дельта-дельта код! =)
и хаффман поверх! :)
---------- Post added at 10:33 ---------- Previous post was at 10:30 ----------
а вот в смысле двух дельт есть сомнения;)
поподробнее про дельта код можно? А по поводу моего метода- сжатие действительно есть. Проверено на практике. Особенно если звук оцифровывается.
ну а википедия не работает что ли? а гугль?
дельта-код говорит сам за себя: хранится не значение, а изменение значения (разность с предыдущим).
moroz1999
01.10.2010, 23:41
ну а википедия не работает что ли? а гугль?
дельта-код говорит сам за себя: хранится не значение, а изменение значения (разность с предыдущим).А вот и простейшая реализация энкодинга-декодинга:
По адресу #C000 лежит звук, в DE - длина.
;/-------------------------------------------------------------------------------------------/
DELTA_ENCODE
LD HL,#C000
LD C,#00
DELTA_ENCODE2
LD A,(HL)
SUB C
LD C,(HL)
LD (HL),A
INC HL
DEC E
JP NZ,DELTA_ENCODE2
DEC D
JP P,DELTA_ENCODE2
RET
;/-------------------------------------------------------------------------------------------/
DELTA_DECODE
XOR A
LD HL,#C000
LD C,#00
DELTA_DECODE2
LD A,(HL)
ADD C
LD C,A
LD (HL),A
INC HL
DEC E
JP NZ,DELTA_DECODE2
DEC D
JP P,DELTA_DECODE2
RET
Barmaley_m
03.10.2010, 01:58
p@lex, я не понимаю одного, ты что, думаешь, что никто раньше до твоего метода не додумался? Не льсти себе, он же простейший, вариация RLE.
Теорию надо изучать, и тесты разных методов проводить сравнительные, по соотношению размер/качество/сложность реализации, если ты решил свои методы изобретать, а не пользоваться проверенными и теоретически изученными. Ты цифровую обработку сигналов когда-нибудь изучал?
Почитай про ADPCM, это очень удачный алгоритм, он далеко обогнал другие простые методы сжатия звука. Используется в телефонии, в том числе IP-телефонии.
ок. Давайте тогда поговорим о готовых программных продуктах для архивации и последующего проигрывания wav файла на Спектруме. Исходные данные такие: частота выборки не менее 11кГц, моно, частота Спектрума 3,5 мГц, источник файлов НДД(на крайний случай FDD).
FDD: CacheVox.
а зачем с винта играть сжатое, если и несжатое отлично играется? со сжатием только проблемы будут, если ты хочешь в реалтайме играть с винта.
Barmaley_m
07.10.2010, 22:29
ок. Давайте тогда поговорим о готовых программных продуктах для архивации и последующего проигрывания wav файла на Спектруме.
Разработка метода сжатия звука и программы реализации - это совершенно разные вещи. Авторы всех нормальных компрессоров данных на Спектруме, не разрабатывали доморощенные методы, а использовали известные - Lempel-Ziv, Huffman и т.д. Только так получаются хорошие результаты - если конечно руки прямые нормально реализовать.
источник файлов НДД(на крайний случай FDD).
С FDD в реальном времени однозначно не получится, даже AY-музыку во время загрузки с дискеты невозможно проигрывать без ущерба для процесса загрузки, что уж говорить о цифровой.
---------- Post added at 20:29 ---------- Previous post was at 20:25 ----------
Вернее, есть один способ, но он подразумевает как минимум изменения в ПЗУ TR-DOS.
Barmaley_m
08.10.2010, 09:58
а зачем с винта играть сжатое, если и несжатое отлично играется? со сжатием только проблемы будут, если ты хочешь в реалтайме играть с винта.
Согласен. Сжатие - это фактически обмен места на носителе на ухудшение качества и повышение нагрузки на проц. Когда места на носителе вагон, нет смысла так дорого платить за сжатие.
ок. Давайте рассмотрим реально существующие на данный момент wav проигрыватели.
так давайте, рассмотрите уже CacheVox. скока можно одно и то же повторять?
ок. Давайте рассмотрим реально существующие на данный момент wav проигрыватели.
http://zxpress.ru/article.php?id=4472
Новая версия CacheVox - теперь поддерживает и ATM Turbo 2. С исходниками!
http://alonecoder.nedopc.com/zx/cvox11.zip
теперь поддерживает и ATM Turbo 2
Музыка хранится на дисках объёмом...
Люди, пора уже забыть про дискеты как про страшный сон, в большинстве современных спектрумах уже даже дисковода нет (вон на углепати привезли 7 компов, из них только на 2х дисководы были...), а вы все дискеты-дискеты... Даешь поддержку SD/HDD в продуктах!
в большинстве современных спектрумах уже даже дисковода нет
в большинстве современных спектрумов core i7...
Cat_Alex/QRP
06.08.2014, 01:59
растолкуйте, как закатать этот :mad: smp.smp на образы .scl. желательно по-шагам, а то в описании нифига без поллитры с2н5он не понять, а я не пью.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot