The Winter's Bone actor will play celebrated jazz pianist Joe Albany in the movie, told from the perspective of the musician's 11-year-old daughter, Variety reported.
Hulk star Mark had been due to play the musician, but was apparently forced to pull out because of scheduling issues.
Joe found success young, performing with stars such as Miles Davis, but later battled drug addiction.
Filming is set to begin next March.
John is currently filming the indie drama Too Late, which is filmmaker Dennis Hauck's directorial debut.