
| Current Path : /proc/thread-self/root/usr/local/lib/python3.8/dist-packages/iftlib/abc/56/abcm2ps-8.5.2/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //proc/thread-self/root/usr/local/lib/python3.8/dist-packages/iftlib/abc/56/abcm2ps-8.5.2/flute.fmt |
% format file for flute tablatures - this file is part of abcm2ps
%
% Tin whistle by Guido Gonzato
% Galoubet and Pipe-Tabor by Michel Bellon
%
% tw_ : tin whistle
% gbl_ : galoubet (3 holes pipe from Provence)
% gblc_ : galoubet (digit only )
% pt_ : pipe and tabor (3 holes pipe from England)
% xi_ : txistu (3 holes pipe from Euskadi)
%
% you may try it running:
% abcm2ps sample -e1 -F flute.fmt -T1 -T3
beginps
% -- whistle drawing functions --
%
% start of line
% string tw_head
/tw_head{/Helvetica 8 selectfont
0 15 M 90 rotate(WHISTLE)show -90 rotate
/Helvetica-Bold 36 selectfont
0 15 M show .5 SLW newpath}!
/tw_under{
-2.5 6.5 M 2.5 -2.5 RL 2.5 2.5 RL
-2.5 -2.5 RM 0 6 RL stroke}!
/tw_over{
-2.5 7.5 M 2.5 2.5 RL 2.5 -2.5 RL
-2.5 2.5 RM 0 -6 RL stroke}!
/tw_p{-3 0 M 6 0 RL -3 -3 RM 0 6 RL stroke}!
/tw_pp{-3 0 M 6 0 RL
-1.5 -1.5 RM 0 3 RL
-3 0 RM 0 -3 RL stroke}!
% holes
/tw_0{0 0 3 0 360 arc stroke}!
/tw_1{0 0 3 90 270 arc fill 0 0 3 270 90 arc stroke}!
/tw_2{0 0 3 0 360 arc fill}!
% hole table - from C to B
/tw_holes
[8#222222 8#222221 8#222220 8#222210 8#222200 8#222000
8#221000 8#220000 8#210000 8#200000 8#022000 8#000000]
def
% draw a note
% octave pitch x tw_note
/tw_note{gsave
7 T % oct pit
cvi % (if microtone)
dup 12 idiv % oct pit pit/12
dup 0 eq{pop}
{1 eq{tw_p}
{tw_pp}ifelse
}ifelse
dup 12 eq{
pop 8#022222 % (special case)
}{
12 mod tw_holes exch get
}ifelse % oct holes
0 1 5{pop
0 7 T
dup 8#3 and dup 0 eq{pop tw_0}
{1 eq{tw_1}
{tw_2}ifelse
}ifelse
-3 bitshift
}for
pop % oct
dup 0 gt{pop tw_over}
{0 lt{tw_under}if
}ifelse
grestore
}!
% -- galoubet en Do --
%
% début de ligne
% string gbl_head
/gbl_tete{/Helvetica 7 selectfont
0 10 M 90 rotate(GALOUBET)show -90 rotate
/Helvetica-Bold 24 selectfont
0 10 M show .5 SLW newpath}!
/gbl_c{/Helvetica-utf8 14 selectfont
-5 10 M show .5 SLW newpath}!
/gbl_doux{-3.5 0 M 7 0 RL stroke}!
/gbl_fort{-3.5 0 M 7 0 RL -3.5 -3.5 RM 0 7 RL stroke}!
/gbl_tres_fort{-5 0 M 10 0 RL
-2.5 -3 RM 0 6 RL
-5 0 RM 0 -6 RL stroke}!
% trous
/gbl_0{0 0 3.5 0 360 arc stroke}!
/gbl_1{0 0 3.5 90 270 arc fill 0 0 3.5 270 90 arc stroke}!
/gbl_2{0 0 3.5 0 360 arc fill}!
% table des trous - de E à d'
/gbl_trous
[8#22210
% F.. B
8#22200 8#22100 8#22000 8#21000 8#20000 8#10000 8#00000
% c .. e
8#22201 8#22101 8#22001 8#21001 8#20001
% f ..b
8#22202 8#00002 8#22002 8#21002 8#20002 8#10202 8#00202
% c' .. d'
8#22203 8#22103 8#22003]
def
% table des doigtés chiffrés
/gbl_dgt
[(3Þ)
(3) (2Þ) (2) (1Þ) (1) (Þ) (0)
(3) (2Þ) (2) (1Þ) (1)
(3) (0) (2) (1Þ) (1) (ÞF) (F)
(3) (2Þ) (2)]
def
% dessin d'une note
% octave pitch x gbl_note
/gbl_note{gsave
8 T % oct pit
cvi % (if microtone)
4 sub % oct pit/'E'
exch % pit/E oct
0 eq % (1ere octave seulement)
1 index 0 ge and % (pitch = 0 .. 22 = E .. d')
1 index 23 lt and{
dup gbl_dgt exch get
0 30 T gbl_c 0 -35 T
gbl_trous exch get
dup 8#3 and
dup 0 eq{pop gbl_doux}
{dup 1 eq{pop}
{2 eq{gbl_fort}
{gbl_tres_fort}ifelse
}ifelse
}ifelse
-3 bitshift
0 9 T
dup 8#3 and 1 eq{gbl_1}if
-3 bitshift
0 1 2{pop
0 9 T
dup 8#3 and dup 0 eq{pop gbl_0}
{1 eq{gbl_1}
{gbl_2}ifelse
}ifelse
-3 bitshift
}for
}if
pop grestore
}!
% -- galoubet en Do Tablature chiffrée--
%
% début de ligne
% string gbl_head
/gblc_tete{/Helvetica 7 selectfont
0 10 M 90 rotate(GALOUBET)show -90 rotate
/Helvetica-Bold 24 selectfont
0 10 M show .5 SLW newpath}!
/gblc_c{/Helvetica-utf8 18 selectfont
-5 10 M show .5 SLW newpath}!
/gblc_doux{-3.5 0 M 7 0 RL stroke}!
/gblc_fort{-3.5 0 M 7 0 RL -3.5 -3.5 RM 0 7 RL stroke}!
/gblc_tres_fort{-5 0 M 10 0 RL
-2.5 -3 RM 0 6 RL
-5 0 RM 0 -6 RL stroke}!
% trous
/gblc_0{0 0 3.5 0 360 arc stroke}!
/gblc_1{0 0 3.5 90 270 arc fill 0 0 3.5 270 90 arc stroke}!
/gblc_2{0 0 3.5 0 360 arc fill}!
% table des trous - de E à d'
/gblc_trous
[8#22210
% F.. B
8#22200 8#22100 8#22000 8#21000 8#20000 8#10000 8#00000
% c .. e
8#22201 8#22101 8#22001 8#21001 8#20001
% f ..b
8#22202 8#00002 8#22002 8#21002 8#20002 8#10202 8#00202
% c' .. d'
8#22203 8#22103 8#22003]
def
% table des doigtés chiffrés
/gblc_dgt
[(3Þ)
(3) (2Þ) (2) (1Þ) (1) (Þ) (0)
(3) (2Þ) (2) (1Þ) (1)
(3) (0) (2) (1Þ) (1) (ÞF) (F)
(3) (2Þ) (2)]
def
% dessin d'une note
% octave pitch x gblc_note
/gblc_note{gsave
8 T % oct pit
cvi % (if microtone)
4 sub % oct pit/'E'
exch % pit/E oct
0 eq % (1ere octave seulement)
1 index 0 ge and % (pitch = 0 .. 22 = E .. d')
1 index 23 lt and{
dup gblc_dgt exch get
0 10 T gblc_c 0 0 T
gblc_trous exch get
dup 8#3 and
dup 0 eq{pop gblc_doux}
{dup 1 eq{pop}
{2 eq{gblc_fort}
{gblc_tres_fort}ifelse
}ifelse
}ifelse
-3 bitshift
% 0 9 T
% dup 8#3 and 1 eq{gblc_1}if
% -3 bitshift
% 0 1 2{pop
% 0 9 T
% dup 8#3 and dup 0 eq{pop gblc_0}
% {1 eq{gblc_1}
% {gblc_2}ifelse
% }ifelse
% -3 bitshift
% }for
}if
pop grestore
}!
% -- Pipe-Tabor en Do --
%
% début de ligne
% string pt_head
/pt_tete{/Helvetica 7 selectfont
0 10 M 90 rotate(PIPE-TABOR)show -90 rotate
/Helvetica-Bold 24 selectfont
0 10 M show .5 SLW newpath}!
/pt_doux{-3.5 0 M 7 0 RL stroke}!
/pt_fort{-3.5 0 M 7 0 RL -3.5 -3.5 RM 0 7 RL stroke}!
/pt_tres_fort{-5 0 M 10 0 RL
-2.5 -3 RM 0 6 RL
-5 0 RM 0 -6 RL stroke}!
% trous
/pt_0{0 0 3.5 0 360 arc stroke}!
/pt_1{0 0 3.5 90 270 arc fill 0 0 3.5 270 90 arc stroke}!
/pt_2{0 0 3.5 0 360 arc fill}!
% table des trous - de E à d'
/pt_trous
[8#22210
% F.. B
8#22200 8#22100 8#22000 8#20200 8#20000 8#00000 8#22211
% c .. e
8#22201 8#22101 8#22001 8#21001 8#20001
% f ..b
8#22202 8#22102 8#22002 8#21002 8#20202 8#00202 8#22002
% c' .. d'
8#22203 8#22103 8#00203]
def
% dessin d'une note
% octave pitch x pt_note
/pt_note{gsave
8 T % oct pit
cvi % (if microtone)
11 sub % oct pit/'E'
exch % pit/E oct
0 eq % (1ere octave seulement)
1 index 0 ge and % (pitch = 0 .. 22 = E .. d')
1 index 23 lt and{
pt_trous exch get
dup 8#3 and
dup 0 eq{pop pt_doux}
{dup 1 eq{pop}
{2 eq{pt_fort}
{pt_tres_fort}ifelse
}ifelse
}ifelse
-3 bitshift
0 9 T
dup 8#3 and 1 eq{pt_1}if
-3 bitshift
0 1 2{pop
0 9 T
dup 8#3 and dup 0 eq{pop pt_0}
{1 eq{pt_1}
{pt_2}ifelse
}ifelse
-3 bitshift
}for
}if
pop grestore
}!
% -- Galoubet en dièze ou Txistu --
%
% début de ligne
% string xi_head
/xi_tete{/Helvetica 7 selectfont
0 10 M 90 rotate(TXISTU)show -90 rotate
/Helvetica-Bold 24 selectfont
0 10 M show .5 SLW newpath}!
/xi_doux{-3.5 0 M 7 0 RL stroke}!
/xi_fort{-3.5 0 M 7 0 RL -3.5 -3.5 RM 0 7 RL stroke}!
/xi_tres_fort{-5 0 M 10 0 RL
-2.5 -3 RM 0 6 RL
-5 0 RM 0 -6 RL stroke}!
% trous
/xi_0{0 0 3.5 0 360 arc stroke}!
/xi_1{0 0 3.5 90 270 arc fill 0 0 3.5 270 90 arc stroke}!
/xi_2{0 0 3.5 0 360 arc fill}!
% table des trous - de E à d'
/xi_trous
[8#22210
% E.. _B
8#22200 8#22100 8#22000 8#20000 8#02200 8#00200 8#22210
% B .. ^d
8#22201 8#22101 8#22001 8#20001 8#02001
% e ..g
8#22202 8#22102 8#22002 8#20002
% c' .. d'
8#22203 8#00203 8#22213 8#22203 8#22103 8#22003]
def
% dessin d'une note
% octave pitch xi tw_note
/xi_note{gsave
8 T % oct pit
cvi % (if microtone)
11 sub % oct pit/'E'
exch % pit/E oct
0 eq % (1ere octave seulement)
1 index 0 ge and % (pitch = 0 .. 22 = E .. d')
1 index 23 lt and{
xi_trous exch get
dup 8#3 and
dup 0 eq{pop xi_doux}
{dup 1 eq{pop}
{2 eq{xi_fort}
{xi_tres_fort}ifelse
}ifelse
}ifelse
-3 bitshift
0 9 T
dup 8#3 and 1 eq{xi_1}if
-3 bitshift
0 1 2{pop
0 9 T
dup 8#3 and dup 0 eq{pop xi_0}
{1 eq{xi_1}
{xi_2}ifelse
}ifelse
-3 bitshift
}for
}if
pop grestore
}!
endps
% all tin whistle transpositions
tablature #1 pitch=D 35 0 63 tw_head tw_note
tablature #2 pitch=C 35 0 63 tw_head tw_note
tablature #3 pitch=Eb 60 0 63 tw_head tw_note
%tablature #4 pitch=Bb, 60 0 63 tw_head tw_note
%tablature #5 pitch=F, 35 0 63 tw_head tw_note
%tablature #6 pitch=G, 35 0 63 tw_head tw_note
%tablature #7 pitch=A, 35 0 63 tw_head tw_note
% galoubet
%tablature #3 pitch=C 30 0 60 gbl_tete gbl_note
tablature #4 pitch=B,b 50 0 60 gbl_tete gbl_note
tablature #5 pitch=G, 30 0 54 pt_tete pt_note
tablature #6 pitch=C 30 0 46 gblc_tete gblc_note