Skip to content

In the News

  • Bluegrass At Large
  • Media
  • Music
  • Opinion / Humor

On the Charts

  • Bluegrass Weekly
  • Bluegrass Monthly
  • Grassicana Weekly
  • Gospel Weekly

In the Community

  • Events
  • Directory

Need Help?

Login

  • News
  • Charts
  • Events
  • Directories
  • Support

menu

Author: David Morris

  • River Wild – Jeremy Garrett

    March 25, 2022 | by David Morris

    Over the years with the Infamous Stringdusters, Jeremy Garrett's muscular, bluesy fiddle work became an instantly recognizable part of his musical identity. So I was eager to hear how that sound played out on River Wild, his back-to-his-bluegrass-roots CD for

    Read More
  • Michelle Canning adds big guns for Alzheimer fundraiser

    March 17, 2022 | by David Morris

    What started as a way to memorialize her grandfather has become a permanent part of Michelle Canning's annual musical calender. The Nashville-based songwriter and bandleader will host her 11th annual fundraiser for the Alzheimer's Foundation of America, A Night On The

    Read More
  • DCBU names winners of Hazel Dickens Songwriting Contest

    February 17, 2022 | by David Morris

    The DC Bluegrass Union has announced winners of the annual Hazel Dickens Songwriting Contest. The list contains a number of writers well known in bluegrass and Americana circles. First prize and $500 was awarded to John Cloyd Miller for the song

    Read More
  • Dave’s Dozen – My 2021 Favorites

    January 4, 2022 | by David Morris

    It’s time for the annual challenge: Picking my "dozen" favorite bluegrass recordings for the previous year. First, the usual cautions. This list is obviously very subjective, just one guy's opinion. The list represents my favorites, not necessarily the best. And it's

    Read More
  • All-Stars cross genres for tribute to Tony Rice

    December 24, 2021 | by David Morris

    After Tony Rice died a year ago on Christmas Day, jam band master Barry Waldrep and music management ace Brian Smith had an idea for a tribute. It was, at the start, a relatively modest plan: Put out Me and My

    Read More
  • Small Town Dreamer – Daryl Mosley

    December 20, 2021 | by David Morris

    Some CDs are just meant to be played in front of a cozy fire on a wintry evening, when the listener has time to settle down and sink into the music. Small Town Dreamer, the second Pinecastle release from Daryl

    Read More
  • ‘Living metronome’ Jason Moore passes

    November 22, 2021 | by David Morris

    Jason Moore with Sideline at the Gettysburg Bluegrass Festival - photos by Frank Baker The bluegrass world is running short of positive adjectives following Sunday’s unexpected death of Jason Moore, the 47-year-old bass player for Sideline. "Great. "Amazing." "Superb." They and dozens

    Read More
  • Tom T. Hall leaves a deep songwriting legacy

    August 24, 2021 | by David Morris

    Tributes to Hall of Famer Tom T. Hall are pouring in, deservedly, from all corners of the music world after his death late last week, but among songwriters the loss is particularly stinging. It seems nearly every bluegrass composer I know,

    Read More
  • An appeal to the IBMA concerning World of Bluegrass vaccination rule

    August 20, 2021 | by David Morris

    Coming up with rules for holding in-person events in the era of COVID isn't easy, and no matter what organizers settle on, there is no way to please everyone. IBMAs board of directors certainly learned that in the wake of its

    Read More
  • Lydia Jacoby – gold medal swimmer with a bluegrass background

    July 27, 2021 | by David Morris

    Bluegrass is one of the unheralded stars of the Summer Olympics in Tokyo, thanks to 17-year-old Alaskan, Lydia Jacoby. After she was a surprise winner of the gold medal in the 100-yard breaststroke, reporters clamored to know more about the new

    Read More
Page 1 of 4312345...102030...»Last »

Most Recent Comments

  • From The Side of the Road… ...

    Funny...I read these to my wife over breakfast...she laughed.

    jARCHITECT - May 21, 2022
  • Danny Paisley diagnosed with ...

    Saying prayers for one of the great voices today in bluegrass. We're with you, Danny!

    Matt Merta - May 21, 2022
  • Danny Paisley diagnosed with ...

    Sorry to hear about Danny's condition. We'll all be praying for him and a full recovery.

    David Russell - May 21, 2022
  • Danny Paisley diagnosed with ...

    I'm just one of the many praying and holding you in the light Danny.

    Kevin Slick - May 21, 2022

