# &arts-builder;

## Introducción

En primer lugar, al tratar de ejecutar &arts-builder;, también se debe estar ejecutando el servidor de sonido (&artsd;). Normalmente, si utiliza &kde; 2.1, esto se hace automáticamente. Sino, puede configurar en &kcontrol; que el servidor de sonido se inicie de forma automática en Sonidos y multimedia Sistema de sonido.

Al ejecutar &arts;, siempre se ejecutan pequeños módulos. &arts-builder; es una herramienta para la creación de nuevas estructuras de pequeños módulos conectados. Lo único que debe hacer es colocar los módulos en la rejilla. Para hacerlo, elíjalos en el menú Módulos, y después pulse en cualquier lugar del espacio verde y gris.

Los módulos tienen normalmente puertos (por los que fluyen las señales de audio hacia adentro o hacia afuera). Para conectar dos puertos, pinche en el primero, que provocará que se ponga de color naranja, y después pinche en el segundo. Sólo puede conectar un puerto de entrada (en la parte superior de un módulo) con un puerto de salida (en la parte inferior de un módulo). Si desea asignar un valor fijo a un puerto (o desconectarlo), hágalo mediante una doble pulsación del ratón sobre el mismo.

## Tutorial

### Paso 1

Inicie &arts-builder;.

Necesita un módulo Synth_AMAN_PLAY para oír la salida que está creando. Así que cree un módulo Synth_AMAN_PLAY seleccionando Módulos Síntesis Synth_AMAN_PLAY y pulsando en un espacio vacío del módulo. Póngalo por debajo más o menos de la quinta línea, ya que añadiremos alguna otra cosa por encima.

El módulo tendrá un parámetro `title` (el puerto situado más a la izquierda), y `autoRestoreID` (al lado del puerto situado más a la izquierda) para su localización. Para rellenarlos, haga una doble pulsación en esos puertos, seleccione un valor constante y teclee `tutorial` en la casilla de edición. Pulse Aceptar para aplicar los cambios.

Seleccione Archivo Ejecutar estructura . No oirá absolutamente nada. El módulo de reproducción necesita la entrada de información. Cuando ya haya escuchado un poco el silencio, pinche en Aceptar y vaya al paso 2.

### Paso 2

Cree un módulo Synth_WAVE_SIN (desde Módulos Síntesis Formas de onda) y colóquelo encima del módulo Synth_AMAN_PLAY (deje una línea en blanco en el medio).

Como ve, se produce una salida, pero requiere un pos como entrada. En primer lugar enviemos la salida a los altavoces. Pinche en el puerto out de Synth_WAVE_SIN y después en el puerto left de Synth_AMAN_PLAY. Voila, se han conectado los dos módulos.

Los osciloscopios de &arts; no requieren una frecuencia como entrada, pero sí una posición en la onda. La posición debe estar entre 0 y 1, lo que coloca al objeto estándar Synth_WAVE_SIN en el rango 0..2*pi. Para generar valores oscilantes a partir de una frecuencia, se utilizan los módulos Synth_FREQUENCY.

Cree un módulo Synth_FREQUENCY (desde Módulos Síntesis Oscilación y modulación ) y conecte su salida «pos» a la entrada «pos» del módulo Synth_WAVE_SIN. Dele al puerto de frecuencia del generador de frecuencias un valor constante de 440.

Seleccione Archivo Ejecutar estructura. Escuchará una onda sinusoidal de 440 Hz en uno de sus altavoces. Cuando ya la haya escuchado, pinche en Aceptar y vaya al paso 3.

### Paso 3

De acuerdo, sería mejor escuchar la onda en ambos altavoces. Conecte también el puerto derecho de Synth_PLAY al valor de salida de Synth_WAVE_SIN.

Cree un objeto Synth_SEQUENCE (desde Módulos Síntesis Midi + Secuenciado). Debería estar en la parte superior de la pantalla. Si necesita más espacio, puede mover los otros módulos seleccionándolos (para seleccionar varios módulos utilice la tecla &Shift;) y arrastrándolos a otro lugar.

