Feature: circle stroke moves when activated  	In order to ma a circle stroke move 	As a VJ activating and deactivating the code 	I want the circle to move and stop 	So it will make the circle stroke move   	Scenario 1: circle stroke moves when activated   		Given I am not yet activating anything 		Then you see the first frame of the circle stroke 		When I send the activate message 		Then it should start moving 		And it should loop this movement  		When I send it the activate message again 		When I send it the deactivate message 		Then it should stop moving 		When I send it the STOP message 		Then you see the first frame of the circle stroke 		  	Scenario 2: the circle stroke is activated with 3 kinds of movements linear  		Given the circle stroke is activated 		When it is moving 		Then it should loop this movement 		When I activate the circle movement it should activate movement 2 		Then it should loop this movement 		When I activate the circle movement it should activate movement 3 		When I activate the circle movement it should activate movement 1 		Then it should loop this movement 		When I send it the deactivate message 		Then it should stop moving 		When I send it the STOP message 		Then you see the first frame of the circle stroke 		 	 	Scenario 3: the circle stroke is activated with 3 kinds of movements random 	 		Given the circle stroke is activated 		When it is moving 		Then it should loop this movement 		When I activate the circle movement again, it should activate any other movement 		Then it should loop this movement 		When I activate the circle movement again, it should loop the any other movement 		When I send it the deactivate message 		Then it should stop moving 		When I send it the STOP message 		Then you see the first frame of the circle stroke 	 		 	Scenario 4: the circle stroke is activated with random movements 	 		Given the circle stroke is activated 		When it is moving 		Then it should loop this movement 		When I activate the circle movement again, it should loop an other movement 		And it should loop this movement 		When I send it the deactivate message 		Then it should stop moving 		When I send it the STOP message 		Then you see the first frame of the circle stroke 		  Feature: square stroke transforms on every 4th beat of an audio input  	In order to transform a square stroke on every 4th beat of an audio input 	As a VJ activating and deactivating the code 	I want the square stroke to transform on every 4th beat of the audio input 	 	Scenario 1: square stroke transforms on every 4th beat of an audio input with 5 different shapes  		When I activate the code 		Then the square stroke is in its first frame 		Given a 4th beat of an audio input 		When it sends the transform message  		Then it should start transforming to shape 1 of 5 		And the transformation will take 2 seconds 		Then it should stay in that shape 		When it sends the transform message  		Then it should start transforming to shape 2 of 5 		And the transformation will take 2 seconds 		Then it should stay in that shape 		#and so on 		When I send it the PAUZE message 		The square stroke stays in that shape 		and does not react on the 4th beat transform message 		When I send it the STOP message 		Then the code is deactivated 		And you see the first frame of the square stroke 		  	Scenario 2: square stroke turns around its axis right 	 		When I activate the code 		Then the square stroke is in its first frame 		Given a 4th beat of an audio input 		When it sends the transform message  		Then it should turn 90degrees right 		And the transformation will take 1 second 		When I send it the STOP message 		Then the code is deactivated 		And you see the first frame of the square stroke 		 	Scenario 3: square stroke turns around its axis right	and left 		 		When I activate the code 		Then the square stroke is in its first frame 		Given a 4th beat of an audio input 		When it sends the transform message  		Then it should turn 90degrees right 		And the transformation will take 1 second 		When it sends the transform message  		Then it should turn 90degrees left 		And the transformation will take 1 second 		When it sends the transform message  		Then it should turn 90degrees right 		And the transformation will take 1 second 		When I send it the STOP message 		Then the code is deactivated 		And you see the first frame of the square stroke 		 		 			 	Scenario 4: square stroke turns around its axis random 		 		When I activate the code 		Then the square stroke is in its first frame 		Given a 4th beat of an audio input 		When it sends the transform message  		Then it should turn randomly any degree to 360 degrees right or left 		And the transformation will take 1 second per 45 degrees 		When I send it the PAUZE message 		The square stroke stays in that shape 		and does not react on the 4th beat transform message 		When I send it the STOP message 		Then the code is deactivated 		And you see the first frame of the square stroke 		 Feature: strokes add and disappear on any corner of a stroke  In order to create a certain visual-pattern that is build up of random lines (strokes) As a VJ I want to a stroke to be added and disappear on any corner of a stroke So a that a visual-pattern that is build up of random lines is created every time this program runs  	Scenario 1: strokes add and disappear on any corner of a stroke linear  		Given I am not yet activating anything 		Then you only see the background  		When I send the activate message 		Than the first stroke should appear 		When I send the next activate message 		Than the next stroke should appear 		And the corner of the stroke will be added to the previous corner of a stroke 		But the stroke would have a different angle of degree between 60 an -60 degrees 		When I send it the activate message the next stroke should appear 		And the corner of the stroke will be added to the previous corner of a stroke 		But the stroke would have a different angle of degree between 60 an -60 degrees 		#and so on 		And at the borders of the plane (background) the proces should reverse 		When I send it the activate message the next stroke should disappear 		And the corner of the stroke will be removed from the previous corner of a stroke 		#and so on 		Then you only see the background  		 		 		 	Scenario 2: strokes add and disappear on any corner of a stroke random  		Given I am not yet activating anything 		Then you only see the background  		When I send the activate message 		Than the first stroke should appear 		When I send the next activate message 		Than the next stroke should appear on random right or left corner 		And the corner of the stroke will be added to the previous corner of both strokes 		But the stroke would have a different angle of degree between 60 an -60 degrees 		When I send it the activate message the next stroke should appear 		And the corner of the stroke will be added to the previous corner of all strokes 		But the stroke would have a different angle of degree between 60 an -60 degrees 		#and so on 		And at the borders of the plane (background) the proces should reverse 		When I send it the activate message the next stroke should disappear 		And the corner of the stroke will be removed from the previous corner of a stroke 		#and so on 		Then you only see the background  		 				 	Scenario 3: strokes add and disappear on any corner of a stroke random plus advanced  		Given I am not yet activating anything 		Then you only see the background  		When I send the activate message 		Than the first stroke should appear 		When I send the next activate message 		Than the next stroke should appear on random right or left corner 		And the corner of the stroke will be added to the previous corner of both strokes 		But the stroke would have a different angle of degree between 60 an -60 degrees 		But when the action of adding and ending a new stroke a light point on the added corner should appear for 0,5 second 		When I send it the activate message the next stroke should appear 		And the corner of the stroke will be added to the previous corner of all strokes 		But the stroke would have a different angle of degree between 60 an -60 degrees 		#and so on 		And at the borders of the plane (background) the proces should reverse 		When I send it the activate message the next stroke should disappear 		And the corner of the stroke will be removed from the previous corner of a stroke 		#and so on 		Then you only see the background    Feature: real time video input is transformed into shadow landscape  	In order to transform a video input into a shadow landscape 	As a visuals artist  	I want to transform the video input  	So that the video output looks like shadows   	Scenario 1: real time video input of a person is transformed to shadow appearance 	 		Given a real time video input of a person 		And a video output 		Then the background is grey  		When I activate the program 		Then the contrast is raised by 30% 		And the effect black and white is applied on the video input 		And the effect posterize is applied on the video input 		And the effect gloom bue 40% is applied on the video input 		When I send it the deactivate message 		Then the background is grey  		 	Scenario 2: real time video input of a person is transformed to shadow appearance plus slowed down 	 		Given a real time video input of a person 		And a video output 		Then the background is grey  		When I activate the program 		Then the contrast is raised by 30% 		And the effect black and white is applied on the video input 		And the effect posterize is applied on the video input 		And the effect gloom bue 40% is applied on the video input 		When I send it the delay message 		Then it should delay 10% 		When I send it the delay message 		Then it should delay 20% 		#and so on 		When I send it the fast forward message 		Then the real time video input will run 10% faster 		#and so on 		Given the video input is not delayed 		When I send the fast forward message 		Then the program does not respond 		When I send it the freeze message  		Then the video input should freeze 		But when I send the play freeze message when the freeze message is activated the program does not respond 		When I send it the play message  		Then the freeze message is deactivated 		But when I send the play message when the freeze message is not activated the program does not respond 		When I send it the deactivate message 		Then the background is grey  		  Feature: delay and fast forward real time video input  	In order to delay and fast forward real time video input 	As a visual artist 	I want to delay and fast forward real time video input 	 	 	Scenario: real time video input runs real time 	 		Given a real time video input 		When I send it the activate message  		Then it should delay the video input by 10% 		When I send it the second activate message  		Then the video input is delayed +10% 		#and so on 		But when the video input is delayed by 100% 		Then the program does not respond on the activate message  		When I send it the deactivate message 		Then real time video Input plays real time 		   Feature: fast forward delayed real time video input  	In order to fast forward delayed real time video input 	As a visual artist 	I want the delayed real time video input to fast forward 	So that the real time video input will run faster 	 	Scenario: real time video input is delayed 	 		Given a delayed real time video input 		When I send the activate message 		Then the real time video input will run 10% faster 		When I send it the second activate message  		Then the video input will run +10% faster 		#and so on 		But when the video input is running real time 0% 		Then the program does not respond on the activate message  		  Feature: freeze and play video input 	 	In order to freeze and play realtime video input 	As a visual artist 	I want to freeze and play realtime video input 	 	Scenario 1: a realtime video input 	 	Given a realtime video input 	When I send the freeze message 	Then the current frame will stay and overlay the video input 	When I send it the play message the current frame that overlays the video input will be deactivated  	Scenario 2: a freezed realtime video input  	When I send it the play message the current frame that overlays the video input will be deactivated 	Then the video input will run  	And there will be no frames that overlay the video input 	When I send the freeze message 	Then the current frame will stay and overlay the video input