the caitlin system musical program auralisation & external representations of pascal

50
Musical Program Auralisat ion 1 The cAitlIn system Musical Program Auralisation & External Representations of Pascal http://computing.unn.ac.uk/staff/cgpv1/ caitlin Dr Paul Vickers School of Informatics, Northumbria University Professor J.L. Alty Dean of Faculty of Science, Loughborough University

Upload: raiden

Post on 21-Mar-2016

28 views

Category:

Documents


3 download

DESCRIPTION

The cAitlIn system Musical Program Auralisation & External Representations of Pascal. http://computing.unn.ac.uk/staff/cgpv1/caitlin Dr Paul Vickers School of Informatics, Northumbria University Professor J.L. Alty Dean of Faculty of Science, Loughborough University. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 1

The cAitlIn systemMusical Program Auralisation

& External Representations of Pascal

http://computing.unn.ac.uk/staff/cgpv1/caitlin

Dr Paul VickersSchool of Informatics, Northumbria University

Professor J.L. AltyDean of Faculty of Science, Loughborough

University

Page 2: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 2

Introduction Major features Background to the project Sound in HCI A case for music The cAitlIn system Demonstration Future work

Page 3: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 3

Major features With cAitlIn we have:

– A musical equivalent for various syntactic components of a programming language = musical grammar

– Extended the earcon technique (q.v.)– An audio program structure diagram

(execution path)

Page 4: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 4

Major features– A MPAS usable by non-musicians– Shown that music can be used to

communicate information about program state and structure

– In turn, this info can assist bug location Empirical evaluation Organising principles Opened new line of enquiry &

researchAuditory External Representations

Page 5: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 5

Background Interests in music, computing, &

programming Hunch that music could be used to

assist in the programming process Develop and test a musical framework

for communication of program information

Page 6: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 6

Sound in HCI Increasing research focus since mid ‘80s. A belief that non-speech audio useful as

interaction medium A nascent field called auditory display

spawns techniques like:– Sonification– Audification– Auralisation

Page 7: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 7

Examples Auditory icons Earcons Data visualisation (sonification &

audification) Assistive technologies

Page 8: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 8

Program auralisation Mapping of program data and events to

sound Main examples

– LogoMedia– Sonnet– ADSL– LISTEN

Largely untested

Page 9: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 9

Why music? Gives multiple audio streams in parallel Structured and organised according to

specific rules Time-ordered. Visual techniques are

spatial. Can music’s grammars be used to carry

real information?

Page 10: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 10

cAitlIn system Computer Audio Interface to Locate

Incorrect Nonsense Uses musical motifs to render Pascal

language constructs at run time Motif design is hierarchic as is

organisation of constructs

Page 11: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 11

Hierarchic motif designConstruct type

Selection Iteration

IFs CASEs

IF...ELSEIF... CASE CASE...ELSE

Determin-ate

FOR

Indeterm-inate

WHILE REPEAT

Abstract auralizationEntry/Body/Exit leitmotifs

Genericselection leitmotif

Genericiteration leitmotif

GenericIF leitmotif

GenericCASE leitmotif

Page 12: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 12

Musical grammars

Page 13: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 13

Musical grammars We map existing grammar (e.g.

Pascal syntax, English, etc.) onto a musical grammar

Transliteration or translation? We may get emergent properties

leading to a new musical grammar

Page 14: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 14

cAitlIn musical grammar Uses motif classes and variations to

render Pascal constructs Allows

– abstraction– nesting (tonality & harmony preserved

across motifs) Uses grammatical rules (e.g. a tonal

music system)

Page 15: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 15

cAitlIn musical grammar cont Renders information not directly

communicated by source code or other visualisation techniques

a new grammar, conveys extra meaning

Page 16: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 16

Advantages Over earcons

– do not show state Over Auditory Icons

– symbolic mappings = poor system aural ecology

Syntactic design expect retention Displays both flow and state

Page 17: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 17

Design of Tunes Points of Interest

