Bibliography of Robben Ford

Ford was born in Woodlake but raised in Ukiah, California, and began playing the saxophone at age 10, picking up the guitar at age 13. Robben and his brothers Mark (mouthharp) and Patrick Ford (drums) had a band they named the Charles Ford Blues Band in honor of their father.[1]

Ford began playing professionally at age 18 when the Charles Ford Blues Band got a gig backing Charlie Musselwhite. The band also recorded two albums The Charles Ford Band and Discovering the Blues. Next Ford put together a band with Bay Area musicians that became Jimmy Witherspoon's backup band. Ford recorded two albums with Witherspoon, Live and Spoonful'. The Ford Blues Band reunites periodically, and released live albums in the 1980s and 1990s.

In the 1970s, Ford began to branch out into Jazz fusion, and joined L.A. Express led by saxophonist Tom Scott in 1974. That same year they backed George Harrison on his American tour. In addition to recording fusion albums, they served as Joni Mitchell's backup band on Hissing of Summer Lawns and her live album, Miles of Aisles.

After leaving L.A. Express in 1976, Ford recorded his solo album, The Inside Story with a band that was to become the Yellowjackets. He went on to play a starring role on the first two Yellowjackets albums, although he was listed as a guest artist due to recording contract arrangements.

Ford worked briefly with Miles Davis in 1986; he can be heard on Davis' Montreux box set. Ford released his next album, called Talk to Your Daughter in 1988, a return to his blues roots. In 1989 he joined Philippe Saisse, Marcus Miller and J.T. Lewis in the cast of The Sunday Night Band for the second and final season of the acclaimed late-night NBC television musical performance program, Sunday Night.[2] His best work in the 1990s include Robben Ford and the Blue Line, and Tiger Walk. In addition to recording and touring with his own blues band, Ford continued to tour and play with other bands/artists such as Jing Chi (his fusion band), Gregg Allman and Phil Lesh. He has received nominations for four Grammy Awards.

Several Ford tribute bands exist. Ford was named one of the "100 Greatest Guitarists of the 20th Century" by Musician magazine.[3]

Ford uses Dumble Amplifiers. When travelling abroad he tends to use rented Fender amplifiers along with a Zendrive overdrive pedal by Hermida Audio. Guitar manufacturer Fender used to make a Robben Ford signature guitar, although lately Ford tends to favour Gibson Les Pauls and a custom-made model by Sakashta Guitars.

Ford is married to the cabaret singer, Anne Kerry Ford, and collaborated with her on various projects. His nephew, Gabe Ford, is also a musician.