Latest Event ListingsSearch Events

Wernick Method Bluegrass Jam Class with Jonas Friddle – Evanston, IL
Wernick Method Bluegrass Jam Camp with Joshua Adkisson – Norman, OK
Lansing Creeper Trail Bluegrass
Eddie Owen Presents: Sideline bluegrass band

Bluegrass Today Profiles

  • Bluegrass Beyond Borders: Canadian duo Mama’s Broke mixes it up
    Mama's Broke
  • Rodney Dillard looks back on his music career at 80 years young
    Rodney Dillard
  • Raymond McLain retires from Morehead State University
    Raymond McLain
  • Bluegrass Beyond Borders: o Bardo e o Banjo from Brazil
    o Bardo e o Banjo
  • California Report: Ida Winfree, former CBA Teen Ambassador
    Ida Winfree

  • Staff Directory
  • Advertising
  • Contact Us
  • Terms of Service
  • Privacy Policy

© Bluegrass Today 2022

powered by AhSo

  • News
    • Bluegrass At Large
    • Media
    • Music
    • Opinion / Humor
    • Back
  • Charts
    • Bluegrass Weekly
    • Bluegrass Monthly
    • Grassicana Weekly
    • Gospel Weekly
    • Back
  • Events
  • Directory
  • Support

© Bluegrass Today 2022
powered by AhSo

