You are on page 1of 2

ASSIGNMENT PAUL

Hey Paul! Before you read through these small assignments I would like to ask you to
point out your current strong points as well as things that you would still like to learn in
both software, preferably audio (DSP) related programming skills, and hardware.

If you need any more information with the questions I have formulated, please let me
know!

Software:
Strong:

Future improvements:

Hardware:
Strong:

Future Improvements:

Assignment I
For the first part of the assignment I would like you to describe in detail how you
would write a pitch shifting algorithm that uses samples. For example. We have the
Teensy 3.6 board (based on the ARM Cortex M4) + the teensy audio shield to work
with.

We plug in an SD card that contains samples in either RAW or WAV format. We can
play/trigger these samples by pressing a set of buttons connected to D1, D2, D3,
D4, and D5. Each of the buttons should trigger the same sample, but at a dierent
pitch. (D2 should be original pitch + 1 semitone, D3 should be original pitch +2
semitones, etc.) !!Keep in mind that the Teensy 3.6 can also write and read stu on
an attached flash memory module!!

How can we change the pitch of theses samples in realtime and send them to the
stereo output of the audio shield without changing the sample-rate of both the
samples as well as the audio shield. (Which should remain at 44.100) Keep in mind
that the read speed for SD cards is highly limited and cannot be used with very
short intervals. For this exercise we will need to be able to press all 5 buttons at the
same time and play/hear all of the sounds together.

If you can, please also provide me with an outline for the code that you would write
to make this.

Assignment II
For the second assignment I would like you to describe in detail how you would
create a GUI (Graphical User Interface) component for a touch display, that replaces
the functionalities of the buttons from assignment 1.

This means that I would like you to describe and show how you would design a
GUI that has 5 virtual buttons that can be pressed by the user on the screen. Once
the button is pressed, a separate visualisation should be shown on the screen that
shows the waveform of the sample (Preferably through FFT or dierent signal
analysis) whilst still showing the on-screen buttons. The other functionalities, i.e. the
pitch shift and stereo output of the sound, should remain the same.

Keep in mind that all of these processes need to happen in parallel and with the
smallest delay possible. You are allowed to propose the use of a separate processor
for either the display or the sounds, however if you do so you will have to include a
detailed description of serial communication between both processors in your plan.

Thats enough of a challenge for now, feel free to let me know when you have questions
about anything. :) Some of the assignment components are tricky bits that might not
have a direct answer, in that case, write that down in your solutions.

You might also like