Data processing apparatus for generating an alarm based on the output of one or more cameras and/or one or more microphones, comprising: a video data receiver configured to receive video data; and/or an audio data receiver configured to receive audio data; and an alarm engine configured to perform sequential analysis of said received video and/or audio data to determine a sequence of one or more incidents and to generate an alarm signal if the video data and/or audio data corresponds to one or more configuration files in the alarm engine; the data processing apparatus including a graphical user interface for generating the or each configuration file, which is operable: (i) to accept user input to generate a plurality of incident analysis functions representing incidents that may be present in the video and/or audio data, and to display the incident analysis functions so generated; (ii) to accept user input to generate a plurality of contemporaneous analysis functions that define operations that are performed on one or more incident analysis output signals based on Boolean logic, and to display the contemporaneous analysis functions so generated; and (iii) to accept user input to generate a plurality of sequential analysis functions that define operations that are performed on one or more of the contemporaneous analysis functions occurring sequentially based on Boolean logic, and to display the sequential analysis functions so generated. a video data receiver configured to receive video data; and/or an audio data receiver configured to receive audio data; and an alarm engine configured to perform sequential analysis of said received video and/or audio data to determine a sequence of one or more incidents and to generate an alarm signal if the video data and/or audio data corresponds to one or more configuration files in the alarm engine; the data processing apparatus including a graphical user interface for generating the or each configuration file, which is operable: (i) to accept user input to generate a plurality of incident analysis functions representing incidents that may be present in the video and/or audio data, and to display the incident analysis functions so generated; (ii) to accept user input to generate a plurality of contemporaneous analysis functions that define operations that are performed on one or more incident analysis output signals based on Boolean logic, and to display the contemporaneous analysis functions so generated; and (iii) to accept user input to generate a plurality of sequential analysis functions that define operations that are performed on one or more of the contemporaneous analysis functions occurring sequentially based on Boolean logic, and to display the sequential analysis functions so generated. (i) to accept user input to generate a plurality of incident analysis functions representing incidents that may be present in the video and/or audio data, and to display the incident analysis functions so generated; (ii) to accept user input to generate a plurality of contemporaneous analysis functions that define operations that are performed on one or more incident analysis output signals based on Boolean logic, and to display the contemporaneous analysis functions so generated; and (iii) to accept user input to generate a plurality of sequential analysis functions that define operations that are performed on one or more of the contemporaneous analysis functions occurring sequentially based on Boolean logic, and to display the sequential analysis functions so generated.