diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-17 23:41:45 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-17 23:41:45 +0000 |
commit | 4145bfc33cb68fe3c629d9e21df26cd3953b6e1e (patch) | |
tree | 9561513e1b17623261fc91d441ec7e133deafade /libs/panners | |
parent | 954bc598b836dba1f2be99e69f11cfeee08ef1a9 (diff) |
somewhat working VBAP panning (no interpolation, and some outputs don't get output)
git-svn-id: svn://localhost/ardour2/branches/3.0@8898 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/panners')
-rw-r--r-- | libs/panners/vbap/vbap.cc | 12 | ||||
-rw-r--r-- | libs/panners/vbap/vbap_speakers.cc | 26 |
2 files changed, 5 insertions, 33 deletions
diff --git a/libs/panners/vbap/vbap.cc b/libs/panners/vbap/vbap.cc index 56af0edbe1..dc7677e829 100644 --- a/libs/panners/vbap/vbap.cc +++ b/libs/panners/vbap/vbap.cc @@ -107,17 +107,7 @@ VBAPanner::update () Signal* signal = *s; signal->direction = AngularVector (signal_direction, 0.0); - compute_gains (signal->desired_gains, signal->desired_outputs, signal->direction.azi, signal->direction.ele); - cerr << " @ " << signal->direction.azi << " /= " << signal->direction.ele - << " Outputs: " - << signal->desired_outputs[0] + 1 << ' ' - << signal->desired_outputs[1] + 1 << ' ' - << " Gains " - << signal->desired_gains[0] << ' ' - << signal->desired_gains[1] << ' ' - << endl; - signal_direction += degree_step_per_signal; } } @@ -164,7 +154,7 @@ VBAPanner::compute_gains (double gains[3], int speaker_ids[3], int azi, int ele) speaker_ids[0] = _speakers->speaker_for_tuple (i, 0); speaker_ids[1] = _speakers->speaker_for_tuple (i, 1); - + if (_speakers->dimension() == 3) { gains[2] = gtmp[2]; speaker_ids[2] = _speakers->speaker_for_tuple (i, 2); diff --git a/libs/panners/vbap/vbap_speakers.cc b/libs/panners/vbap/vbap_speakers.cc index a0602b3e10..29791936fb 100644 --- a/libs/panners/vbap/vbap_speakers.cc +++ b/libs/panners/vbap/vbap_speakers.cc @@ -64,7 +64,6 @@ VBAPSpeakers::update () for (vector<Speaker>::const_iterator i = _speakers.begin(); i != _speakers.end(); ++i) { if ((*i).angles().ele != 0.0) { - cerr << "\n\n\nSPEAKER " << (*i).id << " has ele = " << (*i).angles().ele << "\n\n\n\n"; dim = 3; break; } @@ -72,8 +71,6 @@ VBAPSpeakers::update () _dimension = dim; - cerr << "update with dimension = " << dim << " speakers = " << _speakers.size() << endl; - if (_speakers.size() < 2) { /* nothing to be done with less than two speakers */ return; @@ -514,7 +511,6 @@ VBAPSpeakers::choose_speaker_pairs (){ int pair; int speaker; - cerr << "CHOOSE PAIRS\n"; if (n_speakers == 0) { return; @@ -530,14 +526,6 @@ VBAPSpeakers::choose_speaker_pairs (){ /* adjacent loudspeakers are the loudspeaker pairs to be used.*/ for (speaker = 0; speaker < n_speakers-1; speaker++) { - cerr << "Looking at " - << _speakers[sorted_speakers[speaker]].id << " @ " << _speakers[sorted_speakers[speaker]].angles().azi - << " and " - << _speakers[sorted_speakers[speaker+1]].id << " @ " << _speakers[sorted_speakers[speaker+1]].angles().azi - << " delta = " - << _speakers[sorted_speakers[speaker+1]].angles().azi - _speakers[sorted_speakers[speaker]].angles().azi - << endl; - if ((_speakers[sorted_speakers[speaker+1]].angles().azi - _speakers[sorted_speakers[speaker]].angles().azi) <= AZIMUTH_DELTA_THRESHOLD_DEGREES) { if (calc_2D_inv_tmatrix( _speakers[sorted_speakers[speaker]].angles().azi, @@ -579,8 +567,6 @@ VBAPSpeakers::choose_speaker_pairs (){ _speaker_tuples[pair][0] = sorted_speakers[speaker]; _speaker_tuples[pair][1] = sorted_speakers[speaker+1]; - cerr << "PAIR[" << pair << "] = " << sorted_speakers[speaker] << " + " << sorted_speakers[speaker+1] << endl; - pair++; } } @@ -593,9 +579,6 @@ VBAPSpeakers::choose_speaker_pairs (){ _speaker_tuples[pair][0] = sorted_speakers[n_speakers-1]; _speaker_tuples[pair][1] = sorted_speakers[0]; - - cerr << "PAIR[" << pair << "] = " << sorted_speakers[n_speakers-1] << " + " << sorted_speakers[0] << endl; - } } @@ -611,7 +594,6 @@ VBAPSpeakers::sort_2D_lss (int* sorted_speakers) for (n = 0, s = tmp.begin(); s != tmp.end(); ++s, ++n) { sorted_speakers[n] = (*s).id; - cerr << "Sorted[" << n << "] = " << (*s).id << endl; } } @@ -621,10 +603,10 @@ VBAPSpeakers::calc_2D_inv_tmatrix (double azi1, double azi2, double* inverse_mat double x1,x2,x3,x4; double det; - x1 = cos (azi1); - x2 = sin (azi1); - x3 = cos (azi2); - x4 = sin (azi2); + x1 = cos (azi1 * (M_PI/180.0)); + x2 = sin (azi1 * (M_PI/180.0)); + x3 = cos (azi2 * (M_PI/180.0)); + x4 = sin (azi2 * (M_PI/180.0)); det = (x1 * x4) - ( x3 * x2 ); if (fabs(det) <= 0.001) { |