Browse Source

README-en.md edited on August 3, 2016 at 8:35am

Jose R Ortiz Ubarri 8 years ago
parent
commit
c4451dca52
1 changed files with 27 additions and 26 deletions
  1. 27
    26
      README-en.md

+ 27
- 26
README-en.md View File

@@ -4,9 +4,9 @@
4 4
 ![main2.png](images/main2.png)
5 5
 ![main3.png](images/main3.png)
6 6
 
7
-[Verano 2016 - Ive]
7
+[Verano 2016 - Ive - Coralys]
8 8
 
9
-Arrays help us to store and work with groups of data of the same type. The data is stored in consecutive memory spaces which can be accessed by using the name of the array and indexes or subscripts that indicate the position where the data is stored. Repetition structures provide us a simple way of accessing the data within an array. In this laboratory experience, you will be using nested loops to process bi-dimensional arrays and implement the functionality of a green-screen.
9
+Arrays help us store and work with groups of data of the same type. The data is stored in consecutive memory spaces, which can be accessed by using the name of the array with indexes or subscripts that indicate the position where the data is stored. Repetition structures provide us a simple way of accessing the data within an array. In this laboratory experience, you will be exposed to simple sound processing algorithms in order to practice the use of loops to manipulate arrays.  
10 10
 
11 11
 This laboratory experience is an adaptation of the nifty assignment presented by Daniel Zingaro in [1].  
12 12
 
@@ -30,7 +30,7 @@ Before coming to the laboratory you should have:
30 30
 
31 31
 3. Studied the concepts and instructions for the laboratory session.
32 32
 
33
-4. Taken the Pre-Lab quiz that is found in Moodle.
33
+4. Taken the Pre-Lab quiz, available in Moodle.
34 34
 
35 35
 ---
36 36
 
@@ -41,45 +41,45 @@ Before coming to the laboratory you should have:
41 41
 
42 42
 Sounds are vibrations that propagate through elastic media such as air, water, and solids. The sound waves are generated by a sound source, such as the vibrating diaphragm of a stereo speaker [2]. Sound waves consist of areas of high and low pressure called compressions and rarefractions, respectively. 
43 43
 
44
-Microphones convert sound waves into electrical signals. These electrical signals can be digitized, i.e. converted to a stream of numbers, where each number is the intensity of the electrical signal at an instant in time. The *sample rate* is the number of samples of a sound signal taken per second. For example, a *sample rate* of 44,100 samples per second is used in CD-quality recordings. This means that every second, for each of the channels (left and right), 44,100 samples of the audio signal are taken and converted to numbers.
44
+Microphones turn sound waves into electrical signals. These electrical signals can be digitized, i.e. converted to a stream of numbers, where each number is the intensity of the electrical signal at an instant in time. The *sample rate* is the number of samples of a sound signal taken per second. For example, a *sample rate* of 44,100 samples per second is used in CD-quality recordings. This means that every second, for each of the channels (left and right), 44,100 samples of the audio signal are taken and converted to numbers.
45 45
 
46 46
 ---
47 47
 
48 48
 ![image1.jpg](images/image1.jpg)
49 49
 
50
-**Figure 1**: Illustration of the steps involved in sound digitalization.  The pressure wave is converted to a voltage signal by the microphone. The voltage signal is sampled and digitized by the analog to digital converter to obtain a number value for each sample.  The stream of numbers constitutes the *digitized* sound. Taken from [3].
50
+**Figure 1**: Illustration of the steps involved in sound digitalization. The pressure wave is converted to a voltage signal by the microphone. The voltage signal is sampled and digitized by the analog to digital converter to obtain a number value for each sample.  The stream of numbers constitutes the *digitized* sound. Taken from [3].
51 51
 
52 52
 ---
53 53
 
54
-**Question...**
54
+**Question:**
55 55
 
56
-How many bytes would it take to store a song that is exactly 180 seconds long and that is recorded in stereo CD-quality. Assume that each sample is converted to a number of  2 bytes.
56
+How many bytes would it take to store a song that is exactly 180 seconds long and is recorded in stereo CD-quality? Assume that each sample is converted to a number of 2 bytes.
57 57
 
