Страница 5 из 8 Первая ... 34567 ... Последняя
Показано с 81 по 100 из 158

Тема: трёх-канальное стерео

  1. #1 Показать/скрыть первое сообщение.
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию трёх-канальное стерео

    Triple Stereo - это алгоритм по преобразованию стерео-записи в 3-х канальную, посредством извлечения центра и вычитания его из исходных каналов.
    Принцип работы алгоритма:
    Нажмите на изображение для увеличения. 

Название:	TripleWaves3.png 
Просмотров:	1211 
Размер:	101.1 Кб 
ID:	255870
    Сравнение с аналогичного назначения плагином "Center Channel Extractor" из Adobe Audition CC 2017.
    Последний раз редактировалось Konkere; 10.08.2018 в 22:16.

  2. #81
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    От многоканала я ожидаю объёма, пространства, эффекта присутствия, погружения и полёта.
    Аналогично.

    Задержку (точнее опережение ) фронтальных, я выбрал 20ms.
    Это практически точно с реальной волной, которая пролетит от фронтов мимо меня, отразится от реальной задней стены, и одновременно с тыловыми долетит до ушей, но сзади При этом АЧХ реверберации не меняется в течении 160ms. Ресивер корректирует реверберацию от всех АС. (Пере)отраженная волна имеет АЧХ записи а не АЧХ комнаты. Получается, что призвук комнаты практически исчезает.

    И конечный результат - 5 каналов TS DSD64 файл. Из них буду авторизовать диски. Для фубара есть примочка для послушать.
    Последний раз редактировалось Vinni; 03.06.2015 в 15:07.

  3. #82
    Забанен (навсегда) Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    690

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Из которой видно, что отражения от стен никак не учитываются. Это значит, что переотражённую волну система уже не корректирует и она прилетит в оба уха, как и обычно.
    Думаю что за счет "идея которой в том, чтобы левым ухом слышать только левую колонку, а правым – только правую. Как в наушниках" (ровная АЧХ и ФЧХ в ушах от АС) + отражения, получается так как человек описывает свою систему:
    http://digitalroomcorrection.hk/
    ......Я бы назвал звук моей системы как "реальный". Она имеет широкую звуковую сцену, ультра высокое разрешение с превосходной микро и макро динамикой. Древесина, текстура каждого музыкального инструмента все слышно и это лучшее, что я слышал. Скрипка звучит как реальная скрипка и фортепиано звучит как фортепиано.
    В оркестровой музыке, я слышу каждый индивидуальный инструмент четко на своем собственном месте в пространстве. Большая часть этого вызванно использованием фазолинейных фильтров и выравниваниванием
    фазы. С минимальным фазовым фильтром, (типичный пассивный кроссовер), вы чувствуете, что все инструменты сливаются вместе, и их относительное положение не определенно......

    E.Sokol cпасибо ....

  4. #83
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Vinni, почитал про DSD, выглядит логично и интересно. Но файл воспроизвести мой ноутбук так и не смог - не хватило ресурсов.

    Тут у меня ещё пара идей возникла.
    1. В 3-х канальном варианте сделать микс между оригинальным стерео и triple stereo. Тогда, по идее, должен получится более мягкий вариант стерео, но с панорамой шире, чем у чистого triple stereo.
    2. В 5-и канальном так же, но без программного смешивания. Т.е. на фронтальные подать оригинальное стерео, а на центр и тыловые - triple stereo. Тут наоборот, получается более жёсткий вариант, так как центральная составляющая будет воспроизводится тремя колонками одновременно. Но всё равно мягче, чем Prologic II.

    Может, и у вас какие идеи возникнут, не стесняйтесь озвучивать

    P.S. Я тут ещё одно небольшое улучшение алгоритма придумал. Похоже, я этот плагин никогда не закончу
    Последний раз редактировалось E.Sokol; 04.06.2015 в 12:15.

  5. #84
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    почитал про DSD, выглядит логично и интересно.
    Я этот формат выбрал только для оцифровок винила, которые оцифровывали и выложили в 32fp/192. Делать из них 24/192 - рука не поднимается. 32/192 могу по USB, но отдельного компа под звук, пока нет и наверное не будет. А таскать ноут - лень, да и HD по объёму ограничен. После перепрошивки мозгов плеера он сможет SACD прямо с ISO образа играть с USB-HD или даже по сети. Моя подпись - синус 44,1 кГц в DSD. И ещё. Точность передачи любого передатчика определяется в т.ч. точной передачей фазовых характеристик. В DSD любой меандр - запросто.

    Нажмите на изображение для увеличения. 

