mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2025-02-19 04:15:39 +00:00
AudioStream: Rewrite and integrate expander
This commit is contained in:
parent
a5bf1ba5ce
commit
00634f68cc
|
@ -880,351 +880,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||
SOFTWARE.
|
||||
</pre>
|
||||
|
||||
<h3>FreeSurround - <a href="https://hydrogenaud.io/index.php/topic,52235.0.html">https://hydrogenaud.io/index.php/topic,52235.0.html</a></h3>
|
||||
<pre>
|
||||
Copyright (C) 2007-2010 Christian Kothe
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
</pre>
|
||||
|
||||
<h3>lunasvg - <a href="https://github.com/sammycage/lunasvg">https://github.com/sammycage/lunasvg</a></h3>
|
||||
<pre>
|
||||
MIT License
|
||||
|
|
|
@ -27,8 +27,6 @@ disable_compiler_warnings_for_target(cubeb)
|
|||
disable_compiler_warnings_for_target(speex)
|
||||
add_subdirectory(kissfft EXCLUDE_FROM_ALL)
|
||||
disable_compiler_warnings_for_target(kissfft)
|
||||
add_subdirectory(freesurround EXCLUDE_FROM_ALL)
|
||||
disable_compiler_warnings_for_target(freesurround)
|
||||
|
||||
if(ENABLE_OPENGL)
|
||||
add_subdirectory(glad EXCLUDE_FROM_ALL)
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
set(SRCS
|
||||
include/freesurround_decoder.h
|
||||
src/channelmaps.cpp
|
||||
src/freesurround_decoder.cpp
|
||||
)
|
||||
|
||||
add_library(freesurround ${SRCS})
|
||||
target_include_directories(freesurround PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
target_include_directories(freesurround INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
target_link_libraries(freesurround PUBLIC kissfft)
|
|
@ -1,339 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\msvc\vsprops\Configurations.props" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{1B0366E5-6F82-47B4-9FDD-D699C86AA077}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\channelmaps.cpp" />
|
||||
<ClCompile Include="src\freesurround_decoder.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="include\freesurround_decoder.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\kissfft\kissfft.vcxproj">
|
||||
<Project>{a81d3f54-c58a-4b2d-8076-d4e483db2e65}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="..\msvc\vsprops\StaticLibrary.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)include;$(ProjectDir)src;$(ProjectDir)..\kissfft\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="..\msvc\vsprops\Targets.props" />
|
||||
</Project>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\freesurround_decoder.cpp" />
|
||||
<ClCompile Include="src\channelmaps.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="include\freesurround_decoder.h" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,191 +0,0 @@
|
|||
// SPDX-FileCopyrightText: 2007-2010 Christian Kothe, 2024 Connor McLaughlin <stenzek@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "kiss_fftr.h"
|
||||
|
||||
#include <array>
|
||||
#include <cmath>
|
||||
#include <complex>
|
||||
#include <span>
|
||||
#include <vector>
|
||||
|
||||
/**
|
||||
* The FreeSurround decoder.
|
||||
*/
|
||||
class FreeSurroundDecoder
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* The supported output channel setups.
|
||||
* A channel setup is defined by the set of channels that are present. Here is a graphic
|
||||
* of the cs_5point1 setup: http://en.wikipedia.org/wiki/File:5_1_channels_(surround_sound)_label.svg
|
||||
*/
|
||||
enum class ChannelSetup
|
||||
{
|
||||
Stereo,
|
||||
Surround41,
|
||||
Surround51,
|
||||
Surround71,
|
||||
Legacy, // same channels as cs_5point1 but different upmixing transform; does not support the focus control
|
||||
MaxCount
|
||||
};
|
||||
|
||||
static constexpr int grid_res = 21; // resolution of the lookup grid
|
||||
using LUT = const float (*)[grid_res];
|
||||
|
||||
/**
|
||||
* Create an instance of the decoder.
|
||||
* @param setup The output channel setup -- determines the number of output channels
|
||||
* and their place in the sound field.
|
||||
* @param blocksize Granularity at which data is processed by the decode() function.
|
||||
* Must be a power of two and should correspond to ca. 10ms worth of single-channel
|
||||
* samples (default is 4096 for 44.1Khz data). Do not make it shorter or longer
|
||||
* than 5ms to 20ms since the granularity at which locations are decoded
|
||||
* changes with this.
|
||||
*/
|
||||
FreeSurroundDecoder(ChannelSetup setup = ChannelSetup::Surround51, unsigned blocksize = 4096);
|
||||
~FreeSurroundDecoder();
|
||||
|
||||
/**
|
||||
* Decode a chunk of stereo sound. The output is delayed by half of the blocksize.
|
||||
* This function is the only one needed for straightforward decoding.
|
||||
* @param input Contains exactly blocksize (multiplexed) stereo samples, i.e. 2*blocksize numbers.
|
||||
* @return A pointer to an internal buffer of exactly blocksize (multiplexed) multichannel samples.
|
||||
* The actual number of values depends on the number of output channels in the chosen
|
||||
* channel setup.
|
||||
*/
|
||||
float* Decode(float* input);
|
||||
|
||||
/**
|
||||
* Flush the internal buffer.
|
||||
*/
|
||||
void Flush();
|
||||
|
||||
// --- soundfield transformations
|
||||
// These functions allow to set up geometric transformations of the sound field after it has been decoded.
|
||||
// The sound field is best pictured as a 2-dimensional square with the listener in its
|
||||
// center which can be shifted or stretched in various ways before it is sent to the
|
||||
// speakers. The order in which these transformations are applied is as listed below.
|
||||
|
||||
/**
|
||||
* Allows to wrap the soundfield around the listener in a circular manner.
|
||||
* Determines the angle of the frontal sound stage relative to the listener, in degrees.
|
||||
* A setting of 90° corresponds to standard surround decoding, 180° stretches the front stage from
|
||||
* ear to ear, 270° wraps it around most of the head. The side and rear content of the sound
|
||||
* field is compressed accordingly behind the listerer. (default: 90, range: [0°..360°])
|
||||
*/
|
||||
void SetCircularWrap(float v);
|
||||
|
||||
/**
|
||||
* Allows to shift the soundfield forward or backward.
|
||||
* Value range: [-1.0..+1.0]. 0 is no offset, positive values move the sound
|
||||
* forward, negative values move it backwards. (default: 0)
|
||||
*/
|
||||
void SetShift(float v);
|
||||
|
||||
/**
|
||||
* Allows to scale the soundfield backwards.
|
||||
* Value range: [0.0..+5.0] -- 0 is all compressed to the front, 1 is no change, 5 is scaled 5x backwards (default: 1)
|
||||
*/
|
||||
void SetDepth(float v);
|
||||
|
||||
/**
|
||||
* Allows to control the localization (i.e., focality) of sources.
|
||||
* Value range: [-1.0..+1.0] -- 0 means unchanged, positive means more localized, negative means more ambient
|
||||
* (default: 0)
|
||||
*/
|
||||
void SetFocus(float v);
|
||||
|
||||
// --- rendering parameters
|
||||
// These parameters control how the sound field is mapped onto speakers.
|
||||
|
||||
/**
|
||||
* Set the presence of the front center channel(s).
|
||||
* Value range: [0.0..1.0] -- fully present at 1.0, fully replaced by left/right at 0.0 (default: 1).
|
||||
* The default of 1.0 results in spec-conformant decoding ("movie mode") while a value of 0.7 is
|
||||
* better suited for music reproduction (which is usually mixed without a center channel).
|
||||
*/
|
||||
void SetCenterImage(float v);
|
||||
|
||||
/**
|
||||
* Set the front stereo separation.
|
||||
* Value range: [0.0..inf] -- 1.0 is default, 0.0 is mono.
|
||||
*/
|
||||
void SetFrontSeparation(float v);
|
||||
|
||||
/**
|
||||
* Set the rear stereo separation.
|
||||
* Value range: [0.0..inf] -- 1.0 is default, 0.0 is mono.
|
||||
*/
|
||||
void SetRearSeparation(float v);
|
||||
|
||||
// --- bass redirection (to LFE)
|
||||
|
||||
/**
|
||||
* Enable/disable LFE channel (default: false = disabled)
|
||||
*/
|
||||
void SetBassRedirection(bool v);
|
||||
|
||||
/**
|
||||
* Set the lower end of the transition band, in Hz/Nyquist (default: 40/22050).
|
||||
*/
|
||||
void SetLowCutoff(float v);
|
||||
|
||||
/**
|
||||
* Set the upper end of the transition band, in Hz/Nyquist (default: 90/22050).
|
||||
*/
|
||||
void SetHighCutoff(float v);
|
||||
|
||||
// --- info
|
||||
|
||||
/**
|
||||
* Number of samples currently held in the buffer.
|
||||
*/
|
||||
unsigned GetSamplesBuffered();
|
||||
|
||||
private:
|
||||
using cplx = std::complex<double>;
|
||||
|
||||
struct ChannelMap
|
||||
{
|
||||
std::span<const LUT> luts;
|
||||
const float* xsf;
|
||||
};
|
||||
|
||||
static const std::array<ChannelMap, static_cast<size_t>(ChannelSetup::MaxCount)> s_channel_maps;
|
||||
|
||||
void BufferedDecode(float* input);
|
||||
|
||||
// get the index (and fractional offset!) in a piecewise-linear channel allocation grid
|
||||
static int MapToGrid(double& x);
|
||||
|
||||
// constants
|
||||
const ChannelMap& cmap; // the channel setup
|
||||
unsigned N, C; // number of samples per input/output block, number of output channels
|
||||
|
||||
// parameters
|
||||
float circular_wrap; // angle of the front soundstage around the listener (90°=default)
|
||||
float shift; // forward/backward offset of the soundstage
|
||||
float depth; // backward extension of the soundstage
|
||||
float focus; // localization of the sound events
|
||||
float center_image; // presence of the center speaker
|
||||
float front_separation; // front stereo separation
|
||||
float rear_separation; // rear stereo separation
|
||||
float lo_cut, hi_cut; // LFE cutoff frequencies
|
||||
bool use_lfe; // whether to use the LFE channel
|
||||
|
||||
// FFT data structures
|
||||
std::vector<double> lt, rt, dst; // left total, right total (source arrays), time-domain destination buffer array
|
||||
std::vector<cplx> lf, rf; // left total / right total in frequency domain
|
||||
kiss_fftr_cfg forward = nullptr;
|
||||
kiss_fftr_cfg inverse = nullptr; // FFT buffers
|
||||
|
||||
// buffers
|
||||
bool buffer_empty = true; // whether the buffer is currently empty or dirty
|
||||
std::vector<float> inbuf; // stereo input buffer (multiplexed)
|
||||
std::vector<float> outbuf; // multichannel output buffer (multiplexed)
|
||||
std::vector<double> wnd; // the window function, precomputed
|
||||
std::vector<std::vector<cplx>> signal; // the signal to be constructed in every channel, in the frequency domain
|
||||
};
|
|
@ -1,612 +0,0 @@
|
|||
// SPDX-FileCopyrightText: 2007-2010 Christian Kothe, 2024 Connor McLaughlin <stenzek@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
#include "freesurround_decoder.h"
|
||||
|
||||
// clang-format off
|
||||
// static constexpr const float map_stereo_ang[] = {-27,27};
|
||||
static constexpr const float map_stereo_xsf[] = {-1,1};
|
||||
// static constexpr const float map_stereo_ysf[] = {1,1};
|
||||
// static constexpr const channel_id map_stereo_id[] = {ci_front_left,ci_front_right,ci_lfe};
|
||||
|
||||
static constexpr const float map_stereo_lf[21][21] = {
|
||||
{0.89443f,0.88524f,0.87458f,0.86193f,0.84742f,0.83047f,0.81079f,0.78857f,0.76362f,0.73631f,0.70763f,0.67665f,0.64566f,0.61552f,0.58534f,0.55766f,0.53151f,0.50762f,0.48547f,0.46573f,0.44721f},
|
||||
{0.89755f,0.87472f,0.86612f,0.85527f,0.84283f,0.82769f,0.80772f,0.78219f,0.75429f,0.72489f,0.69458f,0.66356f,0.63344f,0.60389f,0.57501f,0.54892f,0.52695f,0.50759f,0.49065f,0.47592f,0.44112f},
|
||||
{0.90095f,0.88263f,0.86463f,0.85404f,0.84112f,0.81939f,0.79647f,0.77027f,0.74204f,0.71371f,0.68556f,0.65692f,0.62867f,0.60011f,0.57242f,0.54621f,0.52095f,0.50185f,0.48478f,0.46223f,0.4341f},
|
||||
{0.90493f,0.89124f,0.87451f,0.85436f,0.83602f,0.81484f,0.78982f,0.7639f,0.73649f,0.708f,0.67884f,0.64889f,0.61965f,0.5909f,0.56273f,0.53649f,0.51235f,0.49068f,0.46842f,0.44689f,0.42579f},
|
||||
{0.90935f,0.89967f,0.88515f,0.86118f,0.83546f,0.81421f,0.78928f,0.76394f,0.73562f,0.70473f,0.67234f,0.63865f,0.60548f,0.57409f,0.5446f,0.51768f,0.49394f,0.47308f,0.45005f,0.43044f,0.41628f},
|
||||
{0.91439f,0.90835f,0.8916f,0.87077f,0.84576f,0.81654f,0.79414f,0.76796f,0.738f,0.70338f,0.66454f,0.62424f,0.58439f,0.54783f,0.51607f,0.48945f,0.46806f,0.44967f,0.43169f,0.41295f,0.40509f},
|
||||
{0.91999f,0.91639f,0.90136f,0.88119f,0.85747f,0.82956f,0.79891f,0.77322f,0.74276f,0.70354f,0.65538f,0.60316f,0.55904f,0.52739f,0.50105f,0.46894f,0.43968f,0.41993f,0.40718f,0.39424f,0.39222f},
|
||||
{0.92644f,0.9241f,0.9116f,0.89398f,0.87092f,0.84203f,0.80896f,0.77654f,0.74815f,0.70562f,0.64332f,0.58646f,0.55102f,0.52708f,0.49359f,0.45559f,0.41942f,0.38954f,0.37761f,0.37267f,0.37675f},
|
||||
{0.93328f,0.93254f,0.92229f,0.90504f,0.88134f,0.85208f,0.81768f,0.7839f,0.74647f,0.70855f,0.63549f,0.58487f,0.56076f,0.52616f,0.49005f,0.44864f,0.40794f,0.36999f,0.34436f,0.34665f,0.35949f},
|
||||
{0.94079f,0.94125f,0.93189f,0.91311f,0.88749f,0.85631f,0.8194f,0.78057f,0.74338f,0.70163f,0.63671f,0.60162f,0.56723f,0.53186f,0.49174f,0.44781f,0.40347f,0.35901f,0.32088f,0.31729f,0.33938f},
|
||||
{0.94868f,0.94932f,0.94007f,0.9189f,0.88975f,0.85124f,0.80805f,0.75887f,0.71167f,0.67363f,0.64218f,0.61199f,0.5782f,0.54f,0.49837f,0.4526f,0.40118f,0.3514f,0.3043f,0.28639f,0.31623f},
|
||||
{0.95692f,0.95638f,0.94428f,0.91841f,0.8832f,0.83951f,0.7853f,0.73414f,0.69534f,0.66315f,0.63602f,0.61218f,0.58072f,0.54574f,0.50443f,0.45716f,0.40639f,0.35175f,0.29649f,0.26018f,0.29081f},
|
||||
{0.96498f,0.96276f,0.94676f,0.91627f,0.8745f,0.82172f,0.76172f,0.71817f,0.68426f,0.66051f,0.62994f,0.60192f,0.58139f,0.54844f,0.5103f,0.46277f,0.40965f,0.35109f,0.28981f,0.23919f,0.26285f},
|
||||
{0.97256f,0.96914f,0.94756f,0.91234f,0.86412f,0.80293f,0.74426f,0.70593f,0.68146f,0.65506f,0.62468f,0.59559f,0.57167f,0.55047f,0.51487f,0.46757f,0.41278f,0.35109f,0.2847f,0.21785f,0.23325f},
|
||||
{0.97977f,0.97551f,0.94873f,0.90549f,0.85129f,0.78757f,0.73384f,0.70417f,0.67727f,0.64923f,0.62014f,0.59112f,0.56478f,0.54094f,0.51536f,0.47061f,0.4185f,0.35479f,0.27753f,0.19394f,0.20077f},
|
||||
{0.9859f,0.97906f,0.94933f,0.90364f,0.84461f,0.7748f,0.73864f,0.70505f,0.6742f,0.64447f,0.61554f,0.5866f,0.55834f,0.53048f,0.50205f,0.47467f,0.41886f,0.35115f,0.27107f,0.18027f,0.16808f},
|
||||
{0.99106f,0.97904f,0.95594f,0.90263f,0.84046f,0.79665f,0.74764f,0.70961f,0.67426f,0.64169f,0.61091f,0.58092f,0.55049f,0.51961f,0.4893f,0.45375f,0.41836f,0.34667f,0.24954f,0.17965f,0.13422f},
|
||||
{0.99504f,0.97686f,0.94808f,0.90616f,0.87005f,0.82768f,0.77496f,0.72517f,0.68125f,0.64279f,0.60765f,0.5735f,0.53901f,0.50302f,0.46667f,0.42437f,0.38174f,0.33637f,0.26284f,0.18498f,0.10039f},
|
||||
{0.99787f,0.97282f,0.93896f,0.92728f,0.91154f,0.86712f,0.82157f,0.76586f,0.70571f,0.65384f,0.60893f,0.56563f,0.52269f,0.47746f,0.42876f,0.38009f,0.31978f,0.29601f,0.27766f,0.19432f,0.066244f},
|
||||
{0.99945f,0.96755f,0.9602f,0.94951f,0.93442f,0.91368f,0.87956f,0.82681f,0.76608f,0.70193f,0.63578f,0.56816f,0.50585f,0.44097f,0.37308f,0.31653f,0.27698f,0.24634f,0.22321f,0.20651f,0.033221f},
|
||||
{1.000000f,0.99854f,0.99377f,0.9845f,0.96987f,0.94832f,0.91914f,0.87965f,0.83195f,0.77384f,0.70711f,0.63203f,0.55339f,0.47409f,0.39234f,0.31565f,0.24192f,0.17365f,0.10973f,0.052336f,7.8496e-017f}};
|
||||
|
||||
static constexpr const float map_stereo_rf[21][21] = {
|
||||
{0.44721f,0.46513f,0.48487f,0.50702f,0.53092f,0.55707f,0.58534f,0.61495f,0.64566f,0.67665f,0.70658f,0.73631f,0.76362f,0.78812f,0.81079f,0.83007f,0.84705f,0.86158f,0.87425f,0.88493f,0.89443f},
|
||||
{0.44091f,0.47587f,0.49021f,0.50752f,0.52648f,0.54843f,0.57451f,0.6034f,0.63295f,0.66338f,0.69439f,0.72464f,0.75386f,0.78179f,0.80734f,0.82734f,0.84251f,0.85523f,0.86585f,0.87468f,0.89745f},
|
||||
{0.43392f,0.46211f,0.48471f,0.50144f,0.52081f,0.54578f,0.57199f,0.59968f,0.62825f,0.65666f,0.68541f,0.71353f,0.74165f,0.76989f,0.79612f,0.81907f,0.84102f,0.85378f,0.86458f,0.88258f,0.90087f},
|
||||
{0.42556f,0.4465f,0.46827f,0.49061f,0.51198f,0.53606f,0.56263f,0.59061f,0.61925f,0.64863f,0.67871f,0.70782f,0.73615f,0.76373f,0.78979f,0.81451f,0.83582f,0.85431f,0.87445f,0.89102f,0.90482f},
|
||||
{0.41603f,0.43027f,0.44962f,0.47284f,0.49384f,0.51738f,0.54427f,0.57368f,0.6051f,0.63829f,0.67221f,0.7044f,0.7353f,0.76362f,0.78911f,0.81401f,0.83539f,0.86106f,0.88491f,0.8996f,0.90924f},
|
||||
{0.40482f,0.41257f,0.43125f,0.44919f,0.46765f,0.48935f,0.51575f,0.54739f,0.58411f,0.62399f,0.66441f,0.70314f,0.73778f,0.76766f,0.79398f,0.81646f,0.84558f,0.8705f,0.89137f,0.90817f,0.91428f},
|
||||
{0.39194f,0.39388f,0.40671f,0.41966f,0.43944f,0.46877f,0.50098f,0.52725f,0.55873f,0.60277f,0.65524f,0.70322f,0.74248f,0.77305f,0.79885f,0.8294f,0.85732f,0.88113f,0.90115f,0.91624f,0.91987f},
|
||||
{0.37644f,0.37227f,0.37711f,0.38933f,0.41907f,0.45539f,0.49353f,0.52703f,0.55093f,0.58615f,0.64317f,0.70533f,0.74803f,0.77648f,0.8089f,0.84182f,0.8707f,0.89389f,0.9114f,0.92394f,0.92631f},
|
||||
{0.35915f,0.34622f,0.34393f,0.36975f,0.40779f,0.44861f,0.48988f,0.52622f,0.56072f,0.58475f,0.63541f,0.70834f,0.74642f,0.78388f,0.81756f,0.85205f,0.88119f,0.90487f,0.92211f,0.93239f,0.93315f},
|
||||
{0.339f,0.31682f,0.32073f,0.35905f,0.40342f,0.44785f,0.4917f,0.53187f,0.56716f,0.60159f,0.63667f,0.70158f,0.7434f,0.78057f,0.81937f,0.85635f,0.88742f,0.91312f,0.93183f,0.94111f,0.94065f},
|
||||
{0.31623f,0.28631f,0.30427f,0.3514f,0.40119f,0.45261f,0.49838f,0.54f,0.5782f,0.61199f,0.64217f,0.67362f,0.71167f,0.75889f,0.80807f,0.85125f,0.88977f,0.91889f,0.94006f,0.9493f,0.94868f},
|
||||
{0.29034f,0.25984f,0.29645f,0.35181f,0.40636f,0.45739f,0.5045f,0.54571f,0.58075f,0.61218f,0.63603f,0.66314f,0.69534f,0.73428f,0.78552f,0.83978f,0.8833f,0.91845f,0.94425f,0.95628f,0.95678f},
|
||||
{0.26232f,0.23897f,0.28988f,0.35116f,0.40968f,0.46304f,0.51041f,0.54855f,0.58139f,0.60193f,0.62996f,0.66062f,0.68426f,0.71834f,0.76187f,0.82209f,0.87469f,0.91637f,0.94679f,0.96269f,0.96484f},
|
||||
{0.23266f,0.21746f,0.28484f,0.3513f,0.41299f,0.46772f,0.51511f,0.55049f,0.57186f,0.59573f,0.6247f,0.65513f,0.68168f,0.70596f,0.74457f,0.80329f,0.86436f,0.91252f,0.94764f,0.96907f,0.97242f},
|
||||
{0.20011f,0.19377f,0.27774f,0.3551f,0.41877f,0.47085f,0.51539f,0.54113f,0.56487f,0.59129f,0.62017f,0.64943f,0.67749f,0.70442f,0.73389f,0.78798f,0.85164f,0.90576f,0.94884f,0.97545f,0.97964f},
|
||||
{0.16735f,0.18021f,0.2713f,0.35149f,0.41919f,0.47472f,0.50234f,0.53073f,0.5586f,0.58686f,0.61556f,0.64474f,0.6745f,0.70534f,0.73902f,0.77487f,0.84502f,0.90392f,0.94947f,0.97903f,0.98577f},
|
||||
{0.13341f,0.17975f,0.24983f,0.34704f,0.41842f,0.45412f,0.48964f,0.5198f,0.5508f,0.58122f,0.61094f,0.6419f,0.6745f,0.71002f,0.74813f,0.79718f,0.84054f,0.90295f,0.9561f,0.97906f,0.99095f},
|
||||
{0.099504f,0.18519f,0.2632f,0.33642f,0.38219f,0.42465f,0.46712f,0.50346f,0.53941f,0.57392f,0.60769f,0.64324f,0.68168f,0.72574f,0.77558f,0.82818f,0.87048f,0.90621f,0.94829f,0.97694f,0.99495f},
|
||||
{0.065281f,0.19467f,0.27771f,0.29655f,0.32038f,0.38061f,0.42917f,0.47786f,0.52322f,0.56623f,0.609f,0.6545f,0.70642f,0.76654f,0.82216f,0.8676f,0.91195f,0.92761f,0.93899f,0.97296f,0.9978f},
|
||||
{0.032183f,0.20655f,0.22377f,0.24703f,0.27778f,0.31734f,0.37412f,0.44199f,0.50657f,0.5692f,0.63593f,0.70292f,0.7669f,0.82752f,0.88018f,0.91412f,0.93482f,0.94983f,0.96045f,0.96758f,0.99942f},
|
||||
{7.8496e-017f,0.054079f,0.11147f,0.17537f,0.24362f,0.3173f,0.39394f,0.47562f,0.55484f,0.63338f,0.70711f,0.77494f,0.83292f,0.88048f,0.91982f,0.94888f,0.9703f,0.98481f,0.99396f,0.99863f,1.000000f}};
|
||||
|
||||
// static constexpr const float map_4point1_ang[] = {-27,27,-105,105};
|
||||
static constexpr const float map_4point1_xsf[] = {-1,1,-1,1};
|
||||
// static constexpr const float map_4point1_ysf[] = {1,1,-1,-1};
|
||||
// static constexpr const channel_id map_4point1_id[] = {ci_front_left,ci_front_right,ci_back_left,ci_back_right,ci_lfe};
|
||||
|
||||
static constexpr const float map_4point1_lf[21][21] = {
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.054079f,0.13605f,0.11031f,0.083738f,0.058746f,0.03616f,0.022585f,0.018356f,0.012179f,0.0043961f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.11103f,0.16562f,0.18635f,0.15778f,0.12791f,0.12403f,0.10709f,0.090176f,0.070512f,0.049741f,0.027549f,0.011727f,0.0013628f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.17535f,0.20208f,0.21809f,0.22862f,0.21842f,0.20197f,0.18341f,0.15706f,0.13031f,0.10103f,0.068601f,0.041975f,0.018696f,0.0039144f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.24362f,0.24543f,0.25563f,0.27972f,0.28786f,0.26979f,0.24789f,0.21805f,0.18569f,0.14921f,0.10871f,0.073541f,0.041097f,0.017152f,0.0038597f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.3173f,0.29703f,0.31848f,0.33006f,0.33185f,0.32708f,0.30247f,0.27305f,0.23691f,0.19431f,0.14844f,0.10174f,0.061737f,0.03134f,0.011327f,0.0027159f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.39394f,0.36121f,0.3753f,0.38051f,0.37698f,0.36547f,0.34958f,0.3221f,0.28469f,0.23727f,0.18262f,0.12638f,0.083376f,0.055926f,0.035607f,0.011267f,0.0038302f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.47562f,0.43164f,0.43211f,0.42875f,0.41905f,0.40425f,0.38486f,0.3601f,0.3262f,0.27779f,0.21259f,0.15374f,0.11534f,0.092532f,0.055768f,0.031114f,0.016973f,0.0038919f,0.000000f,0.000000f,0.000000f},
|
||||
{0.55484f,0.49969f,0.48676f,0.47535f,0.45999f,0.4406f,0.41747f,0.39084f,0.3589f,0.31565f,0.24497f,0.18988f,0.16127f,0.11527f,0.083186f,0.061436f,0.040831f,0.018492f,0.0013084f,0.000000f,0.000000f},
|
||||
{0.63203f,0.56664f,0.53922f,0.51913f,0.49762f,0.47305f,0.44521f,0.41467f,0.38246f,0.34456f,0.28169f,0.24152f,0.1898f,0.15351f,0.12607f,0.10138f,0.073199f,0.041753f,0.011636f,0.000000f,0.000000f},
|
||||
{0.70711f,0.63601f,0.5915f,0.56154f,0.5324f,0.49872f,0.46317f,0.42387f,0.38431f,0.34937f,0.31849f,0.28164f,0.24488f,0.21244f,0.18245f,0.14826f,0.10854f,0.068473f,0.027433f,0.000000f,0.000000f},
|
||||
{0.77384f,0.7028f,0.64182f,0.59999f,0.5611f,0.52035f,0.47318f,0.42773f,0.39037f,0.35676f,0.34937f,0.34453f,0.31539f,0.27747f,0.23686f,0.19392f,0.14881f,0.1006f,0.049384f,0.0043772f,0.000000f},
|
||||
{0.83292f,0.76642f,0.69548f,0.63988f,0.59007f,0.53795f,0.48146f,0.43778f,0.40135f,0.39034f,0.38431f,0.3824f,0.35884f,0.32588f,0.28429f,0.2365f,0.18525f,0.12989f,0.070085f,0.011962f,0.000000f},
|
||||
{0.88048f,0.82659f,0.75196f,0.68173f,0.61966f,0.55557f,0.49389f,0.45152f,0.43774f,0.42776f,0.42387f,0.41451f,0.39065f,0.36002f,0.32174f,0.27262f,0.21753f,0.15652f,0.089694f,0.018075f,0.000000f},
|
||||
{0.91982f,0.87898f,0.80369f,0.72266f,0.64727f,0.57793f,0.51602f,0.49394f,0.48142f,0.47314f,0.46315f,0.44506f,0.41722f,0.38449f,0.34948f,0.30197f,0.24734f,0.18313f,0.10655f,0.022264f,0.000000f},
|
||||
{0.94888f,0.91176f,0.84521f,0.76937f,0.68766f,0.60203f,0.57788f,0.55561f,0.53794f,0.52028f,0.49868f,0.47276f,0.44023f,0.40381f,0.36503f,0.32695f,0.26927f,0.20135f,0.12342f,0.035717f,0.000000f},
|
||||
{0.9703f,0.92966f,0.89031f,0.80673f,0.72356f,0.6876f,0.64713f,0.61943f,0.5899f,0.56088f,0.53232f,0.49722f,0.45953f,0.41857f,0.37646f,0.33123f,0.28771f,0.21775f,0.12737f,0.058204f,0.000000f},
|
||||
{0.98481f,0.94077f,0.8973f,0.84179f,0.80663f,0.76916f,0.72238f,0.68134f,0.63953f,0.59955f,0.56144f,0.51865f,0.47475f,0.42817f,0.38012f,0.32941f,0.27908f,0.22844f,0.15705f,0.083257f,0.000000f},
|
||||
{0.99396f,0.94647f,0.89932f,0.89719f,0.89008f,0.84488f,0.80323f,0.75136f,0.69482f,0.64113f,0.59135f,0.53856f,0.48604f,0.43137f,0.37452f,0.3177f,0.25473f,0.21738f,0.18614f,0.10958f,0.000000f},
|
||||
{0.99855f,0.94808f,0.94637f,0.94057f,0.92934f,0.91132f,0.87838f,0.82589f,0.76558f,0.70182f,0.63578f,0.56555f,0.49868f,0.43048f,0.35999f,0.29603f,0.24451f,0.20108f,0.16489f,0.1358f,0.000000f},
|
||||
{1.000000f,0.99854f,0.99377f,0.9845f,0.96987f,0.94832f,0.91914f,0.87965f,0.83195f,0.77384f,0.70711f,0.63203f,0.55339f,0.47409f,0.39234f,0.31565f,0.24192f,0.17365f,0.10973f,0.052336f,0.000000f}};
|
||||
|
||||
static constexpr const float map_4point1_rf[21][21] = {
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0043772f,0.011962f,0.018075f,0.022264f,0.035717f,0.058204f,0.083257f,0.10958f,0.13592f,0.052336f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0013084f,0.011636f,0.027472f,0.049384f,0.070085f,0.089694f,0.10655f,0.12342f,0.12737f,0.15705f,0.18623f,0.16489f,0.10973f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0038919f,0.018492f,0.041753f,0.068513f,0.1006f,0.12983f,0.15652f,0.18313f,0.20135f,0.21775f,0.22851f,0.21738f,0.20108f,0.17363f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0038302f,0.016973f,0.040831f,0.073199f,0.10859f,0.14876f,0.1852f,0.21753f,0.24734f,0.26927f,0.28776f,0.27908f,0.25473f,0.24451f,0.24192f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.002725f,0.011267f,0.031114f,0.061436f,0.10138f,0.14831f,0.19392f,0.2365f,0.27257f,0.30197f,0.327f,0.33123f,0.32934f,0.31761f,0.29589f,0.31565f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.0039191f,0.011379f,0.035584f,0.055812f,0.083146f,0.12603f,0.18248f,0.23686f,0.28429f,0.32174f,0.34952f,0.36503f,0.37646f,0.38012f,0.37444f,0.35999f,0.39234f},
|
||||
{0.000000f,0.000000f,0.000000f,0.0039822f,0.017152f,0.03134f,0.055926f,0.09249f,0.11527f,0.15351f,0.21247f,0.27743f,0.32588f,0.36005f,0.38449f,0.40381f,0.41852f,0.42817f,0.43128f,0.43048f,0.47409f},
|
||||
{0.000000f,0.000000f,0.0013628f,0.018696f,0.041097f,0.061737f,0.083376f,0.11538f,0.16121f,0.18976f,0.24491f,0.31539f,0.35887f,0.39065f,0.41717f,0.44023f,0.45953f,0.47475f,0.48597f,0.49857f,0.55339f},
|
||||
{0.000000f,0.000000f,0.011806f,0.042039f,0.073541f,0.10174f,0.12638f,0.15373f,0.18988f,0.24145f,0.28167f,0.34454f,0.38236f,0.41451f,0.445f,0.47276f,0.49722f,0.51865f,0.53856f,0.56555f,0.63203f},
|
||||
{0.000000f,8.5322e-019f,0.027472f,0.068532f,0.10862f,0.14835f,0.18253f,0.21252f,0.24491f,0.28164f,0.31849f,0.34939f,0.38433f,0.42389f,0.46318f,0.49872f,0.53237f,0.56148f,0.59141f,0.63586f,0.70711f},
|
||||
{0.000000f,0.0045097f,0.049741f,0.10103f,0.14921f,0.19436f,0.23726f,0.27779f,0.31563f,0.34453f,0.34938f,0.35677f,0.39034f,0.42771f,0.47314f,0.52028f,0.56081f,0.59955f,0.64113f,0.70182f,0.77384f},
|
||||
{0.000000f,0.012179f,0.070512f,0.13031f,0.18569f,0.23696f,0.28468f,0.3262f,0.35886f,0.38246f,0.38432f,0.39033f,0.40136f,0.43778f,0.48142f,0.53794f,0.58984f,0.63945f,0.69482f,0.76558f,0.83195f},
|
||||
{0.000000f,0.018356f,0.090176f,0.15706f,0.21803f,0.27305f,0.32214f,0.36006f,0.39088f,0.41462f,0.42388f,0.42773f,0.43778f,0.45153f,0.49394f,0.55555f,0.61943f,0.68134f,0.75136f,0.82586f,0.87965f},
|
||||
{0.000000f,0.022585f,0.10709f,0.1837f,0.24789f,0.30247f,0.34954f,0.38486f,0.41747f,0.44521f,0.46317f,0.47313f,0.48141f,0.49393f,0.51604f,0.57793f,0.64713f,0.7226f,0.80323f,0.87839f,0.91914f},
|
||||
{0.000000f,0.03616f,0.12403f,0.20197f,0.26986f,0.32703f,0.36552f,0.40423f,0.4406f,0.47305f,0.49872f,0.5204f,0.538f,0.55557f,0.57793f,0.60205f,0.6876f,0.76916f,0.84488f,0.91132f,0.94832f},
|
||||
{0.000000f,0.058746f,0.12802f,0.21842f,0.2878f,0.33185f,0.37704f,0.41905f,0.45997f,0.4976f,0.53237f,0.5611f,0.59007f,0.61958f,0.64727f,0.6877f,0.7236f,0.80663f,0.89008f,0.92934f,0.96987f},
|
||||
{0.000000f,0.083896f,0.15778f,0.22854f,0.27982f,0.33006f,0.38081f,0.42882f,0.47533f,0.51919f,0.56149f,0.59999f,0.63988f,0.68173f,0.72294f,0.76935f,0.80673f,0.84179f,0.89719f,0.94057f,0.9845f},
|
||||
{0.000000f,0.11031f,0.18625f,0.21822f,0.25563f,0.31848f,0.3753f,0.43211f,0.48676f,0.5393f,0.59144f,0.64182f,0.69546f,0.75192f,0.80366f,0.84518f,0.89031f,0.8973f,0.8993f,0.94637f,0.99377f},
|
||||
{0.000000f,0.13592f,0.16581f,0.20208f,0.24559f,0.29703f,0.36121f,0.43162f,0.49969f,0.56664f,0.63593f,0.7028f,0.76638f,0.82659f,0.87898f,0.91171f,0.92966f,0.94077f,0.94647f,0.94806f,0.99846f},
|
||||
{7.8496e-017f,0.054079f,0.11147f,0.17537f,0.24362f,0.3173f,0.39394f,0.47562f,0.55484f,0.63338f,0.70711f,0.77494f,0.83292f,0.88048f,0.91982f,0.94888f,0.9703f,0.98481f,0.99396f,0.99863f,1.000000f}};
|
||||
|
||||
static constexpr const float map_4point1_ls[21][21] = {
|
||||
{1.000000f,0.99863f,0.99396f,0.98481f,0.9703f,0.94888f,0.91914f,0.88048f,0.83195f,0.77384f,0.70834f,0.63338f,0.55484f,0.47562f,0.39394f,0.3173f,0.24362f,0.17537f,0.11147f,0.054079f,-7.8496e-017f},
|
||||
{0.99854f,0.94804f,0.94647f,0.94043f,0.92966f,0.91177f,0.87898f,0.82659f,0.76643f,0.70248f,0.63602f,0.56664f,0.49969f,0.43164f,0.36121f,0.29703f,0.24559f,0.20208f,0.16581f,0.13592f,0.000000f},
|
||||
{0.99373f,0.94619f,0.89929f,0.8973f,0.89f,0.84522f,0.80369f,0.75196f,0.69549f,0.64182f,0.59149f,0.53909f,0.48676f,0.43211f,0.3753f,0.31848f,0.25563f,0.21817f,0.18628f,0.11031f,0.000000f},
|
||||
{0.98443f,0.94057f,0.89693f,0.84178f,0.80673f,0.76938f,0.72295f,0.68173f,0.63988f,0.59999f,0.56152f,0.51902f,0.47535f,0.42864f,0.38061f,0.33006f,0.27965f,0.22857f,0.15778f,0.083896f,0.000000f},
|
||||
{0.96987f,0.92924f,0.89008f,0.8064f,0.72353f,0.68753f,0.64727f,0.61961f,0.59007f,0.5611f,0.53236f,0.49762f,0.45999f,0.41905f,0.37687f,0.33185f,0.28785f,0.21842f,0.12802f,0.058746f,0.000000f},
|
||||
{0.94832f,0.91132f,0.84488f,0.76916f,0.6876f,0.60199f,0.57793f,0.55557f,0.53786f,0.52026f,0.49866f,0.47305f,0.4406f,0.40425f,0.36538f,0.32707f,0.2697f,0.20197f,0.12403f,0.03616f,0.000000f},
|
||||
{0.91914f,0.87839f,0.80323f,0.72262f,0.64697f,0.57779f,0.51599f,0.49381f,0.48147f,0.4732f,0.46311f,0.44521f,0.41747f,0.38486f,0.34957f,0.30247f,0.24789f,0.18361f,0.10709f,0.022585f,0.000000f},
|
||||
{0.87965f,0.82586f,0.75136f,0.68116f,0.61943f,0.55563f,0.49394f,0.45149f,0.43778f,0.42773f,0.42381f,0.41464f,0.39077f,0.36007f,0.32202f,0.27305f,0.21805f,0.15706f,0.090176f,0.018356f,0.000000f},
|
||||
{0.83195f,0.76558f,0.69482f,0.63955f,0.58992f,0.53794f,0.48142f,0.43767f,0.40132f,0.39038f,0.38425f,0.38246f,0.35885f,0.3262f,0.2847f,0.23683f,0.18569f,0.13031f,0.070512f,0.012179f,0.000000f},
|
||||
{0.77494f,0.70182f,0.64105f,0.59937f,0.5609f,0.52028f,0.47314f,0.42777f,0.39034f,0.35673f,0.34932f,0.34449f,0.31565f,0.27779f,0.23728f,0.19424f,0.14921f,0.10103f,0.049741f,0.0045097f,0.000000f},
|
||||
{0.70711f,0.63577f,0.59134f,0.56143f,0.53234f,0.49869f,0.46315f,0.42387f,0.38431f,0.34937f,0.3185f,0.28163f,0.2449f,0.21252f,0.18253f,0.14834f,0.1086f,0.068513f,0.027472f,-8.5322e-019f,0.000000f},
|
||||
{0.63338f,0.56555f,0.53856f,0.51865f,0.49722f,0.47263f,0.44507f,0.41451f,0.38241f,0.34452f,0.2816f,0.24145f,0.18988f,0.15379f,0.12638f,0.10174f,0.073541f,0.042039f,0.011806f,0.000000f,0.000000f},
|
||||
{0.55339f,0.49871f,0.48607f,0.47475f,0.45953f,0.44013f,0.41724f,0.39065f,0.35885f,0.31539f,0.24485f,0.1898f,0.16119f,0.11535f,0.083376f,0.061737f,0.041097f,0.018696f,0.0013628f,0.000000f,0.000000f},
|
||||
{0.47409f,0.43048f,0.43138f,0.42817f,0.41859f,0.40381f,0.38442f,0.36003f,0.32583f,0.27748f,0.21245f,0.15351f,0.11527f,0.092466f,0.055926f,0.03134f,0.017152f,0.0039822f,0.000000f,0.000000f,0.000000f},
|
||||
{0.39234f,0.35999f,0.37455f,0.38033f,0.37646f,0.36503f,0.34948f,0.32174f,0.28429f,0.23686f,0.18246f,0.12608f,0.083197f,0.055812f,0.03557f,0.011379f,0.0039191f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.31565f,0.29607f,0.31773f,0.32943f,0.33124f,0.32696f,0.30198f,0.27263f,0.2365f,0.19392f,0.14828f,0.10138f,0.061436f,0.031114f,0.011267f,0.002725f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.24192f,0.24451f,0.25473f,0.27908f,0.28772f,0.26927f,0.24734f,0.21753f,0.18526f,0.14882f,0.10856f,0.073199f,0.040831f,0.01704f,0.0038302f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.17365f,0.20108f,0.21738f,0.22846f,0.21775f,0.20135f,0.18335f,0.15652f,0.12991f,0.1006f,0.068474f,0.041753f,0.018492f,0.0038919f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.10973f,0.16489f,0.18616f,0.15705f,0.12737f,0.12342f,0.10655f,0.089694f,0.070085f,0.049384f,0.027446f,0.011636f,0.0013628f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.052332f,0.13583f,0.10958f,0.083257f,0.058204f,0.035717f,0.022438f,0.018227f,0.011962f,0.0043772f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}};
|
||||
|
||||
static constexpr const float map_4point1_rs[21][21] = {
|
||||
{-7.8496e-017f,0.052336f,0.10973f,0.17365f,0.24192f,0.31565f,0.39394f,0.47409f,0.55484f,0.63338f,0.70587f,0.77384f,0.83195f,0.87965f,0.91914f,0.94832f,0.96987f,0.9845f,0.99377f,0.99854f,1.000000f},
|
||||
{0.000000f,0.13583f,0.16489f,0.20208f,0.24451f,0.29589f,0.35999f,0.43048f,0.49857f,0.56633f,0.63558f,0.70182f,0.76558f,0.82586f,0.87839f,0.91132f,0.92934f,0.94057f,0.94637f,0.94804f,0.99863f},
|
||||
{0.000000f,0.11031f,0.18615f,0.21738f,0.25552f,0.31761f,0.37444f,0.43128f,0.48597f,0.53856f,0.59121f,0.64167f,0.69482f,0.75136f,0.80323f,0.84488f,0.89008f,0.89725f,0.89927f,0.94647f,0.99396f},
|
||||
{0.000000f,0.083257f,0.15778f,0.22845f,0.27908f,0.32934f,0.38061f,0.42817f,0.47475f,0.51865f,0.56131f,0.59998f,0.63948f,0.6818f,0.72306f,0.76916f,0.80688f,0.84174f,0.8973f,0.94077f,0.98473f},
|
||||
{0.000000f,0.058746f,0.12737f,0.2183f,0.28772f,0.33167f,0.37646f,0.41852f,0.45953f,0.49722f,0.53221f,0.56083f,0.58986f,0.61943f,0.64753f,0.6876f,0.72348f,0.80673f,0.89031f,0.92966f,0.9703f},
|
||||
{0.000000f,0.035717f,0.12342f,0.20135f,0.26927f,0.32696f,0.36503f,0.40381f,0.44057f,0.47309f,0.49858f,0.52028f,0.53794f,0.55557f,0.57829f,0.60191f,0.688f,0.76938f,0.84522f,0.91177f,0.94888f},
|
||||
{0.000000f,0.022264f,0.10655f,0.18361f,0.24774f,0.30233f,0.34948f,0.3848f,0.41719f,0.44502f,0.46308f,0.47314f,0.48142f,0.49394f,0.51592f,0.57793f,0.64727f,0.72306f,0.80369f,0.87898f,0.91982f},
|
||||
{0.000000f,0.018075f,0.089694f,0.15698f,0.21753f,0.27257f,0.32174f,0.36002f,0.39065f,0.41451f,0.4238f,0.42773f,0.43804f,0.45143f,0.49424f,0.55557f,0.61961f,0.68173f,0.75196f,0.82659f,0.88048f},
|
||||
{0.000000f,0.011962f,0.070085f,0.12983f,0.1852f,0.2365f,0.28429f,0.32614f,0.35884f,0.38237f,0.38425f,0.39034f,0.40127f,0.43778f,0.48142f,0.53827f,0.59007f,0.63988f,0.69549f,0.76643f,0.83292f},
|
||||
{0.000000f,0.0043772f,0.049741f,0.10103f,0.14876f,0.19392f,0.23686f,0.27743f,0.31539f,0.34452f,0.34932f,0.35669f,0.39034f,0.42773f,0.47315f,0.52061f,0.5611f,0.59999f,0.64182f,0.7028f,0.77494f},
|
||||
{0.000000f,-8.5322e-019f,0.027447f,0.068465f,0.10853f,0.14825f,0.18244f,0.21244f,0.24485f,0.28161f,0.31849f,0.34932f,0.38425f,0.42381f,0.46314f,0.49869f,0.53239f,0.56152f,0.59147f,0.63596f,0.70711f},
|
||||
{0.000000f,0.000000f,0.011636f,0.041753f,0.073199f,0.1017f,0.12603f,0.15351f,0.18976f,0.24145f,0.28164f,0.34451f,0.38246f,0.41464f,0.44521f,0.47305f,0.49762f,0.51919f,0.5393f,0.56664f,0.63338f},
|
||||
{0.000000f,0.000000f,0.0013084f,0.018492f,0.040831f,0.061737f,0.083146f,0.11527f,0.16121f,0.18988f,0.2449f,0.31565f,0.35887f,0.39092f,0.41747f,0.4406f,0.45999f,0.47535f,0.48676f,0.49969f,0.55484f},
|
||||
{0.000000f,0.000000f,0.000000f,0.0038919f,0.016973f,0.031114f,0.056058f,0.092505f,0.11557f,0.15374f,0.21251f,0.27779f,0.3262f,0.36008f,0.38486f,0.40425f,0.41905f,0.42882f,0.43211f,0.43164f,0.47562f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.0038302f,0.011267f,0.0356f,0.055926f,0.083376f,0.12638f,0.18252f,0.23728f,0.2847f,0.32214f,0.34955f,0.36552f,0.37704f,0.38081f,0.3753f,0.36121f,0.39394f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0027341f,0.011405f,0.03134f,0.061737f,0.10174f,0.14834f,0.19436f,0.23696f,0.27305f,0.30247f,0.32704f,0.33185f,0.33006f,0.31848f,0.29703f,0.3173f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0039191f,0.017152f,0.041097f,0.073541f,0.10862f,0.14921f,0.18569f,0.21805f,0.24789f,0.26986f,0.28782f,0.27982f,0.25563f,0.24559f,0.24362f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0039822f,0.018696f,0.042039f,0.068554f,0.10103f,0.13031f,0.15706f,0.1837f,0.20197f,0.21842f,0.22858f,0.21822f,0.20208f,0.17537f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0013628f,0.011806f,0.027511f,0.049741f,0.070512f,0.090176f,0.10709f,0.12403f,0.12802f,0.15778f,0.1863f,0.16581f,0.11147f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,-8.5322e-019f,0.0045097f,0.012179f,0.018356f,0.022585f,0.03616f,0.058746f,0.083896f,0.11031f,0.136f,0.054075f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,-7.8496e-017f}};
|
||||
|
||||
// static constexpr const float map_5point1_ang[] = {-27,0,27,-105,105};
|
||||
static constexpr const float map_5point1_xsf[] = {-1,0,1,-1,1};
|
||||
// static constexpr const float map_5point1_ysf[] = {1,1,1,-1,-1};
|
||||
// static constexpr const channel_id map_5point1_id[] = {ci_front_left,ci_front_center,ci_front_right,ci_back_left,ci_back_right,ci_lfe};
|
||||
|
||||
static constexpr const float map_5point1_lf[21][21] = {
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.054079f,0.13605f,0.11031f,0.083738f,0.058746f,0.03616f,0.022585f,0.018356f,0.012179f,0.0043961f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.11103f,0.16562f,0.18635f,0.15778f,0.12791f,0.12403f,0.10709f,0.090176f,0.070512f,0.049741f,0.027549f,0.011727f,0.0013628f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.17535f,0.20208f,0.21809f,0.22862f,0.21842f,0.20197f,0.18341f,0.15706f,0.13031f,0.10103f,0.068601f,0.041975f,0.018696f,0.0039144f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.24362f,0.24543f,0.25563f,0.27972f,0.28786f,0.26979f,0.24789f,0.21805f,0.18569f,0.14921f,0.10871f,0.073541f,0.041097f,0.017152f,0.0038597f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.3173f,0.29703f,0.31848f,0.33006f,0.33185f,0.32571f,0.30203f,0.27305f,0.23691f,0.19431f,0.14844f,0.10174f,0.061737f,0.03134f,0.010908f,0.0013625f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.39394f,0.36121f,0.3753f,0.38051f,0.37306f,0.35451f,0.33178f,0.30958f,0.28023f,0.23726f,0.18262f,0.12638f,0.07899f,0.043546f,0.017841f,0.00044495f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.47562f,0.43164f,0.43211f,0.42477f,0.4019f,0.37291f,0.34131f,0.31385f,0.29675f,0.2674f,0.21259f,0.14347f,0.086077f,0.046322f,0.012467f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.55484f,0.49969f,0.48539f,0.45665f,0.41889f,0.37886f,0.33895f,0.30764f,0.28138f,0.2723f,0.23279f,0.14674f,0.083778f,0.032293f,0.0048976f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.63203f,0.56664f,0.52742f,0.47709f,0.42408f,0.37424f,0.33419f,0.30176f,0.27482f,0.25011f,0.23665f,0.1471f,0.082204f,0.040759f,0.015195f,0.0028496f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.70711f,0.63601f,0.56403f,0.49301f,0.42572f,0.37154f,0.33227f,0.30051f,0.27246f,0.24769f,0.22385f,0.17996f,0.13303f,0.089089f,0.051572f,0.021112f,0.0019269f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.77384f,0.69829f,0.59208f,0.49896f,0.42627f,0.37547f,0.33559f,0.30342f,0.27695f,0.2532f,0.24555f,0.24096f,0.202f,0.15312f,0.099312f,0.049149f,0.01419f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.83292f,0.75424f,0.62497f,0.51188f,0.43577f,0.38288f,0.34157f,0.31064f,0.28485f,0.27588f,0.27011f,0.26791f,0.24233f,0.19874f,0.14444f,0.081488f,0.031102f,0.0022352f,0.000000f,0.000000f,0.000000f},
|
||||
{0.88048f,0.80823f,0.66178f,0.53219f,0.45043f,0.39421f,0.35046f,0.32046f,0.30985f,0.30176f,0.29791f,0.28855f,0.26277f,0.22895f,0.1783f,0.11122f,0.048526f,0.0073556f,0.000000f,0.000000f,0.000000f},
|
||||
{0.91982f,0.8564f,0.6966f,0.55364f,0.46596f,0.41011f,0.36623f,0.3499f,0.34025f,0.33348f,0.32389f,0.30536f,0.27602f,0.24046f,0.19967f,0.13416f,0.066173f,0.014462f,0.000000f,0.000000f,0.000000f},
|
||||
{0.94888f,0.8756f,0.72118f,0.58509f,0.49378f,0.42727f,0.40951f,0.39303f,0.37927f,0.36377f,0.34295f,0.31626f,0.28156f,0.24129f,0.19667f,0.15218f,0.075526f,0.017441f,0.000000f,0.000000f,0.000000f},
|
||||
{0.9703f,0.87092f,0.76228f,0.60765f,0.51716f,0.48514f,0.45531f,0.43328f,0.40894f,0.38299f,0.35389f,0.31939f,0.27862f,0.23237f,0.18465f,0.12881f,0.081296f,0.019071f,0.000000f,0.000000f,0.000000f},
|
||||
{0.98481f,0.85688f,0.73952f,0.62982f,0.5767f,0.53382f,0.4939f,0.46098f,0.42667f,0.39124f,0.35254f,0.31034f,0.26195f,0.20782f,0.15167f,0.09417f,0.04946f,0.016531f,0.000000f,0.000000f,0.000000f},
|
||||
{0.99396f,0.83616f,0.71307f,0.68155f,0.64457f,0.57478f,0.52315f,0.47464f,0.42859f,0.38222f,0.33181f,0.27965f,0.21975f,0.15464f,0.094607f,0.047925f,0.0098814f,0.0024671f,0.000000f,0.000000f,0.000000f},
|
||||
{0.99855f,0.81216f,0.78057f,0.73849f,0.68375f,0.61653f,0.5369f,0.46213f,0.39741f,0.33339f,0.26339f,0.19725f,0.13069f,0.067274f,0.019339f,0.0021311f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{1.000000f,0.94446f,0.8823f,0.80914f,0.72626f,0.63102f,0.52519f,0.40402f,0.27711f,0.14046f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}};
|
||||
|
||||
static constexpr const float map_5point1_cf[21][21] = {
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0019269f,0.00062925f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.00059225f,0.001914f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.0055425f,0.0155f,0.025167f,0.017695f,0.0063155f,1.0116e-005f,0.000000f,0.000000f,0.0062031f,0.017508f,0.025125f,0.015305f,0.0054168f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.0056317f,0.024256f,0.044322f,0.061583f,0.065405f,0.041656f,0.014688f,4.0817e-019f,0.014527f,0.041389f,0.065342f,0.061236f,0.044002f,0.024003f,0.005504f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.0019274f,0.02644f,0.05812f,0.08731f,0.11105f,0.11767f,0.10963f,0.061306f,0.017226f,0.061006f,0.10958f,0.11735f,0.11066f,0.086884f,0.057744f,0.026151f,0.0018503f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.016697f,0.059451f,0.104f,0.13974f,0.15702f,0.15962f,0.15223f,0.13355f,0.063692f,0.13353f,0.15211f,0.15945f,0.15675f,0.13934f,0.10352f,0.059047f,0.016456f,0.000000f,0.000000f},
|
||||
{0.000000f,1.2068e-018f,0.038851f,0.096919f,0.15087f,0.17987f,0.18511f,0.17445f,0.15817f,0.14379f,0.13384f,0.14378f,0.15816f,0.17444f,0.18509f,0.17981f,0.15076f,0.096821f,0.038797f,0.000000f,0.000000f},
|
||||
{0.000000f,0.0063777f,0.070344f,0.14288f,0.19068f,0.2049f,0.19453f,0.1758f,0.16036f,0.14645f,0.14681f,0.14646f,0.16036f,0.1758f,0.19453f,0.20473f,0.19031f,0.14227f,0.06984f,0.0061903f,0.000000f},
|
||||
{0.000000f,0.017224f,0.099719f,0.18101f,0.21822f,0.2193f,0.19777f,0.17979f,0.16475f,0.16187f,0.16149f,0.16187f,0.16477f,0.1798f,0.19777f,0.21922f,0.21792f,0.18045f,0.099116f,0.016918f,0.000000f},
|
||||
{0.000000f,0.02596f,0.12753f,0.21148f,0.23925f,0.22819f,0.20284f,0.18535f,0.18085f,0.17814f,0.17812f,0.17814f,0.18084f,0.18536f,0.20284f,0.22818f,0.23901f,0.21095f,0.12685f,0.025562f,0.000000f},
|
||||
{0.000000f,0.03194f,0.15144f,0.23904f,0.2564f,0.23733f,0.21182f,0.20371f,0.19964f,0.19751f,0.19694f,0.1975f,0.19963f,0.20369f,0.21184f,0.23733f,0.25621f,0.23853f,0.15068f,0.031485f,0.000000f},
|
||||
{0.000000f,0.051138f,0.17541f,0.26062f,0.27419f,0.24713f,0.23812f,0.22985f,0.2244f,0.22133f,0.22022f,0.22132f,0.22439f,0.22984f,0.2381f,0.24715f,0.274f,0.26009f,0.17455f,0.050511f,0.000000f},
|
||||
{0.000000f,0.08308f,0.18105f,0.28155f,0.29188f,0.28632f,0.27128f,0.26327f,0.25585f,0.25151f,0.25234f,0.2515f,0.25584f,0.26325f,0.27127f,0.28627f,0.29189f,0.28098f,0.18013f,0.082312f,0.000000f},
|
||||
{0.000000f,0.11865f,0.22314f,0.29977f,0.32517f,0.33282f,0.32312f,0.31164f,0.30095f,0.2946f,0.29542f,0.29459f,0.30094f,0.31163f,0.32308f,0.33259f,0.32473f,0.29967f,0.22211f,0.11774f,0.000000f},
|
||||
{0.000000f,0.15601f,0.26339f,0.30497f,0.3472f,0.38198f,0.39609f,0.39135f,0.3765f,0.36616f,0.36703f,0.36615f,0.37649f,0.39123f,0.39574f,0.3814f,0.34627f,0.30393f,0.26322f,0.15497f,0.000000f},
|
||||
{0.000000f,0.19222f,0.23448f,0.28578f,0.34732f,0.4169f,0.48293f,0.51439f,0.52067f,0.52104f,0.52661f,0.52086f,0.52026f,0.51365f,0.48176f,0.41543f,0.34579f,0.28436f,0.23319f,0.19202f,0.000000f},
|
||||
{1.1102e-016f,0.076479f,0.15764f,0.24801f,0.34452f,0.44874f,0.55712f,0.67263f,0.78467f,0.89574f,1.000000f,0.89382f,0.78261f,0.67046f,0.55485f,0.4464f,0.34213f,0.24558f,0.15519f,0.074014f,0.000000f}};
|
||||
|
||||
static constexpr const float map_5point1_rf[21][21] = {
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0043772f,0.011962f,0.018075f,0.022264f,0.035717f,0.058204f,0.083257f,0.10958f,0.13592f,0.052336f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0013084f,0.011636f,0.027472f,0.049384f,0.070085f,0.089694f,0.10655f,0.12342f,0.12737f,0.15705f,0.18623f,0.16489f,0.10973f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0038919f,0.018492f,0.041753f,0.068513f,0.1006f,0.12983f,0.15652f,0.18313f,0.20135f,0.21775f,0.22851f,0.21738f,0.20108f,0.17363f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0038302f,0.016973f,0.040831f,0.073199f,0.10859f,0.14876f,0.1852f,0.21753f,0.24734f,0.26927f,0.28776f,0.27908f,0.25473f,0.24451f,0.24192f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0013625f,0.010822f,0.031114f,0.061436f,0.10138f,0.14831f,0.19392f,0.2365f,0.27257f,0.30156f,0.32564f,0.33123f,0.32934f,0.31761f,0.29589f,0.31565f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.00041878f,0.017789f,0.0433f,0.07868f,0.12602f,0.18248f,0.23686f,0.2799f,0.30936f,0.33175f,0.35421f,0.37263f,0.38012f,0.37444f,0.35999f,0.39234f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.01238f,0.046242f,0.085813f,0.14312f,0.21247f,0.26716f,0.29661f,0.31385f,0.34119f,0.3727f,0.40155f,0.42428f,0.43128f,0.43048f,0.47409f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0048489f,0.032179f,0.083684f,0.14641f,0.23272f,0.27225f,0.28139f,0.30767f,0.33894f,0.3788f,0.4187f,0.45626f,0.48466f,0.49857f,0.55339f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0029287f,0.015357f,0.040874f,0.082238f,0.14702f,0.23663f,0.25012f,0.27481f,0.30176f,0.33418f,0.37423f,0.42403f,0.4769f,0.52692f,0.56555f,0.63203f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.0019397f,0.021156f,0.051639f,0.089163f,0.13307f,0.17997f,0.22386f,0.24772f,0.27249f,0.30054f,0.33231f,0.37158f,0.42577f,0.49302f,0.56398f,0.63586f,0.70711f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.01438f,0.049473f,0.099723f,0.15348f,0.20226f,0.24098f,0.24557f,0.25321f,0.27695f,0.30342f,0.33559f,0.37551f,0.42626f,0.49895f,0.59175f,0.69745f,0.77384f},
|
||||
{0.000000f,0.000000f,0.000000f,0.0023122f,0.031384f,0.081894f,0.14485f,0.19907f,0.24237f,0.268f,0.27012f,0.27589f,0.28486f,0.31064f,0.34157f,0.38293f,0.43576f,0.51188f,0.62473f,0.75361f,0.83195f},
|
||||
{0.000000f,0.000000f,0.000000f,0.0075151f,0.048878f,0.11169f,0.17871f,0.229f,0.263f,0.28867f,0.29793f,0.30177f,0.3099f,0.32047f,0.3505f,0.39422f,0.45043f,0.53218f,0.66167f,0.80779f,0.87965f},
|
||||
{0.000000f,0.000000f,0.000000f,0.014677f,0.066587f,0.13466f,0.19976f,0.24081f,0.2763f,0.30555f,0.32392f,0.33349f,0.34026f,0.3499f,0.36625f,0.41012f,0.46596f,0.55393f,0.69668f,0.85613f,0.91914f},
|
||||
{0.000000f,0.000000f,0.000000f,0.017689f,0.075976f,0.15229f,0.19715f,0.24172f,0.28192f,0.31654f,0.343f,0.3639f,0.37933f,0.39305f,0.40957f,0.42729f,0.49385f,0.58524f,0.72145f,0.8756f,0.94832f},
|
||||
{0.000000f,0.000000f,0.000000f,0.019339f,0.081415f,0.12939f,0.18521f,0.2329f,0.27908f,0.31978f,0.35395f,0.38326f,0.40917f,0.43346f,0.45546f,0.48528f,0.5172f,0.60794f,0.76272f,0.87113f,0.96987f},
|
||||
{0.000000f,0.000000f,0.000000f,0.016574f,0.049892f,0.094728f,0.15233f,0.20846f,0.26255f,0.31088f,0.35261f,0.39169f,0.42708f,0.46137f,0.49449f,0.53421f,0.57711f,0.6299f,0.74014f,0.85731f,0.9845f},
|
||||
{0.000000f,0.000000f,0.000000f,0.0025743f,0.010122f,0.048381f,0.095227f,0.15539f,0.22053f,0.28038f,0.33191f,0.38291f,0.42927f,0.47532f,0.52386f,0.57553f,0.64546f,0.68239f,0.71318f,0.83679f,0.99377f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.0022432f,0.019725f,0.067908f,0.13152f,0.19821f,0.26356f,0.3345f,0.39855f,0.46338f,0.53833f,0.61802f,0.68515f,0.7397f,0.78158f,0.8123f,0.99846f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.14292f,0.27953f,0.40639f,0.52748f,0.63323f,0.72837f,0.81116f,0.88423f,0.94629f,1.000000f}};
|
||||
|
||||
static constexpr const float map_5point1_ls[21][21] = {
|
||||
{1.000000f,0.99863f,0.99396f,0.98481f,0.9703f,0.94888f,0.91914f,0.88048f,0.83195f,0.77384f,0.70834f,0.63338f,0.55484f,0.47562f,0.39394f,0.3173f,0.24362f,0.17537f,0.11147f,0.054079f,-7.8496e-017f},
|
||||
{0.99854f,0.94804f,0.94647f,0.94043f,0.92966f,0.91177f,0.87898f,0.82659f,0.76643f,0.70248f,0.63602f,0.56664f,0.49969f,0.43164f,0.36121f,0.29703f,0.24559f,0.20208f,0.16581f,0.13592f,0.000000f},
|
||||
{0.99373f,0.94619f,0.89929f,0.8973f,0.89f,0.84522f,0.80369f,0.75196f,0.69549f,0.64182f,0.59149f,0.53909f,0.48676f,0.43211f,0.3753f,0.31848f,0.25563f,0.21817f,0.18628f,0.11031f,0.000000f},
|
||||
{0.98443f,0.94057f,0.89693f,0.84178f,0.80673f,0.76938f,0.72295f,0.68173f,0.63988f,0.59999f,0.56152f,0.51902f,0.47535f,0.42864f,0.38061f,0.33006f,0.27965f,0.22857f,0.15778f,0.083896f,0.000000f},
|
||||
{0.96987f,0.92924f,0.89008f,0.8064f,0.72353f,0.68753f,0.64727f,0.61961f,0.59007f,0.5611f,0.53236f,0.49762f,0.45999f,0.41905f,0.37687f,0.33185f,0.28785f,0.21842f,0.12802f,0.058746f,0.000000f},
|
||||
{0.94832f,0.91132f,0.84488f,0.76916f,0.6876f,0.60199f,0.57793f,0.55557f,0.53786f,0.52026f,0.49866f,0.47305f,0.4406f,0.40425f,0.36538f,0.32707f,0.2697f,0.20197f,0.12403f,0.03616f,0.000000f},
|
||||
{0.91914f,0.87839f,0.80323f,0.72262f,0.64697f,0.57779f,0.51599f,0.49381f,0.48147f,0.4732f,0.46311f,0.44521f,0.41747f,0.38486f,0.34957f,0.30247f,0.24789f,0.18361f,0.10709f,0.022585f,0.000000f},
|
||||
{0.87965f,0.82586f,0.75136f,0.68116f,0.61943f,0.55563f,0.49394f,0.45149f,0.43778f,0.42773f,0.42381f,0.41464f,0.39077f,0.36007f,0.32202f,0.27305f,0.21805f,0.15706f,0.090176f,0.018356f,0.000000f},
|
||||
{0.83195f,0.76558f,0.69482f,0.63955f,0.58992f,0.53794f,0.48142f,0.43767f,0.40132f,0.39038f,0.38425f,0.38246f,0.35885f,0.3262f,0.2847f,0.23683f,0.18569f,0.13031f,0.070512f,0.012179f,0.000000f},
|
||||
{0.77494f,0.70182f,0.64105f,0.59937f,0.5609f,0.52028f,0.47314f,0.42777f,0.39034f,0.35673f,0.34932f,0.34449f,0.31565f,0.27779f,0.23728f,0.19424f,0.14921f,0.10103f,0.049741f,0.0045097f,0.000000f},
|
||||
{0.70711f,0.63577f,0.59134f,0.56143f,0.53234f,0.49869f,0.46315f,0.42387f,0.38431f,0.34937f,0.3185f,0.28163f,0.2449f,0.21252f,0.18253f,0.14834f,0.1086f,0.068513f,0.027472f,-8.5322e-019f,0.000000f},
|
||||
{0.63338f,0.56555f,0.53856f,0.51865f,0.49722f,0.47263f,0.44507f,0.41451f,0.38241f,0.34452f,0.2816f,0.24145f,0.18988f,0.15379f,0.12638f,0.10174f,0.073541f,0.042039f,0.011806f,0.000000f,0.000000f},
|
||||
{0.55339f,0.49871f,0.48607f,0.47475f,0.45953f,0.44013f,0.41724f,0.39065f,0.35885f,0.31539f,0.24485f,0.1898f,0.16119f,0.11535f,0.083376f,0.061737f,0.041097f,0.018696f,0.0013628f,0.000000f,0.000000f},
|
||||
{0.47409f,0.43048f,0.43138f,0.42817f,0.41859f,0.40381f,0.38442f,0.36003f,0.32583f,0.27748f,0.21245f,0.15351f,0.11527f,0.092466f,0.055926f,0.03134f,0.017152f,0.0039822f,0.000000f,0.000000f,0.000000f},
|
||||
{0.39234f,0.35999f,0.37455f,0.38033f,0.37646f,0.36503f,0.34948f,0.32174f,0.28429f,0.23686f,0.18246f,0.12608f,0.083197f,0.055812f,0.03557f,0.011379f,0.0039191f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.31565f,0.29607f,0.31773f,0.32943f,0.33124f,0.32696f,0.30198f,0.27263f,0.2365f,0.19392f,0.14828f,0.10138f,0.061436f,0.031114f,0.011267f,0.002725f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.24192f,0.24451f,0.25473f,0.27908f,0.28772f,0.26927f,0.24734f,0.21753f,0.18526f,0.14882f,0.10856f,0.073199f,0.040831f,0.01704f,0.0038302f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.17365f,0.20108f,0.21738f,0.22846f,0.21775f,0.20135f,0.18335f,0.15652f,0.12991f,0.1006f,0.068474f,0.041753f,0.018492f,0.0038919f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.10973f,0.16489f,0.18616f,0.15705f,0.12737f,0.12342f,0.10655f,0.089694f,0.070085f,0.049384f,0.027446f,0.011636f,0.0013628f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.052332f,0.13583f,0.10958f,0.083257f,0.058204f,0.035717f,0.022438f,0.018227f,0.011962f,0.0043772f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f},
|
||||
{0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f,0.000000f}};
|
||||
|
||||
static constexpr const float map_5point1_rs[21][21] = {
|
||||
{-7.8496e-017f,0.052336f,0.10973f,0.17365f,0.24192f,0.31565f,0.39394f,0.47409f,0.55484f,0.63338f,0.70587f,0.77384f,0.83195f,0.87965f,0.91914f,0.94832f,0.96987f,0.9845f,0.99377f,0.99854f,1.000000f},
|
||||
{0.000000f,0.13583f,0.16489f,0.20208f,0.24451f,0.29589f,0.35999f,0.43048f,0.49857f,0.56633f,0.63558f,0.70182f,0.76558f,0.82586f,0.87839f,0.91132f,0.92934f,0.94057f,0.94637f,0.94804f,0.99863f},
|
||||
{0.000000f,0.11031f,0.18615f,0.21738f,0.25552f,0.31761f,0.37444f,0.43128f,0.48597f,0.53856f,0.59121f,0.64167f,0.69482f,0.75136f,0.80323f,0.84488f,0.89008f,0.89725f,0.89927f,0.94647f,0.99396f},
|
||||
{0.000000f,0.083257f,0.15778f,0.22845f,0.27908f,0.32934f,0.38061f,0.42817f,0.47475f,0.51865f,0.56131f,0.59998f,0.63948f,0.6818f,0.72306f,0.76916f,0.80688f,0.84174f,0.8973f,0.94077f,0.98473f},
|
||||
{0.000000f,0.058746f,0.12737f,0.2183f,0.28772f,0.33167f,0.37646f,0.41852f,0.45953f,0.49722f,0.53221f,0.56083f,0.58986f,0.61943f,0.64753f,0.6876f,0.72348f,0.80673f,0.89031f,0.92966f,0.9703f},
|
||||
{0.000000f,0.035717f,0.12342f,0.20135f,0.26927f,0.32696f,0.36503f,0.40381f,0.44057f,0.47309f,0.49858f,0.52028f,0.53794f,0.55557f,0.57829f,0.60191f,0.688f,0.76938f,0.84522f,0.91177f,0.94888f},
|
||||
{0.000000f,0.022264f,0.10655f,0.18361f,0.24774f,0.30233f,0.34948f,0.3848f,0.41719f,0.44502f,0.46308f,0.47314f,0.48142f,0.49394f,0.51592f,0.57793f,0.64727f,0.72306f,0.80369f,0.87898f,0.91982f},
|
||||
{0.000000f,0.018075f,0.089694f,0.15698f,0.21753f,0.27257f,0.32174f,0.36002f,0.39065f,0.41451f,0.4238f,0.42773f,0.43804f,0.45143f,0.49424f,0.55557f,0.61961f,0.68173f,0.75196f,0.82659f,0.88048f},
|
||||
{0.000000f,0.011962f,0.070085f,0.12983f,0.1852f,0.2365f,0.28429f,0.32614f,0.35884f,0.38237f,0.38425f,0.39034f,0.40127f,0.43778f,0.48142f,0.53827f,0.59007f,0.63988f,0.69549f,0.76643f,0.83292f},
|
||||
{0.000000f,0.0043772f,0.049741f,0.10103f,0.14876f,0.19392f,0.23686f,0.27743f,0.31539f,0.34452f,0.34932f,0.35669f,0.39034f,0.42773f,0.47315f,0.52061f,0.5611f,0.59999f,0.64182f,0.7028f,0.77494f},
|
||||
{0.000000f,-8.5322e-019f,0.027447f,0.068465f,0.10853f,0.14825f,0.18244f,0.21244f,0.24485f,0.28161f,0.31849f,0.34932f,0.38425f,0.42381f,0.46314f,0.49869f,0.53239f,0.56152f,0.59147f,0.63596f,0.70711f},
|
||||
{0.000000f,0.000000f,0.011636f,0.041753f,0.073199f,0.1017f,0.12603f,0.15351f,0.18976f |