– Construct Entry– Evaluation of condition– Execution of body– Exit from construct

Boolean True=major, False=minor Drones

Page 18: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 18

Selection Tunes Metaphorically asking & answering a

question. Tune rises on entry and descends on

exit

Page 19: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 19

Iteration Tunes Major/Minor chord to show when

condition evaluated Heard at start of WHILE loops and at

end of REPEAT loops FOR loops increase/decrease the pitch

each time round the loop

Page 20: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 20

Variations All selections use same basic tune,

modified for individual constructs All iterations use another basic tune,

again modified

Page 21: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 21

Auditory Parentheses As () bracket a thought in a sentence,

so the auditory parentheses serve to open and close constructs

Page 22: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 22

Other Statements All other statements are currently

represented by a drum beat, one per statement.

Page 23: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 23

Demonstration

Page 24: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 24

Examples Generic selection motif Generic iteration motif

Page 25: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 25

IF (true)a := 10 ;IF a = 10 THEN Writeln (‘A is 10’) ;

Page 26: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 26

IF (false)a := 0 ;IF a = 10 THEN Writeln (‘A is 10’) ;

Page 27: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 27

IF…ELSE (true)a := 10 ;IF a = 10 THEN Writeln (‘A is 10’)ELSE Writeln (‘A is not 10’) ;

Page 28: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 28

IF…ELSE (false)a := 1 ;IF a = 10 THEN Writeln (‘A is 10’)ELSE Writeln (‘A is not 10’) ;

Page 29: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 29

CASE matcha := 3 ;CASE a OF 1 : Writeln (‘A is 1’) ; 2 : Writeln (‘A is 2’) ; 3 : Writeln (‘A is 3’) ;END ;

Page 30: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 30

CASE no matcha := 100 ;CASE a OF 1 : Writeln (‘A is 1’) ; 2 : Writeln (‘A is 2’) ; 3 : Writeln (‘A is 3’) ;END ;

Page 31: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 31

CASE…ELSE matcha := 3 ;CASE a OF 1 : Writeln (‘A is 1’) ; 2 : Writeln (‘A is 2’) ; 3 : Writeln (‘A is 3’) ; ELSE Writeln (‘No match’) ;END ;

Page 32: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 32

CASE…ELSE no matcha := 100 ;CASE a OF 1 : Writeln (‘A is 1’) ; 2 : Writeln (‘A is 2’) ; 3 : Writeln (‘A is 3’) ; ELSE Writeln (‘No match’) ;END ;

Page 33: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 33

WHILE 2 iterscntr := 1;WHILE cntr <= 2 DO cntr := cntr + 1 ;

Page 34: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 34

REPEAT 3 iterationscntr := 1 ;REPEAT cntr := cntr + 1 ;UNTIL cntr > 3 ;

Page 35: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 35

FOR…TO 6 itersFOR cntr := 1 TO 6 DO Writeln (cntr) ;

Page 36: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 36

FOR…DOWNTO 6 itersFOR cntr := 6 DOWNTO 1 DO Writeln (cntr) ;

Page 37: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 37

Sequence & Nesting Clue to nesting is in the drone If you hear a continuous note then you

are inside a construct. Each construct has a drone. For nested constructs you hear multiple

drones simultaneously Drone pitch increases as nesting

deepens

Page 38: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 38

Example programProgram ExemplarVAR counter : Integer ;BEGINcounter := 1 ;WHILE counter <= 2 DO BEGIN IF counter MOD 2 = 0 THEN Writeln (‘Counter is even’) ; counter := counter + 1 ; END ;END.

Page 39: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 39

Scoreiteration open WHILE drone

True

counter := counter + 1;

selection open

FalseIF drone

selection close

WHILE condition

True

IF drone

exit IF

Writeln...sleighbell denotes

terminating conditionfor WHILE

False exit WHILE

iteration close

closed triangle

Auralisation score of aprogram. Notice that

the drones for eachconstruct appear

together on the stafflabelled 'Drones'.

