@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,1457 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "date": "2026-10-23",
4
+ "moduleVersion": "1.0.0 beta",
5
+ "status": "Android short Sim80 headphone delivery/listening corrected; full physical acceptance remains open",
6
+ "acceptanceComplete": false,
7
+ "criteria": {
8
+ "controlledAudioSeconds": 600,
9
+ "maximumVoices": 32,
10
+ "nativeSequences": 4,
11
+ "binaural": true,
12
+ "lfosPerVoice": 2,
13
+ "sharedEffects": [
14
+ "chorus",
15
+ "delay",
16
+ "reverb",
17
+ "saturation"
18
+ ],
19
+ "renderP95LoadUpperLimit": 0.5,
20
+ "deadlineMissesAllowed": 0,
21
+ "additionalMemoryLimitBytes192k": 33554432,
22
+ "frameP95RegressionLimitPercent": 5,
23
+ "meanFpsRegressionLimitPercent": 2
24
+ },
25
+ "methodology": {
26
+ "audioLoad": "Elapsed callback render time divided by its frames/sample-rate deadline. Full native histograms are recorded only in instrumented temporary module copies; production module API remains unchanged.",
27
+ "percentile": "Nearest-rank p95; histogram bucket width0.001 load with an exclusive upper bound. A maximum below0.5 is also a valid stronger bound. Last-callback polling is not a callback percentile.",
28
+ "outputUnderruns": "Android backend counts when supported. iOS unavailable readings remain null. Zero measured callback deadline misses does not certify that the hardware output never glitched.",
29
+ "statePreservation": "Isolated test app identifiers; no user library/preset or app-data reset. No preferred hardware sample-rate or buffer changes used to satisfy a test.",
30
+ "iosMemoryReference": "https://developer.apple.com/videos/play/wwdc2022/10106/"
31
+ },
32
+ "devices": {
33
+ "android": {
34
+ "model": "CPH2639",
35
+ "soc": "mt6835",
36
+ "os": "Android16",
37
+ "initialFeasibility": {
38
+ "status": "failed",
39
+ "rendererSampleRate": 48000,
40
+ "callbackFrames": 256,
41
+ "measuredSeconds": 30.014,
42
+ "maximumRenderLoad": 4.065,
43
+ "lastCallbackPollingMedian": 0.799,
44
+ "renderP95Load": null,
45
+ "outputUnderruns": 896,
46
+ "rejectedPublications": 0,
47
+ "priorityDrops": 0,
48
+ "note": "Original final module artifact; stopped after feasibility. This is not a ten-minute pass."
49
+ },
50
+ "controlledRun": {
51
+ "status": "failed-feasibility-not-started",
52
+ "controlled600SecondsStarted": false,
53
+ "reason": "Short controlled runs exceed callback CPU/wall deadlines and report output underruns. Ten-minute acceptance is not claimed."
54
+ },
55
+ "profiledFeasibility": {
56
+ "name": "exact-neon-cpu",
57
+ "elapsedMs": 30013,
58
+ "complete": true,
59
+ "interrupted": false,
60
+ "callbacks": 4767,
61
+ "p95Lower": 2.047,
62
+ "p95Upper": null,
63
+ "deadlineMisses": 2074,
64
+ "sampleRate": 48000,
65
+ "xruns": 857,
66
+ "maxLoad": 3.8799808125,
67
+ "status": "failed-before-next-optimization",
68
+ "threadCpuDeadlineMisses": 1974,
69
+ "threadCpuP95Lower": 2.047,
70
+ "threadCpuP95Upper": null,
71
+ "interpretation": "Paired thread-CPU and wall histograms both overflow the final bucket. CPU work contributes materially; this is not explained solely by callback preemption. Sampling identifies the FIR loop as a significant cost. No controlled ten-minute run has started."
72
+ },
73
+ "memoryBeforeProducerOptimization": {
74
+ "status": "failed_full_process_32MiB_peak",
75
+ "actualSampleRate": 48000,
76
+ "allDensePublicationsAccepted": true,
77
+ "fullScoreUpdates": 80,
78
+ "fullScoreUpdatesAccepted": 80,
79
+ "recoveryStarts": 5,
80
+ "baselineRssKiB": [
81
+ 246560,
82
+ 254028
83
+ ],
84
+ "baselineStartupHwmKiB": 262740,
85
+ "warmFxRssKiB": [
86
+ 269348,
87
+ 271616
88
+ ],
89
+ "callerInputsRssKiB": 277096,
90
+ "pressurePeakSampledRssKiB": 293364,
91
+ "wholeProcessHwmKiB": 300740,
92
+ "hwmIncreaseKiB": 38000,
93
+ "peakRssDeltaVersusHighestBaselineKiB": 39336,
94
+ "measurement": "Read-only /proc/PID/status RSS/HWM, with stage meminfo. Whole process includes caller JS input, Titanium/Java/bridge, module and allocator recovery. No192k physical claim."
95
+ },
96
+ "exactOutputChecks": {
97
+ "sampleCount": 150000,
98
+ "stateDifferences": 0,
99
+ "outputBitDifferences": 0,
100
+ "rates": [
101
+ 16000,
102
+ 44100,
103
+ 48000,
104
+ 96000,
105
+ 192000
106
+ ],
107
+ "fullEngineCases": 60,
108
+ "fullEngineHashDifferences": 0
109
+ },
110
+ "memoryCorrection": {
111
+ "implementedInProductionJava": true,
112
+ "packetRetainedAfterAcceptance": false,
113
+ "immutablePreviousStepsReused": true,
114
+ "duplicateIncomingDeepCopyRemoved": true,
115
+ "focusedTest": "python3 tests/run_studio_java.py --memory-only",
116
+ "testStatus": "PASS",
117
+ "ciWired": true,
118
+ "updatesAccepted": 80,
119
+ "recoveryStarts": 5,
120
+ "sampledRssPeakKiB": 282488,
121
+ "processHwmKiB": 291160,
122
+ "stableBaselineRssKiB": 252352,
123
+ "startupBaselineHwmKiB": 263044,
124
+ "rssReductionVersusPreviousKiB": 10876,
125
+ "hwmReductionVersusPreviousKiB": 9580,
126
+ "strictProcessPeak32MiBAccepted": false,
127
+ "native192kPhysicalAccepted": false,
128
+ "attribution": {
129
+ "baselineTotalPssKiB": 102479,
130
+ "denseTotalPssKiB": 142554,
131
+ "baselinePrivateDirtyKiB": 72472,
132
+ "densePrivateDirtyKiB": 95748,
133
+ "baselineNativeHeapAllocKiB": 22196,
134
+ "denseNativeHeapAllocKiB": 37392,
135
+ "baselineDalvikHeapAllocKiB": 4114,
136
+ "denseDalvikHeapAllocKiB": 8106
137
+ },
138
+ "notes": [
139
+ "Different RSS/PSS/HWM snapshots have different scope and timing; do not select a metric posthoc to claim acceptance.",
140
+ "Process scope includes caller JS inputs, Titanium/Java/code, bridge and module. 192k native allocation accounting is separate."
141
+ ]
142
+ },
143
+ "rejectedExperiments": {
144
+ "tiledRenderer": {
145
+ "productionPromoted": false,
146
+ "hostAndArm64OutputAndClockStateExact": true,
147
+ "cases": {
148
+ "static": 9,
149
+ "rates": 30,
150
+ "heldRampsModulation": 60,
151
+ "transportClockState": 20
152
+ },
153
+ "callbacks": 4766,
154
+ "wallDeadlineMisses": 1180,
155
+ "cpuDeadlineMisses": 1088,
156
+ "p95Lower": 2.047,
157
+ "p95Upper": null,
158
+ "xruns": 875,
159
+ "steadyCpuMedianLower": 0.903,
160
+ "steadyCpuP95": [
161
+ 1.605,
162
+ 1.606
163
+ ],
164
+ "profileFirMainLoopVisiblePercent": 29.58,
165
+ "baselineProfileFirMainLoopVisiblePercent": 33.9,
166
+ "decision": "Rejected for production: no meaningful full-load median/p95 improvement; steady state still fails."
167
+ },
168
+ "offCallbackPerformanceHints": {
169
+ "status": "rejected_no_substantial_improvement",
170
+ "productionPromoted": false,
171
+ "reportsWereUnscaledRealMonotonicDurations": true,
172
+ "callbacksNeverCalledAdpfOrWaitedForWorker": true,
173
+ "apiSessionReportWorkerOnly": true,
174
+ "runs": [
175
+ {
176
+ "mode": "off",
177
+ "elapsedMs": 30031,
178
+ "callbacks": 4814,
179
+ "wallP95Lower": 2.047,
180
+ "wallP95Upper": null,
181
+ "cpuP95Lower": 2.047,
182
+ "cpuP95Upper": null,
183
+ "wallDeadlineMisses": 2059,
184
+ "cpuDeadlineMisses": 1943,
185
+ "outputXruns": 809,
186
+ "maxWallLoad": 4.254418125,
187
+ "hint": {
188
+ "workerStarted": 1,
189
+ "lastActualNanos": 0,
190
+ "targetNanos": 0,
191
+ "reportErrors": 0,
192
+ "createdSessions": 0,
193
+ "epoch": 2,
194
+ "tid": 0,
195
+ "mode": 0,
196
+ "lastReturnCode": 0,
197
+ "successfulReports": 0,
198
+ "preferredUpdateNanos": 1000000,
199
+ "ringOverflow": 0,
200
+ "staleRecords": 0,
201
+ "apiAvailable": 1
202
+ },
203
+ "initialHint": {
204
+ "workerStarted": 1,
205
+ "lastActualNanos": 0,
206
+ "targetNanos": 0,
207
+ "reportErrors": 0,
208
+ "createdSessions": 0,
209
+ "epoch": 2,
210
+ "tid": 0,
211
+ "mode": 0,
212
+ "lastReturnCode": 0,
213
+ "successfulReports": 0,
214
+ "preferredUpdateNanos": 1000000,
215
+ "ringOverflow": 0,
216
+ "staleRecords": 0,
217
+ "apiAvailable": 1
218
+ }
219
+ },
220
+ {
221
+ "mode": "full",
222
+ "elapsedMs": 30028,
223
+ "callbacks": 4684,
224
+ "wallP95Lower": 2.047,
225
+ "wallP95Upper": null,
226
+ "cpuP95Lower": 2.047,
227
+ "cpuP95Upper": null,
228
+ "wallDeadlineMisses": 2166,
229
+ "cpuDeadlineMisses": 2037,
230
+ "outputXruns": 940,
231
+ "maxWallLoad": 4.0037885625000005,
232
+ "hint": {
233
+ "workerStarted": 1,
234
+ "lastActualNanos": 1991769,
235
+ "targetNanos": 5333333,
236
+ "reportErrors": 0,
237
+ "createdSessions": 1,
238
+ "epoch": 2,
239
+ "tid": 22411,
240
+ "mode": 1,
241
+ "lastReturnCode": 0,
242
+ "successfulReports": 5597,
243
+ "preferredUpdateNanos": 1000000,
244
+ "ringOverflow": 0,
245
+ "staleRecords": 0,
246
+ "apiAvailable": 1
247
+ },
248
+ "initialHint": {
249
+ "workerStarted": 1,
250
+ "lastActualNanos": 5503692,
251
+ "targetNanos": 5333333,
252
+ "reportErrors": 0,
253
+ "createdSessions": 1,
254
+ "epoch": 2,
255
+ "tid": 22411,
256
+ "mode": 1,
257
+ "lastReturnCode": 0,
258
+ "successfulReports": 922,
259
+ "preferredUpdateNanos": 1000000,
260
+ "ringOverflow": 0,
261
+ "staleRecords": 0,
262
+ "apiAvailable": 1
263
+ }
264
+ },
265
+ {
266
+ "mode": "half",
267
+ "elapsedMs": 30026,
268
+ "callbacks": 4734,
269
+ "wallP95Lower": 2.047,
270
+ "wallP95Upper": null,
271
+ "cpuP95Lower": 2.047,
272
+ "cpuP95Upper": null,
273
+ "wallDeadlineMisses": 2058,
274
+ "cpuDeadlineMisses": 1946,
275
+ "outputXruns": 884,
276
+ "maxWallLoad": 3.9429230625000002,
277
+ "hint": {
278
+ "workerStarted": 1,
279
+ "lastActualNanos": 1829308,
280
+ "targetNanos": 2666666,
281
+ "reportErrors": 0,
282
+ "createdSessions": 1,
283
+ "epoch": 2,
284
+ "tid": 22927,
285
+ "mode": 2,
286
+ "lastReturnCode": 0,
287
+ "successfulReports": 5655,
288
+ "preferredUpdateNanos": 1000000,
289
+ "ringOverflow": 0,
290
+ "staleRecords": 0,
291
+ "apiAvailable": 1
292
+ },
293
+ "initialHint": {
294
+ "workerStarted": 1,
295
+ "lastActualNanos": 3660000,
296
+ "targetNanos": 2666666,
297
+ "reportErrors": 0,
298
+ "createdSessions": 1,
299
+ "epoch": 2,
300
+ "tid": 22927,
301
+ "mode": 2,
302
+ "lastReturnCode": 0,
303
+ "successfulReports": 931,
304
+ "preferredUpdateNanos": 1000000,
305
+ "ringOverflow": 0,
306
+ "staleRecords": 0,
307
+ "apiAvailable": 1
308
+ }
309
+ }
310
+ ],
311
+ "reviewedUnpromotedLimitations": [
312
+ "Per-epoch API failure/backoff cleanup needs tightening before any future promotion.",
313
+ "Recovery must invalidate epoch and target/TID telemetry should clear on session close."
314
+ ],
315
+ "decision": "Reject worker entirely this cycle; no additional controller or DSP experiments."
316
+ }
317
+ },
318
+ "productionContainsRejectedExperiments": false
319
+ },
320
+ "ipad": {
321
+ "model": "iPad (9th generation)",
322
+ "initialFeasibility": {
323
+ "status": "incomplete-acceptance",
324
+ "rendererSampleRate": 44100,
325
+ "callbackFrames": 1024,
326
+ "measuredSeconds": 60,
327
+ "maximumRenderLoad": 0.56357,
328
+ "measuredDeadlineMisses": 0,
329
+ "renderP95Load": null,
330
+ "outputUnderruns": null
331
+ },
332
+ "controlledRun": {
333
+ "measurementStartedAt": "2026-10-23T14:47:21.878Z",
334
+ "measurementFinishedAt": "2026-10-23T14:57:22.019Z",
335
+ "wallDurationMs": 600124,
336
+ "renderedAudioSeconds": 600.0268480725623,
337
+ "callbacks": 25841,
338
+ "renderedFrames": 26461184,
339
+ "sourceRendererSampleRate": 44100,
340
+ "audioSession": {
341
+ "category": "AVAudioSessionCategoryPlayback",
342
+ "systemOutputVolume": 0.550000011920929,
343
+ "ports": [
344
+ {
345
+ "name": "Altavoz",
346
+ "type": "Speaker"
347
+ }
348
+ ],
349
+ "mode": "AVAudioSessionModeDefault",
350
+ "outputLatency": 0.005056689493358135,
351
+ "sessionSampleRate": 44100,
352
+ "ioBufferDuration": 0.023219954648526078,
353
+ "outputNodeSampleRate": 44100,
354
+ "sourceNodeSampleRate": 44100
355
+ },
356
+ "renderLoadP95": {
357
+ "lowerInclusive": 0.388,
358
+ "upperExclusive": 0.389,
359
+ "basis": "all measured callbacks; frozen native histogram; nearest rank"
360
+ },
361
+ "renderLoadMaximum": 0.5545140747070313,
362
+ "measuredRenderDeadlineMisses": 0,
363
+ "iOSOutputUnderruns": null,
364
+ "minimumObservedVoices": 32,
365
+ "minimumObservedSpatialVoices": 32,
366
+ "fourSequencesContinuouslyObservedPlaying": true,
367
+ "rejectedRequests": 0,
368
+ "rejectedPublications": 0,
369
+ "priorityDrops": 0,
370
+ "backgroundedAt": null,
371
+ "output": {
372
+ "finalPeakDbFS": {
373
+ "right": -52.89253074974185,
374
+ "left": -55.82302619493744
375
+ },
376
+ "maximumLimiterReductionDb": 0
377
+ },
378
+ "status": "passed-render-timing",
379
+ "histogram": {
380
+ "bucketWidth": 0.001,
381
+ "bucketCount": 2048,
382
+ "lastBucketIncludesOverflow": true,
383
+ "nonzeroBuckets": [
384
+ [
385
+ 189,
386
+ 2
387
+ ],
388
+ [
389
+ 190,
390
+ 2
391
+ ],
392
+ [
393
+ 194,
394
+ 1
395
+ ],
396
+ [
397
+ 214,
398
+ 1
399
+ ],
400
+ [
401
+ 220,
402
+ 1
403
+ ],
404
+ [
405
+ 233,
406
+ 1
407
+ ],
408
+ [
409
+ 239,
410
+ 1
411
+ ],
412
+ [
413
+ 240,
414
+ 1
415
+ ],
416
+ [
417
+ 241,
418
+ 2
419
+ ],
420
+ [
421
+ 243,
422
+ 1
423
+ ],
424
+ [
425
+ 252,
426
+ 1
427
+ ],
428
+ [
429
+ 259,
430
+ 1
431
+ ],
432
+ [
433
+ 260,
434
+ 3
435
+ ],
436
+ [
437
+ 261,
438
+ 3
439
+ ],
440
+ [
441
+ 262,
442
+ 1
443
+ ],
444
+ [
445
+ 263,
446
+ 1
447
+ ],
448
+ [
449
+ 264,
450
+ 2
451
+ ],
452
+ [
453
+ 265,
454
+ 2
455
+ ],
456
+ [
457
+ 267,
458
+ 4
459
+ ],
460
+ [
461
+ 268,
462
+ 4
463
+ ],
464
+ [
465
+ 269,
466
+ 1
467
+ ],
468
+ [
469
+ 270,
470
+ 1
471
+ ],
472
+ [
473
+ 271,
474
+ 3
475
+ ],
476
+ [
477
+ 272,
478
+ 1
479
+ ],
480
+ [
481
+ 274,
482
+ 1
483
+ ],
484
+ [
485
+ 275,
486
+ 1
487
+ ],
488
+ [
489
+ 276,
490
+ 1
491
+ ],
492
+ [
493
+ 277,
494
+ 2
495
+ ],
496
+ [
497
+ 278,
498
+ 2
499
+ ],
500
+ [
501
+ 279,
502
+ 1
503
+ ],
504
+ [
505
+ 280,
506
+ 2
507
+ ],
508
+ [
509
+ 281,
510
+ 1
511
+ ],
512
+ [
513
+ 283,
514
+ 2
515
+ ],
516
+ [
517
+ 285,
518
+ 1
519
+ ],
520
+ [
521
+ 286,
522
+ 1
523
+ ],
524
+ [
525
+ 287,
526
+ 2
527
+ ],
528
+ [
529
+ 288,
530
+ 2
531
+ ],
532
+ [
533
+ 289,
534
+ 3
535
+ ],
536
+ [
537
+ 290,
538
+ 5
539
+ ],
540
+ [
541
+ 291,
542
+ 5
543
+ ],
544
+ [
545
+ 292,
546
+ 14
547
+ ],
548
+ [
549
+ 293,
550
+ 16
551
+ ],
552
+ [
553
+ 294,
554
+ 14
555
+ ],
556
+ [
557
+ 295,
558
+ 17
559
+ ],
560
+ [
561
+ 296,
562
+ 11
563
+ ],
564
+ [
565
+ 297,
566
+ 16
567
+ ],
568
+ [
569
+ 298,
570
+ 10
571
+ ],
572
+ [
573
+ 299,
574
+ 10
575
+ ],
576
+ [
577
+ 300,
578
+ 9
579
+ ],
580
+ [
581
+ 301,
582
+ 13
583
+ ],
584
+ [
585
+ 302,
586
+ 13
587
+ ],
588
+ [
589
+ 303,
590
+ 13
591
+ ],
592
+ [
593
+ 304,
594
+ 15
595
+ ],
596
+ [
597
+ 305,
598
+ 9
599
+ ],
600
+ [
601
+ 306,
602
+ 20
603
+ ],
604
+ [
605
+ 307,
606
+ 24
607
+ ],
608
+ [
609
+ 308,
610
+ 11
611
+ ],
612
+ [
613
+ 309,
614
+ 25
615
+ ],
616
+ [
617
+ 310,
618
+ 13
619
+ ],
620
+ [
621
+ 311,
622
+ 31
623
+ ],
624
+ [
625
+ 312,
626
+ 48
627
+ ],
628
+ [
629
+ 313,
630
+ 83
631
+ ],
632
+ [
633
+ 314,
634
+ 97
635
+ ],
636
+ [
637
+ 315,
638
+ 100
639
+ ],
640
+ [
641
+ 316,
642
+ 81
643
+ ],
644
+ [
645
+ 317,
646
+ 89
647
+ ],
648
+ [
649
+ 318,
650
+ 66
651
+ ],
652
+ [
653
+ 319,
654
+ 85
655
+ ],
656
+ [
657
+ 320,
658
+ 67
659
+ ],
660
+ [
661
+ 321,
662
+ 76
663
+ ],
664
+ [
665
+ 322,
666
+ 48
667
+ ],
668
+ [
669
+ 323,
670
+ 59
671
+ ],
672
+ [
673
+ 324,
674
+ 52
675
+ ],
676
+ [
677
+ 325,
678
+ 68
679
+ ],
680
+ [
681
+ 326,
682
+ 48
683
+ ],
684
+ [
685
+ 327,
686
+ 66
687
+ ],
688
+ [
689
+ 328,
690
+ 71
691
+ ],
692
+ [
693
+ 329,
694
+ 100
695
+ ],
696
+ [
697
+ 330,
698
+ 83
699
+ ],
700
+ [
701
+ 331,
702
+ 111
703
+ ],
704
+ [
705
+ 332,
706
+ 97
707
+ ],
708
+ [
709
+ 333,
710
+ 88
711
+ ],
712
+ [
713
+ 334,
714
+ 103
715
+ ],
716
+ [
717
+ 335,
718
+ 109
719
+ ],
720
+ [
721
+ 336,
722
+ 117
723
+ ],
724
+ [
725
+ 337,
726
+ 210
727
+ ],
728
+ [
729
+ 338,
730
+ 308
731
+ ],
732
+ [
733
+ 339,
734
+ 431
735
+ ],
736
+ [
737
+ 340,
738
+ 530
739
+ ],
740
+ [
741
+ 341,
742
+ 461
743
+ ],
744
+ [
745
+ 342,
746
+ 394
747
+ ],
748
+ [
749
+ 343,
750
+ 316
751
+ ],
752
+ [
753
+ 344,
754
+ 298
755
+ ],
756
+ [
757
+ 345,
758
+ 220
759
+ ],
760
+ [
761
+ 346,
762
+ 216
763
+ ],
764
+ [
765
+ 347,
766
+ 185
767
+ ],
768
+ [
769
+ 348,
770
+ 213
771
+ ],
772
+ [
773
+ 349,
774
+ 183
775
+ ],
776
+ [
777
+ 350,
778
+ 171
779
+ ],
780
+ [
781
+ 351,
782
+ 163
783
+ ],
784
+ [
785
+ 352,
786
+ 139
787
+ ],
788
+ [
789
+ 353,
790
+ 171
791
+ ],
792
+ [
793
+ 354,
794
+ 153
795
+ ],
796
+ [
797
+ 355,
798
+ 188
799
+ ],
800
+ [
801
+ 356,
802
+ 198
803
+ ],
804
+ [
805
+ 357,
806
+ 241
807
+ ],
808
+ [
809
+ 358,
810
+ 273
811
+ ],
812
+ [
813
+ 359,
814
+ 308
815
+ ],
816
+ [
817
+ 360,
818
+ 306
819
+ ],
820
+ [
821
+ 361,
822
+ 333
823
+ ],
824
+ [
825
+ 362,
826
+ 361
827
+ ],
828
+ [
829
+ 363,
830
+ 398
831
+ ],
832
+ [
833
+ 364,
834
+ 410
835
+ ],
836
+ [
837
+ 365,
838
+ 578
839
+ ],
840
+ [
841
+ 366,
842
+ 569
843
+ ],
844
+ [
845
+ 367,
846
+ 564
847
+ ],
848
+ [
849
+ 368,
850
+ 453
851
+ ],
852
+ [
853
+ 369,
854
+ 372
855
+ ],
856
+ [
857
+ 370,
858
+ 361
859
+ ],
860
+ [
861
+ 371,
862
+ 461
863
+ ],
864
+ [
865
+ 372,
866
+ 1038
867
+ ],
868
+ [
869
+ 373,
870
+ 1512
871
+ ],
872
+ [
873
+ 374,
874
+ 1824
875
+ ],
876
+ [
877
+ 375,
878
+ 1816
879
+ ],
880
+ [
881
+ 376,
882
+ 1679
883
+ ],
884
+ [
885
+ 377,
886
+ 1304
887
+ ],
888
+ [
889
+ 378,
890
+ 795
891
+ ],
892
+ [
893
+ 379,
894
+ 440
895
+ ],
896
+ [
897
+ 380,
898
+ 257
899
+ ],
900
+ [
901
+ 381,
902
+ 109
903
+ ],
904
+ [
905
+ 382,
906
+ 82
907
+ ],
908
+ [
909
+ 383,
910
+ 37
911
+ ],
912
+ [
913
+ 384,
914
+ 45
915
+ ],
916
+ [
917
+ 385,
918
+ 25
919
+ ],
920
+ [
921
+ 386,
922
+ 20
923
+ ],
924
+ [
925
+ 387,
926
+ 24
927
+ ],
928
+ [
929
+ 388,
930
+ 17
931
+ ],
932
+ [
933
+ 389,
934
+ 20
935
+ ],
936
+ [
937
+ 390,
938
+ 14
939
+ ],
940
+ [
941
+ 391,
942
+ 13
943
+ ],
944
+ [
945
+ 392,
946
+ 20
947
+ ],
948
+ [
949
+ 393,
950
+ 28
951
+ ],
952
+ [
953
+ 394,
954
+ 22
955
+ ],
956
+ [
957
+ 395,
958
+ 23
959
+ ],
960
+ [
961
+ 396,
962
+ 21
963
+ ],
964
+ [
965
+ 397,
966
+ 20
967
+ ],
968
+ [
969
+ 398,
970
+ 22
971
+ ],
972
+ [
973
+ 399,
974
+ 24
975
+ ],
976
+ [
977
+ 400,
978
+ 21
979
+ ],
980
+ [
981
+ 401,
982
+ 17
983
+ ],
984
+ [
985
+ 402,
986
+ 29
987
+ ],
988
+ [
989
+ 403,
990
+ 18
991
+ ],
992
+ [
993
+ 404,
994
+ 11
995
+ ],
996
+ [
997
+ 405,
998
+ 14
999
+ ],
1000
+ [
1001
+ 406,
1002
+ 16
1003
+ ],
1004
+ [
1005
+ 407,
1006
+ 11
1007
+ ],
1008
+ [
1009
+ 408,
1010
+ 20
1011
+ ],
1012
+ [
1013
+ 409,
1014
+ 7
1015
+ ],
1016
+ [
1017
+ 410,
1018
+ 11
1019
+ ],
1020
+ [
1021
+ 411,
1022
+ 13
1023
+ ],
1024
+ [
1025
+ 412,
1026
+ 10
1027
+ ],
1028
+ [
1029
+ 413,
1030
+ 12
1031
+ ],
1032
+ [
1033
+ 414,
1034
+ 9
1035
+ ],
1036
+ [
1037
+ 415,
1038
+ 13
1039
+ ],
1040
+ [
1041
+ 416,
1042
+ 15
1043
+ ],
1044
+ [
1045
+ 417,
1046
+ 13
1047
+ ],
1048
+ [
1049
+ 418,
1050
+ 20
1051
+ ],
1052
+ [
1053
+ 419,
1054
+ 14
1055
+ ],
1056
+ [
1057
+ 420,
1058
+ 24
1059
+ ],
1060
+ [
1061
+ 421,
1062
+ 16
1063
+ ],
1064
+ [
1065
+ 422,
1066
+ 13
1067
+ ],
1068
+ [
1069
+ 423,
1070
+ 10
1071
+ ],
1072
+ [
1073
+ 424,
1074
+ 14
1075
+ ],
1076
+ [
1077
+ 425,
1078
+ 24
1079
+ ],
1080
+ [
1081
+ 426,
1082
+ 13
1083
+ ],
1084
+ [
1085
+ 427,
1086
+ 17
1087
+ ],
1088
+ [
1089
+ 428,
1090
+ 14
1091
+ ],
1092
+ [
1093
+ 429,
1094
+ 14
1095
+ ],
1096
+ [
1097
+ 430,
1098
+ 9
1099
+ ],
1100
+ [
1101
+ 431,
1102
+ 8
1103
+ ],
1104
+ [
1105
+ 432,
1106
+ 16
1107
+ ],
1108
+ [
1109
+ 433,
1110
+ 11
1111
+ ],
1112
+ [
1113
+ 434,
1114
+ 8
1115
+ ],
1116
+ [
1117
+ 435,
1118
+ 6
1119
+ ],
1120
+ [
1121
+ 436,
1122
+ 6
1123
+ ],
1124
+ [
1125
+ 437,
1126
+ 8
1127
+ ],
1128
+ [
1129
+ 438,
1130
+ 8
1131
+ ],
1132
+ [
1133
+ 439,
1134
+ 8
1135
+ ],
1136
+ [
1137
+ 440,
1138
+ 8
1139
+ ],
1140
+ [
1141
+ 441,
1142
+ 15
1143
+ ],
1144
+ [
1145
+ 442,
1146
+ 11
1147
+ ],
1148
+ [
1149
+ 443,
1150
+ 10
1151
+ ],
1152
+ [
1153
+ 444,
1154
+ 18
1155
+ ],
1156
+ [
1157
+ 445,
1158
+ 16
1159
+ ],
1160
+ [
1161
+ 446,
1162
+ 28
1163
+ ],
1164
+ [
1165
+ 447,
1166
+ 13
1167
+ ],
1168
+ [
1169
+ 448,
1170
+ 24
1171
+ ],
1172
+ [
1173
+ 449,
1174
+ 21
1175
+ ],
1176
+ [
1177
+ 450,
1178
+ 30
1179
+ ],
1180
+ [
1181
+ 451,
1182
+ 20
1183
+ ],
1184
+ [
1185
+ 452,
1186
+ 30
1187
+ ],
1188
+ [
1189
+ 453,
1190
+ 28
1191
+ ],
1192
+ [
1193
+ 454,
1194
+ 26
1195
+ ],
1196
+ [
1197
+ 455,
1198
+ 22
1199
+ ],
1200
+ [
1201
+ 456,
1202
+ 28
1203
+ ],
1204
+ [
1205
+ 457,
1206
+ 27
1207
+ ],
1208
+ [
1209
+ 458,
1210
+ 18
1211
+ ],
1212
+ [
1213
+ 459,
1214
+ 24
1215
+ ],
1216
+ [
1217
+ 460,
1218
+ 13
1219
+ ],
1220
+ [
1221
+ 461,
1222
+ 23
1223
+ ],
1224
+ [
1225
+ 462,
1226
+ 16
1227
+ ],
1228
+ [
1229
+ 463,
1230
+ 20
1231
+ ],
1232
+ [
1233
+ 464,
1234
+ 10
1235
+ ],
1236
+ [
1237
+ 465,
1238
+ 2
1239
+ ],
1240
+ [
1241
+ 466,
1242
+ 3
1243
+ ],
1244
+ [
1245
+ 467,
1246
+ 2
1247
+ ],
1248
+ [
1249
+ 468,
1250
+ 2
1251
+ ],
1252
+ [
1253
+ 473,
1254
+ 1
1255
+ ],
1256
+ [
1257
+ 475,
1258
+ 1
1259
+ ],
1260
+ [
1261
+ 477,
1262
+ 1
1263
+ ],
1264
+ [
1265
+ 478,
1266
+ 1
1267
+ ],
1268
+ [
1269
+ 486,
1270
+ 1
1271
+ ],
1272
+ [
1273
+ 502,
1274
+ 1
1275
+ ],
1276
+ [
1277
+ 503,
1278
+ 1
1279
+ ],
1280
+ [
1281
+ 508,
1282
+ 1
1283
+ ],
1284
+ [
1285
+ 517,
1286
+ 1
1287
+ ],
1288
+ [
1289
+ 521,
1290
+ 2
1291
+ ],
1292
+ [
1293
+ 524,
1294
+ 1
1295
+ ],
1296
+ [
1297
+ 529,
1298
+ 1
1299
+ ],
1300
+ [
1301
+ 531,
1302
+ 1
1303
+ ],
1304
+ [
1305
+ 547,
1306
+ 1
1307
+ ],
1308
+ [
1309
+ 554,
1310
+ 1
1311
+ ]
1312
+ ],
1313
+ "sourceReportSha256": "946ca2e4457eec76507de2e56913d3cc854a7eafd4106af26be8aafeb0d9f253"
1314
+ }
1315
+ },
1316
+ "osVersion": "27.0.1",
1317
+ "memory": {
1318
+ "lifetimePhysicalFootprintPeak": 43894696,
1319
+ "processPeakMinusBaselineCurrentUpper": 20250672,
1320
+ "productionNativeIvarBytes": 2194936,
1321
+ "countedNativeBytesAtActualRate": 13993408,
1322
+ "countedNativeBytes192k": 24625952,
1323
+ "bufferDeltaActualTo192k": 10632544,
1324
+ "conservative192kProjectionBytes": 33405808,
1325
+ "conservative192kProjectionWithin32MiB": true,
1326
+ "projectionScope": "Process lifetime peak minus post-require baseline current footprint, plus production module ivars (potential double count of lazily resident pages) and known native buffer delta. Includes runtime/bridge/diagnostic effects. This is an estimate; 192 kHz hardware/driver behavior was not measured.",
1327
+ "baselinePhysicalFootprintBytes": 23644024,
1328
+ "pressure": {
1329
+ "stepsPerSequence": 512,
1330
+ "notesPerStep": 32,
1331
+ "acceptedEdits": 120,
1332
+ "rejectedEdits": 0
1333
+ },
1334
+ "recoveryStatus": "passed-controlled-production-recovery-path",
1335
+ "baselineResidentBytes": 82001920,
1336
+ "residentHighWaterBytes": 125403136,
1337
+ "residentHighWaterIncreaseBytes": 43401216,
1338
+ "residentIncreaseWithin32MiB": false,
1339
+ "metricDistinction": "Native allocation accounting and charged physical footprint are reported separately from resident high-water, which also includes clean executable/shared mappings. No whole-process RSS <=32MiB or physical192kHz hardware measurement is claimed.",
1340
+ "pressureOnly192kProjectionBytes": 33078152
1341
+ },
1342
+ "controlledStreamRecovery": {
1343
+ "passed": true,
1344
+ "cycles": 10,
1345
+ "scope": "AVAudioEngine pause followed by unchanged production resumeAudioEngineAfterRouteChange helper; no hardware route change or OS setting change",
1346
+ "transportIdentityPreserved": true,
1347
+ "effectsAllocationSizePreserved": true,
1348
+ "allFourSequencesPlayingAfterEveryResume": true,
1349
+ "activeVoicesAfterEveryResume": [
1350
+ 32,
1351
+ 32,
1352
+ 32,
1353
+ 32,
1354
+ 32,
1355
+ 32,
1356
+ 32,
1357
+ 32,
1358
+ 32,
1359
+ 32
1360
+ ],
1361
+ "lifetimePhysicalFootprintPeak": 44222352,
1362
+ "newLifetimePeakDuringRecovery": false,
1363
+ "afterShutdown": {
1364
+ "virtualSize": 475656011776,
1365
+ "kernelResult": 0,
1366
+ "physFootprint": 26167208,
1367
+ "thermalState": 0,
1368
+ "residentSize": 91783168,
1369
+ "physFootprintPeak": 44222352,
1370
+ "nativeModuleIvarBytes": 2211360,
1371
+ "residentPeak": 100483072,
1372
+ "telemetryStructBytes": 16816
1373
+ }
1374
+ }
1375
+ }
1376
+ },
1377
+ "frontier": {
1378
+ "status": "android-headphone-distortion-investigation",
1379
+ "evidence": "frontier-physical-validation.json",
1380
+ "devicesMeasured": [
1381
+ "iPad (9th generation)",
1382
+ "Android CPH2639"
1383
+ ],
1384
+ "scenariosWithinMatchedPresentationFrameCriteria": [
1385
+ "Arcade",
1386
+ "simulation20"
1387
+ ],
1388
+ "simulation80": "Strict equivalent-load coverage below50% on both devices; not accepted under predeclared matching rule.",
1389
+ "androidAudio": "Backend xruns67/88 and callback peaks3.07/3.19 times deadline in the two simulation80 Audio-on phases.",
1390
+ "androidRendererElapsedWork": "Matched simulation20 p95-of-window-p95 elapsed+6.91%; investigated but causal attribution unresolved. This is not global thread-CPU p95 or direct eglSwap timing.",
1391
+ "limits": [
1392
+ "Native renderer elapsed-work and actual presentation interval are distinct metrics.",
1393
+ "Simulation population differences restrict causal interpretation; no claimed audio-driven FPS improvement.",
1394
+ "Subjective clean listening does not override measured backend xruns."
1395
+ ]
1396
+ },
1397
+ "nativeMemoryAccounting192k": {
1398
+ "androidBytes": 24649840,
1399
+ "iosBytes": 24625952,
1400
+ "scope": "Android renderer host allocation accounting and iOS native allocation accounting for buffers/transport/voice/limiter state; ABI/allocator/runtime differences and complete physical process/recovery peaks are not bounded.",
1401
+ "physicalPressureResult": "iPad process/bridge pressure measured at44100Hz; conservative charged-footprint/native-buffer projection33405808B at192k including controlled recovery peaks; pressure-only projection33078152B. Neither is a hardware192k measurement or whole-process RSS bound."
1402
+ },
1403
+ "listening": {
1404
+ "completed": false,
1405
+ "observations": [
1406
+ "Cesar described the initial iPad simulation80 Audio on demonstration positively. This is not acceptance of every sound, category-isolation case or both platforms.",
1407
+ "Cesar confirmed clean audio in the manual iPad Sim80 Audio-on diagnostic.",
1408
+ "Cesar confirmed clean audio in the manual Android Sim80 Audio-on diagnostic; technical backend xruns remain a separate failed result.",
1409
+ "Correction after headphone comparison: Cesar reports Android Sim80 saturation with many explosions; iPad remains clean. Android listening acceptance is withdrawn pending diagnosis.",
1410
+ "After the eight-output Android FIR correction, Cesar accepted live Sim80 with headphones as clean, without perceptible distortion; the short diagnostic reported zero backend xruns."
1411
+ ],
1412
+ "ipadSimulation80": {
1413
+ "status": "accepted-by-Cesar",
1414
+ "date": "2026-10-23",
1415
+ "app": "Isolated Frontier manual diagnostic",
1416
+ "scenario": "Sim80, Audio on, approximately30seconds",
1417
+ "reply": "Se escucha limpio",
1418
+ "questionScope": [
1419
+ "continuous motor",
1420
+ "explosions",
1421
+ "fanfares",
1422
+ "dropouts",
1423
+ "clicks",
1424
+ "saturation"
1425
+ ],
1426
+ "scopeLimit": "Applies to this iPad scenario only; Android and other sound/spatial/category cases remain separate."
1427
+ },
1428
+ "androidSimulation80": {
1429
+ "status": "accepted-by-Cesar-after-eight-output-FIR-correction",
1430
+ "date": "2026-10-23",
1431
+ "scenario": "Sim80 with many explosions, headphones",
1432
+ "latestObservation": "Clean, no perceptible distortion in the eight-output manual headphone candidate.",
1433
+ "supersedes": "Earlier Android saturation and the partially improved four-output candidate.",
1434
+ "samePcmComparison": {
1435
+ "liveXruns": 89,
1436
+ "replayXruns": 0,
1437
+ "humanObservation": "Live saturated; replay very little or none.",
1438
+ "scope": "Combined live physics and DSP versus exact captured PCM on an empty engine; not DSP-only attribution."
1439
+ },
1440
+ "correctionReport": "android-sim80-correction.json"
1441
+ }
1442
+ },
1443
+ "pending": [
1444
+ "Android maximum-load render criterion failed on CPH2639; controlled600-second acceptance not started",
1445
+ "Latest-source oneVoice host bypass total-time screen remains above2% after investigation",
1446
+ "Whole-process192k memory bound remains unestablished; native accounting/rate projections have limited scopes",
1447
+ "Android simulation20 renderer elapsed-work increase remains unresolved after investigation",
1448
+ "Strict simulation80 equivalent-load coverage inconclusive on both devices",
1449
+ "Remaining listening cases beyond the accepted manual Sim80 motor/explosion/fanfare case"
1450
+ ],
1451
+ "publication": {
1452
+ "push": false,
1453
+ "release": false
1454
+ },
1455
+ "nativeSourceCommit": "87b2c3354f182c5742cba84775b075552c80572c",
1456
+ "androidSim80Correction": "android-sim80-correction.json"
1457
+ }