|
|
|
|
1
|
-#Arreglos - Procesamiento de sonido
|
|
|
|
|
1
|
+# Arreglos - Procesamiento de sonido
|
2
|
|
2
|
|
3
|
![main1.png](images/main1.png)
|
3
|
![main1.png](images/main1.png)
|
4
|
![main2.png](images/main2.png)
|
4
|
![main2.png](images/main2.png)
|
5
|
![main3.png](images/main3.png)
|
5
|
![main3.png](images/main3.png)
|
6
|
|
6
|
|
|
|
7
|
+[Verano 2016 - Ive]
|
|
|
8
|
+
|
7
|
Los arreglos de datos (*arrays*) nos facilitan guardar y trabajar con grupos de datos del mismo tipo. Los datos se guardan en espacios de memoria consecutivos a los que se puede acceder utilizando el nombre del arreglo e índices o suscritos que indican la posición en que se encuentra el dato. Las estructuras de repetición nos proveen una manera simple de acceder a los datos de un arreglo. En la experiencia de laboratorio de hoy te expondrás a algoritmos de procesamiento de sonido, simples pero ingeniosos, para practicar el uso de ciclos en la manipulación de arreglos.
|
9
|
Los arreglos de datos (*arrays*) nos facilitan guardar y trabajar con grupos de datos del mismo tipo. Los datos se guardan en espacios de memoria consecutivos a los que se puede acceder utilizando el nombre del arreglo e índices o suscritos que indican la posición en que se encuentra el dato. Las estructuras de repetición nos proveen una manera simple de acceder a los datos de un arreglo. En la experiencia de laboratorio de hoy te expondrás a algoritmos de procesamiento de sonido, simples pero ingeniosos, para practicar el uso de ciclos en la manipulación de arreglos.
|
8
|
|
10
|
|
9
|
|
11
|
|
10
|
Esta experiencia de laboratorio es una adaptación de un "nifty assignment" presentado por Daniel Zingaro en [1].
|
12
|
Esta experiencia de laboratorio es una adaptación de un "nifty assignment" presentado por Daniel Zingaro en [1].
|
11
|
|
13
|
|
12
|
|
14
|
|
13
|
-##Objetivos:
|
|
|
|
|
15
|
+## Objetivos:
|
14
|
|
16
|
|
15
|
1. Practicar el uso de ciclos en la manipulación de arreglos.
|
17
|
1. Practicar el uso de ciclos en la manipulación de arreglos.
|
16
|
|
18
|
|
|
|
|
|
19
|
3. Practicar la programación modular.
|
21
|
3. Practicar la programación modular.
|
20
|
|
22
|
|
21
|
|
23
|
|
22
|
-##Pre-Lab:
|
|
|
|
|
24
|
+## Pre-Lab:
|
23
|
|
25
|
|
24
|
Antes de llegar al laboratorio debes haber:
|
26
|
Antes de llegar al laboratorio debes haber:
|
25
|
|
27
|
|
|
|
|
|
36
|
|
38
|
|
37
|
---
|
39
|
---
|
38
|
|
40
|
|
39
|
-##Procesamiento de sonido digital
|
|
|
|
|
41
|
+## Procesamiento de sonido digital
|
40
|
|
42
|
|
41
|
El sonido es una vibración que se propaga en medios elásticos tales como el aire, el agua y los sólidos. Las ondas sonoras son generadas por una fuente de sonido como por ejemplo la vibración del diafragma de una bocina de sonido [2]. Las ondas de sonido consisten de segmentos de alta y baja presión llamados compresiones y rarefacciones respectivamente.
|
43
|
El sonido es una vibración que se propaga en medios elásticos tales como el aire, el agua y los sólidos. Las ondas sonoras son generadas por una fuente de sonido como por ejemplo la vibración del diafragma de una bocina de sonido [2]. Las ondas de sonido consisten de segmentos de alta y baja presión llamados compresiones y rarefacciones respectivamente.
|
42
|
|
44
|
|
|
|
|
|
77
|
|
79
|
|
78
|
---
|
80
|
---
|
79
|
|
81
|
|
80
|
-##Bibliotecas
|
|
|
|
|
82
|
+## Bibliotecas
|
81
|
|
83
|
|
82
|
Para esta experiencia de laboratorio usarás bibliotecas multimedios de `Qt`. Para poder trabajar los ejercicios necesitarás conocer los atributos `left` y `right` de la clase `QAudioBuffer::S16S`. Para propósito de esta experiencia de laboratorio utilizamos el nombre `AudioBuffer` al referirnos a `QAudioBuffer::S16S`.
|
84
|
Para esta experiencia de laboratorio usarás bibliotecas multimedios de `Qt`. Para poder trabajar los ejercicios necesitarás conocer los atributos `left` y `right` de la clase `QAudioBuffer::S16S`. Para propósito de esta experiencia de laboratorio utilizamos el nombre `AudioBuffer` al referirnos a `QAudioBuffer::S16S`.
|
83
|
|
85
|
|
|
|
|
|
112
|
|
114
|
|
113
|
---
|
115
|
---
|
114
|
|
116
|
|
115
|
-!INCLUDE "../../eip-diagnostic/sound-processing/es/diag-sound-processing-01.html"
|
|
|
|
|
117
|
+!INCLUDE "../../eip-diagnostic/sound-processing/es/diag-sound-processing-01.html"
|
116
|
<br>
|
118
|
<br>
|
117
|
|
119
|
|
118
|
-!INCLUDE "../../eip-diagnostic/sound-processing/es/diag-sound-processing-02.html"
|
|
|
|
|
120
|
+!INCLUDE "../../eip-diagnostic/sound-processing/es/diag-sound-processing-02.html"
|
119
|
<br>
|
121
|
<br>
|
120
|
|
122
|
|
121
|
-!INCLUDE "../../eip-diagnostic/sound-processing/es/diag-sound-processing-03.html"
|
|
|
|
|
123
|
+!INCLUDE "../../eip-diagnostic/sound-processing/es/diag-sound-processing-03.html"
|
122
|
<br>
|
124
|
<br>
|
123
|
|
125
|
|
124
|
---
|
126
|
---
|
|
|
|
|
126
|
---
|
128
|
---
|
127
|
|
129
|
|
128
|
|
130
|
|
129
|
-##Sesión de laboratorio:
|
|
|
|
|
131
|
+## Sesión de laboratorio:
|
130
|
|
132
|
|
131
|
|
133
|
|
132
|
El proyecto `SoundProcessing` contiene el esqueleto de una aplicación para hacer procesamiento de sonido estéreo. La aplicación que completarás permitirá al usuario aplicar cuatro algoritmos diferentes para procesamiento de sonidos. La sub-carpeta llamada `WaveSamples` contiene archivos de onda para que pruebes tus implementaciones.
|
134
|
El proyecto `SoundProcessing` contiene el esqueleto de una aplicación para hacer procesamiento de sonido estéreo. La aplicación que completarás permitirá al usuario aplicar cuatro algoritmos diferentes para procesamiento de sonidos. La sub-carpeta llamada `WaveSamples` contiene archivos de onda para que pruebes tus implementaciones.
|
133
|
|
135
|
|
134
|
-###Ejercicio 1: Remover las voces de una grabación
|
|
|
|
|
136
|
+### Ejercicio 1 - Remover las voces de una grabación
|
135
|
|
137
|
|
136
|
Una forma barata (pero muchas veces inefectiva) de remover las voces de una grabación es tomando ventaja del hecho de que las voces usualmente se graban en ambos canales, izquierdo y derecho, mientras que el resto de los instrumentos quizás no. Si este fuera el caso, podemos remover las voces de una grabación restando el canal izquierdo y derecho.
|
138
|
Una forma barata (pero muchas veces inefectiva) de remover las voces de una grabación es tomando ventaja del hecho de que las voces usualmente se graban en ambos canales, izquierdo y derecho, mientras que el resto de los instrumentos quizás no. Si este fuera el caso, podemos remover las voces de una grabación restando el canal izquierdo y derecho.
|
137
|
|
139
|
|
138
|
-####Instrucciones
|
|
|
|
|
140
|
+#### Instrucciones:
|
|
|
141
|
+
|
139
|
|
142
|
|
|
|
143
|
+1. Carga a `QtCreator` el proyecto `SoundProcessing`. Hay dos maneras de hacer esto:
|
140
|
|
144
|
|
141
|
-1. Carga a `QtCreator` el proyecto `SoundProcessing` haciendo doble "click" en el archivo `Sounds.pro` en el directorio `Documents/eip/Arrays-SoundProcessing` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/arrays-soundprocessing` para descargar la carpeta `Arrays-SoundProcessing` a tu computadora.
|
|
|
|
|
145
|
+ * Utilizando la máquina virtual: Haz doble “click” en el archivo `SoundProcessing.pro` que se encuentra en el directorio `/home/eip/labs/arrays-soundprocessing` de la máquina virtual.
|
|
|
146
|
+ * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/arrays-soundprocessing` para descargar la carpeta `arrays-soundprocessing` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `SoundProcessing.pro`.
|
142
|
|
147
|
|
143
|
2. Compila y corre el programa. Aparecerá un interface gráfico para procesamiento de sonido de grabaciones.
|
148
|
2. Compila y corre el programa. Aparecerá un interface gráfico para procesamiento de sonido de grabaciones.
|
144
|
|
149
|
|