|
|
|
|
170
|
|
170
|
|
171
|
#### Instrucciones
|
171
|
#### Instrucciones
|
172
|
|
172
|
|
173
|
-1. Carga y reproduce cualquiera de los archivos de onda `rain.wav`, o `water.wav` como hiciste en el Ejercicio 1.
|
|
|
|
|
173
|
+1. Carga y reproduce cualquiera de los archivos de onda `rain.wav`, o `water.wav` como hiciste en el Ejercicio 1. Estos son los archivos con el audio sin procesar.
|
174
|
|
174
|
|
175
|
2. Tu tarea en este ejercicio es completar la función `AudioFadeIn` que se encuentra en el archivo `audiomanip.cpp` de modo que se intensifique gradualmente el volumen de una grabación hasta cierto punto. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de duración para el aumento en intensidad (fade_length) que será aplicado a `AudioBuffer`. Por ejemplo, si `fade_length` es `88200`, el aumento en intensidad no debe afectar ninguna muestra en posición mayor o igual a `88200`.
|
175
|
2. Tu tarea en este ejercicio es completar la función `AudioFadeIn` que se encuentra en el archivo `audiomanip.cpp` de modo que se intensifique gradualmente el volumen de una grabación hasta cierto punto. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de duración para el aumento en intensidad (fade_length) que será aplicado a `AudioBuffer`. Por ejemplo, si `fade_length` es `88200`, el aumento en intensidad no debe afectar ninguna muestra en posición mayor o igual a `88200`.
|
176
|
|
176
|
|
177
|
3. Reproduce las siguientes grabaciones contenidas en la carpeta `WaveSamples`:
|
177
|
3. Reproduce las siguientes grabaciones contenidas en la carpeta `WaveSamples`:
|
178
|
|
178
|
|
179
|
- * `rain.fi.wav`
|
|
|
180
|
- * `water.fi.wav`
|
|
|
181
|
-
|
|
|
182
|
-Las grabaciones fueron creadas utilizando el filtro de intensidad con `fade_length 88200`. Debes escuchar como el sonido del agua y la lluvia se intensifican linealmente durante los primeros dos segundos y luego se quedan en el mismo volúmen. Nota que, como estamos usando sonidos grabados a `44100` muestras por segundo, `88200` corresponde a dos segundos de grabación.
|
|
|
|
|
179
|
+ * `rain.fi.wav`
|
|
|
180
|
+ * `water.fi.wav`
|
|
|
181
|
+
|
|
|
182
|
+ Esas dos grabaciones fueron creadas utilizando el filtro de intensidad con `fade_length = 88200`. Debes escuchar como el sonido del agua y la lluvia se intensifican linealmente durante los primeros dos segundos y luego se quedan en el mismo volúmen. Nota que, como estamos usando sonidos grabados a `44100` muestras por segundo, `88200` corresponde a dos segundos de grabación.
|
183
|
|
183
|
|
184
|
**Algoritmo:**
|
184
|
**Algoritmo:**
|
185
|
|
185
|
|
186
|
Para aplicar el aumento de intensidad a un sonido, multiplicamos cada muestra sucesiva por números entre `0` y `1` que van en aumento constante. Si la muestra se multiplica por `0` se silencia, si se multiplica por `1` se queda igual; si se multiplica por un valor entre `0` y `1` el volúmen se escala por ese factor. Es importante destacar que ambos canales deben ser multiplicados por el mismo factor.
|
186
|
Para aplicar el aumento de intensidad a un sonido, multiplicamos cada muestra sucesiva por números entre `0` y `1` que van en aumento constante. Si la muestra se multiplica por `0` se silencia, si se multiplica por `1` se queda igual; si se multiplica por un valor entre `0` y `1` el volúmen se escala por ese factor. Es importante destacar que ambos canales deben ser multiplicados por el mismo factor.
|
187
|
|
187
|
|
188
|
-Por ejemplo, si `fade_length` es `4`, aplicaremos el filtro a las primeras 4 muestras:
|
|
|
|
|
188
|
+Por ejemplo, si `fade_length` fuera `4`, aplicaríamos el filtro a las primeras 4 muestras de la siguiente manera:
|
189
|
|
189
|
|
190
|
|
190
|
|
191
|
| Número de muestra | Multiplica por factor |
|
191
|
| Número de muestra | Multiplica por factor |
|
|
|
|
|
196
|
| 3 | 0.75 |
|
196
|
| 3 | 0.75 |
|
197
|
| >= 4 | 1 (No modifica la muestra) |
|
197
|
| >= 4 | 1 (No modifica la muestra) |
|
198
|
|
198
|
|
199
|
-Nota que tenemos 4 muestras y el factor por el que se multiplica la muestra en cada canal comienza en `0` e incrementa `0.25` cada vez hasta llegar a `1`.
|
|
|
|
|
199
|
+Nota que tenemos 4 muestras y el factor por el que se multiplica la muestra en cada canal comienza en `0` e incrementa `0.25` cada vez hasta llegar a `1`.
|
200
|
|
200
|
|
201
|
|
201
|
|
202
|
### Ejercicio 3 - Desvanecer
|
202
|
### Ejercicio 3 - Desvanecer
|
|
|
|
|
207
|
|
207
|
|
208
|
1. Carga y reproduce cualquiera de los archivos de onda `rain.wav`, o `water.wav` como hiciste en los ejercicios anteriores.
|
208
|
1. Carga y reproduce cualquiera de los archivos de onda `rain.wav`, o `water.wav` como hiciste en los ejercicios anteriores.
|
209
|
|
209
|
|
210
|
-2. Tu tarea en este ejercicio es completar la función `AudioFadeOut` que se encuentra en el archivo `audiomanip.cpp` para que desvanezca el volúmen a partir de una muestra de la grabación hasta el final. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de duración del desvanecimiento que será aplicado a `AudioBuffer`. Por ejemplo, si `fade_length` es `88200`, el desvanecimiento no debe afectar ninguna muestra en posiciones menores o iguales a `88200`.
|
|
|
|
|
210
|
+2. Tu tarea en este ejercicio es completar la función `AudioFadeOut` que se encuentra en el archivo `audiomanip.cpp` para que desvanezca el volúmen gradualmente faltando una cantidad de muestras antes del final. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de duración del desvanecimiento que será aplicado a `AudioBuffer`. Por ejemplo, si `fade_length` es `88200`, el desvanecimiento debe comenzar cuando faltan 88200 muestras para el final de la grabación.
|
211
|
|
211
|
|
212
|
3. Reproduce las siguientes grabaciones contenidas en la carpeta `WaveSamples`:
|
212
|
3. Reproduce las siguientes grabaciones contenidas en la carpeta `WaveSamples`:
|
213
|
|
213
|
|
214
|
* `rain.fo.wav`
|
214
|
* `rain.fo.wav`
|
215
|
* `water.fo.wav`
|
215
|
* `water.fo.wav`
|
216
|
-
|
|
|
217
|
- Las grabaciones fueron creadas utilizando el filtro de desvanecer con `fade_length 88200`. Debes escuchar el sonido del agua y la lluvia en volúmen constante y luego, en los últimos dos segundos, el volumen disminuye linealmente hasta desaparecer.
|
|
|
|
|
216
|
+
|
|
|
217
|
+ Esas dos grabaciones fueron creadas utilizando el filtro de desvanecer con `fade_length 88200`. Debes escuchar el sonido del agua y la lluvia en volúmen constante y luego, en los últimos dos segundos, el volumen disminuye linealmente hasta desaparecer.
|
218
|
|
218
|
|
219
|
**Algoritmo:**
|
219
|
**Algoritmo:**
|
220
|
|
220
|
|
|
|
|
|
229
|
|
229
|
|
230
|
1. Carga y reproduce el archivo `airplane.wav` como hiciste en los ejercicios anteriores.
|
230
|
1. Carga y reproduce el archivo `airplane.wav` como hiciste en los ejercicios anteriores.
|
231
|
|
231
|
|
232
|
-2. Tu tarea en este ejercicio es completar la función `LeftToRight` que se encuentra en el archivo `audiomanip.cpp` para que haga que el sonido vaya "moviéndose" del canal izquierdo al canal derecho. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de recorrido (pan_length) que será aplicado a `AudioBuffer`. Por ejemplo, si `pan_length` es `88200`, el recorrido no debe afectar ninguna muestra en posiciones mayores o iguales a `88200`.
|
|
|
|
|
232
|
+2. Tu tarea en este ejercicio es completar la función `LeftToRight` que se encuentra en el archivo `audiomanip.cpp` para que haga que el sonido vaya "moviéndose" del canal izquierdo al canal derecho. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de recorrido (pan_length) que será aplicado a `AudioBuffer`. Por ejemplo, si `pan_length` es `88200`, el recorrido no debe afectar ninguna muestra en posiciones mayores o iguales a `88200`.
|
233
|
|
233
|
|
234
|
3. Reproduce la grabación en `airplane.out.wav`. Debes poder oir cómo el sonido del avión se escucha primero completamente a la izquierda y luego se mueve lentamente hacia la derecha, terminando completamente a la derecha en la última muestra. En este ejemplo el recorrido termina en la última muestra. Esto no ocurrirá si el largo del recorrido (panning length) no es igual al número de muestras; en este caso, luego de llegar al largo del recorrido escucharás el sonido normal en ambos canales.
|
234
|
3. Reproduce la grabación en `airplane.out.wav`. Debes poder oir cómo el sonido del avión se escucha primero completamente a la izquierda y luego se mueve lentamente hacia la derecha, terminando completamente a la derecha en la última muestra. En este ejemplo el recorrido termina en la última muestra. Esto no ocurrirá si el largo del recorrido (panning length) no es igual al número de muestras; en este caso, luego de llegar al largo del recorrido escucharás el sonido normal en ambos canales.
|
235
|
|
235
|
|