Ahora conecte la salida de frecuencia de Synth_SEQUENCE a la entrada de frecuencia del módulo Synth_FREQUENCY. Después especifique un valor constante de 0,13 como velocidad de la secuencia (la velocidad es el puerto más a la izquierda).

Ahora vaya al puerto más a la derecha (secuencia) de Synth_SEQUENCE e introduzca como valor constante `A-3;C-4;E-4;C-4;` esto especifica una secuencia. Hay más información en el capítulo Referencia de los módulos.

Synth_SEQUENCE realmente necesita una secuencia y la velocidad. Sin eso es probable que se produzcan errores.

Seleccione Archivo Ejecutar estructura. Escuchará la reproducción de una bonita secuencia. Cuando ya la haya disfrutado, pulse Aceptar y vaya al paso 4.

### Paso 4

Cree un módulo Synth_PSCALE (en Módulos Síntesis Envoltorios ). Desconecte el valor de salida de la onda sinusoidal mediante una doble pulsación del ratón y eligiendo no conectado. Conecte:

1. El valor de salida de SIN con el valor de entrada de PSCALE.

2. El valor de salida de PSCALE con el izquierdo de AMAN_PLAY.

3. El valor de salida de PSCALE con el derecho de AMAN_PLAY.

4. El pos de SEQUENCE con el pos de PSCALE.

Por último, establezca el límite de PSCALE en algún valor, por ejemplo 0,1.

Cómo funciona: el módulo Synth_SEQUENCE proporciona información adicional sobre la posición de la nota que se está reproduciendo en ese momento, de tal forma que 0 significa que acaba de comenzar y 1 que ha finalizado. El módulo Synth_PSCALE escala el transmisión de sonido que pasa por él desde un volumen 0 (silencio) hasta 1 (volumen original) y nuevamente a 0 (silencio), de acuerdo con la posición. La posición en la que se produce el pico de audio se puede dar como pos. 0,1 significa que después de que se haya reproducido el 10% de la nota, el volumen alcanzará el máximo, y comenzará a descender en ese punto.

Seleccione Archivo Ejecutar estructura. Escuchará la reproducción de una bonita secuencia. Cuando ya la haya disfrutado, pulse Aceptar y vaya al paso 5.

### Paso 5: Comenzando a emitir datos ;)

Inicie otro &arts-builder;.

Ponga un Synth_AMAN_PLAY en él, déle un nombre adecuado. Ponga un Synth_AMAN_DOWNLINK en él y:

1. Establezca el bus Synth_BUS_DOWNLINK a audio (es solo un nombre, llámelo 'pepe' si lo desea).

2. Conecte el izquierdo de Synth_BUS_DOWNLINK al izquierdo de Synth_AMAN_PLAY.

3. Conecte el derecho de Synth_BUS_DOWNLINK al derecho de Synth_AMAN_PLAY.

Empiece ejecutando la estructura. Como esperaba, no escuchará nada, ... no todavía.

Vuelva a la estructura que contiene el módulo Synth_WAVE_SIN y reemplace el módulo Synth_AMAN_PLAY por un Synth_BUS_UPLINK, y déle el nombre 'audio' (o 'pepe' si lo desea). Para borrar módulos selecciónelos y escoja en el menú Editar Eliminar (o pulse la tecla Supr).

Pulse Archivo Ejecutar estructura. Escuchará la secuencia con notas escaladas, transportadas a través el bus.

Si desea averiguar por qué algo como ésto puede llegar a ser útil, pulse Aceptar (en el &arts-builder; que esté ejecutando el bloque Synth_SEQUENCE, puede dejar los otros que se estén ejecutando) y vaya al paso 6.

### Paso 6: para usuarios avanzados

Elija Archivo Renombrar estructura del menú de artsbuilder que contiene el bloque Synth_SEQUENCE, y llámelo tutorial. Pulse Aceptar.

Seleccione Archivo Guardar .

Inicie otro &arts-builder; y elija Archivo Cargar , y cargue el tutorial de nuevo.