[gravityform id=11 title=false description=false]
<script type="text/javascript"> //---------------------------------------------------------- //------ JAVASCRIPT HOOK FUNCTIONS FOR GRAVITY FORMS ------- //---------------------------------------------------------- if ( ! gform ) { document.addEventListener( 'gform_main_scripts_loaded', function() { gform.scriptsLoaded = true; } ); window.addEventListener( 'DOMContentLoaded', function() { gform.domLoaded = true; } ); var gform = { domLoaded: false, scriptsLoaded: false, initializeOnLoaded: function( fn ) { if ( gform.domLoaded && gform.scriptsLoaded ) { fn(); } else if( ! gform.domLoaded && gform.scriptsLoaded ) { window.addEventListener( 'DOMContentLoaded', fn ); } else { document.addEventListener( 'gform_main_scripts_loaded', fn ); } }, hooks: { action: {}, filter: {} }, addAction: function( action, callable, priority, tag ) { gform.addHook( 'action', action, callable, priority, tag ); }, addFilter: function( action, callable, priority, tag ) { gform.addHook( 'filter', action, callable, priority, tag ); }, doAction: function( action ) { gform.doHook( 'action', action, arguments ); }, applyFilters: function( action ) { return gform.doHook( 'filter', action, arguments ); }, removeAction: function( action, tag ) { gform.removeHook( 'action', action, tag ); }, removeFilter: function( action, priority, tag ) { gform.removeHook( 'filter', action, priority, tag ); }, addHook: function( hookType, action, callable, priority, tag ) { if ( undefined == gform.hooks[hookType][action] ) { gform.hooks[hookType][action] = []; } var hooks = gform.hooks[hookType][action]; if ( undefined == tag ) { tag = action + '_' + hooks.length; } if( priority == undefined ){ priority = 10; } gform.hooks[hookType][action].push( { tag:tag, callable:callable, priority:priority } ); }, doHook: function( hookType, action, args ) { // splice args from object into array and remove first index which is the hook name args = Array.prototype.slice.call(args, 1); if ( undefined != gform.hooks[hookType][action] ) { var hooks = gform.hooks[hookType][action], hook; //sort by priority hooks.sort(function(a,b){return a["priority"]-b["priority"]}); hooks.forEach( function( hookItem ) { hook = hookItem.callable; if(typeof hook != 'function') hook = window[hook]; if ( 'action' == hookType ) { hook.apply(null, args); } else { args[0] = hook.apply(null, args); } } ); } if ( 'filter'==hookType ) { return args[0]; } }, removeHook: function( hookType, action, priority, tag ) { if ( undefined != gform.hooks[hookType][action] ) { var hooks = gform.hooks[hookType][action]; hooks = hooks.filter( function(hook, index, arr) { var removeHook = (undefined==tag||tag==hook.tag) && (undefined==priority||priority==hook.priority); return !removeHook; } ); gform.hooks[hookType][action] = hooks; } } }; } </script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_11' ><form method='post' enctype='multipart/form-data' id='gform_11' action='/author/davidm/' > <div class='gform_body gform-body'><ul id='gform_fields_11' class='gform_fields top_label form_sublabel_below description_below'><li id="field_11_10" class="gfield hide-label field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_10"><label class='gfield_label screen-reader-text' for='input_11_10' >First Name</label><div class='ginput_container ginput_container_text'><input name='input_10' id='input_11_10' type='text' value='' class='medium' placeholder='First Name' aria-invalid="false" /> </div></li><li id="field_11_1" class="gfield hide-label gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_1"><label class='gfield_label screen-reader-text' for='input_11_1' >Email Address<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_11_1' type='text' value='' class='large' placeholder='Email Address' aria-required="true" aria-invalid="false" /> </div></li><li id="field_11_5" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_5"><label class='gfield_label gfield_label_before_complex' >Email List :<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_11_5'><li class='gchoice gchoice_11_5_1'> <input class='gfield-choice-input' name='input_5.1' type='checkbox' value='buzz' id='choice_11_5_1' /> <label for='choice_11_5_1' id='label_11_5_1'>Bluegrass Buzz Newsletter</label> </li></ul></div></li><li id="field_11_11" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_11"><label class='gfield_label' for='input_11_11' >Name</label><div class='ginput_container'><input name='input_11' id='input_11_11' type='text' value='' /></div><div class='gfield_description' id='gfield_description_11_11'>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_11' class='gform_button button' value='Sign Up' onclick='if(window["gf_submitting_11"]){return false;} window["gf_submitting_11"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_11"]){return false;} window["gf_submitting_11"]=true; jQuery("#gform_11").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_11' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='11' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_11' value='WyJbXSIsIjdiZWFhNzdhMjZmM2E0NjI4MWQ1ZDY5NDIxY2FiZGVlIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_11' id='gform_target_page_number_11' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_11' id='gform_source_page_number_11' 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>
[gravityform id=11 title=false description=false]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_11' ><form method='post' enctype='multipart/form-data' id='gform_11' action='/author/davidm/' > <div class='gform_body gform-body'><ul id='gform_fields_11' class='gform_fields top_label form_sublabel_below description_below'><li id="field_11_10" class="gfield hide-label field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_10"><label class='gfield_label screen-reader-text' for='input_11_10' >First Name</label><div class='ginput_container ginput_container_text'><input name='input_10' id='input_11_10' type='text' value='' class='medium' placeholder='First Name' aria-invalid="false" /> </div></li><li id="field_11_1" class="gfield hide-label gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_1"><label class='gfield_label screen-reader-text' for='input_11_1' >Email Address<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_11_1' type='text' value='' class='large' placeholder='Email Address' aria-required="true" aria-invalid="false" /> </div></li><li id="field_11_5" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_5"><label class='gfield_label gfield_label_before_complex' >Email List :<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_11_5'><li class='gchoice gchoice_11_5_1'> <input class='gfield-choice-input' name='input_5.1' type='checkbox' value='buzz' id='choice_11_5_1' /> <label for='choice_11_5_1' id='label_11_5_1'>Bluegrass Buzz Newsletter</label> </li></ul></div></li><li id="field_11_11" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_11_11"><label class='gfield_label' for='input_11_11' >Name</label><div class='ginput_container'><input name='input_11' id='input_11_11' type='text' value='' /></div><div class='gfield_description' id='gfield_description_11_11'>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_11' class='gform_button button' value='Sign Up' onclick='if(window["gf_submitting_11"]){return false;} window["gf_submitting_11"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_11"]){return false;} window["gf_submitting_11"]=true; jQuery("#gform_11").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_11' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='11' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_11' value='WyJbXSIsIjdiZWFhNzdhMjZmM2E0NjI4MWQ1ZDY5NDIxY2FiZGVlIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_11' id='gform_target_page_number_11' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_11' id='gform_source_page_number_11' 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_2" name="ak_js" value="102"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>