41
edits
Techprolet (talk | contribs) No edit summary |
Techprolet (talk | contribs) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 30: | Line 30: | ||
===Interface=== | ===Interface=== | ||
<gallery heights="300px"> | <gallery heights="300px" perrow="5"> | ||
File:UPIC_Screenshot_1.png|UPIC 01 | File:UPIC_Screenshot_1.png|UPIC 01 | ||
File:UPIC_Screenshot_2.png|UPIC 02 | File:UPIC_Screenshot_2.png|UPIC 02 | ||
Line 37: | Line 37: | ||
File:Screenshot_6.png|UPIC 05 | File:Screenshot_6.png|UPIC 05 | ||
</gallery> | </gallery> | ||
A user can choose between three different modulations (''sine'', ''triangle'', ''square'' waveforms) by clicking on one of the three differently colored buttons. This way, a '''red''' line stands for a ''sine'' waveform, a '''green''' line for a ''triangle'' and a '''blue''' line stands for a ''square'' wave. An '''undo''' button allows to step back and delete the last line(s). With the '''pinch-out''' gesture, all interface elements (buttons & slider) vanish, so that the whole canvas is available for drawing (pinch-in brings everything back) The user can '''play/stop''' the composition, control '''playback speed''' by moving the slider and also play in '''loop'''. | A user can choose between three different modulations (''sine'', ''triangle'', ''square'' waveforms) by clicking on one of the three differently colored buttons. This way, a '''red''' line stands for a ''sine'' waveform, a '''green''' line for a ''triangle'' and a '''blue''' line stands for a ''square'' wave. An '''undo''' button allows to step back and delete the last line(s). With the '''pinch-out''' gesture, all interface elements (buttons & slider) vanish, so that the whole canvas is available for drawing (pinch-in brings everything back) To clear the canvas, the user has to '''double tap''' the canvas. The user can '''play/stop''' the composition, control '''playback speed''' by moving the slider and also play in '''loop'''. | ||
When playing, a needle indicates the position on the drawing/partiture. | When playing, a needle indicates the position on the drawing/partiture. | ||
===Mechanics=== | ===Mechanics=== | ||
The app consists of | The app consists of 4 Classes: | ||
The ''' | The '''main''' class where everything starts (not much interesting happens here). | ||
The '''UpicViewController''' controls the only View of the UPIC app. When a user draws a line, the ''UpicViewController'' creates an instance of '''SoundVector''' which is charged with storing the point2d-path the line consists of, and also transforming this point2d-path into sound. Two-dimensional points are stored in an [http://cocoawithlove.com/2008/12/ordereddictionary-subclassing-cocoa.html '''OrderedDictionary'''] | The '''UpicAppDelegate''' is the application delegate (you guessed that!) | ||
The '''UpicViewController''' controls the only View of the UPIC app. When a user draws a line, the ''UpicViewController'' creates an instance of '''SoundVector''' which is charged with storing the point2d-path the line consists of, and also transforming this point2d-path into sound. Two-dimensional points are stored in an [http://cocoawithlove.com/2008/12/ordereddictionary-subclassing-cocoa.html '''OrderedDictionary''']. SoundVector instances themselves are also stored in an ''OrderedDictionary''. Of course, all user interaction (painting, undoing, playing, controlling speed and loop) is handled by the ''UpicViewController''. | |||
==App Store== | |||
We expect to have finished polishing the app by the end of September 2011 and by then have it submitted to the AppStore. (The app is already fully functional) | |||
==References== | ==References== | ||
<references/> | <references/> |
edits