feat(renaser): Fase 12 — la bocina del PC como capacidad de host
La Fase 11 dio al userspace un reloj; la Fase 12, una voz. Hasta hoy renaser solo sabía dibujar para llamar la atención. - Driver `drivers/altavoz`: el canal 2 del PIT como generador de onda cuadrada + la compuerta del puerto 0x61. El canal 0 —latido del kernel— no se toca. `tono(hz)` es su única vía; un 0 la silencia. - Capacidad `sys_tono(frecuencia_hz)` — la undécima función del host. La bocina es un recurso único: pertenece a la ventana ENFOCADA, como el teclado desde la Fase 8c. Al cambiar el foco, el compositor la calla; la nueva dueña la reclama en su próximo fotograma. - App nueva `tonada` (`apps/tonada/`, wasm32): toca una escala de Do mayor y la dibuja como una escalera de barras. Junta el reloj (`sys_tiempo_mono`) y la bocina (`sys_tono`). - `GENESIS` crece de 6 a 7 apps; `tonada` es la maestra del escritorio. Verificado en QEMU. Visual: la escalera de `tonada` recorre la escala con el tiempo. Sonido: con la bocina enrutada a un WAV, el PCM capturado es una onda cuadrada oscilante de ~375 Hz — la frecuencia media de la escala de Do mayor. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -873,3 +873,36 @@ un sentido del tiempo: el reloj monótono del sistema, como capacidad.
|
||||
capturas. Un `Alt+N` da a luz un segundo `pulso` ~15 s después del arranque;
|
||||
flotado junto al primero, su barra está en la MISMA fase — la prueba de que
|
||||
el compás se rige por el reloj absoluto, no por una cuenta de fotogramas.
|
||||
|
||||
## Fase 12 — La bocina del PC como capacidad de host — 2026-05-22
|
||||
|
||||
La Fase 11 le dio al userspace un reloj; la Fase 12, una voz. La bocina del PC
|
||||
—el canal 2 del PIT como generador de onda cuadrada— se suma a la matriz de
|
||||
capacidades. Hasta hoy renaser sólo sabía DIBUJAR para llamar la atención.
|
||||
|
||||
### Añadido
|
||||
- **Driver `drivers/altavoz`.** Programa el canal 2 del PIT a una frecuencia y
|
||||
abre la compuerta del puerto 0x61. El canal 0 del PIT es el latido del
|
||||
kernel; el canal 2 es de la bocina y de nadie más — no se perturban—.
|
||||
`tono(hz)` es su única vía; un `0` la silencia.
|
||||
- **Capacidad `sys_tono(frecuencia_hz)`** — la undécima función del host. La
|
||||
bocina es un recurso ÚNICO y global: para que dos apps no se la disputen,
|
||||
pertenece —como el teclado desde la Fase 8c— a la ventana ENFOCADA. Una app
|
||||
sin foco puede pedir un tono; sencillamente, no se oye. Al cambiar el foco,
|
||||
el compositor calla la bocina (`mover_foco`, `cerrar`): la nueva dueña la
|
||||
reclama en su próximo fotograma.
|
||||
- **App `tonada`** (`apps/tonada/`, `wasm32`). Toca una escala de Do mayor en
|
||||
bucle y la dibuja como una escalera de ocho barras, con la nota que suena
|
||||
encendida. Junta las dos capacidades nuevas del kernel: el reloj
|
||||
(`sys_tiempo_mono`) le marca el compás, la bocina (`sys_tono`) le da voz.
|
||||
- `tonada` encabeza el userspace de génesis: `GENESIS` pasa de 6 a 7 apps, con
|
||||
`tonada` como la ventana maestra —enfocada al arrancar, así suena de
|
||||
inmediato—.
|
||||
|
||||
### Verificado
|
||||
- QEMU. Visual: la escalera de `tonada` enciende la nota en curso y ésta
|
||||
recorre la escala con el tiempo (capturas con la 6.ª y la 1.ª nota vivas).
|
||||
Sonido: con la bocina enrutada a un WAV (`-audiodev wav` + `-machine
|
||||
pcspk-audiodev`), el PCM capturado —50 s— es una onda cuadrada oscilante de
|
||||
±24 000 de amplitud, con una frecuencia media de ~375 Hz: la de la escala de
|
||||
Do mayor.
|
||||
|
||||
Reference in New Issue
Block a user