Likewise, all percussiveevents for each

construct appear onthe 'Drums' staff.

Shifts between majorand minor are shown

by changes in keysignature.

1999 Paul VickersAll rights reserved counter := 1

True

counter := counter + 1;

Page 40: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 40

Score

Page 41: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 41

Structure DiagramProgram Sales

Prepare file Process Sales

Sales Record

Valid Sale Invalid Sale

Test sale Read next

Close file

*

o o

Page 42: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 42

Experiment 1 Listening test to assess

comprehensibility of motifs 22 subjects, 60 auralisations Recognition rate better than by

chance and with very little training Hierarchic organisation allowed class

level identification & abstraction

Page 43: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 43

Experiment 2 Debugging exercise 22 subjects, 8 programs, 4

auralised, 4 normal Results suggest technique is

useful, especially for complex programs and where program output gives few clues

Identified avenues for further research

Page 44: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 44

Limitations No comparison with visual task yet Cognitive latency of motifs? No longitudinal results

Page 45: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 45

Future work Follow-up studies Extend the grammar to include

assignment statements and procedure calls– How far? Bugs not manifested in program

flow are v. hard to detect and generally require variable inspection to locate, which is impractical for auralisation techniques

Page 46: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 46

Future work Port cAitlIn to MS-Windows and

conduct a longitudinal study Assistive technologies. How can MPA

aid blind programmers?

Page 47: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 47

Future work Preparing EPSRC bid to investigate

Auditory External Representations (c.f. EPSRC CRUSADE project at COGS

in Sussex - du Boulay et al)

Page 48: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 48

Publications–Journals & Reports Vickers, P. and Alty, J. L. (2002). When Bugs Sing,

Interacting with Computers in press. Vickers, P. and Alty, J. L. (2002). Musical Program

Auralisation: A Structured Approach to Motif Design, Interacting with Computers in press.

Vickers, P. and Alty, J. L. (2002). Using Music to Communicate Computing Information, Interacting with Computers in press.

Vickers, P. (2001). Using the World-Wide Web as a Platform for an Interactive Experiment, Liverpool: Liverpool John Moores University, Technical Report CMS-21, ISBN 1-902560-050.

Page 49: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 49

Publications–Conferences Vickers, P. and Alty, J. L. (2000). Musical Program

Auralisation: Empirical Studies, in Proc. ICAD 2000 Sixth International Conference on Auditory Display (Atlanta, GA, 2-5 April, 2000), International Community for Auditory Display, pp. 157-166 ISBN 0-9670904-1-5

Vickers, P. and Alty, J. L. (1998). Towards some Organising Principles for Musical Program Auralisation, in Proc. ICAD '98 Fifth International Conference on Auditory Display (Glasgow, Nov 1-4, 1998), British Computer Society ISBN 1 902505 05 0

Alty, J. L. and Vickers, P. (1997). The CAITLIN Auralization System: Hierarchical Leitmotif Design as a Clue to Program Comprehension, in Proc. ICAD '97 Fourth International Conference on Auditory Display (Palo Alto, November 3-5, 1997), Xerox PARC, Palo Alto, CA 94304, pp. 89-96

Page 50: The  cAitlIn  system Musical Program Auralisation & External Representations of Pascal

Musical Program Auralisation 50

Publications–Conferences cont. Alty, J. L., Vickers, P. and Rigas, D. (1997). Using Music as

a Communication Medium, in Proc. Refereed Demonstrations, CHI97 Conference on Human Factors in Computing Systems (Atlanta, GA, March 22-27, 1997), ACM Press, pp. 30-31 ISBN 0-8979-926-2

Vickers, P. and Alty, J. L. (1996). CAITLIN: A Musical Program Auralisation Tool to Assist Novice Programmers with Debugging, in Proc. ICAD '96 Third International Conference on Auditory Display (Palo Alto, Nov 4-6, 1996), Xerox PARC, Palo Alto, CA 94304, pp. 17-24