обращение к разработчикам и активным участникам

Applications development, KoOS API questions
  • При таком описании проще перенести существующий код в минималистичную систему (например, Колибри). Какой язык? Какое количество кода? Желательно списком.

    P.S. Прикрепляю спецификацию ASIO (он совсем не закрытый протокол, и особой сложности также нет - сложность была в его реализации для винды - он мало для этого пригодна)
    Attachments
    ASIO_SDK_2.pdf (342.55 KiB)
    ASIO 2.0 Specification
    Downloaded 199 times
  • Кстати, да. Изменить интерфейс в mp3-плеере немного, драйвер звука + ASIO, плюс портировать нужные аудио-кодеки (если они еще не портированы, в чем я сомневаюсь). И после этого Колибри можно будет уместить в 1,44 мегабайта или вообще в BIOS.
    Инструкция по установке на жесткий диск прилагается к версии 0.7.7.0 дистрибутива, хотя я советую использовать более новую сборку.
  • Audio Stream Input/Output (ASIO), «ввод/вывод потоковых аудиоданных» — протокол передачи данных с малой задержкой (англ. low-latency), разработанный компанией Steinberg.
    ...
    Низкие задержки обеспечиваются за счёт того, что в интерфейсе ASIO происходит обход множества промежуточных программных уровней, и осуществляется взаимодействие с оборудованием напрямую.
    Прямо как Infinity в Колибри.
  • не mp3 (иначе для чего такой огород городить :), а flac и wav - первый еще не перенесён.
  • SoUrcerer wrote:Низкие задержки
    Прямо как Infinity в Колибри.
    Да ладно?!
  • Ради такого дела не грех и RT-сервис в ядро добавить
    Одному пользовательскому приложению можно будет запросить у ядра HPET-прерывание.
    на AMD-платформах это можно сделать легко и совсем без ACPI.

    В Колибри-А, ессно ;)
  • steppe wrote:Нас интересует воспроизведение ТОЛЬКО ДВУХКАНАЛЬНОГО СТЕРЕО.
    я вообще не понимаю зачем Вам вообще многозадачность???
    Зачем и винда и Колибри зачем? Вам же просто нужен ASIO плеер, так?
    Вы, как я понял занимаетесь профессиональным звуком (озвучка и т.д.) с охрененной верностью звучания, где DAC эдак 32 битный? (24 бита Вам наверное УЖЕ мало?))))
    Жесткий реал-тайм, жесткие критерии по помехам, шуму, перекрестным делам и пр...
    steppe wrote:Трудно говорить, но это вообще другой мир аудио
    да ладно там, другой мир, просто мало кто в курсе вообще. Лучше бы ссылку привели людям откуда ноги растут ну про мир ЭНтот тоже, ведь есть спец сайты у Вас звукачей.
    steppe wrote:Наши звуковые карты-DAC, преимущественно LYNX, LYNX AURORA, Juli@, WEISS требуют ОБЯЗАТЕЛЬНО ASIO
    вот и про тех параметры карт тоже ссылки на чтиво, ссылки на тех-доки + инфа рамок и границ сугубо Вашего целевого назначения,
    т.к. там дохрена всякой мути по ASIO особенно нужно ли (например в Ваших дальнейших планах) будет обрабатывать звук на лету с минимальными (доли миллисекунд, да?) задержками типа компрессор, ревер, эссер и т.д. ?
    Короче ближе к телу изъясните, а не про то как мало dll-ок надо, что тоже не понятно в чем же там основная международная загвоздка, раз столько людей потело над темой.
    Основное у Вас это "железо" с ASIO я так понял,
    а вот во что ОНО воткнуто (тип платы или вообще микрокомпьютер индпошива на заказ)
    и кто "его крутит" (виндоз или просто ДОС + драйвер ASIO) Вам всё равно, т.к.: "интересует воспроизведение ТОЛЬКО ДВУХКАНАЛЬНОГО СТЕРЕО"
    Надеюсь проясните нюансы ширше
  • dunkaist
    Это критично для интерактивного аудио, например в играх. Для потокового задержка начала воспроизведения на 0.085с незаметна.
  • Serge wrote:Это критично для интерактивного аудио, например в играх. Для потокового задержка начала воспроизведения на 0.085с незаметна.
    Понятно, спасибо.
    Spoiler:Есть ли какой-нибудь эмулятор или специфические опции, чтобы звук не дёргался? Тестирую одну программу в qemu, раздражает. Из-под колибри писать не могу, т.к. жёсткий диск не видится.
  • dunkaist wrote:
    Spoiler:Есть ли какой-нибудь эмулятор или специфические опции, чтобы звук не дёргался? Тестирую одну программу в qemu, раздражает. Из-под колибри писать не могу, т.к. жёсткий диск не видится.
    В VirtualBox плавнее работает. Memdisk позволяет грузиться и с образов жестких дисков тоже, btw.
  • Прочитал про видеокарты мешающие звуку и сразу вспомнил это.
    з.ы. Как я понял, они сделали зборочку венды и хотят её портировать под колибри(в том числе и ядро НТ)?
    з.ы.2. Я бы посмотрел на такую урезаную венду.
    з.ы.3. Интерфейс у плеера просто пушка.
  • Друзья, единомышленники, спасибо, что Вы начали откликаться на мой пост.
    В этом сообщении я попробую дать больше информации.
    Какой язык? программа shell-библиотека cue-файлов написана на С++ размер 292 кбайта
    программа плеер - написана на С++, размер 1,9 mb - более подробно ниже:
    SPECIFICATIONS
    --------------
    Media Format.........................Stereo only
    WAV (16, 24, 32 PCM; 32 float)
    FLAC (16, 24, 32 PCM)
    DSP Design...........................128 bit processing
    (SIMD & streaming used)
    Multi-threaded
    (event driven architecture)
    Multi-core
    (semaphores at hardware level)
    Upsampler/Resampler..................Bandlimited Interpolation via
    . "libsamplerate-0.1.5 (SRC)" [*1]
    or (145db/121db SNR selectable)
    . (154db/120db rejection)
    ........Multi-Stage Interpolation via
    "SoX-14.2.0" (VHQ/HQ selectable)
    (175db/125db rejection)
    (clipping, if needed, done after
    attenuation)
    Attenuation..........................[-100.0,0.0] in 0.5db steps
    (53 bit resolution)
    Balance Control......................[-6.0,+6.0] in 0.1db steps
    Left(-ve), Right(+ve)
    (53 bit resolution)
    Polarity.............................Phase 0/180 selectable "in flight"
    VST Support..........................VST 2.4.2
    Single low-latency plugin design
    (2-in/max 8-out, 32 float, clipped)
    Audio Output.........................32 bit
    ASIO 2.2 (and backward compatible)
    (KS, DS, WASAPI not supported)
    Operating System.....................XP, Vista or Windows 7
    (known to work on 64 bit systems)
    Minimum Processor...................."Pentium 4" type (SSE2)
    (core iX 32nm recommended)
    Instruction Set......................SSE2 (SSE4 recommended)
    Minimum available RAM required.......160MB
    Maximum available RAM used...........1GB
    Maximum tracks in cue sheet..........160 (including track splits)
    Надеюсь, теперь Вам (не мне, к сожалению) более понятно, для чего нам многозадачность, процессор с поддержкой SSE4.
    Про латентность сигнала. Чем она меньше и чем МЕНЬШЕ аудио буферб тем лучше. Причина НЕ ЯСНА НИКОМУ. (в отличие от записи).
    Нам всем наплевать, есть ли Windows или нет, но, Windows имеет драйвер portcls.sys, без которого asio устройства не инициализируются. В зависимости от версии этого драйвера можно избавиться от такой дряни, как DRMK.SYS
    Где этот "другой мир":
    http://www.audioasylum.com/forums/pcaud ... 80613.html
    найдите в середине страницы пост
    cPlay The open source high-end audio player using ASIO
    Это про программу плеер.
    Данный проект не имеет НИЧЕГО ОБЩЕГО с мр3, и этот формат не рассматривается ВООБЩЕ.

    Правильно ли я понимаю, что можно зашить в биос всю Колибри?
    В этом случае, можно ли ИМЕТЬ такую версию колибри, где НЕТ даже намека на USB, отсутствует shell (в качестве shell используется наша программа-библиотека), нет даже намека на СЕТЬ, может использоваться HPET - High Precision Event Timer, можно ли зашить в биос и asio и возможно наши две программы?
    Еще одна вешь... Автор - разработчик ИСЧЕЗ в октябре прошлого года, поэтому мы ковыряемся, как можем. Никто из нас НЕ ЯВЛЯЕТСЯ программистом...
    еще ВАЖНО то, что воспроизведение идет из ПАМЯТИ, не с жесткого диска, поэтому мы так маниакально бьемся за освобождение памяти от всего, что можно удалить, все dll-ки, а особенно, связанные с SAM, SECURITY, authorization загаживают звук ЖУТКО
    Среди других "врагов" - framebuffer, watchdog, rpcrt4, любые функции которые резидентно сидят в памяти, отсюда, например желание использовать такую видеосистему, которая использовала бы минимальные 1-2 мб, а лучше, как в случае с pci-e собственную память...
    Ниже для примера я попытаюсь запостить наш SOFTWARE hive.
  • steppe wrote:, Windows имеет драйвер portcls.sys, без которого asio устройства не инициализируются.
    Не совсем так. В Linux, к примеру, ASIO работает и без этого драйвера. Вопрос в реализации.
    cPlay The open source high-end audio player using ASIO
    Это про программу плеер.
    Открытые исходные коды - хорошо. Есть вероятность, что можно портировать в Колибри.
    Правильно ли я понимаю, что можно зашить в биос всю Колибри?
    Да, но только на определенном железе.
    В этом случае, можно ли ИМЕТЬ такую версию колибри, где НЕТ даже намека на USB, отсутствует shell (в качестве shell используется наша программа-библиотека), нет даже намека на СЕТЬ, может использоваться HPET - High Precision Event Timer, можно ли зашить в биос и asio и возможно наши две программы?
    USB и так нет, "shell" убрать - запросто. Сетевые драйвера можно выпилить при желании. Про HPET - не уверен, про ASIO - если найдутся драйверописатели. Вместо конкретно этих двух программ ведь можно использовать другие программы, если они не будут уступать по качеству, нет? :)
    еще ВАЖНО то, что воспроизведение идет из ПАМЯТИ, не с жесткого диска, поэтому мы так маниакально бьемся за освобождение памяти от всего, что можно удалить, все dll-ки, а особенно, связанные с SAM, SECURITY, authorization загаживают звук ЖУТКО
    Колибри кушает после загрузки около 6 мегабайт памяти, вся остальная память (не более 2 Гб на сегодняшний день, afaik) доступна приложениям. Из нее можно воспроизводить звук прямо сейчас (что я, к примеру, и делаю).
  • Цитата в тему, кстати. Возможно, для реализации желаемого придется что-то делать с таймерами и задержками:
    Does size matter (during playback)?

    Refined setups will readily reveal sound quality changes with changing latency. Its best to use lowest stable latency. A good programmer would argue that latency is a non-issue for playback. "Just set it to highest level as we get less context switches which is more efficient...". This is not correct for best sound quality.

    At a software, firmware and hardware level, PCI prefers small payloads.

    "Latency jitter" as in variations in latency was thought to be the cause for why latency affects sound quality. This idea has been scrapped.

    From a Jitter viewpoint, when a soundcard's buffer is populated (whilst the other buffer is converted to SPDIF or whatever), there's a burst of electrical activity. The idea is to keep this burst as short as possible thereby reducing interference to the soundcard's XO, i.e. reduce Jpp. We achieve this by setting latency to the lowest possible level. Of course, using such a low latency would mean more frequent buffer loads. This is the ASIO frequency (or ASIO Hz). At 32 samples latency for 96k output, ASIO Hz is 3kHz. This is now periodic in nature and is digitally induced. We now have Periodic Jitter - the worst kind which exists for all digital playback systems. ASIO gives us control over this.

    Higher ASIO Hz is preferred and you definitely want to avoid anything less than 1kHz. Why? A soundcard's PLL or PLLs down the chain will be able to further reduce this periodic jitter as the frequency is likely to be above the PLL's cut-off.
  • Who is online

    Users browsing this forum: No registered users and 6 guests