In Act III of Guillaume Tell, the arch-villain Gesler discovers that navigating the stormy waters of Lake Lucerne can be a treacherous business. It's a phrase that could just as well be used for the whole process of bringing Rossini’s last opera to a modern audience: the rocks, currents and sandbanks are many, not least in sheer vocal difficulty: Rossini had the very best singers available to him, and he stretched their capabilities to the limit.

Two of tonight’s three principals at The Royal Opera measured up to the challenge admirably. The most challenging role in the opera is Arnold: it requires a tenor who combines the agility and crystal clear highs of bel canto with the heft of a Verdian dramatic tenor. John Osborn provided all these qualities in fine measure, able to navigate Rossini’s extremely high tessitura without ever losing strength or commitment. “O Ciel, tu sais si Mathilde m’est chère” was a highlight, delivered with urgency, feeling and impeccable diction. Gerard Finley excelled in the title role, smooth and authoritative. Guillaume only gets one aria, “Sois immobile”, which Finley sang with beauty and depth of feeling, meaning that most of the performance has to be done in recitative and ensemble: Finley brought a fine range of expressive colour to the role.

Malin Byström disappointed as Mathilde. Her intonation was good and her timbre was basically attractive, but the voice sounded dark and there was an oddity of sound production whereby the beginnings of many of the syllables vanished, resulting in severe loss of legato and intelligibility: I hardly heard an initial consonant the whole evening. Amongst the smaller roles, Sofia Fomina impressed as Guillaume’s son Jemmy, clear-voiced and ardent, with good stage presence.

Arguably, directing Guillaume Tell is even more challenging than singing it. The original is a Paris Grand Opéra, complete with massive scenery, opulent medieval costumes and ballet routines, and it’s a fair assumption that modern directors won’t want to emulate this. But what to replace it with? Damiano Michieletto bases his staging around three big ideas: firstly, that this is all happening in the child Jemmy’s imagination as he plays with toy soldiers and reads a comic-strip story of the Guillaume of old, next the idea of the Swiss attachment to the soil of their fatherland whose culture has been cruelly uprooted, and finally the obvious one that the Austrian occupation is horribly oppressive and that their commander Gesler is an extreme sadist.

I’m not generally a fan of “it was all in the imagination of X” productions – I prefer my imagination to be addressed directly and not vicariously – but I’ll admit that the figure of medieval Guillaume wandering around the stage in feathered hat and red cloak added some colour. Which was much needed, because the “uprooted from the soil” idea may have been a perfectly valid concept, but it made for a fearful lack of visual appeal. With the stage covered in dark brown earth, costumes being black/grey/brown, the main prop a fallen tree trunk, and lighting being mainly upwards, if you were sitting anywhere above stalls circle, the main visual impression was of a brown splodge – and three and a half hours is an awfully long time to be looking at brown splodge, however appropriate it may be to the subject matter.

Rossini wrote in the secure knowledge that his audience would appreciate – nay, demand – ballet scenes. Modern directors can’t make that assumption, and Michieletto chose to retain the ballet music but to set it to dumb show. The Act I divertissement, an archery lesson from Guillaume to Jemmy followed by horseplay between Jemmy and his friends, was mostly harmless, although it did demonstrate the hazards of on-stage archery: arrows have a bad habit of missing the target or, even when guided by ghostly medieval figures, of falling out of it.

Where the production foundered on the rocks, however, was in the “Pas des soldats” dance in Act III. Michieletto staged this as a gang rape of a Swiss woman after her being tormented by the evil Austrians. The problem is that the dance music is bright, cheerful and quite long at over five minutes, so the torture was horribly drawn out – it surpassed the bounds of dramatic necessity and turned into gratuitous mental cruelty. Although it made me deeply uneasy, I didn’t join in the chorus of booing that greeted the eventual tearing off of the woman’s clothes, but it was the loudest I’ve ever heard in any opera house. The sheer violence of the scene made it difficult to appreciate the ensuing beautifully sung duet between Guillaume and Jemmy.

The one figure with a firm hand on the tiller, steering clear of every hazard, was Antonio Pappano, who displayed the gift of breathing airy lightness into every bar of the score, as well as drilling out the orchestral errors (with the exception of one bad fluff in the high strings). Even when cut, as it always is (three and a half hours of music in this version), Guillaume Tell is a long opera, but it didn’t feel like it: the recurring beauty and drama in the score carried us through.

Sadly, this production is more likely to be remembered for its failings – the awful rape scene, its dullness, plus a list of annoying details too long to mention – than for its musical excellence. But Rossini's music is fabulous, and the production is worth seeing to get a feel of both.