diff --git a/content/AUDIO/AutoCanonFire01_z1.wav b/content/AUDIO/AutoCanonFire01_z1.wav index 2b09e79..102fa66 100644 Binary files a/content/AUDIO/AutoCanonFire01_z1.wav and b/content/AUDIO/AutoCanonFire01_z1.wav differ diff --git a/content/AUDIO/AutoCanonFireExt01.wav b/content/AUDIO/AutoCanonFireExt01.wav index 2b09e79..102fa66 100644 Binary files a/content/AUDIO/AutoCanonFireExt01.wav and b/content/AUDIO/AutoCanonFireExt01.wav differ diff --git a/content/AUDIO/AuxExplosion01LOD2_z0.wav b/content/AUDIO/AuxExplosion01LOD2_z0.wav index d950cb2..bf9bbfa 100644 Binary files a/content/AUDIO/AuxExplosion01LOD2_z0.wav and b/content/AUDIO/AuxExplosion01LOD2_z0.wav differ diff --git a/content/AUDIO/AuxExplosion01LOD2_z1.wav b/content/AUDIO/AuxExplosion01LOD2_z1.wav index 4c14405..2b3f2e2 100644 Binary files a/content/AUDIO/AuxExplosion01LOD2_z1.wav and b/content/AUDIO/AuxExplosion01LOD2_z1.wav differ diff --git a/content/AUDIO/AuxExplosion01_z0.wav b/content/AUDIO/AuxExplosion01_z0.wav index a78ca20..9413351 100644 Binary files a/content/AUDIO/AuxExplosion01_z0.wav and b/content/AUDIO/AuxExplosion01_z0.wav differ diff --git a/content/AUDIO/AuxExplosion01_z1.wav b/content/AUDIO/AuxExplosion01_z1.wav index d950cb2..bf9bbfa 100644 Binary files a/content/AUDIO/AuxExplosion01_z1.wav and b/content/AUDIO/AuxExplosion01_z1.wav differ diff --git a/content/AUDIO/AuxExplosion01_z3.wav b/content/AUDIO/AuxExplosion01_z3.wav index 4c14405..2b3f2e2 100644 Binary files a/content/AUDIO/AuxExplosion01_z3.wav and b/content/AUDIO/AuxExplosion01_z3.wav differ diff --git a/content/AUDIO/BasicBeep01.wav b/content/AUDIO/BasicBeep01.wav index d9db21a..1bffbe8 100644 Binary files a/content/AUDIO/BasicBeep01.wav and b/content/AUDIO/BasicBeep01.wav differ diff --git a/content/AUDIO/BasicClick01.wav b/content/AUDIO/BasicClick01.wav index 5a614d5..35bc25b 100644 Binary files a/content/AUDIO/BasicClick01.wav and b/content/AUDIO/BasicClick01.wav differ diff --git a/content/AUDIO/Collision01_z0.wav b/content/AUDIO/Collision01_z0.wav index 2488177..e9f4b06 100644 Binary files a/content/AUDIO/Collision01_z0.wav and b/content/AUDIO/Collision01_z0.wav differ diff --git a/content/AUDIO/Collision01_z1.wav b/content/AUDIO/Collision01_z1.wav index aecf169..ca115d4 100644 Binary files a/content/AUDIO/Collision01_z1.wav and b/content/AUDIO/Collision01_z1.wav differ diff --git a/content/AUDIO/Collision01_z2.wav b/content/AUDIO/Collision01_z2.wav index 7ebf543..ecbe3a9 100644 Binary files a/content/AUDIO/Collision01_z2.wav and b/content/AUDIO/Collision01_z2.wav differ diff --git a/content/AUDIO/Collision04_z0.wav b/content/AUDIO/Collision04_z0.wav index 1235f9f..64330cc 100644 Binary files a/content/AUDIO/Collision04_z0.wav and b/content/AUDIO/Collision04_z0.wav differ diff --git a/content/AUDIO/Collision04_z1.wav b/content/AUDIO/Collision04_z1.wav index 9c4deed..767dd51 100644 Binary files a/content/AUDIO/Collision04_z1.wav and b/content/AUDIO/Collision04_z1.wav differ diff --git a/content/AUDIO/Collision04_z2.wav b/content/AUDIO/Collision04_z2.wav index dc8c824..319f0b4 100644 Binary files a/content/AUDIO/Collision04_z2.wav and b/content/AUDIO/Collision04_z2.wav differ diff --git a/content/AUDIO/Collision06_z0.wav b/content/AUDIO/Collision06_z0.wav index 98da654..d453c7c 100644 Binary files a/content/AUDIO/Collision06_z0.wav and b/content/AUDIO/Collision06_z0.wav differ diff --git a/content/AUDIO/Collision06_z1.wav b/content/AUDIO/Collision06_z1.wav index dc6e9f7..b3e2c54 100644 Binary files a/content/AUDIO/Collision06_z1.wav and b/content/AUDIO/Collision06_z1.wav differ diff --git a/content/AUDIO/Collision06_z2.wav b/content/AUDIO/Collision06_z2.wav index ac823a4..e164c1c 100644 Binary files a/content/AUDIO/Collision06_z2.wav and b/content/AUDIO/Collision06_z2.wav differ diff --git a/content/AUDIO/Collision09_z0.wav b/content/AUDIO/Collision09_z0.wav index d9e6e36..3671575 100644 Binary files a/content/AUDIO/Collision09_z0.wav and b/content/AUDIO/Collision09_z0.wav differ diff --git a/content/AUDIO/Collision09_z1.wav b/content/AUDIO/Collision09_z1.wav index 9c4deed..82a9e33 100644 Binary files a/content/AUDIO/Collision09_z1.wav and b/content/AUDIO/Collision09_z1.wav differ diff --git a/content/AUDIO/Collision09_z2.wav b/content/AUDIO/Collision09_z2.wav index c4a02bc..d2cf4a3 100644 Binary files a/content/AUDIO/Collision09_z2.wav and b/content/AUDIO/Collision09_z2.wav differ diff --git a/content/AUDIO/Collision10_z0.wav b/content/AUDIO/Collision10_z0.wav index bef5199..7841211 100644 Binary files a/content/AUDIO/Collision10_z0.wav and b/content/AUDIO/Collision10_z0.wav differ diff --git a/content/AUDIO/Collision10_z1.wav b/content/AUDIO/Collision10_z1.wav index 07c184d..f374449 100644 Binary files a/content/AUDIO/Collision10_z1.wav and b/content/AUDIO/Collision10_z1.wav differ diff --git a/content/AUDIO/Collision10_z2.wav b/content/AUDIO/Collision10_z2.wav index 1ee05ca..d236eb6 100644 Binary files a/content/AUDIO/Collision10_z2.wav and b/content/AUDIO/Collision10_z2.wav differ diff --git a/content/AUDIO/Collision11_z0.wav b/content/AUDIO/Collision11_z0.wav index 9274dc2..1d03b5c 100644 Binary files a/content/AUDIO/Collision11_z0.wav and b/content/AUDIO/Collision11_z0.wav differ diff --git a/content/AUDIO/Collision11_z1.wav b/content/AUDIO/Collision11_z1.wav index 645641f..49b60be 100644 Binary files a/content/AUDIO/Collision11_z1.wav and b/content/AUDIO/Collision11_z1.wav differ diff --git a/content/AUDIO/Collision11_z2.wav b/content/AUDIO/Collision11_z2.wav index 592b753..95a7c7d 100644 Binary files a/content/AUDIO/Collision11_z2.wav and b/content/AUDIO/Collision11_z2.wav differ diff --git a/content/AUDIO/CollisionExt01LOD2.wav b/content/AUDIO/CollisionExt01LOD2.wav index aecf169..ca115d4 100644 Binary files a/content/AUDIO/CollisionExt01LOD2.wav and b/content/AUDIO/CollisionExt01LOD2.wav differ diff --git a/content/AUDIO/CollisionExt01_z1.wav b/content/AUDIO/CollisionExt01_z1.wav index fe64f46..4409419 100644 Binary files a/content/AUDIO/CollisionExt01_z1.wav and b/content/AUDIO/CollisionExt01_z1.wav differ diff --git a/content/AUDIO/CollisionExt02LOD2.wav b/content/AUDIO/CollisionExt02LOD2.wav index 1235f9f..64330cc 100644 Binary files a/content/AUDIO/CollisionExt02LOD2.wav and b/content/AUDIO/CollisionExt02LOD2.wav differ diff --git a/content/AUDIO/CollisionExt04LOD2.wav b/content/AUDIO/CollisionExt04LOD2.wav index 98da654..d453c7c 100644 Binary files a/content/AUDIO/CollisionExt04LOD2.wav and b/content/AUDIO/CollisionExt04LOD2.wav differ diff --git a/content/AUDIO/CollisionExt05_z1.wav b/content/AUDIO/CollisionExt05_z1.wav index dc7adb1..afabb67 100644 Binary files a/content/AUDIO/CollisionExt05_z1.wav and b/content/AUDIO/CollisionExt05_z1.wav differ diff --git a/content/AUDIO/CollisionExt07LOD2.wav b/content/AUDIO/CollisionExt07LOD2.wav index c4a02bc..d2cf4a3 100644 Binary files a/content/AUDIO/CollisionExt07LOD2.wav and b/content/AUDIO/CollisionExt07LOD2.wav differ diff --git a/content/AUDIO/CollisionExt08_z1.wav b/content/AUDIO/CollisionExt08_z1.wav index 14ba1fc..c41fbc1 100644 Binary files a/content/AUDIO/CollisionExt08_z1.wav and b/content/AUDIO/CollisionExt08_z1.wav differ diff --git a/content/AUDIO/CoolantDump01_z1.wav b/content/AUDIO/CoolantDump01_z1.wav index 6d70e53..12014ad 100644 Binary files a/content/AUDIO/CoolantDump01_z1.wav and b/content/AUDIO/CoolantDump01_z1.wav differ diff --git a/content/AUDIO/CoolantDump01_z2.wav b/content/AUDIO/CoolantDump01_z2.wav index 6c79b25..e804a49 100644 Binary files a/content/AUDIO/CoolantDump01_z2.wav and b/content/AUDIO/CoolantDump01_z2.wav differ diff --git a/content/AUDIO/CoolantDump02_z2.wav b/content/AUDIO/CoolantDump02_z2.wav index 6c79b25..e804a49 100644 Binary files a/content/AUDIO/CoolantDump02_z2.wav and b/content/AUDIO/CoolantDump02_z2.wav differ diff --git a/content/AUDIO/CoolantDump03_z0.wav b/content/AUDIO/CoolantDump03_z0.wav index 7208cdd..36d6960 100644 Binary files a/content/AUDIO/CoolantDump03_z0.wav and b/content/AUDIO/CoolantDump03_z0.wav differ diff --git a/content/AUDIO/CoolantDump03_z1.wav b/content/AUDIO/CoolantDump03_z1.wav index d5d99f0..206af4e 100644 Binary files a/content/AUDIO/CoolantDump03_z1.wav and b/content/AUDIO/CoolantDump03_z1.wav differ diff --git a/content/AUDIO/CoolantDump04_z0.wav b/content/AUDIO/CoolantDump04_z0.wav index 7208cdd..36d6960 100644 Binary files a/content/AUDIO/CoolantDump04_z0.wav and b/content/AUDIO/CoolantDump04_z0.wav differ diff --git a/content/AUDIO/CoolantDump04_z1.wav b/content/AUDIO/CoolantDump04_z1.wav index d5d99f0..206af4e 100644 Binary files a/content/AUDIO/CoolantDump04_z1.wav and b/content/AUDIO/CoolantDump04_z1.wav differ diff --git a/content/AUDIO/CoolantDump05_z1.wav b/content/AUDIO/CoolantDump05_z1.wav index 200b7cf..6ece528 100644 Binary files a/content/AUDIO/CoolantDump05_z1.wav and b/content/AUDIO/CoolantDump05_z1.wav differ diff --git a/content/AUDIO/CoolantDump05_z2.wav b/content/AUDIO/CoolantDump05_z2.wav index 03cf508..a5a7380 100644 Binary files a/content/AUDIO/CoolantDump05_z2.wav and b/content/AUDIO/CoolantDump05_z2.wav differ diff --git a/content/AUDIO/CoolantLeak01.wav b/content/AUDIO/CoolantLeak01.wav index 794ead5..c95d355 100644 Binary files a/content/AUDIO/CoolantLeak01.wav and b/content/AUDIO/CoolantLeak01.wav differ diff --git a/content/AUDIO/CoolantPresDcr01_z0.wav b/content/AUDIO/CoolantPresDcr01_z0.wav index 885f17e..445f535 100644 Binary files a/content/AUDIO/CoolantPresDcr01_z0.wav and b/content/AUDIO/CoolantPresDcr01_z0.wav differ diff --git a/content/AUDIO/CoolantPresDcr02_z0.wav b/content/AUDIO/CoolantPresDcr02_z0.wav index 885f17e..445f535 100644 Binary files a/content/AUDIO/CoolantPresDcr02_z0.wav and b/content/AUDIO/CoolantPresDcr02_z0.wav differ diff --git a/content/AUDIO/CoolantPresDcr03_z0.wav b/content/AUDIO/CoolantPresDcr03_z0.wav index d528a6d..6d991f0 100644 Binary files a/content/AUDIO/CoolantPresDcr03_z0.wav and b/content/AUDIO/CoolantPresDcr03_z0.wav differ diff --git a/content/AUDIO/CoolantPresDcr03_z2.wav b/content/AUDIO/CoolantPresDcr03_z2.wav index 00bf9b7..aac1bcb 100644 Binary files a/content/AUDIO/CoolantPresDcr03_z2.wav and b/content/AUDIO/CoolantPresDcr03_z2.wav differ diff --git a/content/AUDIO/CoolantPresInc01_z0.wav b/content/AUDIO/CoolantPresInc01_z0.wav index 474891c..644e36a 100644 Binary files a/content/AUDIO/CoolantPresInc01_z0.wav and b/content/AUDIO/CoolantPresInc01_z0.wav differ diff --git a/content/AUDIO/CoolantPresInc02_z0.wav b/content/AUDIO/CoolantPresInc02_z0.wav index 474891c..644e36a 100644 Binary files a/content/AUDIO/CoolantPresInc02_z0.wav and b/content/AUDIO/CoolantPresInc02_z0.wav differ diff --git a/content/AUDIO/CoolantPresInc03_z0.wav b/content/AUDIO/CoolantPresInc03_z0.wav index 762d997..87d4f98 100644 Binary files a/content/AUDIO/CoolantPresInc03_z0.wav and b/content/AUDIO/CoolantPresInc03_z0.wav differ diff --git a/content/AUDIO/CoolantPresInc03_z2.wav b/content/AUDIO/CoolantPresInc03_z2.wav index 00bf9b7..aac1bcb 100644 Binary files a/content/AUDIO/CoolantPresInc03_z2.wav and b/content/AUDIO/CoolantPresInc03_z2.wav differ diff --git a/content/AUDIO/Damage01.wav b/content/AUDIO/Damage01.wav index 5571245..655c2ec 100644 Binary files a/content/AUDIO/Damage01.wav and b/content/AUDIO/Damage01.wav differ diff --git a/content/AUDIO/Damage02.wav b/content/AUDIO/Damage02.wav index ea03489..06418d4 100644 Binary files a/content/AUDIO/Damage02.wav and b/content/AUDIO/Damage02.wav differ diff --git a/content/AUDIO/Damage03.wav b/content/AUDIO/Damage03.wav index 7f02191..b458ee9 100644 Binary files a/content/AUDIO/Damage03.wav and b/content/AUDIO/Damage03.wav differ diff --git a/content/AUDIO/Death01_z0.wav b/content/AUDIO/Death01_z0.wav index 97ac9d2..3123ae1 100644 Binary files a/content/AUDIO/Death01_z0.wav and b/content/AUDIO/Death01_z0.wav differ diff --git a/content/AUDIO/Death01_z1.wav b/content/AUDIO/Death01_z1.wav index cc08b86..3ad7c22 100644 Binary files a/content/AUDIO/Death01_z1.wav and b/content/AUDIO/Death01_z1.wav differ diff --git a/content/AUDIO/Death01_z11.wav b/content/AUDIO/Death01_z11.wav index 84a2f3c..144b952 100644 Binary files a/content/AUDIO/Death01_z11.wav and b/content/AUDIO/Death01_z11.wav differ diff --git a/content/AUDIO/Death01_z2.wav b/content/AUDIO/Death01_z2.wav index 55ab96a..a722a2d 100644 Binary files a/content/AUDIO/Death01_z2.wav and b/content/AUDIO/Death01_z2.wav differ diff --git a/content/AUDIO/Death01_z3.wav b/content/AUDIO/Death01_z3.wav index 338c8d9..5889471 100644 Binary files a/content/AUDIO/Death01_z3.wav and b/content/AUDIO/Death01_z3.wav differ diff --git a/content/AUDIO/Death01_z4.wav b/content/AUDIO/Death01_z4.wav index f4147f2..2e3451b 100644 Binary files a/content/AUDIO/Death01_z4.wav and b/content/AUDIO/Death01_z4.wav differ diff --git a/content/AUDIO/Death01_z5.wav b/content/AUDIO/Death01_z5.wav index 8a9617c..69959fd 100644 Binary files a/content/AUDIO/Death01_z5.wav and b/content/AUDIO/Death01_z5.wav differ diff --git a/content/AUDIO/Death01_z6.wav b/content/AUDIO/Death01_z6.wav index a36629f..17a00ea 100644 Binary files a/content/AUDIO/Death01_z6.wav and b/content/AUDIO/Death01_z6.wav differ diff --git a/content/AUDIO/Death01_z7.wav b/content/AUDIO/Death01_z7.wav index ef047f0..ab97c8c 100644 Binary files a/content/AUDIO/Death01_z7.wav and b/content/AUDIO/Death01_z7.wav differ diff --git a/content/AUDIO/Death01_z9.wav b/content/AUDIO/Death01_z9.wav index 22991e8..7283f9f 100644 Binary files a/content/AUDIO/Death01_z9.wav and b/content/AUDIO/Death01_z9.wav differ diff --git a/content/AUDIO/DuckServo01.wav b/content/AUDIO/DuckServo01.wav index 9c303f5..0b1c4c3 100644 Binary files a/content/AUDIO/DuckServo01.wav and b/content/AUDIO/DuckServo01.wav differ diff --git a/content/AUDIO/EjectEnd01.wav b/content/AUDIO/EjectEnd01.wav index f1d7df0..21b187e 100644 Binary files a/content/AUDIO/EjectEnd01.wav and b/content/AUDIO/EjectEnd01.wav differ diff --git a/content/AUDIO/EjectStart01_z0.wav b/content/AUDIO/EjectStart01_z0.wav index 211af46..b7ca907 100644 Binary files a/content/AUDIO/EjectStart01_z0.wav and b/content/AUDIO/EjectStart01_z0.wav differ diff --git a/content/AUDIO/EjectStart01_z1.wav b/content/AUDIO/EjectStart01_z1.wav index 6adfc1a..1eec777 100644 Binary files a/content/AUDIO/EjectStart01_z1.wav and b/content/AUDIO/EjectStart01_z1.wav differ diff --git a/content/AUDIO/EngButton01_z0.wav b/content/AUDIO/EngButton01_z0.wav index a96af6b..45bf88c 100644 Binary files a/content/AUDIO/EngButton01_z0.wav and b/content/AUDIO/EngButton01_z0.wav differ diff --git a/content/AUDIO/EngButton01_z1.wav b/content/AUDIO/EngButton01_z1.wav index b4e6d70..8a0cbf5 100644 Binary files a/content/AUDIO/EngButton01_z1.wav and b/content/AUDIO/EngButton01_z1.wav differ diff --git a/content/AUDIO/EngineAccel03_z0.wav b/content/AUDIO/EngineAccel03_z0.wav index 7f60bc2..1c77960 100644 Binary files a/content/AUDIO/EngineAccel03_z0.wav and b/content/AUDIO/EngineAccel03_z0.wav differ diff --git a/content/AUDIO/EngineAccel03_z1.wav b/content/AUDIO/EngineAccel03_z1.wav index 7f60bc2..1c77960 100644 Binary files a/content/AUDIO/EngineAccel03_z1.wav and b/content/AUDIO/EngineAccel03_z1.wav differ diff --git a/content/AUDIO/EngineAccel04_z0.wav b/content/AUDIO/EngineAccel04_z0.wav index 33d304a..8f186a8 100644 Binary files a/content/AUDIO/EngineAccel04_z0.wav and b/content/AUDIO/EngineAccel04_z0.wav differ diff --git a/content/AUDIO/EngineAccel04_z1.wav b/content/AUDIO/EngineAccel04_z1.wav index 33d304a..8f186a8 100644 Binary files a/content/AUDIO/EngineAccel04_z1.wav and b/content/AUDIO/EngineAccel04_z1.wav differ diff --git a/content/AUDIO/EngineAccel06_z0.wav b/content/AUDIO/EngineAccel06_z0.wav index 02f9d9b..6e013a0 100644 Binary files a/content/AUDIO/EngineAccel06_z0.wav and b/content/AUDIO/EngineAccel06_z0.wav differ diff --git a/content/AUDIO/EngineAccel06_z1.wav b/content/AUDIO/EngineAccel06_z1.wav index cc18292..da05661 100644 Binary files a/content/AUDIO/EngineAccel06_z1.wav and b/content/AUDIO/EngineAccel06_z1.wav differ diff --git a/content/AUDIO/EngineAccel06_z2.wav b/content/AUDIO/EngineAccel06_z2.wav index 02f9d9b..6e013a0 100644 Binary files a/content/AUDIO/EngineAccel06_z2.wav and b/content/AUDIO/EngineAccel06_z2.wav differ diff --git a/content/AUDIO/EngineAccel07_z0.wav b/content/AUDIO/EngineAccel07_z0.wav index 0d3abd5..ce47875 100644 Binary files a/content/AUDIO/EngineAccel07_z0.wav and b/content/AUDIO/EngineAccel07_z0.wav differ diff --git a/content/AUDIO/EngineAccel07_z1.wav b/content/AUDIO/EngineAccel07_z1.wav index ad170c8..afa481e 100644 Binary files a/content/AUDIO/EngineAccel07_z1.wav and b/content/AUDIO/EngineAccel07_z1.wav differ diff --git a/content/AUDIO/EngineAccel07_z2.wav b/content/AUDIO/EngineAccel07_z2.wav index 0d3abd5..ce47875 100644 Binary files a/content/AUDIO/EngineAccel07_z2.wav and b/content/AUDIO/EngineAccel07_z2.wav differ diff --git a/content/AUDIO/EngineShiftFwd01_z0.wav b/content/AUDIO/EngineShiftFwd01_z0.wav index 575d8c2..af201fd 100644 Binary files a/content/AUDIO/EngineShiftFwd01_z0.wav and b/content/AUDIO/EngineShiftFwd01_z0.wav differ diff --git a/content/AUDIO/EngineShiftFwd01_z1.wav b/content/AUDIO/EngineShiftFwd01_z1.wav index caa8bab..b571dd7 100644 Binary files a/content/AUDIO/EngineShiftFwd01_z1.wav and b/content/AUDIO/EngineShiftFwd01_z1.wav differ diff --git a/content/AUDIO/EngineShiftRev01_z0.wav b/content/AUDIO/EngineShiftRev01_z0.wav index 931f1a8..b46b503 100644 Binary files a/content/AUDIO/EngineShiftRev01_z0.wav and b/content/AUDIO/EngineShiftRev01_z0.wav differ diff --git a/content/AUDIO/EngineShiftRev01_z1.wav b/content/AUDIO/EngineShiftRev01_z1.wav index ac56cfa..44994b5 100644 Binary files a/content/AUDIO/EngineShiftRev01_z1.wav and b/content/AUDIO/EngineShiftRev01_z1.wav differ diff --git a/content/AUDIO/FootFallExt01_z0.wav b/content/AUDIO/FootFallExt01_z0.wav index 306739e..36896c3 100644 Binary files a/content/AUDIO/FootFallExt01_z0.wav and b/content/AUDIO/FootFallExt01_z0.wav differ diff --git a/content/AUDIO/FootFallExt02.wav b/content/AUDIO/FootFallExt02.wav index 306739e..36896c3 100644 Binary files a/content/AUDIO/FootFallExt02.wav and b/content/AUDIO/FootFallExt02.wav differ diff --git a/content/AUDIO/FootFallInt01.wav b/content/AUDIO/FootFallInt01.wav index 1c1d825..47f38f3 100644 Binary files a/content/AUDIO/FootFallInt01.wav and b/content/AUDIO/FootFallInt01.wav differ diff --git a/content/AUDIO/IncomingAlarm01.wav b/content/AUDIO/IncomingAlarm01.wav index 5c0c188..dbbcb55 100644 Binary files a/content/AUDIO/IncomingAlarm01.wav and b/content/AUDIO/IncomingAlarm01.wav differ diff --git a/content/AUDIO/LaserACharge03.wav b/content/AUDIO/LaserACharge03.wav index 309a84f..8baa1dc 100644 Binary files a/content/AUDIO/LaserACharge03.wav and b/content/AUDIO/LaserACharge03.wav differ diff --git a/content/AUDIO/LaserACharge04.wav b/content/AUDIO/LaserACharge04.wav index 309a84f..d412e7b 100644 Binary files a/content/AUDIO/LaserACharge04.wav and b/content/AUDIO/LaserACharge04.wav differ diff --git a/content/AUDIO/LaserAFire01_z1.wav b/content/AUDIO/LaserAFire01_z1.wav index 526ed72..a504c98 100644 Binary files a/content/AUDIO/LaserAFire01_z1.wav and b/content/AUDIO/LaserAFire01_z1.wav differ diff --git a/content/AUDIO/LaserAFire02_z0.wav b/content/AUDIO/LaserAFire02_z0.wav index 727d6cd..51b9a8d 100644 Binary files a/content/AUDIO/LaserAFire02_z0.wav and b/content/AUDIO/LaserAFire02_z0.wav differ diff --git a/content/AUDIO/LaserAFire02_z1.wav b/content/AUDIO/LaserAFire02_z1.wav index f6330ca..a0ac8c4 100644 Binary files a/content/AUDIO/LaserAFire02_z1.wav and b/content/AUDIO/LaserAFire02_z1.wav differ diff --git a/content/AUDIO/LaserAFire03_z0.wav b/content/AUDIO/LaserAFire03_z0.wav index 1fb8d66..4dfadca 100644 Binary files a/content/AUDIO/LaserAFire03_z0.wav and b/content/AUDIO/LaserAFire03_z0.wav differ diff --git a/content/AUDIO/LaserAFire03_z1.wav b/content/AUDIO/LaserAFire03_z1.wav index ddf3be0..53dbe4b 100644 Binary files a/content/AUDIO/LaserAFire03_z1.wav and b/content/AUDIO/LaserAFire03_z1.wav differ diff --git a/content/AUDIO/LaserAMisfire01.wav b/content/AUDIO/LaserAMisfire01.wav index d73a8f8..596d5d5 100644 Binary files a/content/AUDIO/LaserAMisfire01.wav and b/content/AUDIO/LaserAMisfire01.wav differ diff --git a/content/AUDIO/LaserARelease01.wav b/content/AUDIO/LaserARelease01.wav index 6578f30..f5d15d5 100644 Binary files a/content/AUDIO/LaserARelease01.wav and b/content/AUDIO/LaserARelease01.wav differ diff --git a/content/AUDIO/LaserARelease02.wav b/content/AUDIO/LaserARelease02.wav index 7b48a63..1e33612 100644 Binary files a/content/AUDIO/LaserARelease02.wav and b/content/AUDIO/LaserARelease02.wav differ diff --git a/content/AUDIO/LaserARelease03.wav b/content/AUDIO/LaserARelease03.wav index 92ee2d2..35e67dc 100644 Binary files a/content/AUDIO/LaserARelease03.wav and b/content/AUDIO/LaserARelease03.wav differ diff --git a/content/AUDIO/LaserASustain01_z0.wav b/content/AUDIO/LaserASustain01_z0.wav index f4c562d..9e2cda5 100644 Binary files a/content/AUDIO/LaserASustain01_z0.wav and b/content/AUDIO/LaserASustain01_z0.wav differ diff --git a/content/AUDIO/LaserASustain01_z2.wav b/content/AUDIO/LaserASustain01_z2.wav index a2b4f89..d951815 100644 Binary files a/content/AUDIO/LaserASustain01_z2.wav and b/content/AUDIO/LaserASustain01_z2.wav differ diff --git a/content/AUDIO/LaserASustain02_z0.wav b/content/AUDIO/LaserASustain02_z0.wav index 3df37e3..ccf7cfa 100644 Binary files a/content/AUDIO/LaserASustain02_z0.wav and b/content/AUDIO/LaserASustain02_z0.wav differ diff --git a/content/AUDIO/LaserASustain02_z2.wav b/content/AUDIO/LaserASustain02_z2.wav index a2b4f89..f4193f1 100644 Binary files a/content/AUDIO/LaserASustain02_z2.wav and b/content/AUDIO/LaserASustain02_z2.wav differ diff --git a/content/AUDIO/LaserASustain03_z0.wav b/content/AUDIO/LaserASustain03_z0.wav index 3df37e3..e65bc87 100644 Binary files a/content/AUDIO/LaserASustain03_z0.wav and b/content/AUDIO/LaserASustain03_z0.wav differ diff --git a/content/AUDIO/LaserASustain03_z2.wav b/content/AUDIO/LaserASustain03_z2.wav index a2b4f89..f4193f1 100644 Binary files a/content/AUDIO/LaserASustain03_z2.wav and b/content/AUDIO/LaserASustain03_z2.wav differ diff --git a/content/AUDIO/LaserBFire01_z0.wav b/content/AUDIO/LaserBFire01_z0.wav index 326d4a8..9bdd8b2 100644 Binary files a/content/AUDIO/LaserBFire01_z0.wav and b/content/AUDIO/LaserBFire01_z0.wav differ diff --git a/content/AUDIO/LaserBFire01_z2.wav b/content/AUDIO/LaserBFire01_z2.wav index f68cdf2..5f3a841 100644 Binary files a/content/AUDIO/LaserBFire01_z2.wav and b/content/AUDIO/LaserBFire01_z2.wav differ diff --git a/content/AUDIO/LaserBFire02_z0.wav b/content/AUDIO/LaserBFire02_z0.wav index 8b26e7d..369c050 100644 Binary files a/content/AUDIO/LaserBFire02_z0.wav and b/content/AUDIO/LaserBFire02_z0.wav differ diff --git a/content/AUDIO/LaserBFire02_z2.wav b/content/AUDIO/LaserBFire02_z2.wav index 392773e..5c5ed21 100644 Binary files a/content/AUDIO/LaserBFire02_z2.wav and b/content/AUDIO/LaserBFire02_z2.wav differ diff --git a/content/AUDIO/LaserBFire03_z0.wav b/content/AUDIO/LaserBFire03_z0.wav index 962b292..37b43c6 100644 Binary files a/content/AUDIO/LaserBFire03_z0.wav and b/content/AUDIO/LaserBFire03_z0.wav differ diff --git a/content/AUDIO/LaserBFire03_z2.wav b/content/AUDIO/LaserBFire03_z2.wav index 88681b5..2132a45 100644 Binary files a/content/AUDIO/LaserBFire03_z2.wav and b/content/AUDIO/LaserBFire03_z2.wav differ diff --git a/content/AUDIO/LaserBSustain01_z1.wav b/content/AUDIO/LaserBSustain01_z1.wav index 0cb504f..f1dc7b7 100644 Binary files a/content/AUDIO/LaserBSustain01_z1.wav and b/content/AUDIO/LaserBSustain01_z1.wav differ diff --git a/content/AUDIO/LaserBSustain02_z1.wav b/content/AUDIO/LaserBSustain02_z1.wav index 0cb504f..51b216c 100644 Binary files a/content/AUDIO/LaserBSustain02_z1.wav and b/content/AUDIO/LaserBSustain02_z1.wav differ diff --git a/content/AUDIO/LaserBSustain03_z1.wav b/content/AUDIO/LaserBSustain03_z1.wav index 0cb504f..89f51da 100644 Binary files a/content/AUDIO/LaserBSustain03_z1.wav and b/content/AUDIO/LaserBSustain03_z1.wav differ diff --git a/content/AUDIO/LaserCFire01_z0.wav b/content/AUDIO/LaserCFire01_z0.wav index cf120a5..03c9d88 100644 Binary files a/content/AUDIO/LaserCFire01_z0.wav and b/content/AUDIO/LaserCFire01_z0.wav differ diff --git a/content/AUDIO/LaserCFire02_z0.wav b/content/AUDIO/LaserCFire02_z0.wav index cf120a5..03c9d88 100644 Binary files a/content/AUDIO/LaserCFire02_z0.wav and b/content/AUDIO/LaserCFire02_z0.wav differ diff --git a/content/AUDIO/LaserCFire03_z0.wav b/content/AUDIO/LaserCFire03_z0.wav index 300aac6..8ae142b 100644 Binary files a/content/AUDIO/LaserCFire03_z0.wav and b/content/AUDIO/LaserCFire03_z0.wav differ diff --git a/content/AUDIO/LaserCSustain03_z1.wav b/content/AUDIO/LaserCSustain03_z1.wav index edfda3b..a03108c 100644 Binary files a/content/AUDIO/LaserCSustain03_z1.wav and b/content/AUDIO/LaserCSustain03_z1.wav differ diff --git a/content/AUDIO/LaserExpInt01_z0.wav b/content/AUDIO/LaserExpInt01_z0.wav index c027bb1..77ea3f5 100644 Binary files a/content/AUDIO/LaserExpInt01_z0.wav and b/content/AUDIO/LaserExpInt01_z0.wav differ diff --git a/content/AUDIO/LaserExpInt01_z1.wav b/content/AUDIO/LaserExpInt01_z1.wav index e482ad4..eee00e1 100644 Binary files a/content/AUDIO/LaserExpInt01_z1.wav and b/content/AUDIO/LaserExpInt01_z1.wav differ diff --git a/content/AUDIO/LaserExpInt01_z2.wav b/content/AUDIO/LaserExpInt01_z2.wav index ee59bf7..867e19c 100644 Binary files a/content/AUDIO/LaserExpInt01_z2.wav and b/content/AUDIO/LaserExpInt01_z2.wav differ diff --git a/content/AUDIO/LaserExpInt02_z1.wav b/content/AUDIO/LaserExpInt02_z1.wav index e3d768e..5a244b0 100644 Binary files a/content/AUDIO/LaserExpInt02_z1.wav and b/content/AUDIO/LaserExpInt02_z1.wav differ diff --git a/content/AUDIO/LaserExpInt02_z2.wav b/content/AUDIO/LaserExpInt02_z2.wav index ee59bf7..867e19c 100644 Binary files a/content/AUDIO/LaserExpInt02_z2.wav and b/content/AUDIO/LaserExpInt02_z2.wav differ diff --git a/content/AUDIO/LaserExpInt04_z0.wav b/content/AUDIO/LaserExpInt04_z0.wav index 0d17a91..2a8ba0b 100644 Binary files a/content/AUDIO/LaserExpInt04_z0.wav and b/content/AUDIO/LaserExpInt04_z0.wav differ diff --git a/content/AUDIO/LaserExpInt04_z1.wav b/content/AUDIO/LaserExpInt04_z1.wav index a7febd1..f389650 100644 Binary files a/content/AUDIO/LaserExpInt04_z1.wav and b/content/AUDIO/LaserExpInt04_z1.wav differ diff --git a/content/AUDIO/LaserExpInt04_z2.wav b/content/AUDIO/LaserExpInt04_z2.wav index ee59bf7..867e19c 100644 Binary files a/content/AUDIO/LaserExpInt04_z2.wav and b/content/AUDIO/LaserExpInt04_z2.wav differ diff --git a/content/AUDIO/LaserExpInt05_z0.wav b/content/AUDIO/LaserExpInt05_z0.wav index 74ff628..a9852c4 100644 Binary files a/content/AUDIO/LaserExpInt05_z0.wav and b/content/AUDIO/LaserExpInt05_z0.wav differ diff --git a/content/AUDIO/LaserExpInt05_z2.wav b/content/AUDIO/LaserExpInt05_z2.wav index ee59bf7..867e19c 100644 Binary files a/content/AUDIO/LaserExpInt05_z2.wav and b/content/AUDIO/LaserExpInt05_z2.wav differ diff --git a/content/AUDIO/LaserExpInt06_z1.wav b/content/AUDIO/LaserExpInt06_z1.wav index 4a49140..423c6dd 100644 Binary files a/content/AUDIO/LaserExpInt06_z1.wav and b/content/AUDIO/LaserExpInt06_z1.wav differ diff --git a/content/AUDIO/LaserExpInt06_z2.wav b/content/AUDIO/LaserExpInt06_z2.wav index ee59bf7..867e19c 100644 Binary files a/content/AUDIO/LaserExpInt06_z2.wav and b/content/AUDIO/LaserExpInt06_z2.wav differ diff --git a/content/AUDIO/LaserLoaded01_z0.wav b/content/AUDIO/LaserLoaded01_z0.wav index 329ab22..a9559b8 100644 Binary files a/content/AUDIO/LaserLoaded01_z0.wav and b/content/AUDIO/LaserLoaded01_z0.wav differ diff --git a/content/AUDIO/MchGunExpCraft01_z1.wav b/content/AUDIO/MchGunExpCraft01_z1.wav index f83ba2d..b048334 100644 Binary files a/content/AUDIO/MchGunExpCraft01_z1.wav and b/content/AUDIO/MchGunExpCraft01_z1.wav differ diff --git a/content/AUDIO/MchGunExpCraft02_z1.wav b/content/AUDIO/MchGunExpCraft02_z1.wav index 48be2ee..c46f4ff 100644 Binary files a/content/AUDIO/MchGunExpCraft02_z1.wav and b/content/AUDIO/MchGunExpCraft02_z1.wav differ diff --git a/content/AUDIO/MchGunExpCraft03_z1.wav b/content/AUDIO/MchGunExpCraft03_z1.wav index f83ba2d..5a471ad 100644 Binary files a/content/AUDIO/MchGunExpCraft03_z1.wav and b/content/AUDIO/MchGunExpCraft03_z1.wav differ diff --git a/content/AUDIO/MchGunExpCraft04_z1.wav b/content/AUDIO/MchGunExpCraft04_z1.wav index cf555c0..d328916 100644 Binary files a/content/AUDIO/MchGunExpCraft04_z1.wav and b/content/AUDIO/MchGunExpCraft04_z1.wav differ diff --git a/content/AUDIO/MechExplosion01_z0.wav b/content/AUDIO/MechExplosion01_z0.wav index 97ac9d2..3123ae1 100644 Binary files a/content/AUDIO/MechExplosion01_z0.wav and b/content/AUDIO/MechExplosion01_z0.wav differ diff --git a/content/AUDIO/MechExplosion01_z1.wav b/content/AUDIO/MechExplosion01_z1.wav index cc08b86..3ad7c22 100644 Binary files a/content/AUDIO/MechExplosion01_z1.wav and b/content/AUDIO/MechExplosion01_z1.wav differ diff --git a/content/AUDIO/MechExplosion01_z11.wav b/content/AUDIO/MechExplosion01_z11.wav index 84a2f3c..144b952 100644 Binary files a/content/AUDIO/MechExplosion01_z11.wav and b/content/AUDIO/MechExplosion01_z11.wav differ diff --git a/content/AUDIO/MechExplosion01_z2.wav b/content/AUDIO/MechExplosion01_z2.wav index 55ab96a..a722a2d 100644 Binary files a/content/AUDIO/MechExplosion01_z2.wav and b/content/AUDIO/MechExplosion01_z2.wav differ diff --git a/content/AUDIO/MechExplosion01_z3.wav b/content/AUDIO/MechExplosion01_z3.wav index 338c8d9..5889471 100644 Binary files a/content/AUDIO/MechExplosion01_z3.wav and b/content/AUDIO/MechExplosion01_z3.wav differ diff --git a/content/AUDIO/MechExplosion01_z4.wav b/content/AUDIO/MechExplosion01_z4.wav index f4147f2..2e3451b 100644 Binary files a/content/AUDIO/MechExplosion01_z4.wav and b/content/AUDIO/MechExplosion01_z4.wav differ diff --git a/content/AUDIO/MechExplosion01_z5.wav b/content/AUDIO/MechExplosion01_z5.wav index 8a9617c..69959fd 100644 Binary files a/content/AUDIO/MechExplosion01_z5.wav and b/content/AUDIO/MechExplosion01_z5.wav differ diff --git a/content/AUDIO/MechExplosion01_z6.wav b/content/AUDIO/MechExplosion01_z6.wav index a36629f..17a00ea 100644 Binary files a/content/AUDIO/MechExplosion01_z6.wav and b/content/AUDIO/MechExplosion01_z6.wav differ diff --git a/content/AUDIO/MechExplosion01_z7.wav b/content/AUDIO/MechExplosion01_z7.wav index ef047f0..ab97c8c 100644 Binary files a/content/AUDIO/MechExplosion01_z7.wav and b/content/AUDIO/MechExplosion01_z7.wav differ diff --git a/content/AUDIO/MechExplosion01_z9.wav b/content/AUDIO/MechExplosion01_z9.wav index 22991e8..7283f9f 100644 Binary files a/content/AUDIO/MechExplosion01_z9.wav and b/content/AUDIO/MechExplosion01_z9.wav differ diff --git a/content/AUDIO/MissileLaunch01_z1.wav b/content/AUDIO/MissileLaunch01_z1.wav index 539508c..3fea076 100644 Binary files a/content/AUDIO/MissileLaunch01_z1.wav and b/content/AUDIO/MissileLaunch01_z1.wav differ diff --git a/content/AUDIO/MissileLaunch01_z2.wav b/content/AUDIO/MissileLaunch01_z2.wav index 8c5b785..0788546 100644 Binary files a/content/AUDIO/MissileLaunch01_z2.wav and b/content/AUDIO/MissileLaunch01_z2.wav differ diff --git a/content/AUDIO/MyomerServo01.wav b/content/AUDIO/MyomerServo01.wav index 39b063a..a986a0b 100644 Binary files a/content/AUDIO/MyomerServo01.wav and b/content/AUDIO/MyomerServo01.wav differ diff --git a/content/AUDIO/PPCExpInt01_z0.wav b/content/AUDIO/PPCExpInt01_z0.wav index c027bb1..77ea3f5 100644 Binary files a/content/AUDIO/PPCExpInt01_z0.wav and b/content/AUDIO/PPCExpInt01_z0.wav differ diff --git a/content/AUDIO/PPCExpInt02_z0.wav b/content/AUDIO/PPCExpInt02_z0.wav index ee0e0af..6f7c959 100644 Binary files a/content/AUDIO/PPCExpInt02_z0.wav and b/content/AUDIO/PPCExpInt02_z0.wav differ diff --git a/content/AUDIO/SmallFireLoop01.wav b/content/AUDIO/SmallFireLoop01.wav index 682b608..16fcdf2 100644 Binary files a/content/AUDIO/SmallFireLoop01.wav and b/content/AUDIO/SmallFireLoop01.wav differ diff --git a/content/AUDIO/TorsoStop01_z0.wav b/content/AUDIO/TorsoStop01_z0.wav index 3a0fb44..27f808d 100644 Binary files a/content/AUDIO/TorsoStop01_z0.wav and b/content/AUDIO/TorsoStop01_z0.wav differ diff --git a/content/AUDIO/TorsoTwistStop01_z0.wav b/content/AUDIO/TorsoTwistStop01_z0.wav index 3a0fb44..9a1eca0 100644 Binary files a/content/AUDIO/TorsoTwistStop01_z0.wav and b/content/AUDIO/TorsoTwistStop01_z0.wav differ diff --git a/content/AUDIO/Translocate01_z0.wav b/content/AUDIO/Translocate01_z0.wav index 4decfb6..a060e77 100644 Binary files a/content/AUDIO/Translocate01_z0.wav and b/content/AUDIO/Translocate01_z0.wav differ diff --git a/content/AUDIO/Translocate01_z1.wav b/content/AUDIO/Translocate01_z1.wav index 4decfb6..a060e77 100644 Binary files a/content/AUDIO/Translocate01_z1.wav and b/content/AUDIO/Translocate01_z1.wav differ diff --git a/content/AUDIO/ViewSwitch01.wav b/content/AUDIO/ViewSwitch01.wav index 8b10bc5..8f1d672 100644 Binary files a/content/AUDIO/ViewSwitch01.wav and b/content/AUDIO/ViewSwitch01.wav differ diff --git a/content/AUDIO/Warnings01_z2.wav b/content/AUDIO/Warnings01_z2.wav index 0c86947..ce687b2 100644 Binary files a/content/AUDIO/Warnings01_z2.wav and b/content/AUDIO/Warnings01_z2.wav differ diff --git a/content/AUDIO/Warnings01_z4.wav b/content/AUDIO/Warnings01_z4.wav index 5cbaa1b..adb3340 100644 Binary files a/content/AUDIO/Warnings01_z4.wav and b/content/AUDIO/Warnings01_z4.wav differ diff --git a/content/AUDIO/Warnings01_z6.wav b/content/AUDIO/Warnings01_z6.wav index e05b61b..435c4f7 100644 Binary files a/content/AUDIO/Warnings01_z6.wav and b/content/AUDIO/Warnings01_z6.wav differ diff --git a/tools/sf2extract.py b/tools/sf2extract.py index 5604db8..fcd9bb2 100644 --- a/tools/sf2extract.py +++ b/tools/sf2extract.py @@ -42,6 +42,7 @@ MAX_ZONES = 25 # PRESETINFO samples[] capacity (AllExplosion = 25 la G_KEYRANGE, G_PAN, G_RELEASE, G_INST, G_KEYRANGE2 = 43, 17, 38, 41, 43 G_ATTEN, G_COARSE, G_FINE, G_SAMPLEID, G_MODES, G_PITCH, G_ROOT = 48, 51, 52, 53, 54, 55, 58 +G_FILTER_FC, G_FILTER_Q = 8, 9 SIGNED_GENS = {G_COARSE, G_FINE, G_RELEASE} @@ -138,16 +139,71 @@ def zone_fields(bank, g): release = min(8.0, 2.0 ** (rel_tc / 1200.0)) if rel_tc is not None else 0.0 pan = g.get(G_PAN, 64) chan = "CHANNEL_LEFT" if pan <= 42 else ("CHANNEL_RIGHT" if pan >= 85 else "CHANNEL_CENTER") + # (AUDIO_FIDELITY F14) the authored static resonant low-pass the EMU8000 + # applied in hardware: initialFilterFc(8) / initialFilterQ(9), SBK 0..127 + # scale. Absent fc = filter fully open. + filter_fc = g.get(G_FILTER_FC, 127) + filter_q = g.get(G_FILTER_Q, 0) return dict(pcm=pcm, rate=rate, keylo=keylo, keyhi=keyhi, looping=looping, lstart=lstart, lend=lend, gain=gain, release=release, chan=chan, - sid=g[G_SAMPLEID], root_cents=root_cents, tune=tune) + sid=g[G_SAMPLEID], root_cents=root_cents, tune=tune, + fc=filter_fc, q=filter_q) -def write_wav(fname, pcm, rate, gain): - if gain < 0.999: # bake layer-balance attenuation +def bake_lowpass(pcm, rate, fc127, q127): + """(AUDIO_FIDELITY F14) bake the zone's authored static resonant low-pass + into the PCM. Cutoff uses the AWE NRPN curve (100 + fc*7900/127 Hz); + resonance maps SBK Q 0..127 -> 0..+12 dB biquad peak [T3 -- curve shape + approximate, off/open endpoints exact]. The filter is designed at the + zone's BAKED rate, so note-60 playback (1 file second == 1 real second) + reproduces the hardware's absolute cutoff exactly; pitch-shifted notes + carry the filter with them (same limitation as the rate-baked tuning).""" + cutoff_hz = 100.0 + fc127 * 7900.0 / 127.0 + if cutoff_hz >= 0.45 * rate: # at/above Nyquist headroom: no-op + return None + q_biquad = 0.7071 * 10.0 ** ((q127 / 127.0 * 12.0) / 20.0) + # RBJ cookbook 2-pole low-pass, run in FLOAT (the caller converts once) + w0 = 2.0 * math.pi * cutoff_hz / rate + alpha = math.sin(w0) / (2.0 * q_biquad) + cw = math.cos(w0) + b0 = (1.0 - cw) / 2.0 + b1 = 1.0 - cw + b2 = (1.0 - cw) / 2.0 + a0 = 1.0 + alpha + a1 = -2.0 * cw + a2 = 1.0 - alpha + b0 /= a0; b1 /= a0; b2 /= a0; a1 /= a0; a2 /= a0 + n = len(pcm) // 2 + vals = struct.unpack("<%dh" % n, pcm[:n * 2]) + out = [0.0] * n + x1 = x2 = y1 = y2 = 0.0 + for i, x0 in enumerate(vals): + y0 = b0 * x0 + b1 * x1 + b2 * x2 - a1 * y1 - a2 * y2 + x2 = x1; x1 = x0 + y2 = y1; y1 = y0 + out[i] = y0 + return out + + +def write_wav(fname, pcm, rate, gain, fc127=127, q127=0): + # Full bake pipeline in FLOAT, one int16 conversion at the end: the + # resonance peak can overshoot full scale (165 of 232 filtered zones + # hard-clipped in an int-per-stage draft) -- normalize the whole file + # down to fit instead of clipping (level error <= the overshoot, wave + # shape preserved; the EMU's filter stage had internal headroom). + fvals = None + if fc127 < 127: # authored static low-pass + fvals = bake_lowpass(pcm, rate, fc127, q127) + if fvals is None and gain < 0.999: n = len(pcm) // 2 - vals = struct.unpack("<%dh" % n, pcm[:n * 2]) - pcm = struct.pack("<%dh" % n, *[max(-32768, min(32767, int(v * gain))) for v in vals]) + fvals = [float(v) for v in struct.unpack("<%dh" % n, pcm[:n * 2])] + if fvals is not None: + if gain < 0.999: # layer-balance attenuation + fvals = [v * gain for v in fvals] + peak = max(1.0, max(abs(v) for v in fvals)) + norm = (32767.0 / peak) if peak > 32767.0 else 1.0 + pcm = struct.pack("<%dh" % len(fvals), + *[int(v * norm) for v in fvals]) with wave.open(os.path.join(AUDIO, fname), "wb") as w: w.setnchannels(1); w.setsampwidth(2); w.setframerate(rate) w.writeframes(pcm) @@ -178,7 +234,7 @@ def main(): continue for k, z in enumerate(zs): z["file"] = f"{name}.wav" if len(zs) == 1 else f"{name}_z{k}.wav" - write_wav(z["file"], z["pcm"], z["rate"], z["gain"]) + write_wav(z["file"], z["pcm"], z["rate"], z["gain"], z["fc"], z["q"]) cents = 1200.0 * math.log2(z["rate"] / 44100.0) if abs(cents - round(cents / 100.0) * 100) > 3 and not z["tune"] % 100: grid_outliers.append((name, k, z["rate"], round(cents, 1)))