58 58
 **Answer:**
59 59
 
60 60
 180 seconds * 44,100 samples/second * 2 bytes/sample * 2 channels = 31,752,000 bytes = 31.75 MBytes.
61 61
 
62
-Fortunately, there exist sound data compression techniques such as *MP3* and *ogg* that reduce the amount of memory required to store CD-quality music.
62
+Fortunately, there is sound data compression techniques such as *MP3* and *Ogg*, that reduce the amount of memory required to store CD-quality music.
63 63
 
64 64
 ----
65 65
 
66
-**Digital sound processing** techniques can be used to enhance sound quality by removing noise and echo to perform data compression and to improve transmission. Digital sound processing also plays an important role in voice recognition applications and in scientific research such as in biodiversity recognition using sound sensors [4]. Digital sound can also be easily manipulated to produce special effects.  
66
+**Digital sound processing** techniques can be used to enhance sound quality by removing noise and echo, to perform data compression, and to improve transmission. Digital sound processing also plays an important role in voice recognition applications and in scientific research such as in biodiversity recognition using sound sensors [4]. Digital sound can also be easily manipulated to produce special effects.  
67 67
 
68
-Since digital sound recordings are in essence a collection of numeric values that represent a sound wave, digital sound processing can be as simple as applying arithmetic operations over those values. For example, let's say that you are given a digital sound recording. The louder the recording, the higher the absolute values of the numbers that it contains. To decrease the volume of the whole recording we could multiply each value by a positive number smaller than 1. 
68
+Since digital sound recordings are in essence, a collection of numeric values that represent a sound wave, digital sound processing can be as simple as applying arithmetic operations over those values. For example, let's say that you are given a digital sound recording. The louder the recording, the higher the absolute values of the numbers that it contains. To decrease the volume of the whole recording we could multiply each value by a positive number smaller than 1. 
69 69
 
70 70
 ---
71 71
 
72 72
 ![image2.png](images/image2.png)
73 73
 
74
-**Figure 2.** One of the simplest sound processing tasks: changing the volume of a sound wave by multiplying each point by a  positive number smaller than 1 (in this case 0.5).
74
+**Figure 2.** One of the simplest sound processing tasks: changing the volume of a sound wave by multiplying each point by a positive number smaller than 1 (in this case 0.5).
75 75
 
76 76
 ---
77 77
 
78 78
 ## Libraries
79 79
 
80
-For this laboratory experience you will use the multimedia libraries of `Qt`. To complete the exercises, you will need to understand the `left` and `right` members of the `QAudioBuffer::S16S` class. For the purpose of this laboratory experience we use the name `AudioBuffer` to refer to `QAudioBuffer::S16S`.
80
+For this laboratory experience you will use the multimedia libraries of `Qt`. To complete the exercises, you will need to understand the `left` and `right` members of the `QAudioBuffer::S16S` class. For the purpose of this laboratory experience, we use the name `AudioBuffer` to refer to `QAudioBuffer::S16S`.
81 81
 
82
-Each object of class `AudioBuffer` will have the variable members `left` and `right` that contain the left and right values of the stereo sound sample. These variables are public and you can access their content by writing the name of the object, followed by a period and the name of the variable. To represent a sound signal, we use an array of `AudioBuffer` objects. Each element in the array is an object that contains the left and right values of the signal at an instant in time (remember that each second contains 44,100 samples). For instance, if we have an array of `AudioBuffer` objects, called `frames`, then `frames[i].left` refers to the left channel value of the sound at sample `i`.
82
+Each object of the class `AudioBuffer` will have the variable members `left` and `right` that contain the left and right values of the stereo sound sample. These variables are public and you can access their content by writing the name of the object, followed by a period and the name of the variable. To represent a sound signal, we use an array of `AudioBuffer` objects. Each element in the array is an object that contains the left and right values of the signal at an instant in time (remember that each second contains 44,100 samples). For instance, if we have an array of `AudioBuffer` objects, called `frames`, then `frames[i].left` refers to the left channel value of the sound at sample `i`.
83 83
 
84 84
 ---
85 85
 
