LEFT | RIGHT |
(no file at all) | |
1 % Feta (not the Font-En-Tja) music font -- ancient note heads | 1 % Feta (not the Font-En-Tja) music font -- ancient note heads |
2 % This file is part of LilyPond, the GNU music typesetter. | 2 % This file is part of LilyPond, the GNU music typesetter. |
3 % | 3 % |
4 % Copyright (C) 2001--2012 Juergen Reuter <reuter@ipd.uka.de> | 4 % Copyright (C) 2001--2012 Juergen Reuter <reuter@ipd.uka.de> |
5 % | 5 % |
6 % Neo-mensural heads originally by | 6 % Neo-mensural heads originally by |
7 % Christian Mondrup and Mats Bengtsson | 7 % Christian Mondrup and Mats Bengtsson |
8 % | 8 % |
9 % LilyPond is free software: you can redistribute it and/or modify | 9 % LilyPond is free software: you can redistribute it and/or modify |
10 % it under the terms of the GNU General Public License as published by | 10 % it under the terms of the GNU General Public License as published by |
(...skipping 1688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1699 -- get_subpath (circle, z2 - z1, right, z2) | 1699 -- get_subpath (circle, z2 - z1, right, z2) |
1700 -- get_subpath (circle, right, z4 - z3, z3) | 1700 -- get_subpath (circle, right, z4 - z3, z3) |
1701 -- get_subpath (circle, z4 - z3, left, z4) | 1701 -- get_subpath (circle, z4 - z3, left, z4) |
1702 -- cycle; | 1702 -- cycle; |
1703 | 1703 |
1704 currentpicture := currentpicture shifted (width/2, 0); | 1704 currentpicture := currentpicture shifted (width/2, 0); |
1705 | 1705 |
1706 % labels (1, 2, 3, 4); | 1706 % labels (1, 2, 3, 4); |
1707 fet_endchar; | 1707 fet_endchar; |
1708 | 1708 |
| 1709 %%%%%%%%%%%% |
| 1710 %% |
| 1711 %% Noteheads for Medieval East-Slavic (Kievan) Notation |
| 1712 %% Code by Aleksandr Andreev <aleksandr.andreev@gmail.com> |
| 1713 %% |
| 1714 %%%%%%%%%%%% |
| 1715 |
| 1716 fet_beginchar ("kievan final note", "sM2kievan"); |
| 1717 % this draws the Final Note |
| 1718 % the final note is the last note of a piece of music |
| 1719 % equivalent to having a whole note and fermata in CMN |
| 1720 % it always has an invariant representation |
| 1721 vert_bar_thickness# := 2 * stafflinethickness#; |
| 1722 vert_height# := 1.5 * staff_space#; |
| 1723 blank_space# := 1.5 * stafflinethickness#; |
| 1724 note_width# := vert_height# - 2 * vert_bar_thickness#; |
| 1725 define_pixels(vert_height, blank_space, note_width); |
| 1726 define_blacker_pixels (vert_bar_thickness); |
| 1727 |
| 1728 path p; |
| 1729 p := (0, blank_space) -- |
| 1730 (0, staff_space - blank_space) -- |
| 1731 (note_width, staff_space - blank_space) -- |
| 1732 (note_width, blank_space) -- |
| 1733 cycle; |
| 1734 fill p; |
| 1735 fill p reflectedabout ((0, 0), (1, 0)); |
| 1736 pickup pensquare xscaled vert_bar_thickness; |
| 1737 draw (note_width + 0.5 * vert_bar_thickness, vert_height) -- |
| 1738 (note_width + 0.5 * vert_bar_thickness, -vert_height); |
| 1739 |
| 1740 set_char_box (0, note_width# + vert_bar_thickness#, |
| 1741 vert_height#, vert_height#); |
| 1742 fet_endchar; |
| 1743 |
| 1744 fet_beginchar ("kievan recitative mark", "sM1kievan"); |
| 1745 inner_width# := 4 * staff_space#; |
| 1746 vert_bar_thickness# := 2 * stafflinethickness#; |
| 1747 vert_bar_height# := staff_space# - stafflinethickness#; |
| 1748 blank_space# := 0.20 * vert_bar_height#; |
| 1749 define_pixels(inner_width, blank_space, vert_bar_height); |
| 1750 define_blacker_pixels (vert_bar_thickness); |
| 1751 |
| 1752 path p; |
| 1753 p := (3 * vert_bar_thickness, blank_space) -- |
| 1754 (3 * vert_bar_thickness, vert_bar_height - blank_space) -- |
| 1755 (3 * vert_bar_thickness + inner_width, vert_bar_height - blank_spac
e) -- |
| 1756 (3 * vert_bar_thickness + inner_width, blank_space) -- |
| 1757 cycle; |
| 1758 fill p; |
| 1759 fill p reflectedabout ((0, 0), (1, 0)); |
| 1760 |
| 1761 % draw the four vertical lines |
| 1762 pickup pensquare xscaled vert_bar_thickness; |
| 1763 p := (0.5 * vert_bar_thickness, vert_bar_height) -- |
| 1764 (0.5 * vert_bar_thickness, -vert_bar_height); |
| 1765 draw p; |
| 1766 draw p shifted (2 * vert_bar_thickness, 0); |
| 1767 draw p shifted (3 * vert_bar_thickness + inner_width, 0); |
| 1768 draw p shifted (5 * vert_bar_thickness + inner_width, 0); |
| 1769 |
| 1770 set_char_box (0, 6 * vert_bar_thickness# + inner_width#, |
| 1771 vert_bar_height#, vert_bar_height#); |
| 1772 fet_endchar; |
| 1773 |
| 1774 fet_beginchar ("Kievan whole note", "s0kievan"); |
| 1775 % the amount by which top and bottom diamond overlap |
| 1776 overlap# := stafflinethickness#; |
| 1777 height# := staff_space# - stafflinethickness#; |
| 1778 width# := height# + overlap#; |
| 1779 define_pixels(overlap, height, width); |
| 1780 |
| 1781 % pars for superellipse are right, top, left, bottom |
| 1782 fill superellipse((width, 0.5 * (height + overlap)), |
| 1783 (width/2, height + overlap), |
| 1784 (0, 0.5 * (height + overlap)), |
| 1785 (width/2, -overlap), |
| 1786 0.51); |
| 1787 fill superellipse((width, -0.5 * (height + overlap)), |
| 1788 (width/2, overlap), |
| 1789 (0, -0.5 * (height + overlap)), |
| 1790 (width/2, -height - overlap), |
| 1791 0.51); |
| 1792 set_char_box (0, width#, height# + overlap#, |
| 1793 height# + overlap#); |
| 1794 fet_endchar; |
| 1795 |
| 1796 fet_beginchar ("Kievan quarter note down", "d2kievan"); |
| 1797 z1 = (0.09 * staff_space, 0.33 * staff_space); |
| 1798 z2 = (0.66 * staff_space, 0.37 * staff_space); |
| 1799 z3 = (0.99 * staff_space, 0.36 * staff_space); |
| 1800 z4 = (0.90 * staff_space, -1.05 * staff_space); |
| 1801 z5 = (1.02 * staff_space, -2.19 * staff_space); |
| 1802 z6 = (0.60 * staff_space, -2.49 * staff_space); |
| 1803 z7 = (0.58 * staff_space, -1.91 * staff_space); |
| 1804 z8 = (0.73 * staff_space, -0.35 * staff_space); |
| 1805 z9 = (0.02 * staff_space, -0.39 * staff_space); |
| 1806 z10 = (0, -0.24 * staff_space); |
| 1807 fill z1{dir 8.6} .. z2 .. z3 |
| 1808 & z3 .. z4 .. z5 |
| 1809 & z5 -- z6 |
| 1810 & z6 .. z7 .. z8 |
| 1811 & z8{left} .. z9 |
| 1812 & z9 .. z10 ... {dir 75}cycle; |
| 1813 set_char_box (0, 1.02 staff_space#, 2.50 staff_space#, 0.40 staff_space#
); |
| 1814 fet_endchar; |
| 1815 |
| 1816 fet_beginchar ("Kievan quarter note up", "u2kievan"); |
| 1817 z1 = (0.090 staff_space, -0.330 staff_space); |
| 1818 z2 = (0.664 staff_space, -0.371 staff_space); |
| 1819 z3 = (0.986 staff_space, -0.363 staff_space); |
| 1820 z4 = (0.897 staff_space, 1.051 staff_space); |
| 1821 z5 = (1.019 staff_space, 2.387 staff_space); |
| 1822 z6 = (0.603 staff_space, 2.587 staff_space); |
| 1823 z7 = (0.583 staff_space, 1.911 staff_space); |
| 1824 z8 = (0.725 staff_space, 0.346 staff_space); |
| 1825 z9 = (0.017 staff_space, 0.391 staff_space); |
| 1826 z10 = (0, 0.240 staff_space); |
| 1827 fill z1{dir -6.9} .. z2 .. z3 |
| 1828 & z3 .. z4 .. z5 |
| 1829 & z5 -- z6 |
| 1830 & z6 .. z7 .. z8 |
| 1831 & z8{left} .. z9 |
| 1832 & z9 .. z10 ... {dir -76.9}cycle; |
| 1833 set_char_box (0, 1.02 staff_space#, 0.40 staff_space#, 2.6 staff_space#)
; |
| 1834 fet_endchar; |
| 1835 |
| 1836 fet_beginchar ("kievan half note (line position)", "s1kievan"); |
| 1837 % this draws the half note with a short tail up and a long tail down |
| 1838 % this version of the half note is used on any line of the staff |
| 1839 z1 = (1.031 staff_space, 0.945 staff_space); |
| 1840 z2 = (0.945 staff_space, -0.122 staff_space); |
| 1841 z3 = (1.059 staff_space, -1.393 staff_space); |
| 1842 z4 = (0.713 staff_space, -1.564 staff_space); |
| 1843 z5 = (0.672 staff_space, -0.729 staff_space); |
| 1844 z6 = (0.684 staff_space, -0.318 staff_space); |
| 1845 z7 = (0.448 staff_space, -0.326 staff_space); |
| 1846 z8 = (0, -0.281 staff_space); |
| 1847 z9 = (0.086 staff_space, 0.350 staff_space); |
| 1848 z10 = (0.746 staff_space, 0.277 staff_space); |
| 1849 z11 = (0.909 staff_space, 0.921 staff_space); |
| 1850 fill z1 .. z2{down} .. z3 |
| 1851 & z3 -- z4 |
| 1852 & z4 .. z5{up} .. z6 |
| 1853 & z6 .. z7{left} .. z8 |
| 1854 & z8 -- z9 |
| 1855 & z9 .. {right}z10 |
| 1856 & z10{up} .. z11 |
| 1857 & z11 -- cycle; |
| 1858 set_char_box (0, 1.06 staff_space#, 1.6 staff_space#, 1.0 staff_space#); |
| 1859 fet_endchar; |
| 1860 |
| 1861 fet_beginchar ("kievan half note (space position)", "sr1kievan"); |
| 1862 % this draws the half note with a short tail down and a long tail up |
| 1863 % this version of the half note is used in any space of the staff |
| 1864 z1 = (1.071 staff_space, 1.426 staff_space); |
| 1865 z2 = (0.974 staff_space, 0.191 staff_space); |
| 1866 z3 = (1.059 staff_space, -0.994 staff_space); |
| 1867 z4 = (0.713 staff_space, -1.169 staff_space); |
| 1868 z5 = (0.676 staff_space, -0.436 staff_space); |
| 1869 z6 = (0.684 staff_space, -0.310 staff_space); |
| 1870 z7 = (0.448 staff_space, -0.322 staff_space); |
| 1871 z8 = (0, -0.277 staff_space); |
| 1872 z9 = (0.0856 staff_space, 0.359 staff_space); |
| 1873 z10 = (0.746 staff_space, 0.281 staff_space); |
| 1874 z11 = (0.807 staff_space, 0.847 staff_space); |
| 1875 z12 = (0.945 staff_space, 1.401 staff_space); |
| 1876 fill z1 .. z2{down} .. z3 |
| 1877 & z3 -- z4 |
| 1878 & z4 .. z5{up} .. z6 |
| 1879 & z6 .. z7{left} .. z8 |
| 1880 & z8 -- z9 |
| 1881 & z9 .. z10{right} |
| 1882 & z10 .. z11 .. z12 |
| 1883 & z12 -- cycle; |
| 1884 set_char_box (0, 1.1 staff_space#, 1.0 staff_space#, 1.4 staff_space#); |
| 1885 fet_endchar; |
| 1886 |
| 1887 fet_beginchar ("kievan eighth note (down)", "d3kievan"); |
| 1888 % this draws the eighth note |
| 1889 % this form of the eight note occurs on the third line or higher |
| 1890 % and sometimes between the second line and the third line |
| 1891 z1 = (0.261 staff_space, 0.416 staff_space); |
| 1892 z2 = (1.022 staff_space, 0.269 staff_space); |
| 1893 z3 = (0.664 staff_space, -0.603 staff_space); |
| 1894 z4 = (1.259 staff_space, -0.726 staff_space); |
| 1895 z5 = (1.055 staff_space, -2.012 staff_space); |
| 1896 z6 = (1.186 staff_space, -2.794 staff_space); |
| 1897 z7 = (0.778 staff_space, -2.999 staff_space); |
| 1898 z8 = (0.741 staff_space, -2.567 staff_space); |
| 1899 z9 = (0.941 staff_space, -1.467 staff_space); |
| 1900 z10 = (0.33 staff_space, -1.340 staff_space); |
| 1901 z11 = (0.631 staff_space, -0.448 staff_space); |
| 1902 z12 = (0, -0.334 staff_space); |
| 1903 fill z1{right} .. z2 |
| 1904 & z2 -- z3 |
| 1905 & z3{right} .. z4 |
| 1906 & z4 .. z5{down} .. z6 |
| 1907 & z6 -- z7 |
| 1908 & z7 .. z8{up} .. z9 |
| 1909 & z9 .. {left}z10 |
| 1910 & z10{dir 78.7} .. z11 |
| 1911 & z11 .. {left}z12 |
| 1912 & z12{dir 78.7} .. {dir 62}cycle; |
| 1913 set_char_box (0, 1.25 staff_space#, 3.0 staff_space#, 0.5 staff_space#); |
| 1914 fet_endchar; |
| 1915 |
| 1916 fet_beginchar ("kievan eighth note (up)", "u3kievan"); |
| 1917 % this draws the flagged eighth note |
| 1918 % this version of the eighth note occurs on the second line or lower |
| 1919 % first, draw the upside down quarter note |
| 1920 z1 = (0.090 staff_space, -0.33 staff_space); |
| 1921 z2 = (0.664 staff_space, -0.371 staff_space); |
| 1922 z3 = (0.986 staff_space, -0.363 staff_space); |
| 1923 z4 = (0.896 staff_space, 1.051 staff_space); |
| 1924 z5 = (1.019 staff_space, 2.387 staff_space); |
| 1925 z6 = (0.603 staff_space, 2.587 staff_space); |
| 1926 z7 = (0.583 staff_space, 1.911 staff_space); |
| 1927 z8 = (0.725 staff_space, 0.346 staff_space); |
| 1928 z9 = (0.016 staff_space, 0.391 staff_space); |
| 1929 z10 = (0, 0.240 staff_space); |
| 1930 fill z1{dir -6.9} .. z2 .. z3 |
| 1931 & z3 .. z4 .. z5 |
| 1932 & z5 -- z6 |
| 1933 & z6 .. z7 .. z8 |
| 1934 & z8{left} .. z9 |
| 1935 & z9 .. z10 ... {dir -76.9}cycle; |
| 1936 % now, draw the stem |
| 1937 z11 = (0.033 staff_space, 2.823 staff_space); |
| 1938 z12 = (0.391 staff_space, 2.648 staff_space); |
| 1939 z13 = (0.354 staff_space, 2.290 staff_space); |
| 1940 z14 = (0.676 staff_space, 1.076 staff_space); |
| 1941 z15 = (0.693 staff_space, 0.88 staff_space); |
| 1942 z16 = (0.208 staff_space, 1.699 staff_space); |
| 1943 z17 = (0.024 staff_space, 2.616 staff_space); |
| 1944 fill z11 -- z12 |
| 1945 & z12 .. z13{down} .. z14 |
| 1946 & z14 -- z15 |
| 1947 & z15 .. z16 .. z17{up} .. cycle; |
| 1948 set_char_box (0, 1.0 staff_space#, 0.4 staff_space#, 2.9 staff_space#); |
| 1949 fet_endchar; |
1709 | 1950 |
1710 fet_endgroup ("noteheads"); | 1951 fet_endgroup ("noteheads"); |
LEFT | RIGHT |