James Marshall "Jimi" Hendrix (born Johnny Allen Hendrix; November 27, 1942[1]  – September 18, 1970) was an American guitarist, singer and songwriter. He is often considered to be the greatest electric guitarist in the history of rock music by other musicians and commentators in the industry,[2][3][4]  and one of the most important and influential musicians of his era across a range of genres.[5][6][7]  After initial success in Europe, he achieved fame in the United States following his 1967 performance at the Monterey Pop Festival. Later, Hendrix headlined the iconic 1969 Woodstock Festival and the 1970 Isle of Wight Festival. Hendrix often favored raw overdriven amplifiers with high gain  and treble and helped develop the previously undesirable technique of guitar amplifier feedback.[8]  Hendrix was one of the musicians who popularized the wah-wah pedal in mainstream rock which he often used to deliver an exaggerated pitch in his solos, particularly with high bends and use of legato based on the pentatonic scale. He was influenced by blues artists such as B.B. King, Muddy Waters, Howlin' Wolf, Albert King, and Elmore James,[9][10][11][12]  rhythm and blues and soul  guitarists Curtis Mayfield, Steve Cropper, as well as by some modern jazz.[13]  In 1966, Hendrix, who played and recorded with Little Richard's band from 1964 to 1965, said, "I want to do with my guitar what Little Richard does with his voice."[14]

As a record producer, Hendrix also broke new ground in using the recording studio as an extension of his musical ideas. He was one of the first to experiment with stereophonic and phasing effects for rock recording.

Hendrix won many of the most prestigious rock music awards in his lifetime, and has been posthumously awarded many more, including being inducted into the US Rock and Roll Hall of Fame in 1992 and the UK Music Hall of Fame in 2005. An English Heritage blue plaque was erected in his name on his former residence at Brook Street, London, in September 1997. A star on the Hollywood Walk of Fame (at 6627 Hollywood Blvd.) was dedicated in 1994. In 2006, his debut US album, Are You Experienced, was inducted into the United States National Recording Registry, and Rolling Stone named Hendrix the top guitarist on its list of the 100 greatest guitarists of all-time in 2003.[15] He was also the first person inducted into the Native American Music Hall of Fame.
