Вверх ↑
Этот топик читают: Гость
Ответов: 15
Рейтинг: 1
#31: 2015-02-27 23:57:07 ЛС | профиль | цитата
И что, не падает?


Завтра вечером отпишусь. 5 минут испытаний - это не испытания! Глюк - это мерзопакостная штука, может сразу не проявиться.
------------ Дoбавленo в 23.47:
И что, не падает?


Программа испытывалась на 3-х компах: 1- Win7, 2- Win7 (64), 3- Win7 (64). Программа работала стабильно в локальной сети и через сеть Интернет 2048 Кбит/с. В процессе работы слышны щелчки похожие на резкую кратковременную смену тональности (или фиг знает на что похожи) с частотой повторения 5...20... секунд , потом, то реже, то чаще. Периодически меняется (незначительно) тональность без щелчков и со щелчками. Один раз было (без испытания по сети т.е. локально) вместо 127.0.0.1 указал локальный IP и программа зависла, но это скорее случайность.

На двух компах под управлением Win7 и Win7 (64) не отображался уровень звука в микшере, хотя звук регулируется.

1 вариант: один сервер, 2 клиента, Инет и локальная сеть
Минут через 20 (вероятность и раньше) начал изменяться показатель Buffer level (100-55-65-95-100; 100-65-72-95-100...) при этом, на каждое, в основном, второе повторение (изменения Buffer level) кратковременно пропадал звук. После отключения второго клиента, показания Buffer level стабилизировались, а вот кратковременное пропадание звука сменилось на "заикание" ну или на своеобразные щелчки только позаметнее.

2 вариант: 1 сервер, 1 клиент, через Интернет
Изменение тональности. Изменение тональности и щелчки похожие толи на кратковременное пропадание звука, толи так слышится смена тональности, короче сплошь специфика программы.

Итого:
- на счет зависания, программа работает стабильно;
- при схеме 1 сервер - 2 и более клиента - два, три (или как повезет) клиента между собой не могут поделить Buffer level и это отражается на звуке;
- смена тональности и своеобразные щелчки/помехи;
- при двух и более клиентах кратковременно пропадает звук;
- сервер не любит столпотворения клиентов, может зависнуть если не сбросит количество подключенных клиентов. Сервер только для одного клиента.
- мне этот писк...

------------ Дoбавленo в 23.57:

Netspirit, а можно получить на испытания твою программу в которой вместо писка в качестве источника звука используется микрофон с Web камеры? Желательно с визуализацией, а то на удаленном компьютере не понятно есть ли звук или нет его. Я думаю, передача звука в одной тональности и звука в виде речи, это две большие разницы.
карма: 0

1
Голосовали:flint2
Ответов: 209
Рейтинг: 1
#32: 2015-02-28 00:34:15 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-19 17:52:08
карма: 0

0
файлы: 1code_35221.txt [6.6KB] [433]
Ответов: 15
Рейтинг: 1
#33: 2015-02-28 00:40:59 ЛС | профиль | цитата
эту схему я сто раз переделывал и она "вырезка" и видеочата, поэтому такая некозистая
------------ Дoбавленo в 00.38:
эту схему я сто раз переделывал и она "вырезка" и видеочата, поэтому такая некозистая
------------ Дoбавленo в 00.38:
где там изменения, кроме буфера?
------------ Дoбавленo в 00.40:
ставил я буфер маленьким - не помогло
и по нескольким портам пускал - не помогло
и пытался еще на что нибудь заменить - вообще не стало работать
карма: 0

0
Ответов: 209
Рейтинг: 1
#34: 2015-02-28 00:44:15 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-19 17:52:13
карма: 0

0
Ответов: 15
Рейтинг: 1
#35: 2015-02-28 00:44:39 ЛС | профиль | цитата
и имена менял
------------ Дoбавленo в 00.44:
ну попробую
карма: 0

0
Ответов: 209
Рейтинг: 1
#36: 2015-02-28 00:56:04 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-19 17:52:17
карма: 0

0
Ответов: 15
Рейтинг: 1
#37: 2015-02-28 01:14:38 ЛС | профиль | цитата
мне вот интересно. как чистить эхо. вот вопрос