Ahora puede seleccionar Archivo Ejecutar estructura en ambos &arts-builder;s obteniendo esa estructura. Escuchará dos veces la misma cosa. Dependiendo del momento en el que empiece sonará mejor o peor.

Otra cosa que puede ser útil hacer en este momento es: inicie &noatun;, y reproduzca algún `mp3`. Inicie &artscontrol;. Vaya a Ver Ver gestor de audio. Lo que verá será &noatun; y su estructura de reproducción «tutorial» reproduciendo algo. Lo mejor que puede hacer es: doble pulsación en &noatun;. Obtendrá una lista de los buses disponibles. ¿Lo ve? Puede asignar &noatun; para enviar la salida a través de el bus de audio que su estructura de reproducción proporciona.

### Step 7: Síntesis de midi

Finalmente, ahora debería ser capaz de transformar su onda sinusoidal en un instrumento real. Ésto sólo tiene sentido si tiene algo que le ayude a enviar eventos &MIDI; a &arts;. Describiré aquí como puede usar algún teclado externo, pero un bus midi enterado de la secuencia como &brahms; funcionará mejor.

En primer lugar, limpie su escritorio de tal modo que solo tenga un &arts-builder; con la estructura de onda sinusoidal corriendo (no ejecutándose). Entonces, vaya tres veces a Puertos Crear señal de audio de entrada, y tres veces a Puertos Crear señal de audio de salida. Coloque los puertos en algún sitio.

Vaya a Puertos Cambiar posiciones/nombres y renombre los puertos a frecuencia, velocidad, pulsado, izquierdo, derecho y hecho.

Finalmente, puede borrar el módulo Synth_SEQUENCE, y conectar el puerto de entrada frecuencia de la estructura al puerto frecuencia de Synth_FREQUENCY. Pero..., ¿qué hacemos con pos?

No existe esto, porque no hay algoritmo en el mundo que le permita predecir cuando el usuario va a soltar la nota que acaba de pulsar en el teclado midi. Por lo que es mejor tener un parámetro 'pulsado' en su lugar que indique si el usuario aún mantiene la tecla pulsada. (pulsado = 1: la tecla aún está pulsada, pulsado = 0: tecla suelta).

Ésto significa que el objeto Synth_PSCALE también debe ser sustituído. Introduzca un Synth_ENVELOPE_ADSR en su lugar (desde Módulos Síntesis Envoltorios). Conecte:

1. La estructura de entrada 'pulsada' al 'activo' del ADSR.

2. El valor de salida de SIN al valor de entrada de ADSR.

3. El valor de salida de ADSR a la salida izquierda de la estructura.

4. El valor de salida de ADSR a la salida derecha de la estructura.

Establezca los parámetros ataque a 0.1; desintegrar a 0.2, mantener a 0.7, liberar a 0.1.

Otra cosa en la que deberá pensar es que la estructura instrumental debería saber de alguna forma cuándo está preparada para reproducir y limpiar, ya que de otra forma podría no parar nunca aunque se haya liberado la nota. Afortunadamente, el envoltorio ADSR sabe cuándo se debe parar, escalando la señal a cero un momento después de que se haya liberado la nota.

Esto se indica asignando 1 a la salida. Por tanto, conecte ésto a la salida de la estructura. La estructura se eliminará tan pronto como suba a 1.

Renombre su estructura como tutorial_de_instrumentos (desde Archivo Renombrar estructura) Entonces, guárdela usando guardar como (el nombre predeterminado debería ser ahora tutorial_de_instrumentos).

Inicie artscontrol y vaya a Ver Administrador midi, y escoja Añadir Salida midi de síntesis de aRTs. Finalmente, debería ser capaz de seleccionar su instrumento (tutorial) aquí.

Abra una terminal y teclee ``midisend`` . Verá cómo `midisend` y el instrumento se escuchan ahora en el administrador &MIDI; de &arts;. Después de seleccionar ambos y pulsar conectar, habremos terminado. Tome su teclado y empiece a reproducir (por supuesto debe estar conectado a su ordenador).

### Sugerencias