Название:	dsd-pcm-impulse-response.gif 
Просмотров:	576 
Размер:	13.9 Кб 
ID:	238728Тут ничего объяснять не надо.

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Но файл воспроизвести мой ноутбук так и не смог - не хватило ресурсов.
    Выходную частоту сильно большую не ставьте 88,2 кГц или 44,1.

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Тут у меня ещё пара идей возникла.
    Способ реализации должен вытекать из постановки задачи - чего мы хоти достичь?
    Вычленить из оригинальной записи информацию об объёме. Ваш подход разделения на фронта на 3 канала считаю правильным.

    А дальше, на мой вкус, восстановить реверберационную обстановку записи. Можно проанализировать усреднённое время затухания (реверберацию) инструментов на записи, в течении задержки определённой окном фильтра. И с задержкой определённой временем реверберации, подмешать на -3 -6 дБ уже разделённые каналы:
    a) фронты в тылы
    б) фронты в центр.
    в) центр во фронты

    Я так думаю.

  6. #85
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Vinni, плиз возьмите на испытание демо-версию нового плагина, вроде что-то адекватное получилось:
    foo_dsp_PentaStereo_v0.1.1.zip

    Это уже полноценное 5-и канальное разложение, без дублирования с задержками. Режим разложения пока только один, представляющий из себя расширение Triple Stereo введением промежуточных каналов между левый-центр и центр-правый. В сетапе surround он звучит даже лучше, чем в линию. Возможно, что это не самый лучший вариант для surround, но зато универсальный. Дополнительный плюс - центр стал менее нагружен, что оказалось более комфортным для прослушивания.
    Минусы тоже есть
    За счёт 5-и каналов получаем более узкие полосы по амплитуде, вследствие чего на маленьких окнах звуки "летают" между каналами, а суммарная спектральная насыщенность субъективно кажется недостаточной (вследствие того, что по алгоритму синфазные частоты в единицу времени звучат только из одного канала). Поэтому размер окна по-умолчанию я выставил в 2.8с, мне этого показалось достаточным, но можете увеличить его на 5.5с. Лёгкая реверберация тут скорее в плюс, так как она выравнивает общее звуковое поле (хотя её даже в наушниках слышно с трудом).

    Для сохранения фронтов (аттак) я ввёл дополнительное выравнивание фаз в первом проходе и ввёл дополнительный этап обработки во втором проходе (мои вчерашние идеи). Насколько стало лучше, судить не возьмусь, ибо чувство объективности потерял уже давно
    Последний раз редактировалось E.Sokol; 09.06.2015 в 09:41.

  7. #86
    Частый гость Аватар для impex
    Регистрация
    04.03.2015
    Сообщений
    120

    По умолчанию Re: трёх-канальное стерео

    а не в линейку, и не сурраунд, а полукругом, с углом сектора 150-160гр. не пробовали?

  8. #87
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Я-то все варианты перепробовал) Пробуйте вы сами лучше. Сейчас они так и стоят у меня - полукругом, с точкой прослушивания чуть дальше, на диване.

  9. #88
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    возьмите на испытание
    Взял. Приехали.
    1. Мой комп. не тянет 24/192, не говоря про 32fp/192. Конвертация тоже очень медленно - не дождался.
    2. Испытывал на 44,1. Основной принцип "не навреди" пропал, уровень центра стал непредсказуем. Если на TS максимальный уровень соответствовал источнику, сейчас зашкаливает. С учётом того, что 0 дб DSD = -6 дб PCM при записи, то придётся выстраивать уровень записи под каждый альбом - нет желания.
    3. Выставлять АС в линеечку или в столбик, треугольником или спиралькой - нехочунебуду. Есть устоявшиеся стандарты расположения. На них и надо ориентироваться. По хорошему, надо выбирать в приложении варианты вывода.

    Нажмите на изображение для увеличения. 

