# Musitrack — componentes y avisos de terceros

Revisión documental: 15 de octubre de 2026. Musitrack 0.9.4.1, actualización de la base activa 0.9.4; no incorpora recursos nuevos. Este registro acompaña al producto, no concede derechos sobre el resto de Musitrack y no es una garantía jurídica. Estado: **avisos MIT verificados; procedencia completa y runtime del binario pendientes**. No considerar el paquete aprobado para publicación por este documento.

## 1. Signalsmith Stretch — componente distribuido

- Titular: **Copyright (c) 2022 Geraint Luff / Signalsmith Audio Ltd.**
- Proyecto: <https://github.com/Signalsmith-Audio/signalsmith-stretch>.
- Paquete web identificado: `signalsmith-stretch`, metadatos 1.3.2, commit `a670068d9aeb64913331d5cc29337b19a457a7df`.
- Fuente del binario: [`web/emscripten/main.js` en ese commit](https://github.com/Signalsmith-Audio/signalsmith-stretch/blob/a670068d9aeb64913331d5cc29337b19a457a7df/web/emscripten/main.js). Blob Git `a12633353a0b2422c2a00835e6239ea6dfe4abaa`.
- Archivos de Musitrack: `vendor/signalsmith-stretch/wasm-data.mjs`; integración mediante `vendor/signalsmith-stretch/core.mjs`, `pitch-processor.js`, `pitch-engine.js`, `offscreen.js` y `content.js`.
- Licencia: **MIT**. [Texto completo incluido](vendor/signalsmith-stretch/LICENSE.txt); [texto original fijado](https://github.com/Signalsmith-Audio/signalsmith-stretch/blob/a670068d9aeb64913331d5cc29337b19a457a7df/LICENSE.txt).
- Evidencia: los 64 494 bytes WASM empaquetados coinciden exactamente con los extraídos del cargador original, sin ejecutarlo. SHA-256 `83869197b3c5ebf9fc8c517a1586aef1ecf77404842218d62b9c0e82882d8ca3`. El aviso MIT local coincide con el original al normalizar saltos de línea.
- Adaptación: binario sin modificar, almacenado como base64; el cargador JavaScript genérico se sustituye por el adaptador estático local `core.mjs`. El control del AudioWorklet y la integración con Musitrack son archivos separados. No se distribuye el cargador genérico completo ni la demo upstream.

**Precisión sobre la versión:** `main.js` es idéntico al publicado en [`94a41f943641d020c2439e6891aac2828018c664`](https://github.com/Signalsmith-Audio/signalsmith-stretch/commit/94a41f943641d020c2439e6891aac2828018c664), el 18 de abril de 2025. La cabecera C++ de esa revisión declara 1.3.0. Por tanto, 1.3.2 describe los metadatos web de la revisión seleccionada; no demuestra una recompilación con el DSP 1.3.2. No se ha cambiado el binario para esta revisión legal.

**Comprobación adicional del paquete publicado:** el [tarball oficial de npm 1.3.2](https://registry.npmjs.org/signalsmith-stretch/-/signalsmith-stretch-1.3.2.tgz), SHA-256 `345e774c8d5f680bc0156d788ff0f3f08d47bd307a8a262a7c0d5d887b230909`, contiene el mismo WASM en sus dos envoltorios JS/MJS. Se verificaron la integridad SHA-512/SHA-1 publicada por el registro y sus cuatro entradas sin instalar ni ejecutar el paquete. No incluye un archivo de licencia: Musitrack sí conserva el texto MIT completo, coincidente con la [licencia raíz del commit declarado por npm](https://github.com/Signalsmith-Audio/signalsmith-stretch/blob/222093b4cc13ddb4d07c826bc3c1559326091731/LICENSE.txt), salvo saltos de línea y el salto final. Ese commit y las versiones de Node/npm del registro corresponden al empaquetado; no identifican el compilador Emscripten del WASM. El tarball se consultó como evidencia, no se incorporó al producto.

## 2. Signalsmith Linear — dependencia del motor

- Titular: **Copyright (c) 2025 Signalsmith Audio**.
- Proyecto: <https://github.com/Signalsmith-Audio/linear>.
- Uso: FFT/STFT invocada desde la cabecera C++ de Stretch; incorporada al motor distribuido en `vendor/signalsmith-stretch/wasm-data.mjs`, no como un paquete JavaScript separado.
- Licencia: **MIT**. [Texto completo incluido](vendor/signalsmith-stretch/LINEAR-LICENSE.txt); [fuente de la revisión 0.1.2](https://github.com/Signalsmith-Audio/linear/blob/0.1.2/LICENSE.txt).
- Versión: **revisión realmente compilada no confirmada**. El [CMake de la publicación del binario](https://github.com/Signalsmith-Audio/signalsmith-stretch/blob/94a41f943641d020c2439e6891aac2828018c664/CMakeLists.txt) declara 0.1.2; el [CMake del commit fijado](https://github.com/Signalsmith-Audio/signalsmith-stretch/blob/a670068d9aeb64913331d5cc29337b19a457a7df/CMakeLists.txt) declara 0.6.4. Una dependencia declarada no demuestra por sí sola el checkout utilizado en una compilación web preexistente.
- Evidencia: licencias oficiales de Linear 0.1.2, 0.3.1 y 0.6.4 idénticas al aviso local (salvo saltos de línea). También coincide la licencia de `146b26f91b48835d665fa0498d64d9617818d27a`, consultada como comparación, no como prueba de la versión incorporada.
- Cambios: Musitrack no recompiló ni modificó el binario; no se dispone del historial de cambios del checkout usado por el productor del WASM.

## 3. Condiciones verificadas de estas dos licencias MIT

Permiten uso, modificación, distribución y venta, por lo que no requieren que Musitrack sea gratuito ni impiden por sí mismas funciones de pago o aportes. Deben conservarse el aviso de copyright y el aviso de permiso en las copias o partes sustanciales correspondientes; aquí se conserva el texto completo, incluida la exclusión de garantías.

Estas licencias no imponen por sí solas publicar el código de Musitrack, entregar el código fuente del motor ni adoptar MIT para todo el proyecto. No exigen un logotipo o crédito permanente en pantalla: la sección de Ayuda facilita voluntariamente el acceso a los avisos. Esto no resuelve las obligaciones de otros componentes aún no identificados, patentes, marcas o derechos sobre la música reproducida.

## 4. Toolchain/runtime del WASM — pendiente antes de cerrar la publicación

El [script de compilación upstream](https://github.com/Signalsmith-Audio/signalsmith-stretch/blob/a670068d9aeb64913331d5cc29337b19a457a7df/web/emscripten/compile.sh) utiliza Emscripten y puede instalar `latest`; no fija en ese script el SDK efectivo. El binario no contiene secciones personalizadas de procedencia (`producers`, nombres u otras). La fuente usa la biblioteca estándar C++.

No se ha reconstruido de forma verificable la lista de objetos de runtime enlazados ni sus versiones (por ejemplo, libc/libc++, funciones matemáticas o de asignación de memoria). **No se afirma que todos esos componentes concretos estén presentes ni se les asigna una licencia por inferencia.** La [documentación oficial de licencias de Emscripten](https://emscripten.org/docs/introducing_emscripten/emscripten_license.html) describe licencias de su proyecto y dependencias, pero la documentación actual no prueba las condiciones exactas del binario histórico.

Para cerrar: obtener información técnica verificable sobre el build original y sus avisos aplicables; un registro/SBOM es una posible evidencia, no una obligación universal de las licencias MIT. El árbol público de la revisión del binario y las consultas de releases/workflows no proporcionaron esos datos. La ausencia de metadatos no demuestra por sí sola una infracción ni necesidad de recompilar. Solo considerar una compilación trazable separada si se demuestra un problema concreto que no pueda resolverse razonablemente completando los avisos del binario existente, con la autorización correspondiente y nueva validación de audio. No se ha contactado a autores ni recompilado el motor. No se han añadido textos de licencia de versiones arbitrarias como si resolvieran este pendiente.

## 5. Otros recursos revisados

| Recurso y archivos | Evidencia / clasificación | Autor, origen y estado |
| --- | --- | --- |
| Iconos de controles SVG en `content.js` (`ICONS`) | 28 de los 29 SVG literales coinciden exactamente con trazados añadidos en parches locales del desarrollo asistido por IA del 02/10, 08/10 y 10/10 de 2026 (America/Lima). El icono `repeat` se redibujó después en la base 0.9.4; `linkOff` deriva de `link` con una línea diagonal, según el registro local de cambios. No se importa un paquete de iconos. | Construcción local trazada, sin fuente externa identificada que permita asignar otra licencia o crédito. No se atribuyen a Feather/Lucide por parecido. El historial de generación por IA no garantiza originalidad ni derechos; si se identifica una copia/adaptación externa, comprobar su licencia. |
| Marca: `icons/icon16.png`, `icon32.png`, `icon48.png`, `icon128.png` | Localizado el parche del 08/10/2026 que creó el SVG geométrico y su rasterizador. La comparación en Chrome aislado reprodujo exactamente los píxeles de los cuatro tamaños a partir del SVG local conservado. | Procedencia local de construcción; no equivale a verificar originalidad, titularidad o disponibilidad de la marca Musitrack. No se declara una licencia ajena inexistente. |
| Tipografía y emoji en CSS, `content.js` y HTML | Se solicitan fuentes del sistema (`system-ui`, `-apple-system`, `BlinkMacSystemFont`, Segoe UI, sans-serif) y caracteres Unicode. No se distribuyen TTF/OTF/WOFF ni imágenes de emoji. | Renderizados por el sistema del usuario; no se identificó un paquete tipográfico o de emoji que requiera adjuntar licencia como recurso redistribuido. Esto no autoriza a extraer o empaquetar esas fuentes en el futuro. |
| Colores, estilos y referencias visuales | `appearance.css`, `pages.css`, `popup.css`, estilos de `content.js`. Referencia de diseño documentada en el proyecto; no contiene las fotografías/JPG conceptuales. | Conceptos y paleta del proceso de diseño local; no hay textura fotográfica distribuida. No se certifican derechos de imágenes conceptuales o material publicitario que se use fuera de este paquete. |
| Percusión y metrónomo | `rhythm-engine.js`, síntesis alternativa en `content.js`; osciladores, ruido generado y filtros de Web Audio. | No hay MP3/WAV/OGG, muestras grabadas ni bancos de terceros distribuidos. No se encontró procedencia externa declarada de esos fragmentos de síntesis; no se inventan créditos por técnicas generales. |
| Patrones rítmicos | Tablas y reglas en `content.js`; cuatro variantes de práctica. | No hay MIDI ni transcripciones de canciones empaquetadas. Sin fuente musical específica identificada. No es una autorización para incorporar partituras o grabaciones ajenas. |
| BPM y mezcla | `tempo-analysis.js`, `tempo-processor.js`, `audio-mixer.js` | Implementación local de energía/autocorrelación, ganancias y limitación; sin biblioteca adicional identificada. Usar una técnica matemática no acredita copia de una implementación concreta. El análisis no prueba ausencia de fragmentos copiados sin registrar. |
| Integración y textos | `content.js`, `popup.js`, `settings.js`, `shortcuts.js`, `appearance.js`, `pitch-engine.js`, `service-worker.js`, `offscreen.js`; HTML y manifest. | Código y redacción locales sin avisos de otros proveedores identificados. Las APIs del navegador no se redistribuyen como bibliotecas. Falta un registro histórico completo de las fuentes de cada fragmento; no se certifica originalidad ni se cambia la licencia general. |

## 6. Consultado o usado para desarrollo, pero no distribuido

- SoundTouchJS aparece como candidato evaluado en `work/audio-candidates/`, no en la base activa ni en sus imports. No se añade su licencia MPL al producto como si se incorporara esa biblioteca. Si se distribuyen los materiales de evaluación, requieren una revisión separada.
- Node, Playwright, Chrome, Python y utilidades de empaquetado son herramientas del entorno; no se incluyen en la extensión. Esto es distinto de código de runtime que una compilación pueda incorporar al WASM.
- Ejemplos/documentación de APIs son referencias; si se confirma la copia de un ejemplo concreto, registrar su origen y licencia. No se atribuye todo el código al proveedor de la API ni se presupone que todo ejemplo carece de condiciones.
- Los vídeos de YouTube/Musihacks, las capturas aportadas por el usuario y las imágenes conceptuales no se incluyen en este paquete. Las licencias del motor no conceden derechos sobre ellos ni autorización para usar marcas o contenidos en publicidad. Esta revisión no decide los términos de esos servicios ni las excepciones legales aplicables a cada uso.

## 7. Mantenimiento y límites

Conservar este registro, `LICENSES/README.md` y ambos textos MIT en el paquete final. Para cada recurso nuevo: documentar archivo, versión o commit, origen, titular, licencia exacta, cambios y condiciones de uso/distribución; verificar dependencias transitivas; marcar incertidumbres antes de publicar. Revisar el ZIP, no solo la carpeta de trabajo.

Pendientes principales: build/objetos de runtime del WASM y revisión exacta de Linear. La creación local de los iconos está mejor documentada, sin que eso cierre una revisión de originalidad de todo el código ni las obligaciones de una copia ajena que pueda identificarse posteriormente. Una beta gratuita o la recepción de donaciones no elimina obligaciones. No se declara compatibilidad jurídica universal, ausencia de riesgos ni autorización para publicar.
