Manual de Usuario: Configurador SoundBlocks

Especificaciones de sintaxis, arquitectura de red inalámbrica y guía de diagnóstico de errores para módulos SoundBlocks.

1. Introducción

Configurador SoundBlocks es el entorno de software diseñado para definir la comunicación interactiva y la síntesis de sonido entre los módulos de hardware SoundBlocks a través de una red inalámbrica local.

Cada módulo físico posee un identificador numérico único (ID) dentro del rango de 2 a 254. Un módulo transmite las lecturas de sus sensores a la red o actúa como receptor, activando muestras de audio y parámetros de síntesis sonora.

Nodo Emisor ID: 122
Sensor de Inclinación (ax)
➔ 122->ax:108
Red Inalámbrica Paquete de Datos
➔ 108<-ax:122@Vol[0,15]
Nodo Receptor ID: 108
Ajuste de Volumen

2. Inicio Rápido

Un script de configuración de SoundBlocks consta de reglas declaradas concisamente línea por línea. A continuación se presenta un script de configuración interactivo completo:

Ejemplo de Configuración Básica
# Configuración básica: Control de audio mediante sensor táctil
# 1. El Módulo 10 transmite la señal del sensor táctil t1 al Módulo 20
10->t1:20

# 2. El Módulo 20 escucha al Módulo 10 y reproduce la muestra de audio nº 3 al activarse t1
20<-t1:10@Play[3]
📌 Secuencia de Despliegue para Módulos:
  1. Escribe o pega tus reglas en el editor de código.
  2. Selecciona la interfaz de red activa en Configurar ➔ Dirección IP.
  3. Haz clic en Verificar (Ctrl+R) para validar la sintaxis.
  4. Haz clic en Cargar (Ctrl+U) para transmitir la configuración a la red de módulos.

3. Reglas de Envío (->)

Especifica qué sensores integrados emite un módulo local a la red y define los módulos de destino autorizados.

Estructura de la Regla de Envío

ID_EMISOR -> SENSOR_1,SENSOR_2 : DESTINO_1,DESTINO_2

Especificaciones Estructurales

⚠️ Límites del Compilador para Reglas de Envío:
  • Máximo 3 bloques o rangos de destino por línea de instrucción.
  • Máximo 5 módulos receptores explícitos por regla.
  • Máximo 40 reglas de envío por módulo individual.

Ejemplo Práctico de Envío

Transmisión de Datos de Sensores
# El Módulo 122 transmite el sensor táctil t1 y el acelerómetro ax a los módulos 102, 105, 106, 107 y 108
122->t1,ax:102,105-108

# El Módulo 50 transmite la velocidad angular gx a TODOS los módulos conectados (Broadcast)
50->gx:255

4. Reglas de Recepción (<-)

Configura la acción de audio o el parámetro de síntesis ejecutado por el módulo local al recibir datos de sensor desde un nodo emisor.

Estructura de la Regla de Recepción

ID_RECEPTOR <- SENSOR : ID_EMISOR @ACCIÓN [MAPEO]

Mapeo de Valores [Mín, Máx]

El parámetro entre corchetes [...] define el rango de escalado de control:

⚠️ Límite de Memoria de Recepción:

Un módulo puede almacenar un máximo de 30 reglas de recepción en su memoria física.

Ejemplo Práctico de Recepción

Mapeo y Ejecución de Acciones
# El Módulo 108 escala el volumen (rango 0-15) según la aceleración 'ax' del Módulo 122
108<-ax:122@Vol[0,15]

# El Módulo 102 activa la muestra nº 3 al recibir la señal táctil 't7' del Módulo 108
102<-t7:108@Play[3]

# El Módulo 40 detiene la reproducción al recibir 't1' del Módulo 10
40<-t1:10@Stop

5. Referencia de Sensores

Índice interactivo de sensores integrados en el hardware:

Código (SBC) Descripción del Sensor
t1 - t7Sensores táctiles capacitivos (7 entradas independientes).
ax, ay, azAcelerómetro: Inclinación / Aceleración lineal en ejes X, Y, Z.
aax, aay, aazAcelerómetro Absoluto: Valores absolutos (|X|, |Y|, |Z|).
gx, gy, gzGiroscopio: Velocidad angular en ejes X, Y, Z.
agx, agy, agzGiroscopio Absoluto: Velocidad de rotación angular absoluta.
rx, ry, rzOrientación Espacial 3D (Guiñada, Cabeceo, Alabeo).
No se encontraron sensores coincidentes.

6. Referencia de Acciones

Comandos de reproducción y parámetros de síntesis sonora:

Comando Descripción de la Función Rango Válido
PlayReproduce la muestra de audio especificada.1 - 127
LoopReproduce la muestra de audio especificada continuamente.1 - 127
PausePausa la reproducción activa de la muestra.Sin parámetro
StopDetiene la reproducción por completo.Sin parámetro
ResumeReanuda la reproducción de audio pausada.Sin parámetro
VolAjusta el volumen maestro del módulo.1 - 30
PlayStopAlterna entre reproducir y detener al activarse.1 - 127
PlayPauseAlterna entre reproducir/pausar y reanudar al activarse.1 - 127
PlayTouchReproduce la muestra solo mientras se mantiene la entrada táctil.1 - 127
PlaySweepAvanza progresivamente entre muestras de audio.1 - 127
Wave1 - Wave3Forma de onda del oscilador (1=Triangular, 2=Diente de sierra, 3=Cuadrada).1 - 3
Freq1 - Freq3Frecuencia del oscilador del sintetizador.1 - 127
Gain1 - Gain3Nivel de volumen del oscilador individual.1 - 127
GainNoiseNivel de volumen del generador de ruido blanco.1 - 127
No se encontraron acciones coincidentes.

7. Solución de Problemas (Consola y Errores)

Diagnósticos basados en los mensajes de error devueltos por el verificador del compilador:

⚠️ Error: Send ID must be between 2 and 254.

Causa: El ID del módulo emisor está fuera del rango asignable por hardware (ej. ID 0, 1 o mayor a 254).

Solución: Revisa la etiqueta del hardware del módulo y asigna un ID entre 2 y 254.

⚠️ Error: Maximum 5 IDs per message.

Causa: La cantidad total de IDs receptores en una sola línea de envío (->) supera los 5 nodos.

Solución: Divide los destinos en varias líneas de instrucción o utiliza el ID de Broadcast 255.

⚠️ Error: Maximum number of sends (40) reached for module X.

Causa: El módulo ha superado el límite de asignación de memoria para reglas de transmisión salientes.

Solución: Combina varios sensores en una sola línea de envío (ej. 12 -> t1,t2,ax : 20 en lugar de 3 reglas separadas).

⚠️ Error: on upload connect.

Causa: No se pudo abrir la conexión WebSocket con la dirección IP de destino en el puerto 12001.

Solución:
1. Asegúrate de que tu equipo esté conectado a la misma red inalámbrica que los módulos SoundBlocks.
2. Confirma que la subred en Configurar ➔ Dirección IP coincida con tu adaptador de red activo.