Название:	92.png 
Просмотров:	202 
Размер:	41.3 Кб 
ID:	238852 Нажмите на изображение для увеличения. 

Название:	92.png 
Просмотров:	183 
Размер:	33.8 Кб 
ID:	238851 Стандартный 11-канальный сетап, который подходит и для Dolby Atmos. Думаю скоро закончу 1-й этап L,C,R,SL,SR,SB.

    4. Центральная АС, должна быть очень специальной АС. Она должна играть не хуже фронтальной до частоты раздела с сабом или без саба. Поэтому у меня на фронтах делается 4" СЧ работающий с 10" НЧ. А на другие АС 5", где центральная АС с широкой мордой. Этим хочу обеспечить одинаковое ощущение масштаба на частотах раздела СЧ/НЧ фронтов и центра. Или второй вариант - все АС одинаковые, во всю полосу. Ориентироваться на неправильно сделанный или купленный сетап - не надо. Поэтому аргумент, что центр перегружен не важен. Главное, чтобы уровни КИЗ распределялись по всему фронту точно, как задумано на записи.

    5. По поводу звука, вроде бы интересней. Надо время на послушать. Если будет более производительный вариант, было бы лучше. Сейчас могу только 44,1 кГц послушать. Дело наверное не в процессоре, 15% загрузки, а в буферах. Изменение буфера фубара - не помогает. Название: k1n_017.gif
Просмотров: 574

