
High gates : with L hand held in L , partners dance in and round to face their 1 st corner couple and make a ' gate ' with their raised L arms ( 2 steps ) . The dancing gent takes the lady facing him through the gate , R hand in R hand , and dances back towards the corner of the set to face both ladies who are now side by side ( 2 steps ) . The gent dances forward , turning both ladies underarm , his partner clockwise and his ' visitor ' anticlockwise , and turns anti-clockwise to face his partner ( 2 steps ) . His partner then dances through the gate formed by the gent and the visitor as he follows her round and the visitor dances back to place ( 2 steps ) . 8 bars 3 Lead around . Square the set . 16 bars 4 1 st side couple now dances 2. 16 bars 5 Lead around . Square the set . 16 bars 6 2 nd top couple now dances 2. 16 bars 7 Lead around . Square the set . 16 bars 8 2 nd side couple now dances 2. 16 bars 9 Lead around . Square the set . Four sevens . 24 bars Fifth Figure The Stalling ( Jigs ) 112 bars 1 Lead around . Square the set . 16 bars 2 Face the wall : Top couples dance at home to finish with 1 st tops facing out of the set and 2 nd tops facing in the same direction but 1 step inside their own place . 8 bars Side couples dance at home to finish with 1 st sides in line behind 1 st tops and 2 nd sides behind 2 nd tops ( RULE - dance into the space on the R ) . 8 bars Cast off : gents dance L and ladies R to complete 2 circles and meet up after the 2 nd circle to take waist hold with own partners , leading couple first . 8 bars 3 Lead around out of the circle and back to place . 8 bars 4 Square the set : 8 bars 5 Face the wall : Side couples dance at home to finish with 1 st sides facing out of the set and 2 nd sides facing in the same direction but 1 step inside their own place . 8 bars Top couples dance at home to finish with 2 nd tops in line behind 1 st sides and 1 st tops behind 2 nd sides . 8 bars Cast off . 8 bars 6 Lead around out of the circle and back to place . Square the set . Four sevens . 24 bars Sixth Figure - The Hornpipe 160 bars 1 Quarterhouse : Taking waltz hold , couples dance 1 step into the set and 1 step out then turn 2 steps on to the next place on their R. They repeat this 4 step movement into each place and back home . 16 bars 2 House around . 8 bars 3 Dance in and out and ladies move on : partners drop hands and all face into the set . All dance 1 step into the set and 1 step back to place and repeat this movement twice ( 6 steps ) . On the last 2 steps , while the gents dance in and out , the ladies dance around the outside of the set and turn in to face the next gent on their R. 8 bars 4 Quarterhouse , with new partners . House around . Dance in and out and ladies move on . 32 bars 5 Quarterhouse , with new partners . House around . Dance in and out and ladies move on . 32 bars 6 Quarterhouse , with new partners . House around . Dance in and out and ladies move on to their own partners . 32 bars 7 Quarter house . House around . 24 bars STEP In the Third Figure , the Turn the lady step in place is danced : 1 2 3 & 2 2 3 & 3 2 3 & 4 2 3 & L Rh Rt L Rh Rt L Rh Rt L L Rh Rt L Rh Rt L Rh Rt L 4 bars , repeated once , the weight being carried by the underlined foot , or toe . SOURCE Donncha Ó Muínneacháin at his Birmingham workshop , September 1991 . Tom Quinn demonstrates a couple of variations on this set on the video " Set Dancing Made Easy " . In his version of the First Figure , the dancing gent drops the lady he is swinging back in front of her own partner and turns twice to reach the next lady . The ' discarded ' lady stands for 4 bars and then walks into the next place on her L. In the Third Figure , he compresses the High Gates movement by turning both ladies as soon as the visitor has danced through the first gate , so the movement has to be danced quite slowly to use the full 8 bars . In the Hornpipe , he doubles from one place into the next in the Quarterhouse , and the Dance in and out is danced by the ladies only , the gents dancing in place for 6 bars and then dancing in 1 bar to let the lady past , then out 1 bar to meet her . He also has some interesting steps , and the video is worth watching for these alone . 