Best places to see live music in Austin, Texas
Live music is part of Austin, Texas' DNA. Here are our favorite places to catch a show.

Live music isn’t just a weekend event in Texas’ capital city – it’s part of its DNA. Dubbed the "Live Music Capital of the World" (yep, the city has it trademarked), Austin pulses with sound and is home to more than 250 venues.
Every imaginable genre has a home here, from late-night blues joints and authentic honky-tonks to jazz ensembles playing tucked-away basement lounges and backyard stages hosting swamp pop, folk or psychedelic rock acts.
While you’ll find music venues lining entire blocks like Sixth Street and Rainey, as well as internationally renowned festivals including SXSW and ACL Fest, Austin’s real heartbeat lies in the city’s unsung reaches, beyond the popular hubs.
This guide is by no means exhaustive. With nearly 300 venues (not to mention countless festivals and pop-up shows) how could it be?! It instead offers a glimpse into the stunning diversity and culture of Austin's live music scene.
How Austin became a music mecca
Decades of rebellion, reinvention and raw talent shaped Austin’s eclectic music scene. Many people, locals included, associate the city with Texas country, but its roots run far deeper, tracing back to German beer and dance halls in the 1870s, followed by an early 1900s blues and soul movement.
It wasn’t until the 1970s that live music in Austin gained its footing. Then, the “cosmic cowboy” counterculture arrived in Austin, a wave of musicians – including Austinite Willie Nelson, who fled the polish and sophistication of Nashville and Los Angeles. A shared passion for defying “The Man” (and yes, psychedelics) kickstarted crossover genres like outlaw country, alt-rock and punk. The progressive, unprecedented blend of styles broke every rule, paving the way for a wildly diverse music culture.
Since then, artists including Janis Joplin, Stevie Ray Vaughan, George Strait and Shakey Graves have cut their teeth on Austin stages, many of which still host musicians today. Exception: The parser function of type "canto_diptych" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_diptych') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/EventSubscribers/EntityEventSubscriber.php(146): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 [internal function]: Drupal\aws_event_pipeline\EventSubscribers\EntityEventSubscriber->onEntityUpdate(Object(Drupal\Core\Entity\EntityEvent), 'entity.update', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #9 /code/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Drupal\Core\Entity\EntityEvent), 'entity.update', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #10 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(231): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Drupal\Core\Entity\EntityEvent), 'entity.update') #11 /code/web/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php(900): Drupal\Core\Entity\EntityStorageBase->invokeHook('update', Object(Drupal\node\Entity\Node)) #12 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(579): Drupal\Core\Entity\ContentEntityStorageBase->invokeHook('update', Object(Drupal\node\Entity\Node)) #13 /code/web/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php(781): Drupal\Core\Entity\EntityStorageBase->doPostSave(Object(Drupal\node\Entity\Node), true) #14 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(504): Drupal\Core\Entity\ContentEntityStorageBase->doPostSave(Object(Drupal\node\Entity\Node), true) #15 /code/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php(806): Drupal\Core\Entity\EntityStorageBase->save(Object(Drupal\node\Entity\Node)) #16 /code/web/core/lib/Drupal/Core/Entity/EntityBase.php(339): Drupal\Core\Entity\Sql\SqlContentEntityStorage->save(Object(Drupal\node\Entity\Node)) #17 /code/web/core/modules/node/src/NodeForm.php(270): Drupal\Core\Entity\EntityBase->save() #18 [internal function]: Drupal\node\NodeForm->save(Array, Object(Drupal\Core\Form\FormState)) #19 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(114): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(52): Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object(Drupal\Core\Form\FormState)) #21 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(597): Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object(Drupal\Core\Form\FormState)) #22 /code/web/modules/contrib/autosave_form/src/Form/AutosaveFormBuilder.php(144): Drupal\Core\Form\FormBuilder->processForm('node_article_ed...', Array, Object(Drupal\Core\Form\FormState)) #23 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(325): Drupal\autosave_form\Form\AutosaveFormBuilder->processForm('node_article_ed...', Array, Object(Drupal\Core\Form\FormState)) #24 /code/web/modules/contrib/autosave_form/src/Form/AutosaveFormBuilder.php(97): Drupal\Core\Form\FormBuilder->buildForm(Object(Drupal\node\NodeForm), Object(Drupal\Core\Form\FormState)) #25 /code/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\autosave_form\Form\AutosaveFormBuilder->buildForm(Object(Drupal\node\NodeForm), Object(Drupal\Core\Form\FormState)) #26 /code/web/core/modules/layout_builder/src/Controller/LayoutBuilderHtmlEntityFormController.php(39): Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #27 [internal function]: Drupal\layout_builder\Controller\LayoutBuilderHtmlEntityFormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #28 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #29 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #30 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #31 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #32 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #33 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #34 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #37 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #38 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #39 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #40 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #41 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #42 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #43 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #44 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #45 {main}
The Continental Club
Vibes: Despite its reputation as “the granddaddy of live music venues,” The Continental Club is surprisingly casual and small, accommodating fewer than 200 patrons. The South Congress building’s iconic neon sign and shiny 1950s hot rods parked out front give a sneak peek into the retro interior, where diverse, Lone Star-drinking crowds watch shows seven nights a week. Upstairs, The Continental Gallery holds just 40 people in a low-key living room, speakeasy-like setting.
Bands to expect: The Continental Club hosts everything from roots rock and rockabilly to blues and swing. The key is who you might see that wasn’t announced; celebrities including Leon Bridges and Jack White often throw surprise shows or sit in on sets. Catch jazz, soul and jam bands in the Gallery.
Make it happen: Many shows charge cover only, while higher-profile shows are ticketed. Buy tickets online and check in at Will Call; the venue doesn’t issue actual tickets. All shows are 21+. Find abundant metered street and garage parking nearby.
Soulmates: C-Boy’s Heart & Soul, another fabulous Austin music venue, is just a few blocks down SoCo. Steve Wertheimer owns both clubs, and this is his tribute to mentor Louis Charles "C-Boy" Parks, a prominent fixture on the city’s blues scene from the 1960s through the ‘80s. “The swankiest club on South Congress,” hosts R&B and soul music on the main stage (and Ginny's Chicken $#!+Bingo! country on Sundays), plus The Jade Room cocktail lounge upstairs.
Antone’s
Vibes: Synonymous with the blues, Antone’s is the venue for that distinctive soulful, melancholy music. The late Clifford Antone, a self-described melomaniac influenced by a vast range of music genres including zydeco, soul and swamp pop, opened the club in 1975, pioneering Austin’s blues scene. Despite several location changes in its 50-year history, Antone’s remains true to its roots, with an old-school feel (don’t miss the photo booth!) and acts spanning every imaginable blues iteration.
Bands to expect: Legendary artists such as B.B. King, Muddy Waters and Stevie Ray Vaughan put Antone’s on the map, but the venue has also always attracted burgeoning artists on the verge of making it big (see: SRV). Regardless of who’s playing, you’re in for a treat. Resident talent buyer Zach Ernst won Best Live Music Booker in 2024’s prestigious Austin Music Awards.
Make it happen: Antone’s is on 5th St across from the Westin Hotel downtown, with street and garage parking available. Purchase tickets on the website in advance, via Ticketmaster. All shows are 21 and up.
Grab a late-night snack: Antone’s serves beer-steamed, all-beef “Cliffy dogs” and five types of Antone’s Famous Po’Boys. Order one fresh or grab-and-go from the attached Big Henry’s Vinyl & Gifts.
The Far Out Lounge & Stage
Vibes: Picture hanging out in your friend’s backyard, taking in an epic live concert. In this scenario, you're also enjoying multiple food trucks, craft cocktails and 30+ draft beers among a bunch of cute dogs (and often, kids; it’s family-friendly). Although The Far Out Lounge & Stage (*note their website is not secure) is one of the city’s biggest outdoor music venues, it delivers a welcoming, come-as-you-are vibe. Inside feels just as homey, with another stage and bar, living room-style lounge areas and the Pool Room’s pool table and giant TV for movie and game nights.
Bands to expect: Any and everything: The Far Out’s eclectic lineup includes indie alt rock, jazz fusion, punk, hip-hop and R&B, synth rock, T-Swift and Selena Gomez tribute bands…the list goes on. The venue also hosts festivals such as the Austin Psych(edelic) Fest and heavy metal RippleFest Texas.
Make it happen: The Far Out hosts free and ticketed shows, and most ticketed shows offer both online and day-of sales. In what’s known as Way South Austin, traffic generally isn’t a problem and parking is relatively easy. It is limited, though, so for bigger events, arrive early or Uber. Do NOT park at neighboring businesses; they tow without hesitation.
Queso in point: If you’re not feeling the food trucks at The Far Out, head across the street to Torchy’s Tacos for some of the most beloved queso in Austin.
Elephant Room
Vibes: A bona fide basement jazz bar, the narrow, dimly-lit Elephant Room would be right at home in New Orleans or Chicago. Only established musicians play here, no up-and-coming artists, so expect a packed house every night. Elephant Room is well-known for its strong, inexpensive cocktails, especially the dirty martini with house-made brine and Brewed in the Basement, its take on an espresso martini. The bar is a hub of conversation; nab a table closer to the stage if you’re here for the music.
Bands to expect: Sultry, funky jazz in its many forms. Monday night Jazz Jams are especially popular, often featuring Michael Mordecai. Other crowd-drawing regulars include Sarah Sharp Quintet and Boss Street Brass Band.
Make it happen: Situated downtown in the historic Swift Building, parking is plentiful. Lines start to form about one hour before headliners start even on weekdays, so arrive early. Seating is strictly first-come, first-served, and all shows are 21+. Cover charges range from US$5 to US$10 added to your tab (no paying at the door!), and you get in free if you arrive before 8pm.
Order in: Elephant Room doesn’t serve food, but welcomes guests taking a BYO approach. Order from one of the two upstairs restaurants: Swift’s Attic or Sushi Junai Omakase.
Broken Spoke
Vibes: The Broken Spoke is exactly what you expect and want in Austin’s oldest honky-tonk, opened in 1964. Neon-lit beer signs, a pool table and old-fashioned jukebox, taxidermied deer heads, "famous" chicken fried steak featured prominently on the menu and a mini museum of country music memorabilia, lovingly called “The Tourist Trap.” And of course, there's a lively dance hall out back.
Bands to expect: As “the last of the true Texas dance halls,” come for country and occasionally swing. The likes of Waylon Jennings, Dolly Parton and Garth Brooks have all graced The Spoke’s stage. Most famously, the King of Country Music, George Strait, got his start here, playing the venue weekly for seven years. Today, popular residencies include Alvin Crow, Dale Watson and Ian Stewart.
Make it happen: The restaurant features free live music (bring cash to tip the band) from 6pm to 8pm, Tuesday through Saturday. Dance hall acts start between 8:15pm and 9pm, Tuesday through Saturday, and charge US$10 to US$20 cover at the door.
Bring your dancin’ boots: This is one of the best places to two-step in the city, but there is unequivocally no line dancing. If you’re a first-timer or need a refresher, drop in for free lessons nightly from 8pm to 9pm, Wednesday through Saturday. Exception: The parser function of type "canto_diptych" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_diptych') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/EventSubscribers/EntityEventSubscriber.php(146): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 [internal function]: Drupal\aws_event_pipeline\EventSubscribers\EntityEventSubscriber->onEntityUpdate(Object(Drupal\Core\Entity\EntityEvent), 'entity.update', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #9 /code/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Drupal\Core\Entity\EntityEvent), 'entity.update', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #10 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(231): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Drupal\Core\Entity\EntityEvent), 'entity.update') #11 /code/web/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php(900): Drupal\Core\Entity\EntityStorageBase->invokeHook('update', Object(Drupal\node\Entity\Node)) #12 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(579): Drupal\Core\Entity\ContentEntityStorageBase->invokeHook('update', Object(Drupal\node\Entity\Node)) #13 /code/web/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php(781): Drupal\Core\Entity\EntityStorageBase->doPostSave(Object(Drupal\node\Entity\Node), true) #14 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(504): Drupal\Core\Entity\ContentEntityStorageBase->doPostSave(Object(Drupal\node\Entity\Node), true) #15 /code/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php(806): Drupal\Core\Entity\EntityStorageBase->save(Object(Drupal\node\Entity\Node)) #16 /code/web/core/lib/Drupal/Core/Entity/EntityBase.php(339): Drupal\Core\Entity\Sql\SqlContentEntityStorage->save(Object(Drupal\node\Entity\Node)) #17 /code/web/core/modules/node/src/NodeForm.php(270): Drupal\Core\Entity\EntityBase->save() #18 [internal function]: Drupal\node\NodeForm->save(Array, Object(Drupal\Core\Form\FormState)) #19 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(114): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(52): Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object(Drupal\Core\Form\FormState)) #21 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(597): Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object(Drupal\Core\Form\FormState)) #22 /code/web/modules/contrib/autosave_form/src/Form/AutosaveFormBuilder.php(144): Drupal\Core\Form\FormBuilder->processForm('node_article_ed...', Array, Object(Drupal\Core\Form\FormState)) #23 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(325): Drupal\autosave_form\Form\AutosaveFormBuilder->processForm('node_article_ed...', Array, Object(Drupal\Core\Form\FormState)) #24 /code/web/modules/contrib/autosave_form/src/Form/AutosaveFormBuilder.php(97): Drupal\Core\Form\FormBuilder->buildForm(Object(Drupal\node\NodeForm), Object(Drupal\Core\Form\FormState)) #25 /code/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\autosave_form\Form\AutosaveFormBuilder->buildForm(Object(Drupal\node\NodeForm), Object(Drupal\Core\Form\FormState)) #26 /code/web/core/modules/layout_builder/src/Controller/LayoutBuilderHtmlEntityFormController.php(39): Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #27 [internal function]: Drupal\layout_builder\Controller\LayoutBuilderHtmlEntityFormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #28 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #29 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #30 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #31 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #32 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #33 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #34 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #37 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #38 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #39 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #40 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #41 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #42 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #43 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #44 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #45 {main}
Hole in the Wall
Vibes: This is a classic college dive, with dark wood paneling, a bar running the length of the front room, graffiti-covered bathrooms, a cigarette machine and cheap beer. Hole in the Wall is practically on campus, right on The Drag, but the cast of characters spans all ages (so long as they’re at least 21) and walks of life. In fact, A-list celeb sightings aren’t uncommon. Natalie Portman once shot pool here, and John Stamos (Uncle Jesse) casually joined a band onstage as their drummer. Have mercy.
Bands to expect: Since opening in 1974, Hole in the Wall has consistently brought in acts that later become super-famous. Fastball, Gary Clark, Jr., Spoon and Shakey Graves are just some examples, offering a glimpse into the variety of music you may hear. Add to those genres, Cajun, classic rock n’ roll, punk, DJ nights and even the occasional rave. The venue has two stages, the tiny one up front and the main stage in the middle room.
Make it happen: Shows range from free to US$10, and you can pay at the door or buy tickets online. RSVP online even to free shows to guarantee you get in. Parking can be challenging, but there’s usually street and garage parking on surrounding blocks. A rideshare may be the smartest move, especially with other nearby bars to check out.
Hone your own musical chops: Hole in the Wall hosts free karaoke in its back bar, which can only be described as ‘70s living room meets disco hall, Tuesday through Sunday from 10pm to 2am.
Saxon Pub
Vibes: Solidly “Old Austin,” Saxon Pub is reminiscent of a listening room you’d find in Nashville. The intimate South Lamar venue seats just shy of 200 people and opened in 1990, steadily drawing neighborhood locals and music-loving celebrities alike. The venue and its staff show musicians utmost deference while they’re on stage, so don’t come here to catch up with old friends or a first date – this isn’t the spot for lively conversation.
Bands to expect: Saxon Pub is especially beloved for its folk and Americana acts, but other genres grace its calendar including rock, country and indie pop. Local Austinites Lonelyland, fronted by Bob Schneider, pack the house on Monday nights. Don’t miss free weeknight happy hour shows from 6pm to 7:30pm.
Make it happen: Most shows are standing-room only as it is, so it’s smart to buy tickets in advance. Parking out front is equally limited, but you can usually find something within walking distance.
Espresso yourself: Before your show, walk three minutes down South Lamar to Odd Duck for one of the undisputed best espresso martinis in the city. It’s a nitro variation with dry vermouth, cinnamon and real vanilla.
Donn’s Depot
Vibes: Set in a historic train depot replete with decommissioned rail cars, year-round Christmas lights and customers ranging from 21 to 91, Donn’s Depot is quintessentially Austin. Accurately described as a dive, piano bar, dance hall or neighborhood pub, Donn’s has had a fiercely loyal following since 1978. That goes for both patrons and staff – the "newest" bartender started more than 10 years ago, while a handful of regulars have sat at the same high-top round table for upwards of 40 years. It’s like Austin’s “Cheers,” where everyone (including the band on stage) shouts hello when you walk in.
Bands to expect: The energetic sounds of swing, Americana, jazz, folk and country regularly fill Donn’s, and longtime residencies include Chris Gage of Austin City Limits Hall of Fame and Grouchy Like Riley. Owner Donn Adelman takes the stage three to four times per month, playing the baby grand with a custom bar table built around it. Double or Nothing Two-Step Tuesdays are especially popular, and free.
Make it happen: Donn’s only charges cover on the weekends and for special events. When it’s in effect, simply pay at the door. The venue doesn’t serve food (unless popcorn counts), but patrons are encouraged to order in or grab takeout from the Juan More Taco truck at the carwash across the street.
All (ladies) aboard: A former caboose, now painted with red-and-white circus stripes, serves as the women’s restroom (and coveted photo op, obvi). The original footholds leading up into the cupola create vibey, tucked-away lounge seating from where you can watch the band.