SCHOOL OF COMPUTER SCIENCE COURSEWORK ASSESSMENT PROFORMA
Transcription
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