The most complete freely accessible source for the dating and chronology of sound changes in French is in my opinion the histolf site of the Université Libre de Bruxelles, and especially its pages on the development of each Latin phoneme into French: https://histolf.ulb.be/index.php/tables-par-phoneme (each phoneme is then examined environnement by environnement, with examples). This won't tell you how a word was pronounced, but when each change occurred, so it requires some previous knowledge of the evolution of French. For example, the two "oy" in the title of your song are described here. At this point the diphthong /oɪ̯/ had already evolved to /we/ or /wɛ/, but not yet lowered to /wa/ (in royal) or simplified to /ɛ/ (in anglais).
A more accessible but much less complete summary is available on the phonological history of French wikipedia page, which seems free from major errors even if I have some quibbles with a few individual dates or reconstructed qualities that seem influenced by modern French.
A third very good source for your goals is the Chantez-vous français? which aims at reconstructing the pronunciation of Classical French based on the very detailed (but by modern standard linguistically naive) descriptions of the grammarians of the time for the purpose of classical singing. In particular, it talks quite a lot about the length oppositions and the minute differences in the mid vowel quality the grammarians described, which shorter chronologies skip over. It's all written in French and mostly in prose though, which probably makes it fairly opaque if you're not fluent in the language, but there's a few tables here and there.
I'll still try to provide a summary of the differences between 15th century French and the modern standard (with the caveat that in depth descriptions aren't available until the next century):
Vowel length played an important role in the phonology of the time, with several modern quality oppositions then distinguished by length instead: /a - aː/ > /a - ɑ(ː)/, /ɔ - ɔː/ > /ɔ - o(ː)/, /ø - øː/ > /œ - ø(ː)/. Consequently, Middle French only had 8 oral vowels + schwa, compared to the 11 + schwa of conservative ModF varieties.
Some of those length oppositions have disappeared in the modern standard, though they're still present in part in some national standard, like that of Belgium. This mostly involves the high vowels /i/ /y/ and /u/ followed by /sC/ or /ə/, where the vowel was lengthened once /s/ and /ə/ were lost, as well as /e/ and /ø/ immediately followed by /ə/.
Vowels weren't yet lengthened before final /v/, /z/, /ʒ/ and /vr/. Ivre was pronounced /'i.vrə/ and not /iːvʀ/ as in ModF.
In initial syllables, middle French had /ə/ (descended from vulgar Latin /ɛ/ or /e/) in some words where modern French has /e/: désert /dezɛʀ/ was then /dəzɛr/, for example, and péril /peʀil/ was /pəri(l)/ (occasionally spelled pril, in fact)
The nasal vowel inventory was similar to modern French's, with "in" and the old nasal diphthongs spelled "ai" or "ei" already merged into /ɛ̃/. The nasal consonants that triggered the nasalisation weren't yet lost in coda, however, and nasalisation was still present before nasals in another syllable. In other words, sain and saine were still pronounced /sɛ̃n/ and /sɛ̃nə/ (ModF: /sɛ̃/ and /sɛ(ː)n/)
The nucleus of the diphthongs had already shifted like in ModF ("ie" used to be /iɛ̯/ but had already become /jɛ/ or /je/, and so on), and the /ew/ and /we/ diphthongs had already merged to /ø/, spelled "eu". Major differences from the modern standard include "oi" still pronounced /we/, /je ~ jɛ/ still behaving as a unit after branching clusters (peuplier would have been pronounced /pø.plje(r)/ in two syllables, compared to the trisyllabic /pøpli(j)e/ of ModF), and "au" still being a diphthong /aw/, distinct from long and short /ɔ/ (in ModF it's merged with long /ɔ/ haute (MidF /hawtə/ and hôte (MidF /hɔːtə/) are both /oːt/)
Final /ə/ would have been systematically pronounced, unless it immediately followed or preceded a vowel.
/h/ was still pronounced in Germanic words, but already showed signs of disappearing from some words.
/ʎ/ was still distinct from /j/: feuille /'føʎə/ (modern /fœj/)
/r/ was still alveolar. Its exact realisation as a trill or a tap is an object of debate, with some scholars (in particular Yves Morin) proposing an opposition between /r/ and /ɾ/, as in Spanish, and in the same environments. Intervocalic /r/ (or /ɾ/, if it existed) showed a tendency to become /z/ in Middle French, a pronunciation that was mostly eliminated later, except in chaise (from chaire) and besicles (from bericles)
Final consonants had already gone through several waves of loss. /θ/ was lost in the 11th century, /l/ and /r/ were lost word-finally at the transition between Old and Middle French, and only restored in most words in Classical French or later. Final clusters were simplified, so that nef was /nɛf/ and nefs /nɛs/. Single final consonants tended to be lost altogether before another consonants, and fricatives were voiced before a vowel (think about the shifting pronunciation of dix and six in Modern French, but for every word).
The final consonants that survived were never voiced utterance finally (hence neuf vs neuve in ModF, because the voicing of the /v/ of neuve was preserved by the final /ə/)
/s/ had disappeared word-internally before another consonant, but could already be restored or borrowed in that position. In particular, I don't know if "biscuit" in the song was still pronounced /bɛːkɥi(t)/ or had been relatinised to /biskɥi(t)/ already.
Finally, an IPA attempt at the first two lines of the song. I can't promise this is correct, I'd need to research the history of each word to be secure in my conclusions, and even then there's uncertainties in the dating or manner of several changes:
Le Roy engloys se faisoit appeler Le Roy de France par sappellation. Il a voulu hors du païs mener Les bons François hors de leur nation.
/lə rwɛ ãnglwɛ sə fɛzwɛ tapəle lə rwɛ də frãnsə pa sapɛlasjõn. i la vuly hɔr dy pɛji məne lɛ bõ(n) frãnswɛ hɔr də lø nasjõn/
fɛzwe: could be fəzwe instead, both realisations were attested.
pɛji: pays evolved weirdly, and I can't be sure this was really what was by the spelling paÿs
Or est-il mort à Sainct-Fiacre en Brye, Du païs de France ils sont
tous déboutez. Il n’est plus mot de ces Engloys couez. Mauldite en
soit trestoute la lignye !
/ɔr ɛti mɔr a sɛ̃fjakr ãn briː, dy pɛji də frãns isõ(n) tu debutes. inɛ ply mɔ də sɛ zãnglwɛ ku(w)es. Mawdit ã(n) swɛ trɛːtutə la liɲə!/