@@ -127,16 +127,16 @@ void HalfVolume(AudioBuffer frames[], int N){
127 127
 
128 128
 ## Laboratory Session:
129 129
 
130
-The `SoundProcessing` project contains the skeleton of an application to process stereo sound. The application you will complete will allow the user to apply four different algorithms to process sound. The sub-directory called `WaveSamples` contains sound files for you to test your implementation.
130
+The `SoundProcessing` project contains the skeleton of an application to process stereo sound. The application you will complete will allow the user to apply four different algorithms to process sound. The sub-directory called `WaveSamples` contains sound files for you to test your implementations.
131 131
 
132 132
 ### Exercise 1 - Remove vocals on a recording
133 133
 
134 134
 A cheap (but many times ineffective) way to remove the vocals from a recording is by taking advantage of the fact that voice is commonly recorded in both left and right channels, while the rest of the instruments may not. If this is the case, then we can remove vocals from a recording by subtracting the left and right channels.
135 135
 
136 136
 
137
-#### Instructions:
137
+#### Instructions
138 138
 
139
-1. Load the project  `SoundProcessing` into `QtCreator`. There are two ways to do this:
139
+1. Load the project `SoundProcessing` into `QtCreator`. There are two ways to do this:
140 140
 
141 141
     * Using the virtual machine: Double click the file `SoundProcessing.pro` located in the folder `/home/eip/labs/arrays-soundprocessing` of your virtual machine.
142 142
     * Downloading the project’s folder from `Bitbucket`: Use a terminal and write the command `git clone http:/bitbucket.org/eip-uprrp/arrays-soundprocessing` to download the folder `arrays-soundprocessing` from `Bitbucket`. Double click the file `SoundProcessing.pro` located in the folder that you downloaded to your computer.
@@ -145,7 +145,7 @@ A cheap (but many times ineffective) way to remove the vocals from a recording i
145 145
 
146 146
 3. Load any of the wave files `love.wav`, `cartoon.wav`, or `grace.wav` by clicking the `Search` button in the right side of the `Audio In` label, and play it clicking the `Play Audio In` button.
147 147
 
148
-4. In this exercise, your task is to complete the function `RemoveVocals` in file `audiomanip.cpp` so it can remove voices from a recording. The function receives an array of objects of class `AudioBuffer`, and the size of the array.
148
+4. In this exercise, your task is to complete the function `RemoveVocals` in file `audiomanip.cpp` so it can remove voices from a recording. The function receives an array of objects of the class `AudioBuffer`, and the size of the array.
149 149
 
150 150
 **Algorithm:**
151 151
 
@@ -157,18 +157,18 @@ Play the output sound file with the application by clicking the `Play Audio Out`
157 157
 
158 158
 A common sound effect is the gradual intensification of the recording's volume, or fade in. This is the result of constantly increasing the value of consecutive samples in the array of sound samples.
159 159
 
160
-#### Instructions:
160
+#### Instructions
161 161
 
162 162
 1. Load and play any of the wave files `rain.wav`, or `water.wav` just as in Exercise 1.  
163 163
 
164
-2. Your task is to complete the function `AudioFadeIn` in file `audiomanip.cpp` so it gradually intensifies the volume of a recording up to a certain moment. The function receives an array of objects of class `AudioBuffer`, the size of the array, and a fade in length that will be applied to the `AudioBuffer`. For example, if `fade_length` is `88200`, the fade in should not affect any sample in position `88200` or higher. 
164
+2. Your task is to complete the function `AudioFadeIn` in file `audiomanip.cpp` so it gradually intensifies the volume of a recording up to a certain moment. The function receives an array of objects of the class `AudioBuffer`, the size of the array, and a fade in length that will be applied to the `AudioBuffer`. For example, if `fade_length` is `88200`, the fade in should not affect any sample in position `88200` or higher. 
165 165
 
166 166
 3. Reproduce the following recordings from the `WaveSamples` folder:
167 167
 
168 168
 * `rain-fi.wav`
169 169
 * `water-fi.wav`
170 170
   
171
-The recordings were created using the fade in filter with `fade_length` set to `88200`. You should be able to listen how the water and the rain linearly fades in over the first two seconds, and then remains at the same volume throughout.  Notice that, since we are using sounds recorded at `44100` samples per second, `88200` corresponds to two seconds of the recording.
171
+The recordings were created using the fade in filter with `fade_length` set to `88200`. You should be able to listen how the water and the rain linearly fades in over the first two seconds, and then remains at the same volume throughout the recording.  Notice that, since we are using sounds recorded at `44100` samples per second, `88200` corresponds to two seconds of the recording.
172 172
 
173 173
 **Algorithm:**
174 174
 
@@ -191,18 +191,18 @@ Notice that we have 4 samples and the factor used to multiply the sample in each
191 191
 
192 192
 Another common sound effect is the gradual decrease of volume in a recording. This is the result of constantly decreasing the value of consecutive samples in the array of sound samples.
193 193
 
194
-#### Instructions:
194
+#### Instructions
195 195
 
196 196
 1. Load and play any of the wave files `rain.wav`, or `water.wav` just like in the previous exercises.  
197 197
 
198
-2. Your task in this exercise is to complete the function `AudioFadeOut` in the file `audiomanip.cpp` so it will fade out the volume starting from a sample up to the end of the recording. The function receives an array of objects of class `AudioBuffer`, the size of the array, and a fade out length that will be applied to the `AudioBuffer`. For example, if `fade_length` is `88200`, the fade-out should not affect any sample numbered `88200` or lower. 
198
+2. Your task in this exercise is to complete the function `AudioFadeOut` in the file `audiomanip.cpp` so it will fade out the volume starting from a sample up to the end of the recording. The function receives an array of objects of the class `AudioBuffer`, the size of the array, and a fade out length that will be applied to the `AudioBuffer`. For example, if `fade_length` is `88200`, the fade-out should not affect any sample numbered `88200` or lower. 
199 199
 
200 200
 3. Reproduce the following recordings from the `WaveSamples` folder:
201 201
 
202 202
 * `rain.fo.wav`
203 203
 * `water.fo.wav`
204 204
   
205
-The recordings were created using the fae out filter with `fade_length` set to `88200`. You should be able to listen how the water and the rain is played at maximum volume and then in the last two seconds the sound starts to linearly fade out.
205
+The recordings were created using the fade out filter with `fade_length` set to `88200`. You should be able to listen how the water and the rain is played at maximum volume and then in the last two seconds the sound starts to linearly fade out.
206 206
 
207 207
 **Algorithm:**
208 208
 
@@ -211,10 +211,10 @@ The multiplicative factors for `fade_out` are the same as for `fade_in`, but are
211 211
 
212 212
 ### Exercise 4 - Panning from left to right
213 213
 
214
-The sound effect we want to produce in this exercise is to start hearing sound from the left channel, then fading from that channel, intensifying in the right channel and ending up completely on the right channel.
214
+The sound effect we want to produce in this exercise is to start hearing sound from the left channel, then fading from that channel, intensifying in the right channel, and ending up completely on the right channel.
215 215
 
216 216
 
217
-#### Instructions:
217
+#### Instructions
218 218
 
219 219
 1. Load and play the `airplane.wav` just like in the previous exercises.
220 220
 
@@ -222,6 +222,7 @@ The sound effect we want to produce in this exercise is to start hearing sound f
222 222
 
223 223
 3. Play the `airplane.out.wav` recording. You should be able to listen how the airplane sound starts completely at the left, then slowly moves to the right, reaching the extreme right by the final sample.
224 224
 
225
+
225 226
 **Algorithm:**
226 227
 
227 228
 Getting a sound to move from left to right like this requires a fade-out on the left channel and a fade-in on the right channel. For instance, if `pan_length` is `4`, the filter will be applied to the first 4 samples:
@@ -238,7 +239,7 @@ Getting a sound to move from left to right like this requires a fade-out on the
238 239
 
239 240
 ### Deliverables
240 241
 
241
-Use "Deliverable" in Moodle to upload the `audiomanip.cpp` file. Remember to use good programming techniques, include the names of the programmers involved, and to document your program.
242
+Use "Deliverable" in Moodle to upload the `audiomanip.cpp` file. Remember to use good programming techniques, include the names of the programmers involved, and document your program.
242 243
 
243 244
 ---
244 245