@maccesar/titools 5.2.0 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CONTRIBUTING.md +82 -0
  2. package/README.md +83 -72
  3. package/agents/ti-pro.md +1 -1
  4. package/commands/ti-audit.md +2 -2
  5. package/docs/examples.md +91 -0
  6. package/docs/knowledge-index.md +57 -0
  7. package/lib/commands/uninstall.js +19 -16
  8. package/lib/commands/update.js +1 -1
  9. package/lib/downloader.js +1 -1
  10. package/lib/utils.js +2 -0
  11. package/package.json +4 -2
  12. package/skills/purgetss/references/multi-density-images.md +1 -1
  13. package/skills/ti-admob-unified/SKILL.md +21 -7
  14. package/skills/ti-admob-unified/assets/example/app.js +229 -25
  15. package/skills/ti-admob-unified/assets/example/lib/ads.js +30 -2
  16. package/skills/ti-admob-unified/assets/example/library-usage.js +33 -1
  17. package/skills/ti-admob-unified/references/api-reference.md +39 -16
  18. package/skills/ti-admob-unified/references/banners.md +9 -9
  19. package/skills/ti-admob-unified/references/contributing.md +14 -9
  20. package/skills/ti-admob-unified/references/dependencies.md +31 -25
  21. package/skills/ti-admob-unified/references/fullscreen.md +43 -28
  22. package/skills/ti-admob-unified/references/game-monetization.md +138 -7
  23. package/skills/ti-admob-unified/references/getting-started.md +75 -31
  24. package/skills/ti-admob-unified/references/index.md +5 -2
  25. package/skills/ti-admob-unified/references/integration.md +8 -6
  26. package/skills/ti-admob-unified/references/library.md +41 -10
  27. package/skills/ti-admob-unified/references/mediation-parity.md +17 -0
  28. package/skills/ti-admob-unified/references/mediation.md +22 -9
  29. package/skills/ti-admob-unified/references/migration.md +11 -7
  30. package/skills/ti-admob-unified/references/module-changelog.md +41 -11
  31. package/skills/ti-admob-unified/references/privacy.md +35 -8
  32. package/skills/ti-admob-unified/references/production.md +67 -0
  33. package/skills/ti-admob-unified/references/rewarded-interstitial.md +101 -0
  34. package/skills/ti-admob-unified/references/roadmap.md +28 -31
  35. package/skills/ti-admob-unified/references/source-notes.md +51 -4
  36. package/skills/ti-admob-unified/references/source-snapshot.json +249 -45
  37. package/skills/ti-admob-unified/references/third-party-notices.md +4 -4
  38. package/skills/ti-game/SKILL.md +23 -6
  39. package/skills/ti-game/references/api.md +34 -30
  40. package/skills/ti-game/references/debugging-performance.md +18 -9
  41. package/skills/ti-game/references/examples.md +103 -20
  42. package/skills/ti-game/references/input.md +101 -0
  43. package/skills/ti-game/references/patterns.md +39 -15
  44. package/skills/ti-game/references/physics.md +80 -52
  45. package/skills/ti-game/references/project-setup.md +118 -56
  46. package/skills/ti-game/references/recipes-action.md +107 -8
  47. package/skills/ti-game/references/recipes-adventure-effects.md +41 -9
  48. package/skills/ti-game/references/roadmap.md +10 -3
  49. package/skills/ti-game/references/source-notes.md +81 -0
  50. package/skills/ti-game/references/tilemaps.md +12 -4
  51. package/skills/ti-synthengine/SKILL.md +81 -95
  52. package/skills/ti-synthengine/assets/example/README.md +84 -0
  53. package/skills/ti-synthengine/assets/example/app.js +1178 -0
  54. package/skills/ti-synthengine/assets/example/lib/sequenceOwner.js +83 -0
  55. package/skills/ti-synthengine/assets/example/lib/sequenceScore.js +25 -0
  56. package/skills/ti-synthengine/references/advanced-examples.md +174 -0
  57. package/skills/ti-synthengine/references/android-sim80-correction-evidence.zip +0 -0
  58. package/skills/ti-synthengine/references/android-sim80-correction.json +162 -0
  59. package/skills/ti-synthengine/references/api.md +434 -380
  60. package/skills/ti-synthengine/references/audio-engine.md +157 -230
  61. package/skills/ti-synthengine/references/bypass-physical-recheck-evidence.zip +0 -0
  62. package/skills/ti-synthengine/references/examples.md +123 -253
  63. package/skills/ti-synthengine/references/frontier-android-evidence.zip +0 -0
  64. package/skills/ti-synthengine/references/frontier-ipad-evidence.zip +0 -0
  65. package/skills/ti-synthengine/references/frontier-physical-validation.json +1918 -0
  66. package/skills/ti-synthengine/references/guide.md +188 -156
  67. package/skills/ti-synthengine/references/performance-review-evidence.zip +0 -0
  68. package/skills/ti-synthengine/references/performance-review.json +1146 -0
  69. package/skills/ti-synthengine/references/physical-validation.json +1457 -0
  70. package/skills/ti-synthengine/references/recipes-interaction.md +549 -0
  71. package/skills/ti-synthengine/references/recipes.md +423 -599
  72. package/skills/ti-synthengine/references/recommendations.md +63 -113
  73. package/skills/ti-synthengine/references/sound-design.md +134 -258
  74. package/skills/ti-synthengine/references/source-notes.md +93 -105
  75. package/skills/ti-synthengine/references/source-snapshot.json +379 -32
  76. package/skills/ti-synthengine/references/stats-performance.md +64 -20
  77. package/skills/ti-synthengine/references/studio-validation.json +6202 -0
  78. package/skills/ti-synthengine/references/troubleshooting.md +109 -121
  79. package/skills/ti-synthengine/references/unified-bypass-performance.json +22425 -0
  80. package/skills/ti-synthengine/references/unified-validation.json +314 -0
  81. package/AGENTS-VERCEL-RESEARCH.md +0 -175
