-
Notifications
You must be signed in to change notification settings - Fork 15
/
project2.html
94 lines (84 loc) · 5.93 KB
/
project2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" />
<title>COMP 150-ISW: Music Apps on the iPad</title>
</head>
<body>
<div id="main">
<div id = "header">
<h1>Music Apps on the iPad</h1>
<h2>COMP 150-ISW, Tufts University Department of Computer Science, Spring 2015</h2>
</div>
<h3>Overview</h3>
<p>For your final project, your team will develop a functional music application with a few restrictions and requirements.</p>
<h3>Guidelines and Restrictions</h3>
<ol>
<li>The app shall not be used for organizing or downloading music libraries.</li>
<li>The app shall not be not be a "DJ"-style app for manipulating playback of non-original music files.</li>
<li>Teams are allowed to make changes or additions to their project proposal after it is finalized <span class="stress">with consent of the instructors.</span></li>
</ol>
<h3>Requirements</h3>
<p>Generally speaking, your team has a lot freedom to be creative. However your app must incorporate two items from the following menu:</p>
<ul>
<li>Work with MIDI input and/or output</li>
<li>Record audio from app or audio input (e.g., microphone)</li>
<li>Use a sequencer</li>
<li>Use a sampler</li>
<li>Use Bluetooth or some other wireless communication to connect to an external audio device</li>
<li>Use Core Data or a related framework to add data persistence</li>
<li>Post and get data to or from an external server</li>
<li>Read and write MIDI files</li>
<li>Use Audio Units to integrate Pure Data with Core Audio in some manner (e.g. AudioBus)</li>
</ul>
<p> Your app must also do the following:</p>
<ul>
<li>Use visual feedback on user input</li>
<li>Have a minimum of 2 effects, one of which must be an LFO or envelope connected to an effect</li>
<li>Use multiple view controllers</li>
<li>Use multiple gestures</li>
<li>Have no pops or clicks when starting or stopping audio</li>
<li>Have a help screen for instructions</li>
</ul>
<h3>Deliverables</h3>
<p>There are five deliverables for this project:</p>
<ol>
<li>Project Proposal (<span class="note">on Thursday, March 12th</span>) - Your project proposal shall be a two-minute elevator pitch, presented in class, that addresses (1) the problem(s) your team are trying to solve or (2) why your team chose this project. Do not prepare slides or hand in anything for this. Your team is strongly encouraged to propose more than one idea. The instructors have to approve the proposal and may suggest changes.</li>
<li>Design Presentation (<span class="note">on Thursday, March 26th</span>) - Your team will present design to the class. The design must outline:
<ul>
<li>Core functionality of app</li>
<li>Source (music/sound) requirements</li>
<li>Inputs and outputs</li>
<li>Anticipated challenges</li>
<li>Mockup user interface screenshots (drawn electronically only)</li>
</ul>
</li>
<li>User Interface Presentation (<span class="note">on Thursday, April 2nd</span>) - The purpose of this presentation is to make sure that your team has started building the app and to review the user interface. It is important that your app reasonably follows the Apple Human Interface Guidelines (the H.I.G): <a href="https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html#//apple_ref/doc/uid/TP40006556-CH1-SW1" target="_blank">https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html#//apple_ref/doc/uid/TP40006556-CH1-SW1</a>. It is important to note that for this presentation, we are not expecting your app to be functional (i.e., user interface elements are not "hooked up" yet). The reason for this presentation is that in the past, we have seen many apps with shoddy user interfaces.</li>
<li>Alpha Demo Days (<span class="note">on Tuesday, April 14th and Thursday, April 16th</span>) This is a check-in, status report, of your team's progress. We expect some functionality in your app.</li>
<li>Final App Demo Day (<span class="note">on Tuesday, April 28th</span>)</li>
</ol>
<h3>Assessment</h3>
<p>Your app will be assessed on six factors:</p>
<ol>
<li><span class="stress">Functionality</span> - Something that works consistently. Remember, an app with fewer features that work is significantly better than one with numerous features, in which some either do not work or are buggy.</li>
<li><span class="stress">Production</span> - We are looking for an app that is polished (e.g., graphics), consistent (e.g., look-and-feel), and reasonably professional. <a href="https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html#//apple_ref/doc/uid/TP40006556-CH1-SW1" target="_blank">Did you follow the Apple Human Interface Guidelines (HIG)?</a></li>
<li><span class="stress">Complexity</span> - The more original your app is, the better.</li>
<li><span class="stress">Usefulness / Fun</span> - Does your app fulfill a recognized need among musicians or educators, or is it just fun (or both)?</li>
<li><span class="stress">Learning Curve</span> - Is the app easy to understand at first, and does it offer a more rewarding experience as the user gets to know it?</li>
<li><span class="stress">Technical Competency</span> - Use <a href="http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code" target="_blank">good programming practices</a>, consistent Git commits and pushes, meaningful Git commit messages used.</li>
</ol>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-582953-15");
pageTracker._trackPageview();
} catch(err) {}
</script>
</body>
</html>