constants.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. // ─── HALL GEOMETRY ────────────────────────────────────────────────────────────
  2. // Confirmed measurements — SK-303 Version B + site survey
  3. //
  4. // PLAN (square seating zone, all radii from geometric centre):
  5. // Overall seating plan: 20914 × 20914 mm (half-width = 10457 mm)
  6. // Row 1 front edge: 2210 mm (inner edge of first bench row)
  7. // Row pitch (FFL–FFL): 883 mm × 8 main rows
  8. // Row 8 back face: 8411 mm (per SK-303 drawing; includes ~20 mm bench thickness)
  9. // Back aisle: 2046 mm (10457 − 8411 = 2046 ✓)
  10. // Corner rows: 4 rows per corner, same 883 mm pitch
  11. // Corner row 1 front: 620 mm from the circular seating edge
  12. //
  13. // SECTION:
  14. // CEILING IS FLAT — one horizontal plane at ceilFlat above the centre floor datum.
  15. // Measured floor-to-ceiling at row 8 back = 3600 mm; floor at row 8 = +700 mm
  16. // → flat ceiling at 3600 + 700 = 4300 mm above centre datum.
  17. // Corner zone ceiling is structurally lower at cornerCeilClearance floor-to-ceiling.
  18. //
  19. // FLOOR IS DISHED — rises from 0 mm at centre (communion table zone)
  20. // to +700 mm at row 8 back face, slope ≈ 1:8.9.
  21. // The flat centre zone (r = 0 → row1Radius) is the communion table area.
  22. //
  23. // SPEAKERS: All flush-mounted (no drop rods). Hanging face at ceiling height.
  24. // Suggested power (Dudley Wilkin, 2010 Aberdeen layout):
  25. // Centre (spk 13): 6 W — covers rows 1–3
  26. // Inner ring (1–8): 8 W — covers rows 4–7
  27. // Outer ring (9–12):4 W — covers row 8 + aisle back
  28. // Corner (2 per corner): 4 W
  29. export const HALL_DEFAULTS = {
  30. // Plan
  31. hallWidth: 20914, // mm — confirmed seating plan dimension
  32. rows: 8, // main circular rows
  33. row1Radius: 2210, // mm — centre to front edge of row 1 (inner edge)
  34. rowPitch: 883, // mm — FFL to FFL
  35. row8Back: 8411, // mm — centre to back face of row 8 (per SK-303)
  36. aisleWidth: 2046, // mm — back aisle behind row 8
  37. // Corner seating
  38. hasCornerRows: true,
  39. cornerRows: 4, // rows in each corner zone
  40. cornerFrontOffset: 620, // mm — front of corner row 1 measured from circular seating edge
  41. // Ceiling — FLAT throughout main seating zone
  42. ceilFlat: 4300, // mm — absolute ceiling height above centre floor datum
  43. // Derivation: floor-to-ceiling at row 8 back (3600 mm) + floor rise at row 8 (700 mm)
  44. cornerCeilClearance: 2900, // mm — floor-to-ceiling in corner zone (structural drop)
  45. // Floor — dished bowl, lowest at centre
  46. dishRise: 700, // mm — floor rise from centre datum to row 8 back face
  47. // Slope: 700 mm over 6201 mm (row1Radius → row8Back) ≈ 1:8.9
  48. // Acoustic
  49. earHeight: 1100, // mm — seated ear height above local floor
  50. speedOfSound: 343, // m/s (20 °C)
  51. tileGrid: 600, // mm — ceiling tile grid (constrains speaker positions)
  52. };
  53. // ─── SPEAKER RINGS ────────────────────────────────────────────────────────────
  54. // All flush-mounted (dropRod = 0). Acoustic face is at the ceiling surface.
  55. // Power settings per Dudley Wilkin's 2010 Aberdeen 8-row hall proposal.
  56. export const SPEAKER_DEFAULTS = {
  57. centre: {
  58. enabled: true,
  59. count: 1,
  60. radius: 0, // mm — geometric centre of ceiling
  61. dropRod: 0, // mm — flush (no rod)
  62. power: 6, // W
  63. sensitivity: 88, // dB / 1 W / 1 m (Visaton FRS8M + G20SC combined)
  64. // phase codes: 1=all-normal, 4=quarter (quadrant), 8=eighth (per-speaker), -1=all-inverted
  65. phase: 1, // single speaker — no alternating pattern applies
  66. label: 'Centre (×1)',
  67. },
  68. inner: {
  69. enabled: true,
  70. count: 8,
  71. radius: 5720, // mm — confirmed site measurement
  72. dropRod: 0,
  73. power: 8, // W
  74. sensitivity: 88,
  75. phase: 4, // 1/4 quadrant anti-phase (pairs of 2 reversed, 4 null lines)
  76. label: 'Inner Ring (×8)',
  77. },
  78. outer: {
  79. enabled: true,
  80. count: 8,
  81. radius: 8600, // mm — confirmed site measurement
  82. dropRod: 0,
  83. power: 4, // W
  84. sensitivity: 88,
  85. phase: 4, // 1/4 quadrant anti-phase
  86. label: 'Outer Ring (×8)',
  87. },
  88. corner: {
  89. enabled: true,
  90. count: 8, // 2 per corner × 4 corners
  91. radius: 10310, // mm — confirmed; 1500 mm from side walls
  92. dropRod: 0,
  93. power: 4, // W
  94. sensitivity: 88,
  95. phase: 4, // 1/4 quadrant (adjacent corners alternate, 2 spk per corner)
  96. label: 'Corner (×8, 2/corner)',
  97. },
  98. };
  99. // ─── APPLICATION SETTINGS ─────────────────────────────────────────────────────
  100. export const SETTINGS_DEFAULTS = {
  101. // LLM provider
  102. provider: 'ollama',
  103. ollamaHost: 'http://192.168.8.73',
  104. ollamaPort: '11434',
  105. ollamaModel: '',
  106. anthropicKey: '',
  107. anthropicModel: 'claude-sonnet-4-6',
  108. // REW API
  109. rewHost: 'http://127.0.0.1',
  110. rewPort: '4735',
  111. // LLM behaviour
  112. maxTokens: 2048,
  113. temperature: 0.3,
  114. systemPrompt: [
  115. 'You are an expert acoustic consultant specialising in distributed ceiling speaker systems',
  116. 'for large assembly halls. You have deep knowledge of accoustic ceiling speaker layout and design,',
  117. 'including the MS6 speaker (Visaton FRS8M + G20SC drivers), the MIDAS MR12 active crossover',
  118. 'with its 433 Hz gap at 3 kHz, anti-phasing techniques, and the Haas effect in multi-speaker',
  119. 'environments. Analyse the provided coverage data and give specific, technical, actionable',
  120. 'recommendations.',
  121. ].join(' '),
  122. };