Ahora tendría que ser capaz de trabajar con &arts;. Aquí hay unos pocos consejos que intentarán mejorar sus estructuras:

- Intente usar otros elementos diferentes de una onda SIN. Cuando introduce una onda TRI, podrá pensar que el sonido no es demasiado bueno. Pero intente enlazar un filtro SHELVE_CUTOFF después de la onda TRI para cortar las frecuencias superiores a una dada (intente algo como 1.000 Hz, o mejor, dos veces la frecuencia de entrada, o la frecuencia de entrada+200Hz o algo así).

- Intente usar más de un oscilador. Synth_XFADE puede usarse para cruzar (mezclar) dos señales y Synth_ADD para añadirlas.

- Intente establecer las frecuencias de los osciladores a valores ligeramente distintos, ya que ésto produce mejores oscilaciones.

- Experimente con mas de un envoltorio.

- Intente sintetizar instrumentos con salidas izquierda y derecha diferentes.

- Intente posprocesar la señal después de que salga del bus el enlace descendente. Puede, por ejemplo, mezclar una versión retrasada de la señal con la original para obtener un efecto de eco.

- Intente utilizar la configuración de la velocidad (es la fuerza con la que se pulsará la nota, podríamos decir que es el volumen). El efecto especial se produce siempre que no sólo se modifique el volumen de la señal resultante, sino también el sonido del instrumento (por ejemplo, el corte de frecuencia).

- ...

Si ha creado algo realmente bueno, por favor, considere la opción de enviarlo a la página web de &arts;. O para inclusiones en la siguiente versión.

## Ejemplos

&arts-builder; viene con bastantes ejemplos, que pueden ser abiertos a través de Archivo Abrir Ejemplo... Algunos de ellos están en la carpeta, y otros (que por alguna razón no funcionan en la versión actual) están abandonados en la carpeta todo.

Los ejemplos están divididos en varias categorías:

- Ejemplos autónomos ilustrando cómo usar cada uno de los los módulos built-in de arts (llamados `example_*.arts`). Éstos envían normalmente alguna salida a la tarjeta de sonido.

- Instrumentos creados desde módulos de arts de niveles más bajos (llamados `instrument_*.arts`). Éstos siguen una convención estándar para los puertos de entrada y salida, por lo que pueden ser usados por el administrador &MIDI; en &artscontrol;.

- Plantillas para crear nuevos módulos (llamados `template_*.arts`).

- Efectos que pueden usarse como bloques reutilizables (llamados `effect_*.arts`) [incluídos en «todo»]

- Elementos mezcladores para crear mezcladores, incluyendo controles gráficos (llamados `mixer_element_*.arts`). [incluídos en «todo»]

- Varios módulos que no se ajustan a ninguna de las categorías anteriores.

## Descripción detallada de cada módulo:

`example_stereo_beep.arts`

- Genera un tono de onda sinusoidal a 440Hz en el canal izquierdo y un tono de onda sinusoidal a 880Hz en el canal derecho y lo envía a la salida de la tarjeta de sonido. Se referencia en la documentación de &arts;.

`example_sine.arts`

- Genera una onda sinusoidal a 440Hz.

`example_pulse.arts`

- Genera una onda pulso de 440 Hz con una función cíclica del 20%.

`example_softsaw.arts`

- Genera una onda de diente de sierra a 440 Hz.

`example_square.arts`

- Genera una onda cuadrada a 440 Hz.

`example_tri.arts`

- Genera una onda triangular a 440 Hz

`example_noise.arts`

- Genera ruido blanco.

`example_dtmf1.arts`

- Genera un tono dual al producir ondas sinusoidales a 697 y 1.209 Hz, escalándolas por 0.5 y añadiéndolas juntas. Éste es el tono DMTF para el dígito «1» en un teclado de teléfono.

`example_atan_saturate.arts`

- Ejecuta una onda triangular a través del filtro se saturación arcotangente.

`example_autopanner.arts`

- Utiliza un desplazamiento automático para moldear una onda sinusoidal de 400 Hz desplazándola entre los altavoces izquierdo y derecho a una tasa de 2 Hz.

