From 3692f1ccea29d507fa4279792d38fb15e6db4b47 Mon Sep 17 00:00:00 2001
From: boris_mikhaylov
Date: Mon, 23 Mar 2009 07:28:21 +0000
Subject: Description are moved.
git-svn-id: svn://svn.code.sf.net/p/bs2b/code/trunk/libbs2b@81 bc0edfbe-c936-4687-b64d-f70bc3985e72
---
doc/Makefile.am | 16 +-
doc/bs2b-ru.html | 410 ------------------------------
doc/bs2b.html | 413 -------------------------------
doc/bs2b_label.png | Bin 4171 -> 0 bytes
doc/bs2b_lib-ru.html | 108 --------
doc/bs2b_lib.html | 107 --------
doc/content-ru.html | 28 ---
doc/content.html | 27 --
doc/download.html | 5 -
doc/img/Bach-BWV1066-Overture-diff.png | Bin 7048 -> 0 bytes
doc/img/Bach-BWV1066-Overture-diff_e.png | Bin 6741 -> 0 bytes
doc/img/Makefile.am | 9 -
doc/img/bs2b_e_exdata_f.png | Bin 8469 -> 0 bytes
doc/img/bs2b_exdata_f.png | Bin 10341 -> 0 bytes
doc/img/bs2b_h-trans_d.png | Bin 7291 -> 0 bytes
doc/img/bs2b_h-trans_f.png | Bin 8688 -> 0 bytes
doc/img/bs2b_h_e-trans_d.png | Bin 7165 -> 0 bytes
doc/img/bs2b_h_e-trans_f.png | Bin 8155 -> 0 bytes
doc/index-ru.html | 19 --
doc/index.html | 18 --
doc/license.html | 38 ---
doc/readme.txt | 2 +
22 files changed, 3 insertions(+), 1197 deletions(-)
delete mode 100644 doc/bs2b-ru.html
delete mode 100644 doc/bs2b.html
delete mode 100644 doc/bs2b_label.png
delete mode 100644 doc/bs2b_lib-ru.html
delete mode 100644 doc/bs2b_lib.html
delete mode 100644 doc/content-ru.html
delete mode 100644 doc/content.html
delete mode 100644 doc/download.html
delete mode 100644 doc/img/Bach-BWV1066-Overture-diff.png
delete mode 100644 doc/img/Bach-BWV1066-Overture-diff_e.png
delete mode 100644 doc/img/Makefile.am
delete mode 100644 doc/img/bs2b_e_exdata_f.png
delete mode 100644 doc/img/bs2b_exdata_f.png
delete mode 100644 doc/img/bs2b_h-trans_d.png
delete mode 100644 doc/img/bs2b_h-trans_f.png
delete mode 100644 doc/img/bs2b_h_e-trans_d.png
delete mode 100644 doc/img/bs2b_h_e-trans_f.png
delete mode 100644 doc/index-ru.html
delete mode 100644 doc/index.html
delete mode 100644 doc/license.html
create mode 100644 doc/readme.txt
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 2da1440..7cc1f0d 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,15 +1 @@
-SUBDIRS = \
- img
-
-EXTRA_DIST = \
- bs2b.html \
- bs2b_label.png \
- bs2b_lib.html \
- bs2b_lib-ru.html \
- bs2b-ru.html \
- content.html \
- content-ru.html \
- download.html \
- index.html \
- index-ru.html \
- license.html
+EXTRA_DIST = readme.txt
diff --git a/doc/bs2b-ru.html b/doc/bs2b-ru.html
deleted file mode 100644
index 0685489..0000000
--- a/doc/bs2b-ru.html
+++ /dev/null
@@ -1,410 +0,0 @@
-
-
-
- Bauer stereophonic-to-binaural DSP
-
-
-
-
-
-
-
- Bauer stereophonic-to-binaural DSP.
-
- 1.
-Предисловие.
-
-Обычная стерео запись производится для прослушивания
-громкоговорителями. Это означает, что звукорежиссер делает стерео
-микширование с адаптацией звука для прослушивания одного канала обеими
-ушами. Следовательно, вы будете утомлены при длительном прослушивании в
-наушниках больше из-за суперстерео эффекта чем из-за плохой конструкции
-наушников. В наушниках отсутствует то, что звук идет от каждого канала
-к противоположному уху,
-достигает его через некоторое короткое время проходя дополнительное
-расстояние, и с частично ослабленными верхними частотами из-зи эффекта
-тени головы.
-И задержка до дальнего уха несколько больше на низких частотах чем на
-высоких. Bauer stereophonic-to-binaural DSP (bs2b)
-предназначен для улучшения прослушивания аудио стерео программ в
-наушниках. Это улучшение хорошо было объяснено дизайнерами электронных
-схем такими как
-Benjamin Bauer [1], Siegfried Linkwitz [2],
-Chu Moy [3], Jan Meier [4], John
-Conover [10],
-HeadRoom [9].
-Задержка в низкочастотном диапазоне, фильтры высокой частоты (ФВЧ),
-фильтры ослабления низкой частоты (ФОНЧ), и взаимосмешение в их
-электронных схемах сделаны на аналоговых RL
-(Bauer) или RC
-(Linkwitz, Moy, Meier) фильтрах перврго порядка. Такой дизайн
-производит желаемые эффекты и естественно исключает эффект гребенчатого
-фильтра в верхнем диапазоне частот благодаря нелинейному свойству
-фазово-частотной характеристики (ФЧХ) этих фильтров. bs2b делает такую
-же работу посредством простых и быстрых (в сревнение со сверткой)
-однополярных рекурсивных цифровых фильтров, потому что эти фильтры
-имеют такие же свойства как электронный RC-фильтры [5],
- [6], [7].
-Я выбрал такие значения частот среза для ФВЧ и ФОНЧ которые позволяют
-получать желательные задержку и наиболее ровную результирующую
-амплитудно-частотную характеристику (АЧХ). К сожалению, я не вычислил
-реальное значение частоты среза ФОНЧ, но это не так важно. ФОНЧ
-цифровой фильтр может быть представлен как двойной фильтр: как
-вычитание ослабленного профильтрованного ФВЧ сигнала из оригинального
-сигнала.
-Это может быть математически приведено к одношаговому рекурсивному
-фильтру. В первом релизе (1.0.0) bs2b я применял двушаговый метод для
-ФОНЧ с использованием уже полученного ФВЧ сигнала, но это делает
-значение частоты среза ФОНЧ немного меньше чем я предполагал, и это
-ведет к выделению низко-средних частот. Тем не менее, как написал Chu
-Moy [3], значение частоты среза ФОНЧ должно быть
-немного больше чем это значение для ФВЧ для достижения более гладкой
-АЧХ кросфидера. Поэтому, я сделал одношаговый метод для ФОНЧ во втором
-релизе bs2b. Я начал этот проект потому что звук других, которые я
-слушал до этого, наушниковых плагинов для аудиоплееров не удовлетворил
-меня. Основновное ухудшение звука наушниковыми DSP производится
-эффектом гребенчатого фильтра из-за использования FFT свертки с
-линейной ФЧХ для фильтрации. Есть плагин HeadPlug
-который имеет опцию 'decomb', и автор пишет об этом: "The way the
-plugin does
-this is
-really damn-ass straight-forward from a technical point of view". Я
-попытался сделать это намного легче для CPU. Последнее замечание. bs2b
-не производит симуляцию какого либо окружения и не производит какую
-либо HRTF [8] трансформацию в высокочастотном
-диапазоне. Некоторое применение HRTF в высокочастотном диапазоне уже
-сделано наушниками, исключая бинауральные наушники такие как Etymotic ER-4B.
-Итак, пробуйте использовать bs2b чтобы почуствовать звук немного вне
-вашей головы для облегчения работы вашего мозга.
-
- 2.
-Теория.
-
-Однополюсный рекурсивный фильтр представляется рекурсивным выражением:
-O[n] = a0 * I[n] + a1 * I[n-1] + b1 * O[n-1]
-где a0, a1, b1 - рекурсионные коэффициенты, I[n] - входящие значения
-сэмплов,
-O[n] - результирующие (фильтрованные) значения сэмплов. Характеристики
-фильтров зависят от рекурсионных коэффициентов. Таблица 2.1 показывает
-perl программу которая вычисляет частотную и временную зависимости bs2b
-с помощью H-преобразования [5].
-
- Table 2.1. bs2b-H-transform.pl.
-
-
-
- #!/usr/bin/perl
-
-use Math::Complex;
-
-$s = 40000; # Sample rate (Hz)
-
-$Fc = shift; # Lowpass filter cut frequency (Hz)
-$Gd = shift; # Lowpass filter gain (dB)
-$Ad_h = shift; # Highboost filter gain (dB) (0dB is highs)
-
-# example:
-# perl bs2b-H-transform.pl 700 -8 -2
-# it makes -6 dB crossfeed level
-#
- # bs2b 2.0.0b uses data listed below.
-# perl bs2b-H-transform.pl 700 -5.5 -2.5 # high crossfeed
-level
-# perl bs2b-H-transform.pl 500 -6.75 -2.25 # middle crossfeed level
-# perl bs2b-H-transform.pl 360 -8
--2 # low crossfeed level
- # bs2b 2.1.0 uses additional 'Easy'
-data that below.
- # perl bs2b-H-transform.pl 700 -8
--2 # high
-easy crossfeed
-level
- # perl bs2b-H-transform.pl 500 -9 -1.8 # middle easy crossfeed level
- # perl bs2b-H-transform.pl 360 -10 -1.6 # low easy crossfeed level
-
-
- $G = 10 ** ($Gd / 20);
-$A_h = 10 ** ($Ad_h / 20);
-$G_h = 1 - $A_h;
-
-$Gd_h = 20 * log($G_h) / log(10);
-$Fc_h = $Fc * (2 ** (($Gd - $Gd_h) / 12)); # '/3' by my theory, but...
-
-print "Fc_low = $Fc\nFc_high = $Fc_h\n";
-print "G = $G\nG_h = $G_h\n";
-
-$fc = $Fc / $s;
-$d = 1 / 2 / pi / $fc;
-$x = exp(-1 / $d);
-
-$fc_h = $Fc_h / $s;
-$d_h = 1 / 2 / pi / $fc_h;
-$x_h = exp(-1 / $d_h);
-
-# Lowpass single pole filter coefficients
-$b1 = $x;
-$a0 = $G * (1 - $x);
-$a1 = 0;
-
-# Highboost single pole filter coefficients
-$b1_h = $x_h;
-$a0_h = 1 - $G_h * (1 - $x_h);
-$a1_h = -$x_h;
-
-$w0 = 2 * pi * 4 / $s / 1.15;
-$z = exp(i * $w0);
-$H0 = ($a0 + $a1 / $z) / (1 -
-$b1 / $z);
-$H0_h = ($a0_h + $a1_h / $z) / (1 - $b1_h / $z);
-
-for ($w = $w0 * 1.15; $w <= pi/2; $w0 = $w, $w *= 1.15)
-{
- $z = exp(i * $w);
- $H = ($a0 + $a1
-/ $z) / (1 - $b1 / $z);
- $H_h = ($a0_h + $a1_h / $z) / (1 - $b1_h / $z);
-
- $str = sprintf("%f\t%f\t%f\t%f\t%f\t%f\t%f\n",
- $s * $w / 2 / pi,
- rho($H), #
-20 * log(rho($H)) / log(10) (dB)
- theta($H) * 180 /
-pi, # degree
- (theta($H) - theta($H0)) /
-($w - $w0) * 1000000 / $s, # mcs
- rho($H_h), # 20 *
-log(rho($H_h)) / log(10)
- theta($H_h) * 180 /
-pi, # degree
- (theta($H_h) - theta($H0_h))
-/ ($w - $w0) * 1000000 / $s # mcs
- );
-
- $str =~ s/\./\,/g; # Russian locale
-
- print $str;
-
- $H0 = $H;
- $H0_h = $H_h;
-}
- |
-
-
-
-
-Рисунки 2.1 и 2.2 показывают результаты выше указанной программы.
-Другими словами,
-это тереотические зависимости bs2b DSP. Показаны только установки bs2b
-низкого (low) уровня взаимосмешения '-L' и высокого (high) уровня
-взаимосмешения '-H'. Средняя установка (middle) уровня взаимосмешения
-опущена для наглядности. 'HB' означает ФОНЧ (highboost
-filter). 'LP' означает ФВЧ (lowpass filter). 'M' означает сумму этих
-отфильтрованных сигналов,
-которая может быть интерпретирована как bs2b действие на двухканальный
-моно сигнал.
-
- Рисунок
-2.1. bs2b теоретическая
-частотная характеристика.
-
-
-На рисунке 2.2 отрицательное время представляет задержку сигнала в
-микросекундах.
-
- Рисунок 2.2. bs2b теоретическая временная
- характеристика.
-
-
-Эти характеристики выглядят так как если бы виртуальные стерео
-громкоговорители переместились от 30
-градусов (high crossfeed level) до 60 градусов (low crossfeed
-level) по азимуту.
-
-Рисунки 2.3 и 2.4 показывают результаты выше указанной программы для
-новых 'Easy'
-уровней взаимосмешения выпуска 2.1 bs2b. Показаны только установки
-low-easy уровня смешения
-'-L' и high-easy уровня смешения '-H'.
-
- Рисунок 2.3. bs2b теоретическая частотная характеристика. 'Easy' версия.
-
-
-High-easy установка схожа с Chu Moy [3]
-версией кроссфидера.
-Рисунок 2.4 представляет характеристику временной задержки 'Easy'
-версии.
-
- Рисунок 2.4. bs2b теоретическая временная характеристика. 'Easy' версия.
-
-
-Эти характеристики выглядят похожими на 'нелегкую' версию из-за
-одинакового набора частот среза для ФВЧ и малого различия в наборе
-частот среза для ФОНЧ для обеих версий.
-
- 3.
-Эксперимент.
-
-Рисунок 3.1 показывает практические частотные характеристики bs2b. Это
-частотный анализ пропущенного через
-bs2b сигнала белого шума. Три вида белого шума: двухканальный моно
-сигнал 'M', двухканальный независимый сигнал 'I' и одноканальный
-сигнал. Обработка посредством bs2b одноканального сигнала
-представляется как характеристика ФОНЧ 'HB' или канал с первичным
-сигналом и как
-характеристика ФВЧ 'LP' или канал без первичного сигналаl. Показаны
-только установки bs2b низкого уровня '-L' и высокого уровня '-H'
-смешивания. Установка среднего уровня смешивания опущена для
-наглядности.
-
- Рисунок 3.1. bs2b частотная характеристика.
-
-
-Рисунок 3.2 показывает разницу между частотным анализом реальной аудио
-программы и частотным анализом этой программы обработанной bs2b.
-
- Рисунок 3.2. J.S. Bach
-"BWV1066"
-"Overture" разница частотного
-анализа.
-
-
-Рисунок 3.3 показывает практические частотные характеристики bs2b c
-установкой 'Easy High'.
-
- Рисунок 3.3. bs2b частотная
-характеристика. 'Easy' версия.
-
-
-Рисунок 3.4 как рисунок 3.2 но для 'Easy High' ('-H') и 'Easy
-Low' ('-L') установок.
-
- Рисунок 3.4. J.S. Bach
-"BWV1066"
-"Overture" разница частотного анализа. 'Easy' версия.
-
-
-
- 4.
-Ссылки.
-
- [1] Benjamin B. Bauer. Stereophonic
-Earphones
-and
-Binaural Loudspeakers.
-
-
- [2] Siegfried Linkwitz. Improved Headphone
-Listening. Build a stereo-crossfeed circuit.
-
-
- [3] Chu Moy. An Acoustic Simulator for
-Headphone
-Amplifiers.
-
-
- [4] Jan Meier. A DIY Headphone Amplifier.
-
-
- [5] Steven W. Smith, Ph.D. The Scientist
-and
-Engineer's Guide to Digital Signal Processing.
-
-
- [6] Davide Rocchesso. Introduction to
-Sound
-Processing.
-
-
- [7] BORES Signal Processing: Introduction
-to
-DSP.
-
-
- [8] Richard O.Duda. 3-D Audio for HCI.
-
-
- [9] HeadRoom. About the HeadRoom
-Crossfeed.
-
-
- [10] John Conover. Spatial Distortion
-Reduction Headphone Amplifier.
-
-
- Авторское право (c)
-2006
-Борис Михайлов < http://www.tmn.ru/~bor> |
-
-
-
-
-
diff --git a/doc/bs2b.html b/doc/bs2b.html
deleted file mode 100644
index 04162fc..0000000
--- a/doc/bs2b.html
+++ /dev/null
@@ -1,413 +0,0 @@
-
-
-
- Bauer stereophonic-to-binaural DSP
-
-
-
-
-
-
- Bauer stereophonic-to-binaural DSP.
-
- 1.
-Preface.
-
-A regular stereo record is produced for listening by loudspeakers. This
-means
-that sound engineer makes stereo mixing with interpretation of sound
-for hearing of one channel by both ears. Therefore, you will be tired
-by long time headphone listening more through superstereo effect than
-through
-bad
-headphone design. What’s missing
-in headphones is the sound going from each channel to the opposite ear,
-arriving a short time later for the extra distance traveled, and with a
-bit of high frequency roll-off for the shadowing effect of the head.
-And the time delay to the far
-ear is somewhat longer at low frequencies than at high frequencies.
-The Bauer stereophonic-to-binaural DSP (bs2b) is
-designed to improve headphone listening of stereo audio records. This
-improvement have been described well by electronic circuit designers
-like
-Benjamin Bauer [1], Siegfried Linkwitz [2],
-Chu Moy [3], Jan Meier [4], John
-Conover [10],
-HeadRoom [9].
-The time delay at low frequency range, lowpass filters, highboost
-filters and crossfeeding of their circuits has been made by first order
-RL
-(Bauer) or RC
-(Linkwitz, Moy, Meier) analog filters. This design makes desired
-effects and naturally eliminates comb filter effect at high frequency
-range by
-nonlinear phase response property of these filters. The bs2b makes the
-same job by simple and fast (in comparison with convolution) single
-pole recursive digital filters, because
-these filters has a properties as an electronic RC-filters [5], [6], [7].
-I have
-select a such values of cutoff frequencies of lowpass and
-highboost
-filters that allow to get a desired time delay and
-most smooth resulting frequency
-response. Unfortunately, I did not calculate the real value
-of
-cutoff
-frequency of highboost filter, but it is not so important. A highboost
-digital filter can be presented as two-step filter: as a
-subtraction of attenuated lowpass filtered signal from original signal.
-This
-can be mathematically presented to the one-step recursive filter. In
-the first (1.0.0) release of bs2b I
-was apply a two-step method for highboost filter with using of already
-calculated lowpas filtered signal, but it
-makes the value of cutoff frequency of highboost filter little
-lower than I was
-assume, and it leads to a thickness in the lower midrange.
-Nevertheless, as Chu Moy wrote [3], the
-value of highboost filter cutoff frequency
-should be little
-higher then lowpass filter one for
-more smooth frequency
-response of crossfeeder. Therefore, I have made an one-step
-method for highboost
-filter in second release of bs2b. I was started this project
-because the sound of other, I have see before, audioplayer's headphone
-plugins have not satisfy me. The primary degradation of sound by
-headphone
-DSPs is prodiced by a
-comb filter effect due to using of FFT convolution with
-linear phase response for filtering. There is a HeadPlug
-plugin that have
-'decomb' option, and author wrote about it: "The way the plugin does
-this is
-really damn-ass straight-forward from a technical point of view". I
-have
-try to make it much easier for CPU. Last
-note. The bs2b don't produce simulation of any ambient and don't
-produce any HRTF [8] transform in high frequency
-range. Some implementation of HRTF in the high frequency range is
-already have done by
-headphones, except
-of binaural headphones like Etymotic ER-4B.
-So, try to use bs2b to feel sound little out from your
-head to lighten the work of your brain.
-
- 2.
-Theoretical issue.
-
-Single
-pole recursive filter is
-presented by recursion eqation:
-O[n] = a0 * I[n] + a1 * I[n-1] + b1 * O[n-1]
-where a0, a1, b1 are recursion coefficients, I[n] is an input samples,
-O[n] is an output (filtered) samples. Filter's response is relay to
-recursion coefficients. Table 2.1 shows a perl program that calculate
-frequency and time delay
-responses of bs2b by H-transform [5].
-
- Table 2.1. bs2b-H-transform.pl.
-
-
-
- #!/usr/bin/perl
-
-use Math::Complex;
-
-$s = 40000; # Sample rate (Hz)
-
-$Fc = shift; # Lowpass filter cut frequency (Hz)
-$Gd = shift; # Lowpass filter gain (dB)
-$Ad_h = shift; # Highboost filter gain (dB) (0dB is highs)
-
-# example:
-# perl bs2b-H-transform.pl 700 -8 -2
-# it makes -6 dB crossfeed level
-#
-# bs2b 2.0.0b uses data listed below.
-# perl bs2b-H-transform.pl 700 -5.5 -2.5 # high crossfeed
-level
-# perl bs2b-H-transform.pl 500 -6.75 -2.25 # middle crossfeed level
-# perl bs2b-H-transform.pl 360 -8
--2 # low crossfeed level
- # bs2b 2.1.0 uses additional 'Easy'
-data that below.
- # perl bs2b-H-transform.pl 700 -8
--2 # high
-easy crossfeed
-level
- # perl bs2b-H-transform.pl 500 -9 -1.8 # middle easy crossfeed level
- # perl bs2b-H-transform.pl 360 -10 -1.6 # low easy crossfeed level
-
-
-$G = 10 ** ($Gd / 20);
-$A_h = 10 ** ($Ad_h / 20);
-$G_h = 1 - $A_h;
-
-$Gd_h = 20 * log($G_h) / log(10);
-$Fc_h = $Fc * (2 ** (($Gd - $Gd_h) / 12)); # '/3' by my theory, but...
-
-print "Fc_low = $Fc\nFc_high = $Fc_h\n";
-print "G = $G\nG_h = $G_h\n";
-
-$fc = $Fc / $s;
-$d = 1 / 2 / pi / $fc;
-$x = exp(-1 / $d);
-
-$fc_h = $Fc_h / $s;
-$d_h = 1 / 2 / pi / $fc_h;
-$x_h = exp(-1 / $d_h);
-
-# Lowpass single pole filter coefficients
-$b1 = $x;
-$a0 = $G * (1 - $x);
-$a1 = 0;
-
-# Highboost single pole filter coefficients
-$b1_h = $x_h;
-$a0_h = 1 - $G_h * (1 - $x_h);
-$a1_h = -$x_h;
-
-$w0 = 2 * pi * 4 / $s / 1.15;
-$z = exp(i * $w0);
-$H0 = ($a0 + $a1 / $z) / (1 -
-$b1 / $z);
-$H0_h = ($a0_h + $a1_h / $z) / (1 - $b1_h / $z);
-
-for ($w = $w0 * 1.15; $w <= pi/2; $w0 = $w, $w *= 1.15)
-{
- $z = exp(i * $w);
- $H = ($a0 + $a1
-/ $z) / (1 - $b1 / $z);
- $H_h = ($a0_h + $a1_h / $z) / (1 - $b1_h / $z);
-
- $str = sprintf("%f\t%f\t%f\t%f\t%f\t%f\t%f\n",
- $s * $w / 2 / pi,
- rho($H), #
-20 * log(rho($H)) / log(10) (dB)
- theta($H) * 180 /
-pi, # degree
- (theta($H) - theta($H0)) /
-($w - $w0) * 1000000 / $s, # mcs
- rho($H_h), # 20 *
-log(rho($H_h)) / log(10)
- theta($H_h) * 180 /
-pi, # degree
- (theta($H_h) - theta($H0_h))
-/ ($w - $w0) * 1000000 / $s # mcs
- );
-
- $str =~ s/\./\,/g; # Russian locale
-
- print $str;
-
- $H0 = $H;
- $H0_h = $H_h;
-}
- |
-
-
-
-
-Pictures 2.1 and 2.2 shows a results of above program. In other words,
-there is a theoretical responses of bs2b DSP. Only low crossfeed level
-'-L' and high crossfeed level '-H' presets of bs2b are shown. Middle
-crossfeed level preset is omitted for clearness. 'HB' is highboost
-filter. 'LP' is lowpass filter. 'M' is a sum of these filtered signals,
-that can be interpreted as bs2b action to a two channel mono signal.
-
- Picture 2.1. bs2b theoretical
-frequency
-response.
-
-
-At picture 2.2 a negative value of time presents delay of signal by
-microseconds.
-
- Picture 2.2. bs2b theoretical
-time delay response.
-
-
-This responses looks as a virtual stereo speakers are moved from
-30
-degrees
-azimuth (high crossfeed level) to 60 degrees azimuth (low crossfeed
-level).
-
-Pictures 2.3 and 2.4 shows a results of above program for new 'Easy'
-crossfeed levels of 2.1 release of bs2b. Only low-easy crossfeed level
-'-L' and high-easy crossfeed level '-H' presets of bs2b are shown.
-
- Picture 2.3. bs2b theoretical
-frequency
-response. 'Easy' version.
-
-
-The high-easy preset is close to Chu Moy's [3]
-version of crossfeeder.
-Picture 2.4 presents delay response of 'Easy' version.
-
- Picture 2.4. bs2b theoretical
-time delay response. 'Easy' version.
-
-
-This responses looks close to noneasy version because of the same
-set of cutoff frequencies of lowpass filters and little differences of
-highboost filters for both versions.
-
- 3.
-Practical data.
-
-Picture 3.1 shows the practical frequency responses of
-bs2b. This is a frequency analysis of applied to
-bs2b white noise signals. There
-are two channel mono signal 'M', two channel independ signal 'I' and
-one channel signal. The bs2b processing of one channel signal is
-presented as highboost filtered 'HB' or channel with primary signal and
-as
-lowpass filtered 'LP' or channel without primary signal. Only low
-crossfeed
-level '-L' and high crossfeed level '-H' presets of
-bs2b are shown. Middle crossfeed level preset is omitted for clearness.
-
- Picture 3.1. bs2b frequency
-response.
-
-
-Picture 3.2 shows the difference between
-frequency analysis of real audio
-program and
-frequency analysis of that program has been processed by bs2b.
-
- Picture 3.2. J.S. Bach
-"BWV1066"
-"Overture" frequency analysis difference.
-
-
-Picture 3.3 shows the practical frequency responses of 'Easy High'
-preset of
-bs2b.
-
- Picture 3.3. bs2b frequency
-response. 'Easy' version.
-
-
-Picture 3.4 is like picture 3.2 but for 'Easy High' ('-H') and 'Easy
-Low' ('-L') presets.
-
- Picture 3.4. J.S. Bach
-"BWV1066"
-"Overture" frequency analysis difference. 'Easy' version.
-
-
-
- 4.
-References.
-
- [1] Benjamin B. Bauer. Stereophonic
-Earphones
-and
-Binaural Loudspeakers.
-
-
- [2] Siegfried Linkwitz. Improved Headphone
-Listening. Build a stereo-crossfeed circuit.
-
-
- [3] Chu Moy. An Acoustic Simulator for
-Headphone
-Amplifiers.
-
-
- [4] Jan Meier. A DIY Headphone Amplifier.
-
-
- [5] Steven W. Smith, Ph.D. The Scientist
-and
-Engineer's Guide to Digital Signal Processing.
-
-
- [6] Davide Rocchesso. Introduction to
-Sound
-Processing.
-
-
- [7] BORES Signal Processing: Introduction
-to
-DSP.
-
-
- [8] Richard O.Duda. 3-D Audio for HCI.
-
-
- [9] HeadRoom. About the HeadRoom
-Crossfeed.
-
-
- [10] John Conover. Spatial Distortion
-Reduction Headphone Amplifier.
-
-
- Copyright (c) 2006
-Boris Mikhaylov < http://www.tmn.ru/~bor> |
-
-
-
-
-
diff --git a/doc/bs2b_label.png b/doc/bs2b_label.png
deleted file mode 100644
index cd6e4c3..0000000
Binary files a/doc/bs2b_label.png and /dev/null differ
diff --git a/doc/bs2b_lib-ru.html b/doc/bs2b_lib-ru.html
deleted file mode 100644
index b733b22..0000000
--- a/doc/bs2b_lib-ru.html
+++ /dev/null
@@ -1,108 +0,0 @@
-
-Bauer stereophonic-to-binaural DSP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Bauer stereophonic-to-binaural DSP: описание библиотеки.
-
-Библиотека bs2b проста в
-использовании. Смотрите таблицу 1 для примера. Это упрощенный код 'bs2bstream.c'. Файлы 'bs2b.h', 'bs2bclass.h' и 'bs2bconvert.c' пакета исходного кода также могут помочь.
-Вы можете использовать 'bs2bstream' вместе с 'lame' вот такой командной строкой: lame -t --decode test-44-16.wav - | bs2bstream -4 | \
-lame -r -x -m j -s 44.1 --bitwidth 16 --preset extreme - test.mp3 или без '-x' перемены местами байтов входного файла, вот такой:
-lame -t --decode test-44-16.wav - | bs2bstream -4 | \
-lame -r -m j -s 44.1 --bitwidth 16 --preset extreme - test.mp3
- Таблица 1. Пример использования библиотеки bs2b.
-
-
-
- #include <stdio.h> #include "bs2b.h"
-
-int main()
-{
- t_bs2bdp bs2bdp;
- short sample[ 2 ];
-
- bs2bdp = bs2b_open();
-
- /* Default init value
- bs2b_set_srate( bs2bdp, 44100L );
- bs2b_set_level( bs2bdp, BS2B_DEFAULT_CLEVEL );
- */
- /* 16 bit raw PCM */
- while( 2 == fread( sample, sizeof( short ), 2, stdin ) )
- {
- bs2b_cross_feed_16( bs2bdp, sample );
- fwrite( sample, sizeof( short ), 2, stdout );
- }
-
- bs2b_close( bs2bdp );
- bs2bdp = 0;
-
- return 0 ;
-}
- |
-
-
-
-
-
-Значение частоты дискретизации по умолчанию равно 44100 Гц. Значение
-уровня взаимосмешения по умолчанию есть 'High Easy' (6). Если частота
-дискретизации
-аудио данных другая или вы хотите изменить уровень взаимосмешения то вы
-должны вызвать функции 'bs2b_set_srate' и
-'bs2b_set_level' соответственно.
-
-
- Таблица 2. Пример использования библиотеки bs2b в C++.
-
-
-
-
-
-
- #include <stdio.h> #include "bs2bclass.h"
-
-int main()
-{
- bs2b_base bs2b;
-
- // Default init value
-
-
- //bs2b.set_srate( 44100L );
- //bs2b.set_level( BS2B_DEFAULT_CLEVEL );
- short sample[ 2 ]; // 16 bit raw PCM
-
- while( 2 == fread( sample, sizeof( short ), 2, stdin ) )
- {
- bs2b.cross_feed( sample );
- fwrite( sample, sizeof( short ), 2, stdout );
- }
-
- return 0 ;
-}
- |
-
-
-
-
-
-
- Авторское право (c)
-2006 Борис Михайлов < http://www.tmn.ru/~bor> |
-
-
-
-
\ No newline at end of file
diff --git a/doc/bs2b_lib.html b/doc/bs2b_lib.html
deleted file mode 100644
index 52e48fa..0000000
--- a/doc/bs2b_lib.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-Bauer stereophonic-to-binaural DSP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Bauer stereophonic-to-binaural DSP: library
-description.
-
-The bs2b
-library is simple
-to use. See table 1 for example. It is a reductive code of 'bs2bstream.c'. The 'bs2b.h', 'bs2bclass.h' and 'bs2bconvert.c' files of the source code
-package can help also.
-You can use a 'bs2bstream' with 'lame' by a command line like this: lame -t --decode test-44-16.wav - | bs2bstream -4 | \ lame -r -x -m j -s 44.1 --bitwidth 16 --preset extreme - test.mp3
-or without of '-x' swap bytes of input file, like this: lame -t --decode test-44-16.wav - | bs2bstream -4 | \ lame -r -m j -s 44.1 --bitwidth 16 --preset extreme - test.mp3
- Table 1. Example of using of bs2b
-library.
-
-
-
- #include <stdio.h> #include "bs2b.h"
-
-int main()
-{
- t_bs2bdp bs2bdp;
- short sample[ 2 ];
-
- bs2bdp = bs2b_open();
-
- /* Default init value
- bs2b_set_srate( bs2bdp, 44100L );
- bs2b_set_level( bs2bdp, BS2B_DEFAULT_CLEVEL );
- */
- /* 16 bit raw PCM */
- while( 2 == fread( sample, sizeof( short ), 2, stdin ) )
- {
- bs2b_cross_feed_16( bs2bdp, sample );
- fwrite( sample, sizeof( short ), 2, stdout );
- }
-
- bs2b_close( bs2bdp );
- bs2bdp = 0;
-
- return 0 ;
-}
- |
-
-
-
-
-Sample rate default value is 44100 Hz. Crossfeed level default value is
-'High Easy' (6). If sample rate of audio data is different or if you
-want to
-change
-crossfeed level then you must call 'bs2b_set_srate' and
-'bs2b_set_level' functions accordingly.
-
- Table 2. Example of using of bs2b
-library by C++.
-
-
-
-
-
-
- #include <stdio.h> #include "bs2bclass.h"
-
-int main()
-{
- bs2b_base bs2b;
-
- // Default init value
-
- //bs2b.set_srate( 44100L );
- //bs2b.set_level( BS2B_DEFAULT_CLEVEL );
- short sample[ 2 ]; // 16 bit raw PCM
- while( 2 == fread( sample, sizeof( short ), 2, stdin ) )
- {
- bs2b.cross_feed( sample );
- fwrite( sample, sizeof( short ), 2, stdout );
- }
-
- return 0 ;
-}
- |
-
-
-
-
-
-
- Copyright (c) 2006
-Boris Mikhaylov < http://www.tmn.ru/~bor> |
-
-
-
-
\ No newline at end of file
diff --git a/doc/content-ru.html b/doc/content-ru.html
deleted file mode 100644
index 0958e40..0000000
--- a/doc/content-ru.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- Bauer stereophonic-to-binaural DSP: Content
-
-
-
-
-
-English
-Предисловие
-Теория
-Эксперимент
-Библиотека
-Ссылки
-Домой
-Загрузить
-Форум
-Лицензия
-
-
-
-
-
-
diff --git a/doc/content.html b/doc/content.html
deleted file mode 100644
index ef91f3b..0000000
--- a/doc/content.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- Bauer stereophonic-to-binaural DSP: Content
-
-
-
-
-Russian
-Preface
-Theory
-Experiment
-Library
-References
-Home
-Download
-Forum
-License
-
-
-
-
-
-
diff --git a/doc/download.html b/doc/download.html
deleted file mode 100644
index 8a867bd..0000000
--- a/doc/download.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/doc/img/Bach-BWV1066-Overture-diff.png b/doc/img/Bach-BWV1066-Overture-diff.png
deleted file mode 100644
index 04f041d..0000000
Binary files a/doc/img/Bach-BWV1066-Overture-diff.png and /dev/null differ
diff --git a/doc/img/Bach-BWV1066-Overture-diff_e.png b/doc/img/Bach-BWV1066-Overture-diff_e.png
deleted file mode 100644
index 5c894f4..0000000
Binary files a/doc/img/Bach-BWV1066-Overture-diff_e.png and /dev/null differ
diff --git a/doc/img/Makefile.am b/doc/img/Makefile.am
deleted file mode 100644
index 46098d7..0000000
--- a/doc/img/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-EXTRA_DIST = \
- Bach-BWV1066-Overture-diff_e.png \
- Bach-BWV1066-Overture-diff.png \
- bs2b_e_exdata_f.png \
- bs2b_exdata_f.png \
- bs2b_h_e-trans_d.png \
- bs2b_h_e-trans_f.png \
- bs2b_h-trans_d.png \
- bs2b_h-trans_f.png
diff --git a/doc/img/bs2b_e_exdata_f.png b/doc/img/bs2b_e_exdata_f.png
deleted file mode 100644
index 5ef2e24..0000000
Binary files a/doc/img/bs2b_e_exdata_f.png and /dev/null differ
diff --git a/doc/img/bs2b_exdata_f.png b/doc/img/bs2b_exdata_f.png
deleted file mode 100644
index 722670c..0000000
Binary files a/doc/img/bs2b_exdata_f.png and /dev/null differ
diff --git a/doc/img/bs2b_h-trans_d.png b/doc/img/bs2b_h-trans_d.png
deleted file mode 100644
index bfd485a..0000000
Binary files a/doc/img/bs2b_h-trans_d.png and /dev/null differ
diff --git a/doc/img/bs2b_h-trans_f.png b/doc/img/bs2b_h-trans_f.png
deleted file mode 100644
index c1df8ee..0000000
Binary files a/doc/img/bs2b_h-trans_f.png and /dev/null differ
diff --git a/doc/img/bs2b_h_e-trans_d.png b/doc/img/bs2b_h_e-trans_d.png
deleted file mode 100644
index 1e5641d..0000000
Binary files a/doc/img/bs2b_h_e-trans_d.png and /dev/null differ
diff --git a/doc/img/bs2b_h_e-trans_f.png b/doc/img/bs2b_h_e-trans_f.png
deleted file mode 100644
index 2919303..0000000
Binary files a/doc/img/bs2b_h_e-trans_f.png and /dev/null differ
diff --git a/doc/index-ru.html b/doc/index-ru.html
deleted file mode 100644
index 8d0da80..0000000
--- a/doc/index-ru.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Bauer stereophonic-to-binaural DSP
-
-
-
-
-
diff --git a/doc/index.html b/doc/index.html
deleted file mode 100644
index fc01f9c..0000000
--- a/doc/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- Bauer stereophonic-to-binaural DSP
-
-
-
-
diff --git a/doc/license.html b/doc/license.html
deleted file mode 100644
index dd33803..0000000
--- a/doc/license.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- License
-
-
-
-
-
-
-
- Copyright (c) 2005 Boris Mikhaylov
-
- Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation files
-(the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
- The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- |
-
-
-
-
-
diff --git a/doc/readme.txt b/doc/readme.txt
new file mode 100644
index 0000000..4d0fb93
--- /dev/null
+++ b/doc/readme.txt
@@ -0,0 +1,2 @@
+Online and downloadable description is available
+at http://bs2b.sourceforge.net/
--
cgit v1.2.3