Конвертер FLAC в WAV; FLAC в WAV; MP3 в WAV для [8088]/[286]
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
Конвертер FLAC в WAV; FLAC в WAV; MP3 в WAV для [8088]/[286]
Во флейме, потому что.
Пересобрал libFLAC под 16-бит с помощью какой-то матери и OpenWatcom 16 bit compiler. Прикрутил к этой библиотеке простенький конвертер, который умеет только 16-битные FLAC и каналов желательно только 2. Работает на XT, есть так же версия и для 286.
Сколько же суток занимает конвертирование пятиминутного FLAC в WAV на XT 4,77MHz ?
UPD: А так же и кодер WAV2FLAC, правда уже для 286 тут: viewtopic.php?p=695707#p695707
UPD2: А так же декодер MP3 в WAV тут: viewtopic.php?p=696272#p696272
Пересобрал libFLAC под 16-бит с помощью какой-то матери и OpenWatcom 16 bit compiler. Прикрутил к этой библиотеке простенький конвертер, который умеет только 16-битные FLAC и каналов желательно только 2. Работает на XT, есть так же версия и для 286.
Сколько же суток занимает конвертирование пятиминутного FLAC в WAV на XT 4,77MHz ?
UPD: А так же и кодер WAV2FLAC, правда уже для 286 тут: viewtopic.php?p=695707#p695707
UPD2: А так же декодер MP3 в WAV тут: viewtopic.php?p=696272#p696272
- Вложения
-
- FLAC2WAV.zip
- (173.21 КБ) 60 скачиваний
Последний раз редактировалось Tronix 13.10.2022,16:05, всего редактировалось 3 раза.
- visualer
- Advanced Member
- Сообщения: 1910
- Зарегистрирован: 26.09.2019,17:50
- Откуда: ..
- Контактная информация:
Конвертер FLAC в WAV для [8088]/[286]
Tronix забыл отметить, что софт критичен к наличию сопроцессора, и ваша конвертация пройдёт быстрее, если сопр в наличии))))))
Ретровизор - мой канал в Telegram
Взгляд назад. Персональная техно-археология. Ретро-компы. Downgrade
t.me/retrovis Подпишись
Взгляд назад. Персональная техно-археология. Ретро-компы. Downgrade
t.me/retrovis Подпишись
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
Конвертер FLAC в WAV для [8088]/[286]
Tronix не забыл. Как оказалось, в процессе раскодирования потока мало где используется арифметика с плавающей запятой, в основном там целочисленная дробилка, поэтому наличие сопроцессора мало или даже совсем не влияет на скорость
Конвертер FLAC в WAV для [8088]/[286]
А какая была потребность на 8088 декодировать Flac в WAV?
Учитывая, что HDD и флэшки CF-диски маленькие...
Учитывая, что HDD и флэшки CF-диски маленькие...
- zOrg
- Почётный пользователь
- Сообщения: 13866
- Зарегистрирован: 09.01.2009,22:22
- Откуда: Ленинградская область, пгт. Сиверский
-
Вклад в сообщество
Конвертер FLAC в WAV для [8088]/[286]
Раздвигать границы возможного. Поймёте, когда переиграете во все игрушки на XT и будете сидеть в раздумьях, зачем она нужна. А ещё возможно, что столь длительная конвертация добавит ламповости звучанию. Ну а вдруг! Я бы сравнил спектр полученого файла со спектром того же, но конвертированного на современном компе.
Flynn Lives / Кай жив / Tarus жив
- visualer
- Advanced Member
- Сообщения: 1910
- Зарегистрирован: 26.09.2019,17:50
- Откуда: ..
- Контактная информация:
Конвертер FLAC в WAV для [8088]/[286]
Никакой. Софт для поржать "смари чо могу". Один трек занимает целый жесткий диск )
Ретровизор - мой канал в Telegram
Взгляд назад. Персональная техно-археология. Ретро-компы. Downgrade
t.me/retrovis Подпишись
Взгляд назад. Персональная техно-археология. Ретро-компы. Downgrade
t.me/retrovis Подпишись
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
Конвертер FLAC в WAV для [8088]/[286]
А теперь собрался и из WAV в FLAC перекодировщик. Для этого пришлось вкурить и перелопатить всю libFLAC, кое-где даже грязными хаками всякими, но в конце концов заработало.
Единственное, что на различные нужды (структуры, внутренние буферы и тд) энкодера необходимо порядка 800Кб памяти, плюс сам код занимает в районе 250Кб, поэтому в реальном режиме памяти на запуск не хватает. Городить свой EMS или XMS менеджер памяти я вломился, поэтому просто прикрутил дос - расширитель Phar Lap 286, тем самым конечно исключив сборку для XT, но зато пускается на 286.
И вот тут уже 287 сопроцессор будет весьма кстати, от его скорости зависит непосредственно скорость кодирования, так как вся математика поиска подходящих коэффициентов корреляции, квантинизации и другой прочий адов матан усиленно использует плавающую точку (см. файл LPC.C в исходниках libFLAC на официальном гитхабе).
Собрал конечно вариант и без 287 сопроцессора (с эмуляцией) - но это очень тормозной вариант, даже на топовой 286 25Мгц. Лучше все-таки воткнуть в 286 какой-нибудь сопроцессор.
UPD: А так же версия только с целочисленной математикой (define FLAC__INTEGER_ONLY_LIBRARY в libFLAC).
Запускать WAV2FLAC <имяфайла.WAV> <имяфайла.FLA> [N] , где N можно указать степень сжатия от 0 до 8. По умолчанию степень сжатия равна 5.
Ах, да, и памяти должно быть 2Mb RAM минимально.
Единственное, что на различные нужды (структуры, внутренние буферы и тд) энкодера необходимо порядка 800Кб памяти, плюс сам код занимает в районе 250Кб, поэтому в реальном режиме памяти на запуск не хватает. Городить свой EMS или XMS менеджер памяти я вломился, поэтому просто прикрутил дос - расширитель Phar Lap 286, тем самым конечно исключив сборку для XT, но зато пускается на 286.
И вот тут уже 287 сопроцессор будет весьма кстати, от его скорости зависит непосредственно скорость кодирования, так как вся математика поиска подходящих коэффициентов корреляции, квантинизации и другой прочий адов матан усиленно использует плавающую точку (см. файл LPC.C в исходниках libFLAC на официальном гитхабе).
Собрал конечно вариант и без 287 сопроцессора (с эмуляцией) - но это очень тормозной вариант, даже на топовой 286 25Мгц. Лучше все-таки воткнуть в 286 какой-нибудь сопроцессор.
UPD: А так же версия только с целочисленной математикой (define FLAC__INTEGER_ONLY_LIBRARY в libFLAC).
Запускать WAV2FLAC <имяфайла.WAV> <имяфайла.FLA> [N] , где N можно указать степень сжатия от 0 до 8. По умолчанию степень сжатия равна 5.
Ах, да, и памяти должно быть 2Mb RAM минимально.
- Вложения
-
- WAV2FLAC.ZIP
- (738.13 КБ) 49 скачиваний
Последний раз редактировалось Tronix 09.10.2022,17:39, всего редактировалось 1 раз.
Конвертер FLAC в WAV для [8088]/[286]
возможно ли прикрутить бенчмарк в этой программе (realtime и итоговую)?... тем самым максимально популяризует в среде иностранщины (vogons, vcfd итд)
И данный проект разлетится во всех сборках в том числе и philscomplab....
Совсем недавно утверждал, что 286 компу не нужен 4мб, достаточно 1мб. Теперь 2022год - появилась потребность в 4мб на 286
Осталось сделать воспроизведение музыки Flac, но хватит ли производительности 286, используя нещадно сопроцессор ?
И будет полная комплектная сборка с увековечиванием памяти Tronix (не шутка)
Последний раз редактировалось Ekb 09.10.2022,15:38, всего редактировалось 3 раза.
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
Конвертер FLAC в WAV для [8088]/[286]
В некотором роде он уже есть - там отображается затраченное время (Elapsed time: ), итоговая.
- Takedasun
- Advanced Member
- Сообщения: 3640
- Зарегистрирован: 16.10.2013,18:07
- Откуда: Керчь
-
Вклад в сообщество
Конвертер FLAC в WAV для [8088]/[286]
Не хватит, для этого нужен топовый 486 процессор.
Неужели ни у кого нет возможности проверить? Интересно же.
- Tronix
- Advanced Member
- Сообщения: 3625
- Зарегистрирован: 15.01.2008,11:00
- Откуда: Москва
-
Вклад в сообщество
Конвертер FLAC в WAV; FLAC в WAV; MP3 в WAV для [8088]/[286]
Ну и теперь конечно еще и MP3 в WAV для XT.
Использовал helix mp3 decoder fот RealNetworks, перевел все типы int на uin32_t для сборки Watcom Compiler 2.0 16 bit. Переписал начисто некоторые функции на ассемблере 8088 (в файле assembly.h MULSHIFT32(), MADD64(), SAR64() ). Кто желает пооптимизировать код, то вот он: https://github.com/Tronix286/HELIXMP3
Собранный декодер последней версии можно взять здесь: https://github.com/Tronix286/HELIXMP3/b ... al/mp3.exe
MP3 <имяфайла.MP3> <имяфайла.WAV>
Использовал helix mp3 decoder fот RealNetworks, перевел все типы int на uin32_t для сборки Watcom Compiler 2.0 16 bit. Переписал начисто некоторые функции на ассемблере 8088 (в файле assembly.h MULSHIFT32(), MADD64(), SAR64() ). Кто желает пооптимизировать код, то вот он: https://github.com/Tronix286/HELIXMP3
Собранный декодер последней версии можно взять здесь: https://github.com/Tronix286/HELIXMP3/b ... al/mp3.exe
MP3 <имяфайла.MP3> <имяфайла.WAV>
Последний раз редактировалось Tronix 14.10.2022,15:06, всего редактировалось 1 раз.