`example_brickwall.arts`

- Escala una onda sinusoidal por un factor 5 y la pasa a través de un limitador de pendiente alta.

`example_bus.arts`

- Enlaces descendentes a un bus llamado «Bus» y enlaces ascendentes al bus «salida_tarjeta_sonido» con los canales izquierdo y derecho reservados.

`example_cdelay.arts`

- Enlaces descendentes a un bus llamado «Retraso», enlaces ascendentes al canal derecho con un retardo de 0,5 segundos, y el canal derecho sin cambios. Puede utilizar &artscontrol; para conectar el efecto a un reproductor de sonido y observar el resultado.

`example_delay.arts`

- Es lo mismo que `example_cdelay.arts` pero usando el efecto retardo.

`example_capture_wav.arts`

- Ésto usa Synth_CAPTURE_WAV para guardar una onda sinusoidal a 400Hz en un archivo wav. Ejecute el módulo durante unos segundos y luego examine el archivo creado en `/tmp`. Puede reproducir el archivo con un reproductor como kaiman.

`example_data.arts`

- Usa el módulo Data para generar un flujo constante de valor «3» y lo envía a un módulo de depuración para mostrarlo periódicamente. También contiene un módulo Nil, ilustrando cómo puede usarse para no hacer nada.

`example_adsr.arts`

- Muestra como crear un único instrumento de sonido usando el módulo Envoltorio Adsr, iniciado repetidamente por una onda cuadrada.

`example_fm.arts`

- Usa el módulo FM Source para generar una onda sinusoidal a 440 Hz que es una frecuencia modulada a un ratio de 5 Hz.

`example_freeverb.arts`

- Conecta el efecto freeverb desde un bus de enlace descendente a un bus enlace de salida. Puede usar artscontrol para conectar el efecto a un reproductor de sonido y observar el resultado.

`example_flanger.arts`

- Implementa un único efecto metálico (aunque parece que no funciona todavía).

`example_moog.arts`

- Esta estructura combina los dos canales de un bus en otro, lo pasa a través del filtro Moog VCF, y lo envía fuera a través del bus salida_tarjeta_sonido.

`example_pitch_shift.arts`

- La estructura pasa el canal izquierdo de los datos de la tarjeta de sonido a través del efecto modificador del tono. Ajuste el parámetro velocidad para variar el efecto.

`example_rc.arts`

- La estructura pasa un generador de ruido blanco a través de un filtro RC y la da salida a través de la tarjeta de sonido. Observando la pantalla FFT scope en artscontrol puede ver cómo cambia respecto a una onda de ruido sin filtro.

`example_sequence.arts`

- Muestra el módulo Secuencia reproduciendo una secuencia de notas.

`example_shelve_cutoff.arts`

- Esta estructura pasa un ruido blanco a través del filtro de descenso de corte y lo da salida a través de la tarjeta de sonido. Observando la pantalla FFT scope en artscontrol puede ver cómo cambia respecto a una onda de ruido sin filtro.

`example_equalizer.arts`

- Muestra el módulo Std_Equalizer. Aumenta las frecuencias altas y bajas en 6 dB.

`example_tremolo.arts`

- Muestra el efecto Trémolo. Modula los canales izquierdo y derecho usando un trémolo a 10Hz.

`example_xfade.arts`

- Este ejemplo mezcla ondas sinusoidales de 440 y 880 Hz usando un fundido cruzado. Ajuste el valor del porcentaje de entrada del fundido cruzado desde -1 a 1 para controlar la mezcla de las dos señales.

`example_pscale.arts`

- Ilustra el módulo Pscale (no estoy seguro si éste es un ejemplo significativo).

`example_play_wav.arts`

- Ilustra el módulo reproducción de onda. Necesitará introducir la ruta completa a un archivo `.wav` en el parámetro de nombre de archivo.

example_multi_add.arts

- Muestra el módulo de añadido múltiple, que acepta cualquier número de entradas. Suma tres módulos de datos que producen de entrada 1, 2 y 3, y muestra el resultado 6.