Get psyched for GDP: A teaser of the acts performing in Des Moines on Saturday

Local music lovers, this one’s for you. We’re only days away from Gross Domestic Product (GDP), the all-Iowa music fest happening in Des Moines. This Saturday night, get ready to catch up to a dozen performances all taking place at three venues: Gas Lamp, the Cave and Teehee’s Comedy Club. 

Performances will be happening simultaneously but fear not: Start times are mostly scattered, and you’ll be able to jump to and from these neighboring venues as much as you please with your festival pass. By attending, you’re supporting GDP’s goal: to showcase and support up-and-coming Iowa artists and bring a mix of diverse acts into Des Moines. The musicians represent a wide range of genres and come from various regions of the state. 


The festival kicks off at 5 p.m., with Penny Peach at Gas Lamp. Penny Peach totally owns her Bandcamp description as Iowa City’s indie/garage rock mistress. In response to Peach’s recent music video “Laurelz,” LV’s Genevieve Trainor noted that Peach’s “voice is instantly familiar to anyone into the Iowa City scene.”

“When she brings her considerable skills to bear on work that’s all her own, it’s balls-to-the-wall passion and whimsy and joy that fills the listener to overflowing, no matter the subject matter. It’s no question that her influence will be felt around here for years to come,” Trainor said. 

Read Melanie Hanson’s LV album review of Penny Peach’s debut EP, Brain Gamez.

Allegra Hernandez, a musician and guitarist from Des Moines, follows Penny Peach at Gas Lamp. Hernandez’s music is inspired by rock, modern jazz, folk and metal. They’re a music educator at the School of Rock West Des Moines and involved with the nonprofit Girls Rock! Des Moines. 

Allegra Hernandez. Photo by Gabby Lucas.

Later in the evening, expect to see Good Morning Midnight, Iowa City’s classic Midwestern rock project perform. The band’s most recent EP, “Songs of Violence,” was released in 2021. LV’s Hanson described the album as “expansive” and “an aural road trip down county highways in an unfamiliar wood. It is a definitive Midwestern rock album.”

Charlie Cacciatore of Good Morning Midnight. Photo by Sara Weiler.

Later in the evening, you’ll see Bouquet, the Des Moines-based emo rock band, and LVVMAKING (also from Des Moines), who call themselves a “multimedia band of freaks.” 


Don’t miss out on fellow 5 o’clocker Soultru, a soul acoustic artist from Davenport. Soultru, a.k.a Terrance Banks, is a multigenre musician, known to blend hip hop and r&b with soul and pop. Check out Loren Thatcher’s LV review of The Truth.

The Truth EP.

LIGHTCUBE, a new project led by Des Moines-based jazz vocalist and songwriter Natalie Lowe, follows Soultru. Their first album was released in 2022.

Closing things out at the Cave is Iowa City’s beloved double bassist, composer/arranger and vocalist, Blake Shaw. He’s a frequent collaborator and has been involved in several projects in Eastern Iowa, including the Blake Shaw Quintet, Blake Shaw’s BIG(ish) Band, the Clinton St Trio, River Glen and the Dan Padley Trio. Shaw will be joined at GDP by Jerome Gillespie II, an international musician from Houston who’ll be playing the drums. 

Blake Shaw. Photo by Means Chan.


From the southeast tip of the state, Finally Some Action, a DIY electric duo, will be first up on the stage at Teehee’s. On their Bandcamp, the duo claims that they’re doing their “best to bring the 80s/retrowave/synthwave to middle America.”

Teri Underhill, a singer/songwriter, poet and activist from Norwalk, will be hitting the stage at 6:30 p.m.


View this post on Instagram


A post shared by DM Music Coalition (@desmoinesmc)

Up next is Us vs. Them, a hip-hop collective consisting of six Des Moines-based musicians and creatives.


View this post on Instagram


A post shared by Us Vs Them (@thisisuvt)

Wave Cage, a jazz, fusion and electronic band hailing from Iowa City will be closing out Teehee’s. In 2021, LV reviewer Rob Cline described the band’s debut EP, The Portrait, as “an engaging, atmospheric, beautifully produced and occasionally humorous recording.”

Wave Cage. The Portrait EP.

GDP is presented this year by the Des Moines Music Coalition, Little Village Magazine and Exile. Tickets to the fest are $18, with entry to the Cave free (the Cave is also all-ages, while Gas Lamp and Teehee’s shows are 21+).

[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='/get-psyched-for-gdp-a-teaser-of-the-acts-performing-in-des-moines-on-saturday/?fbclid=IwAR3mCnMRIaZ_pQzS-JkMSXWfvlwSe6VvInmtxT_5cg3mFpY7MSBKnz1-RYo#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' >Name</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="164"/><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>