In the published material, Tolkien’s most detailed description of Noldorin historical phonology was in the Comparative Tables from the 1930s (PE19/18-28). Further phonetic rules can be deduced by analyzing the sound changes appearing in The Etymologies (LR/341-400). My analysis of Noldorin phonology also relies heavily on David Salo’s work on it and the Sindarin language
         in A Gateway to Sindarin (GS/31-72).
      
      
      I have taken a first pass at working out the basic phonetic rules for the development from Primitive Elvish through Old Noldorin to Noldorin, but I not yet compared it to the phonology of later Sindarin or earlier Gnomish, nor to its real-world counterpart Welsh. It is also known that there is a discussion of Noldorin phonology in an unpublished
         Noldorin grammar (PE13/120 note #1), so any analysis here must be considered preliminary until that document becomes available.
      
      
         
            | initial nasals vanished before stops | 
            [{mb|nd|ŋg}-] | 
            > | 
            [{bdg}-] | 
            00100 | 
         
         
            | final nasals vanished after vowels | 
            [-V{mn}] | 
            > | 
            [-Vø] | 
            00200 | 
         
         
            | [ǭ] became [ou] | 
            [ǭ] | 
            > | 
            [ou] | 
            00300 | 
         
         
            | initial [s] vanished before spirants | 
            [s{ɸθx}-] | 
            > | 
            [{ɸθx}-] | 
            00400 | 
         
         
            | voiceless [j̊], [w̥] became [x], [xw] | 
            [{j̊|w̥}] | 
            > | 
            [{x|xw̥}] | 
            00500 | 
         
         
            | voiced stops became spirants after liquids | 
            [{rl}{bdg}] | 
            > | 
            [{rl}{vðɣ}] | 
            00600 | 
         
         
            | [zb], [zg] became [ðβ], [ðɣ] | 
            [z{bg}] | 
            > | 
            [ð{βɣ}] | 
            00700 | 
         
         
            | initial [w] became [gw] | 
            [w-] | 
            > | 
            [gw-] | 
            00800 | 
         
         
            | voiced stops became spirants after vowels | 
            [V{bdg}] | 
            > | 
            [V{vðɣ}] | 
            00900 | 
         
         
            | [ɣ], [ŋ] vocalized before [l], [r], [m], [n] | 
            [{iea}{ɣŋ}{lrmn}|{ou}{ɣŋ}{lrmn}] | 
            > | 
            [{iea}i{lrmn}|{ou}u{lrmn}] | 
            01000 | 
         
         
            | short [i], [u] became [e], [o] preceding final [a] | 
            [-{ĭŭ}{C|CC}a] | 
            > | 
            [-{eo}{C|CC}a] | 
            01100 | 
         
         
            | [x], [ɸ] vocalized between a vowel and [s], [θ] | 
            [{iea}{ɸx}{θs}|{ou}{ɸx}{θs}|juiθ] | 
            > | 
            [{iea}i{θs}|{ou}u{θs}|juxθ] | 
            01200 | 
         
         
            | [ɸ], [β] became [f], [v] | 
            [ɸ|β] | 
            > | 
            [f|v] | 
            01300 | 
         
         
            | medial [j] became [i] | 
            [CjV] | 
            > | 
            [CiV] | 
            01400 | 
         
         
            | short [u] often became [o] | 
            [ŭ|uC{uw}|u{mnŋ}] | 
            > | 
            [o|uC{uw}|u{mnŋ}] | 
            01500 | 
         
         
            | short [e], [o] became [i], [u] in syllable before final [i] | 
            [-{ĕŏ}{C|CC}i] | 
            > | 
            [-{iu}{C|CC}i] | 
            01600 | 
         
         
            | short [a], [o], [u] became [e], [œ], [y] preceding [i] | 
            [{ĕăŏ}{C|CC}i] | 
            > | 
            [{ieœ}{C|CC}i] | 
            01700 | 
         
         
            | [nm] became [nw] | 
            [nm] | 
            > | 
            [nw] | 
            01800 | 
         
         
            | [ou] became [au] | 
            [ou] | 
            > | 
            [au] | 
            01900 | 
         
         
            | [n] assimilated to following labial | 
            [n+{mb}] | 
            > | 
            [m+{mb}] | 
            02000 | 
         
         
            | short final vowels vanished | 
            [-S{ĕăŏ}] | 
            > | 
            [-Sø] | 
            02100 | 
         
         
            | final [i] intruded into preceding syllable | 
            [-VCi] | 
            > | 
            [-ViC] | 
            02200 | 
         
         
            | initial [r-], [l-] were unvoiced | 
            [{lr}-] | 
            > | 
            [{l̥r̥}-] | 
            02300 | 
         
         
            | voiceless stops voiced after vowels | 
            [V{ptk}] | 
            > | 
            [V{bdg}] | 
            02400 | 
         
         
            | short vowels generally lengthened in monosyllables | 
            [C*V̆C] | 
            > | 
            [C*V̄C] | 
            02500 | 
         
         
            | final [ɣ] became [a] after a consonant | 
            [-C{vɣ}|-Cɣi] | 
            > | 
            [-C{ua}|-Cī] | 
            02600 | 
         
         
            | [ɣ] became [i] between sonants and vowels | 
            [{lr}ɣV] | 
            > | 
            [{lr}iV] | 
            02700 | 
         
         
            | [ɣ] otherwise vanished | 
            [ɣ] | 
            > | 
            [ø] | 
            02800 | 
         
         
            | [h] vanished after vowels | 
            [Vh] | 
            > | 
            [Vø] | 
            02900 | 
         
         
            | final [i], [u] generally vanished | 
            [-S{ĭŭ}] | 
            > | 
            [-Sø] | 
            03000 | 
         
         
            | short vowels vanished before morpheme boundaries | 
            [C{ĭĕăŏŭ}+C] | 
            > | 
            [Cø+C] | 
            03100 | 
         
         
            | [ai] became [oe] or [ae] | 
            [ai] | 
            > | 
            [oe|ae] | 
            03200 | 
         
         
            | [nr] became [ðr] | 
            [nr] | 
            > | 
            [ðr] | 
            03300 | 
         
         
            | [ei] (sometimes) became [ai] in final syllables | 
            [ei] | 
            > | 
            [ai] | 
            03400 | 
         
         
            | initial [pl] became [bl] | 
            [pl-] | 
            > | 
            [bl-] | 
            03500 | 
         
         
            | [ls], [rs] became [lθ], [ss] | 
            [ls|rs] | 
            > | 
            [lθ|ss] | 
            03600 | 
         
         
            | final [mf], [nθ], [ŋx], [lθ] became [mp], [nt], [ŋk], [lt] | 
            [-{mf|nθ|ŋx|lθ}] | 
            > | 
            [-{mp|nt|ŋk|lt}] | 
            03700 | 
         
         
            | nasals vanished before spirantal clusters | 
            [{mnŋ}{fθxs}{lr}] | 
            > | 
            [ø{fθxs}{lr}] | 
            03800 | 
         
         
            | [ð] vanished before nasals | 
            [ð{mnŋ}] | 
            > | 
            [ø{mnŋ}] | 
            03900 | 
         
         
            | voiced spirants restopped after nasals | 
            [-{mnŋ}{vðɣ}-] | 
            > | 
            [-{mnŋ}{bdg}-] | 
            04000 | 
         
         
            | nasals vanished before morpheme boundaries | 
            [-n·{fθxsmnŋl}-] | 
            > | 
            [-ø·{fθxsmnŋl}-] | 
            04100 | 
         
         
            | medial [mf], [nθ], [ŋx] became [mm], [nn], [ŋg] | 
            [-{mf|nθ|ŋx}-] | 
            > | 
            [-{mm|nn|ŋg}-] | 
            04200 | 
         
         
            | voiceless nasals were usually voiced | 
            [m̥|n̥] | 
            > | 
            [m|n] | 
            04300 | 
         
         
            | initial [x-] became [h-] | 
            [x-|x{lr}-] | 
            > | 
            [h-|{l̥r̥}-] | 
            04400 | 
         
         
            | long vowels shortened before clusters | 
            [V̄CC] | 
            > | 
            [V̆CC] | 
            04500 | 
         
         
            | [ī], [ū] often shortened in polysyllables | 
            [ī|ū] | 
            > | 
            [ĭ|ŭ] | 
            04600 | 
         
         
            | [au], [ae] became [o], [e] in polysyllables | 
            [ˌau|ˌae] | 
            > | 
            [o|e] | 
            04700 | 
         
         
            | middle consonants frequently vanished in clusters | 
            [CCC] | 
            > | 
            [CC] | 
            04800 | 
         
         
            | medial [s] became [θ] before [l], [r] | 
            [Vs{lr}] | 
            > | 
            [Vθ{lr}] | 
            04900 | 
         
         
            | [wo] became [o] | 
            [wo] | 
            > | 
            [o] | 
            05000 | 
         
         
            | [lð] became [ll] or [lt] | 
            [lð|-lð] | 
            > | 
            [ll|-lt] | 
            05100 | 
         
         
            | [nl] became [ll] | 
            [nl] | 
            > | 
            [ll] | 
            05200 | 
         
         
            | non-initial [m] usually became [v] | 
            [Xm|m{mbp}] | 
            > | 
            [Xv|m{mbp}] | 
            05300 | 
         
         
            | final [v] became [w] after [i], [ae], [oe] | 
            [-{ae|oe|i}v] | 
            > | 
            [-{ae|oe|i}w] | 
            05400 | 
         
         
            | [w], [v] vanished after [u] | 
            [u{vw}|ui{vw}] | 
            > | 
            [u|ui] | 
            05500 | 
         
         
            | [mb], [nd] became [mm], [nn] | 
            [mb|nd] | 
            > | 
            [mm|nn] | 
            05600 | 
         
         
            | [œ] became [e] | 
            [œ] | 
            > | 
            [e] | 
            05700 | 
         
         
            | final [ll], [nn], [ss] shortened in polysyllables | 
            [-SS{ll|nn|ss}] | 
            > | 
            [-SS{l|n|s}] | 
            05800 | 
         
         
            | final and initial [ŋg] became [ŋ] | 
            [ŋg-|-ŋg] | 
            > | 
            [ŋ-|-ŋ] | 
            05900 | 
         
         
            | [mm] shortened | 
            [mm] | 
            > | 
            [m] | 
            06000 | 
         
         
            | long voiceless spirants shortened | 
            [ff|θθ|xx] | 
            > | 
            [f|θ|x] | 
            06100 | 
         
         
            | final [l], [r] usually became syllabic | 
            [-C{lr}] | 
            > | 
            [-Co{lr}] | 
            06200 | 
         
         
            | final [vn] sometimes became [von] | 
            [-vn] | 
            > | 
            [-von] | 
            06300 | 
         
         
            | final [w] usually became [u] | 
            [-Cw|-aw] | 
            > | 
            [-Cu|-au] | 
            06400 | 
         
         
            | [io] became [ui], [eo] | 
            [io] | 
            > | 
            [ui] | 
            06500 | 
         
         
            | final [rr] became [r] | 
            [-rr] | 
            > | 
            [-r] | 
            06600 | 
         
         
            | long [i] shortened before [w] | 
            [īw] | 
            > | 
            [iw] | 
            06700 | 
         
         
            | [tl], [dl] became [kl], [gl] | 
            [{td}l] | 
            > | 
            [{kg}l] | 
            06800 | 
         
         
            | initial [θl] sometimes became [fl] | 
            [θl-] | 
            > | 
            [fl-] | 
            06900 | 
         
         
            | [ei] sometimes became [e] in unstressed final syllables | 
            [-SeiC] | 
            > | 
            [-SeC] | 
            07000 | 
         
         
            | [sk], [sp] usually became [sg], [sb] | 
            [sk] | 
            > | 
            [sg] | 
            07100 | 
         
         
            | final [-ui] became [-y] | 
            [-ui] | 
            > | 
            [-y] | 
            07200 | 
         
         
            | voiced spirants unvoiced before voiceless spirants | 
            [{vð}{hx}] | 
            > | 
            [{fθ}] | 
            07300 |