Размер: 8.0 Кб
    Последний раз редактировалось Vinni; 06.06.2015 в 11:56.

  10. #89
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от Vinni Посмотреть сообщение
    Мой комп. не тянет 24/192, не говоря про 32fp/192.
    А то Преобразование Фурье - весьма дорогостоящая операция. 5 каналов против 3-х - это загрузка процессора почти в 2 раза больше. 192kHz против 44.1kHz - это ещё в 4 раза. Что касается 16/24/32 бит - на производительность это не влияет, вся внутренняя обработка в фубаре идёт в 64 бит.

    Цитата Сообщение от Vinni Посмотреть сообщение
    Конвертация тоже очень медленно
    Последняя версия фубара использует для конвертации каждой отдельной записи отдельное ядро. Если у вас их 4, то конвертация 4-х одинаковых по длительности записей займёт почти столько же времени, сколько и одной.

    Цитата Сообщение от Vinni Посмотреть сообщение
    Основной принцип "не навреди" пропал, уровень центра стал непредсказуем. Если на TS максимальный уровень соответствовал источнику, сейчас зашкаливает.
    Выставление уровня в плагине - это отдельная проблема, автоматически её определить невозможно. Некоторые записи укладываются в 0дБ, для других -6дБ недостаточно. Решение тут два - либо устанавливать уровень с запасом в -9дБ, либо делать конверт в 32fp, а затем автоматическую регулировку уровня по максимальному пику в аудио-редакторе (в 32fp "обрезание" сигнала при превышении 0дБ не происходит)

    Цитата Сообщение от Vinni Посмотреть сообщение
    По хорошему, надо выбирать в приложении варианты вывода.
    Я это предполагал реализовать в дальнейшем.

    Цитата Сообщение от Vinni Посмотреть сообщение
    Главное, чтобы уровни КИЗ распределялись по всему фронту точно, как задумано на записи.
    Боюсь, для этого есть только два варианта - либо слушать оригинальное стерео, либо студийный ремастер в 5.1 и более каналов, если таковые существуют. Любые операции с исходным аудио-материалом необратимо его искажают.

    Цитата Сообщение от Vinni Посмотреть сообщение
    Если будет более производительный вариант, было бы лучше.
    У меня и так и уже всё заоптимизировано почти до предела. Вместо FFT используется FHT (Fast Hartley Transform) c использованием таблиц с уже вычисленными значениями синусов и косинусов. Функции разложения стерео и выравнивания суммарной АЧХ написаны на ассемблере с точностью вычислений в 80 бит. Используется второе ядро в процессоре, если оно есть. Оптимизацию тоже нельзя делать бесконечно - чем дальше, тем меньше эффект и больше потраченного времени, а потом и эффект меняется с положительного на отрицательный.

    Цитата Сообщение от Vinni Посмотреть сообщение
    Дело наверное не в процессоре, 15% загрузки
    Дело именно в процессоре. Подозреваю, что он у вас 8-и ядерный. Каждое ядро - это отдельный процессор, но все они работают с одной общей памятью, а операции с памятью - это самые медленные операции. Чтобы было 100% нагрузки, нужно чтобы все 8 ядер были нагружены. Само по себе это не происходит - если программа написана как однопоточная, она и будет выполняться только на одном ядре. Написание же алгоритмов для многопроцессорных систем - задача непростая и не для всех алгоритмов возможная. В данном случае одновременно нагрузить можно будет только 5 ядер, и то 4 из них будут нагружены не всегда. И это нужно будет специальным образом программировать.

    Цитата Сообщение от Vinni Посмотреть сообщение
    Есть устоявшиеся стандарты расположения
    Эти стандарты - для Surround, то есть "звук вокруг". Мои же плагины - это то же стерео, только с дополнительными колонками - по прежнему "звук спереди", как и в обычном стерео. Это, кстати, основной аргумент противников surround звука - слушая живую музыку, мы сидим не в середине оркестра, а зале, когда все инструменты звучат впереди нас.
    Последний раз редактировалось E.Sokol; 07.06.2015 в 09:37.

  11. #90
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    По нагрузке и оптимизации понял. Как бывший программер скажу, что нити это не больно. В начале 90-х ещё писал.

    Скрытый текст


    /*
    plcSeria.cpp
    Последовательный канал PC
    Project: Programming Logic Controller
    Copyright (c) 1996 xxxxx ltd.
    */
    #if !defined( __DOS_H )
    #include <dos.h>
    #endif
    #if !defined( __PLCSERIA_H )
    #include "plcSeria.h"
    #endif
    #if !defined( __PLCBNET_H )
    #include "plcBnet.h"
    #endif

    IORegisterBlock::IORegisterBlock( bool listAdrPresent )
    {
    transport = new BitNetTransport( this );
    if( listAdrPresent == true )
    listAdr = new ListNetworkAdres( iDefaultConnections );
    else
    listAdr = 0;
    }
    IORegisterBlock::~IORegisterBlock()
    {
    if( transport )
    {
    delete transport;
    transport = 0;
    }
    if( listAdr )
    {
    delete listAdr;
    listAdr = 0;
    }
    }
    bool IORegisterBlock::addConnect( unsigned char newConnect )
    {
    if( listAdr && (transport->getNetAdres() != newConnect) )
    return listAdr->Add( newConnect ) ? true : false;
    else
    return false;
    }
    IORegisterBlock& ComBase::operator<<( BitNetProtokol& protokol )
    {
    for( unsigned short i=0, l= usSizeBitNetProtokol; i < l; i++ )
    if( sendByte( protokol[i]) == false )
    {
    setError( srHardwareError, true );
    return *this;
    }
    return *this;
    }
    ByteQueue lib;
    ComPort::ComPort( char* portName )
    {
    numByteRead =
    numByteWrite =
    sizeWrite =
    errorCodes =
    dwWriteThreadID=
    dwReadThreadID = 0L;
    namePort = portName;
    hComm = CreateFile( portName,
    GENERIC_READ | GENERIC_WRITE,
    0L,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
    NULL );
    if( hComm == INVALID_HANDLE_VALUE )
    MessageBox(NULL, "Неверное имя порта или он занят другой программой!",
    "", MB_ICONSTOP | MB_OK );
    bqRead = new ByteQueue(iReadDefaultSerialBufferSizeOnPC);
    bqWrite = new ByteQueue(iWriteDefaultSerialBufferSizeOnPC);
    bufRead = new char[iReadDefaultSerialBufferSizeOnPC];
    bufWrite= new char[iWriteDefaultSerialBufferSizeOnPC];
    // Установка буфферов
    SetupComm( hComm, usSizeBitNetProtokol*64, usSizeBitNetProtokol*64 ) ;
    // очистить информацию о буфферах
    PurgeComm( hComm, PURGE_TXABORT | PURGE_RXABORT |
    PURGE_TXCLEAR | PURGE_RXCLEAR ) ;
    // установки для паралельного в/в
    COMMTIMEOUTS CommTimeOuts;
    CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF ;
    CommTimeOuts.ReadTotalTimeoutMultiplier = 0 ;
    CommTimeOuts.ReadTotalTimeoutConstant = 4000 ;
    CommTimeOuts.WriteTotalTimeoutMultiplier= 0 ;
    CommTimeOuts.WriteTotalTimeoutConstant = 4000 ;
    SetCommTimeouts( hComm, &CommTimeOuts ) ;
    overlapped.Internal =
    overlapped.InternalHigh= 0;
    overlapped.Offset =
    overlapped.OffsetHigh = 0;
    overlapped.hEvent = NULL;
    hEventWrite = CreateEvent( NULL, TRUE, FALSE, NULL );
    hEventRead = CreateEvent( NULL, TRUE, FALSE, NULL );
    DCB dcb ;
    GetCommState( hComm, &dcb );
    dcb.BaudRate = CBR_9600;
    dcb.ByteSize = 8;
    dcb.StopBits = ONESTOPBIT;
    dcb.fBinary = TRUE;
    dcb.fParity = NOPARITY;
    dcb.fOutxCtsFlow = TRUE;
    dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
    dcb.fDtrControl = DTR_CONTROL_DISABLE;
    dcb.fDsrSensitivity = FALSE;
    dcb.fNull = FALSE;
    SetCommState( hComm, &dcb ) ;
    // ::EscapeCommFunction( hComm, SETRTS );
    // Нам интересно когда запускать команду чтения
    ::SetCommMask( hComm, EV_RXCHAR | EV_TXEMPTY | EV_CTS ) ;
    // Создаем паралелльный процесс для чтения
    hReadThread =
    ::CreateThread( LPSECURITY_ATTRIBUTES( NULL ),
    0,
    LPTHREAD_START_ROUTINE( &ComPort::getData ),
    LPDWORD(this),
    0,
    &dwReadThreadID
    );
    // Создаем паралелльный процесс для записи
    hWriteThread =
    ::CreateThread( LPSECURITY_ATTRIBUTES( NULL ),
    0,
    LPTHREAD_START_ROUTINE( &ComPort::putData ),
    LPDWORD(this),
    0,
    &dwWriteThreadID
    );
    ::SetThreadPriority( hReadThread, THREAD_PRIORITY_ABOVE_NORMAL );
    ::SetThreadPriority( hWriteThread,THREAD_PRIORITY_ABOVE_NORMAL );
    }
    ComPort::~ComPort()
    {
    CloseHandle( hComm );
    CloseHandle( hEventWrite);
    CloseHandle( hEventRead );
    delete bqRead;
    delete bqWrite;
    delete bufRead;
    delete bufWrite;
    }
    bool ComPort::sendByte( char byte )
    {
    if( isTransmitBufferNotFull() )
    {
    bqWrite->Put( byte );
    return true;
    }
    return false;
    }
    DWORD __stdcall ComPort::putData( LPDWORD lpdwParam )
    {
    ComPort& port = (ComPort&)(*lpdwParam);
    COMSTAT ComStat ;
    while(1)
    {
    if( (port.sizeWrite = port.bqWrite->GetItemsInContainer()) >= usSizeBitNetProtokol )
    {
    for( register i = 0; i < port.sizeWrite ; i++ )
    port.bufWrite[i] = port.bqWrite->Get();
    port.overlapped.hEvent = port.hEventWrite;
    port.numByteWrite = 0;
    if((::WriteFile(
    port.hComm,
    port.bufWrite,
    port.sizeWrite,
    &port.numByteWrite,
    &port.overlapped )
    ) == FALSE )
    {
    if(::GetLastError() == ERROR_IO_PENDING)
    ;
    else
    {
    ::ClearCommError( port.hComm, &port.errorCodes, &ComStat );
    port.displayErrorCodes( port.errorCodes );
    port.errorCodes = 0L;
    continue;
    }
    }
    while(!::GetOverlappedResult( port.hComm, &port.overlapped, &port.numByteWrite, TRUE ))
    {
    if(GetLastError() == ERROR_IO_INCOMPLETE)
    continue;
    else
    break;
    }
    ::ResetEvent( port.hEventWrite );
    port.numByteWrite = port.sizeWrite = 0L;
    }
    }
    }
    DWORD __stdcall ComPort::getData( LPDWORD lpdwParam )
    {
    ComPort& port = (ComPort&)(*lpdwParam);
    COMSTAT comStat ;
    while(1)
    {
    DWORD dwComEvent = 0; // Ожидаем приема от порта
    ::WaitCommEvent( port.hComm, &dwComEvent, NULL );
    if ((dwComEvent & EV_RXCHAR) == EV_RXCHAR) // Дождались чтения
    {
    port.errorCodes = 0L; // Сколько байт в буффере
    ::ClearCommError ( port.hComm, &port.errorCodes, &comStat );
    port.numByteRead = 0 ;
    port.errorCodes = 0L;
    port.overlapped.hEvent = port.hEventRead; // Чтение
    if(::ReadFile( port.hComm,
    port.bufRead,
    comStat.cbInQue,
    &port.numByteRead,
    &port.overlapped
    )== FALSE )
    {
    if(::GetLastError() == ERROR_IO_PENDING)
    ;
    else
    {
    ::ClearCommError( port.hComm, &port.errorCodes, &comStat ) ;
    port.displayErrorCodes( port.errorCodes );
    port.errorCodes = 0L;
    continue;
    }
    }
    while(!::GetOverlappedResult( port.hComm, &port.overlapped, &port.numByteRead, TRUE ))
    {
    if(GetLastError() == ERROR_IO_INCOMPLETE)
    continue;
    else
    break;
    }
    ::ResetEvent( port.hEventRead );
    for( register i = 0; i < port.numByteRead; i++ )
    port.bqRead->Put( port.bufRead[i] );
    port.numByteRead = 0;
    }
    }
    }
    void ComPort::receiveData()
    {
    if( bqRead->GetItemsInContainer() >= usSizeBitNetProtokol )
    {
    ::SuspendThread( hReadThread);
    transport->moveDataFrom( *bqRead );
    ::ResumeThread( hReadThread);
    }
    }
    void ComPort::displayErrorCodes( DWORD erc )
    {
    char * errorString=0;
    if( erc & CE_BREAK )
    errorString = "Аппаратура порта обнаружила сигнал Break.\n";
    if( erc & CE_FRAME )
    errorString = "Аппаратура порта обнаружила ошибку передачи.\n";
    if( erc & CE_IOE )
    errorString = "Ошибка ввода-вывода.\n";
    if( erc & CE_MODE )
    errorString = "Запрошенный режим не поддерживается, или неверен hCommDev параметр.\n";
    if( erc & CE_OVERRUN )
    errorString = "Буффер переполнен. Следующий байт потерян.\n";
    if( erc & CE_RXOVER )
    errorString = "Входной буффер переполне. Недостаточен размер буффера или символ принят конца файла (EOF).\n";
    if( erc & CE_RXPARITY )
    errorString = "Аппаратура обнаружила ошибку четности.\n";
    if( erc & CE_TXFULL )
    errorString = "Выходной буффер переполнен.\n";
    if( erc & CE_DNS )
    errorString = "Параллельное устройство не выбрано.\n";
    if( erc & CE_PTO )
    errorString = "Тime-out параллельного устройства.\n";
    if( erc & CE_OOP )
    errorString = "Параллельное усртройство сигнализирует о конце бумаги.\n";
    ::MessageBox(NULL, errorString, namePort, MB_ICONSTOP | MB_OK );
    }
    [свернуть]


    В таком варианте получается мало пользы.

    Если Вы выводите результат разделения в поток для L и С, то нельзя ли применить бандпасс фильтр такого же порядка для входного потока, что бы через него узнать амплитуду на этой полосе? Потом выровнять амплитуду в разделённых потоках так, чтобы она в сумме была равна исходной амплитуде.

    Многоканальные фонограммы оригинальные ищу в первую очередь.
    А в разложении стерео я ищу не звук вокруг, а реверберация записи вокруг - искусственно воссозданная реверберационная обстановка записи как-то зал, стадион, студия и т.д. Есть мысли, думаю, как понятней изложить.

  12. #91
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от Vinni Посмотреть сообщение
    В таком варианте получается мало пользы.

    Если Вы выводите результат разделения в поток для L и С, то нельзя ли применить бандпасс фильтр такого же порядка для входного потока, что бы через него узнать амплитуду на этой полосе? Потом выровнять амплитуду в разделённых потоках так, чтобы она в сумме была равна исходной амплитуде.
    Извините, я совсем не понял, что вы хотел сказать. Возможно это потому, что я неправильно понял ваш предыдущий комментарий "уровень центра стал непредсказуем". Я так понял, речь шла об ограничении по уровню громкости, или нет?

  13. #92
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Извините
    Это продолжение диалога о
    Цитата Сообщение от Vinni Посмотреть сообщение
    Главное, чтобы уровни КИЗ распределялись по всему фронту точно, как задумано на записи.
    Этим
    Цитата Сообщение от Vinni Посмотреть сообщение
    Если Вы выводите результат разделения в поток для L и С, то нельзя ли применить бандпасс фильтр такого же порядка для входного потока, что бы через него узнать амплитуду на этой полосе? Потом выровнять амплитуду в разделённых потоках так, чтобы она в сумме была равна исходной амплитуде.
    хотел уточнить возможность выровнять в алгоритме уровень всех инструментов, как на записи.
    Последний раз редактировалось Vinni; 07.06.2015 в 23:30.

  14. #93
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от Vinni Посмотреть сообщение
    хотел уточнить возможность выровнять в алгоритме уровень всех инструментов, как на записи.
    У меня в алгоритме нет инструментов, там частоты (в комплексном виде). Их уровень выравнивается на второй стадии обработки - для каждой частоты модуль суммы левого и центра после обработки равен модулю оригинальному левому, и так же для правого.

  15. #94
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    У меня в алгоритме нет инструментов
    Если я говорю о фильтрах, то это понимаю.

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    для каждой частоты модуль суммы левого и центра после обработки равен модулю оригинальному левому, и так же для правого.
    Тогда в сочетании оригинальными фронтами + не перевариваемая нагрузка на проц, TS воспринимается, как более целостная и самодостаточная концепция.
    Есть ещё соображение, по стандартному расположению АС. Звук должен не только разлагаться на 3 или 5 фронтальных АС, но и наоборот, правильно собираться AV процессором при отсутствии центра или FWL/WFR.

  16. #95
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Vinni, я всё никак не могу понять, что именно вам не нравится.

    Высокая нагрузка на процессор - это неизбежное следствие конкретно моего подхода - двух-этапная обработка с использованием больших FFT и хитрыми алгоритмами. Если этот момент принципиален, то FreeSurround работает в несколько раз быстрее, а IdealStereo в 100500 раз быстрее.

    В концепцию 3-х канального стерео 5-и канальное разложение так же идеально вписывается - левое звучит слева, правое - справа, центр - по центру. С 3-мя колонками так не сделаешь, потому что возникает ощущение "дырок" между колонками, 3 колонки только в линию ставить.

  17. #96
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,473

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    что именно вам не нравится
    Начиная с #88 поста всё расписал, чё повторяться?
    Надо пока сетап доделать, а то последний центр разобрал на модернизацию.

    Каналы задние не те. SL и SR по фубару, это на моей картинке в #88 обозначены SBL SBR. А надо выводить на BL BR (0x10, 0x20), на моей картинке SL SR. Все шесть каналов идут в подряд 0x1-0x20.
    В пионере похоже в первоисточники не смотрят.
    Проверил обратной конвертацией из DSD, там только стандартная шестиканальная схема используется. Перед конвертацией в DSD задние каналы загнал в FWL/FWR ( FCL/FCR 0x40,0x80). А обратная конвертация получилась SL/SR (BL/BR 0x10, 0x20).
    Т.е. DSD для вывода на все пять фронтальных не подходит.
    Последний раз редактировалось Vinni; 09.06.2015 в 22:51.

  18. #97
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Re: трёх-канальное стерео

    Новая версия: TripleStereo_v3.0.5.zip

    Звук чище, нагрузка на процессор сильнее. Уровень громкости в плагине по-умолчанию выставлен в -6дБ во избежание клиппинга на некоторых записях. Оптимизирован. Названия параметров приведены к человеко-понятному виду. Экспериментальные режимы выкинуты.
    Последний раз редактировалось E.Sokol; 12.01.2016 в 19:51.

  19. #98

    По умолчанию Re: трёх-канальное стерео

    Цитата Сообщение от lugshaa Посмотреть сообщение
    "в фубаре в DSP-менеджере можно исключить (и включить) плагин из списка активных просто двойным щелчком мыши."
    Можно, только при обратном включении настройки Вашего плагина устанавливаются "по умолчанию". Туда-сюда быстро не переключишь.
    Элементарно. Сохранить два варианта в два разных DSP пресета с разными именами, и потом чем угодно, хоть хоткеями, переключать пресеты.

  20. #99
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Обновление до версии 3.0.8

    Новая версия: TripleStereo_v3.0.8.zip

    - Разложение теперь полностью реверсивно - исходные каналы могут быть восстановлены через сложение;
    - Граничные частоты теперь также корректно обрабатываются - ультра-низкие частоты и частота Найквиста больше не фильтруются;
    - Оптимизирован - работает быстрее как минимум в 2 раза;
    - Возможно микширование с оригинальными стерео-каналами;
    - Доработан механизм изменения параметров в реалтайм-режиме.

    Нажмите на изображение для увеличения. 

