‘The Machine Stops’ blends opera, sci-fi and rock to showcase Iowa talent, explore a tech dystopia

'The Machine Stops'

Coralville Center for the Performing Arts -- Saturday, July 30 at 7:30 p.m. and Sunday, July 31 at 2 p.m., $17-20

Claire Thoele/Little Village

Not everyone sits at home dreaming of attending an opera. But it might just be time to start. The Machine Opera Company is bringing an exciting new modern opera to the Coralville Center for the Performing Arts. The Machine Stops will be staged for just two performances later this month.

Librettist Cecile Goding has always been interested in opera. The poet, originally from South Carolina, was inspired to try her hand at the artform during her participation in a course at the Iowa Writers’ Workshop led by Marvin Bell and David Gompper.

“It was magic to see my words put to music,” Goding said.

As the project developed over the years, the Iowa Summer Writers’ Festival and Dreamwell Theatre were key supporters, lending their encouragement and expertise to the undertaking.

The Machine Stops is based on E.M. Forster’s science fiction/dystopian story of the same name. Published in 1909, the story reaches across the century and imagines a world that is poisoned and uninhabitable. People live entirely separately from each other. Humans communicate using only technology, and when questions arise that is where the conflict begins.

Goding noted that the questions raised in the opera are extremely relevant in today’s world: Who do humans trust to provide information? What do they do with that information; how might they choose to act on it? The ease with which the characters gather their information and the fact that it is controlled by technology has a profound impact on the worldview of the characters.

While the production was in development, it was important to Goding and her colleagues that they develop a modern opera to excite and intrigue modern audiences. Accessibility in other ways was always top of mind as well. As the debut of the opera approaches, Goding said she is hoping to be able to add super titles to offer another level of access for theater-goers. Another important goal was to keep the production budget low enough that tickets are within the grasp of a majority of theater audiences ($20). The team also wanted this to be an opera that would “be of use to small operas and university programs across Iowa,” Goding said.

Composer John Lake joined Goding in the creation of this opera. The Iowa guitarist has explored a variety of genres in his nearly 50 years writing, teaching and performing. (Lake began his musical career in high school with northern Iowa band the Library, which was among the 2022 inductees into the Iowa Rock ‘n’ Roll Hall of Fame.) The Machine Stops features elements of traditional opera alongside rock and roll and other popular music. Lake draws on myriad musical influences, the opera’s website notes: “from Frank Zappa and the Beatles to Igor Stravinsky and Richard Wagner.” In short, attendees should expect quite an eclectic score.

Ed Kottick serves as conductor, music director and producer; he is joined by Josh Sazon as stage director. Both have decades of experience in the Iowa City area, and they have worked together as musical and stage director in many previous productions. The Machine Stops is presented in English by a cast of seven and a chamber group of 12 musicians who bring massive experience and talent to the production. The leads, Vashti and her son Kuno, are sung by Élise DesChamps, a Montréal native who teaches at the University of Iowa, and Iowa City’s Jeremiah Shobe, who has been workshopping his role since the opera’s earliest iterations.

“One challenge for me and John was to create enough involvement with other performers and musicians,” Goding said. “Organizing two workshops, in order to hear the singing and get advice from participants, was time-consuming yet essential.”

Goding expressed admiration and appreciation for everyone involved in the production. She noted that the group of artists that workshopped The Machine Stops was crucial in making it a community production and “true collaborative experience.”

Ultimately, the Machine Opera Company is striving to “create accessible operas that will appeal to people who don’t normally go to operas,” Goding said. She added that the company wants to “show people what opera has to offer.” People can approach this modern opera like attending a play or movie, as a “dramatic work of art that they can get caught up in and escape for a while,” Goding suggested. “People are not going to hear what they might think of when they think of opera.”

With a modern production that has its roots in science fiction literature, includes a range of musical styles and speaks to the state of the world today, The Machine Stops offers the perfect opportunity to plan a night at the opera.

Laura Johnson is a poet and writing coach who enjoys travel, books, and occasionally screaming into the void. Visit her website at This article was originally published in Little Village issue 308.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/the-machine-stops-opera-coralville-dreamwell-theatre/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Comments</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="33"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>