GenNon-h is a software designed to generate multiple sequence alignments of DNA evolving on any phylogenetic tree.
``GenNon-h: simulating multiple sequence alignments under nonhomogeneous DNA models''
Anna M. Kedzierska and Marta Casanellas, BMC Bioinformatics (2012), 13:216, pdf .
Continuous-time evolutionary models given by an instantaneous rate matrix (usually common across the entire tree),
admit a given formula that relates this rate matrix to the substitution matrices.
In a more general case of the discrete-time models (JC69*, K81*, K80*, SSM and GMM) it is not a trivial task to generate
a substitution matrix corresponding to a given branch length.
The task boils down to obtaining a stochastic matrix with a given determinant
and was solved for the most well-known discrete-time models in
"Generating Markov evolutionary matrices for a given branch length" by Marta Casanellas and Anna M. Kedzierska
Linear Algebra and its Applications (2013), 438, 2484-2499, pdf .
We based the algorithm on the findings presented in the above work and extended it to generating ''biologically relevant'' and identifiable the substitution matrices. The C++ implementation of the method can be downloaded HERE .
Please cite the GenNon-h paper when using results obtained with its help. Good luck!