SCHOOL OF COMPUTER SCIENCE COURSEWORK ASSESSMENT PROFORMA

SCHOOL OF COMPUTER SCIENCE
COURSEWORK ASSESSMENT PROFORMA
TITLE: Sample-based Beat Slicing and Granular Synthesiser
MODULE & LECTURER: CM0340 Multimedia Prof. A D Marshall
DATE SET: Monday February 11, 2013
SUBMISSION DATE: By Friday April 26, 2013
SUBMISSION ARRANGEMENTS: Submission of all material (Short
Report and MATLAB code) by Midnight of Friday 26th April (Week 10,
Semester 2) via Learning Central.
Details of the Learning Central Submission Procedure are outlined
below.
This coursework is worth 20% of the total marks available for this module. The
penalty for late or non-submission is an award of zero marks.
You are reminded of the need to comply with Cardiff University’s Student Guide to
Academic Integrity.
INSTRUCTIONS
The exercise involves developing a MATLAB Sample-based Beat Slicing and Granular
Synthesiser.
You must submit a typeset report in PDF format — a short (3-4 pages) written description
conveying all the appropriate information to demonstrate and explain your programming
philosophy is all that is required. You should also submit all MATLAB code as text files
which should be zipped into a single file for submission. For complete details see the
following sheets.
CRITERIA FOR ASSESSMENT
Credit will be awarded against the following criteria.
• A Pass mark (3rd Class Level) (40-50%) will be awarded for solutions that satisfy most of the
main points of the basic solution (specified below)
• Average marks (2.2 class Level) (50-60 %) will be awarded for solutions that provide a basic
solution to all the main points of the problem (specified below)
• Good marks (2.1 class Level) (60-70%) will be awarded for solutions that provide a thorough
solution to all the main points of the problem (specified below)
• High marks (1st class) (over 70%) will be awarded for solutions that provide thorough
solutions to the basic problems and also some novel extensions/additional features.
• Solutions that do not satisfy the full criteria will get lower marks.
Specifically the marks will be apportion as follow:
• 10 marks are available for the basic satisfaction of the coursework requirements – Overview
of solution, appropriate satisfaction of all the basic criteria for the exercise (specified below).
• 30 marks are available for your solution to working system that clearly demonstrates a
working functional system with suitable MATLAB implementations of basic exercise criteria.
• 30 marks are available for a clear write up and demonstration of a working system in the lab
classes of a fully working system. The write up should clearly state your design and
implementation strategy.
• 30 marks are available for your design and incorporation of other features and media beyond
the basic coursework specification.
Feedback on your performance will address each of these criteria.
FURTHER DETAILS
Feedback on your coursework will address the above criteria.
The Individual project work will be returned in a scheduled revision lecture (TBA)
during reading week (Week 12, Semester 2).
Individual feedback will be given via Grade Centre.
This will be supplemented with oral feedback via….
In the revision lecture where the Individual project work is returned.
Multimedia Module No: CM0340
Assessed Coursework:
MATLAB Sample-based Beat Slicing and
Granular Synthesiser
Submission of Coursework
• Hand in Date: Submission of all material (Short Report and MATLAB
code) by Midnight of Friday 26th April (Week 10, Semester 2) via Learning
Central.
• You must also get your coursework ‘signed off ’ by the tutor to verify to
what extent the programs work according to specification.
Your must therefore demonstrate your working solution to the
tutor in the Week 10 Lab Classes
• The tutor is only guaranteed to be available to sign at CM0340 Laboratory
Sessions.
– The Lab Tutor will make comments on your demonstration solution
via Grade Centre.
– The Lab Tutor plays no part in assigning any of the marks for this
coursework
• The coursework is worth 100% of the coursework component,i.e. 20 Marks
for the whole module.
Submission Details
The exercise involves developing a Sample-based Beat Slicing and Granular
Synthesiser in MATLAB. You must submit a typeset report in PDF format —
a short (3-4 pages) written description conveying all the appropriate information
to demonstrate and explain your programming philosophy plus all MATLAB code
as text files.
Your coursework submission must include:
• A cover page that details the following:
1
– Student No., Student Name, Module Code, Module Title, Coursework
Title, Lecturer, Hours Spent on this Exercise, (Special Provision if
applicable).
• A 3–4 page typeset PDF report detailing the following
– An overview of your program design and implementation.
– A basic algorithmic description of the main elements of your solution
and how they satisfy the basic requirement listed below.
– You should highlight any novel features or those above the basic requirements — i.e. those features developed beyond the basic requirements.
• In addition to the 3–4 page report, a copy of all MATLAB code should be
provided.
– These should be submitted as text files.
– Include all MATLAB files.
– MATLAB files should be submitted as single zip file collection.
• Ensure that your student number and name are in each file that makes up
your submission.
Assessed Coursework
You should develop a Sample-based Beat Slicing and Granular Synthesiser
in MATLAB.
2
The following basic requirements should be met in order to gain average to
good marks:
• You should implement a method of taking an input audio file and detecting
appropriate positions in the audio where it may be partitioned for beat
slicing, mapping to keys, looping etc. A simple example would be slicing up
drum loops but your solution need not be limited to to just drum loops —
as demonstrated in lectures/tutorials.
• Playback need only be monophonic, i.e it need only be able to play one
audio sample/note at a time.
• How to trigger new sounds? You synthesiser could play notes directly from
a suitable user interface or read notes entered in some command prompt
using a suitable simple user interface. Notes could also be read from a file
which could be some custom format or possibly a MIDI file (assuming the
MIDI file only contains monophonic lines or you play only one monophonic
channel from the file).
• In addition to slicing up of basic audio material you should provide some
additional audio processing:
– You should implement some form of Granular Synthesis. For example
as utilised in Kontakt and demonstrated in the Lectures.
3
– You should implement some form of volume shaping or envelope shaping to control or modulate the basic sounds synthesised.
– You should provide some additional modulation of the basic synthesised waveforms to provide a wider sound palette. The obvious example
here would be some form of filtering although other forms of processing
could be provided
• The playback of audio DOES NOT have to operate in real time
– you can read the data in, generate/process the audio and then play the
output, much like the demo MATLAB programs in the lectures/tutorials.
• Your basic system need not have any advanced GUI. You could satisfy all
the requirements with a minimal GUI to display audio and its slicing and
maybe just a basic file chooser — depending on how you decide to input
data. You may choose to have a few GUI elements to help input a few
parameters.
• Your synthesis/effects pipeline from generating sounds to output can be
fixed, i.e. the order of processing elements can be a series of processes that
are hard wired in the MATLAB code.
In order to gain higher marks you need to think of adding two novel extensions
or additional features. There are endless possibilities here and you are encouraged
to think of your own extensions. Here are a few suggestions:
• You could apply some basic digital audio effects to the complete output
synthesised notes. The choice of digital audio effects is up to you.
• Provide a user-friendly way slice up the audio and to enter musical data.
• Provide support for polyphonic output.
• Provide MIDI support for data input.
• Provide additional methods of digital synthesis. Furthermore you could offer
a hybrid synthesis approach where more than one mode of synthesis is used
at one time to produce musical notes.
• Provide a means for modifying the pitch of the sliced up audio.
• Provide advanced filtering or other forms of modulation.
• Provide a more advanced of set of digital audio effects.
4
• A modular synthesis/effects approach may be developed where the the sound
generation and subsequent processing pipeline (order of synthesis/effects) is
not static and can be configured at runtime or within the running MATLAB
code.
• GUI elements to control the synthesis, filtering/modulation, effects and
sound output may be provided.
Demonstrating your system
You will be required to demonstrate your final system to the lab tutor in order
to verify the extent to which the programs work according to specification. You
must also get your coursework ‘signed off ’ by the tutor to verify this. The tutor
is only guaranteed to be available to sign at Multimedia Laboratory Sessions.
For the demo you need only play a short sequence of notes, for example a short
melody or musical scale. This will be enough to demonstrate that you can make
musical sounds.
Clearly if you have any additional features in your system, it will be appropriate
to demonstrate how they work and that they function accordingly.
Keeping the Noise Down in the Labs
Please remember to use headphones when developing your system in
the lab: you may bring your own headphones or some can be supplied
by the tutor
Some Useful Links
You may find these useful in helping you develop your solution to the above assessed coursework:
• http://www.native-instruments.com/index.php?id=kontakt5 — Kontakt 5
Software Home page and demo video.
• http://www.propellerheads.se/products/recycle/ — Recycle Software home
page.
• https://www.youtube.com/watch?v=4qlC572hVgU&list=
UUM exBoQ2NgqnKJOHrtiUMQ&index=10 — Good Recycle demo on You
Tube.
5
• http://www.jyu.fi/musica/miditoolbox/ — MATLAB MidiToolbox. Reads/Writes
Midifiles, converts midi between note number, musical notes/pitches and frequencies. See also http://www.cs.cf.ac.uk/Dave/Multimedia/exercises BSC/
for local copy of the MidiToolbox.
• http://amath.colorado.edu/pub/matlab/music/ — simple MATLAB examples, musical pitch to frequency chart.
• http://labrosa.ee.columbia.edu/matlab/ — MATLAB Audio Processing Examples
• http://www.harmony-central.com/articles/tips/pitch vs frequency/ — Musical pitches v frequency relationship.
A quick web search should provides plenty of free audio samples for you to use
to develop and test your system. Here are a few links to get you started:
• http://www.freeloops.com/
• http://www.mhat.com/phatdrumloops/
• http://www.loopasonic.com/
Prof. David Marshall. February 2013
6