Название:	TripleWaves3.png 
Просмотров:	183 
Размер:	101.1 Кб 
ID:	256179
    Последний раз редактировалось E.Sokol; 17.01.2016 в 16:24.

  21. #100
    Завсегдатай Аватар для shutoff
    Регистрация
    16.05.2013
    Адрес
    Где пленили Паулюса.
    Возраст
    55
    Сообщений
    1,620

    По умолчанию Re: трёх-канальное стерео

    стерео-сигнал в 3 канала - левый, правый и центр, так, чтобы соблюдались следующие условия:1.- если сигнал звучал только в левом или правом канале, он и будет звучать только в левом или правом канале;
    2.- если сигнал звучал и в левом, и в правом канале синфазно, он будет звучать только в центральном канале, в боковых его не будет;
    3.- если сигнал звучал и в левом, и в правом канале в противофазе, он там и останется, а в центральном канале его не будет (так как противофазные сигналы при сложении дают ноль).
    1. В стерео записи сигнал присутствует в обоих каналах, разница лишь в амплитуде (при двухмикрофонной стерео записи отдалённый от источника звука микрофон принимает сигнал меньшей интенсивности, что и создаёт локализацию источника в пространстве. Всегда есть наличие/отсутствие отражённых сигналов/эха, абсолютная тишина только в паузах ) Отсутствие сигнала в одном из каналов справедливо для записи без микрофонов либо специально обработанная.
    2. Значит Ц канал воспроизводит весь диапазон Л и П каналов. Тогда
    А. Для сохранения того же уровня ЗД канал Ц должен иметь суммарное количество излучателей Л и П каналов.
    Б. Сигналы Л и П стерео каналов не идентичны (иначе это моно с разнесёнными излучателями) и имеют разностную составляющую, как фазовую так и амплитудную. Эта разностная составляющая и создаёт стерео- эффект, который возникает при интеграции принятого сигнала системой ухо-мозг. Отсуда возникают некоторые нюансы с разностной составляющей (РС) стерео сигнала между разнесёнными АС Л и П каналов и локализации КИЗ.
    а) РС вырезается из Л и П и подаётся в Ц канал
    б) РС подаётся без вырезания. *при этом синфазный сигнал Ц канала увеличивает амплитуду Л и П каналов а противофазный уменьшает. Тогда возникает вопрос о времени задержки с момента интегрирования РС и его подаче в Ц канал... и возможность её подстройки?
    3. Противофазных сигналов в стерео записи нет, есть "сдвинутые по фазе" т.е задержанные по времени т.к Фи это функция времени Т -> Ф(t)
    Последний раз редактировалось shutoff; 03.12.2017 в 13:24.

Страница 5 из 8 Первая ... 34567 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •