39 _gbuf =
new float[_N];
43 for (
int i = 0; i < _N; ++i) {
63 _audio_playlist->add_region (_ar[0], 0);
64 _ar[0]->set_default_fade_in ();
65 _ar[0]->set_default_fade_out ();
66 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_in->back()->when);
67 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_out->back()->when);
68 _ar[0]->set_length (1024);
69 _audio_playlist->read (_buf, _mbuf, _gbuf, 0, 256, 0);
71 for (
int i = 0; i < 64; ++i) {
75 CPPUNIT_ASSERT_DOUBLES_EQUAL (
float (i *
float (i / 63.0)), _buf[i], 1e-16);
78 for (
int i = 64; i < 256; ++i) {
79 CPPUNIT_ASSERT_EQUAL (i,
int (_buf[i]));
92 _audio_playlist->add_region (_ar[0], 0);
93 _ar[0]->set_default_fade_in ();
94 _ar[0]->set_default_fade_out ();
95 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_in->back()->when);
96 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_out->back()->when);
97 _ar[0]->set_length (1024);
101 CPPUNIT_ASSERT_EQUAL (
false, _ar[0]->fade_in_is_xfade());
102 CPPUNIT_ASSERT_EQUAL (
false, _ar[0]->fade_out_is_xfade());
105 _audio_playlist->add_region (_ar[1], 128);
106 _ar[1]->set_default_fade_in ();
107 _ar[1]->set_default_fade_out ();
111 CPPUNIT_ASSERT_EQUAL (
false, _ar[1]->fade_in_is_xfade());
112 CPPUNIT_ASSERT_EQUAL (
false, _ar[1]->fade_out_is_xfade());
115 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[1]->_fade_in->back()->when);
116 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[1]->_fade_out->back()->when);
118 _ar[1]->set_length (1024);
119 _audio_playlist->read (_buf, _mbuf, _gbuf, 0, 256, 0);
122 for (
int i = 0; i < 64; ++i) {
128 CPPUNIT_ASSERT_DOUBLES_EQUAL (
float (i *
float (i / (
double) 63)), _buf[i], 1e-16);
132 for (
int i = 64; i < 128; ++i) {
133 CPPUNIT_ASSERT_EQUAL (i,
int (_buf[i]));
137 for (
int i = 0; i < 64; ++i) {
139 float const from_ar0 = (128 + i) *
float (1 - (i / (
double) 63));
140 float const from_ar1 = i * float (i / (
double) 63);
141 CPPUNIT_ASSERT_DOUBLES_EQUAL (from_ar0 + from_ar1, _buf[i + 128], 1e-16);
148 _audio_playlist->add_region (_ar[0], 0);
149 _ar[0]->set_default_fade_in ();
150 _ar[0]->set_default_fade_out ();
151 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_in->back()->when);
152 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_out->back()->when);
153 _ar[0]->set_length (1024);
155 _audio_playlist->add_region (_ar[1], 0);
156 _ar[1]->set_default_fade_in ();
157 _ar[1]->set_default_fade_out ();
158 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[1]->_fade_in->back()->when);
159 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[1]->_fade_out->back()->when);
160 _ar[1]->set_length (1024);
161 _ar[1]->set_opaque (
false);
163 _audio_playlist->read (_buf, _mbuf, _gbuf, 0, 1024, 0);
169 for (
int i = 0; i < 64; ++i) {
170 float const fade = i / (double) 63;
171 float const ar0 = i * fade;
172 float const ar1 = i * fade;
173 CPPUNIT_ASSERT_DOUBLES_EQUAL (ar0 + ar1, _buf[i], 1e-16);
177 for (
int i = 64; i < (1024 - 64); ++i) {
178 CPPUNIT_ASSERT_DOUBLES_EQUAL (
float (i * 2), _buf[i], 1e-16);
182 for (
int i = (1024 - 64); i < 1024; ++i) {
186 float const fade = (((double) 1 - 0.0000001) / 63) * (1023 - i) + 0.0000001;
187 float const ar0 = i * fade;
188 float const ar1 = i * fade;
189 CPPUNIT_ASSERT_DOUBLES_EQUAL (ar0 + ar1, _buf[i], 1e-16);
199 _audio_playlist->add_region (_ar[0], 0);
200 _ar[0]->set_default_fade_in ();
201 _ar[0]->set_default_fade_out ();
202 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_in->back()->when);
203 CPPUNIT_ASSERT_EQUAL (
double (64), _ar[0]->_fade_out->back()->when);
204 _ar[0]->set_length (128);
207 _audio_playlist->read (_buf, _mbuf, _gbuf, 0, 129, 0);
210 _audio_playlist->read (_buf, _mbuf, _gbuf, 0, 1024, 0);
213 _audio_playlist->read (_buf, _mbuf, _gbuf, 53, 54, 0);
219 for (
int i = 0; i <
N; ++i) {
220 int const j = i + offset;
221 CPPUNIT_ASSERT_EQUAL (j,
int (b[i]));
235 _audio_playlist->add_region (_ar[0], 256);
237 _ar[0]->set_fade_in_length (0);
238 _ar[0]->set_fade_out_length (0);
239 _ar[0]->set_length (256);
241 _audio_playlist->add_region (_ar[1], 0);
243 _ar[1]->set_fade_in_length (0);
244 _ar[1]->set_fade_out_length (0);
245 _ar[1]->set_length (1024);
246 _ar[1]->set_opaque (
false);
248 _audio_playlist->read (_buf, _mbuf, _gbuf, 0, 1024, 0);
251 for (
int i = 0; i < 64; ++i) {
252 CPPUNIT_ASSERT_DOUBLES_EQUAL (
float (i *
float (i / 63.0)), _buf[i], 1e-16);
256 for (
int i = 64; i < 256; ++i) {
257 CPPUNIT_ASSERT_DOUBLES_EQUAL (i, _buf[i], 1e-16);
261 for (
int i = 256; i < (256 + 64); ++i) {
262 CPPUNIT_ASSERT_DOUBLES_EQUAL (i +
float ((i - 256) *
float ((i - 256) / 63.0)), _buf[i], 1e-16);
266 for (
int i = (256 + 64); i < (256 + 64 + 128); ++i) {
267 CPPUNIT_ASSERT_DOUBLES_EQUAL (i + i - (256 + 64) + 64, _buf[i], 1e-16);
271 for (
int i = (256 + 64 + 128); i < 512; ++i) {
272 float const ar0_without_fade = i - 256;
274 float const fade = (((double) 1 - 0.0000001) / 63) * (511 - i) + 0.0000001;
275 CPPUNIT_ASSERT_DOUBLES_EQUAL (i +
float (ar0_without_fade * fade), _buf[i], 1e-16);
279 for (
int i = 512; i < (1024 - 64); ++i) {
280 CPPUNIT_ASSERT_DOUBLES_EQUAL (i, _buf[i], 1e-16);
284 for (
int i = (1024 - 64); i < 1024; ++i) {
286 float const fade = (((double) 1 - 0.0000001) / 63) * (1023 - i) + 0.0000001;
287 CPPUNIT_ASSERT_DOUBLES_EQUAL (i * fade, _buf[i], 1e-16);
void transparentReadTest()
CPPUNIT_TEST_SUITE_REGISTRATION(PlaylistReadTest)
void overlappingReadTest()
void check_staircase(ARDOUR::Sample *, int, int)
void enclosedTransparentReadTest()