|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
one impulse test: what an analog loop keeps is its timing alone More...
#include <dx_test_device.h>
Public Attributes | |
| int32_t | deviation {} |
| dB the loop stands off its target where the level's range cannot take it up: 0 right, below too quiet | |
| double | energy {} |
| this period's summed input power | |
| uint32_t | latency {} |
| the last period's round trip, 0 while none was found - a loop never has 0 | |
| double | level {ceiling} |
| the impulse's peak, full scale 1 | |
| mask | mask |
| uint64_t | peak {} |
| this period's loudest input magnitude | |
| uint32_t | period |
| samples from impulse to impulse: longer than the round trip, which it measures modulo | |
| struct { | |
| double angle {} | |
| the last period's phase More... | |
| int32_t deviation {} | |
| as the impulse's, the sine's loop More... | |
| double iq [2] {} | |
| this period's input against the reference More... | |
| double level {ceiling} | |
| the sine's peak, full scale 1 More... | |
| double phasor [2] {1., 0.} | |
| the reference, turned a sample at a time: cos, sin More... | |
| double step [2] {1., 0.} | |
| one sample's turn, none without a sine More... | |
| double tolerance {} | |
| half a sample's turn More... | |
| } | phase |
| uint32_t | position {} |
| its phase in the period | |
| uint64_t | sample {} |
| the running sample count out and in alike: an impulse leaves at every multiple of period | |
Static Public Attributes | |
| static constexpr double | ceiling {.9} |
| the loop's peak wanted, the level's range - ceiling the clip limit in as well - full scale 1 | |
| static constexpr double | floor {.001} |
| static constexpr double | full {2147483648.} |
| full scale of io_t | |
| static constexpr double | margin {100.} |
| the power the loudest sample stands above the period's mean to count: 20dB | |
| static constexpr double | target {.25} |
one impulse test: what an analog loop keeps is its timing alone
A band limited impulse every period on the lowest masked out channel, the loudest sample of each period on the lowest masked in channel against the rest's noise gives the round trip, a step beyond a sample a slip. The level calibrates itself: each period takes the loop's peak to target, and where the level's range cannot, deviation names the dB the loop stands off it - 0 right, below too quiet, above too loud - the physical gain to change by that much. Optionally a sine in parallel on the next masked pair, its level calibrated the same way on its own: its phase against the reference over each period, a step beyond half a sample's turn a slip - it sees a lost or doubled sample the impulse's tolerance lets pass; a sine off its target has no phase to trust and counts as a slip.
| double dx::test::device< super_device_t, _engine_t >::impulse::angle {} |
the last period's phase
|
static |
the loop's peak wanted, the level's range - ceiling the clip limit in as well - full scale 1
| int32_t dx::test::device< super_device_t, _engine_t >::impulse::deviation {} |
dB the loop stands off its target where the level's range cannot take it up: 0 right, below too quiet
as the impulse's, the sine's loop
| double dx::test::device< super_device_t, _engine_t >::impulse::energy {} |
this period's summed input power
|
static |
|
staticconstexpr |
full scale of io_t
| double dx::test::device< super_device_t, _engine_t >::impulse::iq[2] {} |
this period's input against the reference
| uint32_t dx::test::device< super_device_t, _engine_t >::impulse::latency {} |
the last period's round trip, 0 while none was found - a loop never has 0
| double dx::test::device< super_device_t, _engine_t >::impulse::level {ceiling} |
the impulse's peak, full scale 1
the sine's peak, full scale 1
|
staticconstexpr |
the power the loudest sample stands above the period's mean to count: 20dB
| mask dx::test::device< super_device_t, _engine_t >::impulse::mask |
| uint64_t dx::test::device< super_device_t, _engine_t >::impulse::peak {} |
this period's loudest input magnitude
| uint32_t dx::test::device< super_device_t, _engine_t >::impulse::period |
samples from impulse to impulse: longer than the round trip, which it measures modulo
| struct { ... } dx::test::device< super_device_t, _engine_t >::impulse::phase |
| double dx::test::device< super_device_t, _engine_t >::impulse::phasor[2] {1., 0.} |
the reference, turned a sample at a time: cos, sin
| uint32_t dx::test::device< super_device_t, _engine_t >::impulse::position {} |
its phase in the period
| uint64_t dx::test::device< super_device_t, _engine_t >::impulse::sample {} |
the running sample count out and in alike: an impulse leaves at every multiple of period
| double dx::test::device< super_device_t, _engine_t >::impulse::step[2] {1., 0.} |
one sample's turn, none without a sine
|
staticconstexpr |
| double dx::test::device< super_device_t, _engine_t >::impulse::tolerance {} |
half a sample's turn
| (c) copyright 2009 dynamic acoustics e.U. | generated on |