diff --git a/fonts/Scorek.otf b/fonts/Scorek.otf index 08ba34eb783131ff934df58fdd834262cd47ea7e..f1896a472f54dd96b84597d459d90a47a8b0d9fd 100644 Binary files a/fonts/Scorek.otf and b/fonts/Scorek.otf differ diff --git a/spare_parts/Scorek-Bravura.sfd b/spare_parts/Scorek-Bravura.sfd index e231577495e0f1b8ef21998392b3cb497d725282..1d1569477a48cb0f5299a499f2a71a1037a06369 100644 --- a/spare_parts/Scorek-Bravura.sfd +++ b/spare_parts/Scorek-Bravura.sfd @@ -22,7 +22,7 @@ OS2Version: 3 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 0 CreationTime: 1461314537 -ModificationTime: 1496173965 +ModificationTime: 1501364141 PfmFamily: 81 TTFWeight: 400 TTFWidth: 5 @@ -75,13 +75,13 @@ NameList: AGL For New Fonts DisplaySize: -128 AntiAlias: 1 FitToEm: 0 -WinInfo: 104 8 5 +WinInfo: 32 8 5 BeginPrivate: 2 StdHW 4 [78] StdVW 4 [90] EndPrivate TeXData: 1 0 0 262144 131072 87381 0 1048576 87381 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144 -BeginChars: 1114115 1074 +BeginChars: 1114115 1085 StartChar: .notdef Encoding: 1114112 -1 0 @@ -47745,7 +47745,7 @@ SplineSet 387.5 457.666666667 379.666666667 477.666666667 373 495 c 0 366.333333333 512.333333333 361 526 357 536 c 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: B @@ -47791,7 +47791,7 @@ SplineSet 257.666666667 574.166666667 244 573.333333333 232 572 c 1 232 421 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: C @@ -47833,7 +47833,7 @@ SplineSet 606 24.6666666667 575 12.6666666667 535 2 c 0 495 -8.66666666667 448.666666667 -14 396 -14 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: D @@ -47870,7 +47870,7 @@ SplineSet 613.666666667 589.333333333 640.333333333 552.666666667 659 508 c 0 677.666666667 463.333333333 687 409.666666667 687 347 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: E @@ -47962,7 +47962,7 @@ SplineSet 560.666666667 542.333333333 536.166666667 552.166666667 508.5 560.5 c 0 480.833333333 568.833333333 450.666666667 573 418 573 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: H @@ -48073,7 +48073,7 @@ SplineSet 102.166666667 595.5 108.333333333 647 115 693 c 1 264 693 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: N @@ -48101,7 +48101,7 @@ SplineSet 676 0 l 1 545 0 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: O @@ -48148,7 +48148,7 @@ SplineSet 670.333333333 586.333333333 695 548.5 713 503.5 c 0 731 458.5 740 406.333333333 740 347 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: P @@ -48183,7 +48183,7 @@ SplineSet 394.5 555.166666667 378.666666667 560.5 360 563.5 c 0 341.333333333 566.5 320.666666667 568 298 568 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: R @@ -48225,7 +48225,7 @@ SplineSet 444 508 431.166666667 532.166666667 405.5 546.5 c 0 379.833333333 560.833333333 342 568 292 568 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: S @@ -48277,7 +48277,7 @@ SplineSet 101.666666667 151.666666667 127.166666667 141.5 157.5 132.5 c 0 187.833333333 123.5 225 119 269 119 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: T @@ -48333,7 +48333,7 @@ SplineSet 544.666666667 38.1666666667 515 19.3333333333 479 6 c 0 443 -7.33333333333 400.333333333 -14 351 -14 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: Z @@ -48362,7 +48362,7 @@ SplineSet 569 693 l 1 569 585 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: a @@ -48415,7 +48415,7 @@ SplineSet 174.333333333 533.833333333 190.5 535.833333333 207.5 537.5 c 0 224.5 539.166666667 241.666666667 540 259 540 c 0x8e EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: b @@ -48455,7 +48455,7 @@ SplineSet 519.333333333 438 534 409.166666667 544 375.5 c 0 554 341.833333333 559 304.333333333 559 263 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: c @@ -48491,7 +48491,7 @@ SplineSet 87.1666666667 90.6666666667 70.8333333333 119.833333333 60.5 153.5 c 0 50.1666666667 187.166666667 45 223.666666667 45 263 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: d @@ -48531,7 +48531,7 @@ SplineSet 534 776 l 1 534 17 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: e @@ -48576,7 +48576,7 @@ SplineSet 203.166666667 341.166666667 200 328.666666667 198 316 c 1 395 316 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: f @@ -48608,7 +48608,7 @@ SplineSet 70 622 89.1666666667 676 127.5 716 c 0 165.833333333 756 222.666666667 776 298 776 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: g @@ -48654,7 +48654,7 @@ SplineSet 495.5 515.833333333 510.666666667 512 524 508 c 1 524 66 l 2 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: h @@ -48686,7 +48686,7 @@ SplineSet 219 0 l 1 70 0 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: i @@ -48713,7 +48713,7 @@ SplineSet 168 766 188.833333333 758.166666667 206.5 742.5 c 0 224.166666667 726.833333333 233 705.333333333 233 678 c 0xf0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: l @@ -48739,7 +48739,7 @@ SplineSet 268.666666667 117.333333333 283 114.333333333 301 113 c 1 280 -10 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: m @@ -48785,7 +48785,7 @@ SplineSet 359 0 l 1 359 279 l 2 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: n @@ -48815,7 +48815,7 @@ SplineSet 70 0 l 1 70 508 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: o @@ -48854,7 +48854,7 @@ SplineSet 338 114 364.166666667 127.5 382.5 154.5 c 0 400.833333333 181.5 410 218 410 264 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: p @@ -48894,7 +48894,7 @@ SplineSet 510.333333333 439.833333333 528.166666667 411 540.5 377 c 0 552.833333333 343 559 305 559 263 c 0 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: r @@ -48922,7 +48922,7 @@ SplineSet 394.333333333 523.166666667 404 520.333333333 412 517 c 1 387 394 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: s @@ -48967,7 +48967,7 @@ SplineSet 89.3333333333 129 115.333333333 121.166666667 142 115.5 c 0 168.666666667 109.833333333 195 107 221 107 c 0xb8 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: t @@ -48999,7 +48999,7 @@ SplineSet 68.1666666667 150 65 181 65 215 c 2 65 657 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: u @@ -49029,7 +49029,7 @@ SplineSet 519 526 l 1 519 18 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: Zacute @@ -51915,7 +51915,7 @@ SplineSet 405.5 144.666666667 371 66.6666666667 337 0 c 1 213 0 l 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: w @@ -51962,7 +51962,7 @@ SplineSet 466.333333333 50.6666666667 450 101 434 151 c 0 418 201 403.333333333 251.333333333 390 302 c 1 EndSplineSet -Validated: 524289 +Validated: 1 EndChar StartChar: z @@ -51991,7 +51991,469 @@ SplineSet 465 526 l 1 465 426 l 1 EndSplineSet +Validated: 1 +EndChar + +StartChar: zero +Encoding: 48 48 1074 +Width: 568 +Flags: W +HStem: -14 128<234.107 335.847> 581 128<232.982 335.847> +VStem: 34 152<179.501 516.685> 382 152<176.994 518.102> +LayerCount: 2 +Fore +SplineSet +534 348 m 0 + 534 231.333333333 511.833333333 141.833333333 467.5 79.5 c 0 + 423.166666667 17.1666666667 362 -14 284 -14 c 0 + 206 -14 144.833333333 17.1666666667 100.5 79.5 c 0 + 56.1666666667 141.833333333 34 231.333333333 34 348 c 0 + 34 406 39.8333333333 457.333333333 51.5 502 c 0 + 63.1666666667 546.666666667 80 584.333333333 102 615 c 0 + 124 645.666666667 150.333333333 669 181 685 c 0 + 211.666666667 701 246 709 284 709 c 0 + 362 709 423.166666667 677.833333333 467.5 615.5 c 0 + 511.833333333 553.166666667 534 464 534 348 c 0 +382 348 m 0 + 382 382.666666667 380.333333333 414.166666667 377 442.5 c 0 + 373.666666667 470.833333333 368.333333333 495.333333333 361 516 c 0 + 353.666666667 536.666666667 343.666666667 552.666666667 331 564 c 0 + 318.333333333 575.333333333 302.666666667 581 284 581 c 0 + 265.333333333 581 249.833333333 575.333333333 237.5 564 c 0 + 225.166666667 552.666666667 215.166666667 536.666666667 207.5 516 c 0 + 199.833333333 495.333333333 194.333333333 470.833333333 191 442.5 c 0 + 187.666666667 414.166666667 186 382.666666667 186 348 c 0 + 186 313.333333333 187.666666667 281.666666667 191 253 c 0 + 194.333333333 224.333333333 199.833333333 199.666666667 207.5 179 c 0 + 215.166666667 158.333333333 225.166666667 142.333333333 237.5 131 c 0 + 249.833333333 119.666666667 265.333333333 114 284 114 c 0 + 302.666666667 114 318.333333333 119.666666667 331 131 c 0 + 343.666666667 142.333333333 353.666666667 158.333333333 361 179 c 0 + 368.333333333 199.666666667 373.666666667 224.333333333 377 253 c 0 + 380.333333333 281.666666667 382 313.333333333 382 348 c 0 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: one +Encoding: 49 49 1075 +Width: 568 +Flags: W +HStem: 0 21G<254 403> 673 20G<291.667 403> +VStem: 254 149<0 499> +LayerCount: 2 +Fore +SplineSet +70 549 m 1 + 89.3333333333 557 109.5 566.166666667 130.5 576.5 c 0 + 151.5 586.833333333 172 598.166666667 192 610.5 c 0 + 212 622.833333333 231.166666667 635.833333333 249.5 649.5 c 0 + 267.833333333 663.166666667 284.333333333 677.666666667 299 693 c 1 + 403 693 l 1 + 403 0 l 1 + 254 0 l 1 + 254 499 l 1 + 234 485.666666667 211.666666667 473.5 187 462.5 c 0 + 162.333333333 451.5 138.333333333 442 115 434 c 1 + 70 549 l 1 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: two +Encoding: 50 50 1076 +Width: 568 +Flags: W +HStem: 0 125<219 517> 581 128<176.118 323.241> +VStem: 344 152<439.024 560.196> +LayerCount: 2 +Fore +SplineSet +496 511 m 0 + 496 485.666666667 491 461.333333333 481 438 c 0 + 471 414.666666667 458 392.166666667 442 370.5 c 0 + 426 348.833333333 408 328 388 308 c 0 + 368 288 348.333333333 269 329 251 c 0 + 319 241.666666667 308.166666667 231.166666667 296.5 219.5 c 0 + 284.833333333 207.833333333 273.666666667 196 263 184 c 0 + 252.333333333 172 242.833333333 160.833333333 234.5 150.5 c 0 + 226.166666667 140.166666667 221 131.666666667 219 125 c 1 + 517 125 l 1 + 517 0 l 1 + 55 0 l 1 + 53.6666666667 7.33333333333 53 16.6666666667 53 28 c 2 + 53 52 l 2 + 53 84 58.1666666667 113.333333333 68.5 140 c 0 + 78.8333333333 166.666666667 92.3333333333 191.5 109 214.5 c 0 + 125.666666667 237.5 144.5 259 165.5 279 c 0 + 186.5 299 207.333333333 319 228 339 c 0 + 244 354.333333333 259 368.833333333 273 382.5 c 0 + 287 396.166666667 299.333333333 409.5 310 422.5 c 0 + 320.666666667 435.5 329 448.5 335 461.5 c 0 + 341 474.5 344 487.666666667 344 501 c 0 + 344 530.333333333 335.666666667 551 319 563 c 0 + 302.333333333 575 281.666666667 581 257 581 c 0 + 239 581 222.166666667 578.166666667 206.5 572.5 c 0 + 190.833333333 566.833333333 176.5 560.166666667 163.5 552.5 c 0 + 150.5 544.833333333 139.333333333 537.166666667 130 529.5 c 0 + 120.666666667 521.833333333 113.666666667 515.666666667 109 511 c 1 + 35 615 l 1 + 64.3333333333 642.333333333 98.5 664.833333333 137.5 682.5 c 0 + 176.5 700.166666667 218.333333333 709 263 709 c 0 + 303.666666667 709 338.666666667 704.333333333 368 695 c 0 + 397.333333333 685.666666667 421.5 672.5 440.5 655.5 c 0 + 459.5 638.5 473.5 617.833333333 482.5 593.5 c 0 + 491.5 569.166666667 496 541.666666667 496 511 c 0 +EndSplineSet Validated: 524289 EndChar + +StartChar: three +Encoding: 51 51 1077 +Width: 568 +Flags: W +HStem: -15 127<92.9336 316.311> 304 120<148 299.464> 583 126<135.351 304.398> +VStem: 328 149<451.505 559.368> 355 150<147.524 266.379> +LayerCount: 2 +Fore +SplineSet +228 -15 m 0xe8 + 210 -15 191 -13.8333333333 171 -11.5 c 0 + 151 -9.16666666667 131.666666667 -6 113 -2 c 0 + 94.3333333333 2 77.3333333333 6.33333333333 62 11 c 0 + 46.6666666667 15.6666666667 34.6666666667 20 26 24 c 1 + 55 148 l 1 + 72.3333333333 140.666666667 94.5 132.833333333 121.5 124.5 c 0 + 148.5 116.166666667 182 112 222 112 c 0 + 268 112 301.666666667 120.666666667 323 138 c 0 + 344.333333333 155.333333333 355 178.666666667 355 208 c 0xe8 + 355 226 351.166666667 241.166666667 343.5 253.5 c 0 + 335.833333333 265.833333333 325.333333333 275.833333333 312 283.5 c 0 + 298.666666667 291.166666667 282.833333333 296.5 264.5 299.5 c 0 + 246.166666667 302.5 226.666666667 304 206 304 c 2 + 148 304 l 1 + 148 424 l 1 + 214 424 l 2 + 228.666666667 424 242.833333333 425.333333333 256.5 428 c 0 + 270.166666667 430.666666667 282.333333333 435.166666667 293 441.5 c 0 + 303.666666667 447.833333333 312.166666667 456.5 318.5 467.5 c 0 + 324.833333333 478.5 328 492.333333333 328 509 c 0 + 328 521.666666667 325.333333333 532.666666667 320 542 c 0 + 314.666666667 551.333333333 307.833333333 559 299.5 565 c 0 + 291.166666667 571 281.5 575.5 270.5 578.5 c 0 + 259.5 581.5 248.333333333 583 237 583 c 0 + 208.333333333 583 181.833333333 578.666666667 157.5 570 c 0 + 133.166666667 561.333333333 111 550.666666667 91 538 c 1 + 38 647 l 1 + 48.6666666667 653.666666667 61.1666666667 660.666666667 75.5 668 c 0 + 89.8333333333 675.333333333 105.666666667 682 123 688 c 0 + 140.333333333 694 158.833333333 699 178.5 703 c 0 + 198.166666667 707 219 709 241 709 c 0 + 281.666666667 709 316.833333333 704.166666667 346.5 694.5 c 0 + 376.166666667 684.833333333 400.666666667 671.166666667 420 653.5 c 0 + 439.333333333 635.833333333 453.666666667 615.166666667 463 591.5 c 0 + 472.333333333 567.833333333 477 542 477 514 c 0xf0 + 477 486.666666667 469.333333333 460.166666667 454 434.5 c 0 + 438.666666667 408.833333333 418 389.333333333 392 376 c 1 + 428 361.333333333 455.833333333 339.5 475.5 310.5 c 0 + 495.166666667 281.5 505 246.666666667 505 206 c 0 + 505 174 499.666666667 144.5 489 117.5 c 0 + 478.333333333 90.5 461.666666667 67.1666666667 439 47.5 c 0 + 416.333333333 27.8333333333 387.5 12.5 352.5 1.5 c 0 + 317.5 -9.5 276 -15 228 -15 c 0xe8 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: four +Encoding: 52 52 1078 +Width: 568 +Flags: W +HStem: 0 21G<319 465> 155 122<162 319 465 539> 673 20G<309 465> +VStem: 319 146<0 155 277 511> +LayerCount: 2 +Fore +SplineSet +319 511 m 1 + 293 477 265.333333333 440 236 400 c 0 + 206.666666667 360 182 319 162 277 c 1 + 319 277 l 1 + 319 511 l 1 +465 693 m 1 + 465 277 l 1 + 539 277 l 1 + 539 155 l 1 + 465 155 l 1 + 465 0 l 1 + 319 0 l 1 + 319 155 l 1 + 20 155 l 1 + 20 264 l 1 + 34.6666666667 293.333333333 53 326.5 75 363.5 c 0 + 97 400.5 121.5 438.5 148.5 477.5 c 0 + 175.5 516.5 204 554.666666667 234 592 c 0 + 264 629.333333333 294 663 324 693 c 1 + 465 693 l 1 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: five +Encoding: 53 53 1079 +Width: 568 +Flags: W +HStem: -15 127<91.7473 321.684> 568 125<232.768 484> +VStem: 360 149<149.124 267.151> +LayerCount: 2 +Fore +SplineSet +360 204 m 0 + 360 223.333333333 355.666666667 240.5 347 255.5 c 0 + 338.333333333 270.5 323.333333333 283 302 293 c 0 + 280.666666667 303 252 310.666666667 216 316 c 0 + 180 321.333333333 134.666666667 324 80 324 c 1 + 87.3333333333 386 93.3333333333 449 98 513 c 0 + 102.666666667 577 106.333333333 637 109 693 c 1 + 484 693 l 1 + 484 568 l 1 + 234 568 l 1 + 232.666666667 544 231.166666667 520.833333333 229.5 498.5 c 0 + 227.833333333 476.166666667 226 456.666666667 224 440 c 1 + 321.333333333 433.333333333 393.166666667 410.5 439.5 371.5 c 0 + 485.833333333 332.5 509 278.333333333 509 209 c 0 + 509 177 503.333333333 147.333333333 492 120 c 0 + 480.666666667 92.6666666667 463.666666667 69 441 49 c 0 + 418.333333333 29 389.833333333 13.3333333333 355.5 2 c 0 + 321.166666667 -9.33333333333 281 -15 235 -15 c 0 + 217 -15 198.166666667 -13.8333333333 178.5 -11.5 c 0 + 158.833333333 -9.16666666667 139.833333333 -6.16666666667 121.5 -2.5 c 0 + 103.166666667 1.16666666667 86.6666666667 5 72 9 c 0 + 57.3333333333 13 46 17 38 21 c 1 + 65 144 l 1 + 81.6666666667 136.666666667 103.666666667 129.5 131 122.5 c 0 + 158.333333333 115.5 191 112 229 112 c 0 + 275 112 308.333333333 121.166666667 329 139.5 c 0 + 349.666666667 157.833333333 360 179.333333333 360 204 c 0 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: six +Encoding: 54 54 1080 +Width: 568 +Flags: W +HStem: -14 124<231.816 348.618> 326 116<205.688 353.125> 576 122<345.697 480.375> +VStem: 37 150<161.713 316.696> 385 148<147.93 294.219> +LayerCount: 2 +Fore +SplineSet +274 326 m 0 + 259.333333333 326 243.666666667 324.666666667 227 322 c 0 + 210.333333333 319.333333333 197.333333333 315.666666667 188 311 c 0 + 188 308.333333333 187.833333333 304.333333333 187.5 299 c 0 + 187.166666667 293.666666667 187 289 187 285 c 0 + 187 261 188.666666667 238.333333333 192 217 c 0 + 195.333333333 195.666666667 201 177 209 161 c 0 + 217 145 227.666666667 132.5 241 123.5 c 0 + 254.333333333 114.5 271 110 291 110 c 0 + 307.666666667 110 321.833333333 113.5 333.5 120.5 c 0 + 345.166666667 127.5 354.833333333 136.333333333 362.5 147 c 0 + 370.166666667 157.666666667 375.833333333 169.5 379.5 182.5 c 0 + 383.166666667 195.5 385 208 385 220 c 0 + 385 254 376.5 280.166666667 359.5 298.5 c 0 + 342.5 316.833333333 314 326 274 326 c 0 +293 442 m 0 + 336.333333333 442 373.166666667 436.166666667 403.5 424.5 c 0 + 433.833333333 412.833333333 458.666666667 397 478 377 c 0 + 497.333333333 357 511.333333333 333.666666667 520 307 c 0 + 528.666666667 280.333333333 533 252 533 222 c 0 + 533 195.333333333 528.166666667 168 518.5 140 c 0 + 508.833333333 112 494.166666667 86.6666666667 474.5 64 c 0 + 454.833333333 41.3333333333 429.833333333 22.6666666667 399.5 8 c 0 + 369.166666667 -6.66666666667 333.333333333 -14 292 -14 c 0 + 208.666666667 -14 145.333333333 12.3333333333 102 65 c 0 + 58.6666666667 117.666666667 37 190.333333333 37 283 c 0 + 37 349.666666667 47.3333333333 408.666666667 68 460 c 0 + 88.6666666667 511.333333333 118.166666667 554.5 156.5 589.5 c 0 + 194.833333333 624.5 241.166666667 651.166666667 295.5 669.5 c 0 + 349.833333333 687.833333333 411 697.333333333 479 698 c 1 + 480.333333333 677.333333333 481.666666667 657.166666667 483 637.5 c 0 + 484.333333333 617.833333333 485.666666667 597.333333333 487 576 c 1 + 453 575.333333333 421.166666667 572.166666667 391.5 566.5 c 0 + 361.833333333 560.833333333 334.833333333 552 310.5 540 c 0 + 286.166666667 528 265 512.5 247 493.5 c 0 + 229 474.5 215 451.333333333 205 424 c 1 + 219.666666667 430.666666667 234.666666667 435.333333333 250 438 c 0 + 265.333333333 440.666666667 279.666666667 442 293 442 c 0 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: seven +Encoding: 55 55 1081 +Width: 568 +Flags: W +HStem: 0 21G<142 295> 567 127<43 344> +VStem: 142 151<0 137.24> +LayerCount: 2 +Fore +SplineSet +142 0 m 1 + 146 48.6666666667 154.333333333 99.3333333333 167 152 c 0 + 179.666666667 204.666666667 195.166666667 256.333333333 213.5 307 c 0 + 231.833333333 357.666666667 252.333333333 405.5 275 450.5 c 0 + 297.666666667 495.5 320.666666667 534.333333333 344 567 c 1 + 43 567 l 1 + 43 694 l 1 + 528 694 l 1 + 528 586 l 1 + 506.666666667 562.666666667 483.166666667 530.333333333 457.5 489 c 0 + 431.833333333 447.666666667 407.5 400.833333333 384.5 348.5 c 0 + 361.5 296.166666667 341.5 240 324.5 180 c 0 + 307.5 120 297 60 293 0 c 1 + 142 0 l 1 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: eight +Encoding: 56 56 1082 +Width: 568 +Flags: W +HStem: -14 120<214.563 356.854> 589 120<223.712 344.621> +VStem: 39 145<135.285 257.602> 54 145<456.342 564.526> 369 144<445.276 564.967> 384 146<133.392 243.756> +LayerCount: 2 +Fore +SplineSet +530 193 m 0xc4 + 530 163 524.833333333 135.5 514.5 110.5 c 0 + 504.166666667 85.5 488.666666667 63.6666666667 468 45 c 0 + 447.333333333 26.3333333333 421.5 11.8333333333 390.5 1.5 c 0 + 359.5 -8.83333333333 323.666666667 -14 283 -14 c 0 + 236.333333333 -14 197.5 -7.5 166.5 5.5 c 0 + 135.5 18.5 110.5 34.6666666667 91.5 54 c 0 + 72.5 73.3333333333 59 94.5 51 117.5 c 0 + 43 140.5 39 161.666666667 39 181 c 0xe4 + 39 201 41.6666666667 219.333333333 47 236 c 0 + 52.3333333333 252.666666667 59.6666666667 267.833333333 69 281.5 c 0 + 78.3333333333 295.166666667 88.8333333333 307.666666667 100.5 319 c 0 + 112.166666667 330.333333333 124.666666667 341 138 351 c 1 + 109.333333333 374.333333333 88.1666666667 397.333333333 74.5 420 c 0 + 60.8333333333 442.666666667 54 471.666666667 54 507 c 0 + 54 533.666666667 59.5 559.333333333 70.5 584 c 0 + 81.5 608.666666667 97 630.166666667 117 648.5 c 0 + 137 666.833333333 161.166666667 681.5 189.5 692.5 c 0 + 217.833333333 703.5 249.333333333 709 284 709 c 0 + 324.666666667 709 359.5 703.166666667 388.5 691.5 c 0 + 417.5 679.833333333 441.333333333 665 460 647 c 0 + 478.666666667 629 492.166666667 608.833333333 500.5 586.5 c 0 + 508.833333333 564.166666667 513 542 513 520 c 0xd8 + 513 488 504.5 458.166666667 487.5 430.5 c 0 + 470.5 402.833333333 449.333333333 381 424 365 c 1 + 462 340.333333333 489.166666667 314.5 505.5 287.5 c 0 + 521.833333333 260.5 530 229 530 193 c 0xc4 +184 187 m 0 + 184 179 185.833333333 170.166666667 189.5 160.5 c 0 + 193.166666667 150.833333333 199 142 207 134 c 0 + 215 126 225.333333333 119.333333333 238 114 c 0 + 250.666666667 108.666666667 266 106 284 106 c 0 + 318.666666667 106 344 114.333333333 360 131 c 0 + 376 147.666666667 384 166.333333333 384 187 c 0 + 384 202.333333333 380.5 216 373.5 228 c 0 + 366.5 240 357 250.5 345 259.5 c 0 + 333 268.5 318.833333333 276.5 302.5 283.5 c 0 + 286.166666667 290.5 268.666666667 297 250 303 c 1 + 231.333333333 289 215.666666667 272.666666667 203 254 c 0 + 190.333333333 235.333333333 184 213 184 187 c 0 +369 516 m 0xd8 + 369 523.333333333 367.5 531.166666667 364.5 539.5 c 0 + 361.5 547.833333333 356.5 555.666666667 349.5 563 c 0 + 342.5 570.333333333 333.666666667 576.5 323 581.5 c 0 + 312.333333333 586.5 299.333333333 589 284 589 c 0 + 269.333333333 589 256.666666667 586.666666667 246 582 c 0 + 235.333333333 577.333333333 226.5 571.166666667 219.5 563.5 c 0 + 212.5 555.833333333 207.333333333 547.666666667 204 539 c 0 + 200.666666667 530.333333333 199 522 199 514 c 0 + 199 492.666666667 206.833333333 472.666666667 222.5 454 c 0 + 238.166666667 435.333333333 265 419.333333333 303 406 c 1 + 324.333333333 419.333333333 340.666666667 434.666666667 352 452 c 0 + 363.333333333 469.333333333 369 490.666666667 369 516 c 0xd8 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: nine +Encoding: 57 57 1083 +Width: 568 +Flags: W +HStem: -2 124<87 234.86> 256 116<208.3 361.343> 586 124<211.002 329.705> +VStem: 28 148<403.155 549.377> 374 151<380.838 534.56> +LayerCount: 2 +Fore +SplineSet +289 372 m 0 + 304.333333333 372 320.333333333 373.5 337 376.5 c 0 + 353.666666667 379.5 366 383.666666667 374 389 c 1 + 374 398 l 2 + 374 400.666666667 374.166666667 403.333333333 374.5 406 c 0 + 374.833333333 408.666666667 375 411 375 413 c 0 + 374.333333333 437 372.333333333 459.5 369 480.5 c 0 + 365.666666667 501.5 360 519.833333333 352 535.5 c 0 + 344 551.166666667 333.166666667 563.5 319.5 572.5 c 0 + 305.833333333 581.5 289 586 269 586 c 0 + 253 586 239 582.666666667 227 576 c 0 + 215 569.333333333 205.333333333 560.666666667 198 550 c 0 + 190.666666667 539.333333333 185.166666667 527.666666667 181.5 515 c 0 + 177.833333333 502.333333333 176 490 176 478 c 0 + 176 442 184.833333333 415.333333333 202.5 398 c 0 + 220.166666667 380.666666667 249 372 289 372 c 0 +362 275 m 1 + 348 268.333333333 332.5 263.5 315.5 260.5 c 0 + 298.5 257.5 284 256 272 256 c 0 + 228.666666667 256 191.666666667 261.166666667 161 271.5 c 0 + 130.333333333 281.833333333 105.166666667 296.5 85.5 315.5 c 0 + 65.8333333333 334.5 51.3333333333 357.333333333 42 384 c 0 + 32.6666666667 410.666666667 28 440 28 472 c 0 + 28 498.666666667 32.5 526 41.5 554 c 0 + 50.5 582 64.6666666667 607.5 84 630.5 c 0 + 103.333333333 653.5 127.833333333 672.5 157.5 687.5 c 0 + 187.166666667 702.5 223 710 265 710 c 0 + 351 710 415.833333333 683.5 459.5 630.5 c 0 + 503.166666667 577.5 525 501.333333333 525 402 c 0 + 525 336.666666667 516.5 279 499.5 229 c 0 + 482.5 179 456.166666667 137 420.5 103 c 0 + 384.833333333 69 339.333333333 43.1666666667 284 25.5 c 0 + 228.666666667 7.83333333333 163 -1.33333333333 87 -2 c 1 + 86.3333333333 19.3333333333 85.3333333333 40 84 60 c 0 + 82.6666666667 80 81.3333333333 100.666666667 80 122 c 1 + 118 122.666666667 152.333333333 125.5 183 130.5 c 0 + 213.666666667 135.5 240.666666667 143.833333333 264 155.5 c 0 + 287.333333333 167.166666667 307.166666667 182.666666667 323.5 202 c 0 + 339.833333333 221.333333333 352.666666667 245.666666667 362 275 c 1 +EndSplineSet +Validated: 524289 +EndChar + +StartChar: equal +Encoding: 61 61 1084 +Width: 810 +Flags: W +HStem: 126 125<172 642> 345 125<172 642> +LayerCount: 2 +Fore +SplineSet +172 251 m 1 + 642 251 l 1 + 642 126 l 1 + 172 126 l 1 + 172 251 l 1 +172 470 m 1 + 642 470 l 1 + 642 345 l 1 + 172 345 l 1 + 172 470 l 1 +EndSplineSet +Validated: 1 +EndChar EndChars EndSplineFont diff --git a/src/libs/core/score/tscoreobject.cpp b/src/libs/core/score/tscoreobject.cpp index 61be0dfda77cbe035021e2ad78e1c3d148d83fcb..a2c993ba2038b53898abd769ef1a8197742da0ee 100644 --- a/src/libs/core/score/tscoreobject.cpp +++ b/src/libs/core/score/tscoreobject.cpp @@ -235,7 +235,7 @@ CHECKTIME ( qDebug() << "[TscoreObject] can't resolve duration of" << lastMeasure->free(); else { if (!n.isRest()) { - notesToCurrent.first().rtm.setTie(Trhythm::e_tieStart); + notesToCurrent.first().rtm.setTie(newNote.rtm.tie() > Trhythm::e_tieStart ? Trhythm::e_tieCont : Trhythm::e_tieStart); if (notesToCurrent.count() == 2) notesToCurrent.last().rtm.setTie(Trhythm::e_tieCont); } diff --git a/src/libs/sound/tsound.cpp b/src/libs/sound/tsound.cpp index 604c8496a11e602a0c9b15740f9608842bd17b0a..e44631f2be5d80f6da109ecfdd13f038889e859c 100755 --- a/src/libs/sound/tsound.cpp +++ b/src/libs/sound/tsound.cpp @@ -45,7 +45,9 @@ Tsound::Tsound(QObject* parent) : player(0), sniffer(0), m_examMode(false), - m_melodyNoteIndex(-1) + m_melodyNoteIndex(-1), + m_tempo(60), + m_quantVal(6) { if (m_instance) { qDebug() << "Tsound instance already exists!"; @@ -250,6 +252,23 @@ float Tsound::pitch() { } +void Tsound::setTempo(int t) { + if (t != m_tempo && t > 39 && t < 181) { + m_tempo = t; + emit tempoChanged(); + } +} + + +/** + * @p m_quantVal is expressed in @p Trhythm duration of: Sixteenth triplet -> 4 or just Sixteenth -> 6 or Eighth -> 12 + */ +void Tsound::setQuantization(int q) { + if ((q == 4 || q == 6 || q == 12) != m_quantVal) { + m_quantVal = q; + } +} + void Tsound::wait() { // qDebug("wait"); @@ -444,30 +463,44 @@ void Tsound::playMelodySlot() { void Tsound::noteStartedSlot(const TnoteStruct& note) { - m_detectedPitch = note.pitch; - emit noteStarted(m_detectedPitch); + m_detectedNote = note.pitch; + emit noteStarted(m_detectedNote); emit noteStartedEntire(note); if (player && GLOB->instrument().type() != Tinstrument::NoInstrument && GLOB->A->playDetected) - play(m_detectedPitch); + play(m_detectedNote); } -Tchunk m_lastChunk; void Tsound::noteFinishedSlot(const TnoteStruct& note) { - m_detectedPitch = note.pitch; -// Tchunk noteChunk(m_detectedPitch, Trhythm()); - m_lastChunk.p() = m_detectedPitch; -// m_lastChunk.r() = ; // TODO not supported yet - emit noteFinished(&m_lastChunk); + m_detectedNote = note.pitch; + qreal rFactor = 2500.0 / m_tempo; + qreal dur = note.duration * 1000.0 / rFactor; + int normDur = qRound(dur / static_cast<qreal>(m_quantVal)) * m_quantVal; + Trhythm r(normDur); + qDebug() << "noteFinishedSlot" << note.duration * 1000 << dur << normDur; + if (r.isValid()) { + m_detectedNote.setRhythm(r); + qDebug() << "Detected" << m_detectedNote.toText() << m_detectedNote.rtm.string(); + emit noteFinished(); + } else { + TrhythmList notes; + Trhythm::resolve(normDur, notes); + for (int n = 0; n < notes.count(); ++n) { + Trhythm& rr = notes[n]; + if (n == 0) + rr.setTie(Trhythm::e_tieStart); + else if (n == notes.count() - 1) + rr.setTie(Trhythm::e_tieEnd); + else + rr.setTie(Trhythm::e_tieCont); + m_detectedNote.setRhythm(rr); + qDebug() << "Detected" << n << m_detectedNote.toText() << m_detectedNote.rtm.string(); + emit noteFinished(); + } + } +// emit noteFinished(); emit noteFinishedEntire(note); if (player && GLOB->instrument().type() == Tinstrument::NoInstrument && GLOB->A->playDetected) - play(m_detectedPitch); + play(m_detectedNote); } - - - - - - - diff --git a/src/libs/sound/tsound.h b/src/libs/sound/tsound.h index f9303290bf3fd36ba6bc4d05d08cf8ef6eca4a46..163cd3c1cd518c58a298086fac342be665d88194 100644 --- a/src/libs/sound/tsound.h +++ b/src/libs/sound/tsound.h @@ -50,6 +50,9 @@ class NOOTKASOUND_EXPORT Tsound : public QObject Q_OBJECT + Q_PROPERTY(int tempo READ tempo WRITE setTempo NOTIFY tempoChanged) + Q_PROPERTY(int quantization READ quantization WRITE setQuantization NOTIFY quantizationChanged) + public: explicit Tsound(QObject *parent = nullptr); virtual ~Tsound(); @@ -98,8 +101,22 @@ public: /** * Returns recently detected note. */ - Tnote& note() { return m_detectedPitch; } - float pitch(); /**< Returns recently detected pitch of note. */ + Q_INVOKABLE Tnote note() const { return m_detectedNote; } + + /** + * Returns recently detected pitch of note (midi number). + */ + float pitch(); + + int tempo() const { return m_tempo; } + void setTempo(int t); + + /** + * Quantization value determines accuracy of detecting rhythm of played note by its duration. + */ + void setQuantization(int q); + int quantization() const { return m_quantVal; } + void pauseSinffing(); void unPauseSniffing(); bool isSnifferPaused(); @@ -123,9 +140,11 @@ public: signals: void noteStarted(const Tnote&); void noteStartedEntire(const TnoteStruct&); - void noteFinished(Tchunk*); + void noteFinished(); void noteFinishedEntire(const TnoteStruct&); void plaingFinished(); + void tempoChanged(); + void quantizationChanged(); private: void createPlayer(); @@ -134,12 +153,15 @@ private: void deleteSniffer(); void restoreSniffer(); /**< Brings back sniffer & pitch view state as such as before settings dialog */ - Tnote m_detectedPitch; // detected note pitch + Tnote m_detectedNote; /**< detected note */ bool m_examMode; - Tnote m_prevLoNote, m_prevHiNote; // notes form sniffer ambitus stored during an exam + Tnote m_prevLoNote, m_prevHiNote; /**< notes form sniffer ambitus stored during an exam */ bool m_stopSniffOnce, m_userState;; int m_melodyNoteIndex; Tmelody *m_playedMelody; + int m_tempo; + int m_quantVal; + static Tsound *m_instance; private slots: diff --git a/src/nootka.qrc b/src/nootka.qrc index c009fa329759260a4bc9678f4e59a515c9540b15..b63ee10297aac6f55e0d0662eb90ee5fb65b54bc 100644 --- a/src/nootka.qrc +++ b/src/nootka.qrc @@ -23,6 +23,7 @@ <file alias="IntonationBar.qml">qml/sound/IntonationBar.qml</file> <file alias="VolumeBar.qml">qml/sound/VolumeBar.qml</file> <file alias="PitchView.qml">qml/sound/PitchView.qml</file> + <file alias="TempoMenu.qml">qml/sound/TempoMenu.qml</file> <file alias="Score.qml">qml/score/Score.qml</file> <file alias="Staff.qml">qml/score/Staff.qml</file> diff --git a/src/qml/MainScore.qml b/src/qml/MainScore.qml index 4fa9cd21a6bd024c7b982716e5b5ac98ee711fd9..479f3cdc7844750317fc5342120a7e748e7cf60d 100644 --- a/src/qml/MainScore.qml +++ b/src/qml/MainScore.qml @@ -54,6 +54,10 @@ Score { return enableKeySign && firstStaff.keySignature ? Noo.majAndMinKeyName(firstStaff.keySignature.key) : "" } } + Connections { + target: SOUND + onNoteFinished: addNote(SOUND.note()) + } Rectangle { // note highlight id: noteHighlight diff --git a/src/qml/TtoolBar.qml b/src/qml/TtoolBar.qml index 4909ee9ea849bdd3c55738f9c8c3d647d3a866ef..b68697b74c85af41af116adc7c4f632d4d1cdca1 100644 --- a/src/qml/TtoolBar.qml +++ b/src/qml/TtoolBar.qml @@ -21,6 +21,61 @@ ToolBar { HeadButton { action: nootkaWindow.examAct } } + ToolButton { + id: metro + property TempoMenu menu: null + width: settAct.width * 1.2; height: settAct.height + x: pitchView.x - width + Rectangle { + id: pend + visible: !metro.menu || metro.menu.tickEnable + y: parent.height / 15; width: parent.width / 15; height: parent.height / 4 + color: activPal.text + SequentialAnimation on x { + id: metroAnim + loops: Animation.Infinite; running: true + NumberAnimation { duration: 60000 / SOUND.tempo; from: 0; to: metro.width - pend.width } + NumberAnimation { duration: 60000 / SOUND.tempo; from: metro.width - pend.width; to: 0 } + } + } + onClicked: { + if (!menu) { + var c = Qt.createComponent("qrc:/TempoMenu.qml") + menu = c.createObject(metro) + menu.onAccepted.connect(metroAnim.restart) + } + menu.open() + } + background: Rectangle { + anchors.fill: parent; color: activPal.window + border { width: 2; color: activPal.text } + } +// Text { +// id: mic +// anchors.horizontalCenter: parent.horizontalCenter +// font { family: "Nootka"; pixelSize: parent.height / 2 } +// text: "r" +// Timer { +// running: true; repeat: true +// interval: 150 +// onTriggered: { +// if (interval === 150) { +// mic.color = activPal.text +// interval = 60000 / SOUND.tempo - 150 +// } else { +// mic.color = "red" +// interval = 150 +// } +// } +// } +// } + Text { + y: parent.height / 3 + anchors.horizontalCenter: parent.horizontalCenter + font { family: "Scorek"; pixelSize: parent.height / 4 } + text: "\ue1d5=" + SOUND.tempo + } + } PitchView { id: pitchView x: label.x - parent.width * 0.41; y: parent.height * 0.05 diff --git a/src/qml/sound/PitchView.qml b/src/qml/sound/PitchView.qml index c4c7a796c3017196404a367d7b64202a5143e1c7..af8183ee1d4079fa4caaa58feb5473f8b4dbe065 100644 --- a/src/qml/sound/PitchView.qml +++ b/src/qml/sound/PitchView.qml @@ -15,7 +15,7 @@ Item { // private property real tickWidth: Screen.pixelDensity * 0.5 - property real tickGap: tickWidth * 1.25 + property real tickGap: tickWidth * 1.4 IntonationBar { id: intoBar diff --git a/src/qml/sound/TempoMenu.qml b/src/qml/sound/TempoMenu.qml new file mode 100644 index 0000000000000000000000000000000000000000..930a43104f4379f35d8887248b8de61fd1b39f8e --- /dev/null +++ b/src/qml/sound/TempoMenu.qml @@ -0,0 +1,64 @@ +/** This file is part of Nootka (http://nootka.sf.net) * + * Copyright (C) 2017 by Tomasz Bojczuk (seelook@gmail.com) * + * on the terms of GNU GPLv3 license (http://www.gnu.org/licenses) */ + +import QtQuick 2.9 +import QtQuick.Controls 2.2 + + +Popup { + property alias tickEnable: meterTickChB.checked + margins: nootkaWindow.fontSize + + signal accepted() + + Column { + spacing: nootkaWindow.fontSize / 2 + + Row { + spacing: nootkaWindow.fontSize + anchors.horizontalCenter: parent.horizontalCenter + Text { text: qsTr("tempo"); color: activPal.text; anchors.verticalCenter: parent.verticalCenter } + SpinBox { + id: tempoSpin + from: 40; to: 180; editable: true + value: SOUND.tempo + } + } + + Row { + spacing: nootkaWindow.fontSize + anchors.horizontalCenter: parent.horizontalCenter + Text { text: qsTr("round to:"); color: activPal.text; anchors.verticalCenter: parent.verticalCenter } + RadioButton { + id: radio16 + font { family: "Nootka"; pixelSize: nootkaWindow.fontSize * 2.5 } + text: "G" + checked: SOUND.quantization === 6 + } + RadioButton { + id: radio8 + font { family: "Nootka"; pixelSize: nootkaWindow.fontSize * 2.5 } + text: "F" + checked: SOUND.quantization === 12 + } + } + + TcheckBox { + id: meterTickChB + text: qsTr("Enable metronome ticking") + checked: true + } + + Button { + text: Noo.stdButtonText(33554432) + anchors.horizontalCenter: parent.horizontalCenter + onClicked: { + SOUND.tempo = tempoSpin.value + SOUND.quantization = radio16.checked ? 6 : 12 // See Tsound doc for values explanation + accepted() + close() + } + } + } +} diff --git a/src/qml/sound/VolumeBar.qml b/src/qml/sound/VolumeBar.qml index c3f724a87eeae81bffdafff09ea29804360e7187..e90c224b36d4b750516d957ca9f987c13f7bf2fd 100644 --- a/src/qml/sound/VolumeBar.qml +++ b/src/qml/sound/VolumeBar.qml @@ -44,7 +44,7 @@ Item { id: vRep model: tc.width / tc.divisor Rectangle { - color: index <= volume * vRep.model ? tc.colorAt(index) : activPal.text + color: index < volume * vRep.model ? tc.colorAt(index) : activPal.text width: index <= minVol * vRep.model ? pitchView.tickWidth / 2 : pitchView.tickWidth radius: pitchView.tickWidth / 2 height: pitchView.tickWidth * 1.5 + ((volBar.height - pitchView.tickWidth * 4) / vRep.model) * index