{"id":1113,"date":"2026-05-06T08:17:23","date_gmt":"2026-05-06T12:17:23","guid":{"rendered":"https:\/\/www.gradio.net\/?page_id=1113"},"modified":"2026-05-12T08:40:06","modified_gmt":"2026-05-12T12:40:06","slug":"gr-processor","status":"publish","type":"page","link":"http:\/\/www.gradio.net\/index.php\/gr-processor\/","title":{"rendered":"GR-Processor"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"283\" src=\"https:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor.png\" alt=\"\" class=\"wp-image-1114\" srcset=\"http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor.png 829w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-300x102.png 300w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-768x262.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">GR PROCESSOR FM<\/h2>\n\n\n\n<p><strong>GR Processor<\/strong> es un procesador experimental de audio multibanda dise\u00f1ado para emisoras de radio FM. Procesa el audio en tiempo real separ\u00e1ndolo en hasta <strong>6 bandas de frecuencia independientes<\/strong>, aplicando compresor, clipper y control de ganancia a cada banda antes de sumarlas en una se\u00f1al de alta densidad sonora, lista para transmisi\u00f3n.<\/p>\n\n\n\n<p>El procesador incluye un <strong>codificador MPX<\/strong> para la generaci\u00f3n de la se\u00f1al est\u00e9reo FM seg\u00fan el est\u00e1ndar ITU-R BS.450 (pre-\u00e9nfasis 75 \u00b5s NRSC o 50 \u00b5s ITU), activo cuando la tarjeta de salida opera a \u2265 96 kHz.<\/p>\n\n\n\n<p>Descarga las versiones para Debian 12 (+?)<\/p>\n\n\n\n<p><a href=\"https:\/\/gradio.net\/descargas\/gradio-rust\/GR-Processor\/gr-processor_0.1.2_amd64.deb\">gr-processor_0.1.2_amd64.deb<\/a> <br><a href=\"https:\/\/gradio.net\/descargas\/gradio-rust\/GR-Processor\/gr-processor_0.1.2_arm64.deb\">gr-processor_0.1.2_arm64.deb<\/a><br><a href=\"https:\/\/gradio.net\/descargas\/gradio-rust\/GR-Processor\/GR-processor-v0.1.2-amd64.zip\">GR-processor-v0.1.2-amd64.zip<\/a><br><a href=\"https:\/\/gradio.net\/descargas\/gradio-rust\/GR-Processor\/GR-processor-v0.1.2-arm64.zip\">GR-processor-v0.1.2-arm64.zip<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Requisitos del sistema<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Componente<\/th><th>M\u00ednimo<\/th><th>Recomendado<\/th><\/tr><\/thead><tbody><tr><td>OS<\/td><td>Linux (ALSA\/PipeWire)<\/td><td>Debian 12+ \/ Ubuntu 22.04+<\/td><\/tr><tr><td>CPU<\/td><td>x86_64 o ARM64<\/td><td>Cualquier dual-core moderno<\/td><\/tr><tr><td>RAM<\/td><td>256 MB<\/td><td>512 MB<\/td><\/tr><tr><td>Audio<\/td><td>Tarjeta ALSA compatible<\/td><td>2 tarjetas separadas (entrada\/salida)<\/td><\/tr><tr><td>Latencia<\/td><td>512 frames (~10 ms)<\/td><td>256 frames (~5 ms)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Inicio r\u00e1pido<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Conectar audio<\/strong>: conecta la fuente de audio (reproductor, consola) a la <strong>tarjeta de entrada<\/strong> y el destino (excitador FM, grabadora) a la <strong>tarjeta de salida<\/strong>. Si solo hay una tarjeta, se usa la misma para entrada y salida (loopback).<\/li>\n\n\n\n<li><strong>Arrancar la aplicaci\u00f3n<\/strong>: <code>.\/target\/release\/gr-processor<\/code><\/li>\n\n\n\n<li><strong>Verificar audio<\/strong>: los metros <strong>INPUT<\/strong> (arriba) deben moverse al recibir audio. Los metros <strong>OUTPUT<\/strong> muestran la se\u00f1al procesada.<\/li>\n\n\n\n<li><strong>Cargar un preset<\/strong>: en el selector <strong>PRESET<\/strong> (arriba a la derecha), elige <strong>VOICE<\/strong> para locutores o <strong>ROCK<\/strong> para m\u00fasica general, y pulsa <strong>\u25b6 LOAD<\/strong>.<\/li>\n\n\n\n<li><strong>Ajustar<\/strong>: mueve el control <strong>OUT GAIN<\/strong> hasta que el nivel de salida sea el deseado. El limitador <strong>LIM<\/strong> controla el pico m\u00e1ximo (normalmente \u22120.3 dBFS).<\/li>\n\n\n\n<li><strong>Stand By<\/strong>: pulsa <strong>\u23f8 STAND BY<\/strong> para comparar la se\u00f1al sin procesar con la procesada. Cuando est\u00e1 activo, el audio pasa directo sin ning\u00fan efecto DSP.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Interfaz Modo Escritorio<\/h2>\n\n\n\n<p>El modo escritorio muestra el procesador en pantalla completa con todos los controles visibles simult\u00e1neamente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"686\" src=\"https:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processsor-Desk-1024x686.png\" alt=\"\" class=\"wp-image-1115\" style=\"width:595px;height:auto\" srcset=\"http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processsor-Desk-1024x686.png 1024w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processsor-Desk-300x201.png 300w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processsor-Desk-768x514.png 768w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processsor-Desk.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Columnas de banda (B1\u2013B6)<\/h3>\n\n\n\n<p>Cada columna representa una banda de frecuencias. Las bandas inactivas (m\u00e1s all\u00e1 del n\u00famero seleccionado) aparecen <strong>atenuadas<\/strong> (22% de opacidad).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Elemento<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><strong>B1..B6<\/strong><\/td><td>N\u00famero de banda y rango de frecuencias<\/td><\/tr><tr><td><strong>VU<\/strong><\/td><td>V\u00fametro LED del nivel de se\u00f1al en esa banda (verde \u2192 amarillo \u2192 rojo)<\/td><\/tr><tr><td><strong>GR<\/strong><\/td><td>Meter de Gain Reduction \u2014 indica cu\u00e1nta compresi\u00f3n se est\u00e1 aplicando (azul, desde arriba)<\/td><\/tr><tr><td><strong>THR<\/strong><\/td><td>Umbral de compresi\u00f3n (dBFS)<\/td><\/tr><tr><td><strong>RATIO<\/strong><\/td><td>Relaci\u00f3n de compresi\u00f3n (1:1 = sin compresi\u00f3n, 20:1 = limitador)<\/td><\/tr><tr><td><strong>ATK<\/strong><\/td><td>Tiempo de ataque en ms \u2014 rapidez con que reacciona al nivel superado<\/td><\/tr><tr><td><strong>REL<\/strong><\/td><td>Tiempo de release en ms \u2014 rapidez con que suelta la ganancia<\/td><\/tr><tr><td><strong>GAIN<\/strong><\/td><td>Makeup gain (dB) \u2014 compensaci\u00f3n de nivel despu\u00e9s de comprimir<\/td><\/tr><tr><td><strong>CLIP<\/strong><\/td><td>Activa\/desactiva el clipper suave (tanh) en esa banda<\/td><\/tr><tr><td><strong>LVL<\/strong><\/td><td>Nivel de clipper (dBFS) \u2014 nivel al que empieza el clipping suave<\/td><\/tr><tr><td><strong>ON<\/strong><\/td><td>Activa\/desactiva el procesamiento completo de la banda (bypass de banda)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Interfaz Modo Rack 3U<\/h2>\n\n\n\n<p>El modo Rack simula visualmente el <strong>frente de un procesador de rack de 3 unidades<\/strong> (19&#8243;, 133 mm de altura). Es ideal para uso en estudio o sala de control.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"283\" src=\"https:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-1.png\" alt=\"\" class=\"wp-image-1116\" srcset=\"http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-1.png 829w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-1-300x102.png 300w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-1-768x262.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Caj\u00f3n de configuraci\u00f3n de banda<\/h3>\n\n\n\n<p>El <strong>caj\u00f3n<\/strong> (panel inferior deslizable) se abre haciendo <strong>clic en cualquier banda<\/strong> del strip. Contiene los mismos knobs de configuraci\u00f3n que el modo escritorio.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"823\" height=\"149\" src=\"https:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-Cajon.png\" alt=\"\" class=\"wp-image-1117\" style=\"width:596px;height:auto\" srcset=\"http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-Cajon.png 823w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-Cajon-300x54.png 300w, http:\/\/www.gradio.net\/wp-content\/uploads\/2026\/05\/GR-Processor-Cajon-768x139.png 768w\" sizes=\"auto, (max-width: 823px) 100vw, 823px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pesta\u00f1as B1\u2013B6<\/strong>: cambian la banda configurada sin cerrar el caj\u00f3n<\/li>\n\n\n\n<li><strong>Bot\u00f3n \u25b2<\/strong>: cierra el caj\u00f3n<\/li>\n\n\n\n<li>El caj\u00f3n se abre con animaci\u00f3n suave hacia abajo<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cambio de modo<\/h3>\n\n\n\n<p>La <strong>barra de modo<\/strong> (visible en ambas vistas):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u229e ESCRITORIO<\/strong> \u2014 vista expandida con todas las columnas<\/li>\n\n\n\n<li><strong>\u25a3 RACK 3U<\/strong> \u2014 vista compacta estilo rack de 19&#8243;<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Controles globales<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">BANDS (SpinButton, 2\u20136)<\/h3>\n\n\n\n<p>Selecciona el n\u00famero de bandas activas. Al cambiar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Las frecuencias de corte se ajustan autom\u00e1ticamente para cubrir todo el espectro (20 Hz \u2013 20 kHz)<\/li>\n\n\n\n<li>Las bandas excedentes se aten\u00faan visualmente y dejan de procesar<\/li>\n<\/ul>\n\n\n\n<p><strong>Crossovers por defecto seg\u00fan n\u00famero de bandas:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Bandas<\/th><th>Frecuencias de corte<\/th><\/tr><\/thead><tbody><tr><td>2<\/td><td>800 Hz<\/td><\/tr><tr><td>3<\/td><td>300 Hz \u00b7 3 kHz<\/td><\/tr><tr><td>4<\/td><td>150 Hz \u00b7 1 kHz \u00b7 6 kHz<\/td><\/tr><tr><td>5<\/td><td>120 Hz \u00b7 400 Hz \u00b7 2 kHz \u00b7 6 kHz<\/td><\/tr><tr><td>6<\/td><td>80 Hz \u00b7 320 Hz \u00b7 1.2 kHz \u00b7 4.8 kHz \u00b7 12 kHz<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">IN GAIN \/ OUT GAIN (deslizador, \u221212 a +12 dB)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>IN GAIN<\/strong>: ganancia aplicada a la entrada antes de cualquier procesamiento. \u00datil para nivelar la se\u00f1al de entrada.<\/li>\n\n\n\n<li><strong>OUT GAIN<\/strong>: ganancia aplicada a la salida despu\u00e9s del limitador. Controla el nivel final entregado a la tarjeta de salida.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">LIMITER (deslizador, \u22126 a 0 dBFS)<\/h3>\n\n\n\n<p>Umbral del limitador de pico final (brick-wall). El limitador act\u00faa sobre la se\u00f1al sumada despu\u00e9s de todas las bandas. Valor t\u00edpico para FM: <strong>\u22120.3 dBFS<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Procesamiento por banda<\/h2>\n\n\n\n<p>El audio pasa por la siguiente cadena en cada banda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Entrada \u2192 &#91;Crossover LR4] \u2192 &#91;Compresor] \u2192 &#91;Clipper] \u2192 Suma \u2192 &#91;Limitador] \u2192 Salida<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Crossover Linkwitz-Riley 4\u00b0 orden (LR4)<\/h3>\n\n\n\n<p>El crossover divide la se\u00f1al usando filtros <strong>Linkwitz-Riley de 4\u00b0 orden<\/strong> (cascada de dos Butterworth de 2\u00b0 orden). Propiedades:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La suma de todas las bandas es plana en magnitud (sin coloraci\u00f3n)<\/li>\n\n\n\n<li>\u22126 dB en la frecuencia de corte<\/li>\n\n\n\n<li>Fase coherente entre bandas<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compresor (linked stereo, feed-forward, RMS)<\/h3>\n\n\n\n<p><strong>Linked stereo<\/strong>: L y R reciben la misma ganancia calculada a partir de la potencia total (L\u00b2 + R\u00b2). Preserva la imagen est\u00e9reo durante la compresi\u00f3n.<\/p>\n\n\n\n<p><strong>Feed-forward<\/strong>: detecta el nivel en la entrada (no la salida). Comportamiento m\u00e1s predecible.<\/p>\n\n\n\n<p><strong>Par\u00e1metros:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Par\u00e1metro<\/th><th>Rango<\/th><th>Efecto<\/th><\/tr><\/thead><tbody><tr><td><strong>THR<\/strong> (Threshold)<\/td><td>\u221260 a 0 dBFS<\/td><td>Nivel a partir del cual comprime<\/td><\/tr><tr><td><strong>RATIO<\/strong><\/td><td>1:1 a 20:1<\/td><td>Fuerza de la compresi\u00f3n. 1:1 = transparente, \u221e:1 = limitador<\/td><\/tr><tr><td><strong>ATK<\/strong> (Attack)<\/td><td>0.1 a 200 ms<\/td><td>Rapidez de respuesta. Valores bajos = compresi\u00f3n m\u00e1s agresiva<\/td><\/tr><tr><td><strong>REL<\/strong> (Release)<\/td><td>10 a 2000 ms<\/td><td>Tiempo para soltar la ganancia. Valores altos = m\u00e1s \u00abpump\u00bb<\/td><\/tr><tr><td><strong>GAIN<\/strong> (Makeup)<\/td><td>0 a 24 dB<\/td><td>Compensa la ganancia perdida por la compresi\u00f3n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Indicador GR<\/strong> (Gain Reduction): el meter azul de cada banda muestra cu\u00e1nta reducci\u00f3n de ganancia est\u00e1 aplicando el compresor. Si el meter GR est\u00e1 inactivo, no hay compresi\u00f3n en esa banda.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Clipper suave (tanh)<\/h3>\n\n\n\n<p>Aplica una funci\u00f3n tangente hiperb\u00f3lica que limita el nivel de forma suave, generando arm\u00f3nicos impares que suenan musicalmente densos (similar a la saturaci\u00f3n de transformadores anal\u00f3gicos).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Par\u00e1metro<\/th><th>Efecto<\/th><\/tr><\/thead><tbody><tr><td><strong>CLIP<\/strong> (checkbox)<\/td><td>Activa\/desactiva el clipper en la banda<\/td><\/tr><tr><td><strong>LVL<\/strong><\/td><td>Nivel al que el clipper entra en acci\u00f3n (\u221212 a 0 dBFS)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Consejo<\/strong>: para sonido de radio denso, usar CLIP habilitado con LVL entre \u22121 y \u22120.5 dBFS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Secci\u00f3n MPX<\/h2>\n\n\n\n<p>El codificador MPX convierte la se\u00f1al est\u00e9reo procesada en la se\u00f1al compuesta FM est\u00e1ndar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Se\u00f1al MPX FM est\u00e1ndar (ITU-R BS.450)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>MPX = (L+R)\u00d70.45  +  Piloto(19kHz)\u00d70.09  +  (L\u2212R)\u00d70.45\u00d7cos(38kHz)\n      \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n      Canal principal  Tono piloto est\u00e9reo    Subportadora DSB-SC\n      monocompatible   (se\u00f1aliza est\u00e9reo)     (contiene diferencia L\u2212R)<\/code><\/pre>\n\n\n\n<p>El receptor FM usa el piloto de 19 kHz para regenerar los 38 kHz y demodular el canal de diferencia (L\u2212R), reconstruyendo L y R.<\/p>\n\n\n\n<p><strong>Requisito de sample rate<\/strong>: la subportadora de 38 kHz requiere que la tarjeta de salida opere a <strong>\u2265 96 kHz<\/strong>. A 48 kHz, el procesador entrega solo el canal principal (L+R) con pre-\u00e9nfasis aplicado (compatible mono).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controles MPX<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Control<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><strong>Switch ON\/OFF<\/strong><\/td><td>Activa la codificaci\u00f3n MPX<\/td><\/tr><tr><td><strong>75 \u00b5s (NRSC)<\/strong><\/td><td>Pre-\u00e9nfasis seg\u00fan est\u00e1ndar norteamericano (EE.UU., Canad\u00e1, Jap\u00f3n)<\/td><\/tr><tr><td><strong>50 \u00b5s (ITU)<\/strong><\/td><td>Pre-\u00e9nfasis seg\u00fan est\u00e1ndar europeo \/ internacional<\/td><\/tr><tr><td><strong>MPX LEVEL<\/strong><\/td><td>Nivel de salida de la se\u00f1al MPX (dB)<\/td><\/tr><tr><td><strong>PILOT 19kHz<\/strong><\/td><td>Porcentaje del piloto (est\u00e1ndar: 9%)<\/td><\/tr><tr><td><strong>MPX OUT<\/strong><\/td><td>Metros de nivel de la se\u00f1al MPX compuesta<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pre-\u00e9nfasis<\/h3>\n\n\n\n<p>El pre-\u00e9nfasis boosteea las altas frecuencias antes de la transmisi\u00f3n para mejorar la relaci\u00f3n se\u00f1al\/ruido. El receptor aplica la curva inversa (de-\u00e9nfasis). Escoge el est\u00e1ndar seg\u00fan tu regi\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>75 \u00b5s<\/strong>: Am\u00e9rica del Norte, Jap\u00f3n<\/li>\n\n\n\n<li><strong>50 \u00b5s<\/strong>: Europa, Am\u00e9rica del Sur, Asia, \u00c1frica, Australia<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Presets<\/h2>\n\n\n\n<p>Los presets guardan toda la configuraci\u00f3n de procesamiento (bandas, compresores, crossover, MPX). <strong>No guardan<\/strong> la selecci\u00f3n de tarjeta de audio ni el sample rate.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Presets de f\u00e1brica<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Preset<\/th><th>Bandas<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><strong>ROCK<\/strong><\/td><td>5<\/td><td>Compresi\u00f3n agresiva (ratio 4\u20135:1), \u00e9nfasis en medios 400Hz\u20132kHz, clips a \u22120.5 dBFS. Para rock, pop y formatos de alta densidad.<\/td><\/tr><tr><td><strong>BLUE<\/strong><\/td><td>5<\/td><td>Suave y c\u00e1lido (ratio 2.5\u20133:1), lento. Blues, jazz, R&amp;B. Preserva la din\u00e1mica natural.<\/td><\/tr><tr><td><strong>CLASIC<\/strong><\/td><td>5<\/td><td>Muy transparente (ratio 1.5\u20132:1), tiempos largos. Cl\u00e1sica, orquestal. M\u00ednima coloraci\u00f3n.<\/td><\/tr><tr><td><strong>VOICE<\/strong><\/td><td>5<\/td><td>Optimizado para locutores FM: presencia vocal intensa en 400Hz\u20132kHz (+7 dB makeup), de-essing agresivo (8:1) en 2\u20136kHz.<\/td><\/tr><tr><td><strong>HARD BASS<\/strong><\/td><td>6<\/td><td>Electr\u00f3nica, hip-hop. Sub bestial (&lt;80 Hz: ratio 8:1, +12 dB makeup), 6 bandas con crossover extendido a 12kHz.<\/td><\/tr><tr><td><strong>STRONG<\/strong><\/td><td>5<\/td><td>M\u00e1xima densidad y loudness. Todas las bandas a 8:1, +10 dB makeup, limiter \u22120.1 dBFS. Radio de alta competencia.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Guardar preset de usuario<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ajusta los par\u00e1metros a tu gusto<\/li>\n\n\n\n<li>Pulsa <strong>\u25cf SAVE<\/strong> (arriba a la derecha)<\/li>\n\n\n\n<li>Introduce un nombre y confirma<\/li>\n\n\n\n<li>El preset se guarda en <code>~\/.config\/gr-processor\/presets\/&lt;nombre&gt;.json<\/code><\/li>\n<\/ol>\n\n\n\n<p>Los presets de usuario aparecen al final del selector, despu\u00e9s de los presets de f\u00e1brica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Editar o eliminar presets de usuario<\/h3>\n\n\n\n<p>Los presets son archivos JSON en <code>~\/.config\/gr-processor\/presets\/<\/code>. Puedes editarlos con cualquier editor de texto o eliminarlos para quitarlos del selector.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Stand By y comparaci\u00f3n A\/B<\/h2>\n\n\n\n<p>El bot\u00f3n <strong>\u23f8 STAND BY<\/strong> (barra de modo, visible en ambas interfaces) activa el <strong>bypass total del procesamiento<\/strong>.<\/p>\n\n\n\n<p>Cuando est\u00e1 activo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El audio pasa directamente de entrada a salida <strong>sin ning\u00fan procesamiento DSP<\/strong><\/li>\n\n\n\n<li>Los metros INPUT y OUTPUT siguen mostrando niveles<\/li>\n\n\n\n<li>El bot\u00f3n cambia a <strong>\u25b6 BYPASS ON<\/strong> con color rojo como indicador visual<\/li>\n\n\n\n<li>El indicador GR del limitador se pone a cero<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Uso recomendado para comparaci\u00f3n A\/B<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Configura el procesador normalmente (ajusta presets, compresores, etc.)<\/li>\n\n\n\n<li>Sube el <strong>OUT GAIN<\/strong> hasta nivelar el volumen percibido entre bypass y procesado<\/li>\n\n\n\n<li>Alterna <strong>STAND BY<\/strong> para comparar instant\u00e1neamente<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Nota importante<\/strong>: la se\u00f1al en bypass puede tener picos m\u00e1s altos (no hay limitador). Baja el OUT GAIN antes de activar STAND BY si hay riesgo de sobremodulaci\u00f3n en la transmisi\u00f3n.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Cadena de procesamiento DSP<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Entrada est\u00e9reo (ALSA\/PipeWire)\n        \u2502\n        \u25bc\n   &#91;IN GAIN] \u2500\u2500 ganancia de entrada\n        \u2502\n        \u25bc\n  \u250c\u2500 CROSSOVER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502  Filtros Linkwitz-Riley 4\u00b0 orden por cada punto    \u2502\n  \u2502  de corte. Suma de todas las bandas = se\u00f1al plana  \u2502\n  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n         \u25bc      \u25bc      \u25bc      \u25bc      \u25bc      \u25bc\n       &#91;B1]   &#91;B2]   &#91;B3]   &#91;B4]   &#91;B5]   &#91;B6]\n         \u2502      \u2502      \u2502      \u2502      \u2502      \u2502\n    &#91;COMP] x 6  \u2502  Compresor linked-stereo RMS feed-forward\n    &#91;CLIP] x 6  \u2502  Clipper suave (tanh)\n         \u2502      \u2502      \u2502      \u2502      \u2502      \u2502\n         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                        \u2502\n                        \u25bc\n                  &#91;SUMA de bandas]\n                        \u2502\n                        \u25bc\n             &#91;LIMITADOR final brick-wall]\n                        \u2502\n                        \u25bc\n            &#91;MPX ENCODER] \u2500\u2500 si est\u00e1 activo\n            (pre-\u00e9nfasis + piloto + DSB-SC)\n                        \u2502\n                        \u25bc\n               &#91;OUT GAIN] \u2500\u2500 ganancia de salida\n                        \u2502\n                        \u25bc\n       Salida est\u00e9reo (ALSA\/PipeWire)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Par\u00e1metros de referencia por g\u00e9nero<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Radio pop\/rock contempor\u00e1neo<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Par\u00e1metro<\/th><th>Valor<\/th><\/tr><\/thead><tbody><tr><td>Bandas<\/td><td>5<\/td><\/tr><tr><td>Crossover<\/td><td>120 \u00b7 400 \u00b7 2k \u00b7 6k Hz<\/td><\/tr><tr><td>Threshold (todas)<\/td><td>\u221220 a \u221218 dBFS<\/td><\/tr><tr><td>Ratio (graves\/medios)<\/td><td>4:1 \u2013 5:1<\/td><\/tr><tr><td>Attack<\/td><td>5 \u2013 10 ms<\/td><\/tr><tr><td>Release<\/td><td>80 \u2013 150 ms<\/td><\/tr><tr><td>Makeup gain<\/td><td>4 \u2013 6 dB<\/td><\/tr><tr><td>Clip level<\/td><td>\u22120.5 dBFS<\/td><\/tr><tr><td>Limiter<\/td><td>\u22120.3 dBFS<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Radio de noticias \/ locutores<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Par\u00e1metro<\/th><th>Valor<\/th><\/tr><\/thead><tbody><tr><td>Bandas<\/td><td>4\u20135<\/td><\/tr><tr><td>Threshold B3 (400\u20132k)<\/td><td>\u221214 dBFS (presencia vocal)<\/td><\/tr><tr><td>Ratio B3<\/td><td>6:1<\/td><\/tr><tr><td>Makeup B3<\/td><td>7 dB<\/td><\/tr><tr><td>Threshold B4 (2k\u20136k)<\/td><td>\u221216 dBFS (de-essing)<\/td><\/tr><tr><td>Ratio B4<\/td><td>8:1<\/td><\/tr><tr><td>Attack<\/td><td>2 \u2013 5 ms<\/td><\/tr><tr><td>Limiter<\/td><td>\u22120.2 dBFS<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00fasica electr\u00f3nica \/ dance<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Par\u00e1metro<\/th><th>Valor<\/th><\/tr><\/thead><tbody><tr><td>Bandas<\/td><td>6<\/td><\/tr><tr><td>Crossover<\/td><td>80 \u00b7 320 \u00b7 1.2k \u00b7 4.8k \u00b7 12k Hz<\/td><\/tr><tr><td>Threshold B1 (&lt;80 Hz)<\/td><td>\u221216 dBFS<\/td><\/tr><tr><td>Ratio B1<\/td><td>8:1<\/td><\/tr><tr><td>Makeup B1<\/td><td>12 dB<\/td><\/tr><tr><td>Clip B1<\/td><td>\u22120.3 dBFS<\/td><\/tr><tr><td>Output gain<\/td><td>\u22122 dB (compensar el boost de graves)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Soluci\u00f3n de problemas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">No hay audio en la salida<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Verifica que los metros <strong>INPUT<\/strong> se muevan \u2014 si no hay se\u00f1al de entrada, revisa la tarjeta y la fuente.<\/li>\n\n\n\n<li>Aseg\u00farate de que el bot\u00f3n <strong>\u23f8 STAND BY<\/strong> no est\u00e9 activo (bypass reduce el volumen si IN GAIN \u2260 OUT GAIN).<\/li>\n\n\n\n<li>Revisa <strong>OUT GAIN<\/strong> \u2014 puede estar en \u221212 dB.<\/li>\n\n\n\n<li>Los logs en terminal muestran los dispositivos abiertos: <code>Entrada: hw:0<\/code> \/ <code>Salida: hw:1<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Los metros de banda no se mueven<\/h3>\n\n\n\n<p>El motor de audio abre los dispositivos al arrancar. Si hay error, aparece en la terminal. Soluci\u00f3n com\u00fan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Liberar el dispositivo de audio\nfuser -k \/dev\/snd\/*\n# Reiniciar PipeWire\nsystemctl --user restart pipewire<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">La compresi\u00f3n no se escucha<\/h3>\n\n\n\n<p>Verifica que el umbral (THR) est\u00e9 <strong>por debajo<\/strong> del nivel de la se\u00f1al. Si la se\u00f1al promedio es \u221220 dBFS y el threshold est\u00e1 en \u221210 dBFS, nunca se comprimir\u00e1. Baja el threshold hasta que el metro <strong>GR<\/strong> muestre reducci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Distorsi\u00f3n excesiva<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reduce el <strong>Makeup Gain<\/strong> (GAIN) de las bandas con m\u00e1s GR<\/li>\n\n\n\n<li>Sube el threshold (THR) para comprimir menos<\/li>\n\n\n\n<li>Verifica el nivel de <strong>CLIP LVL<\/strong> \u2014 si est\u00e1 muy alto puede introducir distorsi\u00f3n audible<\/li>\n\n\n\n<li>Activa <strong>STAND BY<\/strong> para verificar si la distorsi\u00f3n viene del procesador o de la fuente<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">El modo MPX no funciona a 48 kHz<\/h3>\n\n\n\n<p>Normal. A 48 kHz el Nyquist es 24 kHz \u2014 la subportadora de 38 kHz queda fuera del rango representable. La secci\u00f3n MPX est\u00e1 activa pero solo genera el canal principal con pre-\u00e9nfasis. Para MPX est\u00e9reo completo, configura la tarjeta a <strong>96 kHz o superior<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La aplicaci\u00f3n no abre (segunda instancia)<\/h3>\n\n\n\n<p>GR Processor es single-instance por dise\u00f1o. Si ya hay una instancia corriendo, la nueva simplemente la activa. Para forzar un reinicio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pkill gr-processor &amp;&amp; .\/target\/release\/gr-processor<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Licencia y cr\u00e9ditos<\/h2>\n\n\n\n<p>GR Processor es software libre desarrollado por Charles Escobar con Rust + GTK4.<br>Librer\u00eda de audio CPAL \u00b7 Filtros LR4 seg\u00fan Audio EQ Cookbook (Robert Bristow-Johnson)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>GR Processor v0.2.0 \u00b7 gradio.net<\/em><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GR PROCESSOR FM GR Processor es un procesador experimental de audio multibanda dise\u00f1ado para emisoras de radio FM. Procesa el audio en tiempo real separ\u00e1ndolo en hasta 6 bandas de frecuencia independientes, aplicando compresor, clipper y control de ganancia a cada banda antes de sumarlas en una se\u00f1al de alta densidad sonora, lista para transmisi\u00f3n&#8230;.<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-1113","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/pages\/1113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/comments?post=1113"}],"version-history":[{"count":3,"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/pages\/1113\/revisions"}],"predecessor-version":[{"id":1131,"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/pages\/1113\/revisions\/1131"}],"wp:attachment":[{"href":"http:\/\/www.gradio.net\/index.php\/wp-json\/wp\/v2\/media?parent=1113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}