надо сначала проблему с зависанием проги решить, а эхо это уже второй вопрос, да и не так критично
------------ Дoбавленo в 01.13:
10 минут на буфере в 10000 - полет нормальный
------------ Дoбавленo в 01.14:
я думаю,если с зависанием проблема решится, то многие поклонники Hiasm спасибо скажут
карма: 0

0
Ответов: 209
Рейтинг: 1
#38: 2015-02-28 01:18:17 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-19 17:52:21
карма: 0

0
Ответов: 15
Рейтинг: 1
#39: 2015-02-28 01:42:10 ЛС | профиль | цитата
если опять глюканет, то на сколько максиму буфер увеличивать? типо где точка не возврата
(20 минут, пока работает)
------------ Дoбавленo в 01.42:
При буфере 10000 через 35 минут - Runtime error 216 ad 00401BD5
карма: 0

0
Ответов: 209
Рейтинг: 1
#40: 2015-02-28 01:52:17 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-19 17:52:25
карма: 0

0
Ответов: 2059
Рейтинг: 131
#41: 2015-02-28 11:46:54 ЛС | профиль | цитата
Может я глупость скажу...
Можно попробовать сделать длину буфера кратной-равной частоте дискретизации.
Надо учесть, что шаг=слову(2 байта) - это для одного канала.
карма: 6

0
Ответов: 209
Рейтинг: 1
#42: 2015-02-28 13:50:22 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-19 17:52:28
карма: 0

0
Ответов: 4612
Рейтинг: 746
#43: 2015-02-28 16:49:53 ЛС | профиль | цитата
krastydent писал(а):
при схеме 1 сервер - 2 и более клиента - два, три (или как повезет) клиента между собой не могут поделить Buffer level и это отражается на звуке
Да нет, там проще: сервер отправляет фрагмент звука каждому клиенту последовательно. Соответственно, пока данные не дойдут до предыдущего клиента, они не начнут отправляться следующему. Появляются паузы в клиентах.
Я просто не стал заморачиваться с асинхронной отправкой.

krastydent писал(а):
можно получить на испытания твою программу в которой вместо писка в качестве источника звука используется микрофон с Web камеры?
Дашь схему снятия звука с микрофона - подумаем, как её впихнуть в сервер.

К сообщению прикреплены схемы сервера и клиента (на штатном SoundBuffer). Используются альтернативные TCP компоненты.

Netspirit писал(а):
Но, схемы работают и на стандартных BASS_StreamCreate, SoundBuffer
С выводами поспешил: на стандартном SoundBuffer таки падает. Уверен, по озвученной ранее причине:
Netspirit писал(а):
каким это образом можно одновременно записывать данные в поток (MemoryStream) в SoundBuffer (при этом, судя по коду, перемещать часть данных с конца в начало по превышению размера) и в это же время параллельным потоком читать из этого же MemoryStream


Исправления в BASS_StreamCreate, SoundBuffer выложу позже, когда закончу.
карма: 26

0
Ответов: 15
Рейтинг: 1
#44: 2015-02-28 22:47:16 ЛС | профиль | цитата
Исправления в BASS_StreamCreate, SoundBuffer выложу позже, когда закончу.


Блеснул луч надежды в темном царстве...
карма: 0

0
Ответов: 4612
Рейтинг: 746
#45: 2015-03-03 12:48:40 ЛС | профиль | цитата
Исправления в SoundBuffer, BASS_StreamCreate

BASS_StreamCreate:
- причесан код (в том числе чтение из потока не по сэмплах, а по запрашиваемому BASS количеству);
- добавлены события onBeforeRead, onAfterRead

SoundBuffer:
- код полностью переработан;
- исправлен конфликт с одновременными записью и чтением из параллельных потоков;
- оптимизирована работа с памятью;
- точка SoundStream переименована на Data;
- добавлена точка Avail;
- добавлено свойство WriteTimeout;
- раньше для добавления данных принимался только Stream, теперь также строки и целые;
- событие onAdd не работало.

Основные правила работы с SoundBuffer: при добавлении данных буфер не должен быть полным, при воспроизведении буфер не должен быть пустым. Иначе будут искажения или паузы при воспроизведении. То-есть, должна быть одинаковая скорость генерации данных и воспроизведения. Как этого добиться - это другой разговор.
карма: 26

1
Голосовали:Net2Com
Сообщение
...
Прикрепленные файлы
(файлы не залиты)