@@ -0,0 +1,1146 @@
1
+ {
2
+ "generatedAt": "2026-10-24T04:37:07.074803+00:00",
3
+ "baselineRevision": "7ab31107302d9b7027a6359ba1a6fdb49c250407",
4
+ "apiVersion": "1.0.0",
5
+ "stage": "Audit and accepted implementation verified. F01/F05 retained; Apple runtime F02/F03/F04 and F09 rejected. Final packages and Studio updated. Physical acceptance limits remain explicitly open.",
6
+ "sourceSha256": {
7
+ "android/jni/SynthOboeEngine.cpp": "d4a044949b9c1bbc54d023ddd70ec979572617448f317e1866598439818a602e",
8
+ "ios/Classes/TiSynthengineModule.m": "1e43e652fab3631b29af514f936a9b879bbf87e94792da0b420f62218c81b56e",
9
+ "shared/synth_sequence.h": "0730d785465b8dae87fc748b6f9126306735fe37f5b73271337f907e3ddb129f",
10
+ "shared/synth_transport.h": "c40f576861450ed1347a307422d76335dcd83d1f7a8b251f61898a29d25ab68e",
11
+ "shared/synth_spatial.h": "d628ef9c60776be463c5dc45a972c9f9bbb0d183656f0dc177211038ba39d75a"
12
+ },
13
+ "candidateCodeRevision": "f3fef34",
14
+ "postTimingNormalization": "Earlier runtime timing is retained as rejected-candidate evidence. Production fallback matches frozen Apple callback source exactly; F01/F05 control-thread changes remain.",
15
+ "constraints": {
16
+ "publicMethods": 19,
17
+ "maxVoices": 32,
18
+ "maxSequences": 4,
19
+ "sequenceBanksPerSlot": 3,
20
+ "maxSteps": 512,
21
+ "bufferSizeChanged": false,
22
+ "latencyAdded": false,
23
+ "qualityReduced": false,
24
+ "dependenciesChanged": false,
25
+ "productionCompilerFlagsChanged": false,
26
+ "consumersInstalled": true,
27
+ "devicesAccessed": true,
28
+ "pushOrReleasePublished": false
29
+ },
30
+ "acceptance": {
31
+ "ownAppleRendererCompared": true,
32
+ "byteExact": true,
33
+ "comparedTraceBytes": 27056104814,
34
+ "scenarios": 120,
35
+ "engineRatesHz": [
36
+ 16000,
37
+ 44100,
38
+ 48000,
39
+ 96000,
40
+ 192000
41
+ ],
42
+ "firStandaloneAlsoCovers8000Hz": true,
43
+ "fixtureBlockFrames": [
44
+ 0,
45
+ 1,
46
+ 3,
47
+ 4,
48
+ 7,
49
+ 8,
50
+ 9,
51
+ 15,
52
+ 16,
53
+ 17,
54
+ 23,
55
+ 31,
56
+ 256,
57
+ 512,
58
+ 1024
59
+ ],
60
+ "traceScope": "PCM from every fixture block; full original voice/tail, filter/FIR, limiter buffers and dynamics, effects buffers/configuration and transport state at fixture checkpoints. Pointers and optional diagnostic timing are excluded.",
61
+ "negativeControl": "A changed phase increment failed comparison. Android empty-JNI result and Apple unknown-ID metadata tests failed against baseline and passed after correction.",
62
+ "finalRenderAlarmsClear": true,
63
+ "atomicAppleRuntimeBundle": [
64
+ "F02",
65
+ "F03",
66
+ "F04"
67
+ ],
68
+ "firAloneAccepted": false,
69
+ "physicalAcceptance": false,
70
+ "globalAcceptance": false,
71
+ "appleRuntimeBundleAccepted": false,
72
+ "finalRenderAlarmScope": "Original callback restored exactly; final matched iPad bypass p95 shows no regression. No production Apple render speedup claimed."
73
+ },
74
+ "performance": {
75
+ "platform": "ARM64 macOS host; actual Apple Objective-C renderer and producer. This is not an iPad real-time or whole-app CPU measurement.",
76
+ "compiler": "Apple clang 21.0.0; Apple C99 -Os; Android JNI host probe C++17 -O3; production module builds retain their original options.",
77
+ "alarmThresholdsPercent": {
78
+ "total": 2,
79
+ "p95": 5
80
+ },
81
+ "producerScope": "Actual ObjC publishSequence including preflight/merge/banks; actual Android JNI/native publication with supplied array accessors, excluding Java validation/VM allocation time.",
82
+ "producers": {
83
+ "apple": [
84
+ {
85
+ "case": "final-publication",
86
+ "arguments": [
87
+ "-2",
88
+ "1",
89
+ "100"
90
+ ],
91
+ "median": {
92
+ "baseline": {
93
+ "cpuSeconds": 0.004669433000000001,
94
+ "wallSeconds": 0.004898000015,
95
+ "cpuP95": 0.0001029165,
96
+ "wallP95": 0.00010400000600000001,
97
+ "cpuMax": 0.000132688,
98
+ "wallMax": 0.0002044999855,
99
+ "peakRssBytes": 16023552.0
100
+ },
101
+ "candidate": {
102
+ "cpuSeconds": 0.0021192925,
103
+ "wallSeconds": 0.0021889999300000003,
104
+ "cpuP95": 3.51455e-05,
105
+ "wallP95": 3.59999831e-05,
106
+ "cpuMax": 4.71875e-05,
107
+ "wallMax": 7.500004700000001e-05,
108
+ "peakRssBytes": 16048128.0
109
+ }
110
+ },
111
+ "changePercent": {
112
+ "cpuSeconds": -54.613493758235755,
113
+ "wallSeconds": -55.30829066361282,
114
+ "cpuP95": -65.85047101290853,
115
+ "wallP95": -65.38463363165576,
116
+ "cpuMax": -64.43725129627397,
117
+ "wallMax": -63.32515779078135,
118
+ "peakRssBytes": 0.15337423312884457
119
+ },
120
+ "investigate": false,
121
+ "pairedCpuRatioMedianPercent": -51.66094862984389,
122
+ "candidateCpuFasterPairs": 9,
123
+ "timingConclusion": "Short-score reduction reproduced despite contention; exact magnitude is host-specific."
124
+ },
125
+ {
126
+ "case": "final-publication",
127
+ "arguments": [
128
+ "-2",
129
+ "512",
130
+ "100"
131
+ ],
132
+ "median": {
133
+ "baseline": {
134
+ "cpuSeconds": 0.6567894595,
135
+ "wallSeconds": 1.298268,
136
+ "cpuP95": 0.009254499999999999,
137
+ "wallP95": 0.0306255,
138
+ "cpuMax": 0.011186895499999999,
139
+ "wallMax": 0.11592849999999999,
140
+ "peakRssBytes": 16400384.0
141
+ },
142
+ "candidate": {
143
+ "cpuSeconds": 0.6717859825,
144
+ "wallSeconds": 1.439968,
145
+ "cpuP95": 0.0092341665,
146
+ "wallP95": 0.033029,
147
+ "cpuMax": 0.0105741875,
148
+ "wallMax": 0.100573,
149
+ "peakRssBytes": 16375808.0
150
+ }
151
+ },
152
+ "changePercent": {
153
+ "cpuSeconds": 2.283307501831189,
154
+ "wallSeconds": 10.914541527635269,
155
+ "cpuP95": -0.21971473337294434,
156
+ "wallP95": 7.848035134120268,
157
+ "cpuMax": -5.4770154954964845,
158
+ "wallMax": -13.24566435345924,
159
+ "peakRssBytes": -0.14985014985015033
160
+ },
161
+ "investigate": true,
162
+ "pairedCpuRatioMedianPercent": -1.4064706356759826,
163
+ "candidateCpuFasterPairs": 5,
164
+ "timingConclusion": "Inconclusive under host contention: ratios of separate medians and paired ratios disagree. Keep alarm visible; quiet-host bulk retiming pending."
165
+ }
166
+ ],
167
+ "androidJniNative": [
168
+ {
169
+ "case": "F01-android-producer",
170
+ "arguments": [
171
+ "1",
172
+ "100"
173
+ ],
174
+ "median": {
175
+ "baseline": {
176
+ "cpuSeconds": 0.0025908765,
177
+ "wallSeconds": 0.00281149987,
178
+ "cpuP95": 3.4666500000000004e-05,
179
+ "wallP95": 4.049998825e-05,
180
+ "cpuMax": 7.602100000000001e-05,
181
+ "wallMax": 0.0001195000075,
182
+ "peakRssBytes": 12599296.0
183
+ },
184
+ "candidate": {
185
+ "cpuSeconds": 5.3146500000000004e-05,
186
+ "wallSeconds": 3.8000027399999996e-05,
187
+ "cpuP95": 5.84e-07,
188
+ "wallP95": 1.00000761e-06,
189
+ "cpuMax": 6.46e-07,
190
+ "wallMax": 1.00000761e-06,
191
+ "peakRssBytes": 12591104.0
192
+ }
193
+ },
194
+ "changePercent": {
195
+ "cpuSeconds": -97.94870577582529,
196
+ "wallSeconds": -98.6484072858947,
197
+ "cpuP95": -98.31537651623326,
198
+ "wallP95": -97.53084469104753,
199
+ "cpuMax": -99.15023480354112,
200
+ "wallMax": -99.16317360063765,
201
+ "peakRssBytes": -0.06501950585175997
202
+ },
203
+ "investigate": false
204
+ },
205
+ {
206
+ "case": "F01-android-producer",
207
+ "arguments": [
208
+ "512",
209
+ "100"
210
+ ],
211
+ "median": {
212
+ "baseline": {
213
+ "cpuSeconds": 0.0268086315,
214
+ "wallSeconds": 0.03128149995,
215
+ "cpuP95": 0.0006086045,
216
+ "wallP95": 0.0006529999955,
217
+ "cpuMax": 0.000782792,
218
+ "wallMax": 0.0012635000155,
219
+ "peakRssBytes": 14925824.0
220
+ },
221
+ "candidate": {
222
+ "cpuSeconds": 0.0231681885,
223
+ "wallSeconds": 0.02590450005,
224
+ "cpuP95": 0.000434917,
225
+ "wallP95": 0.0006125000075,
226
+ "cpuMax": 0.0006801665,
227
+ "wallMax": 0.0009019999995,
228
+ "peakRssBytes": 14909440.0
229
+ }
230
+ },
231
+ "changePercent": {
232
+ "cpuSeconds": -13.579369017773246,
233
+ "wallSeconds": -17.18907312179574,
234
+ "cpuP95": -28.53864866263722,
235
+ "wallP95": -6.202142156063772,
236
+ "cpuMax": -13.110187636051474,
237
+ "wallMax": -28.61100210251639,
238
+ "peakRssBytes": -0.1097694840834218
239
+ },
240
+ "investigate": false
241
+ }
242
+ ]
243
+ },
244
+ "render": "Original7ab3110 Apple callback restored byte-for-byte; no production Apple render speedup claimed. Retained producer and control-memory improvements are independent.",
245
+ "finalIpadBypass": {
246
+ "rateHz": 48000,
247
+ "callbackFrames": 1024,
248
+ "route": "Headphones",
249
+ "systemVolume": 1,
250
+ "phaseOrder": [
251
+ "silence",
252
+ "one-stereo",
253
+ "32-stereo",
254
+ "32-binaural"
255
+ ],
256
+ "referenceP95UpperLoad": [
257
+ 0.016,
258
+ 0.06,
259
+ 0.328,
260
+ 0.424
261
+ ],
262
+ "finalP95UpperLoad": [
263
+ 0.015,
264
+ 0.061,
265
+ 0.328,
266
+ 0.395
267
+ ],
268
+ "finalDeadlineMisses": [
269
+ 0,
270
+ 0,
271
+ 0,
272
+ 0
273
+ ],
274
+ "interpretation": "Callback elapsed/deadline load. Original renderer retained; timing differences are not claimed as optimization gains."
275
+ },
276
+ "earlierAppleProducerTrials": [
277
+ {
278
+ "case": "F01-ios-producer",
279
+ "arguments": [
280
+ "-2",
281
+ "1",
282
+ "100"
283
+ ],
284
+ "median": {
285
+ "baseline": {
286
+ "cpuSeconds": 0.004031877,
287
+ "wallSeconds": 0.004195999965000001,
288
+ "cpuP95": 5.9250000000000004e-05,
289
+ "wallP95": 8.499997775e-05,
290
+ "cpuMax": 0.00011156250000000001,
291
+ "wallMax": 0.0001485000245,
292
+ "peakRssBytes": 16064512.0
293
+ },
294
+ "candidate": {
295
+ "cpuSeconds": 0.0019919795000000002,
296
+ "wallSeconds": 0.0022105000099999998,
297
+ "cpuP95": 2.3604e-05,
298
+ "wallP95": 5.2499992299999995e-05,
299
+ "cpuMax": 5.90005e-05,
300
+ "wallMax": 0.000101999991,
301
+ "peakRssBytes": 16031744.0
302
+ }
303
+ },
304
+ "changePercent": {
305
+ "cpuSeconds": -50.59423935799627,
306
+ "wallSeconds": -47.318874441411026,
307
+ "cpuP95": -60.16202531645569,
308
+ "wallP95": -38.23528700864867,
309
+ "cpuMax": -47.114397759103646,
310
+ "wallMax": -31.313148705911487,
311
+ "peakRssBytes": -0.20397756246812726
312
+ },
313
+ "investigate": false
314
+ },
315
+ {
316
+ "case": "F01-ios-producer",
317
+ "arguments": [
318
+ "-2",
319
+ "512",
320
+ "100"
321
+ ],
322
+ "median": {
323
+ "baseline": {
324
+ "cpuSeconds": 0.545239295,
325
+ "wallSeconds": 0.684606,
326
+ "cpuP95": 0.007901749999999999,
327
+ "wallP95": 0.01036199998,
328
+ "cpuMax": 0.0094417085,
329
+ "wallMax": 0.03814950005,
330
+ "peakRssBytes": 16416768.0
331
+ },
332
+ "candidate": {
333
+ "cpuSeconds": 0.5160989380000001,
334
+ "wallSeconds": 0.5853425,
335
+ "cpuP95": 0.006639395500000001,
336
+ "wallP95": 0.008276999989999999,
337
+ "cpuMax": 0.008451479,
338
+ "wallMax": 0.0207985,
339
+ "peakRssBytes": 16384000.0
340
+ }
341
+ },
342
+ "changePercent": {
343
+ "cpuSeconds": -5.344507864202996,
344
+ "wallSeconds": -14.499361676643218,
345
+ "cpuP95": -15.975631980257521,
346
+ "wallP95": -20.12159808940669,
347
+ "cpuMax": -10.487821139574471,
348
+ "wallMax": -45.481592228624756,
349
+ "peakRssBytes": -0.1996007984031989
350
+ },
351
+ "investigate": false
352
+ }
353
+ ],
354
+ "appleProducerEnvironment": {
355
+ "sampledAt": "2026-10-24T04:27:42.497912+00:00",
356
+ "loadAverages": "{ 19.43 140.60 184.74 }",
357
+ "finding": "Other active CoreSimulator WebContent and diagnostic processes consume substantial host CPU. No compilers were running, but host was not quiet. Do not use this trial to establish a small bulk-producer timing change."
358
+ },
359
+ "rawProducerTrials": "Full unmodified per-pair trials are retained in the evidence archive; final Apple trial also records host contention and paired-ratio qualification."
360
+ },
361
+ "decisions": [
362
+ {
363
+ "id": "F01",
364
+ "status": "incorporated",
365
+ "finding": "Redundant complete-bank copying and repeated Apple preparation",
366
+ "implementation": "Reserve replacement storage without copying; initialize all live Android steps and header; Apple preflight resets/prepares once and commits prepared storage. Generic partial writers retain inheritance, validation and atomic failures.",
367
+ "compatibility": "Compatible; no public contract change",
368
+ "evidence": [
369
+ "sequence_replacement_regression",
370
+ "generic and replacement publication concurrency, 1000 cycles each",
371
+ "Java canonical-memory/corpus and Apple contracts",
372
+ "paired producer state equality"
373
+ ],
374
+ "measurementBoundary": "Short-score CPU benefit reproduced in the final own-Apple host. Bulk512 final retiming under active host simulators is inconclusive; preserve alarm and do not promise a bulk or whole-app percentage."
375
+ },
376
+ {
377
+ "id": "F02",
378
+ "status": "rejected after physical validation; production code removed",
379
+ "finding": "Apple per-sample FIR",
380
+ "compatibility": "Compatible under the frozen Release toolchain; other build modes retain streaming FIR",
381
+ "rejectedExperiments": "All-FMA at O3 and Android-style mixed accumulation at Apple -Os changed sample bits and were rejected. The first whole-callback helper prototype changed stereo timing by +206%/+20% and was rejected. Protected FIR alone still regresses idle CPU 20.13% and one stereo voice 2.89% in long warmed trials; it is not accepted independently. The final F02/F03/F04 bundle improves those cases by 29.51%/6.19% and clears every final alarm.",
382
+ "decisionReason": "Reproducible iPad32-stereo p95/elapsed regression, including continuous voices. Bit-exact compatibility and gains elsewhere do not resolve this timing regression.",
383
+ "rejectedImplementation": "ARM64 size-optimized Release time blocks reuse coefficients for eight/four samples and preserve the own-Apple fused lane accumulation. Stereo and other Apple build modes stream. Spatial tiles stop before native attacks and use saved sample clocks. Helpers stay on the stack and never escape.",
384
+ "implementation": "Removed together. Production retains original Apple processing."
385
+ },
386
+ {
387
+ "id": "F03",
388
+ "status": "rejected after physical validation; production code removed",
389
+ "finding": "Repeated stable held-control derivation",
390
+ "compatibility": "Compatible; original semantic voice state retained",
391
+ "decisionReason": "Reproducible iPad32-stereo p95/elapsed regression, including continuous voices. Bit-exact compatibility and gains elsewhere do not resolve this timing regression.",
392
+ "rejectedImplementation": "Skip unchanged derived held controls only after initialization and ramp completion; preserve sequence sweeps and the final ramp sample.",
393
+ "implementation": "Removed together. Production retains original Apple processing."
394
+ },
395
+ {
396
+ "id": "F04",
397
+ "status": "rejected after physical validation; production code removed",
398
+ "finding": "Idle effect-routing overhead",
399
+ "compatibility": "Compatible; fractional sends and complete hidden state compared byte-for-byte",
400
+ "decisionReason": "Reproducible iPad32-stereo p95/elapsed regression, including continuous voices. Bit-exact compatibility and gains elsewhere do not resolve this timing regression.",
401
+ "rejectedImplementation": "At a block boundary, bypass only a fully quiescent unity-gain effects state; keep the original separate selected/dry arithmetic and every send tick. Ramping, tails, processing changes and later enabling retain the full path.",
402
+ "implementation": "Removed together. Production retains original Apple processing."
403
+ },
404
+ {
405
+ "id": "F05",
406
+ "status": "incorporated",
407
+ "finding": "Empty poll/prune allocations and unknown-ID position retention",
408
+ "implementation": "Return null for empty JNI completion polls, already handled by Java; skip empty-generation pruning; never retain a position for an unknown generation. Keep the 10 ms event cadence and queued/active ownership.",
409
+ "compatibility": "Compatible; valid unknown edits remain queued accepted no-ops, including existing queue failure behavior",
410
+ "evidence": "Idle JNI regression observes zero NewDoubleArray calls and one durable stop delivery. Apple regression checks 1,000 unknown edits, queued/active retention and retirement. 100,000 empty prune calls use about 96% less CPU in the isolated host experiment; retained allocations are measured within one autorelease pool, not claimed as physical memory savings."
411
+ },
412
+ {
413
+ "id": "F06",
414
+ "status": "deferred",
415
+ "finding": "Fixed transport and effects reservation",
416
+ "reason": "Preserve callback preallocation and current layout; no physical whole-process memory evidence justifies dynamic capacity storage.",
417
+ "arm64HostBytes": {
418
+ "transport": 8627848,
419
+ "effectsHeap192k": 13741712
420
+ },
421
+ "followup": "Physical footprint/RSS peaks and recovery at supported device rates; any future capacity change must preserve 1\u20134 slots and all limits."
422
+ },
423
+ {
424
+ "id": "F07",
425
+ "status": "retain existing implementation",
426
+ "finding": "Onset, waveform/filter/modulation, limiter and diagnostic costs",
427
+ "reason": "No measured replacement justifies approximation or changing phases, RNG, coefficient cadence, limiting, gain, meters or buffers. Existing formulas and scheduling are preserved."
428
+ },
429
+ {
430
+ "id": "F08",
431
+ "status": "implemented",
432
+ "finding": "No own-Apple full-renderer comparison harness",
433
+ "implementation": "Extract actual production ObjC callback and helpers into an isolated macOS harness, with deterministic noise seed/disabled-diagnostic clock only, bounded byte-stream comparison and independent warmed CPU/wall benchmark. No AVAudioEngine/session/Titanium lifecycle is emulated as accepted."
434
+ },
435
+ {
436
+ "id": "F09",
437
+ "status": "rejected",
438
+ "finding": "Outlining spatial branch improved initial speaker stereo timings but did not resolve headphone32-stereo regression",
439
+ "implementation": "External nonescaping unsafe local block prototype only; never incorporated. Stack/code isolation checked; no direct callback allocations/ARC/locks.",
440
+ "evidence": "Speaker .275/.274 p95 vs .330 reference; headphone .407/.406 and ordered-window ~.405 vs .328 reference. CPU placement/frequency and compiler interactions remain hypotheses."
441
+ }
442
+ ],
443
+ "areaCoverage": [
444
+ {
445
+ "area": "bridge and validation",
446
+ "conclusion": "Closed option contracts preserved; Java/iOS corpora, API linkage, native packet/state equality and bounded memory regression pass. F01/F05."
447
+ },
448
+ {
449
+ "area": "publication, banks and transport",
450
+ "conclusion": "Full versus partial write paths, prepared commit, durable events, generic/full concurrent publication and ten-minute five-rate musical clock pass. F01."
451
+ },
452
+ {
453
+ "area": "voices, priorities, replacement and held controls",
454
+ "conclusion": "Original admission, priority, retrigger, phase/RNG and tail policy retained. Expanded own-Apple PCM/state traces match; final iPad bypass voice counts/formats/route and timing verified. F05 retained; F03 removed."
455
+ },
456
+ {
457
+ "area": "waveforms, envelopes, filters, vibrato, FM and modulation",
458
+ "conclusion": "Original formulas, per-sample control evaluation and cadence retained. Expanded own-Apple PCM/state traces match frozen reference across120scenarios/five rates/irregular and512/1024-frame blocks. F07."
459
+ },
460
+ {
461
+ "area": "binaural",
462
+ "conclusion": "Android SIMD/time-block implementation retained. Own-Apple time-block candidate was bit exact but rejected after physical stereo timing regression; original Apple streaming renderer restored. F02/F09 rejected; F08 host tools retained."
463
+ },
464
+ {
465
+ "area": "effects, mixing, limiter and output",
466
+ "conclusion": "Original Apple effects processing retained after rejecting runtime fast paths. PCM/state comparison covers routing, ramps, panic/drain/re-enable. Android extreme all-FX load fails feasibility in both revisions; no quality/buffer/latency change used to mask it."
467
+ },
468
+ {
469
+ "area": "statistics",
470
+ "conclusion": "Publication, reset and concurrency regression pass; timing is kept separate from sample/state comparison. Backend unknown fields and diagnostics cadence remain unchanged."
471
+ },
472
+ {
473
+ "area": "lifecycle and recovery",
474
+ "conclusion": "Control locking and callback stop/start/recovery policy unchanged. Original transport/end/reuse and metadata lifecycle checks pass; ten controlled software recoveries retain transports and effect allocation. Hardware route changes invalidate timing runs; full hardware recovery/listening acceptance remains separate."
475
+ },
476
+ {
477
+ "area": "memory and builds",
478
+ "conclusion": "Fixed native reservation retained; unnecessary transient objects and orphan metadata removed. Four Android ABI and device/simulator/Catalyst builds and binary/package matching verified. F05/F06."
479
+ }
480
+ ],
481
+ "verification": {
482
+ "recordedGroupCommandCount": 48,
483
+ "allCommandsExitZero": true,
484
+ "groups": [
485
+ "shared sequence/full-replacement/clock/concurrency/stats/held/routing/effects/modulation/spatial",
486
+ "API19 linkage, Java corpus/canonical memory, four Apple contract programs, Android native ends/publication/render/held"
487
+ ],
488
+ "independentReview": {
489
+ "findings": [],
490
+ "mode": "Read-only independent review of native diff and test/tools; reviewer did not execute builds or tests. Root executed verification separately.",
491
+ "fallback": "Read-only reviewer confirmed complete runtime rollback, original callback/header equality and retention of F01/F05; no Critical/Important findings."
492
+ },
493
+ "moduleBuilds": [
494
+ {
495
+ "platform": "android",
496
+ "sdk": "13.4.1.GA",
497
+ "exit": 0,
498
+ "reportedSeconds": 181.364,
499
+ "abis": [
500
+ "arm64-v8a",
501
+ "armeabi-v7a",
502
+ "x86",
503
+ "x86_64"
504
+ ],
505
+ "shippingPolicy": "Exact previously measured production AAR reused. Apple-only header rollback leaves Android preprocessing equivalent after trivial int declaration normalization; Java class bytes unchanged. All four ABIs also rebuilt successfully."
506
+ },
507
+ {
508
+ "platform": "ios",
509
+ "sdk": "13.4.1.GA",
510
+ "exit": 0,
511
+ "reportedSeconds": 179.829,
512
+ "variants": [
513
+ "device",
514
+ "simulator",
515
+ "Catalyst"
516
+ ]
517
+ }
518
+ ],
519
+ "nativeArtifacts": {
520
+ "sdk": "13.4.1.GA",
521
+ "android": [
522
+ {
523
+ "member": "jni/arm64-v8a/liboboe.so",
524
+ "elfClass": 2,
525
+ "machine": 183,
526
+ "sha256": "2696179a9e302f4047ce04146de39f64930bdfaa75d51da63bc7af1a228b8d73",
527
+ "matchesBuild": true,
528
+ "dependencyUnchanged": true
529
+ },
530
+ {
531
+ "member": "jni/arm64-v8a/libti.synthengine.so",
532
+ "elfClass": 2,
533
+ "machine": 183,
534
+ "sha256": "a450bccbccff6834fb2bca187591070c49f809d8358ae7e4386c6e5348984d94",
535
+ "matchesBuild": true,
536
+ "dependencyUnchanged": null
537
+ },
538
+ {
539
+ "member": "jni/armeabi-v7a/liboboe.so",
540
+ "elfClass": 1,
541
+ "machine": 40,
542
+ "sha256": "6eebcff8923f11f79d10bd3404afccab9c8d9ba629709334fc76663894b0e914",
543
+ "matchesBuild": true,
544
+ "dependencyUnchanged": true
545
+ },
546
+ {
547
+ "member": "jni/armeabi-v7a/libti.synthengine.so",
548
+ "elfClass": 1,
549
+ "machine": 40,
550
+ "sha256": "ea5e5949734ad2e89c999f75ccca7fc7d413687accf9dbf0b58f3ec5b8e4f58f",
551
+ "matchesBuild": true,
552
+ "dependencyUnchanged": null
553
+ },
554
+ {
555
+ "member": "jni/x86/liboboe.so",
556
+ "elfClass": 1,
557
+ "machine": 3,
558
+ "sha256": "8846bdc73a1ad884e017c7f3082042184bb8c9876651f48e77faef24f7c7eec4",
559
+ "matchesBuild": true,
560
+ "dependencyUnchanged": true
561
+ },
562
+ {
563
+ "member": "jni/x86/libti.synthengine.so",
564
+ "elfClass": 1,
565
+ "machine": 3,
566
+ "sha256": "79c1cfd65fb4b8cb63501730d591251eafa1800bbc2ded63dd886086655611aa",
567
+ "matchesBuild": true,
568
+ "dependencyUnchanged": null
569
+ },
570
+ {
571
+ "member": "jni/x86_64/liboboe.so",
572
+ "elfClass": 2,
573
+ "machine": 62,
574
+ "sha256": "f1168819d87b8571bb7c8147176854a2e5783bae6e35d2a420d99dc19692db94",
575
+ "matchesBuild": true,
576
+ "dependencyUnchanged": true
577
+ },
578
+ {
579
+ "member": "jni/x86_64/libti.synthengine.so",
580
+ "elfClass": 2,
581
+ "machine": 62,
582
+ "sha256": "d7ef67135e3740df9e5e2000d318739c9c10dcaa4e086ebae9edb912d9618297",
583
+ "matchesBuild": true,
584
+ "dependencyUnchanged": null
585
+ }
586
+ ],
587
+ "apple": [
588
+ {
589
+ "slice": "ios-arm64",
590
+ "member": "modules/iphone/ti.synthengine/1.0.0/ti.synthengine.xcframework/ios-arm64/libti.synthengine.a",
591
+ "sha256": "535fe6236ba418821cdd7a20a97c6d8a2ceb94865f378876c1c19734eac50818",
592
+ "matchesBuild": true,
593
+ "architectures": [
594
+ "arm64"
595
+ ]
596
+ },
597
+ {
598
+ "slice": "ios-arm64_x86_64-maccatalyst",
599
+ "member": "modules/iphone/ti.synthengine/1.0.0/ti.synthengine.xcframework/ios-arm64_x86_64-maccatalyst/libti.synthengine.a",
600
+ "sha256": "61878032b7f3fd6757aa90d54f0d878e3d15c0713180904e1219fd6cf112ee89",
601
+ "matchesBuild": true,
602
+ "architectures": [
603
+ "x86_64",
604
+ "arm64"
605
+ ]
606
+ },
607
+ {
608
+ "slice": "ios-arm64_x86_64-simulator",
609
+ "member": "modules/iphone/ti.synthengine/1.0.0/ti.synthengine.xcframework/ios-arm64_x86_64-simulator/libti.synthengine.a",
610
+ "sha256": "49dd17f9313454ac4b54348260f377195f9166d1ef4eee56b0f7f07b3be974c1",
611
+ "matchesBuild": true,
612
+ "architectures": [
613
+ "x86_64",
614
+ "arm64"
615
+ ]
616
+ }
617
+ ],
618
+ "physicalAcceptance": false,
619
+ "aarSha256": "93efaa0c9ce47a0da7901b9e01fe3f89364860c272e137d17b1c7687b70ef09b",
620
+ "androidAarSha256": "93efaa0c9ce47a0da7901b9e01fe3f89364860c272e137d17b1c7687b70ef09b",
621
+ "androidRebuildAndReuseProof": "physical/android-measured-artifact-reuse.json"
622
+ },
623
+ "productionCallback": {
624
+ "callbackAndLocalBlocks": [
625
+ {
626
+ "symbol": "___29-[TiSynthengineModule start:]_block_invoke.141",
627
+ "start": 21284,
628
+ "end": 41460
629
+ }
630
+ ],
631
+ "forbiddenRelocations": [],
632
+ "controlBlocksExcluded": [
633
+ {
634
+ "symbol": "___29-[TiSynthengineModule start:]_block_invoke",
635
+ "start": 21220,
636
+ "end": 21264
637
+ }
638
+ ]
639
+ },
640
+ "privateTelemetryExcludedFromProduction": true,
641
+ "originalGroupScope": "The48 recorded compile/correctness commands belong to the original offline audit, before physical rejection. Final rollback checks, builds and device results are recorded separately. Rejected timing experiments are not test passes.",
642
+ "finalRollback": {
643
+ "expandedApplePcmAndStateTrace": {
644
+ "scenarios": 120,
645
+ "bytes": 27056104814,
646
+ "byteExact": true
647
+ },
648
+ "originalRenderBodyByteIdentical": true,
649
+ "sharedSpatialRegressionOs": "pass",
650
+ "moduleBuilds": "Android4ABIs and iOS device/simulator/Catalyst passed",
651
+ "finalIpadBypass": "Four phases completed with unchanged route/volume/formats and0callback deadline misses",
652
+ "finalIpadGame": "Two complete eight-phase runs; overall presentation stable, strict matched comparison inconclusive",
653
+ "consumerBuilds": "Studio Android and iPad passed; actual linked/packaged native hashes verified",
654
+ "consumerData": "Installed in place; no source, presets, library or preference edits"
655
+ }
656
+ },
657
+ "physicalPending": [
658
+ "Physical output/memory at192k remains unverified;48k compact evidence and native projections are separate. No material whole-process RAM reduction claimed.",
659
+ "Strict iPad population-matched Sim20/Sim80 acceptance remains inconclusive after two runs:42.5\u201345.8% coverage below50%. Overall presentation stays~60FPS and thresholds pass; do not call it a strict matched pass.",
660
+ "Full listening acceptance, including the reported ripple texture and physical output-stage effects, remains separate from measured native headroom.",
661
+ "Quiet-host final Apple512-step producer retiming: contended sample is inconclusive. Short-score benefit reproduced, but no final bulk512 gain claimed.",
662
+ "Android extreme32-binaural/four-sequence/two-LFO/all-effects load fails30-second feasibility in both revisions; ten-minute criterion remains uncertified without lowering limits. Occasional Sim80 output underruns remain visible in both versions."
663
+ ],
664
+ "rollback": "F02/F03/F04 were removed together after physical regression. F01 publication and F05 control-memory fixes remain separate reversible changes. Native distribution builds must match current source. Frozen7ab3110 source/toolchain/binaries and rejected runtime measurements remain retained.",
665
+ "evidence": {
666
+ "archive": "performance-review-evidence.zip",
667
+ "sha256": "0539e799d66ed26ef5d64f727dd30bec55692bfd691584e25753999c545b8cf6",
668
+ "zipCRC": true,
669
+ "rawTrialsRetained": true,
670
+ "baselineSourcesBinariesAndFlagsFrozenSeparately": true,
671
+ "physicalRawReportsIncluded": true,
672
+ "deduplicatedPhysicalFiles": 115,
673
+ "identicalPayloadAliases": 11
674
+ },
675
+ "physical": {
676
+ "globalAcceptance": false,
677
+ "nativeCandidate": "f3fef34: F01/F05 retained, Apple runtime F02/F03/F04 removed; F09 external prototype rejected",
678
+ "ios": {
679
+ "device": "iPad9 (A13), iOS27.0.1",
680
+ "matchedFullStress": {
681
+ "rateHz": 48000,
682
+ "frames": 1024,
683
+ "audioSeconds": 600.0213333333334,
684
+ "baselineP95UpperLoad": 0.427,
685
+ "candidateP95UpperLoad": 0.383,
686
+ "deadlineMisses": {
687
+ "baseline": 0,
688
+ "candidate": 0
689
+ },
690
+ "outputUnderruns": null,
691
+ "interpretation": "Callback elapsed/deadline ratio, not whole-app/thread CPU. Native clock and four formats verified. This does not waive the stereo regression.",
692
+ "candidateStatus": "Rejected earlier runtime bundle; final callback is byte-identical to reference, not this candidate."
693
+ },
694
+ "compactMemory": {
695
+ "rateHz": 48000,
696
+ "baselineChargedGrowthMiB": 18.28118133544922,
697
+ "candidateChargedGrowthMiB": 18.171783447265625,
698
+ "baselineResidentHighwaterGrowthMiB": 17.75,
699
+ "candidateResidentHighwaterGrowthMiB": 18.015625,
700
+ "denseEditsPerRevision": 120,
701
+ "restartBothAccepted": true,
702
+ "interpretation": "Whole-process growth after requiring module, includes bridge/runtime/producer. No material RAM saving claimed.192k physical memory unverified."
703
+ },
704
+ "controlledRecovery": {
705
+ "cycles": 10,
706
+ "recovered": true,
707
+ "scope": "Software pause and unchanged production resume helper, not physical route-change simulation."
708
+ },
709
+ "bypassAlarm": {
710
+ "rateHz": 48000,
711
+ "frames": 1024,
712
+ "baseline32StereoP95Upper": 0.33,
713
+ "candidate32StereoP95Upper": 0.378,
714
+ "reproduced": true,
715
+ "outlinedSpeakerP95Upper": [
716
+ 0.275,
717
+ 0.274
718
+ ],
719
+ "outlinedHeadphoneP95Upper": [
720
+ 0.407,
721
+ 0.406
722
+ ],
723
+ "headphoneReferenceP95Upper": 0.328,
724
+ "decision": "Rejected both runtime variants; production original renderer restored and final four-phase bypass passed.",
725
+ "orderedABBA": [
726
+ {
727
+ "label": "A1",
728
+ "kind": "reference",
729
+ "callbacks": 5812,
730
+ "p95Upper": 0.328,
731
+ "windowP95": [
732
+ 0.328,
733
+ 0.328,
734
+ 0.328,
735
+ 0.328,
736
+ 0.327,
737
+ 0.328
738
+ ],
739
+ "deadlineMisses": 0,
740
+ "appZipSha256": "7c26202f63dfd9e428dfda545bde425e84a76624432ef4d49bb75da0223d7b4b"
741
+ },
742
+ {
743
+ "label": "B1",
744
+ "kind": "outlined",
745
+ "callbacks": 5812,
746
+ "p95Upper": 0.405,
747
+ "windowP95": [
748
+ 0.405,
749
+ 0.405,
750
+ 0.406,
751
+ 0.405,
752
+ 0.405,
753
+ 0.405
754
+ ],
755
+ "deadlineMisses": 0,
756
+ "appZipSha256": "cb35941a5841045320fe8ecb4b8a20cf58d3bbdc22487ed9e4b36511448ffd8b"
757
+ },
758
+ {
759
+ "label": "B2",
760
+ "kind": "outlined",
761
+ "callbacks": 5812,
762
+ "p95Upper": 0.406,
763
+ "windowP95": [
764
+ 0.405,
765
+ 0.406,
766
+ 0.406,
767
+ 0.406,
768
+ 0.406,
769
+ 0.405
770
+ ],
771
+ "deadlineMisses": 0,
772
+ "appZipSha256": "cb35941a5841045320fe8ecb4b8a20cf58d3bbdc22487ed9e4b36511448ffd8b"
773
+ },
774
+ {
775
+ "label": "A2",
776
+ "kind": "reference",
777
+ "callbacks": 5812,
778
+ "p95Upper": 0.328,
779
+ "windowP95": [
780
+ 0.329,
781
+ 0.328,
782
+ 0.329,
783
+ 0.328,
784
+ 0.329,
785
+ 0.328
786
+ ],
787
+ "deadlineMisses": 0,
788
+ "appZipSha256": "7c26202f63dfd9e428dfda545bde425e84a76624432ef4d49bb75da0223d7b4b"
789
+ }
790
+ ],
791
+ "finalBypassVerified": true
792
+ },
793
+ "game": {
794
+ "runs": 2,
795
+ "phases": 16,
796
+ "complete": true,
797
+ "errors": [],
798
+ "comparisons": [
799
+ {
800
+ "workload": "simulation20",
801
+ "overallPresentationAccepted": true,
802
+ "strictPopulationMatchedAccepted": false,
803
+ "presentation": {
804
+ "offP95Ms": 16.665771484375,
805
+ "onP95Ms": 16.666015625,
806
+ "changePercent": 0.0014649224323592946,
807
+ "investigate": false,
808
+ "offActualMeanFps": 60.01933349823698,
809
+ "onActualMeanFps": 60.01933667181973,
810
+ "actualFpsChangePercent": 5.287600779446677e-06,
811
+ "investigateActualFps": false
812
+ },
813
+ "matchedCoverage": {
814
+ "off": 0.42857142857142855,
815
+ "on": 0.425
816
+ },
817
+ "matchedPairs": 51,
818
+ "matchedP95ChangePercent": 0.0014649224323592946,
819
+ "matchedFpsChangePercent": -9.260544331368692e-06,
820
+ "matchedStatus": "inconclusive",
821
+ "rendererCpuP95AlarmPercent": 7.287461783767313,
822
+ "populationChangePercent": 3.052733430091936
823
+ },
824
+ {
825
+ "workload": "simulation80",
826
+ "overallPresentationAccepted": true,
827
+ "strictPopulationMatchedAccepted": false,
828
+ "presentation": {
829
+ "offP95Ms": 16.665771484375,
830
+ "onP95Ms": 16.666015625,
831
+ "changePercent": 0.0014649224323592946,
832
+ "investigate": false,
833
+ "offActualMeanFps": 60.019375119508666,
834
+ "onActualMeanFps": 60.019394206348096,
835
+ "actualFpsChangePercent": 3.180112986278516e-05,
836
+ "investigateActualFps": false
837
+ },
838
+ "matchedCoverage": {
839
+ "off": 0.4583333333333333,
840
+ "on": 0.4583333333333333
841
+ },
842
+ "matchedPairs": 55,
843
+ "matchedP95ChangePercent": 0.0014649224323592946,
844
+ "matchedFpsChangePercent": -4.884387696524328e-05,
845
+ "matchedStatus": "inconclusive",
846
+ "rendererCpuP95AlarmPercent": 15.713384815123742,
847
+ "populationChangePercent": -3.503562945368177
848
+ }
849
+ ],
850
+ "rendererSampleRateHz": 44100,
851
+ "nonzeroCallbackFrames": 1024,
852
+ "actualHardwareSessionFormat": "Not separately instrumented in production game app.",
853
+ "outputUnderruns": null,
854
+ "interpretation": "Actual presentation stays ~60FPS and overall thresholds pass. Strict matched comparison remains inconclusive: coverage42.5\u201345.8%<50%, even though matched framep95 is stable. Do not turn the analyzer overall acceptance flag into a strict matched pass. CPU proxy warnings remain separate; different populations and native update work prevent attributing them to synthesis."
855
+ }
856
+ },
857
+ "android": {
858
+ "device": "OPPO CPH2639, Android16",
859
+ "gameFramePresentation": {
860
+ "workloads": [
861
+ "Sim20",
862
+ "Sim80"
863
+ ],
864
+ "approximatelyFps": 60,
865
+ "strictMatchedWindowComparison": "within thresholds across two candidate runs",
866
+ "sim20P95FrameChangePercent": -0.3528,
867
+ "sim80P95FrameChangePercent": -0.1154
868
+ },
869
+ "sim80OutputUnderruns": "Occasional increases occur with both reference and candidate; not zero-underrun acceptance. Extreme supplemental game scenario.",
870
+ "sim20Cost": {
871
+ "matchedMeanElapsedChangePercent": -1.7070026265235683,
872
+ "meanWindowP95ElapsedChangePercent": 0.7541548393943165,
873
+ "interpretation": "New targeted sample did not reproduce the mean elapsed increase. Earlier alarms remain recorded; elapsed timing is not thread CPU/GPU."
874
+ },
875
+ "fullLoadFeasibility": {
876
+ "rateHz": 48000,
877
+ "frames": 256,
878
+ "bufferFrames": 512,
879
+ "durationSeconds": 30,
880
+ "baselineDeadlineMisses": 1287,
881
+ "candidateDeadlineMisses": 1269,
882
+ "passed": false,
883
+ "interpretation": "Both fail existing extreme32-binaural/four-sequence/two-LFO/all-effects gate. Ten-minute protocol not run after failed feasibility; thresholds unchanged."
884
+ },
885
+ "memoryAndRestart": {
886
+ "denseEditsPerRevision": 80,
887
+ "successfulRestartsPerRevision": 5
888
+ }
889
+ },
890
+ "listening": {
891
+ "android": "User reported very quiet notes, believed clean. Qualified short-phrase observation only.",
892
+ "ipad": "User reported generally good sound with slight oscillation. Beat interference is a hypothesis; agent cannot hear physical output. Binaural fixture deliberately points right.",
893
+ "fullAcceptance": false,
894
+ "studioAndroid": "App responds and notes sound. User reported saturation-like texture in factory ripple while playing single notes; improved at another octave. Saved factory state has no FX/LFO/saturation. Affected-preset Android-renderer host check shows0dB limiting across tested combinations; stepped32-sample wavetable explains possible texture, not a confirmed cause. Similar texture also reported on iPad; no sound/gain edits.",
895
+ "studioIpad": "User reports similar saturation-like texture in ripple, especially C3\u2013B4, and suspects intended timbre. Factory stepped wavetable and register dependence are consistent with that observation, but agent cannot directly hear physical output. No waveform/gain/preset edits."
896
+ },
897
+ "evidenceDirectory": "External durable ti-synthengine-performance-2026-10-23/physical; final archive update pending",
898
+ "studio": {
899
+ "android": "Updated, built, installed without clearing app data; eight packaged native members match measured AAR.",
900
+ "ios": "Updated, built, installed and launched without clearing app data; device native archive matches final production535fe623...; no application-source or preset edits.",
901
+ "applicationSourceOrPresetsChanged": false
902
+ }
903
+ },
904
+ "rejectedAppleRuntimeBundle": {
905
+ "renderConditions": "48kHz, 256-frame callbacks, diagnostics off, fixed identical per-case warmups, user-interactive QoS request without CPU affinity guarantee; ten alternating measured pairs after a discarded pair; independent thread CPU/monotonic wall clocks. No compilers or other suites ran during timing.",
906
+ "render": [
907
+ {
908
+ "scenario": "silence",
909
+ "changePercent": {
910
+ "wallSeconds": -32.20737576741877,
911
+ "cpuSeconds": -29.51357194867541,
912
+ "wallP95": -33.333333222223075,
913
+ "cpuP95": -29.82267598065558,
914
+ "wallMax": -79.31027914563276,
915
+ "cpuMax": -63.93448275862069,
916
+ "peakRssBytes": 0.0
917
+ },
918
+ "median": {
919
+ "baseline": {
920
+ "wallSeconds": 0.0025459998849999997,
921
+ "cpuSeconds": 0.002686276,
922
+ "wallP95": 3.00002284e-06,
923
+ "cpuP95": 2.7915000000000003e-06,
924
+ "wallMax": 2.8999988e-05,
925
+ "cpuMax": 1.45e-05,
926
+ "peakRssBytes": 15925248.0
927
+ },
928
+ "candidate": {
929
+ "wallSeconds": 0.001726000135,
930
+ "cpuSeconds": 0.00189346,
931
+ "wallP95": 2.00001523e-06,
932
+ "cpuP95": 1.959e-06,
933
+ "wallMax": 6.000016565e-06,
934
+ "cpuMax": 5.2295e-06,
935
+ "peakRssBytes": 15925248.0
936
+ }
937
+ },
938
+ "investigationAlarm": false
939
+ },
940
+ {
941
+ "scenario": "oneHeldStereo",
942
+ "changePercent": {
943
+ "wallSeconds": -5.810995956134257,
944
+ "cpuSeconds": -6.187380602852677,
945
+ "wallP95": -8.333373610999683,
946
+ "cpuP95": -6.870325770059582,
947
+ "wallMax": 21.176507579261038,
948
+ "cpuMax": 19.515000000000015,
949
+ "peakRssBytes": 0.0
950
+ },
951
+ "median": {
952
+ "baseline": {
953
+ "wallSeconds": 0.0112114998,
954
+ "cpuSeconds": 0.0113217215,
955
+ "wallP95": 1.20000332e-05,
956
+ "cpuP95": 1.1833500000000001e-05,
957
+ "wallMax": 4.24999744e-05,
958
+ "cpuMax": 2.9999999999999997e-05,
959
+ "peakRssBytes": 15958016.0
960
+ },
961
+ "candidate": {
962
+ "wallSeconds": 0.01056,
963
+ "cpuSeconds": 0.010621203499999999,
964
+ "wallP95": 1.10000256e-05,
965
+ "cpuP95": 1.10205e-05,
966
+ "wallMax": 5.14999847e-05,
967
+ "cpuMax": 3.58545e-05,
968
+ "peakRssBytes": 15958016.0
969
+ }
970
+ },
971
+ "investigationAlarm": false
972
+ },
973
+ {
974
+ "scenario": "oneHeldBinaural",
975
+ "changePercent": {
976
+ "wallSeconds": -60.119999369936835,
977
+ "cpuSeconds": -59.68433390269574,
978
+ "wallP95": -59.99995352002918,
979
+ "cpuP95": -59.734346105665026,
980
+ "wallMax": -48.484866346801844,
981
+ "cpuMax": -45.48897707896366,
982
+ "peakRssBytes": 0.10256410256410664
983
+ },
984
+ "median": {
985
+ "baseline": {
986
+ "wallSeconds": 0.0237499997,
987
+ "cpuSeconds": 0.023762545500000003,
988
+ "wallP95": 2.50000157e-05,
989
+ "cpuP95": 2.51455e-05,
990
+ "wallMax": 9.899999725e-05,
991
+ "cpuMax": 6.6271e-05,
992
+ "peakRssBytes": 15974400.0
993
+ },
994
+ "candidate": {
995
+ "wallSeconds": 0.00947150003,
996
+ "cpuSeconds": 0.0095800285,
997
+ "wallP95": 1.00000179e-05,
998
+ "cpuP95": 1.0125e-05,
999
+ "wallMax": 5.0999980899999996e-05,
1000
+ "cpuMax": 3.6125e-05,
1001
+ "peakRssBytes": 15990784.0
1002
+ }
1003
+ },
1004
+ "investigationAlarm": false
1005
+ },
1006
+ {
1007
+ "scenario": "32HeldStereo",
1008
+ "changePercent": {
1009
+ "wallSeconds": -9.605627306273078,
1010
+ "cpuSeconds": -9.431025591277164,
1011
+ "wallP95": -10.121418643144708,
1012
+ "cpuP95": -9.841056910569112,
1013
+ "wallMax": -10.591908427713237,
1014
+ "cpuMax": -11.779799393515288,
1015
+ "peakRssBytes": 0.1520527116066983
1016
+ },
1017
+ "median": {
1018
+ "baseline": {
1019
+ "wallSeconds": 0.11707200000000001,
1020
+ "cpuSeconds": 0.116591641,
1021
+ "wallP95": 0.00012349998,
1022
+ "cpuP95": 0.000123,
1023
+ "wallMax": 0.0003209999995,
1024
+ "cpuMax": 0.0002679375,
1025
+ "peakRssBytes": 16162816.0
1026
+ },
1027
+ "candidate": {
1028
+ "wallSeconds": 0.10582649999999999,
1029
+ "cpuSeconds": 0.1055958535,
1030
+ "wallP95": 0.00011100003,
1031
+ "cpuP95": 0.0001108955,
1032
+ "wallMax": 0.00028699997350000003,
1033
+ "cpuMax": 0.00023637499999999999,
1034
+ "peakRssBytes": 16187392.0
1035
+ }
1036
+ },
1037
+ "investigationAlarm": false
1038
+ },
1039
+ {
1040
+ "scenario": "32HeldBinaural",
1041
+ "changePercent": {
1042
+ "wallSeconds": -59.96380059332995,
1043
+ "cpuSeconds": -59.93091130237678,
1044
+ "wallP95": -60.93896557949263,
1045
+ "cpuP95": -60.31436900155782,
1046
+ "wallMax": -56.38075303626293,
1047
+ "cpuMax": -56.78286040369087,
1048
+ "peakRssBytes": -0.10040160642570406
1049
+ },
1050
+ "median": {
1051
+ "baseline": {
1052
+ "wallSeconds": 0.4936545,
1053
+ "cpuSeconds": 0.4916118145,
1054
+ "wallP95": 0.0005325000095,
1055
+ "cpuP95": 0.0005209164999999999,
1056
+ "wallMax": 0.0009560000035,
1057
+ "cpuMax": 0.0008209994999999999,
1058
+ "peakRssBytes": 16318464.0
1059
+ },
1060
+ "candidate": {
1061
+ "wallSeconds": 0.1976405,
1062
+ "cpuSeconds": 0.196984374,
1063
+ "wallP95": 0.000208000012,
1064
+ "cpuP95": 0.000206729,
1065
+ "wallMax": 0.00041700000250000004,
1066
+ "cpuMax": 0.0003548125,
1067
+ "peakRssBytes": 16302080.0
1068
+ }
1069
+ },
1070
+ "investigationAlarm": false
1071
+ },
1072
+ {
1073
+ "scenario": "fourSequences32VoicesTwoLfosEffectsStereo",
1074
+ "changePercent": {
1075
+ "wallSeconds": 0.1593860422784532,
1076
+ "cpuSeconds": -0.4916938178988861,
1077
+ "wallP95": 2.9493098459513645,
1078
+ "cpuP95": 1.3453353119418532,
1079
+ "wallMax": 349.9211384063181,
1080
+ "cpuMax": 25.5771240975228,
1081
+ "peakRssBytes": -0.0849617672047609
1082
+ },
1083
+ "median": {
1084
+ "baseline": {
1085
+ "wallSeconds": 0.44389049999999997,
1086
+ "cpuSeconds": 0.43955555700000004,
1087
+ "wallP95": 0.0005424999689999999,
1088
+ "cpuP95": 0.0005064164999999999,
1089
+ "wallMax": 0.00126799999,
1090
+ "cpuMax": 0.000986313,
1091
+ "peakRssBytes": 19283968.0
1092
+ },
1093
+ "candidate": {
1094
+ "wallSeconds": 0.4445979995,
1095
+ "cpuSeconds": 0.43739428950000003,
1096
+ "wallP95": 0.0005584999740000001,
1097
+ "cpuP95": 0.0005132295,
1098
+ "wallMax": 0.00570499999,
1099
+ "cpuMax": 0.0012385834999999999,
1100
+ "peakRssBytes": 19267584.0
1101
+ }
1102
+ },
1103
+ "investigationAlarm": false
1104
+ },
1105
+ {
1106
+ "scenario": "fourSequences32VoicesTwoLfosEffectsBinaural",
1107
+ "changePercent": {
1108
+ "wallSeconds": -47.80595154423101,
1109
+ "cpuSeconds": -48.49513974364825,
1110
+ "wallP95": -48.39826872035131,
1111
+ "cpuP95": -47.89399492353785,
1112
+ "wallMax": -18.721547401766426,
1113
+ "cpuMax": -6.650274997745919,
1114
+ "peakRssBytes": -0.08382229673092878
1115
+ },
1116
+ "median": {
1117
+ "baseline": {
1118
+ "wallSeconds": 1.4284780000000001,
1119
+ "cpuSeconds": 1.364642525,
1120
+ "wallP95": 0.001732500005,
1121
+ "cpuP95": 0.0016099795,
1122
+ "wallMax": 0.0238335,
1123
+ "cpuMax": 0.00277275,
1124
+ "peakRssBytes": 19546112.0
1125
+ },
1126
+ "candidate": {
1127
+ "wallSeconds": 0.7455804994999999,
1128
+ "cpuSeconds": 0.7028572255,
1129
+ "wallP95": 0.0008939999970000001,
1130
+ "cpuP95": 0.000838896,
1131
+ "wallMax": 0.0193715,
1132
+ "cpuMax": 0.0025883545,
1133
+ "peakRssBytes": 19529728.0
1134
+ }
1135
+ },
1136
+ "investigationAlarm": false
1137
+ }
1138
+ ],
1139
+ "maximaAndMemory": "All raw maxima and per-process peak RSS are retained in the evidence. Host scheduling stalls remain visible; these measurements do not certify zero underruns, physical latency, battery, thermal behavior or whole-process memory bounds.",
1140
+ "codeRevision": "b281772",
1141
+ "productionActive": false,
1142
+ "outlinedPrototypeProductionActive": false,
1143
+ "laterOutlinedHostEvidence": "physical/spatial-block-final-host-performance.json (not production)",
1144
+ "reason": "Despite exact audio/state and host gains, initial candidate and external outlined prototype reproduce32-stereo device elapsed/p95 regressions. No proven cause; reject instead of shipping a timing tradeoff."
1145
+ }
1146
+ }