Changes

Jump to: navigation, search

SPO600 Algorithm Selection Lab

581 bytes added, 14:34, 2 October 2015
Lab 3
[[Category:SPO600 Labs]]{{Admon/lab|Purpose of this Lab|In this lab, you will select one of two algorithms for adjusting the volume of PCM audio samples based on benchmarking of two possible approaches.}}
[[Category:SPO600 Labs]]
== Lab 3 ==
1. Write two different approaches to adjusting the volume of a sequence of sound samples:
* The first one should scale a signed 16-bit integer by multiplying it by a volume scaling factor expressed as a floating point number in the range of 0-1. This should be implemented as a function that accepts the sample (int16) and scaling factor (float) and returns the scaled sample (int16).* The second one should do the same thing, using a lookup table (a pre-computed array of all 65536 possible values). The lookup table should be initialized every time a different volume factor is used.This should be implemented as a drop-in replacement for the function above (same parameters and return value). 
2. Test which approach is faster. Control the variables and use a large run of data (at least millions of samples). Use both [[SPO600 Servers|Xerxes and Aarchie]] for testing.
 
3. Blog about your results. Important! -- explain what you're doing so that a reader coming across your blog post understands the context (in other words, don't just jump into a discussion of optimization results -- give your post some context).
=== Competition ===
* For discussion in class: How fast can you scale 100 million int16 PCM sound samples? {{Admon/tip|SOX|If you want to try this with actual sound samples, you can convert a sound file of your choice to raw 16-bit signed integer PCM data using the [http://sox.sourceforge.net/ sox] utility present on most Linux systems and available for a wide range of platforms.}}

Navigation menu