From 5c639afd33c026880acb92419e6a72b38d1aa051 Mon Sep 17 00:00:00 2001 From: Nelson Ruivo Date: Sat, 22 Feb 2020 20:51:18 +0000 Subject: [PATCH 01/84] Replace duplicated CTRL+S shortcut by CTRL+D on Song Details. --- src/QtWindow.cpp | 4 ++-- translations/pianobooster_af.ts | 2 +- translations/pianobooster_am.ts | 2 +- translations/pianobooster_ar.ts | 2 +- translations/pianobooster_as.ts | 2 +- translations/pianobooster_az.ts | 2 +- translations/pianobooster_be.ts | 2 +- translations/pianobooster_bg.ts | 2 +- translations/pianobooster_blank.ts | 2 +- translations/pianobooster_bn.ts | 2 +- translations/pianobooster_br.ts | 2 +- translations/pianobooster_bs.ts | 2 +- translations/pianobooster_bs_BA.ts | 2 +- translations/pianobooster_ca.ts | 2 +- translations/pianobooster_cs.ts | 2 +- translations/pianobooster_cy.ts | 2 +- translations/pianobooster_da.ts | 2 +- translations/pianobooster_de.ts | 2 +- translations/pianobooster_dz.ts | 2 +- translations/pianobooster_el.ts | 2 +- translations/pianobooster_eo.ts | 2 +- translations/pianobooster_es.ts | 2 +- translations/pianobooster_et.ts | 2 +- translations/pianobooster_eu.ts | 2 +- translations/pianobooster_fa.ts | 2 +- translations/pianobooster_fi.ts | 2 +- translations/pianobooster_fo.ts | 2 +- translations/pianobooster_fr.ts | 2 +- translations/pianobooster_fur.ts | 2 +- translations/pianobooster_fy.ts | 2 +- translations/pianobooster_ga.ts | 2 +- translations/pianobooster_gd.ts | 2 +- translations/pianobooster_gl.ts | 2 +- translations/pianobooster_gu.ts | 2 +- translations/pianobooster_he.ts | 2 +- translations/pianobooster_hi.ts | 2 +- translations/pianobooster_hr.ts | 2 +- translations/pianobooster_hu.ts | 2 +- translations/pianobooster_hy.ts | 2 +- translations/pianobooster_id.ts | 2 +- translations/pianobooster_is.ts | 2 +- translations/pianobooster_it.ts | 2 +- translations/pianobooster_ja.ts | 2 +- translations/pianobooster_ka.ts | 2 +- translations/pianobooster_kk.ts | 2 +- translations/pianobooster_kn.ts | 2 +- translations/pianobooster_ko.ts | 2 +- translations/pianobooster_ks.ts | 2 +- translations/pianobooster_ku.ts | 2 +- translations/pianobooster_lt.ts | 2 +- translations/pianobooster_lv.ts | 2 +- translations/pianobooster_mg.ts | 2 +- translations/pianobooster_mi.ts | 2 +- translations/pianobooster_ml.ts | 2 +- translations/pianobooster_mn.ts | 2 +- translations/pianobooster_mr.ts | 2 +- translations/pianobooster_ms.ts | 2 +- translations/pianobooster_my.ts | 2 +- translations/pianobooster_nb.ts | 2 +- translations/pianobooster_ne.ts | 2 +- translations/pianobooster_nl.ts | 2 +- translations/pianobooster_nn.ts | 2 +- translations/pianobooster_oc.ts | 2 +- translations/pianobooster_or.ts | 2 +- translations/pianobooster_pa.ts | 2 +- translations/pianobooster_pl.ts | 2 +- translations/pianobooster_ps.ts | 2 +- translations/pianobooster_pt.ts | 2 +- translations/pianobooster_pt_BR.ts | 2 +- translations/pianobooster_ro.ts | 2 +- translations/pianobooster_ru.ts | 2 +- translations/pianobooster_se.ts | 2 +- translations/pianobooster_si.ts | 2 +- translations/pianobooster_sk.ts | 2 +- translations/pianobooster_sl.ts | 2 +- translations/pianobooster_sq.ts | 2 +- translations/pianobooster_sr.ts | 2 +- translations/pianobooster_sr@latin.ts | 2 +- translations/pianobooster_sv.ts | 2 +- translations/pianobooster_ta.ts | 2 +- translations/pianobooster_te.ts | 2 +- translations/pianobooster_tg.ts | 2 +- translations/pianobooster_th.ts | 2 +- translations/pianobooster_tr.ts | 2 +- translations/pianobooster_tt.ts | 2 +- translations/pianobooster_uk.ts | 2 +- translations/pianobooster_uz.ts | 2 +- translations/pianobooster_vi.ts | 2 +- translations/pianobooster_wa.ts | 2 +- translations/pianobooster_xh.ts | 2 +- translations/pianobooster_zh.ts | 2 +- translations/pianobooster_zh_HK.ts | 2 +- 92 files changed, 93 insertions(+), 93 deletions(-) diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index 82beb199..c0f626a6 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -384,9 +384,9 @@ void QtWindow::createActions() m_setupPreferencesAct->setShortcut(tr("Ctrl+P")); connect(m_setupPreferencesAct, SIGNAL(triggered()), this, SLOT(showPreferencesDialog())); - m_songDetailsAct = new QAction(tr("&Song Details ..."), this); + m_songDetailsAct = new QAction(tr("Song &Details ..."), this); m_songDetailsAct->setToolTip(tr("Song Settings")); - m_songDetailsAct->setShortcut(tr("Ctrl+S")); + m_songDetailsAct->setShortcut(tr("Ctrl+D")); connect(m_songDetailsAct, SIGNAL(triggered()), this, SLOT(showSongDetailsDialog())); QAction* act = new QAction(this); diff --git a/translations/pianobooster_af.ts b/translations/pianobooster_af.ts index fc9bcc2f..73207547 100644 --- a/translations/pianobooster_af.ts +++ b/translations/pianobooster_af.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_am.ts b/translations/pianobooster_am.ts index 9c642a22..189b0059 100644 --- a/translations/pianobooster_am.ts +++ b/translations/pianobooster_am.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ar.ts b/translations/pianobooster_ar.ts index 3b88af91..78449adc 100644 --- a/translations/pianobooster_ar.ts +++ b/translations/pianobooster_ar.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_as.ts b/translations/pianobooster_as.ts index f521ac56..28a32b5b 100644 --- a/translations/pianobooster_as.ts +++ b/translations/pianobooster_as.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_az.ts b/translations/pianobooster_az.ts index 66d494a1..72b3acd1 100644 --- a/translations/pianobooster_az.ts +++ b/translations/pianobooster_az.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_be.ts b/translations/pianobooster_be.ts index 791416d3..d79a8918 100644 --- a/translations/pianobooster_be.ts +++ b/translations/pianobooster_be.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_bg.ts b/translations/pianobooster_bg.ts index 8a12d0c0..39dc5ecc 100644 --- a/translations/pianobooster_bg.ts +++ b/translations/pianobooster_bg.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_blank.ts b/translations/pianobooster_blank.ts index cda33675..fa25588b 100644 --- a/translations/pianobooster_blank.ts +++ b/translations/pianobooster_blank.ts @@ -1755,7 +1755,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_bn.ts b/translations/pianobooster_bn.ts index 54aca568..3d5aaa13 100644 --- a/translations/pianobooster_bn.ts +++ b/translations/pianobooster_bn.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_br.ts b/translations/pianobooster_br.ts index 07b6ba41..8a66d207 100644 --- a/translations/pianobooster_br.ts +++ b/translations/pianobooster_br.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_bs.ts b/translations/pianobooster_bs.ts index d88a81f1..6c089ab0 100644 --- a/translations/pianobooster_bs.ts +++ b/translations/pianobooster_bs.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_bs_BA.ts b/translations/pianobooster_bs_BA.ts index 0e80c79f..af259a82 100644 --- a/translations/pianobooster_bs_BA.ts +++ b/translations/pianobooster_bs_BA.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ca.ts b/translations/pianobooster_ca.ts index b771b3b9..c798df75 100644 --- a/translations/pianobooster_ca.ts +++ b/translations/pianobooster_ca.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_cs.ts b/translations/pianobooster_cs.ts index 2559b6f5..ae6a3c7d 100644 --- a/translations/pianobooster_cs.ts +++ b/translations/pianobooster_cs.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Podrobnosti pí&sně... diff --git a/translations/pianobooster_cy.ts b/translations/pianobooster_cy.ts index bd8aee95..364d20b2 100644 --- a/translations/pianobooster_cy.ts +++ b/translations/pianobooster_cy.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_da.ts b/translations/pianobooster_da.ts index 5e5eb3cb..d37aa6be 100644 --- a/translations/pianobooster_da.ts +++ b/translations/pianobooster_da.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Sangdetaljer ... diff --git a/translations/pianobooster_de.ts b/translations/pianobooster_de.ts index 710b5e06..8828e02f 100644 --- a/translations/pianobooster_de.ts +++ b/translations/pianobooster_de.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Liedinformationen ... diff --git a/translations/pianobooster_dz.ts b/translations/pianobooster_dz.ts index 1aa40b6f..e2d74a1f 100644 --- a/translations/pianobooster_dz.ts +++ b/translations/pianobooster_dz.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_el.ts b/translations/pianobooster_el.ts index 4ec2c8cb..df239f4f 100644 --- a/translations/pianobooster_el.ts +++ b/translations/pianobooster_el.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Λεπτομέρειες &Τραγουδιού ... diff --git a/translations/pianobooster_eo.ts b/translations/pianobooster_eo.ts index f572dbe1..2c64092c 100644 --- a/translations/pianobooster_eo.ts +++ b/translations/pianobooster_eo.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_es.ts b/translations/pianobooster_es.ts index 91ad9e30..ca8030c8 100644 --- a/translations/pianobooster_es.ts +++ b/translations/pianobooster_es.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Detalle&s de la Canción... diff --git a/translations/pianobooster_et.ts b/translations/pianobooster_et.ts index 63739255..22e8eff2 100644 --- a/translations/pianobooster_et.ts +++ b/translations/pianobooster_et.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Pala sätted ... diff --git a/translations/pianobooster_eu.ts b/translations/pianobooster_eu.ts index 1bb9738e..7b3f6ff6 100644 --- a/translations/pianobooster_eu.ts +++ b/translations/pianobooster_eu.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_fa.ts b/translations/pianobooster_fa.ts index fb61fa73..88e8172a 100644 --- a/translations/pianobooster_fa.ts +++ b/translations/pianobooster_fa.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_fi.ts b/translations/pianobooster_fi.ts index 0b04278b..21ed7437 100644 --- a/translations/pianobooster_fi.ts +++ b/translations/pianobooster_fi.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_fo.ts b/translations/pianobooster_fo.ts index def1feef..d2f06352 100644 --- a/translations/pianobooster_fo.ts +++ b/translations/pianobooster_fo.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index 8e0122f9..e133e805 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Détails du morceau... diff --git a/translations/pianobooster_fur.ts b/translations/pianobooster_fur.ts index af9d1af3..753625de 100644 --- a/translations/pianobooster_fur.ts +++ b/translations/pianobooster_fur.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_fy.ts b/translations/pianobooster_fy.ts index 1b8aa506..6f5bf9fd 100644 --- a/translations/pianobooster_fy.ts +++ b/translations/pianobooster_fy.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ga.ts b/translations/pianobooster_ga.ts index d00ee415..3744cbfc 100644 --- a/translations/pianobooster_ga.ts +++ b/translations/pianobooster_ga.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_gd.ts b/translations/pianobooster_gd.ts index ade04705..2a7489d1 100644 --- a/translations/pianobooster_gd.ts +++ b/translations/pianobooster_gd.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_gl.ts b/translations/pianobooster_gl.ts index 9410938f..f75af071 100644 --- a/translations/pianobooster_gl.ts +++ b/translations/pianobooster_gl.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Detalles da canción... diff --git a/translations/pianobooster_gu.ts b/translations/pianobooster_gu.ts index c0e2c7f5..ccf7e1a3 100644 --- a/translations/pianobooster_gu.ts +++ b/translations/pianobooster_gu.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_he.ts b/translations/pianobooster_he.ts index abae27ff..43447125 100644 --- a/translations/pianobooster_he.ts +++ b/translations/pianobooster_he.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_hi.ts b/translations/pianobooster_hi.ts index f2990d05..39b33a29 100644 --- a/translations/pianobooster_hi.ts +++ b/translations/pianobooster_hi.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_hr.ts b/translations/pianobooster_hr.ts index 626e2759..21df7705 100644 --- a/translations/pianobooster_hr.ts +++ b/translations/pianobooster_hr.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_hu.ts b/translations/pianobooster_hu.ts index 3754ca77..6f6c3f2a 100644 --- a/translations/pianobooster_hu.ts +++ b/translations/pianobooster_hu.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_hy.ts b/translations/pianobooster_hy.ts index a36adb16..303f4dff 100644 --- a/translations/pianobooster_hy.ts +++ b/translations/pianobooster_hy.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_id.ts b/translations/pianobooster_id.ts index a9fd4dde..fffde519 100644 --- a/translations/pianobooster_id.ts +++ b/translations/pianobooster_id.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_is.ts b/translations/pianobooster_is.ts index ed05fafb..bd4b8726 100644 --- a/translations/pianobooster_is.ts +++ b/translations/pianobooster_is.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Nánar um &lagið ... diff --git a/translations/pianobooster_it.ts b/translations/pianobooster_it.ts index cb75250b..055d2ca4 100644 --- a/translations/pianobooster_it.ts +++ b/translations/pianobooster_it.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Dettagli della &canzone... diff --git a/translations/pianobooster_ja.ts b/translations/pianobooster_ja.ts index 31058b51..9ae4fad2 100644 --- a/translations/pianobooster_ja.ts +++ b/translations/pianobooster_ja.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... 歌曲詳細(&S) 。。。 diff --git a/translations/pianobooster_ka.ts b/translations/pianobooster_ka.ts index 797a67f1..ee6b81ca 100644 --- a/translations/pianobooster_ka.ts +++ b/translations/pianobooster_ka.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_kk.ts b/translations/pianobooster_kk.ts index d9debb50..b0c4163b 100644 --- a/translations/pianobooster_kk.ts +++ b/translations/pianobooster_kk.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_kn.ts b/translations/pianobooster_kn.ts index f8f56273..9fedb7bf 100644 --- a/translations/pianobooster_kn.ts +++ b/translations/pianobooster_kn.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ko.ts b/translations/pianobooster_ko.ts index 9182ccf1..0fbc100d 100644 --- a/translations/pianobooster_ko.ts +++ b/translations/pianobooster_ko.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ks.ts b/translations/pianobooster_ks.ts index cfc86aa6..6a9c49cc 100644 --- a/translations/pianobooster_ks.ts +++ b/translations/pianobooster_ks.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ku.ts b/translations/pianobooster_ku.ts index c0022971..8598c121 100644 --- a/translations/pianobooster_ku.ts +++ b/translations/pianobooster_ku.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_lt.ts b/translations/pianobooster_lt.ts index 114647ea..c89deb31 100644 --- a/translations/pianobooster_lt.ts +++ b/translations/pianobooster_lt.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_lv.ts b/translations/pianobooster_lv.ts index 2add791d..707a1da9 100644 --- a/translations/pianobooster_lv.ts +++ b/translations/pianobooster_lv.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_mg.ts b/translations/pianobooster_mg.ts index b4b7860f..7ba42b75 100644 --- a/translations/pianobooster_mg.ts +++ b/translations/pianobooster_mg.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_mi.ts b/translations/pianobooster_mi.ts index 24f8812c..ba7b0eff 100644 --- a/translations/pianobooster_mi.ts +++ b/translations/pianobooster_mi.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ml.ts b/translations/pianobooster_ml.ts index 94f1bab8..991e02fb 100644 --- a/translations/pianobooster_ml.ts +++ b/translations/pianobooster_ml.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_mn.ts b/translations/pianobooster_mn.ts index bc076cee..b3715914 100644 --- a/translations/pianobooster_mn.ts +++ b/translations/pianobooster_mn.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_mr.ts b/translations/pianobooster_mr.ts index 12d1e1ef..2b5377df 100644 --- a/translations/pianobooster_mr.ts +++ b/translations/pianobooster_mr.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ms.ts b/translations/pianobooster_ms.ts index f1aafbb3..ba0a49ba 100644 --- a/translations/pianobooster_ms.ts +++ b/translations/pianobooster_ms.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Perincian &Lagu ... diff --git a/translations/pianobooster_my.ts b/translations/pianobooster_my.ts index 8e50af47..de04d94d 100644 --- a/translations/pianobooster_my.ts +++ b/translations/pianobooster_my.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index 5425d633..5970e462 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ne.ts b/translations/pianobooster_ne.ts index 000af0c2..e9ada171 100644 --- a/translations/pianobooster_ne.ts +++ b/translations/pianobooster_ne.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_nl.ts b/translations/pianobooster_nl.ts index 234efbe4..98d73b1f 100644 --- a/translations/pianobooster_nl.ts +++ b/translations/pianobooster_nl.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Liedeigenschappen ... diff --git a/translations/pianobooster_nn.ts b/translations/pianobooster_nn.ts index e8aefb92..b4cee1aa 100644 --- a/translations/pianobooster_nn.ts +++ b/translations/pianobooster_nn.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_oc.ts b/translations/pianobooster_oc.ts index be8fc65e..bf53edca 100644 --- a/translations/pianobooster_oc.ts +++ b/translations/pianobooster_oc.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_or.ts b/translations/pianobooster_or.ts index 252baeb8..b86144bf 100644 --- a/translations/pianobooster_or.ts +++ b/translations/pianobooster_or.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_pa.ts b/translations/pianobooster_pa.ts index cda1c27b..cd2668eb 100644 --- a/translations/pianobooster_pa.ts +++ b/translations/pianobooster_pa.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_pl.ts b/translations/pianobooster_pl.ts index 3b9a6de6..d5b0e607 100644 --- a/translations/pianobooster_pl.ts +++ b/translations/pianobooster_pl.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Szczegóły piosenki ... diff --git a/translations/pianobooster_ps.ts b/translations/pianobooster_ps.ts index f6bd68d2..f0a249eb 100644 --- a/translations/pianobooster_ps.ts +++ b/translations/pianobooster_ps.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index edec41d7..54ade974 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_pt_BR.ts b/translations/pianobooster_pt_BR.ts index 99cc12fe..6839bd13 100644 --- a/translations/pianobooster_pt_BR.ts +++ b/translations/pianobooster_pt_BR.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ro.ts b/translations/pianobooster_ro.ts index 84636bfc..c73a2b76 100644 --- a/translations/pianobooster_ro.ts +++ b/translations/pianobooster_ro.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ru.ts b/translations/pianobooster_ru.ts index f77002ff..5fb0d2c4 100644 --- a/translations/pianobooster_ru.ts +++ b/translations/pianobooster_ru.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Детали песни ... diff --git a/translations/pianobooster_se.ts b/translations/pianobooster_se.ts index 2ead0124..4dd502d8 100644 --- a/translations/pianobooster_se.ts +++ b/translations/pianobooster_se.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_si.ts b/translations/pianobooster_si.ts index 73b3c072..53249415 100644 --- a/translations/pianobooster_si.ts +++ b/translations/pianobooster_si.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_sk.ts b/translations/pianobooster_sk.ts index 2a5b5e0f..fd931ad8 100644 --- a/translations/pianobooster_sk.ts +++ b/translations/pianobooster_sk.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Podrobnosti skladby... diff --git a/translations/pianobooster_sl.ts b/translations/pianobooster_sl.ts index 742853f3..62f0bf2f 100644 --- a/translations/pianobooster_sl.ts +++ b/translations/pianobooster_sl.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_sq.ts b/translations/pianobooster_sq.ts index 075f9170..f015d6e4 100644 --- a/translations/pianobooster_sq.ts +++ b/translations/pianobooster_sq.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_sr.ts b/translations/pianobooster_sr.ts index d58a872f..2b941210 100644 --- a/translations/pianobooster_sr.ts +++ b/translations/pianobooster_sr.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Подаци о пе&сми... diff --git a/translations/pianobooster_sr@latin.ts b/translations/pianobooster_sr@latin.ts index 89775a07..b944f71a 100644 --- a/translations/pianobooster_sr@latin.ts +++ b/translations/pianobooster_sr@latin.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... Podaci o pe&smi... diff --git a/translations/pianobooster_sv.ts b/translations/pianobooster_sv.ts index 90abc884..d9bcea73 100644 --- a/translations/pianobooster_sv.ts +++ b/translations/pianobooster_sv.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_ta.ts b/translations/pianobooster_ta.ts index 0dfa80f3..a6e56fd7 100644 --- a/translations/pianobooster_ta.ts +++ b/translations/pianobooster_ta.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_te.ts b/translations/pianobooster_te.ts index f69befe7..dd945c0c 100644 --- a/translations/pianobooster_te.ts +++ b/translations/pianobooster_te.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_tg.ts b/translations/pianobooster_tg.ts index a88fd93c..02344afe 100644 --- a/translations/pianobooster_tg.ts +++ b/translations/pianobooster_tg.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_th.ts b/translations/pianobooster_th.ts index feeefbbc..8f8000e5 100644 --- a/translations/pianobooster_th.ts +++ b/translations/pianobooster_th.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &รายละเอียดเพลง..... diff --git a/translations/pianobooster_tr.ts b/translations/pianobooster_tr.ts index 37c0024f..6e103685 100644 --- a/translations/pianobooster_tr.ts +++ b/translations/pianobooster_tr.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_tt.ts b/translations/pianobooster_tt.ts index 3bf5bdfe..0b2f3a41 100644 --- a/translations/pianobooster_tt.ts +++ b/translations/pianobooster_tt.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index bf490161..5e9f2759 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... П&араметри пісні… diff --git a/translations/pianobooster_uz.ts b/translations/pianobooster_uz.ts index 47fb8923..8ff7aeb1 100644 --- a/translations/pianobooster_uz.ts +++ b/translations/pianobooster_uz.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_vi.ts b/translations/pianobooster_vi.ts index a96c970a..0b99febf 100644 --- a/translations/pianobooster_vi.ts +++ b/translations/pianobooster_vi.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... &Chi tiết Bản nhạc... diff --git a/translations/pianobooster_wa.ts b/translations/pianobooster_wa.ts index 6c01260f..7fdafcec 100644 --- a/translations/pianobooster_wa.ts +++ b/translations/pianobooster_wa.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_xh.ts b/translations/pianobooster_xh.ts index 1a122cd9..916967db 100644 --- a/translations/pianobooster_xh.ts +++ b/translations/pianobooster_xh.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... diff --git a/translations/pianobooster_zh.ts b/translations/pianobooster_zh.ts index aac63ad9..942d0eb5 100644 --- a/translations/pianobooster_zh.ts +++ b/translations/pianobooster_zh.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... 歌曲信息(&S)... diff --git a/translations/pianobooster_zh_HK.ts b/translations/pianobooster_zh_HK.ts index 665c483b..1542ee5a 100644 --- a/translations/pianobooster_zh_HK.ts +++ b/translations/pianobooster_zh_HK.ts @@ -1675,7 +1675,7 @@ - &Song Details ... + Song &Details ... From 6e67db9ec0d86b7bbb55a5ad70962d2b53f372f8 Mon Sep 17 00:00:00 2001 From: pianobooster Date: Mon, 24 Feb 2020 13:10:52 +0000 Subject: [PATCH 02/84] Bumped the version number to 0.7.3-SNAPSHOT --- src/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version.txt b/src/version.txt index 16e4099b..1cd89703 100644 --- a/src/version.txt +++ b/src/version.txt @@ -1,2 +1,2 @@ -#define PB_VERSION "0.7.2" +#define PB_VERSION "0.7.3-SNAPSHOT" #define MUSIC_RELEASE 3 From f23f660992f246bc1f013b3cf76cb47e41865935 Mon Sep 17 00:00:00 2001 From: pianobooster Date: Fri, 28 Feb 2020 13:00:38 +0000 Subject: [PATCH 03/84] Fix for the keyboard lights on the Yamaha EZ-200 --- src/Conductor.cpp | 11 +++++++---- src/Conductor.h | 1 + src/MidiDeviceRt.cpp | 4 ++-- src/MidiDeviceRt.h | 2 ++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Conductor.cpp b/src/Conductor.cpp index b0b37f90..f311d881 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -539,6 +539,11 @@ void CConductor::turnOnKeyboardLights(bool on) if (Cfg::keyboardLightsChan == -1) return; + // exit if keybaord light are allready on + if (m_KeyboardLightsOn && on) + return; + + m_KeyboardLightsOn = on; for(i = 0; i < m_wantedChord.length(); i++) { note = m_wantedChord.getNote(i).pitch(); @@ -550,7 +555,6 @@ void CConductor::turnOnKeyboardLights(bool on) } } - void CConductor::fetchNextChord() { m_followState = PB_FOLLOW_searching; @@ -577,11 +581,8 @@ void CConductor::fetchNextChord() // now find the split point findSplitPoint(); - turnOnKeyboardLights(true); - } - bool CConductor::validatePianistNote( const CMidiEvent & inputNote) { if ( m_chordDeltaTime <= -m_cfg_playZoneEarly) @@ -927,6 +928,8 @@ void CConductor::followPlaying() setEventBits( EVENT_BITS_forceRatingRedraw); } } + if (deltaAdjust(m_chordDeltaTime) > -m_cfg_earlyNotesPoint ) + turnOnKeyboardLights(true); } void CConductor::outputSavedNotesOff() diff --git a/src/Conductor.h b/src/Conductor.h index dac949e5..62dccecc 100644 --- a/src/Conductor.h +++ b/src/Conductor.h @@ -296,6 +296,7 @@ class CConductor : public CMidiDevice CChord m_savedWantedChord; // A copy of the wanted chord complete with both left and right parts CChord m_goodPlayedNotes; // The good notes the pianist plays CTempo m_tempo; + bool m_KeyboardLightsOn; int m_pianistSplitPoint; // Defines which notes go in the base and treble clef diff --git a/src/MidiDeviceRt.cpp b/src/MidiDeviceRt.cpp index d74ab56c..8e35bef4 100644 --- a/src/MidiDeviceRt.cpp +++ b/src/MidiDeviceRt.cpp @@ -232,7 +232,7 @@ int CMidiDeviceRt::checkMidiInput() { if (m_midiPorts[0] < 0) return 0; - m_midiin->getMessage( &m_inputMessage ); + m_stamp = m_midiin->getMessage( &m_inputMessage ); return m_inputMessage.size(); } @@ -249,7 +249,7 @@ CMidiEvent CMidiDeviceRt::readMidiInput() for (unsigned int i = 0; i < m_inputMessage.size(); i++) str += " 0x" + QString::number(m_inputMessage[i], 16) + ','; - ppLogInfo("midi input %s", qPrintable(str)); + ppLogInfo("midi input %f : %s", m_stamp, qPrintable(str)); } channel = m_inputMessage[0] & 0x0f; diff --git a/src/MidiDeviceRt.h b/src/MidiDeviceRt.h index 24cec29a..afc02139 100644 --- a/src/MidiDeviceRt.h +++ b/src/MidiDeviceRt.h @@ -66,6 +66,8 @@ class CMidiDeviceRt : public CMidiDeviceBase RtMidiOut *m_midiout; RtMidiIn *m_midiin; + double m_stamp; + // 0 for input, 1 for output int m_midiPorts[2]; // select which MIDI output port to open std::vector m_inputMessage; From 9563ba84c8ddf1b7f71cafcf2817e243b1f4a721 Mon Sep 17 00:00:00 2001 From: pianobooster Date: Thu, 2 Apr 2020 19:33:44 +0100 Subject: [PATCH 04/84] Integrated fluidsynth as an build option. --- .gitignore | 2 +- Changelog.txt | 5 + src/Bar.cpp | 2 - src/Bar.h | 14 +- src/CMakeLists.txt | 34 ++-- src/Cfg.cpp | 8 - src/Cfg.h | 10 +- src/Chord.cpp | 2 - src/Chord.h | 5 - src/Conductor.cpp | 24 +-- src/Conductor.h | 10 -- src/Draw.cpp | 49 ++++-- src/Draw.h | 42 +---- src/GlView.cpp | 13 +- src/GlView.h | 1 - src/GuiKeyboardSetupDialog.cpp | 4 +- src/GuiKeyboardSetupDialog.h | 2 - src/GuiLoopingPopup.cpp | 4 +- src/GuiLoopingPopup.h | 2 - src/GuiMidiSetupDialog.cpp | 281 ++++++++++++++++---------------- src/GuiMidiSetupDialog.h | 14 +- src/GuiMidiSetupDialog.ui | 282 +++++++++++++++++---------------- src/GuiPreferencesDialog.cpp | 22 +-- src/GuiPreferencesDialog.h | 2 - src/GuiSidePanel.cpp | 20 +-- src/GuiSidePanel.h | 3 - src/GuiSongDetailsDialog.cpp | 9 +- src/GuiSongDetailsDialog.h | 2 - src/GuiTopBar.cpp | 7 +- src/GuiTopBar.h | 1 - src/Merge.cpp | 13 +- src/MidiDevice.cpp | 22 ++- src/MidiDevice.h | 3 +- src/MidiDeviceBase.h | 16 +- src/MidiDeviceFluidSynth.cpp | 97 +++++------- src/MidiDeviceFluidSynth.h | 12 +- src/MidiDeviceRt.cpp | 10 +- src/MidiEvent.h | 6 - src/MidiFile.cpp | 12 +- src/MidiTrack.cpp | 13 +- src/MidiTrack.h | 8 - src/Notation.cpp | 6 +- src/Notation.h | 6 - src/Piano.cpp | 3 - src/QtMain.cpp | 5 +- src/QtWindow.cpp | 42 ++--- src/QtWindow.h | 3 - src/Rating.cpp | 2 - src/Rating.h | 2 - src/Score.cpp | 5 +- src/Score.h | 6 - src/Scroll.cpp | 5 - src/Scroll.h | 2 - src/Settings.cpp | 67 ++++---- src/Settings.h | 40 ++++- src/Song.cpp | 9 +- src/Song.h | 4 - src/StavePosition.cpp | 1 - src/StavePosition.h | 9 +- src/Symbol.h | 11 -- src/Tempo.cpp | 6 - src/Tempo.h | 6 +- src/TrackList.h | 2 - src/Util.cpp | 30 ++-- src/Util.h | 10 +- 65 files changed, 594 insertions(+), 776 deletions(-) mode change 100644 => 100755 src/CMakeLists.txt mode change 100644 => 100755 src/GuiMidiSetupDialog.cpp mode change 100644 => 100755 src/MidiDeviceFluidSynth.cpp diff --git a/.gitignore b/.gitignore index f2ba980a..7fa6ffc0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /build*/ /debug*/ - +CMakeLists.txt.user diff --git a/Changelog.txt b/Changelog.txt index c9848af9..444c2a6d 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,8 @@ +v0.7.3 (25 Feb 2020) +- Integrated fluidsynth as an build option. +- Changes necessary for AppImage. +- Added to the manual langage selection. + v0.7.2b (25 Feb 2020) - Fixed a problem that prevented a connected MIDI piano keyboard from working. - cmake with no options now works correctly (cmake .. && make). diff --git a/src/Bar.cpp b/src/Bar.cpp index 5216fdd0..8b47d1f7 100644 --- a/src/Bar.cpp +++ b/src/Bar.cpp @@ -35,7 +35,6 @@ #define ppDEBUG_BAR(args) #endif - void CBar::setTimeSig(int top, int bottom) { m_currentTimeSigTop = top; @@ -111,7 +110,6 @@ void CBar::checkGotoBar() } } - void CBar::setPlayFromBar(double bar) { m_playFromBar = bar; diff --git a/src/Bar.h b/src/Bar.h index bfd2d82b..aa167059 100644 --- a/src/Bar.h +++ b/src/Bar.h @@ -29,10 +29,8 @@ #ifndef __BAR_H__ #define __BAR_H__ - #include "MidiFile.h" - // The event bits can be ORed together #define EVENT_BITS_playingStopped 0x0001 // set when we reach the end of piece #define EVENT_BITS_forceFullRedraw 0x0002 // force the whole screen to be redrawn @@ -43,8 +41,6 @@ typedef unsigned long eventBits_t; - - // controls the bar numbers class CBar { @@ -97,9 +93,11 @@ class CBar // int getBarNumber(){ return m_barCounter;} - double getCurrentBarPos() { return m_barCounter + static_cast(m_beatCounter)/m_currentTimeSigBottom + - static_cast(m_deltaTime)/(m_beatLength * m_currentTimeSigBottom * SPEED_ADJUST_FACTOR); } - + double getCurrentBarPos() + { + return m_barCounter + static_cast(m_beatCounter)/m_currentTimeSigBottom + + static_cast(m_deltaTime)/(m_beatLength * m_currentTimeSigBottom * SPEED_ADJUST_FACTOR); + } bool seekingBarNumber() { return m_seekingBarNumber;} @@ -120,8 +118,6 @@ class CBar m_enablePlayFromBar = (m_enableLooping || m_playFromBar > 0.0)?true:false; } - - int m_deltaTime; int m_beatLength; //in ppqn ticks int m_barLength; // m_beatLength * getTimeSigTop() (also in ppqn ticks) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt old mode 100644 new mode 100755 index 4fb5cc17..de352934 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,9 +1,13 @@ # Cmake File for Piano Booster option(USE_FTGL "build with ftgl" ON) -option(USE_JACK "build with Jack (Only required of BSD Unix)" OFF) -option(USE_BUNDLED_RTMIDI "build with bundled rtmidi (for older distributions only)" OFF) +option(USE_JACK "build with Jack (Only required for BSD Unix)" OFF) option(USE_SYSTEM_FONT "build with system font" OFF) +if(${CMAKE_SYSTEM} MATCHES "Linux") + option(USE_BUNDLED_RTMIDI "build with bundled rtmidi (for older distributions only)" OFF) +else() + option(USE_BUNDLED_RTMIDI "build with bundled rtmidi" ON) +endif() cmake_minimum_required(VERSION 2.4) if(COMMAND cmake_policy) @@ -12,7 +16,6 @@ endif(COMMAND cmake_policy) if(WIN32) MESSAGE("GUI system is WIN32 ${CMAKE_GENERATOR}") - SET(CMAKE_COLOR_MAKEFILE OFF) endif(WIN32) # set project's name @@ -45,8 +48,10 @@ MESSAGE("CMAKE_INSTALL_BINDIR: " ${CMAKE_INSTALL_BINDIR}) FIND_PACKAGE( OpenGL REQUIRED ) -include(FindPkgConfig) -FIND_PACKAGE( PkgConfig REQUIRED ) +if(NOT WIN32) + include(FindPkgConfig) + FIND_PACKAGE( PkgConfig REQUIRED ) +endif() if(USE_FTGL) pkg_check_modules(FTGL ftgl) @@ -92,21 +97,19 @@ if(EXPERIMENTAL_USE_FLUIDSYNTH) MESSAGE("Building using fluidsynth") SET( PB_BASE_SRCS MidiDeviceFluidSynth.cpp ) - if(FLUIDSYNTH_INPLACE_DIR) + if(DEFINED ENV{FLUIDSYNTH_INPLACE_DIR}) + SET (FLUIDSYNTH_INPLACE_DIR = $ENV{FLUIDSYNTH_INPLACE_DIR}) INCLUDE_DIRECTORIES(${FLUIDSYNTH_INPLACE_DIR}/include/) if(WIN32) - LINK_LIBRARIES( ${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.dll.a) + LINK_LIBRARIES( $ENV{FLUIDSYNTH_INPLACE_DIR}/lib/libfluidsynth.dll.a) endif(WIN32) - if(UNIX) - LINK_LIBRARIES(${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.so) - endif(UNIX) - else(FLUIDSYNTH_INPLACE_DIR) + else() pkg_check_modules(FLUIDSYNTH fluidsynth) if(NOT FLUIDSYNTH_FOUND) MESSAGE(FATAL_ERROR "FLUIDSYNTH was not found") endif(NOT FLUIDSYNTH_FOUND) - LINK_LIBRARIES( fluidsynth) - endif(FLUIDSYNTH_INPLACE_DIR) + LINK_LIBRARIES(fluidsynth) + endif() endif(EXPERIMENTAL_USE_FLUIDSYNTH) # we need this to be able to include headers produced by uic in our code @@ -141,7 +144,10 @@ if(USE_BUNDLED_RTMIDI) set(PB_BASE_SRCS ${PB_BASE_SRCS} 3rdparty/rtmidi/RtMidi.cpp) set(PB_BASE_HDR ${PB_BASE_HDR} 3rdparty/rtmidi/RtMidi.h) else() - pkg_check_modules(RTMIDI REQUIRED rtmidi) + pkg_check_modules(RTMIDI rtmidi) + if(NOT RTMIDI_FOUND) + MESSAGE(FATAL_ERROR "rtmidi not found (Try building with option USE_BUNDLED_RTMIDI=ON)") + endif(NOT RTMIDI_FOUND) include_directories(${RTMIDI_INCLUDE_DIRS}) link_directories(${RTMIDI_LIBRARY_DIRS}) endif() diff --git a/src/Cfg.cpp b/src/Cfg.cpp index 96680b6d..5fd891db 100644 --- a/src/Cfg.cpp +++ b/src/Cfg.cpp @@ -26,9 +26,6 @@ */ /*********************************************************************************/ - - - #include "Cfg.h" float Cfg::m_staveEndX; @@ -49,8 +46,3 @@ int Cfg::tickRate; const int Cfg::m_playZoneEarly = 25; // Was 25 const int Cfg::m_playZoneLate = 25; - - - - - diff --git a/src/Cfg.h b/src/Cfg.h index 3b65552e..0787d227 100644 --- a/src/Cfg.h +++ b/src/Cfg.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -40,13 +40,11 @@ #define BENCHMARK_RESULTS() #endif - class CColor { public: CColor() { red = green = blue = 0; } - CColor(double r, double g, double b) { red = static_cast(r); @@ -86,11 +84,9 @@ class Cfg static int chordNoteGap() {return 10;} // all notes in a cord must be spaced less than this a gap static int chordMaxLength() {return 20;} // the max time between the start and end of a cord - static CColor menuColor() {return CColor(0.1, 0.6, 0.6);} static CColor menuSelectedColor(){return CColor(0.7, 0.7, 0.1);} - static CColor staveColor() {return CColor(0.1, 0.7, 0.1);} // green static CColor staveColorDim() {return CColor(0.15, 0.40, 0.15);} // grey static CColor noteColor() {return CColor(0.1, 0.9, 0.1);} // green @@ -114,8 +110,6 @@ class Cfg #endif } - - static void setStaveEndX(float x) { m_staveEndX = x; @@ -132,8 +126,6 @@ class Cfg m_appHeight = height; } - - static int defaultWrongPatch() {return 7;} // Starts at 1 static int defaultRightPatch() {return 1;} // Starts at 1 diff --git a/src/Chord.cpp b/src/Chord.cpp index d06ad1f4..570614fe 100644 --- a/src/Chord.cpp +++ b/src/Chord.cpp @@ -68,7 +68,6 @@ whichPart_t CNote::findHand(int midiNote, int midiChannel, int whichChannel, whi return hand; } - void CChord::addNote(whichPart_t part, int note, int duration) { if (m_length >= MAX_CHORD_NOTES) @@ -166,7 +165,6 @@ bool CFindChord::findChord(CMidiEvent midi, int channel, whichPart_t part) m_noteGapTime += midi.deltaTime(); - if ((m_noteGapTime >= m_cfg_ChordNoteGap || m_cordSpanGapTime > m_cfg_ChordMaxLength) && m_currentChord.length() > 0 ) { diff --git a/src/Chord.h b/src/Chord.h index c3e6c5b1..edc7787d 100644 --- a/src/Chord.h +++ b/src/Chord.h @@ -47,7 +47,6 @@ typedef enum PB_PART_none, } whichPart_t; - #define MAX_CHORD_NOTES 20 // The maximum notes in a chord well we only have 10 fingers class CNote @@ -127,7 +126,6 @@ class CChord bool searchChord(int note, int transpose = 0); int trimOutOfRangeNotes(int transpose); - void transpose(int amount) { for (int i = 0; i < m_length; i++) @@ -165,10 +163,8 @@ class CChord int m_length; static int m_cfg_highestPianoNote; // The highest note on the users piano keyboard; static int m_cfg_lowestPianoNote; - }; - // Define a chord class CFindChord { @@ -188,7 +184,6 @@ class CFindChord m_cfg_ChordMaxLength = CMidiFile::ppqnAdjust(Cfg::chordMaxLength()); } - CChord getChord() { CChord chord; diff --git a/src/Conductor.cpp b/src/Conductor.cpp index f311d881..4c20d52b 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman, all rights reserved This file is part of the PianoBooster application @@ -33,7 +33,6 @@ #define ppDEBUG_CONDUCTOR(args) #endif - #include "Conductor.h" #include "Score.h" #include "Piano.h" @@ -45,9 +44,9 @@ CConductor::CConductor() { int i; - m_scoreWin = 0; - m_settings = 0; - m_piano = 0; + m_scoreWin = nullptr; + m_settings = nullptr; + m_piano = nullptr; m_songEventQueue = new CQueue(1000); m_wantedChordQueue = new CQueue(1000); @@ -104,7 +103,6 @@ void CConductor::reset() } } - //! add a midi event to be analysed and displayed on the score void CConductor::midiEventInsert(CMidiEvent event) { @@ -182,7 +180,6 @@ void CConductor::mutePart(int part, bool state) return; } - for ( channel = 0; channel < MAX_MIDI_CHANNELS; channel++) { muteChannel( channel, state); @@ -346,7 +343,6 @@ void CConductor::setPlayMode(playMode_t mode) m_piano->setRhythmTapping(m_playMode == PB_PLAY_MODE_rhythmTapping); } - void CConductor::setActiveChannel(int channel) { m_activeChannel = channel; @@ -356,7 +352,6 @@ void CConductor::setActiveChannel(int channel) activatePianistMutePart(); } - void CConductor::outputPianoVolume() { CMidiEvent event; @@ -485,7 +480,7 @@ void CConductor::resetWantedChord() // switch modes if we are playing well enough (i.e. don't slow down if we are playing late) void CConductor::setFollowSkillAdvanced(bool enable) { - if (m_settings==0 || m_scoreWin == 0) + if (m_settings==nullptr || m_scoreWin == nullptr) return; m_settings-> setAdvancedMode(enable); @@ -507,7 +502,6 @@ void CConductor::setFollowSkillAdvanced(bool enable) m_stopPoint = (enable) ? m_cfg_stopPointAdvanced: m_cfg_stopPointBeginner ; } - void CConductor::findSplitPoint() { // find the split point @@ -637,7 +631,6 @@ void CConductor::expandPianistInput(CMidiEvent inputNote) CChord chordForOneHand; int notesFound = 0; - if (inputNote.type() == MIDI_NOTE_OFF) { chord = m_piano->removeSavedChord(inputNote.note()); @@ -691,7 +684,6 @@ void CConductor::pianistInput(CMidiEvent inputNote) // inputNote.transpose(+12); fixme - if (m_testWrongNoteSound) goodSound = false; @@ -702,7 +694,6 @@ void CConductor::pianistInput(CMidiEvent inputNote) if ( inputNote.channel() == MIDI_DRUM_CHANNEL) hand = (inputNote.note() >= MIDDLE_C) ? PB_PART_right : PB_PART_left; - if (inputNote.type() == MIDI_NOTE_ON) { @@ -867,7 +858,6 @@ void CConductor::pianistInput(CMidiEvent inputNote) playTrackEvent( inputNote ); } - /* // use the same channel for the right and wrong note int pianoSound = (goodSound == true) ? m_cfg_rightNoteSound : m_cfg_wrongNoteSound; @@ -1001,7 +991,6 @@ void CConductor::realTimeEngine(int mSecTicks) m_tempo.insertPlayingTicks(ticks); - if (m_pianistTiming > m_cfg_playZoneLate) { if (m_followPlayingTimeOut == false) @@ -1032,7 +1021,6 @@ void CConductor::realTimeEngine(int mSecTicks) m_tempo.adjustTempo(&ticks); - ticks = m_bar.addDeltaTime(ticks); if (seekingBarNumber()) @@ -1164,6 +1152,7 @@ void CConductor::init2(CScore * scoreWin, CSettings* settings) m_scoreWin = scoreWin; m_settings = settings; + setQSettings(settings); setFollowSkillAdvanced(false); @@ -1179,6 +1168,5 @@ void CConductor::init2(CScore * scoreWin, CSettings* settings) m_piano = m_scoreWin->getPianoObject(); } - rewind(); } diff --git a/src/Conductor.h b/src/Conductor.h index 62dccecc..aa46d1c2 100644 --- a/src/Conductor.h +++ b/src/Conductor.h @@ -63,14 +63,12 @@ typedef enum { PB_RHYTHM_TAP_drumsAndMellody } rhythmTapping_t; - typedef enum { PB_STOP_POINT_MODE_automatic, PB_STOP_POINT_MODE_onTheBeat, PB_STOP_POINT_MODE_afterTheBeat } stopPointMode_t; - /*! * @brief xxxxx. */ @@ -82,7 +80,6 @@ class CConductor : public CMidiDevice void init2(CScore * scoreWin, CSettings* settings); - //! add a midi event to be analysed and played void midiEventInsert(CMidiEvent event); @@ -207,7 +204,6 @@ class CConductor : public CMidiDevice stopPointMode_t cfg_stopPointMode; rhythmTapping_t cfg_rhythmTapping; - protected: CScore* m_scoreWin; CSettings* m_settings; @@ -223,7 +219,6 @@ class CConductor : public CMidiDevice void resetWantedChord(); void playWantedChord (CChord chord, CMidiEvent inputNote); - bool validatePianistNote( const CMidiEvent& inputNote); bool validatePianistChord(); @@ -231,10 +226,6 @@ class CConductor : public CMidiDevice int track2Channel(int track) {return m_track2ChannelLookUp[track];} - - - - private: void allSoundOff(); void resetAllChannels(); @@ -298,7 +289,6 @@ class CConductor : public CMidiDevice CTempo m_tempo; bool m_KeyboardLightsOn; - int m_pianistSplitPoint; // Defines which notes go in the base and treble clef bool m_followSkillAdvanced; int m_lastSound; diff --git a/src/Draw.cpp b/src/Draw.cpp index 53fbc28b..5d1a5833 100644 --- a/src/Draw.cpp +++ b/src/Draw.cpp @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -37,6 +37,45 @@ typedef unsigned char guint8; whichPart_t CDraw::m_displayHand; int CDraw::m_forceCompileRedraw; +CDraw::CDraw(CSettings* settings) +#ifndef NO_USE_FTGL + :font(nullptr) +#endif +{ +#ifndef NO_USE_FTGL + QStringList listPathFonts; + +#if defined(USE_FONT) + listPathFonts.push_back(USE_FONT); +#endif + listPathFonts.push_back(Util::dataDir()+"/fonts/DejaVuSans.ttf"); + listPathFonts.push_back(QApplication::applicationDirPath() + "/fonts/DejaVuSans.ttf"); + listPathFonts.push_back("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"); + listPathFonts.push_back("/usr/share/fonts/dejavu/DejaVuSans.ttf"); + listPathFonts.push_back("/usr/share/fonts/TTF/dejavu/DejaVuSans.ttf"); + listPathFonts.push_back("/usr/share/fonts/TTF/DejaVuSans.ttf"); + listPathFonts.push_back("/usr/share/fonts/truetype/DejaVuSans.ttf"); + listPathFonts.push_back("/usr/local/share/fonts/dejavu/DejaVuSans.ttf"); + + for (int i=0;iFaceSize(FONT_SIZE, FONT_SIZE); +#endif + m_settings = settings; + m_displayHand = PB_PART_both; + m_forceCompileRedraw = 1; + m_scrollProperties = &m_scrollPropertiesHorizontal; +} + void CDraw::oneLine(float x1, float y1, float x2, float y2) { glBegin(GL_LINES); @@ -245,7 +284,6 @@ void CDraw::drawNoteName(int midiNote, float x, float y, int type) glEnd(); break; - default: glBegin(GL_LINES); glVertex2f( 3 + x, -15 + y); // 1 @@ -315,7 +353,6 @@ void CDraw::checkAccidental(CSymbol symbol, float x, float y) accidental = symbol.getStavePos().getAccidental(); - if (symbol.getAccidentalModifer() == PB_ACCIDENTAL_MODIFER_suppress) accidental = 0; // Suppress the accidental if it is the same bar @@ -339,7 +376,6 @@ void CDraw::checkAccidental(CSymbol symbol, float x, float y) } } - bool CDraw::drawNote(CSymbol* symbol, float x, float y, CSlot* slot, CColor color, bool playable) { const float stemLength = 34.0; @@ -362,7 +398,6 @@ bool CDraw::drawNote(CSymbol* symbol, float x, float y, CSlot* slot, CColor colo else if (symbol->getType() <= PB_SYMBOL_quaver) stemFlagCount = 1; - if (symbol->getType() <= PB_SYMBOL_crotchet) solidNoteHead = true; @@ -784,8 +819,6 @@ void CDraw::drawSymbol(CSymbol symbol, float x) drawSymbol(symbol, x, symbol.getStavePos().getPosY()); } - - void CDraw::drawSlot(CSlot* slot) { CStavePos stavePos; @@ -800,7 +833,6 @@ void CDraw::drawSlot(CSlot* slot) } } - void CDraw::drawStaves(float startX, float endX) { int i; @@ -827,7 +859,6 @@ void CDraw::drawStaves(float startX, float endX) glEnd(); } - void CDraw::drawKeySignature(int key) { const int sharpLookUpRight[] = { 4, 1, 5, 2,-1, 3, 0}; diff --git a/src/Draw.h b/src/Draw.h index 3d9732fa..d3eb05cb 100644 --- a/src/Draw.h +++ b/src/Draw.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -49,7 +49,6 @@ #include "Symbol.h" - class CSettings; class CSlot; @@ -69,43 +68,8 @@ class CScrollProperties class CDraw : public QObject { public: - CDraw(CSettings* settings) -#ifndef NO_USE_FTGL - :font(nullptr) -#endif - { -#ifndef NO_USE_FTGL - QStringList listPathFonts; - #if defined(USE_FONT) - listPathFonts.push_back(USE_FONT); - #endif - listPathFonts.push_back(QString(PREFIX)+"/"+QString(DATA_DIR)+"/fonts/DejaVuSans.ttf"); - listPathFonts.push_back(QApplication::applicationDirPath() + "/fonts/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/dejavu/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/TTF/dejavu/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/TTF/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/truetype/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/local/share/fonts/dejavu/DejaVuSans.ttf"); - - for (int i=0;iFaceSize(FONT_SIZE, FONT_SIZE); -#endif - m_settings = settings; - m_displayHand = PB_PART_both; - m_forceCompileRedraw = 1; - m_scrollProperties = &m_scrollPropertiesHorizontal; - } + + CDraw(CSettings* settings); ~CDraw(){ #ifndef NO_USE_FTGL diff --git a/src/GlView.cpp b/src/GlView.cpp index f275c84d..189606a0 100644 --- a/src/GlView.cpp +++ b/src/GlView.cpp @@ -42,13 +42,12 @@ #define REDRAW_COUNT ((m_cfg_openGlOptimise >= 2) ? 1 : 2) // there are two gl buffers but redrawing once is best (set 2 with buggy gl drivers) - CGLView::CGLView(QtWindow* parent, CSettings* settings) : QGLWidget(parent) { m_qtWindow = parent; m_settings = settings; - m_rating = 0; + m_rating = nullptr; m_fullRedrawFlag = true; m_forcefullRedraw = 0; m_forceRatingRedraw = 0; @@ -127,7 +126,6 @@ void CGLView::paintGL() m_score->drawScroll(m_forcefullRedraw); BENCHMARK(10, "drawScroll"); - if (m_forcefullRedraw) m_forcefullRedraw--; BENCHMARK(11, "exit"); BENCHMARK_RESULTS(); @@ -144,7 +142,7 @@ void CGLView::drawTimeSignature() float x,y; int topNumber, bottomNumber; - if (m_song == 0) return; + if (m_song == nullptr) return; m_song->getTimeSig(&topNumber, &bottomNumber); if (topNumber == 0 ) return; @@ -179,7 +177,6 @@ void CGLView::drawAccurracyBar() return; m_forceRatingRedraw--; - float accuracy; CColor color; @@ -197,7 +194,6 @@ void CGLView::drawAccurracyBar() CDraw::drColor (Cfg::backgroundColor()); glRectf(x + width * accuracy, y - lineWidth, x + width, y + lineWidth); - glLineWidth (1); CDraw::drColor (CColor(1.0, 1.0, 1.0)); glBegin(GL_LINE_LOOP); @@ -210,7 +206,7 @@ void CGLView::drawAccurracyBar() void CGLView::drawDisplayText() { - if (m_rating == 0) + if (m_rating == nullptr) { m_rating = m_song->getRating(); return; // don't run this func the first time it is called @@ -328,7 +324,6 @@ void CGLView::initializeGL() glShadeModel (GL_FLAT); //glEnable(GL_TEXTURE_2D); // Enable Texture Mapping - //from initCheck(); glShadeModel(GL_FLAT); //glEnable(GL_DEPTH_TEST); @@ -364,7 +359,6 @@ void CGLView::initializeGL() m_song->regenerateChordQueue(); - // increased the tick time for Midi handling m_timer.start(Cfg::tickRate, this ); @@ -393,7 +387,6 @@ void CGLView::timerEvent(QTimerEvent *event) return; } - updateMidiTask(); BENCHMARK(1, "m_song task"); diff --git a/src/GlView.h b/src/GlView.h index 4318060d..31890d22 100644 --- a/src/GlView.h +++ b/src/GlView.h @@ -71,7 +71,6 @@ class CGLView : public QGLWidget//, RtTimer void drawBarNumber(); void updateMidiTask(); - QColor m_backgroundColor; QtWindow* m_qtWindow; // The parent Window CSettings* m_settings; diff --git a/src/GuiKeyboardSetupDialog.cpp b/src/GuiKeyboardSetupDialog.cpp index 2c4b3eb9..0928ae50 100644 --- a/src/GuiKeyboardSetupDialog.cpp +++ b/src/GuiKeyboardSetupDialog.cpp @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -36,7 +36,7 @@ GuiKeyboardSetupDialog::GuiKeyboardSetupDialog(QWidget *parent) : QDialog(parent) { - m_song = 0; + m_song = nullptr; setupUi(this); setWindowTitle(tr("Piano Keyboard Settings")); } diff --git a/src/GuiKeyboardSetupDialog.h b/src/GuiKeyboardSetupDialog.h index ac84b605..9369b87e 100644 --- a/src/GuiKeyboardSetupDialog.h +++ b/src/GuiKeyboardSetupDialog.h @@ -34,7 +34,6 @@ #include "Song.h" #include "Settings.h" - #include "ui_GuiKeyboardSetupDialog.h" class GuiKeyboardSetupDialog : public QDialog, private Ui::GuiKeyboardSetupDialog @@ -50,7 +49,6 @@ private slots: void accept(); void reject(); - void on_rightTestButton_pressed() { m_song->testWrongNoteSound(false); m_song->pcKeyPress( 'x', true); diff --git a/src/GuiLoopingPopup.cpp b/src/GuiLoopingPopup.cpp index 8548e055..94f03ed4 100644 --- a/src/GuiLoopingPopup.cpp +++ b/src/GuiLoopingPopup.cpp @@ -33,12 +33,11 @@ GuiLoopingPopup::GuiLoopingPopup(QWidget *parent) : QWidget(parent) { setupUi(this); - m_song = 0; + m_song = nullptr; setWindowTitle(tr("Continuous Looping")); setWindowFlags(Qt::Popup); } - void GuiLoopingPopup::init(CSong* song) { m_song = song; @@ -54,7 +53,6 @@ void GuiLoopingPopup::updateInfo() loopingText->setText(tr("Repeat Bar is disabled")); } - void GuiLoopingPopup::on_loopBarsSpin_valueChanged(double bars) { if (!m_song) return; diff --git a/src/GuiLoopingPopup.h b/src/GuiLoopingPopup.h index 4678dc2f..525adf02 100644 --- a/src/GuiLoopingPopup.h +++ b/src/GuiLoopingPopup.h @@ -29,12 +29,10 @@ #ifndef __GUILOOPINGPOPUP_H__ #define __GUILOOPINGPOPUP_H__ - #include #include "Song.h" - #include "ui_GuiLoopingPopup.h" class CGLView; diff --git a/src/GuiMidiSetupDialog.cpp b/src/GuiMidiSetupDialog.cpp old mode 100644 new mode 100755 index 8a345486..8f061eab --- a/src/GuiMidiSetupDialog.cpp +++ b/src/GuiMidiSetupDialog.cpp @@ -5,7 +5,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -28,12 +28,15 @@ #include "GuiMidiSetupDialog.h" +#if EXPERIMENTAL_USE_FLUIDSYNTH +#include "MidiDeviceFluidSynth.h" +#endif GuiMidiSetupDialog::GuiMidiSetupDialog(QWidget *parent) : QDialog(parent) { - m_song = 0; - m_settings = 0; + m_song = nullptr; + m_settings = nullptr; setupUi(this); m_latencyFix = 0; m_latencyChanged = false; @@ -53,67 +56,84 @@ void GuiMidiSetupDialog::init(CSong* song, CSettings* settings) // Check inputs. QString portName; - int i = 0; m_latencyFix = m_song->getLatencyFix(); - midiInputCombo->addItem(tr("None (PC Keyboard)")); - - midiInputCombo->addItems(song->getMidiPortList(CMidiDevice::MIDI_INPUT)); - - - // Check outputs. - midiOutputCombo->addItem(tr("None")); - midiOutputCombo->addItems(song->getMidiPortList(CMidiDevice::MIDI_OUTPUT)); - i = midiInputCombo->findText(m_settings->value("Midi/Input").toString()); - if (i!=-1) - midiInputCombo->setCurrentIndex(i); - i = midiOutputCombo->findText(m_settings->value("Midi/Output").toString()); - if (i!=-1) - midiOutputCombo->setCurrentIndex(i); + refreshMidiInputCombo(); + refreshMidiOutputCombo(); + masterGainSpin->setValue(40); + reverbCheck->setChecked(false); + chorusCheck->setChecked(false); - sampleRateCombo->addItem("44100"); - sampleRateCombo->addItem("22050"); - sampleRateCombo->setValidator(new QIntValidator(0, 999999, this)); + sampleRateCombo->addItems({"22050", "44100","48000", "88200","96000"}); + sampleRateCombo->setValidator(new QIntValidator(22050, 96000, this)); + bufferSizeCombo->addItems({"64", "128", "512", "1024", "2024", "4096","8192"}); + bufferSizeCombo->setValidator(new QIntValidator(64, 8192, this)); + bufferSizeCombo->setCurrentIndex(1); + bufferCountCombo->addItems({"2","4", "8","16", "32", "64"}); + bufferCountCombo->setValidator(new QIntValidator(2, 64, this)); + bufferCountCombo->setCurrentIndex(1); updateMidiInfoText(); audioDriverCombo->clear(); - audioDriverCombo->addItem(""); - audioDriverCombo->addItem("alsa"); - audioDriverCombo->addItem("file"); - audioDriverCombo->addItem("jack"); - audioDriverCombo->addItem("oss"); - audioDriverCombo->addItem("portaudio"); - audioDriverCombo->addItem("pulseaudio"); - - setDefaultFluidSynth(); - - connect(audioDriverCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(on_audioDriverCombo_currentIndexChanged(int))); - - if (m_settings->getFluidSoundFontNames().size()!=0){ - masterGainSpin->setValue(m_settings->value("FluidSynth/masterGainSpin","0.2").toDouble()); - bufferSizeSpin->setValue(m_settings->value("FluidSynth/bufferSizeSpin","").toInt()); - bufferCountsSpin->setValue(m_settings->value("FluidSynth/bufferCountsSpin","").toInt()); + +#if defined (Q_OS_LINUX) + audioDriverCombo->addItems({"alsa","pulseaudio"}); +#elif defined (Q_OS_UNIX) || defined (Q_OS_DARWIN) + audioDriverCombo->addItems({"pulseaudio"}); +#endif + + if (m_settings->getFluidSoundFontNames().size()>0){ + masterGainSpin->setValue(m_settings->value("FluidSynth/masterGainSpin","40").toInt()); reverbCheck->setChecked(m_settings->value("FluidSynth/reverbCheck","false").toBool()); chorusCheck->setChecked(m_settings->value("FluidSynth/chorusCheck","false").toBool()); + setComboFromSetting(audioDriverCombo, "FluidSynth/audioDriverCombo","alsa"); + setComboFromSetting(sampleRateCombo, "FluidSynth/sampleRateCombo","22050"); + setComboFromSetting(bufferSizeCombo, "FluidSynth/bufferSizeCombo","128"); + setComboFromSetting(bufferCountCombo, "FluidSynth/bufferCountCombo","4"); + } - audioDeviceLineEdit->setText(m_settings->value("FluidSynth/audioDeviceLineEdit","").toString()); - for (int i=0;icount();i++){ - if (audioDriverCombo->itemText(i)==m_settings->value("FluidSynth/audioDriverCombo","").toString()){ - audioDriverCombo->setCurrentIndex(i); - break; - } - } - sampleRateCombo->setCurrentText(m_settings->value("FluidSynth/sampleRateCombo").toString()); + updateFluidInfoStatus(); +} + +void GuiMidiSetupDialog::setComboFromSetting(QComboBox *combo, const QString &key, const QVariant &defaultValue) { + QString value = m_settings->value(key, defaultValue).toString(); + int index = combo->findText(value); + + if ( index != -1 ) { // -1 for not found + combo->setCurrentIndex(index); + } else { + combo->setCurrentText(value); } +} - updateFluidInfoText(); +void GuiMidiSetupDialog::refreshMidiInputCombo() +{ + int i = 0; + midiInputCombo->clear(); + midiInputCombo->addItem(tr("None (PC Keyboard)")); + midiInputCombo->addItems(m_song->getMidiPortList(CMidiDevice::MIDI_INPUT)); + i = midiInputCombo->findText(m_settings->value("Midi/Input").toString()); + if (i!=-1) + midiInputCombo->setCurrentIndex(i); } -void GuiMidiSetupDialog::updateMidiInfoText() +void GuiMidiSetupDialog::refreshMidiOutputCombo() { + int i = 0; + // Check outputs. + midiOutputCombo->clear(); + midiOutputCombo->addItem(tr("None")); + midiOutputCombo->addItems(m_song->getMidiPortList(CMidiDevice::MIDI_OUTPUT)); + i = midiOutputCombo->findText(m_settings->value("Midi/Output").toString()); + if (i!=-1) + midiOutputCombo->setCurrentIndex(i); +} + +void GuiMidiSetupDialog::updateMidiInfoText() +{ midiInfoText->clear(); if (midiInputCombo->currentIndex() == 0) @@ -135,7 +155,7 @@ void GuiMidiSetupDialog::updateMidiInfoText() latencyFixLabel->setText(tr("%1 mSec").arg(m_latencyFix)); - updateFluidInfoText(); + updateFluidInfoStatus(); } void GuiMidiSetupDialog::on_midiInputCombo_activated (int index) @@ -168,9 +188,23 @@ void GuiMidiSetupDialog::on_latencyFixButton_clicked ( bool checked ) } } - void GuiMidiSetupDialog::accept() { + // save FluidSynth settings + if (m_settings->getFluidSoundFontNames().size()==0){ + m_settings->remove("FluidSynth"); + }else{ + m_settings->setValue("FluidSynth/masterGainSpin",masterGainSpin->value()); + m_settings->setValue("FluidSynth/bufferSizeCombo", bufferSizeCombo->currentText()); + m_settings->setValue("FluidSynth/bufferCountCombo", bufferCountCombo->currentText()); + m_settings->setValue("FluidSynth/reverbCheck",reverbCheck->isChecked()); + m_settings->setValue("FluidSynth/chorusCheck",chorusCheck->isChecked()); + m_settings->setValue("FluidSynth/audioDriverCombo",audioDriverCombo->currentText()); + m_settings->setValue("FluidSynth/sampleRateCombo",sampleRateCombo->currentText()); + } + + m_settings->saveSoundFontSettings(); + m_settings->setValue("Midi/Input", midiInputCombo->currentText()); m_song->openMidiPort(CMidiDevice::MIDI_INPUT, midiInputCombo->currentText() ); if (midiInputCombo->currentText().startsWith(tr("None"))) @@ -210,132 +244,83 @@ void GuiMidiSetupDialog::accept() m_latencyChanged = false; } - - - // save FluidSynth settings - if (m_settings->getFluidSoundFontNames().size()==0){ - m_settings->remove("FluidSynth"); - }else{ - m_settings->setValue("FluidSynth/masterGainSpin",QString::number(masterGainSpin->value(),'f',2)); - m_settings->setValue("FluidSynth/bufferSizeSpin",bufferSizeSpin->value()); - m_settings->setValue("FluidSynth/bufferCountsSpin",bufferCountsSpin->value()); - m_settings->setValue("FluidSynth/reverbCheck",reverbCheck->isChecked()); - m_settings->setValue("FluidSynth/chorusCheck",chorusCheck->isChecked()); - m_settings->setValue("FluidSynth/audioDriverCombo",audioDriverCombo->currentText()); - if (audioDriverCombo->currentText()=="alsa"){ - m_settings->setValue("FluidSynth/audioDeviceLineEdit",audioDeviceLineEdit->text()); - }else{ - m_settings->setValue("FluidSynth/audioDeviceLineEdit",""); - } - m_settings->setValue("FluidSynth/sampleRateCombo",sampleRateCombo->currentText()); - } - this->QDialog::accept(); } - -void GuiMidiSetupDialog::updateFluidInfoText() +void GuiMidiSetupDialog::updateFluidInfoStatus() { QStringList soundFontNames = m_settings->getFluidSoundFontNames(); soundFontList->clear(); - for (int i=0; i < soundFontNames.count(); i++) + if (!m_settings->getFluidSoundFontNames().isEmpty()) { - int n = soundFontNames.at(i).lastIndexOf("/"); - soundFontList->addItem(soundFontNames.at(i).mid(n+1)); + QFileInfo fileInfo = QFileInfo(m_settings->getFluidSoundFontNames().at(0)); + if (fileInfo.exists()) + { + soundFontList->addItem(fileInfo.fileName()); + } } - bool fontLoaded = (soundFontList->count() > 0) ? true : false; - fluidRemoveButton->setEnabled(fontLoaded); + fluidClearButton->setEnabled(fontLoaded); - fluidAddButton->setEnabled(soundFontList->count() < 2 ? true : false); + fluidLoadButton->setEnabled(soundFontList->count() < 2 ? true : false); fluidSettingsGroupBox->setEnabled(fontLoaded); } -void GuiMidiSetupDialog::setDefaultFluidSynth(){ - masterGainSpin->setValue(0.4); - bufferSizeSpin->setValue(128); - bufferCountsSpin->setValue(6); - reverbCheck->setChecked(false); - chorusCheck->setChecked(false); - #if defined (Q_OS_UNIX) || defined (Q_OS_DARWIN) - audioDriverCombo->setCurrentIndex(3); - audioDeviceLineEdit->setText(""); - #endif - #if defined (Q_OS_LINUX) - audioDriverCombo->setCurrentIndex(1); - audioDeviceLineEdit->setText("plughw:0"); - #endif - sampleRateCombo->setCurrentIndex(0); +void GuiMidiSetupDialog::on_fluidLoadButton_clicked ( bool checked ) +{ +#if EXPERIMENTAL_USE_FLUIDSYNTH + QString lastSoundFont = m_settings->value("LastSoundFontDir","").toString(); -} + if (lastSoundFont.isEmpty()) { + lastSoundFont = QDir::homePath(); -void GuiMidiSetupDialog::on_fluidAddButton_clicked ( bool checked ) -{ - QStringList possibleSoundFontFolders; + QStringList possibleSoundFontFolders; #if defined (Q_OS_LINUX) || defined (Q_OS_UNIX) - possibleSoundFontFolders.push_back("/usr/share/soundfonts"); - possibleSoundFontFolders.push_back("/usr/share/sounds/sf2"); + possibleSoundFontFolders.push_back("/usr/share/soundfonts"); + possibleSoundFontFolders.push_back("/usr/share/sounds/sf2"); #endif - - QString lastSoundFont = QDir::homePath(); - - for (QString soundFontFolder:possibleSoundFontFolders){ - QDir dir(soundFontFolder); - if (dir.exists()){ - lastSoundFont=soundFontFolder; - break; + for (QString soundFontFolder:possibleSoundFontFolders){ + QDir dir(soundFontFolder); + if (dir.exists()){ + lastSoundFont=soundFontFolder; + break; + } } } + QFileInfo soundFontInfo = QFileDialog::getOpenFileName(this,tr("Open SoundFont File for fluidsynth"), + lastSoundFont, tr("SoundFont Files (*.sf2 *.sf3)")); + if (!soundFontInfo.isFile()) return; - QString soundFontName = QFileDialog::getOpenFileName(this,tr("Open SoundFont2 File for fluidsynth"), - lastSoundFont, tr("SoundFont2 Files (*.sf2)")); - if (soundFontName.isEmpty()) return; - - m_settings->addFluidSoundFontName(soundFontName); - - updateFluidInfoText(); - - m_settings->setValue("FluidSynth/SoundFont2_1",""); - m_settings->setValue("FluidSynth/SoundFont2_2",""); - for (int i=0;igetFluidSoundFontNames().size();i++){ - m_settings->setValue("FluidSynth/SoundFont2_"+QString::number(1+i),m_settings->getFluidSoundFontNames().at(i)); - }} - -void GuiMidiSetupDialog::on_fluidRemoveButton_clicked ( bool checked ){ - if (soundFontList->currentRow()==-1) return; - - QStringList soundFontNames = m_settings->getFluidSoundFontNames(); - - m_settings->removeFluidSoundFontName(soundFontNames.at(soundFontList->currentRow())); - soundFontList->removeItemWidget(soundFontList->currentItem()); + m_settings->setFluidSoundFontNames(soundFontInfo.filePath()); + m_settings->setValue("LastSoundFontDir", soundFontInfo.path()); - updateFluidInfoText(); - - m_settings->setValue("FluidSynth/SoundFont2_1",""); - m_settings->setValue("FluidSynth/SoundFont2_2",""); - for (int i=0;igetFluidSoundFontNames().size();i++){ - m_settings->setValue("FluidSynth/SoundFont2_"+QString::number(1+i),m_settings->getFluidSoundFontNames().at(i)); - } - - if (m_settings->getFluidSoundFontNames().size()==0){ - setDefaultFluidSynth(); - m_settings->remove("Fluid"); + if (m_settings->isNewSoundFontEntered()) + { + int i = midiOutputCombo->findText(CMidiDeviceFluidSynth::getFluidInternalName()); + if (i==-1) + midiOutputCombo->addItem(CMidiDeviceFluidSynth::getFluidInternalName()); + i = midiOutputCombo->findText(CMidiDeviceFluidSynth::getFluidInternalName()); + if (i!=-1) + midiOutputCombo->setCurrentIndex(i); } - + updateFluidInfoStatus(); + updateMidiInfoText(); +#endif } -void GuiMidiSetupDialog::on_audioDriverCombo_currentIndexChanged(int index){ - if (audioDriverCombo->currentText()=="alsa"){ - audioDeviceLineEdit->setEnabled(true); - if (audioDeviceLineEdit->text().isEmpty()){ - audioDeviceLineEdit->setText("plughw:0"); - } - }else{ - audioDeviceLineEdit->setEnabled(false); - audioDeviceLineEdit->setText(""); +void GuiMidiSetupDialog::on_fluidClearButton_clicked( bool checked ){ +#if EXPERIMENTAL_USE_FLUIDSYNTH + m_settings->clearFluidSoundFontNames(); + int i = midiOutputCombo->findText(CMidiDeviceFluidSynth::getFluidInternalName()); + if (i>=0) + { + midiOutputCombo->removeItem(i); + midiOutputCombo->setCurrentIndex(0); } + updateFluidInfoStatus(); +#endif } diff --git a/src/GuiMidiSetupDialog.h b/src/GuiMidiSetupDialog.h index 654a6c2e..4f848a5e 100644 --- a/src/GuiMidiSetupDialog.h +++ b/src/GuiMidiSetupDialog.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -50,15 +50,15 @@ private slots: void on_midiInputCombo_activated (int index); void on_midiOutputCombo_activated (int index); void on_latencyFixButton_clicked ( bool checked ); - void on_fluidAddButton_clicked ( bool checked ); - void on_fluidRemoveButton_clicked ( bool checked ); - void on_audioDriverCombo_currentIndexChanged ( int index ); + void on_fluidLoadButton_clicked ( bool checked ); + void on_fluidClearButton_clicked ( bool checked ); private: - + void setComboFromSetting(QComboBox *combo, const QString &key, const QVariant &defaultValue = QVariant()); void updateMidiInfoText(); - void updateFluidInfoText(); - void setDefaultFluidSynth(); + void refreshMidiInputCombo(); + void refreshMidiOutputCombo(); + void updateFluidInfoStatus(); CSettings* m_settings; CSong* m_song; int m_latencyFix; diff --git a/src/GuiMidiSetupDialog.ui b/src/GuiMidiSetupDialog.ui index bbed1d26..9c1c364b 100644 --- a/src/GuiMidiSetupDialog.ui +++ b/src/GuiMidiSetupDialog.ui @@ -6,8 +6,8 @@ 0 0 - 535 - 439 + 562 + 408 @@ -20,7 +20,7 @@ QTabWidget::Rounded - 2 + 1 @@ -130,30 +130,50 @@ FluidSynth + + + + Qt::Vertical + + + + 20 + 40 + + + + - Sound Fonts + Sound Font - + + + + 0 + 0 + + + - + - Add + Load - + - Remove + Clear @@ -182,132 +202,124 @@ Settings - - - - - - - Chorus - - - - - - - Sample Rate: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Audio Driver: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Audio Device: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - true - - - - - - - Buffer Counts: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 150 - 0 - - - - - - - - Master Gain: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 999999999 - - - - - - - Reverb - - - - - - - Buffer Size: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - 999999999 - - - - - - - 10.000000000000000 - - - 0.200000000000000 - - - - + + + + + Reverb + + + + + + + Chorus + + + + + + + true + + + + + + + 200 + + + 5 + + + 100 + + + + + + + Sample Rate: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Buffer Count: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Master Gain: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Buffer Size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Audio Driver: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + true + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -369,8 +381,8 @@ accept() - 248 - 254 + 257 + 429 157 @@ -385,8 +397,8 @@ reject() - 316 - 260 + 325 + 429 286 diff --git a/src/GuiPreferencesDialog.cpp b/src/GuiPreferencesDialog.cpp index 5d66ad48..4d12a714 100644 --- a/src/GuiPreferencesDialog.cpp +++ b/src/GuiPreferencesDialog.cpp @@ -5,7 +5,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -36,9 +36,9 @@ GuiPreferencesDialog::GuiPreferencesDialog(QWidget *parent) : QDialog(parent) { setupUi(this); - m_song = 0; - m_settings = 0; - m_glView = 0; + m_song = nullptr; + m_settings = nullptr; + m_glView = nullptr; setWindowTitle(tr("Preferences")); followStopPointCombo->addItem(tr("Automatic (Recommended)")); followStopPointCombo->addItem(tr("On the Beat")); @@ -52,7 +52,7 @@ void GuiPreferencesDialog::initLanguageCombo(){ QFile fileTestLocale(localeDirectory); if (!fileTestLocale.exists()){ - localeDirectory=QString(PREFIX)+"/"+QString(DATA_DIR)+"/translations/"; + localeDirectory=Util::dataDir()+"/translations/"; #ifdef Q_OS_DARWIN localeDirectory=QApplication::applicationDirPath() + "/../Resources/translations/"; #endif @@ -80,13 +80,17 @@ void GuiPreferencesDialog::initLanguageCombo(){ // loading languages languageCombo->clear(); + languageCombo->addItem("<"+tr("System Language")+">",""); languageCombo->addItem("English","en"); + if (m_settings->value("General/lang","").toString()=="en"){ + languageCombo->setCurrentIndex(languageCombo->count()-1); + } QDir dirLang(localeDirectory); dirLang.setFilter(QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot); QFileInfoList listLang = dirLang.entryInfoList(); - for (int i = 0; i < listLang.size(); ++i) { - QFileInfo fileInfo = listLang.at(i); + for (QFileInfo fileInfo : listLang) { + QRegExp rx("(pianobooster_)(.*)(.qm)"); if (rx.indexIn(fileInfo.fileName())!=-1){ QString lang_code = rx.cap(2); @@ -119,7 +123,7 @@ void GuiPreferencesDialog::initLanguageCombo(){ } languageCombo->addItem(languageName,lang_code); - if (m_settings->value("General/lang",QLocale::system().bcp47Name()).toString()==lang_code){ + if (m_settings->value("General/lang","").toString()==lang_code){ languageCombo->setCurrentIndex(languageCombo->count()-1); } } @@ -163,7 +167,7 @@ void GuiPreferencesDialog::accept() m_song->cfg_stopPointMode = static_cast (followStopPointCombo->currentIndex()); m_settings->setValue("Score/StopPointMode", m_song->cfg_stopPointMode ); - m_settings->setValue("General/lang",languageCombo->currentData().toString()); + m_settings->setValue("General/lang", languageCombo->currentData().toString()); m_song->refreshScroll(); diff --git a/src/GuiPreferencesDialog.h b/src/GuiPreferencesDialog.h index 0967e3ad..f4746111 100644 --- a/src/GuiPreferencesDialog.h +++ b/src/GuiPreferencesDialog.h @@ -29,13 +29,11 @@ #ifndef __GUIPREFERENCESDIALOG_H__ #define __GUIPREFERENCESDIALOG_H__ - #include #include "Song.h" #include "Settings.h" - #include "ui_GuiPreferencesDialog.h" class CGLView; diff --git a/src/GuiSidePanel.cpp b/src/GuiSidePanel.cpp index efc98f1b..4a7275ea 100644 --- a/src/GuiSidePanel.cpp +++ b/src/GuiSidePanel.cpp @@ -33,21 +33,17 @@ #include "TrackList.h" #include "Conductor.h" - GuiSidePanel::GuiSidePanel(QWidget *parent, CSettings* settings) : QWidget(parent), m_parent(parent) { - m_song = 0; - m_score = 0; - m_trackList = 0; - m_topBar = 0; + m_song = nullptr; + m_score = nullptr; + m_trackList = nullptr; + m_topBar = nullptr; m_settings = settings; setupUi(this); - - } - void GuiSidePanel::init(CSong* songObj, CTrackList* trackList, GuiTopBar* topBar) { m_song = songObj; @@ -87,7 +83,6 @@ void GuiSidePanel::init(CSong* songObj, CTrackList* trackList, GuiTopBar* topBar on_rhythmTappingCombo_activated(m_settings->value("SidePanel/rhythmTapping",0).toInt()); rhythmTappingCombo->setCurrentIndex(m_song->cfg_rhythmTapping); - repeatSong->setChecked(m_settings->value("SidePanel/repeatSong",false).toBool()); connect(repeatSong,SIGNAL(stateChanged(int)),this,SLOT(on_repeatSong_released())); @@ -110,9 +105,6 @@ void GuiSidePanel::init(CSong* songObj, CTrackList* trackList, GuiTopBar* topBar connect(act, SIGNAL(triggered()), this, SLOT(clearTrackPart())); trackListWidget->setContextMenuPolicy(Qt::ActionsContextMenu); - - - } void GuiSidePanel::refresh() { @@ -124,7 +116,6 @@ void GuiSidePanel::refresh() { trackListWidget->addItems(m_trackList->getAllChannelProgramNames()); - trackListWidget->setCurrentRow(m_trackList->getActiveItemIndex()); for (int i = 0; i < trackListWidget->count(); i++) @@ -264,7 +255,6 @@ void GuiSidePanel::updateTranslate(){ listActionsRetranslateUi[w]=m; } - } // retranslate UI @@ -289,7 +279,6 @@ void GuiSidePanel::updateTranslate(){ retranslateUi(this); - // --- smart resize panel --- // int maxDeltaWidth=0; this->setMaximumWidth(300); // default @@ -310,7 +299,6 @@ void GuiSidePanel::updateTranslate(){ this->setMaximumWidth(300+maxDeltaWidth); } - void GuiSidePanel::on_rhythmTappingCombo_activated (int index) { m_settings->setValue("SidePanel/rhythmTapping",index); diff --git a/src/GuiSidePanel.h b/src/GuiSidePanel.h index f0761d53..6a3cf9e6 100644 --- a/src/GuiSidePanel.h +++ b/src/GuiSidePanel.h @@ -143,7 +143,6 @@ private slots: autoSetMuteYourPart(); } - void on_rhythmTappingCombo_activated (int index); void on_muteYourPartCheck_toggled (bool checked) @@ -169,7 +168,6 @@ private slots: m_song->refreshScroll(); } - void clearTrackPart() { int row = trackListWidget->currentRow(); m_trackList->setActiveHandsIndex( -1, -1); @@ -177,7 +175,6 @@ private slots: m_song->refreshScroll(); } - private: void autoSetMuteYourPart(); diff --git a/src/GuiSongDetailsDialog.cpp b/src/GuiSongDetailsDialog.cpp index a04c9e19..8c84e760 100644 --- a/src/GuiSongDetailsDialog.cpp +++ b/src/GuiSongDetailsDialog.cpp @@ -33,13 +33,12 @@ GuiSongDetailsDialog::GuiSongDetailsDialog(QWidget *parent) : QDialog(parent) { setupUi(this); - m_song = 0; - m_settings = 0; - m_trackList = 0; + m_song = nullptr; + m_settings = nullptr; + m_trackList = nullptr; setWindowTitle(tr("Song Details")); } - void GuiSongDetailsDialog::init(CSong* song, CSettings* settings) { m_song = song; @@ -56,7 +55,6 @@ void GuiSongDetailsDialog::init(CSong* song, CSettings* settings) } - void GuiSongDetailsDialog::updateSongInfoText() { QString str; @@ -79,7 +77,6 @@ void GuiSongDetailsDialog::updateSongInfoText() buttonBox->button(QDialogButtonBox::Ok)->setEnabled(activateOkButton); } - void GuiSongDetailsDialog::on_leftHandChannelCombo_activated (int index) { updateSongInfoText(); diff --git a/src/GuiSongDetailsDialog.h b/src/GuiSongDetailsDialog.h index a948c6cd..e7c15541 100644 --- a/src/GuiSongDetailsDialog.h +++ b/src/GuiSongDetailsDialog.h @@ -29,13 +29,11 @@ #ifndef __GUISONGDETAILSDIALOG_H__ #define __GUISONGDETAILSDIALOG_H__ - #include #include "Song.h" #include "Settings.h" - #include "ui_GuiSongDetailsDialog.h" class CGLView; diff --git a/src/GuiTopBar.cpp b/src/GuiTopBar.cpp index e886807a..4ac8b099 100644 --- a/src/GuiTopBar.cpp +++ b/src/GuiTopBar.cpp @@ -32,13 +32,12 @@ #include "TrackList.h" #include "GuiLoopingPopup.h" - GuiTopBar::GuiTopBar(QWidget *parent, CSettings* settings) : QWidget(parent), m_settings(settings) { m_atTheEndOfTheSong = false; - m_song = 0; + m_song = nullptr; setupUi(this); parent->installEventFilter(this); @@ -206,7 +205,6 @@ void GuiTopBar::updateTranslate(){ retranslateUi(this); } - void GuiTopBar::on_playButton_clicked(bool clicked) { if (!m_song) return; @@ -246,8 +244,6 @@ void GuiTopBar::on_startBarSpin_valueChanged(double bar) m_song->setPlayFromBar( bar); } - - void GuiTopBar::on_saveBarButton_clicked(bool clicked) { if (!m_song) return; @@ -255,7 +251,6 @@ void GuiTopBar::on_saveBarButton_clicked(bool clicked) startBarSpin->setValue(barNumber); } - void GuiTopBar::on_loopingBarsPopupButton_clicked(bool clicked) { if (!m_song) return; diff --git a/src/GuiTopBar.h b/src/GuiTopBar.h index b0094752..25fef586 100644 --- a/src/GuiTopBar.h +++ b/src/GuiTopBar.h @@ -74,7 +74,6 @@ private slots: void on_saveBarButton_clicked(bool clicked); void on_loopingBarsPopupButton_clicked(bool clicked); - private: bool eventFilter(QObject *obj, QEvent *event); void reloadKeyCombo(bool major); diff --git a/src/Merge.cpp b/src/Merge.cpp index f2dfaccf..c6e92768 100644 --- a/src/Merge.cpp +++ b/src/Merge.cpp @@ -28,9 +28,6 @@ #include "Merge.h" - - - void CMerge::initMergedEvents() { int i; @@ -42,16 +39,15 @@ void CMerge::initMergedEvents() } } - int CMerge::nextMergedEvent() { int nearestIndex = 0; - + int i; CMidiEvent* nearestEvent; int deltaTime; - nearestEvent = 0; + nearestEvent = nullptr; // find the first active slot for( i = 0; i < m_mergeEvents.size(); i++) { @@ -62,7 +58,7 @@ int CMerge::nextMergedEvent() break; } } - if (nearestEvent == 0) + if (nearestEvent == nullptr) return 0; // now search the remaining active slots @@ -89,11 +85,10 @@ int CMerge::nextMergedEvent() if (m_mergeEvents[i].type() != MIDI_NONE) m_mergeEvents[i].addDeltaTime( deltaTime ); } - + return nearestIndex; } - CMidiEvent CMerge::readMidiEvent() { int mergeIdx; diff --git a/src/MidiDevice.cpp b/src/MidiDevice.cpp index 0d597b8f..779965ba 100644 --- a/src/MidiDevice.cpp +++ b/src/MidiDevice.cpp @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman, all rights reserved This file is part of the PianoBooster application @@ -32,9 +32,6 @@ #include "MidiDeviceFluidSynth.h" #endif - - - CMidiDevice::CMidiDevice() { m_rtMidiDevice = new CMidiDeviceRt(); @@ -54,10 +51,12 @@ CMidiDevice::~CMidiDevice() #endif } - - void CMidiDevice::init() { +#if EXPERIMENTAL_USE_FLUIDSYNTH + m_fluidSynthMidiDevice->setQSettings(qsettings); +#endif + } QStringList CMidiDevice::getMidiPortList(midiType_t type) @@ -108,29 +107,27 @@ bool CMidiDevice::openMidiPort(midiType_t type, QString portName) void CMidiDevice::closeMidiPort(midiType_t type, int index) { - if (m_selectedMidiOutputDevice == 0) + if (m_selectedMidiOutputDevice == nullptr) return; m_selectedMidiOutputDevice->closeMidiPort(type, index); - - m_selectedMidiOutputDevice = 0; + m_selectedMidiOutputDevice = nullptr; } //! add a midi event to be played immediately void CMidiDevice::playMidiEvent(const CMidiEvent & event) { - if (m_selectedMidiOutputDevice == 0) + if (m_selectedMidiOutputDevice == nullptr) return; m_selectedMidiOutputDevice->playMidiEvent(event); //event.printDetails(); // useful for debugging } - // Return the number of events waiting to be read from the midi device int CMidiDevice::checkMidiInput() { - if (m_selectedMidiInputDevice == 0) + if (m_selectedMidiInputDevice == nullptr) return 0; return m_selectedMidiInputDevice->checkMidiInput(); @@ -142,7 +139,6 @@ CMidiEvent CMidiDevice::readMidiInput() return m_selectedMidiInputDevice->readMidiInput(); } - int CMidiDevice::midiSettingsSetStr(QString name, QString str) { if (m_selectedMidiOutputDevice) diff --git a/src/MidiDevice.h b/src/MidiDevice.h index e043381d..9ce5bc73 100644 --- a/src/MidiDevice.h +++ b/src/MidiDevice.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -63,7 +63,6 @@ class CMidiDevice : public CMidiDeviceBase virtual int midiSettingsGetInt(QString name); private: - CMidiDeviceBase* m_rtMidiDevice; #if EXPERIMENTAL_USE_FLUIDSYNTH CMidiDeviceBase* m_fluidSynthMidiDevice; diff --git a/src/MidiDeviceBase.h b/src/MidiDeviceBase.h index 413ea64b..7b3404dc 100644 --- a/src/MidiDeviceBase.h +++ b/src/MidiDeviceBase.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -28,19 +28,16 @@ #ifndef __MIDI_DEVICE_BASE_H__ #define __MIDI_DEVICE_BASE_H__ +#include #include +#include #include "Util.h" #include "Cfg.h" -/*! - * @brief xxxxx. - */ - #include "MidiEvent.h" - -class CMidiDeviceBase +class CMidiDeviceBase : public QObject { public: virtual void init() = 0; @@ -62,12 +59,15 @@ class CMidiDeviceBase virtual QString midiSettingsGetStr(QString name) = 0; virtual double midiSettingsGetNum(QString name) = 0; virtual int midiSettingsGetInt(QString name) = 0; + void setQSettings(QSettings* settings) {qsettings = settings;} //you should always have a virtual destructor when using virtual functions virtual ~CMidiDeviceBase() {}; - +protected: + QSettings* qsettings = nullptr; private: + }; #endif //__MIDI_DEVICE_H__ diff --git a/src/MidiDeviceFluidSynth.cpp b/src/MidiDeviceFluidSynth.cpp old mode 100644 new mode 100755 index c945fd2f..6eaaa904 --- a/src/MidiDeviceFluidSynth.cpp +++ b/src/MidiDeviceFluidSynth.cpp @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman, all rights reserved This file is part of the PianoBooster application @@ -28,15 +28,11 @@ #include "MidiDeviceFluidSynth.h" -#include -#include -#include - CMidiDeviceFluidSynth::CMidiDeviceFluidSynth() { - m_synth = 0; - m_fluidSettings = 0; - m_audioDriver = 0; + m_synth = nullptr; + m_fluidSettings = nullptr; + m_audioDriver = nullptr; m_rawDataIndex = 0; } @@ -45,35 +41,24 @@ CMidiDeviceFluidSynth::~CMidiDeviceFluidSynth() closeMidiPort(MIDI_OUTPUT, -1); } - - void CMidiDeviceFluidSynth::init() { } - QStringList CMidiDeviceFluidSynth::getMidiPortList(midiType_t type) { - if (type != MIDI_OUTPUT) // Only has an output return QStringList(); - //debugSettings(("getSongList %s + %d", qPrintable(getCurrentBookName()), qPrintable(m_bookPath))); - QDir dirSoundFont("soundfont"); - dirSoundFont.setFilter(QDir::Files); - QStringList fileNames = dirSoundFont.entryList(); + if (qsettings==nullptr) + return QStringList(); - QStringList portNames; + QStringList fontList = qsettings->value("FluidSynth/SoundFont").toStringList(); - for (int i = 0; i < fileNames.size(); i++) - { - if ( fileNames.at(i).endsWith(".sf2", Qt::CaseInsensitive ) ) - { - portNames += fileNames.at(i); - } + if (fontList.size() > 0){ + return QStringList(getFluidInternalName()); } - - return portNames; + return fontList; } bool CMidiDeviceFluidSynth::openMidiPort(midiType_t type, QString portName) @@ -85,51 +70,47 @@ bool CMidiDeviceFluidSynth::openMidiPort(midiType_t type, QString portName) if (type == MIDI_INPUT) return false; - - if (getMidiPortList(type).size()==0) return false; - - /* Create the settings. */ - m_fluidSettings = new_fluid_settings(); - - /* Change the settings if necessary*/ - fluid_settings_setnum(m_fluidSettings, (char *)"synth.sample-rate", 22050.0); - fluid_settings_setint(m_fluidSettings, "audio.periods", 5); - fluid_settings_setint(m_fluidSettings, "audio.period-size", 128); + if (!portName.endsWith(FLUID_NAME)) return false; - fluid_settings_setstr(m_fluidSettings, "audio.alsa.device", "plughw:0"); + if (getMidiPortList(type).size()==0) return false; + // Load a SoundFont + QStringList fontList = qsettings->value("FluidSynth/SoundFont").toStringList(); + if (fontList.size() == 0) return false; + // Create the settings. + m_fluidSettings = new_fluid_settings(); + // Change the settings if necessary + fluid_settings_setnum(m_fluidSettings, "synth.sample-rate", qsettings->value("FluidSynth/sampleRateCombo",22050).toInt()); + fluid_settings_setint(m_fluidSettings, "audio.period-size", qsettings->value("FluidSynth/bufferSizeCombo", 128).toInt()); + fluid_settings_setint(m_fluidSettings, "audio.periods", qsettings->value("FluidSynth/bufferCountCombo", 4).toInt()); +#if defined (Q_OS_LINUX) + fluid_settings_setstr(m_fluidSettings, "audio.driver", qsettings->value("FluidSynth/audioDriverCombo", "alsa").toString().toStdString().c_str()); +#endif - /* Create the synthesizer. */ + // Create the synthesizer. m_synth = new_fluid_synth(m_fluidSettings); fluid_synth_set_reverb_on(m_synth, 0); fluid_synth_set_chorus_on(m_synth, 0); - - /* Create the audio driver. The synthesizer starts playing as soon - as the driver is created. */ + // Create the audio driver. m_audioDriver = new_fluid_audio_driver(m_fluidSettings, m_synth); - /* Load a SoundFont*/ - m_soundFontId = fluid_synth_sfload(m_synth, "FluidR3_GM.sf2", 0); - //m_soundFontId = fluid_synth_sfload(m_synth, "VintageDreamsWaves-v2.sf2", 0); - - /* Select bank 0 and preset 0 in the SoundFont we just loaded on - channel 0 */ - //fluid_synth_program_select(m_synth, 0, m_soundFontId, 0, 0); - + QString pathName = fontList.at(0); + ppLogDebug("Sound font %s", qPrintable(pathName)); + m_soundFontId = fluid_synth_sfload(m_synth, qPrintable(pathName), 0); + if (m_soundFontId == -1) + return false; for (int channel = 0; channel < MAX_MIDI_CHANNELS ; channel++) { - //fluid_synth_program_select(m_synth, channel, m_soundFontId, 0, GM_PIANO_PATCH); - fluid_synth_program_change(m_synth, channel, GM_PIANO_PATCH); + fluid_synth_program_change(m_synth, channel, GM_PIANO_PATCH); } - fluid_synth_set_gain(m_synth, 0.4); - + fluid_synth_set_gain(m_synth, qsettings->value("FluidSynth/masterGainSpin", 40).toFloat()/100.0f ); return true; } @@ -138,14 +119,14 @@ void CMidiDeviceFluidSynth::closeMidiPort(midiType_t type, int index) if (type != MIDI_OUTPUT) return; - if (m_fluidSettings == 0) + if (m_fluidSettings == nullptr) return; /* Clean up */ delete_fluid_audio_driver(m_audioDriver); delete_fluid_synth(m_synth); delete_fluid_settings(m_fluidSettings); - m_fluidSettings = 0; + m_fluidSettings = nullptr; m_rawDataIndex = 0; } @@ -153,11 +134,10 @@ void CMidiDeviceFluidSynth::closeMidiPort(midiType_t type, int index) //! add a midi event to be played immediately void CMidiDeviceFluidSynth::playMidiEvent(const CMidiEvent & event) { - - if (m_synth == 0) + if (m_synth == nullptr) return; - unsigned int channel; + int channel; channel = event.channel() & 0x0f; @@ -212,7 +192,6 @@ void CMidiDeviceFluidSynth::playMidiEvent(const CMidiEvent & event) //event.printDetails(); // useful for debugging } - // Return the number of events waiting to be read from the midi device int CMidiDeviceFluidSynth::checkMidiInput() { @@ -226,8 +205,6 @@ CMidiEvent CMidiDeviceFluidSynth::readMidiInput() return midiEvent; } - - int CMidiDeviceFluidSynth::midiSettingsSetStr(QString name, QString str) { if (!m_fluidSettings) diff --git a/src/MidiDeviceFluidSynth.h b/src/MidiDeviceFluidSynth.h index 12822797..1caf59d3 100644 --- a/src/MidiDeviceFluidSynth.h +++ b/src/MidiDeviceFluidSynth.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman, all rights reserved This file is part of the PianoBooster application @@ -29,12 +29,10 @@ #ifndef __MIDI_DEVICE_FLUIDSYNTH_H__ #define __MIDI_DEVICE_FLUIDSYNTH_H__ - #include "MidiDeviceBase.h" #include - class CMidiDeviceFluidSynth : public CMidiDeviceBase { virtual void init(); @@ -59,9 +57,13 @@ class CMidiDeviceFluidSynth : public CMidiDeviceBase CMidiDeviceFluidSynth(); ~CMidiDeviceFluidSynth(); + static QString getFluidInternalName() + { + return QString(tr("Internal Sound") + " " + FLUID_NAME ); + } private: - + static constexpr const char* FLUID_NAME = "(FluidSynth)"; unsigned char m_savedRawBytes[40]; // Raw data is used for used for a SYSTEM_EVENT unsigned int m_rawDataIndex; @@ -69,8 +71,6 @@ class CMidiDeviceFluidSynth : public CMidiDeviceBase fluid_synth_t* m_synth; fluid_audio_driver_t* m_audioDriver; int m_soundFontId; - - }; #endif //__MIDI_DEVICE_FLUIDSYNTH_H__ diff --git a/src/MidiDeviceRt.cpp b/src/MidiDeviceRt.cpp index 8e35bef4..675f3730 100644 --- a/src/MidiDeviceRt.cpp +++ b/src/MidiDeviceRt.cpp @@ -28,7 +28,6 @@ #include "MidiDeviceRt.h" - CMidiDeviceRt::CMidiDeviceRt() { try { @@ -47,7 +46,6 @@ CMidiDeviceRt::CMidiDeviceRt() exit(1); } - m_midiPorts[0] = -1; m_midiPorts[1] = -1; m_rawDataIndex = 0; @@ -97,7 +95,6 @@ QStringList CMidiDeviceRt::getMidiPortList(midiType_t type) portNameList << name; } - return portNameList; } @@ -107,7 +104,6 @@ bool CMidiDeviceRt::openMidiPort(midiType_t type, QString portName) QString name; RtMidi* midiDevice; - if (portName.length() == 0) return false; @@ -152,7 +148,6 @@ void CMidiDeviceRt::closeMidiPort(midiType_t type, int index) m_midiout->closePort(); } - //! add a midi event to be played immediately void CMidiDeviceRt::playMidiEvent(const CMidiEvent & event) { @@ -218,7 +213,7 @@ void CMidiDeviceRt::playMidiEvent(const CMidiEvent & event) default: return; - break; + } m_midiout->sendMessage( &message ); @@ -226,7 +221,6 @@ void CMidiDeviceRt::playMidiEvent(const CMidiEvent & event) //event.printDetails(); // useful for debugging } - // Return the number of events waiting to be read from the midi device int CMidiDeviceRt::checkMidiInput() { @@ -242,7 +236,6 @@ CMidiEvent CMidiDeviceRt::readMidiInput() CMidiEvent midiEvent; unsigned int channel; - if (Cfg::midiInputDump) { QString str; @@ -298,7 +291,6 @@ CMidiEvent CMidiDeviceRt::readMidiInput() return midiEvent; } - int CMidiDeviceRt::midiSettingsSetStr(QString name, QString str) { return 0; diff --git a/src/MidiEvent.h b/src/MidiEvent.h index d937b2b3..246a245c 100644 --- a/src/MidiEvent.h +++ b/src/MidiEvent.h @@ -47,7 +47,6 @@ #define MIDI_ALL_SOUND_OFF 120 #define MIDI_ALL_NOTES_OFF 123 //0x7B channel mode message - // now define some of our own events #define MIDI_NONE 0x0ff0 #define MIDI_ERROR 0x0ff1 @@ -82,11 +81,8 @@ #define METAKEYSIG 0x59 #define METASEQEVENT 0x7F - - #define GM_PIANO_PATCH 0 // The default grand piano sound - /*! * @brief xxxxx. */ @@ -292,7 +288,6 @@ class CMidiEvent return r; } - void printDetails() { if (type() == MIDI_NOTE_ON) { @@ -316,5 +311,4 @@ class CMidiEvent int m_duration; }; - #endif //__MIDI_EVENT_H__ diff --git a/src/MidiFile.cpp b/src/MidiFile.cpp index dc93ee5e..5175fcf6 100644 --- a/src/MidiFile.cpp +++ b/src/MidiFile.cpp @@ -26,7 +26,6 @@ int CMidiFile::m_ppqn = DEFAULT_PPQN; - /* Read 16 bits from the Standard MIDI file */ int CMidiFile::readWord(void) { @@ -79,7 +78,6 @@ int CMidiFile::readHeader(void) return i; } - void CMidiFile::openMidiFile(string filename) { if (m_file.is_open()) @@ -89,14 +87,14 @@ void CMidiFile::openMidiFile(string filename) m_file.open(filename.c_str(), ios_base::in | ios_base::binary); if (m_file.fail() == true) { - QMessageBox::warning(0, QMessageBox::tr("Midi File Error"), + QMessageBox::warning(nullptr, QMessageBox::tr("Midi File Error"), QMessageBox::tr("Cannot open \"%1\"").arg(QString(filename.c_str()))); midiError(SMF_CANNOT_OPEN_FILE); return; } rewind(); if (getMidiError() != SMF_NO_ERROR) - QMessageBox::warning(0, QMessageBox::tr("Midi File Error"), + QMessageBox::warning(nullptr, QMessageBox::tr("Midi File Error"), QMessageBox::tr("Midi file \"%1\" is corrupted").arg(QString(filename.c_str()))); } @@ -127,10 +125,10 @@ void CMidiFile::rewind() } for (trk = 0; trk < arraySize(m_tracks); trk++) { - if (m_tracks[trk]!= 0) + if (m_tracks[trk]!= nullptr) { delete (m_tracks[trk]); - m_tracks[trk] = 0; + m_tracks[trk] = nullptr; } } filePos = m_file.tellg(); @@ -160,7 +158,7 @@ bool CMidiFile::checkMidiEventFromStream(int streamIdx) assert("streamIdx out of range"); return false; } - if (m_tracks[streamIdx] != 0 && m_tracks[streamIdx]->length() > 0) + if (m_tracks[streamIdx] != nullptr && m_tracks[streamIdx]->length() > 0) return true; return false; } diff --git a/src/MidiTrack.cpp b/src/MidiTrack.cpp index fc9759d6..9c879924 100644 --- a/src/MidiTrack.cpp +++ b/src/MidiTrack.cpp @@ -42,7 +42,7 @@ int CMidiTrack::m_logLevel; CMidiTrack::CMidiTrack(fstream& file, int no) :m_file(file), m_trackNumber(no) { - m_trackEventQueue = 0; + m_trackEventQueue = nullptr; m_savedRunningStatus = 0; m_trackLengthCounter = 0; m_deltaTime = 0; @@ -51,7 +51,7 @@ CMidiTrack::CMidiTrack(fstream& file, int no) :m_file(file), m_trackNumber(no) for ( int chan = 0; chan (m_trackLength/3); // The minimum bytes per event is 3 } - - void CMidiTrack::ppDebugTrack(int level, const char *msg, ...) { va_list ap; @@ -91,7 +89,6 @@ void CMidiTrack::ppDebugTrack(int level, const char *msg, ...) fputc('\n', stdout); } - dword_t CMidiTrack::readVarLen() { dword_t value; @@ -247,8 +244,6 @@ void CMidiTrack::readKeySignatureEvent() CStavePos::setKeySignature(event.data1(), event.data2()); } - - void CMidiTrack::readMetaEvent(byte_t type) { string text; @@ -368,7 +363,6 @@ void CMidiTrack::readMetaEvent(byte_t type) } } - void CMidiTrack::decodeSystemMessage( byte_t status, byte_t data1 ) { switch ( status ) @@ -408,8 +402,7 @@ void CMidiTrack::noteOffEvent(CMidiEvent &event, int deltaTime, int channel, int { ppLogWarn("Missing note off duration Chan %d Note off %d", channel + 1, pitch); } - m_noteOnEventPtr[channel][pitch] = 0; - + m_noteOnEventPtr[channel][pitch] = nullptr; event.noteOffEvent(deltaTime, channel, pitch, velocity); diff --git a/src/MidiTrack.h b/src/MidiTrack.h index c47724af..7c0b356b 100644 --- a/src/MidiTrack.h +++ b/src/MidiTrack.h @@ -36,8 +36,6 @@ using namespace std; - - typedef enum { SMF_NO_ERROR, @@ -48,8 +46,6 @@ typedef enum SMF_END_OF_FILE } midiErrors_t; - - typedef unsigned char byte_t; typedef unsigned short word_t; typedef unsigned long dword_t; @@ -91,7 +87,6 @@ class CMidiTrack static void setLogLevel(int level){m_logLevel = level;} - private: void errorFail(midiErrors_t error) { @@ -104,7 +99,6 @@ class CMidiTrack } void midiFailReset() { m_midiError = SMF_NO_ERROR;} - void ppDebugTrack(int level, const char *msg, ...); byte_t readByte(void) @@ -123,7 +117,6 @@ class CMidiTrack return c; } - word_t readWord(void) { word_t value; @@ -156,7 +149,6 @@ class CMidiTrack void decodeSystemMessage( byte_t status, byte_t data1 ); void noteOffEvent(CMidiEvent &event, int deltaTime, int channel, int pitch, int velocity); - void createNoteEventPtr(int channel) { if (m_noteOnEventPtr[channel] == 0) diff --git a/src/Notation.cpp b/src/Notation.cpp index 24051d57..5bd780fa 100644 --- a/src/Notation.cpp +++ b/src/Notation.cpp @@ -26,11 +26,9 @@ */ /*********************************************************************************/ - #include "Notation.h" #include "Cfg.h" - #define OPTION_DEBUG_NOTATION 0 #if OPTION_DEBUG_NOTATION #define ppDEBUG_NOTATION(args) ppLogDebug args @@ -38,7 +36,6 @@ #define ppDEBUG_NOTATION(args) #endif - #define MERGESLOT_NOTE_INDEX 0 #define MERGESLOT_BEATMARK_INDEX 1 @@ -193,7 +190,7 @@ accidentalModifer_t CNotation::detectSuppressedNatural(int note) } if (pBackLink) { - pNoteState->setBackLink(0); + pNoteState->setBackLink(nullptr); pBackLink->setBarChange(-1); // this prevents further suppression on the original note } @@ -212,7 +209,6 @@ void CNotation::setupNotationParamaters() cfg_param[NOTATE_semibreveBoundary] = CMidiFile::ppqnAdjust(DEFAULT_PPQN*4 + 10); } - void CNotation::calculateScoreNoteLength() { if (!Cfg::experimentalNoteLength) diff --git a/src/Notation.h b/src/Notation.h index 26e8103b..45cc1271 100644 --- a/src/Notation.h +++ b/src/Notation.h @@ -37,7 +37,6 @@ #include "Chord.h" #include "Bar.h" - #define MAX_SYMBOLS 20 // The maximum number of symbols that can be stored in one slot class CSlot @@ -79,7 +78,6 @@ class CSlot addSymbol(symbol); } - void transpose(int amount) { for (int i = 0; i < m_length; i++) @@ -152,7 +150,6 @@ class CNoteState void setBackLink(CNoteState * link){m_backLink = link;} CNoteState * getBackLink(){return m_backLink;} - private: int m_barChangeCounter; accidentalModifer_t m_accidentalState; @@ -191,7 +188,6 @@ class CNotation void setChannel(int channel) {m_displayChannel = channel;} - CSlot nextSlot(); void midiEventInsert(CMidiEvent event); @@ -200,7 +196,6 @@ class CNotation static void setCourtesyAccidentals(bool setting){m_cfg_displayCourtesyAccidentals = setting;} static bool displayCourtesyAccidentals(){return m_cfg_displayCourtesyAccidentals; } - private: CSlot nextBeatMarker(); int nextMergeSlot(); @@ -211,7 +206,6 @@ class CNotation void calculateScoreNoteLength(); - CQueue* m_slotQueue; // Queue of symbol slots that have not been read yet CQueue* m_midiInputQueue; // A Queue of midi events CSlot m_currentSlot; diff --git a/src/Piano.cpp b/src/Piano.cpp index 10a589fb..707f51b9 100644 --- a/src/Piano.cpp +++ b/src/Piano.cpp @@ -38,7 +38,6 @@ static const float minNameGap = 14.0; - void CPiano::spaceNoteBunch(unsigned int bottomIndex, unsigned int topIndex) { unsigned int midPoint; @@ -110,7 +109,6 @@ void CPiano::drawPianoInputLines(CChord* chord, CColor color, int lineLength) CStavePos stavePos; - for ( i = 0; i < chord->length(); i++) { if (!m_rhythmTapping) @@ -233,7 +231,6 @@ void CPiano::addPianistNote(whichPart_t part, CMidiEvent midiNote, bool good) else m_badChord.addNote(part, note); - posY = stavePos.getPosYAccidental(); addNoteNameItem(posY, note, 0); } diff --git a/src/QtMain.cpp b/src/QtMain.cpp index 97efb375..20d445ba 100644 --- a/src/QtMain.cpp +++ b/src/QtMain.cpp @@ -52,13 +52,11 @@ int main(int argc, char *argv[]){ QApplication app(argc, argv); if (!QGLFormat::hasOpenGL()) { - QMessageBox::information(0, QMessageBox::tr("OpenGL support"), + QMessageBox::information(nullptr, QMessageBox::tr("OpenGL support"), QMessageBox::tr("This system does not support OpenGL which is needed to run Piano Booster.")); return -1; } - - QtWindow window; window.show(); @@ -67,4 +65,3 @@ int main(int argc, char *argv[]){ closeLogs(); return value; } - diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index c0f626a6..0c3d38a5 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -5,7 +5,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -52,7 +52,6 @@ static int set_realtime_priority(int policy, int prio) } #endif - QtWindow::QtWindow() { m_settings = new CSettings(this); @@ -73,9 +72,8 @@ QtWindow::QtWindow() } for (int i = 0; i < MAX_RECENT_FILES; ++i) - m_recentFileActs[i] = 0; - m_separatorAct = 0; - + m_recentFileActs[i] = nullptr; + m_separatorAct = nullptr; #if USE_REALTIME_PRIORITY int rt_prio = sched_get_priority_max(SCHED_FIFO); @@ -88,7 +86,6 @@ QtWindow::QtWindow() m_song = m_glWidget->getSongObject(); m_score = m_glWidget->getScoreObject(); - QHBoxLayout *mainLayout = new QHBoxLayout; QVBoxLayout *columnLayout = new QVBoxLayout; @@ -133,7 +130,6 @@ QtWindow::QtWindow() m_song->cfg_stopPointMode = static_cast (m_settings->value("Score/StopPointMode", m_song->cfg_stopPointMode ).toInt()); m_song->cfg_rhythmTapping = static_cast (m_settings->value("Score/RtyhemTappingMode", m_song->cfg_rhythmTapping ).toInt()); - m_song->openMidiPort(CMidiDevice::MIDI_INPUT, midiInputName); m_song->openMidiPort(CMidiDevice::MIDI_OUTPUT,m_settings->value("Midi/Output").toString()); @@ -220,7 +216,7 @@ void QtWindow::decodeMidiFileArg(QString arg) if (!fileInfo.exists() ) { - QMessageBox::warning(0, tr("PianoBooster Midi File Error"), + QMessageBox::warning(nullptr, tr("PianoBooster Midi File Error"), tr("Cannot open \"%1\"").arg(QString(fileInfo.absoluteFilePath()))); exit(1); } @@ -228,7 +224,7 @@ void QtWindow::decodeMidiFileArg(QString arg) fileInfo.fileName().endsWith(".midi", Qt::CaseInsensitive ) || fileInfo.fileName().endsWith(".kar", Qt::CaseInsensitive )) ) { - QMessageBox::warning(0, tr("PianoBooster Midi File Error"), + QMessageBox::warning(nullptr, tr("PianoBooster Midi File Error"), tr("\"%1\" is not a Midi File").arg(QString(fileInfo.fileName()))); exit(1); } @@ -252,7 +248,7 @@ void QtWindow::decodeMidiFileArg(QString arg) m_settings->setValue("CurrentSong", fileInfo.absoluteFilePath()); else { - QMessageBox::warning(0, tr("PianoBooster Midi File Error"), + QMessageBox::warning(nullptr, tr("PianoBooster Midi File Error"), tr("\"%1\" is not a valid Midi file").arg(QString(fileInfo.absoluteFilePath()))); exit(1); } @@ -411,15 +407,12 @@ void QtWindow::createActions() addShortcutAction("ShortCuts/NextBook", SLOT(on_nextBook())); addShortcutAction("ShortCuts/PreviousBook", SLOT(on_previousBook())); - for (int i = 0; i < MAX_RECENT_FILES; ++i) { m_recentFileActs[i] = new QAction(this); m_recentFileActs[i]->setVisible(false); connect(m_recentFileActs[i], SIGNAL(triggered()), this, SLOT(openRecentFile())); } - - } void QtWindow::createMenus() @@ -467,9 +460,10 @@ void QtWindow::createMenus() m_helpMenu->addAction(m_shortcutAct); m_helpMenu->addAction(m_aboutAct); } + void QtWindow::openRecentFile() - { - QAction *action = qobject_cast(sender()); +{ + QAction *action = qobject_cast(sender()); if (action) m_settings->openSongFile(action->data().toString()); } @@ -503,7 +497,7 @@ void QtWindow::updateRecentFileActions() for (int i = 0; i < numRecentFiles; ++i) { QString text = tr("&%1 %2").arg(i + 1).arg(strippedName(files[i])); - if (m_recentFileActs[i] == 0) + if (m_recentFileActs[i] == nullptr) break; m_recentFileActs[i]->setText(text); m_recentFileActs[i]->setData(files[i]); @@ -511,7 +505,7 @@ void QtWindow::updateRecentFileActions() } for (int j = numRecentFiles; j < MAX_RECENT_FILES; ++j) { - if (m_recentFileActs[j] == 0) + if (m_recentFileActs[j] == nullptr) break; m_recentFileActs[j]->setVisible(false); } @@ -662,7 +656,6 @@ void QtWindow::keyboardShortcuts() msgBox.exec(); } - void QtWindow::open() { m_glWidget->stopTimerEvent(); @@ -710,7 +703,6 @@ void QtWindow::closeEvent(QCloseEvent *event) writeSettings(); } - void QtWindow::keyPressEvent ( QKeyEvent * event ) { if (event->text().length() == 0) @@ -771,8 +763,8 @@ void QtWindow::loadTutorHtml(const QString & name) void QtWindow::refreshTranslate(){ #ifndef NO_LANGS - - QString locale = m_settings->value("General/lang",QLocale::system().bcp47Name()).toString(); + QString appImagePath = qgetenv("APPIMAGE"); + QString locale = m_settings->selectedLangauge(); qApp->removeTranslator(&translator); qApp->removeTranslator(&translatorMusic); @@ -806,7 +798,7 @@ void QtWindow::refreshTranslate(){ QFile fileTestLocale(translationsDir); if (!fileTestLocale.exists()){ #if defined (Q_OS_LINUX) || defined (Q_OS_UNIX) - translationsDir=QString(PREFIX)+"/"+QString(DATA_DIR)+"/translations/"; + translationsDir=Util::dataDir()+"/translations/"; #endif #ifdef Q_OS_DARWIN QApplication::applicationDirPath() + "/../Resources/translations/"; @@ -825,16 +817,14 @@ void QtWindow::refreshTranslate(){ translatorMusic.load(QString("music_") + locale, QApplication::applicationDirPath()); qApp->installTranslator(&translatorMusic); - // set translator for default widget's text (for example: QMessageBox's buttons) #ifdef __WIN32 - qtTranslator.load("qt_"+locale,translationsDir); + qtTranslator.load("qt_"+locale, translationsDir); #else - qtTranslator.load("qt_"+locale,QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + qtTranslator.load("qt_"+locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); #endif qApp->installTranslator(&qtTranslator); - // retranslate UI QList l2 = this->findChildren(); for (auto &w:l2){ diff --git a/src/QtWindow.h b/src/QtWindow.h index edb04402..14261b12 100644 --- a/src/QtWindow.h +++ b/src/QtWindow.h @@ -40,8 +40,6 @@ #include "GuiLoopingPopup.h" #include "Settings.h" - - class CGLView; class QAction; class QMenu; @@ -184,7 +182,6 @@ private slots: QString strippedName(const QString &fullFileName); void refreshTranslate(); - void displayUsage(); void createActions(); void createMenus(); diff --git a/src/Rating.cpp b/src/Rating.cpp index 38b7f974..38350284 100644 --- a/src/Rating.cpp +++ b/src/Rating.cpp @@ -106,5 +106,3 @@ void CRating::calculateAccuracy() } } - - diff --git a/src/Rating.h b/src/Rating.h index 3fe386b9..cdc2f144 100644 --- a/src/Rating.h +++ b/src/Rating.h @@ -72,8 +72,6 @@ class CRating float m_factor; CColor m_currentColor; bool m_goodAccuracyFlag; - }; - #endif //__RATING_H__ diff --git a/src/Score.cpp b/src/Score.cpp index 6b77e0a0..69298b13 100644 --- a/src/Score.cpp +++ b/src/Score.cpp @@ -35,7 +35,7 @@ CScore::CScore(CSettings* settings) : CDraw(settings) { size_t i; m_piano = new CPiano(settings); - m_rating = 0; + m_rating = nullptr; for (i=0; i< arraySize(m_scroll); i++) { m_scroll[i] = new CScroll(i, settings); @@ -242,6 +242,3 @@ void CScore::drawScore() else glCallList(m_scoreDisplayListId); } - - - diff --git a/src/Score.h b/src/Score.h index 43fcc78c..3c9e9c8f 100644 --- a/src/Score.h +++ b/src/Score.h @@ -26,8 +26,6 @@ */ /*********************************************************************************/ - - #ifndef _SCORE_H_ #define _SCORE_H_ @@ -35,7 +33,6 @@ #include "Piano.h" #include "Settings.h" - class CScore : public CDraw { public: @@ -108,7 +105,6 @@ class CScore : public CDraw m_scroll[m_activeScroll]->setPlayedNoteColor(note, color, wantedDelta, pianistTimming); } - void setActiveChannel(int channel) { int newActiveSroll; @@ -132,7 +128,6 @@ class CScore : public CDraw m_scroll[m_activeScroll]->refresh(); } - void setDisplayHand(whichPart_t hand) { CDraw::setDisplayHand(hand); @@ -146,7 +141,6 @@ class CScore : public CDraw protected: CPiano* m_piano; - private: CRating* m_rating; CScroll* m_scroll[MAX_MIDI_CHANNELS]; diff --git a/src/Scroll.cpp b/src/Scroll.cpp index efcffa9c..8b68493d 100644 --- a/src/Scroll.cpp +++ b/src/Scroll.cpp @@ -151,7 +151,6 @@ void CScroll::removeSlots() } } - //! Draw all the symbols that we have in the list void CScroll::drawScrollingSymbols(bool show) { @@ -177,7 +176,6 @@ void CScroll::drawScrollingSymbols(bool show) glPopMatrix(); } - void CScroll::scrollDeltaTime(int ticks) { m_deltaHead -= ticks; @@ -242,7 +240,6 @@ void CScroll::setPlayedNoteColor(int note, CColor color, int wantedDelta, int pi compileSlot(m_scrollQueue->index(index)); } - void CScroll::refresh() { int i; @@ -324,7 +321,6 @@ void CScroll::showScroll(bool show) if (m_symbolID == 0) m_symbolID = glGenLists (1); - // add in the missing GL display list for ( i = 0; i < m_scrollQueue->length(); i++) { @@ -363,7 +359,6 @@ void CScroll::showScroll(bool show) } } - CScroll::CSlotDisplayList::CSlotDisplayList(const CSlot& slot, GLuint displayListId, GLuint nextDisplayListId) : CSlot(slot), m_displayListId(displayListId), m_nextDisplayListId(nextDisplayListId) { diff --git a/src/Scroll.h b/src/Scroll.h index 45e71782..6fd6f6e2 100644 --- a/src/Scroll.h +++ b/src/Scroll.h @@ -29,7 +29,6 @@ #ifndef __SCROLL_H__ #define __SCROLL_H__ - #include "Draw.h" #include "Song.h" #include "Queue.h" @@ -116,5 +115,4 @@ class CScroll : public CDraw float m_ppqnFactor; // if PulsesPerQuarterNote is 96 then the factor is 1.0 }; - #endif //__SCROLL_H__ diff --git a/src/Settings.cpp b/src/Settings.cpp index ddb9875b..64b1d6a3 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -5,7 +5,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -49,6 +49,9 @@ #include "QtWindow.h" #include "version.txt" +#if EXPERIMENTAL_USE_FLUIDSYNTH +#include "MidiDeviceFluidSynth.h" +#endif #define OPTION_DEBUG_SETTINGS 0 #if OPTION_DEBUG_SETTINGS @@ -57,7 +60,6 @@ #define debugSettings(args) #endif - CSettings::CSettings(QtWindow *mainWindow) : QSettings(CSettings::IniFormat, CSettings::UserScope, "PianoBooster", "Piano Booster"), m_mainWindow(mainWindow) { @@ -71,15 +73,8 @@ CSettings::CSettings(QtWindow *mainWindow) : QSettings(CSettings::IniFormat, CSe CNotation::setCourtesyAccidentals(value("Score/CourtesyAccidentals", false ).toBool()); m_followThroughErrorsEnabled = value("Score/FollowThroughErrors", false ).toBool(); - // load Fluid settings - - QString soundFontNames_1 = value("FluidSynth/SoundFont2_1","").toString(); - if (!soundFontNames_1.isEmpty()) addFluidSoundFontName(soundFontNames_1); - - QString soundFontNames_2 = value("FluidSynth/SoundFont2_2","").toString(); - if (!soundFontNames_2.isEmpty()) addFluidSoundFontName(soundFontNames_2); - + setFluidSoundFontNames( value("FluidSynth/SoundFont").toStringList()); } void CSettings::setDefaultValue(const QString & key, const QVariant & value ) @@ -90,7 +85,6 @@ void CSettings::setDefaultValue(const QString & key, const QVariant & value ) setValue(key, value); } - void CSettings::init(CSong* song, GuiSidePanel* sidePanel, GuiTopBar* topBar) { m_song = song; @@ -98,7 +92,6 @@ void CSettings::init(CSong* song, GuiSidePanel* sidePanel, GuiTopBar* topBar) m_guiTopBar = topBar; } - void CSettings::setNoteNamesEnabled(bool value) { m_noteNamesEnabled = value; setValue("Score/NoteNames", value ); @@ -115,7 +108,6 @@ void CSettings::setTutorPagesEnabled(bool value) { updateTutorPage(); } - void CSettings::setCourtesyAccidentals(bool value) { CNotation::setCourtesyAccidentals(value); setValue("Score/CourtesyAccidentals", value ); @@ -186,7 +178,6 @@ void CSettings::loadSongSettings() m_guiSidePanel->setCurrentHand(m_domSong.attribute("hand", "both" )); m_guiTopBar->setSpeed(m_domSong.attribute("speed", "100" ).toInt()); - // -1 means none and -2 means not set int left = m_domSong.attribute("leftHandMidiChannel", "-2").toInt(); int right = m_domSong.attribute("rightHandMidiChannel", "-2").toInt(); @@ -195,7 +186,6 @@ void CSettings::loadSongSettings() loadHandSettings(); } - void CSettings::saveSongSettings() { m_domSong.setAttribute("hand", partToHandString(m_song->getActiveHand())); @@ -213,7 +203,6 @@ void CSettings::loadBookSettings() m_currentSongName = lastSong; } - void CSettings::saveBookSettings() { if (!m_currentBookName.isEmpty()) @@ -224,7 +213,6 @@ void CSettings::saveBookSettings() saveSongSettings(); } - void CSettings::loadXmlFile() { m_domDocument.documentElement().clear(); @@ -288,7 +276,7 @@ void CSettings::updateTutorPage() QString fileBase = fileInfo.absolutePath() + "/InfoPages/" + fileInfo.completeBaseName() + "_"; - QString locale = value("General/lang",QLocale::system().bcp47Name()).toString(); + QString locale = selectedLangauge(); if (m_tutorPagesEnabled) { @@ -321,7 +309,6 @@ void CSettings::updateTutorPage() } } m_mainWindow->loadTutorHtml(QString()); - } void CSettings::openSongFile(const QString & filename) @@ -366,7 +353,6 @@ QStringList CSettings::getSongList() dirSongs.setFilter(QDir::Files); QStringList fileNames = dirSongs.entryList(); - QStringList songNames; for (int i = 0; i < fileNames.size(); i++) { @@ -388,7 +374,6 @@ QStringList CSettings::getBookList() return dirBooks.entryList(); } - void CSettings::writeSettings() { @@ -397,7 +382,6 @@ void CSettings::writeSettings() saveXmlFile(); } - void CSettings::loadSettings() { unzipBoosterMusicBooks(); @@ -418,6 +402,8 @@ void CSettings::loadSettings() // if (!songName.isEmpty()) // openSongFile( songName ); + setupDefaultSoundFont(); + updateWarningMessages(); updateTutorPage(); @@ -428,7 +414,6 @@ void CSettings::unzipBoosterMusicBooks() // Set default value const QString ZIPFILENAME("BoosterMusicBooks.zip"); - if (value("PianoBooster/MusicRelease", 0).toInt() < MUSIC_RELEASE) { QString resourceDir = QApplication::applicationDirPath() + "/../music/"; @@ -442,7 +427,7 @@ void CSettings::unzipBoosterMusicBooks() if (!QFile::exists(resourceDir + ZIPFILENAME)) { #if defined (Q_OS_LINUX) || defined (Q_OS_UNIX) - resourceDir=QString(PREFIX)+"/"+QString(DATA_DIR)+"/music/"; + resourceDir=Util::dataDir()+"/music/"; #endif #ifdef Q_OS_DARWIN resourceDir = QApplication::applicationDirPath() + "/../Resources/music/"; @@ -452,7 +437,6 @@ void CSettings::unzipBoosterMusicBooks() ppLogInfo(qPrintable("applicationDirPath=" + QApplication::applicationDirPath())); ppLogTrace("resourceDir3 %s", qPrintable(resourceDir)); - QFileInfo zipFile(resourceDir + ZIPFILENAME); ppLogTrace("xx %s", qPrintable(zipFile.filePath())); @@ -483,8 +467,6 @@ void CSettings::unzipBoosterMusicBooks() return; } - - QProcess unzip; unzip.start("unzip", QStringList() << "-o" << zipFile.filePath() << "-d" << destMusicDir.path() ); ppLogInfo(qPrintable("running unzip -o " + zipFile.filePath() + " -d " + destMusicDir.path()) ); @@ -498,7 +480,6 @@ void CSettings::unzipBoosterMusicBooks() // the line is available in buf } - if (!unzip.waitForFinished()) { ppLogError("unzip failed"); @@ -562,3 +543,33 @@ void CSettings::updateWarningMessages() m_warningMessage.clear(); } +void CSettings::setupDefaultSoundFont(){ +#if EXPERIMENTAL_USE_FLUIDSYNTH + + if (getFluidSoundFontNames().empty() && !m_song->validMidiOutput()) + { + QString appPath = qEnvironmentVariable("APPIMAGE"); + if (appPath.isEmpty()) + { + appPath = QApplication::applicationDirPath(); + } + + QDir directory(appPath); + directory.cd("SoundFont"); + QStringList dirList = directory.entryList(QStringList(),QDir::AllEntries); + foreach(QString filename, dirList) + { + // Find the first sound fount file + if ( filename.endsWith(".sf2", Qt::CaseInsensitive ) ) + { + setFluidSoundFontNames(directory.filePath(filename)); + setValue("Midi/Output",CMidiDeviceFluidSynth::getFluidInternalName() ); + setValue("LastSoundFontDir", directory.path()); + saveSoundFontSettings(); + m_song->openMidiPort(CMidiDevice::MIDI_OUTPUT, CMidiDeviceFluidSynth::getFluidInternalName()); + break; + } + } + } +#endif +} diff --git a/src/Settings.h b/src/Settings.h index a75c0718..ff64a9bc 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -5,7 +5,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -105,6 +105,14 @@ class CSettings : public QSettings { return m_fluidSoundFontNames; } + void setFluidSoundFontNames(QStringList names) + { + m_fluidSoundFontNames = names; + } + void setFluidSoundFontNames(QString names) + { + m_fluidSoundFontNames = QStringList(names); + } void addFluidSoundFontName(QString sfName) { m_fluidSoundFontNames.append(sfName); @@ -113,6 +121,24 @@ class CSettings : public QSettings { m_fluidSoundFontNames.removeAll(sfName); } + void clearFluidSoundFontNames() + { + m_fluidSoundFontNames.clear(); + } + void saveSoundFontSettings() + { + setValue("FluidSynth/SoundFont", getFluidSoundFontNames()); + } + + // has a new sound fount been entered that is not the same as the old sound font + bool isNewSoundFontEntered() + { + if (getFluidSoundFontNames().isEmpty()) + return false; + + return getFluidSoundFontNames() != value("FluidSynth/SoundFont").toStringList(); + } + void pianistActive() { m_pianistActive = true;} void setActiveHand(whichPart_t hand); @@ -122,6 +148,14 @@ class CSettings : public QSettings QString getWarningMessage() {return m_warningMessage;} void updateWarningMessages(); + QString selectedLangauge() { + QString locale = value("General/lang","").toString(); + if (locale.isEmpty()) { + locale = QLocale::system().bcp47Name(); + } + return locale; + } + private: Q_OBJECT @@ -137,7 +171,7 @@ class CSettings : public QSettings void loadXmlFile(); void saveXmlFile(); void setDefaultValue(const QString & key, const QVariant & value ); - + void setupDefaultSoundFont(); // returns either 'left' 'right' or 'both' const QString partToHandString(whichPart_t part) @@ -168,7 +202,7 @@ class CSettings : public QSettings QString m_currentBookName; QString m_currentSongName; QString m_warningMessage; - QStringList m_fluidSoundFontNames; + QStringList m_fluidSoundFontNames = QStringList(); bool m_pianistActive; }; diff --git a/src/Song.cpp b/src/Song.cpp index 9d7de161..9f184e1e 100644 --- a/src/Song.cpp +++ b/src/Song.cpp @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -29,7 +29,6 @@ #include "Song.h" #include "Score.h" - void CSong::init2(CScore * scoreWin, CSettings* settings) { @@ -72,7 +71,6 @@ void CSong::loadSong(const QString & filename) } - // read the file ahead to collect info about the song first void CSong::midiFileInfo() { @@ -118,7 +116,6 @@ void CSong::setActiveHand(whichPart_t hand) m_scoreWin->setDisplayHand(hand); } - void CSong::setActiveChannel(int chan) { this->CConductor::setActiveChannel(chan); @@ -165,7 +162,6 @@ eventBits_t CSong::task(int ticks) { realTimeEngine(ticks); - while (true) { if (m_reachedMidiEof == true) @@ -196,7 +192,6 @@ eventBits_t CSong::task(int ticks) // send the events to the other end midiEventInsert(event); - if (event.type() == MIDI_PB_EOF) { m_reachedMidiEof = true; @@ -212,7 +207,6 @@ eventBits_t CSong::task(int ticks) } else break; - } exitTask: @@ -258,7 +252,6 @@ bool CSong::pcKeyPress(int key, bool down) if (key == 't') // the tab key on the PC fakes good notes { - if (down) m_fakeChord = getWantedChord(); for (i = 0; i < m_fakeChord.length(); i++) diff --git a/src/Song.h b/src/Song.h index 90bdf2f7..cac4b7d7 100644 --- a/src/Song.h +++ b/src/Song.h @@ -76,8 +76,6 @@ class CSong : public CConductor playMusic(true); } - - void setActiveHand(whichPart_t hand); whichPart_t getActiveHand(){return CNote::getActiveHand();} @@ -86,13 +84,11 @@ class CSong : public CConductor CTrackList* getTrackList() {return m_trackList;} void refreshScroll(); - QString getSongTitle() {return m_songTitle;} private: void midiFileInfo(); - CMidiFile * m_midiFile; CFindChord m_findChord; bool m_reachedMidiEof; diff --git a/src/StavePosition.cpp b/src/StavePosition.cpp index 8db085f0..8664cb75 100644 --- a/src/StavePosition.cpp +++ b/src/StavePosition.cpp @@ -26,7 +26,6 @@ */ /*********************************************************************************/ - #include "StavePosition.h" #include "Draw.h" diff --git a/src/StavePosition.h b/src/StavePosition.h index cb32564c..db4a2b5d 100644 --- a/src/StavePosition.h +++ b/src/StavePosition.h @@ -88,7 +88,6 @@ class CStavePos void notePos(whichPart_t hand, int midiNote); - //////////////////////////////////////////////////////////////////////////////// //! @brief Sets which stave the note will appear on //! return The position on the stave. @@ -125,7 +124,7 @@ class CStavePos // convert the midi note to the note name A B C D E F G static staveLookup_t midiNote2Name(int midiNote); static const staveLookup_t* getstaveLookupTable(int key); - + // do we show a sharp or a flat for this key signature // returns 0 = none, 1=sharp, -1 =flat, 2=natural (# Key) , -2=natural (b Key) static int getStaveAccidental(int midiNote) @@ -140,12 +139,11 @@ class CStavePos if (accidentalDirection == 2) // A natural so change to above accidentalDirection = 1; else if (accidentalDirection == -2) // A natural so change to below - accidentalDirection = -1; - + accidentalDirection = -1; + return accidentalDirection; } - private: // fixme TODO This could be improved as the calculations could a done in the constructor int8_t m_staveIndex; // 0 central line, 5 = top line, -5 the bottom line, @@ -153,7 +151,6 @@ class CStavePos float m_offsetY; whichPart_t m_hand; - static int m_KeySignature; static int m_KeySignatureMajorMinor; static const staveLookup_t* m_staveLookUpTable; diff --git a/src/Symbol.h b/src/Symbol.h index d510a531..50740097 100644 --- a/src/Symbol.h +++ b/src/Symbol.h @@ -33,7 +33,6 @@ #include "Cfg.h" #include "StavePosition.h" - typedef enum { PB_SYMBOL_none, @@ -49,7 +48,6 @@ typedef enum PB_SYMBOL_playingZone, PB_SYMBOL_theEndMarker, - PB_SYMBOL_noteHead, // ONLY ADD NOTES BELOW THIS MAKER PB_SYMBOL_demisemiquaver, // Demisemiquaver / Thirty-second note PB_SYMBOL_semiquaver, // Semiquaver / Sixteenth note @@ -61,7 +59,6 @@ typedef enum } musicalSymbol_t; - typedef enum { PB_ACCIDENTAL_MODIFER_noChange, PB_ACCIDENTAL_MODIFER_suppress, @@ -100,8 +97,6 @@ class CSymbol m_hand = stavePos.getHand(); } - - //////////////////////////////////////////////////////////////////////////////// //@brief Get the type of symbol musicalSymbol_t getType(){return m_symbolType;} @@ -160,11 +155,9 @@ class CSymbol return getStavePos().getAccidental(); } - void setAccidentalModifer(accidentalModifer_t value) {m_accidentalModifer = value;} accidentalModifer_t getAccidentalModifer() {return m_accidentalModifer;} - private: void init() { @@ -190,8 +183,4 @@ class CSymbol int m_total; // the number of the notes per hand; }; - - - #endif // _SYMBOL_H_ - diff --git a/src/Tempo.cpp b/src/Tempo.cpp index d02ffd95..0056ddf1 100644 --- a/src/Tempo.cpp +++ b/src/Tempo.cpp @@ -26,13 +26,11 @@ */ /*********************************************************************************/ - #include "Tempo.h" int CTempo::m_cfg_followTempoAmount = 0; int CTempo::m_cfg_maxJumpAhead = 0; - void CTempo::enableFollowTempo(bool enable) { if (enable) @@ -65,7 +63,3 @@ void CTempo::adjustTempo(int * ticks) m_jumpAheadDelta = 0; } } - - - - diff --git a/src/Tempo.h b/src/Tempo.h index aaac5fbc..08c1a5c4 100644 --- a/src/Tempo.h +++ b/src/Tempo.h @@ -46,7 +46,6 @@ class CTempo } void setSavedWantedChord(CChord * savedWantedChord) { m_savedWantedChord = savedWantedChord; } - void reset() { // 120 beats per minute is the default @@ -89,18 +88,16 @@ class CTempo if (m_cfg_maxJumpAhead != 0) m_jumpAheadDelta = ticks; } + void clearPlayingTicks() { m_jumpAheadDelta = 0; } - void adjustTempo(int * ticks); - static void enableFollowTempo(bool enable); - private: float m_userSpeed; // controls the speed of the piece playing float m_midiTempo; // controls the speed of the piece playing @@ -109,7 +106,6 @@ class CTempo static int m_cfg_followTempoAmount; CChord *m_savedWantedChord; // A copy of the wanted chord complete with both left and right parts - }; #endif // __TEMPO_H__ diff --git a/src/TrackList.h b/src/TrackList.h index 8b60acd6..36bdcd20 100644 --- a/src/TrackList.h +++ b/src/TrackList.h @@ -49,7 +49,6 @@ class CTrackListItem int midiChannel; }; - class CTrackList : public QObject { Q_OBJECT @@ -69,7 +68,6 @@ Q_OBJECT // Find an unused channel int findFreeChannel(int startChannel); - void currentRowChanged(int currentRow); void examineMidiEvent(CMidiEvent event); bool pianoPartConvetionTest(); diff --git a/src/Util.cpp b/src/Util.cpp index e385d4e4..aeb80a7b 100644 --- a/src/Util.cpp +++ b/src/Util.cpp @@ -31,16 +31,14 @@ #include #include #include +#include #include "Util.h" #include "Cfg.h" -#include - - static QTime s_realtime; -static FILE * logInfoFile = 0; -static FILE * logErrorFile = 0; +static FILE * logInfoFile = nullptr; +static FILE * logErrorFile = nullptr; static bool logsOpened = false; @@ -52,7 +50,7 @@ static void openLogFile() { { logInfoFile = fopen ("pb.log","w"); logErrorFile = logInfoFile; - if (logErrorFile == 0) + if (logErrorFile == nullptr) { fputs("FATAL: cannot open the logfile", stderr); exit(EXIT_FAILURE); @@ -69,7 +67,6 @@ static void openLogFile() { } } - static void flushLogs() { if (logInfoFile != stdout && logsOpened) @@ -167,7 +164,6 @@ void ppLogTrace(const char *msg, ...) #endif } - void ppLogDebug( const char *msg, ...) { va_list ap; @@ -213,8 +209,6 @@ void ppTiming(const char *msg, ...) } ////////////////////// BENCH MARK ////////////////////// - - static QTime s_benchMarkTime; static int s_previousTime; static int s_previousFrameTime; @@ -244,7 +238,6 @@ void benchMarkReset(benchData_t *pBench) pBench->frameRatePrevious = pBench->frameRateCurrent; } - void benchMarkInit() { s_benchMarkTime.start(); @@ -311,3 +304,18 @@ void benchMarkResults() printResult(i, &s_benchData[i]); } } + +// Returns the location of where the data is stored +// for an AppImage the dataDir is must be relative to the applicationDirPath +QString Util::dataDir() { + QString appImagePath = qgetenv("APPIMAGE"); + + if (appImagePath.isEmpty() ) + return QString(PREFIX)+"/"+QString(DATA_DIR); + QString appImageInternalPath = QApplication::applicationDirPath(); + int i = appImageInternalPath.lastIndexOf(PREFIX); + + appImageInternalPath.truncate(i); + + return (appImageInternalPath+QString(PREFIX)+"/"+QString(DATA_DIR)); +} diff --git a/src/Util.h b/src/Util.h index 3ac552ef..f5370468 100644 --- a/src/Util.h +++ b/src/Util.h @@ -6,7 +6,7 @@ @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman and others, all rights reserved This file is part of the PianoBooster application @@ -32,6 +32,7 @@ #include #include #include +#include using namespace std; @@ -51,8 +52,6 @@ typedef unsigned char byte; #define ppDEBUG(args) ppLogDebug args - - typedef enum { PB_LOG_error, @@ -71,7 +70,6 @@ void ppLogError(const char *msg, ...); void ppTiming(const char *msg, ...); void closeLogs(); - #define SPEED_ADJUST_FACTOR 1000 #define deltaAdjust(delta) ((delta)/SPEED_ADJUST_FACTOR ) @@ -79,5 +77,9 @@ void benchMarkInit(); void benchMark(unsigned int id, QString message); void benchMarkResults(); +class Util { +public: + static QString dataDir(); +}; #endif //__UTIL_H__ From 55402452b894a134f49a3e257118f3963892f78c Mon Sep 17 00:00:00 2001 From: pianobooster Date: Sun, 5 Apr 2020 17:54:37 +0100 Subject: [PATCH 05/84] Version 0.7.3-PREVIEW1 Added the option WITH_INTERNAL_FLUIDSYNTH --- .gitignore | 1 + pkgs/win32/pianobooster.nsi | 88 +++++++++++++++++-------------------- src/CMakeLists.txt | 7 +-- src/GuiMidiSetupDialog.cpp | 8 ++-- src/MidiDevice.cpp | 12 ++--- src/MidiDevice.h | 2 +- src/Settings.cpp | 46 ++++++++++++++----- src/version.txt | 2 +- 8 files changed, 93 insertions(+), 73 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 pkgs/win32/pianobooster.nsi mode change 100644 => 100755 src/version.txt diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 7fa6ffc0..6d3f6db8 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /build*/ /debug*/ +/release*/ CMakeLists.txt.user diff --git a/pkgs/win32/pianobooster.nsi b/pkgs/win32/pianobooster.nsi old mode 100644 new mode 100755 index 4a9d2ad9..7b00ce93 --- a/pkgs/win32/pianobooster.nsi +++ b/pkgs/win32/pianobooster.nsi @@ -7,6 +7,34 @@ !include "MUI2.nsh" +;-------------------------------- +;Defines + + !cd "..\..\" + + !define PB_BUILT_DIR "release\build" + !if ! /FileExists "${PB_BUILT_DIR}\pianobooster.exe" + !error "the release file '${PB_BUILT_DIR}\pianobooster.exe' not found" + !endif + + + ; The Env PB_INSTALL_FILES_PATH must be set to the path of all the addition release files + ; trick to see if at compile time an environment variable exists + ; see https://stackoverflow.com/questions/22149007/nsis-how-to-check-at-compile-time-if-an-environment-variable-exists + !if "$%PB_INSTALL_FILES_PATH%" == "${U+24}%PB_INSTALL_FILES_PATH%" + !error "the environmental variable PB_INSTALL_FILES_PATH is not set" + !endif + + ; Put file there + + !define FILES_FOR_RELEASE $%PB_INSTALL_FILES_PATH% + !echo "The FILES_FOR_RELEASE path is ${FILES_FOR_RELEASE}" + + !if ! /FileExists "${FILES_FOR_RELEASE}\Qt5Core.dll" + !error "File '${FILES_FOR_RELEASE}\Qt5Core.dll' not found" + !endif + + ;-------------------------------- ;General @@ -30,7 +58,7 @@ ;-------------------------------- ;Variables - Var StartMenuFolder + Var StartMenuFolder ;-------------------------------- ;Interface Settings @@ -125,46 +153,34 @@ !insertmacro MUI_LANGUAGE "Ukrainian" !insertmacro MUI_LANGUAGE "Uzbek" !insertmacro MUI_LANGUAGE "Vietnamese" - !insertmacro MUI_LANGUAGE "Welsh" + !insertmacro MUI_LANGUAGE "Welsh" ;-------------------------------- ;Installer Sections Section "Install Section" - SetOutPath "$INSTDIR" - - ; Put file there - File FilesForRelease\pianobooster.exe - File FilesForRelease\*.dll + SetOutPath "$INSTDIR" - CreateDirectory $INSTDIR\fonts - SetOutPath $INSTDIR\fonts - File FilesForRelease\fonts\DejaVuSans.ttf + SetOutPath $INSTDIR + File "${PB_BUILT_DIR}\pianobooster.exe" + File /r "${FILES_FOR_RELEASE}\*.*" - CreateDirectory $INSTDIR\music - SetOutPath $INSTDIR\music - File FilesForRelease\music\BoosterMusicBooks.zip - CreateDirectory $INSTDIR\platforms - SetOutPath $INSTDIR\platforms - File FilesForRelease\platforms\*.dll CreateDirectory $INSTDIR\translations SetOutPath $INSTDIR\translations - File FilesForRelease\translations\*.* + File "${PB_BUILT_DIR}\translations\*.*" CreateDirectory $INSTDIR\doc SetOutPath $INSTDIR\doc - File FilesForRelease\README.md - File FilesForRelease\Changelog.txt - File FilesForRelease\doc\faq.md - File FilesForRelease\license.txt - File FilesForRelease\gplv3.txt + File license.txt + File gplv3.txt CreateDirectory "$DOCUMENTS\My Music" SetOutPath "$DOCUMENTS\My Music" - File /r FilesForRelease\BoosterMusicBooks3 + ; Temporary fix + File /r "${PB_BUILT_DIR}\BoosterMusicBooks\BoosterMusicBooks3" SetOutPath $INSTDIR @@ -179,9 +195,6 @@ Section "Install Section" ;Create shortcuts CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Piano Booster.lnk" "$INSTDIR\pianobooster.exe" "" "$INSTDIR\pianobooster.exe" 0 - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\ReadMe.lnk" "$INSTDIR\doc\ReadMe.md" "" "$INSTDIR\doc\ReadMe.md" 0 - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\ReleaseNotes.lnk" "$INSTDIR\doc\Changelog.txt" "" "$INSTDIR\doc\Changelog.txt" 0 - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\FAQ.lnk" "$INSTDIR\doc\faq.md" "" "$INSTDIR\doc\faq.md" 0 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_END @@ -206,28 +219,7 @@ Section "Uninstall" ; Remove files and uninstaller - Delete $INSTDIR\*.* - Delete $INSTDIR\doc\README.md - Delete $INSTDIR\doc\Changelog.txt - Delete $INSTDIR\doc\faq.md - Delete $INSTDIR\doc\license.txt - Delete $INSTDIR\doc\gplv3.txt - RMDir "$INSTDIR\doc" - - Delete $INSTDIR\fonts\*.* - RMDir "$INSTDIR\fonts" - - Delete $INSTDIR\music\*.* - RMDir "$INSTDIR\music" - - Delete $INSTDIR\platforms\*.* - RMDir "$INSTDIR\platforms" - - Delete $INSTDIR\translations\*.* - RMDir "$INSTDIR\translations" - - Delete $INSTDIR\uninstall.exe - RMDir "$INSTDIR" + RMDir /r "$INSTDIR" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index de352934..aedc887f 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,6 +8,7 @@ if(${CMAKE_SYSTEM} MATCHES "Linux") else() option(USE_BUNDLED_RTMIDI "build with bundled rtmidi" ON) endif() +option(WITH_INTERNAL_FLUIDSYNTH "build with an internal FluidSynth sound generator" OFF) cmake_minimum_required(VERSION 2.4) if(COMMAND cmake_policy) @@ -92,8 +93,8 @@ if(${CMAKE_SYSTEM} MATCHES "Darwin") LINK_LIBRARIES("-framework CoreMidi -framework CoreAudio -framework CoreFoundation -framework OpenGL") endif(${CMAKE_SYSTEM} MATCHES "Darwin") -if(EXPERIMENTAL_USE_FLUIDSYNTH) - ADD_DEFINITIONS(-DEXPERIMENTAL_USE_FLUIDSYNTH) +if(WITH_INTERNAL_FLUIDSYNTH) + ADD_DEFINITIONS(-DWITH_INTERNAL_FLUIDSYNTH) MESSAGE("Building using fluidsynth") SET( PB_BASE_SRCS MidiDeviceFluidSynth.cpp ) @@ -110,7 +111,7 @@ if(EXPERIMENTAL_USE_FLUIDSYNTH) endif(NOT FLUIDSYNTH_FOUND) LINK_LIBRARIES(fluidsynth) endif() -endif(EXPERIMENTAL_USE_FLUIDSYNTH) +endif(WITH_INTERNAL_FLUIDSYNTH) # we need this to be able to include headers produced by uic in our code # (CMAKE_BINARY_DIR holds a path to the build directory, while INCLUDE_DIRECTORIES() works just like INCLUDEPATH from qmake) diff --git a/src/GuiMidiSetupDialog.cpp b/src/GuiMidiSetupDialog.cpp index 8f061eab..d97583ec 100755 --- a/src/GuiMidiSetupDialog.cpp +++ b/src/GuiMidiSetupDialog.cpp @@ -28,7 +28,7 @@ #include "GuiMidiSetupDialog.h" -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH #include "MidiDeviceFluidSynth.h" #endif @@ -42,7 +42,7 @@ GuiMidiSetupDialog::GuiMidiSetupDialog(QWidget *parent) m_latencyChanged = false; midiSetupTabWidget->setCurrentIndex(0); -#ifndef EXPERIMENTAL_USE_FLUIDSYNTH +#ifndef WITH_INTERNAL_FLUIDSYNTH midiSetupTabWidget->removeTab(midiSetupTabWidget->indexOf(tab_2)); #endif @@ -270,7 +270,7 @@ void GuiMidiSetupDialog::updateFluidInfoStatus() void GuiMidiSetupDialog::on_fluidLoadButton_clicked ( bool checked ) { -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH QString lastSoundFont = m_settings->value("LastSoundFontDir","").toString(); if (lastSoundFont.isEmpty()) { @@ -313,7 +313,7 @@ void GuiMidiSetupDialog::on_fluidLoadButton_clicked ( bool checked ) } void GuiMidiSetupDialog::on_fluidClearButton_clicked( bool checked ){ -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH m_settings->clearFluidSoundFontNames(); int i = midiOutputCombo->findText(CMidiDeviceFluidSynth::getFluidInternalName()); if (i>=0) diff --git a/src/MidiDevice.cpp b/src/MidiDevice.cpp index 779965ba..7b94d8b9 100644 --- a/src/MidiDevice.cpp +++ b/src/MidiDevice.cpp @@ -28,14 +28,14 @@ #include "MidiDevice.h" #include "MidiDeviceRt.h" -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH #include "MidiDeviceFluidSynth.h" #endif CMidiDevice::CMidiDevice() { m_rtMidiDevice = new CMidiDeviceRt(); -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH m_fluidSynthMidiDevice = new CMidiDeviceFluidSynth(); #endif m_selectedMidiInputDevice = m_rtMidiDevice; @@ -46,14 +46,14 @@ CMidiDevice::CMidiDevice() CMidiDevice::~CMidiDevice() { delete m_rtMidiDevice; -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH delete m_fluidSynthMidiDevice; #endif } void CMidiDevice::init() { -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH m_fluidSynthMidiDevice->setQSettings(qsettings); #endif @@ -62,7 +62,7 @@ void CMidiDevice::init() QStringList CMidiDevice::getMidiPortList(midiType_t type) { QStringList list; -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH list << m_fluidSynthMidiDevice->getMidiPortList(type); #endif list << m_rtMidiDevice->getMidiPortList(type); @@ -93,7 +93,7 @@ bool CMidiDevice::openMidiPort(midiType_t type, QString portName) m_validOutput = true; return true; } -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH if ( m_fluidSynthMidiDevice->openMidiPort(type, portName) ) { m_selectedMidiOutputDevice = m_fluidSynthMidiDevice; diff --git a/src/MidiDevice.h b/src/MidiDevice.h index 9ce5bc73..2e0346d6 100644 --- a/src/MidiDevice.h +++ b/src/MidiDevice.h @@ -64,7 +64,7 @@ class CMidiDevice : public CMidiDeviceBase private: CMidiDeviceBase* m_rtMidiDevice; -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH CMidiDeviceBase* m_fluidSynthMidiDevice; #endif CMidiDeviceBase* m_selectedMidiInputDevice; diff --git a/src/Settings.cpp b/src/Settings.cpp index 64b1d6a3..627925d7 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -49,7 +49,7 @@ #include "QtWindow.h" #include "version.txt" -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH #include "MidiDeviceFluidSynth.h" #endif @@ -544,32 +544,58 @@ void CSettings::updateWarningMessages() } void CSettings::setupDefaultSoundFont(){ -#if EXPERIMENTAL_USE_FLUIDSYNTH +#if WITH_INTERNAL_FLUIDSYNTH - if (getFluidSoundFontNames().empty() && !m_song->validMidiOutput()) + QFileInfo defaultSoundFont = QFileInfo(); + + if (getFluidSoundFontNames().empty() && !m_song->validMidiOutput() && !contains("LastSoundFontDir")) { QString appPath = qEnvironmentVariable("APPIMAGE"); - if (appPath.isEmpty()) + if (!appPath.isEmpty()) { + appPath= QFileInfo(appPath).path(); + } + else { appPath = QApplication::applicationDirPath(); } QDir directory(appPath); - directory.cd("SoundFont"); + directory.cd("soundfont"); QStringList dirList = directory.entryList(QStringList(),QDir::AllEntries); foreach(QString filename, dirList) { // Find the first sound fount file if ( filename.endsWith(".sf2", Qt::CaseInsensitive ) ) { - setFluidSoundFontNames(directory.filePath(filename)); - setValue("Midi/Output",CMidiDeviceFluidSynth::getFluidInternalName() ); - setValue("LastSoundFontDir", directory.path()); - saveSoundFontSettings(); - m_song->openMidiPort(CMidiDevice::MIDI_OUTPUT, CMidiDeviceFluidSynth::getFluidInternalName()); + defaultSoundFont.setFile(directory.path(), filename); break; } } + +#if defined (Q_OS_LINUX) || defined (Q_OS_UNIX) + if (!defaultSoundFont.isFile()) + { + QStringList possibleSoundFontFolders = {"/usr/share/soundfonts","/usr/share/sounds/sf2"}; + for (QString soundFontFolder:possibleSoundFontFolders) + { + // fluid-soundfont-gm Fluid (R3) General MIDI SoundFont (GM) package + QFileInfo foundSoundFont(soundFontFolder, "FluidR3_GM.sf2"); + if (foundSoundFont.isFile()) + { + defaultSoundFont=foundSoundFont; + break; + } + } + } +#endif + + if (defaultSoundFont.isFile()) { + setFluidSoundFontNames(defaultSoundFont.filePath()); + setValue("Midi/Output",CMidiDeviceFluidSynth::getFluidInternalName() ); + setValue("LastSoundFontDir", defaultSoundFont.path()); + saveSoundFontSettings(); + m_song->openMidiPort(CMidiDevice::MIDI_OUTPUT, CMidiDeviceFluidSynth::getFluidInternalName()); + } } #endif } diff --git a/src/version.txt b/src/version.txt old mode 100644 new mode 100755 index 1cd89703..01419da3 --- a/src/version.txt +++ b/src/version.txt @@ -1,2 +1,2 @@ -#define PB_VERSION "0.7.3-SNAPSHOT" +#define PB_VERSION "0.7.3-PREVIEW1" #define MUSIC_RELEASE 3 From 50e6358dc7140cf5fc84575dc8342fc873479a42 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Wed, 8 Apr 2020 14:17:15 +0100 Subject: [PATCH 06/84] Code changes needed for Mac OS. --- .gitignore | 0 icons/MacOS/pianobooster.icns | Bin 0 -> 65935 bytes pkgs/deb/debian.rules | 0 pkgs/slack/pianobooster.SlackBuild | 0 pkgs/win32/pianobooster.nsi | 0 src/CMakeLists.txt | 24 +++++++++++++++++++++++- src/Draw.cpp | 19 ++++++++++--------- src/GuiMidiSetupDialog.cpp | 4 ++-- src/MidiDeviceFluidSynth.cpp | 0 src/MidiTrack.cpp | 2 +- src/QtWindow.cpp | 4 ++-- src/Settings.cpp | 7 +++---- src/version.txt | 0 13 files changed, 41 insertions(+), 19 deletions(-) mode change 100755 => 100644 .gitignore create mode 100644 icons/MacOS/pianobooster.icns mode change 100755 => 100644 pkgs/deb/debian.rules mode change 100755 => 100644 pkgs/slack/pianobooster.SlackBuild mode change 100755 => 100644 pkgs/win32/pianobooster.nsi mode change 100755 => 100644 src/CMakeLists.txt mode change 100755 => 100644 src/GuiMidiSetupDialog.cpp mode change 100755 => 100644 src/MidiDeviceFluidSynth.cpp mode change 100755 => 100644 src/version.txt diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/icons/MacOS/pianobooster.icns b/icons/MacOS/pianobooster.icns new file mode 100644 index 0000000000000000000000000000000000000000..3ea5226625f713a975c9aa3d007ee0b199db3faa GIT binary patch literal 65935 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 Z#Hl}uO69230DA+G4ILUq?+Ex_`)^(eghv1X literal 0 HcmV?d00001 diff --git a/pkgs/deb/debian.rules b/pkgs/deb/debian.rules old mode 100755 new mode 100644 diff --git a/pkgs/slack/pianobooster.SlackBuild b/pkgs/slack/pianobooster.SlackBuild old mode 100755 new mode 100644 diff --git a/pkgs/win32/pianobooster.nsi b/pkgs/win32/pianobooster.nsi old mode 100755 new mode 100644 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt old mode 100755 new mode 100644 index aedc887f..f2d81ba6 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,6 +90,7 @@ endif(${CMAKE_SYSTEM} MATCHES "Windows") if(${CMAKE_SYSTEM} MATCHES "Darwin") ADD_DEFINITIONS(-D__MACOSX_CORE__) + ADD_DEFINITIONS(-std=c++11) LINK_LIBRARIES("-framework CoreMidi -framework CoreAudio -framework CoreFoundation -framework OpenGL") endif(${CMAKE_SYSTEM} MATCHES "Darwin") @@ -220,9 +221,30 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) # here we instruct CMake to build "pianobooster" executable from all of the source files if(APPLE) - ADD_EXECUTABLE( pianobooster MACOSX_BUNDLE ${PIANOBOOSTER_SRCS} + # the property added the pianobooster icon to Info.plist + set(MACOSX_BUNDLE_ICON_FILE pianobooster.icns) + + # Tells CMake where to find and install the pianobooster icon + set(pianobooster_ICON ${CMAKE_CURRENT_SOURCE_DIR}/../icons/MacOS/pianobooster.icns) + set_source_files_properties(${pianobooster_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + + set(pianobooster_TRANSLATIONS ${CMAKE_CURRENT_BINARY_DIR}/translations/langs.json) + set_source_files_properties(${pianobooster_TRANSLATIONS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/translations") + + set(pianobooster_MUSIC ${CMAKE_CURRENT_SOURCE_DIR}/../music/BoosterMusicBooks.zip) + set_source_files_properties(${pianobooster_MUSIC} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/music") + set(pianobooster_FONT ${CMAKE_CURRENT_SOURCE_DIR}/fonts/DejaVuSans.ttf) + set_source_files_properties(${pianobooster_FONT} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/fonts") + + ADD_EXECUTABLE( pianobooster MACOSX_BUNDLE + ${pianobooster_ICON} ${pianobooster_TRANSLATIONS} + ${pianobooster_MUSIC} ${pianobooster_FONT} + ${PIANOBOOSTER_SRCS} ${PIANOBOOSTER_MOC_SRCS} ${PIANOBOOSTER_RC_SRCS} ${PIANOBOOSTER_UI_HDRS} ${PIANOBOOSTER_RCS} ) + + add_custom_target(install-translations cp -R -v ${CMAKE_CURRENT_BINARY_DIR}/translations/*.qm ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.app/Contents/Resources/translations) + endif(APPLE) if(UNIX) diff --git a/src/Draw.cpp b/src/Draw.cpp index 5d1a5833..647f5213 100644 --- a/src/Draw.cpp +++ b/src/Draw.cpp @@ -46,16 +46,17 @@ CDraw::CDraw(CSettings* settings) QStringList listPathFonts; #if defined(USE_FONT) - listPathFonts.push_back(USE_FONT); + listPathFonts.append(USE_FONT); #endif - listPathFonts.push_back(Util::dataDir()+"/fonts/DejaVuSans.ttf"); - listPathFonts.push_back(QApplication::applicationDirPath() + "/fonts/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/dejavu/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/TTF/dejavu/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/TTF/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/share/fonts/truetype/DejaVuSans.ttf"); - listPathFonts.push_back("/usr/local/share/fonts/dejavu/DejaVuSans.ttf"); + listPathFonts.append(Util::dataDir()+"/fonts/DejaVuSans.ttf"); + listPathFonts.append(QApplication::applicationDirPath() + "/fonts/DejaVuSans.ttf"); + listPathFonts.append(QApplication::applicationDirPath() + "/../Resources/fonts/DejaVuSans.ttf"); + listPathFonts.append("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"); + listPathFonts.append("/usr/share/fonts/dejavu/DejaVuSans.ttf"); + listPathFonts.append("/usr/share/fonts/TTF/dejavu/DejaVuSans.ttf"); + listPathFonts.append("/usr/share/fonts/TTF/DejaVuSans.ttf"); + listPathFonts.append("/usr/share/fonts/truetype/DejaVuSans.ttf"); + listPathFonts.append("/usr/local/share/fonts/dejavu/DejaVuSans.ttf"); for (int i=0;iclear(); #if defined (Q_OS_LINUX) - audioDriverCombo->addItems({"alsa","pulseaudio"}); + audioDriverCombo->addItems({"pulseaudio", "alsa"}); #elif defined (Q_OS_UNIX) || defined (Q_OS_DARWIN) audioDriverCombo->addItems({"pulseaudio"}); #endif @@ -88,7 +88,7 @@ void GuiMidiSetupDialog::init(CSong* song, CSettings* settings) masterGainSpin->setValue(m_settings->value("FluidSynth/masterGainSpin","40").toInt()); reverbCheck->setChecked(m_settings->value("FluidSynth/reverbCheck","false").toBool()); chorusCheck->setChecked(m_settings->value("FluidSynth/chorusCheck","false").toBool()); - setComboFromSetting(audioDriverCombo, "FluidSynth/audioDriverCombo","alsa"); + setComboFromSetting(audioDriverCombo, "FluidSynth/audioDriverCombo","pulseaudio"); setComboFromSetting(sampleRateCombo, "FluidSynth/sampleRateCombo","22050"); setComboFromSetting(bufferSizeCombo, "FluidSynth/bufferSizeCombo","128"); setComboFromSetting(bufferCountCombo, "FluidSynth/bufferCountCombo","4"); diff --git a/src/MidiDeviceFluidSynth.cpp b/src/MidiDeviceFluidSynth.cpp old mode 100755 new mode 100644 diff --git a/src/MidiTrack.cpp b/src/MidiTrack.cpp index 9c879924..96ffacb4 100644 --- a/src/MidiTrack.cpp +++ b/src/MidiTrack.cpp @@ -284,7 +284,7 @@ void CMidiTrack::readMetaEvent(byte_t type) case METATEMPO: /* Set Tempo */ { - register byte b1,b2, b3; + byte b1,b2, b3; int tempo; b1 = readVarLen(); diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index 0c3d38a5..b051cff8 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -588,7 +588,7 @@ void QtWindow::about() tr("PianoBooster - Version %1

").arg(PB_VERSION) + tr("Boost your Piano playing skills!

") + "http://pianobooster.sourceforge.net/

" + - tr("Copyright(c) L. J. Barman, 2008-2013; All rights reserved.
") + + tr("Copyright(c) L. J. Barman, 2008-2020; All rights reserved.
") + tr("Copyright(c) Fabien Givors, 2018-2019; All rights reserved.
") + "
" + tr("This program is made available " @@ -801,7 +801,7 @@ void QtWindow::refreshTranslate(){ translationsDir=Util::dataDir()+"/translations/"; #endif #ifdef Q_OS_DARWIN - QApplication::applicationDirPath() + "/../Resources/translations/"; + translationsDir=QApplication::applicationDirPath() + "/../Resources/translations/"; #endif } ppLogInfo("Translations loaded from '%s'", qPrintable(translationsDir)); diff --git a/src/Settings.cpp b/src/Settings.cpp index 627925d7..08609042 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -435,10 +435,9 @@ void CSettings::unzipBoosterMusicBooks() } ppLogInfo(qPrintable("applicationDirPath=" + QApplication::applicationDirPath())); - ppLogTrace("resourceDir3 %s", qPrintable(resourceDir)); + ppLogTrace("resourceDir %s", qPrintable(resourceDir)); QFileInfo zipFile(resourceDir + ZIPFILENAME); - ppLogTrace("xx %s", qPrintable(zipFile.filePath())); QDir destMusicDir; @@ -550,10 +549,10 @@ void CSettings::setupDefaultSoundFont(){ if (getFluidSoundFontNames().empty() && !m_song->validMidiOutput() && !contains("LastSoundFontDir")) { - QString appPath = qEnvironmentVariable("APPIMAGE"); + QString appPath = qgetenv("APPIMAGE"); if (!appPath.isEmpty()) { - appPath= QFileInfo(appPath).path(); + appPath= QFileInfo(appPath).path(); } else { appPath = QApplication::applicationDirPath(); diff --git a/src/version.txt b/src/version.txt old mode 100755 new mode 100644 From f2a6d7f65904ad23cc4d6e15127fc88a101b9e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Parunakian?= Date: Mon, 13 Apr 2020 16:59:54 +0200 Subject: [PATCH 07/84] Bump version --- pkgs/arch/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/arch/PKGBUILD b/pkgs/arch/PKGBUILD index 1c10528b..96b3483c 100644 --- a/pkgs/arch/PKGBUILD +++ b/pkgs/arch/PKGBUILD @@ -6,7 +6,7 @@ build_with_cmake="1" pkgdesc='A MIDI file player that teaches you how to play the piano' origname='PianoBooster' pkgname='pianobooster' -pkgver=0.7.1 +pkgver=0.7.2b pkgrel=1 makedepends=('cmake' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'qt5-tools' 'jack' 'fluidsynth' 'hicolor-icon-theme') depends=('ttf-dejavu' 'unzip' 'hicolor-icon-theme' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'jack' 'libffado' 'fluidsynth' 'soundfont-fluid' 'libnotify') From 41315583caf6c0b53b8198e22630922ab57ce298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Parunakian?= Date: Mon, 13 Apr 2020 17:00:24 +0200 Subject: [PATCH 08/84] Add rtmidi as dependency and build dependency --- pkgs/arch/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/arch/PKGBUILD b/pkgs/arch/PKGBUILD index 96b3483c..856572e6 100644 --- a/pkgs/arch/PKGBUILD +++ b/pkgs/arch/PKGBUILD @@ -8,8 +8,8 @@ origname='PianoBooster' pkgname='pianobooster' pkgver=0.7.2b pkgrel=1 -makedepends=('cmake' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'qt5-tools' 'jack' 'fluidsynth' 'hicolor-icon-theme') -depends=('ttf-dejavu' 'unzip' 'hicolor-icon-theme' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'jack' 'libffado' 'fluidsynth' 'soundfont-fluid' 'libnotify') +makedepends=('cmake' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'qt5-tools' 'jack' 'fluidsynth' 'hicolor-icon-theme' 'rtmidi') +depends=('ttf-dejavu' 'unzip' 'hicolor-icon-theme' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'jack' 'libffado' 'fluidsynth' 'soundfont-fluid' 'libnotify' 'rtmidi') optdepends=('qt5-translations') arch=('x86_64') groups=('qt5') From f516942c8295f2415e29c73ffe9c19a1cbd031fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Parunakian?= Date: Mon, 13 Apr 2020 17:01:25 +0200 Subject: [PATCH 09/84] Use sources from Github release --- pkgs/arch/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/arch/PKGBUILD b/pkgs/arch/PKGBUILD index 856572e6..a3931794 100644 --- a/pkgs/arch/PKGBUILD +++ b/pkgs/arch/PKGBUILD @@ -15,7 +15,7 @@ arch=('x86_64') groups=('qt5') url='https://github.com/captnfab/PianoBooster' license=('GPL3+') -source=("${origname}-${pkgver}.tar.gz") +source=("${origname}-${pkgver}.tar.gz::https://github.com/captnfab/PianoBooster/archive/v${pkgver}.tar.gz") md5sums=('SKIP') build () { From dab34d64f1912d77091c44e01207beb9b92f5a36 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Tue, 14 Apr 2020 20:11:31 +0200 Subject: [PATCH 10/84] Typo fix --- src/GuiMidiSetupDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GuiMidiSetupDialog.cpp b/src/GuiMidiSetupDialog.cpp index 8a345486..851625a0 100644 --- a/src/GuiMidiSetupDialog.cpp +++ b/src/GuiMidiSetupDialog.cpp @@ -128,7 +128,7 @@ void GuiMidiSetupDialog::updateMidiInfoText() else if (midiOutputCombo->currentText().contains("Midi Through", Qt::CaseInsensitive)) midiInfoText->append("" + tr("The use of Midi Through is not recommended!") + ""); else if (midiOutputCombo->currentText().contains("Microsoft GS Wavetable", Qt::CaseInsensitive)) - midiInfoText->append("" + tr("Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!.") + "\n" + midiInfoText->append("" + tr("Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!") + "\n" + tr("(Try a latency fix of 150msc)") + ""); else midiInfoText->append("" + tr("Midi Output Device:") + " " + midiOutputCombo->currentText() +""); From ced6f0ccb7f9e4ebe060f19dee5a57c55f685749 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 18 Apr 2020 10:39:46 +0100 Subject: [PATCH 11/84] Update all pkgbuild --- pkgs/deb/debian.changelog | 3 +++ pkgs/deb/debian.control | 2 +- pkgs/deb/pianobooster.dsc | 6 +++--- pkgs/rpm/pianobooster.spec | 2 +- pkgs/slack/pianobooster.SlackBuild | 2 +- pkgs/slack/pianobooster.info | 4 ++-- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pkgs/deb/debian.changelog b/pkgs/deb/debian.changelog index d99ebec3..581ef62a 100644 --- a/pkgs/deb/debian.changelog +++ b/pkgs/deb/debian.changelog @@ -1,3 +1,6 @@ +pianobooster (v0.7.2b) unstable; urgency=medium + + pianobooster (0.7.0) unstable; urgency=medium * Better installation by 'make install' diff --git a/pkgs/deb/debian.control b/pkgs/deb/debian.control index 6e4471c7..545b9c9b 100644 --- a/pkgs/deb/debian.control +++ b/pkgs/deb/debian.control @@ -1,7 +1,7 @@ Source: pianobooster Section: games Priority: optional -Maintainer: Alexey Loginov +Maintainer: Louis Barman Build-Depends: cmake, debhelper-compat (= 12), diff --git a/pkgs/deb/pianobooster.dsc b/pkgs/deb/pianobooster.dsc index 6cc33151..5ba88d07 100644 --- a/pkgs/deb/pianobooster.dsc +++ b/pkgs/deb/pianobooster.dsc @@ -2,8 +2,8 @@ Format: 3.0 (quilt) Source: pianobooster Binary: pianobooster Architecture: any -Version: 0.7.1 -Maintainer: Alexey Loginov +Version: 0.7.2b +Maintainer: Louis Barman Homepage: https://github.com/captnfab/PianoBooster Standards-Version: 4.4.0 Build-Depends: @@ -22,4 +22,4 @@ Build-Depends: Package-List: pianobooster deb games optional arch=any Files: - 7e32ca7fc4eb65ac39a5bc5d95cd5709 8511345 PianoBooster-0.7.1.tar.gz + 7e32ca7fc4eb65ac39a5bc5d95cd5709 8511345 PianoBooster-v0.7.2b.tar.gz diff --git a/pkgs/rpm/pianobooster.spec b/pkgs/rpm/pianobooster.spec index 2b64618f..f2b6ce29 100644 --- a/pkgs/rpm/pianobooster.spec +++ b/pkgs/rpm/pianobooster.spec @@ -7,7 +7,7 @@ %endif Name: pianobooster -Version: 0.7.1 +Version: 0.7.2b Release: %mkrel 1 Summary: A MIDI file player that teaches you how to play the piano %if 0%{?mageia} diff --git a/pkgs/slack/pianobooster.SlackBuild b/pkgs/slack/pianobooster.SlackBuild index 3aac9984..45b96519 100644 --- a/pkgs/slack/pianobooster.SlackBuild +++ b/pkgs/slack/pianobooster.SlackBuild @@ -10,7 +10,7 @@ PRGNAM=pianobooster ORIGNAM=PianoBooster -VERSION=${VERSION:-0.7.1} +VERSION=${VERSION:-0.7.2b} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} diff --git a/pkgs/slack/pianobooster.info b/pkgs/slack/pianobooster.info index 742d6c89..c06fa457 100644 --- a/pkgs/slack/pianobooster.info +++ b/pkgs/slack/pianobooster.info @@ -1,7 +1,7 @@ PRGNAM="pianobooster" -VERSION="0.7.1" +VERSION="0.7.2b" HOMEPAGE="https://github.com/captnfab/PianoBooster" -DOWNLOAD="PianoBooster-0.7.1.tar.gz" +DOWNLOAD="PianoBooster-0.7.2b.tar.gz" MD5SUM="SKIP" DOWNLOAD_x86_64="" MD5SUM_x86_64="" From 45bbb4029aeca4b67707f6c80d3981b008cf3045 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 18 Apr 2020 11:34:28 +0100 Subject: [PATCH 12/84] =?UTF-8?q?Adding=20French=20&=20Norwegian=20Bokm?= =?UTF-8?q?=C3=A5l=20translations=20that=20were=20made=20to=20the=20weblat?= =?UTF-8?q?e=20master=20branch.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/pianobooster_fr.ts | 18 +++++++++--------- translations/pianobooster_nb.ts | 24 ++++++++++++------------ 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index e133e805..e84e5fd3 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -807,12 +807,12 @@ You can use the PC keyboard instead of a MIDI keyboard; 'x' is middle C. - Vous pouvez utiliser le clavier alphanumérique à la place du clavier-MIDI; 'x' est le Do du milieu. + Vous pouvez utiliser le clavier alphanumérique à la place du clavier MIDI ; 'x' est le Do du milieu. Your keyboard range is <b>octaves %1</b> and <b>semitones %2</b>; 60 is middle C. - L'étendue de votre clavier est de <b>%1 octaves</b> et <b>%2 demi-tons</b>; 60 est le Do du milieu. + L'étendue de votre clavier est de <b>%1 octaves</b> et <b>%2 demi-tons</b> ; 60 est le Do du milieu. @@ -903,7 +903,7 @@ Buffer Counts: - Compteurs du tampon: + Compteurs du tampon : @@ -913,7 +913,7 @@ Buffer Size: - Taille du tampon: + Taille du tampon : @@ -998,7 +998,7 @@ No Sound Output Device selected; Choose a Midi Output Device - Pas de périphérique de sortie audio sélectionnée; choisissez un périphérique de sortie MIDI + Pas de périphérique de sortie audio sélectionné ; choisissez un périphérique de sortie MIDI @@ -1009,7 +1009,7 @@ If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - Si vous n'avez pas de clavier-piano MIDI, vous pouvez utiliser le clavier alphanumérique; 'X' est le Do du milieu. + Si vous n'avez pas de clavier MIDI, vous pouvez utiliser le clavier alphanumérique ; 'X' est le Do du milieu. @@ -1838,12 +1838,12 @@ Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013; Tout droits réservés.<br> + Copyright(c) L. J. Barman, 2008-2013 ; Tous droits réservés.<br> Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - Copyright(c) Fabien Givors, 2018-2019; Tout droits réservés.<br> + Copyright(c) Fabien Givors, 2018-2019 ; Tous droits réservés.<br> @@ -1858,7 +1858,7 @@ Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - Copyright(c) Gary P. Scavone, 2003-2019; Tout droits réservés. + Copyright(c) Gary P. Scavone, 2003-2019 ; Tous droits réservés. diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index 5970e462..876a6e3e 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -1611,7 +1611,7 @@ Ctrl+K - + Ctrl+K @@ -1626,12 +1626,12 @@ Fullscreen mode - + Fullskjermsmodus F11 - + F11 @@ -1646,7 +1646,7 @@ F12 - + F12 @@ -1691,7 +1691,7 @@ Alt+F1 - + Alt+F1 @@ -1758,7 +1758,7 @@ or - + eller @@ -1768,7 +1768,7 @@ <h3>Setting Up</h3> - + <h3>Oppsett</h3> @@ -1798,7 +1798,7 @@ website - + nettside @@ -1808,17 +1808,17 @@ FAQ - + O-S-S and the - + og user forum - + forumet @@ -1909,7 +1909,7 @@ Increase the speed by 5% - + Øk hastigheten med 5% From dadc81dff1a37971093e9b27ddf2fa18d1e57d7d Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 18 Apr 2020 11:44:46 +0100 Subject: [PATCH 13/84] Ran lupdate on the translations --- translations/pianobooster_af.ts | 442 ++++++++++++------------- translations/pianobooster_am.ts | 436 ++++++++++++------------- translations/pianobooster_ar.ts | 442 ++++++++++++------------- translations/pianobooster_as.ts | 440 ++++++++++++------------- translations/pianobooster_az.ts | 436 ++++++++++++------------- translations/pianobooster_be.ts | 440 ++++++++++++------------- translations/pianobooster_bg.ts | 442 ++++++++++++------------- translations/pianobooster_blank.ts | 440 ++++++++++++------------- translations/pianobooster_bn.ts | 440 ++++++++++++------------- translations/pianobooster_br.ts | 444 ++++++++++++------------- translations/pianobooster_bs.ts | 440 ++++++++++++------------- translations/pianobooster_bs_BA.ts | 440 ++++++++++++------------- translations/pianobooster_ca.ts | 450 +++++++++++++------------- translations/pianobooster_cs.ts | 450 +++++++++++++------------- translations/pianobooster_cy.ts | 442 ++++++++++++------------- translations/pianobooster_da.ts | 446 ++++++++++++------------- translations/pianobooster_de.ts | 450 +++++++++++++------------- translations/pianobooster_dz.ts | 436 ++++++++++++------------- translations/pianobooster_el.ts | 446 ++++++++++++------------- translations/pianobooster_eo.ts | 440 ++++++++++++------------- translations/pianobooster_es.ts | 450 +++++++++++++------------- translations/pianobooster_et.ts | 446 ++++++++++++------------- translations/pianobooster_eu.ts | 442 ++++++++++++------------- translations/pianobooster_fa.ts | 442 ++++++++++++------------- translations/pianobooster_fi.ts | 442 ++++++++++++------------- translations/pianobooster_fo.ts | 436 ++++++++++++------------- translations/pianobooster_fr.ts | 450 +++++++++++++------------- translations/pianobooster_fur.ts | 434 +++++++++++++------------ translations/pianobooster_fy.ts | 440 ++++++++++++------------- translations/pianobooster_ga.ts | 440 ++++++++++++------------- translations/pianobooster_gd.ts | 442 ++++++++++++------------- translations/pianobooster_gl.ts | 450 +++++++++++++------------- translations/pianobooster_gu.ts | 440 ++++++++++++------------- translations/pianobooster_he.ts | 444 ++++++++++++------------- translations/pianobooster_hi.ts | 440 ++++++++++++------------- translations/pianobooster_hr.ts | 440 ++++++++++++------------- translations/pianobooster_hu.ts | 442 ++++++++++++------------- translations/pianobooster_hy.ts | 436 ++++++++++++------------- translations/pianobooster_id.ts | 440 ++++++++++++------------- translations/pianobooster_is.ts | 450 +++++++++++++------------- translations/pianobooster_it.ts | 446 ++++++++++++------------- translations/pianobooster_ja.ts | 446 ++++++++++++------------- translations/pianobooster_ka.ts | 436 ++++++++++++------------- translations/pianobooster_kk.ts | 440 ++++++++++++------------- translations/pianobooster_kn.ts | 440 ++++++++++++------------- translations/pianobooster_ko.ts | 442 ++++++++++++------------- translations/pianobooster_ks.ts | 434 +++++++++++++------------ translations/pianobooster_ku.ts | 436 ++++++++++++------------- translations/pianobooster_lt.ts | 444 ++++++++++++------------- translations/pianobooster_lv.ts | 440 ++++++++++++------------- translations/pianobooster_mg.ts | 436 ++++++++++++------------- translations/pianobooster_mi.ts | 434 +++++++++++++------------ translations/pianobooster_ml.ts | 440 ++++++++++++------------- translations/pianobooster_mn.ts | 436 ++++++++++++------------- translations/pianobooster_mr.ts | 440 ++++++++++++------------- translations/pianobooster_ms.ts | 448 ++++++++++++------------- translations/pianobooster_my.ts | 434 +++++++++++++------------ translations/pianobooster_nb.ts | 446 ++++++++++++------------- translations/pianobooster_ne.ts | 436 ++++++++++++------------- translations/pianobooster_nl.ts | 448 ++++++++++++------------- translations/pianobooster_nn.ts | 440 ++++++++++++------------- translations/pianobooster_oc.ts | 440 ++++++++++++------------- translations/pianobooster_or.ts | 440 ++++++++++++------------- translations/pianobooster_pa.ts | 440 ++++++++++++------------- translations/pianobooster_pl.ts | 450 +++++++++++++------------- translations/pianobooster_ps.ts | 434 +++++++++++++------------ translations/pianobooster_pt.ts | 444 ++++++++++++------------- translations/pianobooster_pt_BR.ts | 444 ++++++++++++------------- translations/pianobooster_ro.ts | 442 ++++++++++++------------- translations/pianobooster_ru.ts | 450 +++++++++++++------------- translations/pianobooster_se.ts | 436 ++++++++++++------------- translations/pianobooster_si.ts | 436 ++++++++++++------------- translations/pianobooster_sk.ts | 450 +++++++++++++------------- translations/pianobooster_sl.ts | 442 ++++++++++++------------- translations/pianobooster_sq.ts | 436 ++++++++++++------------- translations/pianobooster_sr.ts | 446 ++++++++++++------------- translations/pianobooster_sr@latin.ts | 446 ++++++++++++------------- translations/pianobooster_sv.ts | 444 ++++++++++++------------- translations/pianobooster_ta.ts | 440 ++++++++++++------------- translations/pianobooster_te.ts | 440 ++++++++++++------------- translations/pianobooster_tg.ts | 436 ++++++++++++------------- translations/pianobooster_th.ts | 446 ++++++++++++------------- translations/pianobooster_tr.ts | 444 ++++++++++++------------- translations/pianobooster_tt.ts | 434 +++++++++++++------------ translations/pianobooster_uk.ts | 450 +++++++++++++------------- translations/pianobooster_uz.ts | 440 ++++++++++++------------- translations/pianobooster_vi.ts | 446 ++++++++++++------------- translations/pianobooster_wa.ts | 440 ++++++++++++------------- translations/pianobooster_xh.ts | 436 ++++++++++++------------- translations/pianobooster_zh.ts | 446 ++++++++++++------------- translations/pianobooster_zh_HK.ts | 442 ++++++++++++------------- 91 files changed, 20277 insertions(+), 19913 deletions(-) diff --git a/translations/pianobooster_af.ts b/translations/pianobooster_af.ts index 73207547..c68b5234 100644 --- a/translations/pianobooster_af.ts +++ b/translations/pianobooster_af.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Voeg by - - - - Remove - Verwyder - - - + Settings Instellings - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Monsteringstempo: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Monsteringstempo: + + Clear + - + Reverb Nagalmeffek - + Chorus Kooreffek - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Geen - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... Maak oop... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About Aangaande - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Instellings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File Lêer - + &View Besigtig - + &Song - + Set&up - - + + &Help Hulp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI-lêers - + None Geen diff --git a/translations/pianobooster_am.ts b/translations/pianobooster_am.ts index 189b0059..553be7ad 100644 --- a/translations/pianobooster_am.ts +++ b/translations/pianobooster_am.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add + + Settings - - Remove - ቅድመ እይታ - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus ኮረስ - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ምንም - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &ስለ - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &ምርጫዎች ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &ፋይል - + &View &ተመልከት - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ምንም diff --git a/translations/pianobooster_ar.ts b/translations/pianobooster_ar.ts index 78449adc..4583cbce 100644 --- a/translations/pianobooster_ar.ts +++ b/translations/pianobooster_ar.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@
- - Sound Fonts - - - - - Add - أضف - - - - Remove - احذف - - - + Settings اعدادات - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + معدل أخذ العينة: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - معدل أخذ العينة: + + Clear + - + Reverb صدى - + Chorus كورال - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None لا شيء - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db ديسيبل - + Ab لا بيمول - - + + Eb مي بيمول - - + + Bb سي - - + + C - - + + F# فا دييز - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# صول دييز - + C# دو دييز - + D# ري دييز - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... ا&فتح ... - + Ctrl+O - + Open an existing file افتح الملف المحدد - + E&xit - + Ctrl+Q - + Exit the application - + &About &حوْل - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &التفضيلات ... - + Settings اعدادات - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &ملف - + &View &أعرض - + &Song - + Set&up - - + + &Help &مساعدة - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files ملفات الميدي - + None لا شيء diff --git a/translations/pianobooster_as.ts b/translations/pianobooster_as.ts index 28a32b5b..5f50f9b7 100644 --- a/translations/pianobooster_as.ts +++ b/translations/pianobooster_as.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - যোগ কৰক - - - - Remove - আঁতৰাওঁক - - - + Settings পটভুমি - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus কোৰাস - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None শূণ্য - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About পৰিচিতি - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings পটভুমি - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View দৰ্শন - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None শূণ্য diff --git a/translations/pianobooster_az.ts b/translations/pianobooster_az.ts index 72b3acd1..d31b8c75 100644 --- a/translations/pianobooster_az.ts +++ b/translations/pianobooster_az.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Əlavə Et - - - - Remove - Çıxart - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Yoxdur - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Aç... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Haqqında - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fayl - + &View &Görünüş - + &Song - + Set&up - - + + &Help &Yardım - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Yoxdur diff --git a/translations/pianobooster_be.ts b/translations/pianobooster_be.ts index d79a8918..d25a6f28 100644 --- a/translations/pianobooster_be.ts +++ b/translations/pianobooster_be.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Дадаць - - - - Remove - Выдаліць - - - + Settings Настаўленні - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb Рэверберацыя - + Chorus Хор - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Няма - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Адкрыць... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Аб праграме - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Настаўленні - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Выгляд - + &Song - + Set&up - - + + &Help &Дапамога - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Няма diff --git a/translations/pianobooster_bg.ts b/translations/pianobooster_bg.ts index 39dc5ecc..bc321449 100644 --- a/translations/pianobooster_bg.ts +++ b/translations/pianobooster_bg.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Добавяне - - - - Remove - Премахване - - - + Settings Настройки - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Честота на семплиране: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Честота на семплиране: + + Clear + - + Reverb Реверберация - + Chorus Хор - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Без - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb Си - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Отваряне... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Относно - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Настройки - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Изглед - + &Song &Песен - + Set&up - - + + &Help Помо&щ - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Без diff --git a/translations/pianobooster_blank.ts b/translations/pianobooster_blank.ts index fa25588b..ff608881 100644 --- a/translations/pianobooster_blank.ts +++ b/translations/pianobooster_blank.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add + + Settings - - Remove + + Master Gain: - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + + Ctrl+D + + + + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + + + + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - - - - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None diff --git a/translations/pianobooster_bn.ts b/translations/pianobooster_bn.ts index 3d5aaa13..f2edb42f 100644 --- a/translations/pianobooster_bn.ts +++ b/translations/pianobooster_bn.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - যোগ করো - - - - Remove - অপসারণ - - - + Settings বৈশিষ্ট্যাবলী - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus কোরাস - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ফাঁকা - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... খোলো (&খ)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &পরিচিতি - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &পছন্দগুলি ... - + Settings বৈশিষ্ট্যাবলী - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File ফা&ইল - + &View প্রদর্শ&ন - + &Song - + Set&up - - + + &Help &সহায়তা - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ফাঁকা diff --git a/translations/pianobooster_br.ts b/translations/pianobooster_br.ts index 8a66d207..3c108c1c 100644 --- a/translations/pianobooster_br.ts +++ b/translations/pianobooster_br.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Ouzhpennañ - - - - Remove - Lemel kuit - - - + Settings Arventennoù - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Hini ebet - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1331,7 +1331,7 @@ Key: - Alc'hwez : + Alc'hwez : @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C C - - + + F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Diwar-benn - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Arventennoù - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Restr - + &View G&welout - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Hini ebet diff --git a/translations/pianobooster_bs.ts b/translations/pianobooster_bs.ts index 6c089ab0..992929f6 100644 --- a/translations/pianobooster_bs.ts +++ b/translations/pianobooster_bs.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Додај - - - - Remove - Уклони - - - + Settings Поставке - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ништа - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Отвори... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About О прогр&аму - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Поставке - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Датотека - + &View По&глед - + &Song - + Set&up - - + + &Help П&омоћ - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Ништа diff --git a/translations/pianobooster_bs_BA.ts b/translations/pianobooster_bs_BA.ts index af259a82..8c8c2e7f 100644 --- a/translations/pianobooster_bs_BA.ts +++ b/translations/pianobooster_bs_BA.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Dodaj - - - - Remove - Ukloni - - - + Settings Postavke - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ništa - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Otvori... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About O progr&amu - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Postavke - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Datoteka - + &View Po&gled - + &Song - + Set&up - - + + &Help P&omoć - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Ništa diff --git a/translations/pianobooster_ca.ts b/translations/pianobooster_ca.ts index c798df75..114a39f1 100644 --- a/translations/pianobooster_ca.ts +++ b/translations/pianobooster_ca.ts @@ -4,37 +4,37 @@ CDraw - + C Do - + D Re - + E Mi - + F Fa - + G Sol - + A La - + B Si @@ -42,17 +42,17 @@ CGLView - + Accuracy: Ajustar: - + Song: Cançó: - + Bar: Compàs: @@ -60,17 +60,17 @@ CSettings - + space espai - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ERROR - NO HI HA SO: Per arreglar-ho useu el menú Configuració/Configuració Midi ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ERROR NO HI HA FITXER MIDI: Per arreglar-ho useu el menú Fitxer/Obrir ... @@ -828,12 +828,12 @@ Bucle continu - + Repeat End Bar: - + Repeat Bar is disabled La barra de repetició està desactivada @@ -876,77 +876,72 @@ Dispositiu MIDI de sortida: - - Sound Fonts - Orígens de sons - - - - Add - Afegir - - - - Remove - Eliminar - - - + Settings Configuració - - Audio Device: - Dispositiu de so: - - - - Buffer Counts: - - - - + Master Gain: Guany principal: - + Buffer Size: Mida del búfer: - + Audio Driver: Controlador de so: - + Sample Rate: Ràtio de mostreig: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Reverberació - + Chorus Cors - + + Buffer Count: + + + + Latency Fix Arreglar latència - + Latency Latència - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Cap (teclat de PC) - - - + + + None Cap - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Dispositiu MIDI de sortida: - + %1 mSec - + Enter a value for the latency fix in milliseconds Entreu un valor per arreglar la latència en mil·lisegons - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) - Arxius SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Configuració de Midi - + No Sound Output Device selected; Choose a Midi Output Device No heu seleccionat cap dispositiu de so de sortida; escolliu un dispositiu Midi de sortida - - + + The use of Midi Through is not recommended! L'ús a través de Midi no és recomanada! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Si no teniu un teclat MIDI podeu usar el teclat del PC; 'X' és el C3. - + Midi Input Device: Dispositiu MIDI d'entrada: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) (Intenteu ajustar la latència a 150 msec) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Silenciar la vostra part quan s'està reproduint - - + + Drums Bateria - - + + Melody Melodia - + Set as Right Hand Part Configurar com a part de la mà dreta - + Set as Left Hand Part Configurar com a part de la mà esquerra - + Reset Both Parts Reiniciar ambdues parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned No heu seleccionat cap canal @@ -1280,27 +1280,27 @@ Canal MIDI per la mà esquerra: - + The left and right hand channels must be different Els canals de la mà dreta i esquerra han de ser diferents - + Both left and right hand channels must be none to disable this feature Els dos canals de la mà dreta i esquerra no poden estar seleccionats per tal de desactivar aquesta característica - + Set the MIDI Channels to be used for left and right hand piano parts: Configurar els canals de MIDI a usar per la mà dreta i esquerra per les parts de piano: - + the left hand piano part is using MIDI Channels 1 la part de la mà esquerra està usant el canal MIDI 1 - + the right hand piano part is using MIDI Channels 1 La part de piano de la mà dreta està usant el canal MIDI 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Començar i aturar la reproducció de música @@ -1349,109 +1349,109 @@ Desar el nombre de compassos - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C Do - - + + F# - - + + F Fa - - + + G Sol - - + + D Re - - + + A La - - + + E Mi - - + + B Si - + G# - + C# - + D# - + Playing music from the beginning Reproduir la música des del principi @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Error en l'arxiu Midi - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Error de l'arxiu Midi PianoBooster - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Obre... - + Ctrl+O Ctrl+O - + Open an existing file Obrir un fitxer existent - + E&xit Su&rt - + Ctrl+Q Ctrl+Q - + Exit the application Sortir de l'aplicació - + &About &Sobre - + Show the application's About box Mostrar la caixa Sobre de l'aplicació - + &PC Shortcut Keys - + The PC Keyboard shortcut keys Dreceres de teclat del PC - + &Midi Setup ... &Paràmetres de Midi… - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Configuració de l'entrada i la sortida Midi - + Piano &Keyboard Setting ... Paràmetres del teclat de piano... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Canviar els paràmetres de teclat del piano - + &Fullscreen &Pantalla completa - + Fullscreen mode - + F11 F11 - + &Show the Side Panel &Mostrar el panell lateral - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferències… - + Settings Configuració - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fitxer - + &View &Visualitza - + &Song Cançó: - + Set&up - - + + &Help &Ajuda - - + + Piano Booster Help Ajuda de Piano Booster - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Sobre Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Versió %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Milloreu</b> les vostres habilitats al <b>Piano>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013; Tots els drets reservats.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Copyright(c) L. J. Barman, 2008-2013; Tots els drets reservats.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; Tots els drets reservats.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Aquest programari s'ha publicat seguint les condicions de la General Public Licence GNU versió 3 tal com s'ha publicat per la Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Aquest programari també conté TrMIDI: classes C++ d'entrada/sortida de MIDI en temps real<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; Tots els drets reservats. - + space espai - + PC Keyboard ShortCuts Dreceres de teclat del teclat del PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Acció</th><th>Tecla</th></tr> - + Choose the right hand Escolliu la mà dreta - + Choose both hands Escollir les dues mans - + Choose the left Hand Escollir la mà esquerra - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% Incrementar la velocitat en un 5% - + Change to the Next Song Canviar a la propera cançó - + Change to the Previous Song Change a la cançó anterior - + Change to the Next Book Canviar al següent llibre - + Change to the Previous Book Canviar al llibre anterior - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Tecles del piano fals</td><td>X és el C3</td></tr></table> </center><br> - + Open Midi File Obrir un arxiu Midi - + Midi Files Arxius Midi - + None Cap diff --git a/translations/pianobooster_cs.ts b/translations/pianobooster_cs.ts index ae6a3c7d..395e497b 100644 --- a/translations/pianobooster_cs.ts +++ b/translations/pianobooster_cs.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B H @@ -42,17 +42,17 @@ CGLView - + Accuracy: Přesnost: - + Song: Píseň: - + Bar: Takt: @@ -60,17 +60,17 @@ CSettings - + space mezerník - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... CHYBA, ŽÁDNÝ ZVUK: Pro opravení použijte Nastavení/Nastavení MIDI... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... CHYBA, ŽÁDNÝ SOUBOR MIDI: Pro opravení použijte nabídku Soubor/Otevřít... @@ -828,12 +828,12 @@ Stálá smyčka - + Repeat End Bar: Opakovat závěrečný takt: - + Repeat Bar is disabled Opakování taktu je zakázáno @@ -876,77 +876,72 @@ Zařízení pro výstup MIDI: - - Sound Fonts - Zvukové styly - - - - Add - Přidat - - - - Remove - Odstranit - - - + Settings Nastavení - - Audio Device: - Zvukové zařízení: - - - - Buffer Counts: - Množství vyrovnávací paměti: - - - + Master Gain: Hlavní zesilovač: - + Buffer Size: Velikost vyrovnávací paměti: - + Audio Driver: Ovladač zvuku: - + Sample Rate: Vzorkovací kmitočet: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Ozvěna - + Chorus Sbor - + + Buffer Count: + + + + Latency Fix Oprava prodlevy - + Latency Prodleva - + 0 (msec) 0 (ms) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Žádná (klávesnice počítače) - - - + + + None Žádná - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Zařízení pro výstup MIDI: - + %1 mSec %1 ms - + Enter a value for the latency fix in milliseconds Zadejte hodnotu pro opravu prodlevy v milisekundách - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Oprava prodlevy pracuje pouštěním hudby před tím, <br>co hrajete, aby působila proti zpoždění v tvůrci zvuku.<br><br>Budete potřebovat piano <b>s reproduktory</b>, jež jsou <b>zesíleny</b>.<br><br>Zadejte čas v milisekundách pro zpoždění (1000 ms = 1 s)<br>(Pro Microsoft GS Wavetable SW Synth zkuste hodnotu 150)<br>Pokud si nejste jisti, zadejte jako hodnotu nulu. - - SoundFont2 Files (*.sf2) - Soubory SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Nastavení MIDI - + No Sound Output Device selected; Choose a Midi Output Device Nevybráno žádné zařízení pro výstup zvuku. Zvolte zařízení pro výstup MIDI - - + + The use of Midi Through is not recommended! Používání MIDI Through se nedoporučuje! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Pokud nemáte klávesnici zařízení MIDI, můžete namísto ní používat klávesnici počítače; 'x' je jednočárkované C. - + Midi Input Device: Zařízení pro vstup MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Poznámka: Microsoft GS Wavetable Synth přináší nežádoucí zpoždění! - - - + (Try a latency fix of 150msc) (Zkuste opravu prodlevy 150 ms) - - - Open SoundFont2 File for fluidsynth - Otevřít soubor SoundFont2 pro fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Po době + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Ztlumit při přehrávání váš part - - + + Drums Bubny - - + + Melody Melodie - + Set as Right Hand Part Nastavit jako part pravé ruky - + Set as Left Hand Part Nastavit jako part levé ruky - + Reset Both Parts Nastavit oba hlasy znovu @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Nepřiřazen žádný kanál @@ -1280,27 +1280,27 @@ Kanál MIDI pro levou ruku: - + The left and right hand channels must be different Kanály pro levou a pravou ruku se musí lišit - + Both left and right hand channels must be none to disable this feature Pro zakázání této funkce nesmí být nastavený žádný kanal pro levou ani pravou ruku - + Set the MIDI Channels to be used for left and right hand piano parts: Nastavit kanály MIDI k použití pro hlasy klavíru levé a pravé ruky: - + the left hand piano part is using MIDI Channels 1 Part klavíru levé ruky používá kanál MIDI 1 - + the right hand piano part is using MIDI Channels 1 Part klavíru pravé ruky používá kanál MIDI 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Spustit a zastavit přehrávání not @@ -1349,109 +1349,109 @@ Uložit číslo tohoto taktu - - + + Major Durová (Major) - - + + Minor Mollová (Minor) - + Gb Gb - + Db Db - + Ab Ab - - + + Eb Eb - - + + Bb Hb - - + + C C - - + + F# F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# G# - + C# C# - + D# D# - + Playing music from the beginning Přehrávání not od začátku @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Chyba souboru MIDI - + Cannot open "%1" Nelze otevřít "%1" - + Midi file "%1" is corrupted MIDI soubor "%1" je poškozený @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Chyba v souboru MIDI pro Piano Booster - + Cannot open "%1" Nelze otevřít "%1" - + "%1" is not a Midi File "%1" není soubor MIDI - + "%1" is not a valid Midi file "%1" není platný soubor MIDI - + &Open... &Otevřít... - + Ctrl+O Ctrl+O - + Open an existing file Otevřít existující soubor - + E&xit &Ukončit - + Ctrl+Q Ctrl+Q - + Exit the application Ukončit program - + &About O &programu - + Show the application's About box Ukázat okénko s informacemi o programu - + &PC Shortcut Keys Klávesové &zkratky - + The PC Keyboard shortcut keys Klávesové zkratky - + &Midi Setup ... Nastavení &MIDI... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Nastavit vstup a výstup MIDI - + Piano &Keyboard Setting ... Nastavení &klávesnice klavíru... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Změnit nastavení klávesnice klavíru - + &Fullscreen &Celá obrazovka - + Fullscreen mode Režim celé obrazovky - + F11 F11 - + &Show the Side Panel &Ukázat postranní panel - + Show the Left Side Panel Ukázat levý postranní panel - + F12 F12 - + Show Piano &Keyboard Ukázat &klávesnici klavíru - + Show Piano Keyboard Widget Ukázat panel s klávesnicí klavíru - + &Preferences ... &Nastavení... - + Settings Nastavení - + Ctrl+P Ctrl+P - + Song &Details ... Podrobnosti pí&sně... - + Song Settings Nastavení písně - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Soubor - + &View &Pohled - + &Song Pí&seň - + Set&up &Nastavení - - + + &Help Nápo&věda - - + + Piano Booster Help Nápověda k Piano Boosteru - + &Website &Webová stránka - + Piano Booster Website Stránky Piano Boosteru - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Začínáme</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Budete potřebovat <b>klávesy s podporou MIDI</b> a <b>MIDI rozhraní</b> pro Váš počítač.Pokud nemáte klávesy, které toto rozhraní podporují, můžete PianoBooster vyzkoušet na klávesnici vašeho počítače, 'X' je jednočárkované C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Na to, aby jste mohli slyšel zvuk budete potřebovat <b>Syntezátor zvuku MIDI</b>. Operační systém windows obsahuje "Microsoft GS Wavetable software synthesizer", bohužel tento software dosahuje vysokého spoždění (latence). Na linuxu můžete použít - + or nebo - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster pracuje nejlépe s MIDI soubory, které mají rozdělené části na pravou a levou ruku používající MIDI kanály 3 a 4. - + <h3>Setting Up</h3> <h3>Počáteční nastavení</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>První běžte do menu <i>Nastavení/Nastavení MIDI</i> a vyberte takové rozhraní, které podporuje váš hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Dále použíte <i>Soubor/Otevřít</i> pro otevření MIDI souborů s příponou ".mid" nebo karaoke souborů s příponou ".kar". Poté si vyberte jestli chcete hudbu jen <i>poslouchat</i> nebo <i>hrát pospolu</i> na Vaších klávesách. Je možné také nastavit<i>úrovně</i> obtížnosti na levém panelu. Až budete připraveni klikněte na tlačítko s <i>ikonou play</i> (nebo zmáčkněte <i>mezerník</i>) ke spuštění hudby. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Rady jak hrát na klavír</h3><p>Pro rady jak hrát na klavír se podívejte na: - + Piano Hints Rady na Klavír - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Pro více informací</h3><p>Pro více informací prosím navštivte - + website webovou stránku PianoBoosteru nebo - + the PianoBooster často kladené otázky PianoBoosteru - + FAQ FAQ - + and the a - + user forum uživatelské fórum - + About Piano Booster O programu Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - verze %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Pozvedněte</b> své <b>dovednosti hry na klavír</b>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Kopírovací právo (c) L. J. Barman, 2008-2013; Všechna práva vyhrazena.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Kopírovací právo (c) L. J. Barman, 2008-2013; Všechna práva vyhrazena.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Kopírovací právo (c) Fabien Givors, 2018-2019; Všechna práva vyhrazena.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Tento program je dostupný za podmínek GNU General Public License verze 3, jak jsou zveřejněny Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Tento program také obsahuje RtMIDI: třídy MIDI i/o C++ ve skutečném čase<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Kopírovací právo (c) Gary P. Scavone, 2003-2019; Všechna práva vyhrazena. - + space mezerník - + PC Keyboard ShortCuts Klávesové zkratky - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Klávesové zkratky</center></h2><p>Byly stanoveny následující klávesové zkratky.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Činnost</th><th>Klávesa</th></tr> - + Choose the right hand Vybrat pravou ruku - + Choose both hands Vybrat obě ruce - + Choose the left Hand Vybrat levou ruku - + Play from start toggle Přepnutí Přehrát od začátku - + Play Pause Toggle Přepnutí Přehrát/Pozastavit - - + + Increase the speed by 5% Zvýšit rychlost o 5 % - + Change to the Next Song Změnit na další píseň - + Change to the Previous Song Změnit na předchozí píseň - + Change to the Next Book Změnit na další knihu - + Change to the Previous Book Změnit na předchozí knihu - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Nepravé klávesy klavíru</td><td>X je jednočárkované C</td></tr></table> </center><br> - + Open Midi File Otevřít soubor MIDI - + Midi Files Soubory MIDI - + None Žádný diff --git a/translations/pianobooster_cy.ts b/translations/pianobooster_cy.ts index 364d20b2..17d59d18 100644 --- a/translations/pianobooster_cy.ts +++ b/translations/pianobooster_cy.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Ychwanegu - - - - Remove - Tynnu - - - + Settings Gosodiadau - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Sampl graddfa: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Sampl graddfa: + + Clear + - + Reverb adleisio - + Chorus Corws - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Dim - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb Eb - - + + Bb Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Agor... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Ynghylch - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Gosodiadau - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Ffeil - + &View &Golwg - + &Song - + Set&up - - + + &Help &Cymorth - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Dim diff --git a/translations/pianobooster_da.ts b/translations/pianobooster_da.ts index d37aa6be..73ffc41a 100644 --- a/translations/pianobooster_da.ts +++ b/translations/pianobooster_da.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Sang: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space mellemrum - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Fortsættende løkke - + Repeat End Bar: Gentag sluttaktstreg: - + Repeat Bar is disabled Gentagtaktstreg er slået fra @@ -876,77 +876,72 @@ Midi-outputenhed: - - Sound Fonts - Lydskrifttyper - - - - Add - Tilføj - - - - Remove - Fjern - - - + Settings Indstillinger - - Audio Device: - Lydenhed: - - - - Buffer Counts: - Mellemlagringstælling: - - - + Master Gain: Primær forforstærker: - + Buffer Size: - + Audio Driver: Lyddriver: - + Sample Rate: Samplehastighed: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Rumklang - + Chorus Kor - + + Buffer Count: + + + + Latency Fix Fiks af forsinkelse - + Latency Forsinkelse - + 0 (msec) 0 (msek.) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Ingen (pc-tastatur) - - - + + + None Ingen - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Midi-outputenhed: - + %1 mSec %1 mSek - + Enter a value for the latency fix in milliseconds Angiv en værdi til rettelse af forsinkelse i millisekunder - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Fikset af forsinkelse fungerer ved at afspille musikken tidligere end dét<br>du afspiller, for at imødegå forsinkelsen i lydgeneratoren.<br><br>Du får brug for at klaver <b>med højtalere</b> som er <b>slået til</b>.<br><br>Angiv tiden i millisekunder for forsinkelsen (1000 mSek = 1 sek.)<br>(For Microsoft GS Wavetable SW Synth foreslås værdien 150)<br>Hvis du ikke er sikker, så angiv værdien nul. - - SoundFont2 Files (*.sf2) - SoundFont2-filer (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Midi-inputenhed: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - Åbn SoundFon2-fil for fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Sluk lyden for din del under afspilning - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Ingen kanal tildelt @@ -1280,27 +1280,27 @@ Venstre hånds MIDI-kanal: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Start og stop afspilning af musik @@ -1349,109 +1349,109 @@ Gem dette taktnummer - - + + Major Dur - - + + Minor Mol - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... Å&bn... - + Ctrl+O Ctrl+O - + Open an existing file Åbn en eksisterende fil - + E&xit &Afslut - + Ctrl+Q Ctrl+Q - + Exit the application Afslut programmet - + &About &Om - + Show the application's About box Vis programmets om-boks - + &PC Shortcut Keys &Pc-genvejstaster - + The PC Keyboard shortcut keys Pc-tastaturets genvejstaster - + &Midi Setup ... &Midi-opsætning ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Opsæt ind- og uddata for MIDI - + Piano &Keyboard Setting ... Piano&tastaturindstilling ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Fuldskærm - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Præferencer ... - + Settings Indstillinger - + Ctrl+P Ctrl+P - + Song &Details ... &Sangdetaljer ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Skift+F1 - + Alt+F1 Alt+F1 - + &File &Fil - + &View &Vis - + &Song &Sang - + Set&up &Opsætning - - + + &Help &Hjælp - - + + Piano Booster Help Hjælp til Piano Booster - + &Website &Hjemmeside - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Om Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space mellemrum - + PC Keyboard ShortCuts PC-tastaturgenveje - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Tastaturgenveje</center></h2><p>De følgende pc-tastaturgenveje er blevet defineret.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Handling</th><th>Tast</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Falske klavertangenter</td><td>X er midte C</td></tr></table> </center><br> - + Open Midi File Åbn Midi-fil - + Midi Files MIDI filer - + None Ingen diff --git a/translations/pianobooster_de.ts b/translations/pianobooster_de.ts index 8828e02f..589ec7b7 100644 --- a/translations/pianobooster_de.ts +++ b/translations/pianobooster_de.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B H @@ -42,17 +42,17 @@ CGLView - + Accuracy: Genauigkeit: - + Song: Lied: - + Bar: Takt: @@ -60,17 +60,17 @@ CSettings - + space Leertaste - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... FEHLER KEIN TON: Im Menu unter Setup/Midi Setup auswählen, um dies zu beheben. - + ERROR NO MIDI FILE: To fix this use menu File/Open ... FEHLER KEINE MIDI DATEI: Im Menu unter File/Open eine Datei auswählen. @@ -828,12 +828,12 @@ Kontinuierliches Wiederholen/Loopen - + Repeat End Bar: Letzten Takt wiederholen: - + Repeat Bar is disabled Taktwiederholung ist deaktiviert @@ -876,77 +876,72 @@ MIDI Ausgabegerät: - - Sound Fonts - Musikschriften - - - - Add - Hinzufügen - - - - Remove - Entfernen - - - + Settings Einstellungen - - Audio Device: - Audiogerät: - - - - Buffer Counts: - - - - + Master Gain: Master Gain: - + Buffer Size: - + Audio Driver: Audiotreiber: - + Sample Rate: Sample Rate: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Hall - + Chorus Chorus - + + Buffer Count: + + + + Latency Fix Latenzkorrektur - + Latency Latenz - + 0 (msec) 0 (ms) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Keines (Computertastatur) - - - + + + None Keines - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: MIDI Ausgabegerät: - + %1 mSec %1 ms - + Enter a value for the latency fix in milliseconds Geben Sie einen Wert für die Latenzkorrektur ein (in ms) - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Die Latenzkorrektur funktioniert, wenn Sie die Musik vor ihrem eigenen Klavierspiel abspielen<br>, um der Verzögerung des Sound Generators entgegenzuwirken.<br><br>Sie benötigen ein Klavier <b>mit Lautsprechern</b> welche <b>eingeschaltet</b> sind.<br><br>Geben Sie die Verzögerung in Millisekunden ein (1000 ms = 1s).<br> (Für den Microsoft GS Wavetable SW Synth ist ein Wert von 150 empfohlen)<br> Falls Sie nicht sicher sind, verwenden Sie den Wert null. - - SoundFont2 Files (*.sf2) - SoundFont2 Dateien (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Midi Konfiguration - + No Sound Output Device selected; Choose a Midi Output Device Kein Audio Ausgabegerät erkannt; wählen Sie ein MIDI Ausgabegerät - - + + The use of Midi Through is not recommended! Die Verwendung von MIDI Through ist nicht empfohlen! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Anstelle eines MIDI Keyboards können Sie die Computertastatur verwenden, 'x' ist C3. - + Midi Input Device: MIDI Eingabegerät: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Hinweis: Der Microsoft GS Wavetable Synth verursacht eine unerwünschte Verzögerung! - - - + (Try a latency fix of 150msc) (Probieren Sie eine Latenzkorrektur von 150ms aus) - - - Open SoundFont2 File for fluidsynth - SoundFont2 Datei für Fluid Synth öffnen - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Nach dem Schlag + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Ihren Abschnitt während des Spielens stumm schalten - - + + Drums Schlagzeug - - + + Melody Melodie - + Set as Right Hand Part Als Teil für die Rechte Hand festlegen - + Set as Left Hand Part Als Teil für die linke Hand festlegen - + Reset Both Parts Beide Teile zurücksetzen @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Kein Kanal zugewiesen @@ -1280,27 +1280,27 @@ MIDI Kanal linke Hand: - + The left and right hand channels must be different Die Kanäle der linken und der rechten Hand müssen verschieden sein - + Both left and right hand channels must be none to disable this feature Die Kanäle der linken und der rechten Hand müssen auf "Kein" gesetzt sein, um dieses Feature zu deaktivieren - + Set the MIDI Channels to be used for left and right hand piano parts: Konfigurieren Sie die MIDI Kanäle so, dass sie für die Abschnitte der linken und der rechten Hand verwendet werden: - + the left hand piano part is using MIDI Channels 1 der Abschnitt der linken Hand benutzt MIDI Kanal 1 - + the right hand piano part is using MIDI Channels 1 der Abschnitt der rechten Hand benutzt MIDI Kanal 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Starten und stoppen die Musik zu spielen @@ -1349,109 +1349,109 @@ Die Taktnummer speichern - - + + Major Dur - - + + Minor Moll - + Gb Gb - + Db Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C C - - + + F# F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# G# - + C# C# - + D# D# - + Playing music from the beginning Die Musik von Anfang an spielen @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error MIDI Dateifehler - + Cannot open "%1" Kann "%1" nicht öffnen - + Midi file "%1" is corrupted MIDI-Datei "%1" ist beschädigt @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster MIDI Dateifehler - + Cannot open "%1" Kann "%1" nicht öffnen - + "%1" is not a Midi File "%1" ist keine MIDI-Datei - + "%1" is not a valid Midi file "%1" ist keine gültige MIDI-Datei - + &Open... &Öffnen... - + Ctrl+O Ctrl+O - + Open an existing file Bereits vorhandene Datei öffnen - + E&xit &Schliessen - + Ctrl+Q Ctrl+Q - + Exit the application Das Programm schliessen - + &About &Über - + Show the application's About box Den "Über" Dialog des Programms anzeigen - + &PC Shortcut Keys &Computer-Tastenkombinationen - + The PC Keyboard shortcut keys Die Computer-Tastenkombinationen - + &Midi Setup ... &MIDI Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output MIDI Eingabe und Ausgabe konfigurieren - + Piano &Keyboard Setting ... Klavier &Tastatur Einstellungen ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Klaviertastatur Einstellungen anpassen - + &Fullscreen &Vollbild - + Fullscreen mode Vollbildmodus - + F11 F11 - + &Show the Side Panel &Side Panel anzeigen - + Show the Left Side Panel Zeige die linke Anzeige - + F12 F12 - + Show Piano &Keyboard Zeige &Tasten des Pianos - + Show Piano Keyboard Widget Zeige Piano-Tasten-Widget - + &Preferences ... &Einstellungen ... - + Settings Einstellungen - + Ctrl+P Ctrl+P - + Song &Details ... &Liedinformationen ... - + Song Settings Song-Einstellungen - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Datei - + &View &Ansicht - + &Song &Lied - + Set&up &Setup - - + + &Help &Hilfe - - + + Piano Booster Help Piano Booster Hilfe - + &Website &Website - + Piano Booster Website Website von Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Erste Schritte</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Sie benötigen ein <b>MIDI Piano Keyboard </b> und ein <b>MIDI Interface</b> für Ihren Computer. Wenn Sie kein MIDI Keyboard haben können Sie PianoBooster mit der Tastatur Ihres Computers ausprobieren, 'X' ist C3.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Um den Ton zu hören benötigen Sie einen <b>MIDI Sound Synthesizer</b>. Der "Microsoft GS Wavetable software synthesizer" welcher unter Windows vorinstalliert ist, kann verwendet werden, verursacht aber eine unerwünschte Verzögerung/Latenz. Unter Linux können - + or oder - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster funktioniert am Besten mit MIDI Dateien, welche separate Abschnitte für die linke und die rechte Hand beinhalten, welche die MIDI Kanäle 3 and 4 verwenden. - + <h3>Setting Up</h3> <h3>Installation</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>Verwenden Sie als erstes den Menupunkt <i>Setup/Midi Setup</i> und wählen Sie damit den MIDI Eingang und Ausgang, welche ihrer Hardware entsprechen. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Als nächstes mit <i>Datei/Öffnen</i> eine MIDI Datei (".mid") oder eine Karaoke Datei (".kar") öffnen. Wählen Sie nun, ob Sie die Musik nur <i>hören</i> oder mit dem Klavier <i>dazu spielen</i> wollen, indem Sie den <i>Niveau</i> Level im Side Panel festlegen. Wenn Sie bereit sind, klicken Sie auf das <i>Spielen Icon</i> (oder drücken Sie die <i>Leertaste</i>) um die Musik abzuspielen. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Hinweise zum Klavierpsielen</h3><p>Um Hinweise zum Klavierspielen zu erhalten, besuchen Sie: - + Piano Hints Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Mehr Informationen</h3><p>Für mehr Hilfe besuchen Sie bitte die PianoBooster - + website Website - + the PianoBooster die PianoBooster - + FAQ FAQ - + and the und das - + user forum Benutzerforum - + About Piano Booster Über Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Boost</b> Ihre <b>Piano</b> Spielfähigkeiten!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright (c) L. J. Barman, 2008-2013; Alle Rechte vorbehalten. <br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Copyright (c) L. J. Barman, 2008-2013; Alle Rechte vorbehalten. <br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright (c) Fabien Givors, 2018-2019; Alle Rechte vorbehalten. <br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Dieses Programm wird unter den Bedingungen der GNU General Public License Version 3, wie sie von der Free Software Foundation veröffentlicht wurde, zur Verfügung gestellt.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Dieses Programm enthält auch RtMIDI: Echtzeit MIDI i/o C++ Klassen<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright (c) Gary P. Scavone, 2003-2019; Alle Rechte vorbehalten. - + space Leertaste - + PC Keyboard ShortCuts PC Tastaturkombinationen - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Tastenkürzel</center></h2><p>Die folgenden Tastenkürzel wurden konfiguriert.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr>1<th>2Aktion</th>3<th>4Taste</th>5</tr>6 - + Choose the right hand Wählen Sie die rechte Hand - + Choose both hands Wählen Sie beide Hände - + Choose the left Hand Wählen Sie die linke Hand - + Play from start toggle Vom Startmarker weg spielen - + Play Pause Toggle Start/Stop Marker - - + + Increase the speed by 5% Geschwindigkeit um 5% erhöhen - + Change to the Next Song Zum nächsten Lied springen - + Change to the Previous Song Zum vorherigen Lied springen - + Change to the Next Book Zum nächsten Buch springen - + Change to the Previous Book Zum vorherigen Buch springen - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Falsche Klaviertasten</td><td>X ist C3</td></tr></table> </center><br> - + Open Midi File MIDI Datei öffnen - + Midi Files MIDI Dateien - + None Kein diff --git a/translations/pianobooster_dz.ts b/translations/pianobooster_dz.ts index e2d74a1f..fb2bba8b 100644 --- a/translations/pianobooster_dz.ts +++ b/translations/pianobooster_dz.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - ཁ་སྐོང་འབད། - - - - Remove - རྩ་བསྐྲད། - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus བསྐྱར་གདངས - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ཅི་མེད། - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About སྐོར་ལས། - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File ཡིག་སྣོད། - + &View མཐོང་སྣང་། - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ཅི་མེད། diff --git a/translations/pianobooster_el.ts b/translations/pianobooster_el.ts index df239f4f..79c11d26 100644 --- a/translations/pianobooster_el.ts +++ b/translations/pianobooster_el.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Τραγούδι: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Συνεχής βρόχος/λούπα - + Repeat End Bar: Επανέλαβε την τελική μπάρα: - + Repeat Bar is disabled Η επανάληψη μουσικών μέτρων/bars απενεργοποιήθηκε @@ -876,77 +876,72 @@ Συσκευή με έξοδο MIDI: - - Sound Fonts - Πηγές ήχου - - - - Add - Προσθήκη - - - - Remove - Απομάκρυνση - - - + Settings Ρυθμίσεις - - Audio Device: - Συσκευή Ήχου: - - - - Buffer Counts: - - - - + Master Gain: - + Buffer Size: - + Audio Driver: Οδηγός Ήχου: - + Sample Rate: Ρυθμός δειγματοληψίας/ Sample rate: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Αντήχηση - + Chorus Χορωδία - + + Buffer Count: + + + + Latency Fix Διόρθωση αδράνειας - + Latency Αδράνεια - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Κανένα (Πληκτρολόγιο Η/Υ) - - - + + + None Κανένα - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Συσκευή με έξοδο MIDI: - + %1 mSec - + Enter a value for the latency fix in milliseconds Εισάγετε μια τιμή για την διόρθωση αδράνειας σε χιλιοστά του δευτερολέπτου/msecs - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. H διόρθωση αδράνειας λειτουργεί τρέχοντας την μουσική πιο μπροστά από εκείνο που εσείς<br>παίζετε εκείνη τη στιγμή, για να αντισταθμιστεί η καθυστέρηση μέσα στο πρόγραμμα δημιουργίας ήχων/sound generator.<br><br>Θα χρειαστείτε ένα πιάνο <b>με ηχεία</b> που να είναι <b>σε κατάσταση λειτουργίας</b>.<br><br>Εισάγετε τον χρόνο σε χιλιοστά του δευτερολέπτου για την καθυστέρηση (1000 mSec = 1 sec)<br>(Για τον Microsoft GS Wavetable SW Synth δοκιμάστε μια τιμή 150)<br>Αν δεν είστε σίγουροι/ες, βάλτε μια τιμή μηδέν. - - SoundFont2 Files (*.sf2) - Αρχεία SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Συσκευή με έισοδο MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - Αρχείο Open SoundFont2 για τον fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Βάλτε σε σίγαση το κομμάτι σας όταν παίζετε - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Δεν ανατέθηκε κανένα κανάλι @@ -1280,27 +1280,27 @@ Κανάλι MIDI για αριστερό χέρι: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Αρχίστε και σταματήστε να παίζετε μουσική @@ -1349,109 +1349,109 @@ Αποθηκεύστε τον αριθμό μουσικού μέτρου/Bar - - + + Major - - + + Minor - + Gb - + Db - + Ab Λαb - - + + Eb Μιb - - + + Bb Σιb - - + + C - - + + F# φα# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# σολ# - + C# ντο# - + D# ρε# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Δάσκαλος πιάνου - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... Ά&νοιγμα... - + Ctrl+O Ctrl+O - + Open an existing file Άνοιγμα ενός υπάρχοντος αρχείου - + E&xit Έ&ξοδος - + Ctrl+Q Ctrl+Q - + Exit the application Έξοδο από την εφαρμογή - + &About &Σχετικά - + Show the application's About box Να εμφανισθεί το κουτί Περί της εφαρμογής - + &PC Shortcut Keys Πλήκτρα συντόμευσης του &PC - + The PC Keyboard shortcut keys Τα πλήκτρα συντόμευσης στο πληκτρολόγιο του PC - + &Midi Setup ... Ρύθμιση του &Midi ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Ρυθμίστε την είσοδο και την έξοδο MIDI - + Piano &Keyboard Setting ... Ρυθμίσεις &Πληκτρολογίου του πιάνου ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Προτιμήσεις ... - + Settings Ρυθμίσεις - + Ctrl+P Ctrl+P - + Song &Details ... Λεπτομέρειες &Τραγουδιού ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Αρχείο - + &View Π&ροβολή - + &Song &Τραγούδι - + Set&up Ρύθμ&ιση - - + + &Help &Βοήθεια - - + + Piano Booster Help Βοήθεια για το Piano Booster - + &Website &Ιστότοπος - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Περί Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Συντομεύσεις Πληκτρολογίου Η/Υ - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Συντομεύσεις πληκτρολογίου</center></h2><p>Έχουν ορισθεί οι ακόλουθες συντομεύσεις για πληκτρολόγιο PC.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Ενέργεια</th><th>Πλήκτρο</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Απομίμηση πλήκτρων πιάνου</td><td>Το X είναι το μεσαίο C</td></tr></table> </center><br> - + Open Midi File Άνοιγμα αρχείου Midi - + Midi Files - + None Κανένα diff --git a/translations/pianobooster_eo.ts b/translations/pianobooster_eo.ts index 2c64092c..0c3527e3 100644 --- a/translations/pianobooster_eo.ts +++ b/translations/pianobooster_eo.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Aldoni - - - - Remove - Forigi - - - + Settings Agordo - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb Reeĥo - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Neniu - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab A♭ - - + + Eb E♭ - - + + Bb B♭ - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Malfermi... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Pri - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Agordo - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Dosiero - + &View &Rigardi - + &Song - + Set&up - - + + &Help &Helpo - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Neniu diff --git a/translations/pianobooster_es.ts b/translations/pianobooster_es.ts index ca8030c8..9dd574d5 100644 --- a/translations/pianobooster_es.ts +++ b/translations/pianobooster_es.ts @@ -4,37 +4,37 @@ CDraw - + C Do - + D Re - + E Mi - + F Fa - + G Sol - + A La - + B Si @@ -42,17 +42,17 @@ CGLView - + Accuracy: Precisión: - + Song: Canción: - + Bar: Compás: @@ -60,17 +60,17 @@ CSettings - + space espacio - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ERROR - SIN SONIDO: Para solucionarlo ve a Configuración/Configuración Midi ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ERROR - SIN ARCHIVO MIDI: Para solucionarlo ve a Archivo/Abrir ... @@ -828,12 +828,12 @@ Loop Continuo - + Repeat End Bar: Reptir Compás Final: - + Repeat Bar is disabled Repetir Compases está desactivado @@ -876,77 +876,72 @@ Dipositivo de Salida Midi: - - Sound Fonts - Fuentes de Sonido - - - - Add - Añadir - - - - Remove - Eliminar - - - + Settings Configuración - - Audio Device: - Dispositivo de Audio: - - - - Buffer Counts: - Conteos de búfer: - - - + Master Gain: Ganancia Principal: - + Buffer Size: Tamaño del Buffer: - + Audio Driver: Driver del Audio: - + Sample Rate: Frecuencia de Muestreo: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Reverberación - + Chorus Coro - + + Buffer Count: + + + + Latency Fix Modificación de Latencia - + Latency Latencia - + 0 (msec) 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Ninguno (Teclado PC) - - - + + + None Ninguno - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Dipositivo de Salida Midi: - + %1 mSec - + Enter a value for the latency fix in milliseconds Introduzca un valor para la modificación de latencia en miliseg - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. La modificación de latencia funciona mediante el avance de la música que <br>estas interpretando para contrarrestar el retraso en la generación del sonido <br><br>Necesitarás un piano<b> con altavoces</b> que estén <b>activados</b><br><br>Introduzca el tiempo en milisegundos para el retraso (1.000 ms = 1 seg) <br> (Para Microsoft GS Wavetable SW Synth pruebe con un valor de 150) <br> Si usted no está seguro, use el valor 0. - - SoundFont2 Files (*.sf2) - Archivos SoundFonts2 (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup Configuración Midi - + No Sound Output Device selected; Choose a Midi Output Device Sin Dispositivo de Salida Seleccionado; Seleccione un Dispositivo de Salida MIDI - - + + The use of Midi Through is not recommended! El uso a través del Midi no es recomendable! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Si no tiene un Teclado Midi puede utilizar el teclado del PC; 'X' es el C central. - + Midi Input Device: Dipositivo de Entrada Midi: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Aviso: el sintetizador Microsoft GS Wavetable introduce un retraso no intencionado. - - - + (Try a latency fix of 150msc) (Probar con una corrección de latencia de 150 mseg) - - - Open SoundFont2 File for fluidsynth - Abrir Archivos SoundFont2 para fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Después del Compás + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Silenciar tu parte al tocar - - + + Drums Tambores - - + + Melody Melodía - + Set as Right Hand Part Seleccionar para Mano Derecha - + Set as Left Hand Part Seleccionar para Mano Izquierda - + Reset Both Parts Reinicilizar Ambas Partes @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Sin canal asignado @@ -1280,27 +1280,27 @@ Canal Midi Mano Izquierda: - + The left and right hand channels must be different Los canales de la mano derecha e izquierda deben ser diferentes - + Both left and right hand channels must be none to disable this feature Ambos canales izquierdo y derecho no deben desactivar esta función - + Set the MIDI Channels to be used for left and right hand piano parts: Seleccionar los Canales MIDI usados por la mano izquierda y derecha en las partes de piano: - + the left hand piano part is using MIDI Channels 1 La parte para la mano izquierda está usando el Canal MIDI 1 - + the right hand piano part is using MIDI Channels 1 La parte para la mano derecha está usando el Canal MIDI 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Empezar y parar de tocar la música @@ -1349,109 +1349,109 @@ Guardar este Número de Compás - - + + Major Mayor - - + + Minor Menor - + Gb Solb - + Db Reb - + Ab Lab - - + + Eb Mib - - + + Bb Sib - - + + C Do - - + + F# Fa# - - + + F Fa - - + + G Sol - - + + D Re - - + + A La - - + + E Mi - - + + B Si - + G# Sol# - + C# Do# - + D# Re# - + Playing music from the beginning Tocar desde el principio @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Error en Archivo Midi - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Midi - - - + + + PianoBooster Midi File Error Piano Booster Archivo Midi Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abrir un archivo existente - + E&xit &Salir - + Ctrl+Q Ctrl+Q - + Exit the application Salir de la Aplicación - + &About So&bre - + Show the application's About box Mostrar el Formulario sobre la Aplicación - + &PC Shortcut Keys &Atajos de Teclado del PC - + The PC Keyboard shortcut keys Atajos del Teclado del PC - + &Midi Setup ... Configuración &Midi... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Configurar la entrada y salida Midi - + Piano &Keyboard Setting ... Configuración del &Teclado del Piano... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Cambiar la configuración del teclado musical - + &Fullscreen Pantalla Completa (&F) - + Fullscreen mode - + F11 F11 - + &Show the Side Panel Mo&strar el Panel Lateral - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard Mostrar piano y teclado - + Show Piano Keyboard Widget - + &Preferences ... &Preferencias ... - + Settings Configuración - + Ctrl+P Ctrl+P - + Song &Details ... Detalle&s de la Canción... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Archivo - + &View &Ver - + &Song &Canción - + Set&up Config&uración - - + + &Help A&yuda - - + + Piano Booster Help Ayuda de Piano Booster - + &Website &Web - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Sobre Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Versión %1</b><br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>¡Mejora </b>tus <b>habilidades </b>de piano!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013; Todos los derechos reservados.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Copyright(c) L. J. Barman, 2008-2013; Todos los derechos reservados.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; Todos los derechos reservados.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Este programa está disponible bajo los términos de la Licencia Pública General de GNU versión 3 publicada por la Fundación de Software Libre.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Este programa también contiene RtMIDI: clases en tiempo real de MIDI i /o C ++ <br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; Todos los derechos reservados. - + space espacio - + PC Keyboard ShortCuts Atajos del Teclado del PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Atajos del Teclado</center></h2><p>Se han definido los siguientes atajos del teclado</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Acción</th><th>Tecla</th></tr> - + Choose the right hand Seleccionar Mano Derecha - + Choose both hands Seleccionar ambas manos - + Choose the left Hand Seleccionar Mano Izquierda - + Play from start toggle Tocar desde el Principio - + Play Pause Toggle Tocar Pausar Alternar - - + + Increase the speed by 5% Aumentar la velocidad un 5% - + Change to the Next Song Ir a la Siguiente Canción - + Change to the Previous Song Ir a la Canción Anterior - + Change to the Next Book Ir al Libro Siguiente - + Change to the Previous Book Ir al Libro Anterior - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Teclas del Piano Simuladas</td><td>X es el C central</td></tr></table> </center><br> - + Open Midi File Abrir Archivo Midi - + Midi Files Archivos Midi - + None Ninguno diff --git a/translations/pianobooster_et.ts b/translations/pianobooster_et.ts index 22e8eff2..3af0dba4 100644 --- a/translations/pianobooster_et.ts +++ b/translations/pianobooster_et.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Pala: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space tühik - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Pidev kordus - + Repeat End Bar: Korduse lõpptakt: - + Repeat Bar is disabled Taktikordus on välja lülitatud @@ -876,77 +876,72 @@ MIDI väljundseade: - - Sound Fonts - - - - - Add - Lisa - - - - Remove - Eemalda - - - + Settings Sätted - - Audio Device: - Heliseade: - - - - Buffer Counts: - Puhviarv: - - - + Master Gain: Üldvõimendus: - + Buffer Size: - + Audio Driver: Heliajur: - + Sample Rate: Diskreetimissagedus: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Järelkaja - + Chorus Koor - + + Buffer Count: + + + + Latency Fix Viivituse korrektsioon - + Latency Viivitus - + 0 (msec) 0 (ms) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Puudub (Arvuti klaviatuur) - - - + + + None Puudub - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: MIDI väljundseade: - + %1 mSec %1 ms - + Enter a value for the latency fix in milliseconds Määra latentsuse ehk viivituse korrigeerimiseks aeg millisekundites - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Viivituse korrektsioon laseb muusikal sinu mängust ette minna,<br>et nullida heligeneratsiooniga tekkiv ajaline nihe.<br><br>Lihtsaks selgituseks on sul tarvis <b>kõlaritega</b> ja <b>üles keeratud</b> helitugevusega pilli.<br><br>Sisesta viivituse aeg millisekundites (1000 ms = 1 s)<br>(Microsoft GS Wavetable SW Synth'i jaoks proovi 150)<br>Kui sa ei ole kindel, siis jäta 0. - - SoundFont2 Files (*.sf2) - SoundFont2 failid (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: MIDI sisendseade: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Vaigista oma osa mängu ajal - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Kanalit pole määratud @@ -1280,27 +1280,27 @@ Vasaku käe MIDI kanal: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Alusta/peata muusika mängimine @@ -1349,109 +1349,109 @@ Salvesta see taktinumber - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Ava... - + Ctrl+O Ctrl+O - + Open an existing file Ava olemasolev fail - + E&xit Väl&jumine - + Ctrl+Q Ctrl+Q - + Exit the application Rakendusest väljumine - + &About &Lähemalt - + Show the application's About box Kuva infot rakendusest - + &PC Shortcut Keys &Arvuti kiirklahvid - + The PC Keyboard shortcut keys Arvuti klaviatuuri kiirklahvid - + &Midi Setup ... &MIDI sätted ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Seadista MIDI sisend ja väljund - + Piano &Keyboard Setting ... Pilli &klahvistiku sätted ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Eelistused ... - + Settings Sätted - + Ctrl+P Ctrl+P - + Song &Details ... &Pala sätted ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fail - + &View &Vaade - + &Song &Pala - + Set&up Sea&distus - - + + &Help &Abi - - + + Piano Booster Help Piano Booster'i abi - + &Website &Veebileht - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Lähemalt Piano Booster'ist - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space tühik - + PC Keyboard ShortCuts Arvutiklaviatuuri kiirklahvid - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Klaviatuuri kiirklahvid</center></h2><p>Järgnevad arvutiklaviatuuri kiirklahvid on seadistatud.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Tegevus</th><th>Klahv</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Võltsklaveri klahv</td><td>X on esimese oktaavi C/do</td></tr></table> </center><br> - + Open Midi File Ava MIDI fail - + Midi Files MIDI failid - + None Puudub diff --git a/translations/pianobooster_eu.ts b/translations/pianobooster_eu.ts index 7b3f6ff6..a6b55cf2 100644 --- a/translations/pianobooster_eu.ts +++ b/translations/pianobooster_eu.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Gehitu - - - - Remove - Kendu - - - + Settings Ezarpenak - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Lagin-emaria: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Lagin-emaria: + + Clear + - + Reverb Erreberberazioa - + Chorus Abesbatzak - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Bat ere ez - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb Mi♭ - - + + Bb Si♭ - - + + C - - + + F# fa# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# sol# - + C# Do# - + D# re# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... I&reki... - + Ctrl+O - + Open an existing file Ireki dagoen fitxategi bat - + E&xit - + Ctrl+Q - + Exit the application - + &About Honi &buruz - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Ezarpenak - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fitxategia - + &View &Ikusi - + &Song - + Set&up - - + + &Help &Laguntza - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI fitxategiak - + None Bat ere ez diff --git a/translations/pianobooster_fa.ts b/translations/pianobooster_fa.ts index 88e8172a..97011712 100644 --- a/translations/pianobooster_fa.ts +++ b/translations/pianobooster_fa.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - اضافه کردن - - - - Remove - حذف - - - + Settings تنظیمات - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + میزان سیگنال (Sample Rate): + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - میزان سیگنال (Sample Rate): + + Clear + - + Reverb برگشت - + Chorus کر - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None هیچ‌کدام - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db dB - + Ab لاb - - + + Eb میb - - + + Bb سیb - - + + C - - + + F# فا# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# دو# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &باز کردن...‌ - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &و درباره - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &تنظیمات... - + Settings تنظیمات - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &پرونده‌ - + &View &نما‌ - + &Song - + Set&up - - + + &Help &کمک‌ - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None هیچ‌کدام diff --git a/translations/pianobooster_fi.ts b/translations/pianobooster_fi.ts index 21ed7437..ea0b611d 100644 --- a/translations/pianobooster_fi.ts +++ b/translations/pianobooster_fi.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space Space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - Ääni-kirjasimet - - - - Add - Lisää - - - - Remove - Poista - - - + Settings Asetukset - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Näytteenottotaajuus: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Näytteenottotaajuus: + + Clear + - + Reverb Kaiku - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ei mikään - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major duuri - - + + Minor molli - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Avaa... - + Ctrl+O Ctrl+O - + Open an existing file Avaa olemassaoleva tiedosto - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Poistu ohjelmasta - + &About &Tietoja - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Asetukset - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Tiedosto - + &View &Näytä - + &Song - + Set&up - - + + &Help &Ohje - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Avaa MIDI-tiedosto - + Midi Files MIDI-tiedostot - + None Ei mikään diff --git a/translations/pianobooster_fo.ts b/translations/pianobooster_fo.ts index d2f06352..e18d1ade 100644 --- a/translations/pianobooster_fo.ts +++ b/translations/pianobooster_fo.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Skoyt uppí - - - - Remove - Tak burtur - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb H - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fila - + &View &Sýning - + &Song - + Set&up - - + + &Help &Hjálp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI fílur - + None diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index e84e5fd3..ddb273b9 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -4,37 +4,37 @@ CDraw - + C Do - + D - + E Mi - + F Fa - + G Sol - + A La - + B Si @@ -42,17 +42,17 @@ CGLView - + Accuracy: Exactitude : - + Song: Morceau : - + Bar: Mesure : @@ -60,17 +60,17 @@ CSettings - + space espace - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ERREUR PAS DE SON : pour corriger ceci, utilisez le menu Paramétrage/Paramètres Midi... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ERREUR PAS DE FICHIER MIDI : pour corriger ceci, utilisez le menu Fichier/Ouvrir... @@ -828,12 +828,12 @@ Bouclage continu - + Repeat End Bar: Répérer la mesure de fin : - + Repeat Bar is disabled La répétition de mesure est désactivée @@ -876,77 +876,72 @@ Périphérique de sortie MIDI : - - Sound Fonts - Banques de son - - - - Add - Ajouter - - - - Remove - Supprimer - - - + Settings Paramètres - - Audio Device: - Périphérique audio : - - - - Buffer Counts: - Compteurs du tampon : - - - + Master Gain: Gain général : - + Buffer Size: Taille du tampon : - + Audio Driver: Pilote audio : - + Sample Rate: Taux d'échantillonnage : - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Réverb - + Chorus Chorus - + + Buffer Count: + + + + Latency Fix Correction de latence - + Latency Latence - + 0 (msec) 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Aucun (clavier alpha-numérique) - - - + + + None Aucun - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Périphérique de sortie MIDI : - + %1 mSec %1 mSec - + Enter a value for the latency fix in milliseconds Entrez une valeur en millisecondes pour la correction de latence - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. La correction de latence fonctionne en jouant la musique avant ce que vous<br> jouez pour contrecarrer le délai dans la génération du son.<br>Vous aurez besoin d'un piano <b>avec des haut-parleurs allumés</b>.<br><br>Entrez le temps en millisecondes pour le délai (1000 mSec = 1 sec)<br><br>(pour le synthé logiciel Microsoft GS Wavetable, essayez une valeur de 150)<br><br>Si vous n'êtes pas sûr, mettez une valeur de zéro. - - SoundFont2 Files (*.sf2) - Fichiers de banque de son (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Paramétrage MIDI - + No Sound Output Device selected; Choose a Midi Output Device Pas de périphérique de sortie audio sélectionné ; choisissez un périphérique de sortie MIDI - - + + The use of Midi Through is not recommended! L'utilisation du Midi Through n'est pas recommandée ! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Si vous n'avez pas de clavier MIDI, vous pouvez utiliser le clavier alphanumérique ; 'X' est le Do du milieu. - + Midi Input Device: Périphérique d'entrée MIDI : - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Note : le synthé Microsoft GS Wavetable introduit un délai non-voulu ! - - - + (Try a latency fix of 150msc) (Essayez une correction de latence de 150msc) - - - Open SoundFont2 File for fluidsynth - Ouvrir un fichier de banque de son SF2 pour fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Après la pulsation + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Silencier votre partie lors de la lecture - - + + Drums Percussions - - + + Melody Mélodie - + Set as Right Hand Part Paramétrer en tant que partie de main droite - + Set as Left Hand Part Paramétrer en tant que partie de main gauche - + Reset Both Parts Réinitialiser les deux parties @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned pas de canal assigné @@ -1280,27 +1280,27 @@ Canal MIDI main gauche : - + The left and right hand channels must be different Les canaux de main gauche et droite doivent être différent - + Both left and right hand channels must be none to disable this feature Les canaux de main gauche et droite doivent tous deux être positionnés à "pas de canal assigné" pour désactiver cette fonction - + Set the MIDI Channels to be used for left and right hand piano parts: Paramètrer les canaux MIDI pour être utilisé pour les parties piano de mains gauche et droite : - + the left hand piano part is using MIDI Channels 1 la partie de piano de main gauche utilise le canal 1 - + the right hand piano part is using MIDI Channels 1 la partie de piano de main droite utilise le canal 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Démarrer et arrêter la lecture de la musique @@ -1349,109 +1349,109 @@ Sauvegarder le numéro de cette mesure - - + + Major Majeure - - + + Minor Mineure - + Gb Solb - + Db Réb - + Ab Lab - - + + Eb Mib - - + + Bb Sib - - + + C Do - - + + F# Fa# - - + + F Fa - - + + G Sol - - + + D - - + + A La - - + + E Mi - - + + B Si - + G# Sol# - + C# Do# - + D# Ré# - + Playing music from the beginning Lire la musique depuis le début @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Erreur de fichier MIDI - + Cannot open "%1" Impossible d’ouvrir "%1" - + Midi file "%1" is corrupted Le fichier midi "%1" est corrompu @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Erreur de fichier MIDI Piano Booster - + Cannot open "%1" Impossible d’ouvrir "%1" - + "%1" is not a Midi File "%1" n’est pas un fichier midi - + "%1" is not a valid Midi file "%1" n’est pas un fichier midi valide - + &Open... &Ouvrir... - + Ctrl+O Ctrl+O - + Open an existing file Ouvrir un fichier existant - + E&xit &Quitter - + Ctrl+Q Ctrl+Q - + Exit the application Quitter l'application - + &About À pr&opos - + Show the application's About box Afficher la boîte d'à propos de l'application - + &PC Shortcut Keys &Raccourcis-clavier - + The PC Keyboard shortcut keys Les raccourcis du clavier alphanumérique - + &Midi Setup ... Paramètres &MIDI... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Paramétrer la sortie et l'entrée MIDI - + Piano &Keyboard Setting ... Paramétrer le &clavier-piano ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Modifier les paramètres du clavier-piano - + &Fullscreen &Plein écran - + Fullscreen mode Mode plein-écran - + F11 F11 - + &Show the Side Panel &Afficher le panneau latéral - + Show the Left Side Panel Afficher le panneau-gauche - + F12 F12 - + Show Piano &Keyboard Afficher le &clavier-piano - + Show Piano Keyboard Widget Afficher le clavier piano - + &Preferences ... &Préférences ... - + Settings Paramètres - + Ctrl+P Ctrl+P - + Song &Details ... &Détails du morceau... - + Song Settings Paramètres de morceau - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fichier - + &View &Affichage - + &Song &Morceau - + Set&up &Paramétrage - - + + &Help A&ide - - + + Piano Booster Help Aide de Piano Booster - + &Website &Site sur la toile - + Piano Booster Website Site ouèbe Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Pour commencer</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Vous avez besoin d'un <b>clavier de piano MIDI</b> et d'une <b>interface MIDI</b> pour le PC. Si vous n'avez pas de clavier, vous pouvez toujours essayer PianoBooster en utilisant le clavier alphanumérique du PC, 'X' est le Do médium.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Pour entendre la musique, vous aurez besoin d'un <b>synthétiseur de son General Midi</b>. Le "synthétiseur logiciel Microsoft GS Wavetable" qui vient avec Windows peut être utilisé mais il introduit un délai inacceptable (latence). Sur Linux, vous pouvez utiliser - + or ou - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster fonctionne mieux avec des fichiers MIDI qui ont des parties de piano droite et gauche séparée utilisant les canaux MIDI 3 et 4. - + <h3>Setting Up</h3> <h3>Mise en place</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>Premièrement, utilisez le menu <i>Pramétrages/Paramètres MIDI</i> puis, dans la boîte de dialogue, sélectionnez les interfaces d'entrée et de sortie MIDI qui correspondent à votre matériel. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Ensuite, utilisez <i>Fichier/Ouvrir</i> pour ouvrir un fichier MIDI ".mid" ou un fichier karaoke ".kar". Maintenant, sélectionner si vous voulez seulement <i>écouter</i> de la musique ou <i>jouer avec</i> sur le clavier piano en paramétrant le niveau de <i>compétence</i> sur le coté du panneau. Finalement, lorsque vous êtes prêt, cliquez sur l'<i>icône de lecture</i> (ou pressez la <i>barre d'espace</i>) pour lancer la musique. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Conseils pour jouer du piano</h3><p>Pour des conseils sur la manière de jouer du piano, lire : - + Piano Hints Conseils pour piano - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Plus d'informations</h3><p>Pour plus d'aide sur PianoBooster, veuillez visiter son - + website site ouèbe - + the PianoBooster le PianoBooster - + FAQ FAQ - + and the et le - + user forum forum utilisateur - + About Piano Booster À propos de Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Augmenter</b> vos talents de joueur de <b>Piano</b> !<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013 ; Tous droits réservés.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Copyright(c) L. J. Barman, 2008-2013 ; Tous droits réservés.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019 ; Tous droits réservés.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Ce programme est disponible sous les termes de la Licence Publique Générale GNU version 3 telle que publiée par la Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Ce programme contient également RtMIDI : classes C++ entrée/sortie MIDI<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019 ; Tous droits réservés. - + space espace - + PC Keyboard ShortCuts Raccourcis du clavier alphanumérique - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Raccourcis-clavier</center></h2><p>Les raccourcis-clavier suivants ont été assignés.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Action</th><th>Touche</th></tr> - + Choose the right hand Choisir la main droite - + Choose both hands Choisir les deux mains - + Choose the left Hand Choisir la main gauche - + Play from start toggle Basculer le jouer depuis le début - + Play Pause Toggle Bascule pause lecture - - + + Increase the speed by 5% Augmente la vitesse de 5% - + Change to the Next Song Va au morceau suivant - + Change to the Previous Song Va au morceau précédant - + Change to the Next Book Va au livre suivant - + Change to the Previous Book Va au livre précédant - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Touches de piano factice</td><td>X est le Do du milieu</td></tr></table> </center><br> - + Open Midi File Ouvrir un fichier MIDI - + Midi Files Fichiers MIDI - + None Aucun diff --git a/translations/pianobooster_fur.ts b/translations/pianobooster_fur.ts index 753625de..b20896b3 100644 --- a/translations/pianobooster_fur.ts +++ b/translations/pianobooster_fur.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add + + Settings - - Remove + + Master Gain: - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None No stâ centrâ - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None No stâ centrâ diff --git a/translations/pianobooster_fy.ts b/translations/pianobooster_fy.ts index 6f5bf9fd..15d8fa4b 100644 --- a/translations/pianobooster_fy.ts +++ b/translations/pianobooster_fy.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Taheakje - - - - Remove - Fuortsmite - - - + Settings Ynstellings - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Neat - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Iepenje... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Ynfo oer - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Ynstellings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Triem - + &View Byl&d - + &Song - + Set&up - - + + &Help &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Neat diff --git a/translations/pianobooster_ga.ts b/translations/pianobooster_ga.ts index 3744cbfc..f34dd06b 100644 --- a/translations/pianobooster_ga.ts +++ b/translations/pianobooster_ga.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Cuir Leis - - - - Remove - Bain - - - + Settings Socruithe - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Neamhní - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Oscail... - + Ctrl+O - + Open an existing file Oscail comhad atá ann - + E&xit - + Ctrl+Q - + Exit the application - + &About &Eolas - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Socruithe - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Comhad - + &View &Amharc - + &Song - + Set&up - - + + &Help Cab&hair - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Neamhní diff --git a/translations/pianobooster_gd.ts b/translations/pianobooster_gd.ts index 2a7489d1..ff591dec 100644 --- a/translations/pianobooster_gd.ts +++ b/translations/pianobooster_gd.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Cuir ris - - - - Remove - Thoir air falbh - - - + Settings Roghainnean - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Reat shampallan: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Reat shampallan: + + Clear + - + Reverb Sroighlearachd - + Chorus Còisir - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Chan eil gin - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab A♭ - - + + Eb E♭ - - + + Bb B♭ - - + + C - - + + F# f♯ - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g♯ - + C# c♯ - + D# d♯ - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Mu dhèidhinn - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Roghainnean - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Faidhle - + &View &Sealladh - + &Song - + Set&up - - + + &Help Cob&hair - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files Faidhlichean MIDI - + None Chan eil gin diff --git a/translations/pianobooster_gl.ts b/translations/pianobooster_gl.ts index f75af071..b6740696 100644 --- a/translations/pianobooster_gl.ts +++ b/translations/pianobooster_gl.ts @@ -4,37 +4,37 @@ CDraw - + C C (Do) - + D D (Re) - + E E (Mi) - + F F (Fa) - + G G (Sol) - + A A (La) - + B B (Sí) @@ -42,17 +42,17 @@ CGLView - + Accuracy: Precisión: - + Song: Canción: - + Bar: Barra: @@ -60,17 +60,17 @@ CSettings - + space espazo - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ERRO — SEN SON: Para solucionalo vaia a Configuración/Configuración Midi… - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ERRO — NON HAI FICHEIRO MIDI: Para solucionalo vaia a Ficheiro/Abrir... @@ -828,12 +828,12 @@ Bucle indefinido - + Repeat End Bar: Barra final de repetición: - + Repeat Bar is disabled A barra de repetición está desactivada @@ -876,77 +876,72 @@ Dispositivo de saída MIDI: - - Sound Fonts - Orixes de son - - - - Add - Engadir - - - - Remove - Retirar - - - + Settings Axustes - - Audio Device: - Dispositivo de son: - - - - Buffer Counts: - Conteos do buffer: - - - + Master Gain: Ganancia principal: - + Buffer Size: Tamaño do búffer: - + Audio Driver: Controlador de son: - + Sample Rate: Taxa de mostraxe: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Reverberación - + Chorus Coro - + + Buffer Count: + + + + Latency Fix Corrección da latencia - + Latency Latencia - + 0 (msec) 0 (mseg) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Ningún (teclado do PC) - - - + + + None Ningún - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Dispositivo de saída MIDI: - + %1 mSec %1 mseg - + Enter a value for the latency fix in milliseconds Introduza un valor en milisegundos para a latencia - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. A corrección da latencia funciona executando a música por diante do que se<br>estea a reproducir para contrarrestar o atraso no xerador do son.<br><br>É necesario un teclado de piano<b>con altofalantes</b> que estean <b>prendidos</b>.<br><br>Introduza o tempo do atraso en milisegundos (1000 mseg = 1 seg)<br>(Para o Microsoft GS Wavetable SW Synth probe cun valor de 150)<br>Se non sabe que; valor poñer, poña cero. - - SoundFont2 Files (*.sf2) - Ficheiros SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup Configuración MIDI - + No Sound Output Device selected; Choose a Midi Output Device Non hai dispositivo de saída seleccionado; Escolla un dispositivo de Saída MIDI - - + + The use of Midi Through is not recommended! Non se recomenda o uso a través de MIDI! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Se non ten un teclado MIDI, pode usar o teclado do PCI; «X» é o C (Do) central. - + Midi Input Device: Dispositivo de entrada MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Aviso: o sintetizador Microsoft GS Wavetable introduce un atraso non intencionado! - - - + (Try a latency fix of 150msc) (Probe con unha corrección da latencia de 150 mseg) - - - Open SoundFont2 File for fluidsynth - Abrir ficheiro SoundFont2 para o fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Despois do pulso + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Silenciar a parte interpretada - - + + Drums Tambores - - + + Melody Melodía - + Set as Right Hand Part Asignar á man dereita - + Set as Left Hand Part Asignar á man esquerda - + Reset Both Parts Reiniciar ámbalas partes @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Sen canle asignada @@ -1280,27 +1280,27 @@ Canle MIDI para a man esquerda: - + The left and right hand channels must be different As canles da man dereita e esquerda teñen que ser diferentes - + Both left and right hand channels must be none to disable this feature Ambas as canles, esquerda e dereita, non deben desactivar esta característica - + Set the MIDI Channels to be used for left and right hand piano parts: Estabelecer as canles MIDI para as mans esquerda e dereita nas partes do piano: - + the left hand piano part is using MIDI Channels 1 a parte para a man esquerda está a empregar a canle MIDI 1 - + the right hand piano part is using MIDI Channels 1 a parte para a man dereita está a empregar a canle MIDI 2 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Comezar / Deter a reprodución musical @@ -1349,109 +1349,109 @@ Gardar este número de barra - - + + Major Maior - - + + Minor Menor - + Gb Gb (Sol♭) - + Db Db (Re♭) - + Ab Ab (La♭) - - + + Eb Eb (Mi♭) - - + + Bb Bb (Sí♭) - - + + C C (Do) - - + + F# F# (Fa#) - - + + F F (Fa) - - + + G G (Sol) - - + + D D (Re) - - + + A A (La) - - + + E E (Mi) - - + + B B (Sí) - + G# G# (Sol#) - + C# C# (Do#) - + D# D# (Re#) - + Playing music from the beginning Reproducir a música desde o principio @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Produciuse un erro no ficheiro MIDI - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Produciuse un erro no ficheiro MIDI do PianoBooster - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abrir un ficheiro existente - + E&xit &Saír - + Ctrl+Q Ctrl+Q - + Exit the application Saír do aplicativo - + &About So&bre - + Show the application's About box Amosar a xanela con información sobre o aplicativo - + &PC Shortcut Keys &Teclas de atallo no PC - + The PC Keyboard shortcut keys Teclas de atallo no teclado do PC - + &Midi Setup ... Configuración &MIDI ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Configurar as entradas e saídas MIDI - + Piano &Keyboard Setting ... Axustes do &teclado do piano… - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Cambiar os axustes do teclado do piano - + &Fullscreen Pantalla &completa - + Fullscreen mode Modo de pantalla completa - + F11 F11 - + &Show the Side Panel Amosar o &panel lateral - + Show the Left Side Panel Amosar o panel lateral esquerdo - + F12 F12 - + Show Piano &Keyboard Amosar o &teclado do piano - + Show Piano Keyboard Widget Amosar o trebello do teclado do piano - + &Preferences ... &Preferencias ... - + Settings Axustes - + Ctrl+P Ctrl+P - + Song &Details ... &Detalles da canción... - + Song Settings Axustes do son - + + Ctrl+D + + + + Shift+F1 Maiús+F1 - + Alt+F1 Alt+F1 - + &File &Ficheiro - + &View &Ver - + &Song &Canción - + Set&up Config&uración - - + + &Help &Axuda - - + + Piano Booster Help Axuda de Piano Booster - + &Website Páxina &web - + Piano Booster Website Sitio web de Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Sobre Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Versión %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Mellora</b> as túas habilidades co <b>piano</b>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013; Todos os dereitos reervados.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Copyright(c) L. J. Barman, 2008-2013; Todos os dereitos reervados.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; Todos os dereitos reervados.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Este programa está dispoñíbel baixo os térmos da Licenza Pública Xeral de GNU versión 3 publicada pola Fundación do Software Libre. - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Este programa tamén contén RtMIDI: clases MIDI e/s C++ en tempo real<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; Todos os dereitos reervados. - + space espazo - + PC Keyboard ShortCuts Atallos do teclado do PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Atallos do teclado</center></h2><p>Definironse funcións de atallo nas seguintes teclas do teclado do PC.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Acción</th><th>Tecla</th></tr> - + Choose the right hand Escoller a man dereita - + Choose both hands Escoller ámbalas dúas mans - + Choose the left Hand Escoller a man esquerda - + Play from start toggle Reproducir desde o principio - + Play Pause Toggle Reproducir / Parar - - + + Increase the speed by 5% Aumentar a velocidade nun 5% - + Change to the Next Song Ir á canción seguinte - + Change to the Previous Song Ir á canción anterior - + Change to the Next Book Ir á partitura seguinte - + Change to the Previous Book Ir á partitura anterior - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Teclas de piano simuladas</td><td>X é o do (C) central</td></tr></table> </center><br> - + Open Midi File Abrir un ficheiro MIDI - + Midi Files Ficheiro MIDI - + None Ningún diff --git a/translations/pianobooster_gu.ts b/translations/pianobooster_gu.ts index ccf7e1a3..f1570fe8 100644 --- a/translations/pianobooster_gu.ts +++ b/translations/pianobooster_gu.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - ઉમેરો - - - - Remove - દૂર કરો - - - + Settings સુયોજનો - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus સમુહ ગાન - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None કંઈ નહિં - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About વિશે (&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings સુયોજનો - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File ફાઇલ (&F) - + &View દેખાવ (&V) - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None કંઈ નહિં diff --git a/translations/pianobooster_he.ts b/translations/pianobooster_he.ts index 43447125..eef4b01b 100644 --- a/translations/pianobooster_he.ts +++ b/translations/pianobooster_he.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: דיוק: - + Song: שיר: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - הוסף - - - - Remove - הסר - - - + Settings הגדרות - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + דגימה: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - דגימה: + + Clear + - + Reverb רוורב - + Chorus פזמון - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ללא - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major גדול - - + + Minor קטן - + Gb - + Db - + Ab לה b - - + + Eb מי b - - + + Bb סי b - - + + C C - - + + F# פה# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# סול# - + C# דו# - + D# רה# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &פתיחה... - + Ctrl+O Ctrl+O - + Open an existing file - + E&xit &צא - + Ctrl+Q Ctrl+Q - + Exit the application - + &About &אודות - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen מ&סך מלא - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &העדפות ... - + Settings הגדרות - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &קובץ - + &View &תצוגה - + &Song &שיר - + Set&up - - + + &Help ע&זרה - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File פתיחת קובץ Midi - + Midi Files קובצי Midi - + None ללא diff --git a/translations/pianobooster_hi.ts b/translations/pianobooster_hi.ts index 39b33a29..1b2653f3 100644 --- a/translations/pianobooster_hi.ts +++ b/translations/pianobooster_hi.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - जोड़ें - - - - Remove - हटायें - - - + Settings निर्धारण - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus कोरस - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None कुछ नहीं - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb नि - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... खोलें (&O)... - + Ctrl+O - + Open an existing file मौज़ूदा फ़ाइल को खोलें - + E&xit - + Ctrl+Q - + Exit the application - + &About के बारे में (&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings निर्धारण - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File फ़ाइल (&F) - + &View देखें (&V) - + &Song - + Set&up - - + + &Help मदद (&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None कुछ नहीं diff --git a/translations/pianobooster_hr.ts b/translations/pianobooster_hr.ts index 21df7705..76a42553 100644 --- a/translations/pianobooster_hr.ts +++ b/translations/pianobooster_hr.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Dodaj - - - - Remove - Makni - - - + Settings Postavke - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus Zbor - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nijedan - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb H - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Otvori... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About O &programu - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Postavke ... - + Settings Postavke - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Datoteka - + &View &Prikaz - + &Song - + Set&up - - + + &Help &Pomoć - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Nijedan diff --git a/translations/pianobooster_hu.ts b/translations/pianobooster_hu.ts index 6f6c3f2a..03adfaf8 100644 --- a/translations/pianobooster_hu.ts +++ b/translations/pianobooster_hu.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Hozzáadás - - - - Remove - Eltávolítás - - - + Settings Beállítások - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Mintavételi frekvencia: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Mintavételi frekvencia: + + Clear + - + Reverb Lecsengés - + Chorus Kórus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nincs - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C - - + + F# f♯ - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g♯ - + C# c♯ - + D# d♯ - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Megnyitás... - + Ctrl+O Ctrl+O - + Open an existing file Fájl megnyitása - + E&xit &Kilépés - + Ctrl+Q Ctrl+Q - + Exit the application - + &About Név&jegy - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Teljes képernyő - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Beállítások ... - + Settings Beállítások - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fájl - + &View &Nézet - + &Song - + Set&up - - + + &Help &Segítség - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI fájlok - + None Nincs diff --git a/translations/pianobooster_hy.ts b/translations/pianobooster_hy.ts index 303f4dff..5fbd9056 100644 --- a/translations/pianobooster_hy.ts +++ b/translations/pianobooster_hy.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Ավելացնել - - - - Remove - Հեռացնել - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb Րեվերբերացիա - + Chorus Քորըս - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab Լա♭ - - + + Eb Մի ♭ - - + + Bb Սի♭ - - + + C - - + + F# ֆա♯ - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# սոլ♯ - + C# դո♯ - + D# ռե♯ - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Երաժշտական ծրագիր (Պիանո Բուստեր) - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Նիշք - + &View &Տեսք - + &Song - + Set&up - - + + &Help &Օգնություն - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI նիշքեր - + None diff --git a/translations/pianobooster_id.ts b/translations/pianobooster_id.ts index fffde519..fb3c785f 100644 --- a/translations/pianobooster_id.ts +++ b/translations/pianobooster_id.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Tambah - - - - Remove - Hapus - - - + Settings Pengaturan - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Tidak ada - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major Mayor - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Buka... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Tentang - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Pengaturan - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Berkas - + &View &Tampilan - + &Song - + Set&up - - + + &Help B&antuan - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Buka Berkas MIDI - + Midi Files Berkas MIDI - + None Tidak ada diff --git a/translations/pianobooster_is.ts b/translations/pianobooster_is.ts index bd4b8726..e820500e 100644 --- a/translations/pianobooster_is.ts +++ b/translations/pianobooster_is.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Nákvæmni: - + Song: Lag: - + Bar: Taktur: @@ -60,17 +60,17 @@ CSettings - + space bil - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... VILLA EKKERT HLJÓÐ: Til að laga þetta, farðu í valmyndina Uppsetning/Uppsetning MIDI ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... VILLA ENGIN MIDI-SKRÁ: Til að laga þetta, farðu í valmyndina Skrá/Opna ... @@ -828,12 +828,12 @@ Samfelld lykkja - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ MIDI-úttakstæki: - - Sound Fonts - Hljóðletur - - - - Add - Bæta við - - - - Remove - Fjarlægja - - - + Settings Stillingar - - Audio Device: - Hljóðtæki: - - - - Buffer Counts: - Fjöldi í biðminni: - - - + Master Gain: Aðal-mögnun: - + Buffer Size: Stærð biðminnis: - + Audio Driver: Hljóðkortsrekill: - + Sample Rate: Safntíðni: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Eftirómur - + Chorus Kórus - + + Buffer Count: + + + + Latency Fix Lagfæring á biðtíma - + Latency Biðtími - + 0 (msec) 0 (msek) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Ekkert (lyklaborð tölvu) - - - + + + None Ekkert - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: MIDI-úttakstæki: - + %1 mSec %1 msek - + Enter a value for the latency fix in milliseconds Settu inn gildi fyrir lagfæringu á biðtíma í millísekúndum - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) - SoundFont2-skrár (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Uppsetning MIDI - + No Sound Output Device selected; Choose a Midi Output Device Ekkert hljóðúttakstæki valið; veldu MIDI-úttakstæki - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Ef þú ert ekki með MIDI-hljómborð geturðu notað lyklaborð tölvunnar; 'X' er miðju-C. - + Midi Input Device: MIDI-inntakstæki: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) (prófaðu lagfæringu á biðtíma um 150 msek) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Á eftir slaginu + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums Trommur - - + + Melody Laglína - + Set as Right Hand Part Setja sem hægri handar part - + Set as Left Hand Part Setja sem vinstri handar part - + Reset Both Parts Frumstilla báða parta @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Engri rás úthlutað @@ -1280,27 +1280,27 @@ Vinstri handar MIDI-rás: - + The left and right hand channels must be different Vinstri og hægri rásirnar mega ekki vera eins - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Ræsa og stöðva afspilun @@ -1349,109 +1349,109 @@ Vista þetta taktnúmer - - + + Major Dúr - - + + Minor Moll - + Gb Gb - + Db Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C C - - + + F# F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# G# - + C# C# - + D# D# - + Playing music from the beginning Spilandi tónlist frá upphafi @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Villa í MIDI-skrá - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Píanó Booster - - - + + + PianoBooster Midi File Error Villa í PianoBooster MIDI-skrá - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Opna... - + Ctrl+O Ctrl+O - + Open an existing file Opna fyrirliggjandi skrá - + E&xit &Hætta - + Ctrl+Q Ctrl+Q - + Exit the application Hætta í forritinu - + &About Um &hugbúnaðinn - + Show the application's About box Birta upplýsingaglugga forritsins - + &PC Shortcut Keys &Flýtilyklar á lyklaborði tölvunnar - + The PC Keyboard shortcut keys Flýtilyklar á lyklaborði tölvunnar - + &Midi Setup ... Uppsetning &MIDI ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... Stillingar &nótnaborðs á píanói ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Breyta stillingum nótnaborðs á píanói - + &Fullscreen &Fylla skjáinn - + Fullscreen mode - + F11 F11 - + &Show the Side Panel &Birta hliðarspjaldið - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard Birta &nótnaborð á píanói - + Show Piano Keyboard Widget - + &Preferences ... &Kjörstillingar ... - + Settings Stillingar - + Ctrl+P Ctrl+P - + Song &Details ... Nánar um &lagið ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Skrá - + &View S&koða - + &Song &Lag - + Set&up &Uppsetning - - + + &Help &Hjálp - - + + Piano Booster Help Aðstoð við notkun Piano Booster - + &Website &Vefsvæði - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Um Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Útgáfa %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Bættu</b> hæfileika þína til að spila á <b>píanó</b>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Höfundarréttur (c) L. J. Barman, 2008-2013; Öll réttindi áskilin.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Höfundarréttur (c) L. J. Barman, 2008-2013; Öll réttindi áskilin.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Höfundarréttur (c) Fabien Givors, 2018-2019; Öll réttindi áskilin.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Þetta er frjáls hugbúnaður; þú mátt dreifa honum og/eða breyta samkvæmt skilmálum í almenna GNU GPL3 notkunarleyfinu eins og það er gefið út af Frjálsu hugbúnaðarstofnuninni.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Þetta forrit inniheldur einnig RtMIDI: rauntíma MIDI i/o C++ klasa<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Höfundarréttur (c) Gary P. Scavone, 2003-2019; Öll réttindi áskilin. - + space bil - + PC Keyboard ShortCuts Lyklaborðsstyttingar - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Flýtileiðir á lyklaborði</center></h2><p>Eftirfarandi flýtilyklasamsetningar hafa verið skilgreindar.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand Veldu hægri hendina - + Choose both hands Veldu báðar hendurnar - + Choose the left Hand Veldu vinstri hendina - + Play from start toggle - + Play Pause Toggle Víxla afpilun/bið - - + + Increase the speed by 5% Auka hraðann um 5% - + Change to the Next Song Skipta yfir í næsta lag - + Change to the Previous Song Skipta yfir í fyrra lag - + Change to the Next Book Skipta yfir í næsta lagahefti - + Change to the Previous Book Skipta yfir í fyrra lagahefti - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Opna MIDI-skrá - + Midi Files MIDI-skrár - + None Engin diff --git a/translations/pianobooster_it.ts b/translations/pianobooster_it.ts index 055d2ca4..7e2370f8 100644 --- a/translations/pianobooster_it.ts +++ b/translations/pianobooster_it.ts @@ -4,37 +4,37 @@ CDraw - + C Do - + D Re - + E Mi - + F Fa - + G Sol - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Canzone: - + Bar: Misura: @@ -60,17 +60,17 @@ CSettings - + space Spazio - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Loop continuo - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - Fonti di suono - - - - Add - Aggiungi - - - - Remove - Rimuove - - - + Settings Impostazioni - - Audio Device: - Dispositivo audio: - - - - Buffer Counts: - - - - + Master Gain: - + Buffer Size: - + Audio Driver: Driver audio: - + Sample Rate: Frequenza Campionamento: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Riverbero - + Chorus coro - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nessuno - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major Maggiore - - + + Minor Minore - + Gb - + Db - + Ab Lab - - + + Eb Mib - - + + Bb Sib - - + + C Do - - + + F# fa# - - + + F Fa - - + + G Sol - - + + D Re - - + + A - - + + E Mi - - + + B - + G# sol# - + C# do# - + D# re# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Apri... - + Ctrl+O Ctrl+O - + Open an existing file Apri un file esistente - + E&xit E&sci - + Ctrl+Q Ctrl+Q - + Exit the application Esci dall'applicazione - + &About &Informazioni - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Schermo &intero - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferenze... - + Settings Impostazioni - + Ctrl+P Ctrl+P - + Song &Details ... Dettagli della &canzone... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &File - + &View Visuali&zza - + &Song &Canzone - + Set&up - - + + &Help &Aiuto - - + + Piano Booster Help - + &Website Sito &web - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Spazio - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Azione</th><th>Chiave</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Apri un file midi - + Midi Files File MIDI - + None Nessuno diff --git a/translations/pianobooster_ja.ts b/translations/pianobooster_ja.ts index 9ae4fad2..497a7de6 100644 --- a/translations/pianobooster_ja.ts +++ b/translations/pianobooster_ja.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: 正確性: - + Song: 歌曲: - + Bar: 小節: @@ -60,17 +60,17 @@ CSettings - + space スペース - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ 永続ループ - + Repeat End Bar: - + Repeat Bar is disabled リピートは無効です @@ -876,77 +876,72 @@ MIDI出力デバイス: - - Sound Fonts - サウンドフォント - - - - Add - 追加 - - - - Remove - 削除 - - - + Settings 設定 - - Audio Device: - オーディオデバイス: - - - - Buffer Counts: - バッファ数: - - - + Master Gain: マスターゲイン: - + Buffer Size: バッファサイズ: - + Audio Driver: オーディオドライバ: - + Sample Rate: サンプルレート: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb リバーブ - + Chorus コーラス - + + Buffer Count: + + + + Latency Fix 遅延補正 - + Latency 遅延 - + 0 (msec) 0 (ミリ秒) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) なし (PCキーボード) - - - + + + None なし - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: MIDI出力デバイス: - + %1 mSec %1 ミリ秒 - + Enter a value for the latency fix in milliseconds 遅延の補正値をミリ秒で入力します - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. 遅延補正は、あなたの演奏より早く音楽を流すことで<br>サウンド出力の遅延を打ち消します。<br><br>ピアノは<b>スピーカー付</b>で<b>調律済み</b>のものをご用意ください。<br><br>ミリ秒単位で数値を入力してください。(1000ミリ秒 = 1秒)<br>(Microsoft GS Wavetable SW Synthでは150で試してみてください)<br>よくわからない場合はゼロを入れてください。 - - SoundFont2 Files (*.sf2) - SoundFont2ファイル(*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup MIDI設定 - + No Sound Output Device selected; Choose a Midi Output Device MIDI出力先が設定されていません。出力デバイスを選択してください - - + + The use of Midi Through is not recommended! MIDIスルー設定は推奨されません! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. MIDIキーボードがない場合、パソコンのキーボードも使えます。'x'がミドルCです。 - + Midi Input Device: MIDI入力デバイス: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - fluidsynth用のSoundFont2ファイルを開く - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat 遅れぎみ + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ 演奏パートをミュート - - + + Drums ドラム - - + + Melody - + Set as Right Hand Part 右手パートに指定 - + Set as Left Hand Part 左手パートに指定 - + Reset Both Parts 両手のパートをリセット @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned チャンネルが選択されていません @@ -1280,27 +1280,27 @@ 左手のMIDIチャンネル: - + The left and right hand channels must be different 右手と左手のチャンネルは別にする必要があります - + Both left and right hand channels must be none to disable this feature この機能を無効にするには両手のチャンネルを「なし」にします - + Set the MIDI Channels to be used for left and right hand piano parts: 左右の手のピアノ演奏パートのMIDIチャンネルを選びます: - + the left hand piano part is using MIDI Channels 1 左手のピアノパートがMIDIチャネル1を使っています - + the right hand piano part is using MIDI Channels 1 右手のピアノパートがMIDIチャネル1を使っています @@ -1319,7 +1319,7 @@ - + Start and stop playing music 音楽の再生/停止 @@ -1349,109 +1349,109 @@ この小節番号を記憶 - - + + Major 長調 - - + + Minor 短調 - + Gb - + Db - + Ab Ab - - + + Eb E♭ - - + + Bb B♭ - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning 曲の頭から演奏 @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Midiファイルエラー - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster MIDIファイルエラー - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 開く(&O)... - + Ctrl+O Ctrl+O - + Open an existing file 既存ファイルを開く - + E&xit 終了(&X) - + Ctrl+Q Ctrl+Q - + Exit the application アプリを閉じる - + &About このソフトについて(&A) - + Show the application's About box ソフトの説明 - + &PC Shortcut Keys ショートカット(&P) - + The PC Keyboard shortcut keys ショートカットキー一覧 - + &Midi Setup ... &MIDI設定 。。。 - - + Ctrl+S Ctrl+S - + Setup the Midi input and output MIDI入力と出力設定 - + Piano &Keyboard Setting ... ピアノ鍵盤設定(&K) 。。。 - + Ctrl+K Ctrl+K - + Change the piano keyboard settings ピアノの鍵盤設定の変更 - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... オプション設定(&P) 。。。 - + Settings 設定 - + Ctrl+P Ctrl+P - + Song &Details ... 歌曲詳細(&S) 。。。 - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File ファイル(&F) - + &View 表示(&V) - + &Song 歌曲(&S) - + Set&up セットアップ(&U) - - + + &Help ヘルプ(&H) - - + + Piano Booster Help Piano Boosterヘルプ - + &Website ウェブサイト(&W) - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Piano Boosterについて - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space スペース - + PC Keyboard ShortCuts PCキーボードショートカット - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>キーボードショートカット</center></h2><p>以下のショートカットが使えます。</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>アクション</th><th>キー</th></tr> - + Choose the right hand 右手を選ぶ - + Choose both hands 両手を選ぶ - + Choose the left Hand 左手を選ぶ - + Play from start toggle スタート点から演奏 - + Play Pause Toggle 再生/静止ボタン - - + + Increase the speed by 5% 速度を5%ずつ増加 - + Change to the Next Song 次の曲へ変更 - + Change to the Previous Song 前の曲へ変更 - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>仮想ピアノ鍵盤</td><td>XがミドルC</td></tr></table> </center><br> - + Open Midi File MIDIファイルを開く - + Midi Files MIDI ファイル - + None なし diff --git a/translations/pianobooster_ka.ts b/translations/pianobooster_ka.ts index ee6b81ca..c490870b 100644 --- a/translations/pianobooster_ka.ts +++ b/translations/pianobooster_ka.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - დამატება - - - - Remove - ამოშლა - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None არაფერი - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb სი - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &ფაილი - + &View &ხედი - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None არაფერი diff --git a/translations/pianobooster_kk.ts b/translations/pianobooster_kk.ts index b0c4163b..c4acf645 100644 --- a/translations/pianobooster_kk.ts +++ b/translations/pianobooster_kk.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Қосу - - - - Remove - Өшіру - - - + Settings Баптау - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Жоқ - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Ашу... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Осы туралы - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Баптау - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Көрініс - + &Song - + Set&up - - + + &Help &Анықтама - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Жоқ diff --git a/translations/pianobooster_kn.ts b/translations/pianobooster_kn.ts index 9fedb7bf..a0a88378 100644 --- a/translations/pianobooster_kn.ts +++ b/translations/pianobooster_kn.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - ಸೇರಿಸು - - - - Remove - ತೆಗೆದು ಹಾಕು - - - + Settings ಸಿದ್ಧತೆಗಳು - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ಯಾವುದೂ ಇಲ್ಲ - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About ತಂತ್ರಾಂಶದ ಬಗ್ಗೆ(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ಸಿದ್ಧತೆಗಳು - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File ಕಡತ(&F) - + &View ನೋಟ(&V) - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ಯಾವುದೂ ಇಲ್ಲ diff --git a/translations/pianobooster_ko.ts b/translations/pianobooster_ko.ts index 0fbc100d..b2a6632f 100644 --- a/translations/pianobooster_ko.ts +++ b/translations/pianobooster_ko.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - 추가 - - - - Remove - 제거 - - - + Settings 설정 - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + 샘플 레이트: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - 샘플 레이트: + + Clear + - + Reverb - + Chorus 코러스 - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None 없음 - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb Eb - - + + Bb Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 열기(&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About 정보(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings 설정 - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File 파일(&F) - + &View 보기(&V) - + &Song - + Set&up - - + + &Help 도움말(&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI 파일 - + None 없음 diff --git a/translations/pianobooster_ks.ts b/translations/pianobooster_ks.ts index 6a9c49cc..a4d220a2 100644 --- a/translations/pianobooster_ks.ts +++ b/translations/pianobooster_ks.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add + + Settings - - Remove + + Master Gain: - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None कय्ह न - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None कय्ह न diff --git a/translations/pianobooster_ku.ts b/translations/pianobooster_ku.ts index 8598c121..6c1a3f20 100644 --- a/translations/pianobooster_ku.ts +++ b/translations/pianobooster_ku.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Lê zêde bike - - - - Remove - Rake - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus Koro - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Tune - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Der barê de - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Pel - + &View &Dîtin - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Tune diff --git a/translations/pianobooster_lt.ts b/translations/pianobooster_lt.ts index c89deb31..c2a864a8 100644 --- a/translations/pianobooster_lt.ts +++ b/translations/pianobooster_lt.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Pridėti - - - - Remove - Pašalinti - - - + Settings Nustatymai - - Audio Device: - - - - - Buffer Counts: - - - - + Master Gain: - + Buffer Size: - + Audio Driver: Garso tvarkyklė: - + Sample Rate: Diskretizavimo dažnis: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb - + Chorus Choras - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nėra - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... At&verti... - + Ctrl+O Ctrl+O - + Open an existing file Atverti egzistuojantį failą - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Baigti programos darbą - + &About &Apie - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Nuostatos ... - + Settings Nustatymai - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Failas - + &View &Rodymas - + &Song - + Set&up - - + + &Help &Pagalba - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI failai - + None Nėra diff --git a/translations/pianobooster_lv.ts b/translations/pianobooster_lv.ts index 707a1da9..d579dd60 100644 --- a/translations/pianobooster_lv.ts +++ b/translations/pianobooster_lv.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Pievienot - - - - Remove - Izņemt - - - + Settings Uzstādījumi - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb Reverbu - + Chorus Kori - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nekas - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# G# - + C# - + D# D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Atvērt... - + Ctrl+O - + Open an existing file Atvērt failu - + E&xit - + Ctrl+Q - + Exit the application - + &About &Par - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Uzstādījumi - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fails - + &View &Apskatīt - + &Song - + Set&up - - + + &Help &Palīdzība - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Nekas diff --git a/translations/pianobooster_mg.ts b/translations/pianobooster_mg.ts index 7ba42b75..f1af0ac7 100644 --- a/translations/pianobooster_mg.ts +++ b/translations/pianobooster_mg.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add + + Settings - - Remove - Esory - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus Amboaram-peo - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Momobamomba - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Rakitra - + &View &Asehoy - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None diff --git a/translations/pianobooster_mi.ts b/translations/pianobooster_mi.ts index ba7b0eff..00574203 100644 --- a/translations/pianobooster_mi.ts +++ b/translations/pianobooster_mi.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add + + Master Gain: - - Remove - Nukunuku - - - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Kore - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Mo - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Ngā Hiahia ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Kōnae - + &View &Titiro - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Kore diff --git a/translations/pianobooster_ml.ts b/translations/pianobooster_ml.ts index 991e02fb..aab8162e 100644 --- a/translations/pianobooster_ml.ts +++ b/translations/pianobooster_ml.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - കൂട്ടുക - - - - Remove - നീക്കം ചെയ്യുക - - - + Settings ക്രമീകരണങ്ങള്‍ - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus കോറസ് - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ഒന്നുമില്ല - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &സംബന്ധിച്ചുള്ളതു് - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ക്രമീകരണങ്ങള്‍ - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &ഫയല്‍ - + &View &കാഴ്ച - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ഒന്നുമില്ല diff --git a/translations/pianobooster_mn.ts b/translations/pianobooster_mn.ts index b3715914..600bbffb 100644 --- a/translations/pianobooster_mn.ts +++ b/translations/pianobooster_mn.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Нэмэх - - - - Remove - Устга - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb Чих - + Chorus Хоор дуу - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Хоосон - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Нээх... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Тухай - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Харах - + &Song - + Set&up - - + + &Help &Тусламж - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Хоосон diff --git a/translations/pianobooster_mr.ts b/translations/pianobooster_mr.ts index 2b5377df..eb88352a 100644 --- a/translations/pianobooster_mr.ts +++ b/translations/pianobooster_mr.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - जोडा - - - - Remove - काढून टाका - - - + Settings समायोजन - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus कोरस - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None काहीच नाही - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About विषयी - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings समायोजन - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View दृश्य - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None काहीच नाही diff --git a/translations/pianobooster_ms.ts b/translations/pianobooster_ms.ts index ba0a49ba..cb696e9d 100644 --- a/translations/pianobooster_ms.ts +++ b/translations/pianobooster_ms.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Lagu: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Penggelungan Berterusan - + Repeat End Bar: Ulang Palang Tamat: - + Repeat Bar is disabled Palang Ulang dilumpuhkan @@ -876,77 +876,72 @@ Peranti Output Midi: - - Sound Fonts - Fon Bunyi - - - - Add - Tambah - - - - Remove - Buang - - - + Settings Tetapan - - Audio Device: - Peranti Audio: - - - - Buffer Counts: - Kiraan penimbal: - - - + Master Gain: Gandaan Master: - + Buffer Size: - + Audio Driver: Pemacu Audio: - + Sample Rate: Kadar Sampel: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Gema - + Chorus Korus - + + Buffer Count: + + + + Latency Fix Pembaikan Kependaman - + Latency Kependaman - + 0 (msec) 0 (msaat) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Tiada (Papan Kekunci PC) - - - + + + None Tiada - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Peranti Output Midi: - + %1 mSec %1 mSaat - + Enter a value for the latency fix in milliseconds Masukkan nilai untuk pembaikan kependaman dalam milisaat - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Pembaikan kependaman berfungsi dengan menjalankan muzik lebih awal dari apa yang anda<br>mainkan untuk bertindakbalas lengahan didalam penjana bunyi.<br><br>Anda perlukan piano <b>dengan pembesar suara</b> yang telah <b>dihidupkan</b>.<br><br>Masukkan masa dalam milisaat untuk lengahan (1000 mSaat = 1 saat)<br>(Untuk Microsoft GS Wavetable SW Synth cuba nilai 150)<br>Jika anda tidak pasti masukkan nilai sifar. - - SoundFont2 Files (*.sf2) - Fail SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Persediaan Midi - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Peranti Input Midi: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - Buka Fail SoundFont2 untuk fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Senyapkan bahagian anda bila bermain - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Tiada saluran diumpuk @@ -1280,27 +1280,27 @@ Saluran MIDI Bahagian Kiri: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Mula dan henti memainkan muzik @@ -1349,109 +1349,109 @@ Simpan Nombor Palang ini - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C C - - + + F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Penggalak Piano - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Buka... - + Ctrl+O Ctrl+O - + Open an existing file Buka fail sedia ada - + E&xit Ke&luar - + Ctrl+Q Ctrl+Q - + Exit the application Keluar dari aplikasi - + &About Perih&al - + Show the application's About box Tunjuk kotak Perihal aplikasi - + &PC Shortcut Keys Kekunci Pintasan &PC - + The PC Keyboard shortcut keys Kekunci pintasan Papan Kekunci PC - + &Midi Setup ... Persediaan &Midi ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... Tetapan Papan &Kekunci Piano ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Keutamaan ... - + Settings Tetapan - + Ctrl+P Ctrl+P - + Song &Details ... Perincian &Lagu ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fail - + &View &Lihat - + &Song &Lagu - + Set&up Per&sediaan - - + + &Help &Bantuan - - + + Piano Booster Help Bantuan Penggalak Piano - + &Website Laman Sesa&wang - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Perihal Penggalak Piano - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Pintasan Papan Kekunci PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Pintasan papan kekunci</center></h2><p>Pintasan papan kekunci PC berikut telah ditakrif.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Kekunci</th><th>Tindakan</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Kekunci Piano palsu</td><td>X adalah dipertengahan C</td></tr></table> </center><br> - + Open Midi File Buka Fail Midi - + Midi Files - + None Tiada diff --git a/translations/pianobooster_my.ts b/translations/pianobooster_my.ts index de04d94d..719f75c6 100644 --- a/translations/pianobooster_my.ts +++ b/translations/pianobooster_my.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add + + Master Gain: - - Remove - ဖယ်ရှား - - - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ချိန်ညိှရန် - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster စန္ဒရားသင် အဆင့်မြှင့် - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About အကြောင်းအရာ - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File ဖိုင် - + &View မြင်ကွင်း - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ချိန်ညိှရန် diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index 876a6e3e..b3db721f 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Nøyaktighet: - + Song: Sang: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ MIDI-utdataenhet: - - Sound Fonts - - - - - Add - Legg til - - - - Remove - Fjern - - - + Settings Innstillinger - - Audio Device: - - - - - Buffer Counts: - - - - + Master Gain: - + Buffer Size: - + Audio Driver: Lyddriver: - + Sample Rate: Samplingsrate: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Ekko - + Chorus Kor - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency Forsinkelse - + 0 (msec) 0 (ms) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ingen - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: MIDI-utdataenhet: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup MIDI-oppsett - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: MIDI-inndataenhet: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums Trommer - - + + Melody Melodi - + Set as Right Hand Part Sett som høyrehåndsdel - + Set as Left Hand Part Sett som venstrehåndsdel - + Reset Both Parts Tilbakestill begge deler @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Ingen kanal tildelt @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Start og stopp avspilling av musikk @@ -1349,109 +1349,109 @@ - - + + Major Stor - - + + Minor Liten - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C C - - + + F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# - + C# - + D# - + Playing music from the beginning Spiller musikk fra begynnelsen @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Åpne … - + Ctrl+O Ctrl+O - + Open an existing file Åpne en eksisterende fil - + E&xit A&vslutt - + Ctrl+Q Ctrl+Q - + Exit the application Avslutt programmet - + &About &Om - + Show the application's About box - + &PC Shortcut Keys &PC-snarveistaster - + The PC Keyboard shortcut keys PC-tastatursnarveier - + &Midi Setup ... &MIDI-oppsett … - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Full skjerm - + Fullscreen mode Fullskjermsmodus - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Innstillinger … - + Settings Innstillinger - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fil - + &View &Vis - + &Song - + Set&up Opp&sett - - + + &Help &Hjelp - - + + Piano Booster Help - + &Website &Nettside - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or eller - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> <h3>Oppsett</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website nettside - + the PianoBooster - + FAQ O-S-S - + and the og - + user forum forumet - + About Piano Booster Om Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts PC-tastatursnarveier - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% Øk hastigheten med 5% - + Change to the Next Song Bytt tll neste sang - + Change to the Previous Song Bytt til forrige sang - + Change to the Next Book Bytt til neste bok - + Change to the Previous Book Bytt til forrige bok - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Åpne MIDI-fil - + Midi Files MIDI-filer - + None Ingen diff --git a/translations/pianobooster_ne.ts b/translations/pianobooster_ne.ts index e9ada171..25e58652 100644 --- a/translations/pianobooster_ne.ts +++ b/translations/pianobooster_ne.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - जोड गर्नुहोस् - - - - Remove - हटाउनुहोस् - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus कोरस - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None कुनै पनि होइन - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About बारेमा - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File फाइल - + &View दृश्य - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None कुनै पनि होइन diff --git a/translations/pianobooster_nl.ts b/translations/pianobooster_nl.ts index 98d73b1f..a2b5a2fd 100644 --- a/translations/pianobooster_nl.ts +++ b/translations/pianobooster_nl.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Nauwkeurigheid: - + Song: Lied: - + Bar: Maat: @@ -60,17 +60,17 @@ CSettings - + space spatie - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... FOUT GEEN GELUID: Los dit op via menu Instellingen/Midi Instellingen ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... FOUT GEEN MIDI BESTAND: Los dit op via menu Bestand/Open ... @@ -828,12 +828,12 @@ Continu Herhalen - + Repeat End Bar: Herhalingsteken: - + Repeat Bar is disabled Herhalingsteken is uitgeschakeld @@ -876,77 +876,72 @@ MIDI Uitvoer Apparaat: - - Sound Fonts - - - - - Add - Voeg toe - - - - Remove - Verwijder - - - + Settings Instellingen - - Audio Device: - Audio-apparaat: - - - - Buffer Counts: - Buffer aantal: - - - + Master Gain: Hoofdversterking: - + Buffer Size: Buffergrootte: - + Audio Driver: Audio Ondersteuningsprogramma: - + Sample Rate: Samplingfrequentie: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Galm - + Chorus Refrein - + + Buffer Count: + + + + Latency Fix Vertragingscorrectie - + Latency Vertraging - + 0 (msec) 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Geen (Computertoetsenbord) - - - + + + None Geen - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: MIDI Uitvoer Apparaat: - + %1 mSec %1 mSec - + Enter a value for the latency fix in milliseconds Voer een waarde in voor de vertragingscorrectie in milliseconden - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. De vertragingscorrectie werkt door de muziek te vervroegen ten opzichte van<br>wat u speelt om vertraging door de geluidsgenerator te compenseren.<br><br>U heeft hiervoor een piano nodig met <b>werkende luidsprekers</b>.<br><br>Geef de tijd in milliseconden in voor de vertraging (1000 mSec = 1 sec)<br>(Probeer 150 voor de Microsoft GS Wavetable SW Synth)<br>Als u niet weet wat u moet invullen, vul dan 0 in. - - SoundFont2 Files (*.sf2) - SoundFont2 Bestanden (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup MIDI Instellingen - + No Sound Output Device selected; Choose a Midi Output Device Geen Geluid Uitvoerapparaat geselecteerd; Kies een Midi Uitvoerapparaat - - + + The use of Midi Through is not recommended! Het gebruik van Midi Through wordt afgeraden! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Als u geen MIDI toetsenbord heeft, kunt u het computertoetsenbord gebruiken; 'X' is de centrale C. - + Midi Input Device: MIDI Invoerapparaat: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Opmerking: de Microsoft GS Wavetable Synth veroorzaakt een ongewenste vertraging!. - - - + (Try a latency fix of 150msc) (Probeer een vertragingscorrectie van 150msec) - - - Open SoundFont2 File for fluidsynth - Open SoundFont2 Bestand voor fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Na de Tel + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Demp de partij die u speelt - - + + Drums Trommels - - + + Melody Melodie - + Set as Right Hand Part Stel in als Rechterhand Partij - + Set as Left Hand Part Stel in als Linkerhand Partij - + Reset Both Parts Herstel Beide Partijen @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Geen kanaal toegekend @@ -1280,27 +1280,27 @@ Linkerhand MIDI Kanaal: - + The left and right hand channels must be different De kanalen voor linker- en rechterhand moeten verschillen - + Both left and right hand channels must be none to disable this feature Linker- en rechterhand kanalen mogen niet gezet zijn om deze functie uit te schakelen - + Set the MIDI Channels to be used for left and right hand piano parts: Stel de MIDI Kanalen voor linker- en rechterhand piano partijen in: - + the left hand piano part is using MIDI Channels 1 De linkerhand pianopartij gebruikt MIDI Kanalen 1 - + the right hand piano part is using MIDI Channels 1 De rechterhand pianopartij gebruikt MIDI Kanalen 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Start en stop het afspelen van de muziek @@ -1349,109 +1349,109 @@ Bewaar het nummer van deze maat - - + + Major Majeur - - + + Minor Mineur - + Gb Ges - + Db Des - + Ab As - - + + Eb Es - - + + Bb Bes - - + + C C - - + + F# Fis - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# Gis - + C# Cis - + D# Dis - + Playing music from the beginning Speel de muziek vanaf het begin @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Midi Bestandsfout - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster Midi bestandsfout - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Openen... - + Ctrl+O Ctrl+O - + Open an existing file Open een bestaand bestand - + E&xit &Afsluiten - + Ctrl+Q Ctrl+Q - + Exit the application Sluit de applicatie af - + &About &Over - + Show the application's About box Toon het informatiescherm van de applicatie - + &PC Shortcut Keys Com&puter sneltoetsen - + The PC Keyboard shortcut keys De computer sneltoetsen - + &Midi Setup ... &Midi Instellingen ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Instellingen voor Midi invoer en uitvoer - + Piano &Keyboard Setting ... &Toetsenbordinstellingen ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Pas de toetsenbordinstellingen aan - + &Fullscreen &Volledig scherm - + Fullscreen mode - + F11 F11 - + &Show the Side Panel &Toon het zijpaneel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Instellingen ... - + Settings Instellingen - + Ctrl+P Ctrl+P - + Song &Details ... &Liedeigenschappen ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Bestand - + &View &Scherm - + &Song &Lied - + Set&up &Instellingen - - + + &Help &Hulp - - + + Piano Booster Help Piano Booster Hulp - + &Website &Webpagina - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Over Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space spatie - + PC Keyboard ShortCuts Computer toetsenbord sneltoetsen - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Sneltoetsen</center></h2><p>De volgende computer sneltoetsen zijn gedefiniëerd.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Actie</th><th>Toets</th></tr> - + Choose the right hand Kies de rechterhand - + Choose both hands Kies beide handen - + Choose the left Hand Kies de linkerhand - + Play from start toggle Speel vanaf het begin knop - + Play Pause Toggle Speel Pauzeer Knop - - + + Increase the speed by 5% Verhoog de snelheid met 5% - + Change to the Next Song Ga naar het Volgende Lied - + Change to the Previous Song Ga naar het Vorige Lied - + Change to the Next Book Ga naar het Volgende Boek - + Change to the Previous Book Ga naar het Vorige Boek - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Neptoetsen</td><td>X is de centrale C</td></tr></table> </center><br> - + Open Midi File Open Midi Bestand - + Midi Files Midi Bestanden - + None Geen diff --git a/translations/pianobooster_nn.ts b/translations/pianobooster_nn.ts index b4cee1aa..d5dcccff 100644 --- a/translations/pianobooster_nn.ts +++ b/translations/pianobooster_nn.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Legg til - - - - Remove - Fjern - - - + Settings Innstillingar - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus Kor - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ingen - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Opna … - + Ctrl+O - + Open an existing file Opna ei gammal fil - + E&xit - + Ctrl+Q - + Exit the application - + &About &Om - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Innstillingar - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fil - + &View &Vis - + &Song - + Set&up - - + + &Help &Hjelp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Ingen diff --git a/translations/pianobooster_oc.ts b/translations/pianobooster_oc.ts index bf53edca..c3f5e795 100644 --- a/translations/pianobooster_oc.ts +++ b/translations/pianobooster_oc.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Apondre - - - - Remove - Suprimir - - - + Settings Paramètres - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Pas cap - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About A &prepaus - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferéncias ... - + Settings Paramètres - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fichièr - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Pas cap diff --git a/translations/pianobooster_or.ts b/translations/pianobooster_or.ts index b86144bf..077e3477 100644 --- a/translations/pianobooster_or.ts +++ b/translations/pianobooster_or.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - ଯୋଗ କରନ୍ତୁ - - - - Remove - ଅପସାରଣ କରନ୍ତୁ - - - + Settings ବିନ୍ଯାସ - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus ସମବେତ ସଙ୍ଗୀତ - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None କିଛି ନୁହେଁ - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About ବିବରଣୀ - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ବିନ୍ଯାସ - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View ଦେଖନ୍ତୁ - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None କିଛି ନୁହେଁ diff --git a/translations/pianobooster_pa.ts b/translations/pianobooster_pa.ts index cd2668eb..ed7d262a 100644 --- a/translations/pianobooster_pa.ts +++ b/translations/pianobooster_pa.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - ਸ਼ਾਮਲ - - - - Remove - ਹਟਾਓ - - - + Settings ਸਥਾਪਨ - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus ਚੋਰਸ - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ਕੋਈ ਨਹੀਂ - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... ਖੋਲ੍ਹੋ(&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About ਇਸ ਬਾਰੇ(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ਸਥਾਪਨ - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File ਫਾਇਲ(&F) - + &View ਵੇਖੋ(&V) - + &Song - + Set&up - - + + &Help ਮੱਦਦ(&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ਕੋਈ ਨਹੀਂ diff --git a/translations/pianobooster_pl.ts b/translations/pianobooster_pl.ts index d5b0e607..52de0bf9 100644 --- a/translations/pianobooster_pl.ts +++ b/translations/pianobooster_pl.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Dokładność: - + Song: Piosenka: - + Bar: Takt: @@ -60,17 +60,17 @@ CSettings - + space spacja - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... BŁĄD BRAK DŹWIĘKU: Aby to naprawić użyj menu Ustawienia/Ustawienia Midi ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... BŁĄD BRAK PLIKU MIDI: Aby to naprawić wybierz menu Plik/Otwórz ... @@ -828,12 +828,12 @@ ciągłe zapętlanie - + Repeat End Bar: Powtórz końcowy cykl: - + Repeat Bar is disabled Powtarzanie cyklu jest wyłączone @@ -876,77 +876,72 @@ Urządzenie wyjściowe MIDI: - - Sound Fonts - Czcionki dźwięku - - - - Add - Dodaj - - - - Remove - Usuń - - - + Settings Ustawienia - - Audio Device: - Urządzenie audio: - - - - Buffer Counts: - Licznik buforu: - - - + Master Gain: Główne wzmocnienie: - + Buffer Size: Wielkość bufora: - + Audio Driver: Sterownik audio: - + Sample Rate: Częstotliwość próbkowania: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Pogłos - + Chorus Chór - + + Buffer Count: + + + + Latency Fix Naprawa opóźnienia - + Latency Opóźnienie - + 0 (msec) 0 (ms) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Brak (klawiatura PC) - - - + + + None Brak - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Urządzenie wyjściowe MIDI: - + %1 mSec %1 ms - + Enter a value for the latency fix in milliseconds Wpisz wartość naprawy opóźnienia w milisekundach - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Poprawka opóźnienia działa poprzez uruchomienie muzyki <br>wcześniej niż to co grasz niwelując opóźnienie generatora<br><br>potrzebujesz pianina <b>z głośnikami</b>, które są <b>włączone</b>.<br><br>Wpisz czas w milisekundach (1000ms = 1s)<br>(Dla Microsoft GS Wavetable SW Synth spróbuj wartości 150)<br>Jeżeli nie jesteś pewny wpisz 0. - - SoundFont2 Files (*.sf2) - Pliki SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup Ustawienia Midi - + No Sound Output Device selected; Choose a Midi Output Device Nie wybrano urządzenia wyjściowego dźwięku; Wybierz urządzenie wyjściowe Midi - - + + The use of Midi Through is not recommended! Korzystanie z Midi Through nie jest zalecane! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Jeżeli mi posiadasz klawiatury MISI możesz użyć klawiatury komputera; 'X' jest środkowym C. - + Midi Input Device: Urządzenie wejściowe MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Uwaga: Syntezator Microsoft GS Wavetable wprowadza niepożądane opóźnienie!. - - - + (Try a latency fix of 150msc) (Spróbuj ustalić opóźnienie 150 msc) - - - Open SoundFont2 File for fluidsynth - Otwórz pliik SoundFont2 dla fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Po uderzeniu + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Wycisz swoje części, gdy odtwarzasz - - + + Drums Bębny - - + + Melody Melodia - + Set as Right Hand Part Ustaw jako część dla prawej ręki - + Set as Left Hand Part Ustaw jako część dla lewej ręki - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Brak przypisanych kanałów @@ -1280,27 +1280,27 @@ Kanał MIDI lewej ręki: - + The left and right hand channels must be different Kanały dla lewej i prawej ręki muszą się różnić - + Both left and right hand channels must be none to disable this feature Kanały lewej i prawej ręki muszą być wyłączone, aby wyłączyć tę funkcję - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Uruchom i zatrzymaj odtwarzanie muzyki @@ -1349,109 +1349,109 @@ Zapisz liczbę cykli - - + + Major Dur - - + + Minor Minor - + Gb Gb - + Db Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C C - - + + F# f# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning Odtwarzanie muzyki od początku @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Error pliku Midi - + Cannot open "%1" Nie można otworzyć "%1" - + Midi file "%1" is corrupted Plik Midi "%1" jest uszkodzony @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster Error pliku Midi - + Cannot open "%1" Nie można otworzyć "%1" - + "%1" is not a Midi File "%1" nie jest plikiem Midi - + "%1" is not a valid Midi file - + &Open... &Otwórz... - + Ctrl+O Ctrl+O - + Open an existing file Otwórz istniejący plik - + E&xit &Zakończ - + Ctrl+Q Ctrl+Q - + Exit the application Zakończ aplikację - + &About &O programie - + Show the application's About box Wyświetl okno informacji o programie - + &PC Shortcut Keys Skróty klawiszowe &PC - + The PC Keyboard shortcut keys Skróty klawiszowe na PC - + &Midi Setup ... Konfiguracja &Midi ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Konfiguracja wejścia i wyjścia Midi - + Piano &Keyboard Setting ... Ustawienia &klawiatury pianina ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Zmień ustawienia klawiatury pianina - + &Fullscreen Pełen &ekran - + Fullscreen mode Pełny ekran - + F11 F11 - + &Show the Side Panel &Pokaż panel boczny - + Show the Left Side Panel Pokaż panel boczny - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Ustawienia ... - + Settings Ustawienia - + Ctrl+P Ctrl+P - + Song &Details ... &Szczegóły piosenki ... - + Song Settings Ustawienia utworu - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Plik - + &View &Widok - + &Song &Piosenka - + Set&up Konfig&uracja - - + + &Help P&omoc - - + + Piano Booster Help Pomoc Piano Booster - + &Website Strona &www - + Piano Booster Website Strona Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster O Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Wersja %1</b><br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space spacja - + PC Keyboard ShortCuts Skróty klawiszowe - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Skróty klawiatury</center></h2><p>Następujące skróty klawiatury zostały zdefiniowane.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Akcja</th><th>Klawisz</th></tr> - + Choose the right hand Wybierz prawą rękę - + Choose both hands Wybierz obie ręce - + Choose the left Hand Wybierz lewą rękę - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% Zwiększ prędkość o 5% - + Change to the Next Song Zmień na następny utwór - + Change to the Previous Song Zmień na poprzedni utwór - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Klawisze klawiatury zamiast pianina</td><td>X jest średnią C</td></tr></table> </center><br> - + Open Midi File Otwórz plik MIDI - + Midi Files Pliki MIDI - + None Brak diff --git a/translations/pianobooster_ps.ts b/translations/pianobooster_ps.ts index f0a249eb..3e51728e 100644 --- a/translations/pianobooster_ps.ts +++ b/translations/pianobooster_ps.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add + + Master Gain: - - Remove - ړنګول - - - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None هېڅ - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About په اړه - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File دوتنه - + &View ليد - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None هېڅ diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index 54ade974..a1bfdb41 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Precisão: - + Song: Música: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space Espaço - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - Fonte de sons - - - - Add - Adicionar - - - - Remove - Remover - - - + Settings Definições - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Taxa de amostragem: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Taxa de amostragem: + + Clear + - + Reverb Reverberação - + Chorus Coros - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nenhum - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major maior - - + + Minor menor - + Gb - + Db - + Ab Lá ♭ - - + + Eb Mi ♭ - - + + Bb Si♭ - - + + C C - - + + F# f# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abrir um ficheiro existente - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Sair da aplicação - + &About &Acerca - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Tela C&heia - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferências ... - + Settings Definições - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Ficheiro - + &View &Ver - + &Song - + Set&up - - + + &Help &Ajuda - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Espaço - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Abrir Arquivo MIDI - + Midi Files Arquivos MIDI - + None Nenhum diff --git a/translations/pianobooster_pt_BR.ts b/translations/pianobooster_pt_BR.ts index 6839bd13..a80e9893 100644 --- a/translations/pianobooster_pt_BR.ts +++ b/translations/pianobooster_pt_BR.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Exatidão: - + Song: Canção: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space Espaço - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ERRO SEM SOM: Para corrigir isso use o menu Configurações / Configurações Midi ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ERRO NENHUM ARQUIVO MIDI: Para corrigir isso use o menu Arquivo / Abrir ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - Fonte de sons - - - - Add - Adicionar - - - - Remove - Remover - - - + Settings Configurações - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Taxa de Amostragem: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Taxa de Amostragem: + + Clear + - + Reverb Reverberação - + Chorus Coro - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nenhum - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major maior - - + + Minor menor - + Gb - + Db - + Ab Lá ♭ - - + + Eb Mi ♭ - - + + Bb Si ♭ - - + + C C - - + + F# fá# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# sol# - + C# dó# - + D# ré# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abre um arquivo existente - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Sair do programa - + &About &Sobre - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Tela C&heia - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferências ... - + Settings Configurações - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Arquivo - + &View &Exibir - + &Song &Canção - + Set&up - - + + &Help &Ajuda - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Espaço - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Abrir Arquivo MIDI - + Midi Files Arquivos MIDI - + None Nenhum diff --git a/translations/pianobooster_ro.ts b/translations/pianobooster_ro.ts index c73a2b76..5e870bf9 100644 --- a/translations/pianobooster_ro.ts +++ b/translations/pianobooster_ro.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Adaugă - - - - Remove - Șterge - - - + Settings Setări - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Rată eșantionare: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Rată eșantionare: + + Clear + - + Reverb Reverberat - + Chorus Coral - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nici unul - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb Si - - + + C - - + + F# fa# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# sol# - + C# do# - + D# re# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Deschide... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Despre - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Setări - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fișier - + &View &Vizualizare - + &Song - + Set&up - - + + &Help A&jutor - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Nici unul diff --git a/translations/pianobooster_ru.ts b/translations/pianobooster_ru.ts index 5fb0d2c4..34406540 100644 --- a/translations/pianobooster_ru.ts +++ b/translations/pianobooster_ru.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: Точность: - + Song: Песня: - + Bar: Такт: @@ -60,17 +60,17 @@ CSettings - + space пробел - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ОШИБКА НЕТ ЗВУКА: Чтобы исправить это, используйте меню Настройка/Настройка Midi ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ОШИБКА НЕТ MIDI ФАЙЛА: чтобы исправить это, используйте меню Файл/Открыть ... @@ -828,12 +828,12 @@ Непрерывный цикл - + Repeat End Bar: Конечный такт повтора: - + Repeat Bar is disabled Повторение такта отключено @@ -876,77 +876,72 @@ Устройство вывода Midi: - - Sound Fonts - Звуковые шрифты - - - - Add - Добавить - - - - Remove - Удалить - - - + Settings Настройки - - Audio Device: - Аудио-устройство: - - - - Buffer Counts: - Количество буферов: - - - + Master Gain: Усиление основного канала: - + Buffer Size: Размер буфера: - + Audio Driver: Аудио-драйвер: - + Sample Rate: Частота сэмплирования: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Реверберация - + Chorus Хорус - + + Buffer Count: + + + + Latency Fix Исправление задержки - + Latency Задержка - + 0 (msec) 0 (мс) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Нету (клавиатура ПК) - - - + + + None Нету - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Устройство вывода Midi: - + %1 mSec %1 мс - + Enter a value for the latency fix in milliseconds Введите значение для исправления задержки в миллисекундах - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Устранение задержек работает путём запуска музыки впереди того, что вы играете, чтобы нейтрализовать задержку в звуковом генераторе. <br><br>Вам понадобится пианино <b>с динамиками</b>, которые <b>включены</b>.<br><br>Введите время в миллисекундах для задержки (1000 мс = 1 с)<br>(Для Microsoft GS Wavetable SW Synth попробуйте значение 150)<br>Если Вы не уверены, введите значение ноль. - - SoundFont2 Files (*.sf2) - Файлы SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup Настройка Midi - + No Sound Output Device selected; Choose a Midi Output Device Не выбрано устройство вывода звука; Выберите выходное устройство Midi - - + + The use of Midi Through is not recommended! Использование Midi Through не рекомендуется! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Если у вас нет MIDI-клавиатуры, вы можете использовать клавиатуру ПК; 'Х' - С в середине. - + Midi Input Device: Устройство ввода Midi: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Примечание: Microsoft GS Wavetable Synth вводит нежелательную задержку! - - - + (Try a latency fix of 150msc) (Попробуйте исправление задержки в 150 мс) - - - Open SoundFont2 File for fluidsynth - Открыть файл SoundFont2 для fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat После ритма + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Приглушить вашу партию при игре - - + + Drums Барабаны - - + + Melody Мелодия - + Set as Right Hand Part Установить как партию правой руки - + Set as Left Hand Part Установить как партию левой руки - + Reset Both Parts Сбросить обе партии @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Канал не назначен @@ -1280,27 +1280,27 @@ MIDI канал левой руки: - + The left and right hand channels must be different Каналы левой и правой рук должны быть разными - + Both left and right hand channels must be none to disable this feature Оба канала левой и правой рук должны быть пустыми чтобы отключить эту функцию - + Set the MIDI Channels to be used for left and right hand piano parts: Установите MIDI-каналы, которые будут использоваться для левой и правой партий пианино: - + the left hand piano part is using MIDI Channels 1 партия пианино левой руки использует MIDI канал 1 - + the right hand piano part is using MIDI Channels 1 партия пианино правой руки использует MIDI канал 2 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Начните и остановите играть музыку @@ -1349,109 +1349,109 @@ Сохранить номер этого такта - - + + Major Мажор - - + + Minor Минор - + Gb Gb - + Db Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C C - - + + F# F# - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B B - + G# G# - + C# C# - + D# D# - + Playing music from the beginning Воспроизведение музыки с самого начала @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Ошибка Midi файла - + Cannot open "%1" Не могу открыть "%1" - + Midi file "%1" is corrupted Midi файл "%1" повреждён @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Ошибка файла MIDI PianoBooster - + Cannot open "%1" Не могу открыть "%1" - + "%1" is not a Midi File "%1" - не Midi файл - + "%1" is not a valid Midi file "%1" - некорректный Midi файл - + &Open... &Открыть... - + Ctrl+O Ctrl+O - + Open an existing file Открыть существующий файл - + E&xit В&ыход - + Ctrl+Q Ctrl+Q - + Exit the application Выйти из приложения - + &About &О программе - + Show the application's About box Показать окно приложения о программе - + &PC Shortcut Keys &Сочетания клавиш для ПК - + The PC Keyboard shortcut keys Сочетания клавиш клавиатуры для ПК - + &Midi Setup ... Настройка &Midi ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Настроить вход и выход Midi - + Piano &Keyboard Setting ... Настройка &клавиатуры пианино ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Изменить настройки клавиатуры пианино - + &Fullscreen &Полноэкранный - + Fullscreen mode Полноэкранный режим - + F11 F11 - + &Show the Side Panel &Показать боковую панель - + Show the Left Side Panel Показать боковую панель слева - + F12 F12 - + Show Piano &Keyboard Показать &клавиатуру пианино - + Show Piano Keyboard Widget Показать виджет клавиатуры пианино - + &Preferences ... &Предпочтения ... - + Settings Настройки - + Ctrl+P Ctrl+P - + Song &Details ... &Детали песни ... - + Song Settings Настройки песни - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Файл - + &View &Вид - + &Song П&есня - + Set&up Настрой&ка - - + + &Help &Помощь - - + + Piano Booster Help Справка Piano Booster - + &Website &Сайт - + Piano Booster Website Веб-сайт Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster О Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Версия %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Улучшите</b> свои навыки игры на <b>пианино</b>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - © L. J. Barman, 2008-2013; Все права защищены.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + © L. J. Barman, 2008-2013; Все права защищены.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> © Fabien Givors, 2018-2019; Все права защищены.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Эта программа доступна на условиях Стандартной общественной лицензии GNU версии 3, опубликованной Фондом свободного программного обеспечения.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Эта программа также содержит RtMIDI: классы C++ ввода/вывода MIDI в реальном времени<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. © Gary P. Scavone, 2003-2019; Все права защищены. - + space пробел - + PC Keyboard ShortCuts Сочетания клавиш ПК - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Сочетания клавиш</center></h2><p>Следующие сочетания клавиш ПК были определены.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Действие</th><th>Клавиша</th></tr> - + Choose the right hand Выбрать правую руку - + Choose both hands Выбрать обе руки - + Choose the left Hand Выбрать левую руку - + Play from start toggle Переключить воспроизведение с начала - + Play Pause Toggle Переключить воспроизведение и паузу - - + + Increase the speed by 5% Увеличить скорость на 5% - + Change to the Next Song Перейти к следующей песне - + Change to the Previous Song Перейти к предыдущей песне - + Change to the Next Book Перейти к следующему песеннику - + Change to the Previous Book Перейти к предыдущему песеннику - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Мнимые клавиши пианино</td><td>X - это C в середине</td></tr></table> </center><br> - + Open Midi File Открыть файл Midi - + Midi Files Файлы Midi - + None Нету diff --git a/translations/pianobooster_se.ts b/translations/pianobooster_se.ts index 4dd502d8..69ad5fc9 100644 --- a/translations/pianobooster_se.ts +++ b/translations/pianobooster_se.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Lasit - - - - Remove - Váldde eret - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ii oktage - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Raba … - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Om - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fiila - + &View Čá&jet - + &Song - + Set&up - - + + &Help H&jälp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Ii oktage diff --git a/translations/pianobooster_si.ts b/translations/pianobooster_si.ts index 53249415..919e0727 100644 --- a/translations/pianobooster_si.ts +++ b/translations/pianobooster_si.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - එකතු කිරීම - - - - Remove - ඉවත් කරන්න - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None කිසිවක් නැත - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &සම්බන්ධව - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &ගොනුව - + &View &දසුන - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None කිසිවක් නැත diff --git a/translations/pianobooster_sk.ts b/translations/pianobooster_sk.ts index fd931ad8..496a5439 100644 --- a/translations/pianobooster_sk.ts +++ b/translations/pianobooster_sk.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E E - + F F - + G G - + A A - + B H @@ -42,17 +42,17 @@ CGLView - + Accuracy: Presnosť: - + Song: Skladba: - + Bar: Takt: @@ -60,17 +60,17 @@ CSettings - + space medzerník - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... CHYBA, ŽIADEN ZVUK: Pre opravenie použite Nastavenia/Nastavenia MIDI... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... CHYBA, ŽIADEN SÚBOR MIDI: Pre opravenie použite ponuku Súbor/Otvoriť... @@ -828,12 +828,12 @@ Stála slučka - + Repeat End Bar: Opakovať záverečný takt: - + Repeat Bar is disabled Opakovanie taktu je zakázané @@ -876,77 +876,72 @@ Výstupné MIDI zariadenie: - - Sound Fonts - Zvukové banky - - - - Add - Pridať - - - - Remove - Odstrániť - - - + Settings Nastavenie - - Audio Device: - Audio zariadenie: - - - - Buffer Counts: - Množstvo vyrovnávacej pamäte: - - - + Master Gain: Hlavné zosilnenie: - + Buffer Size: Veľkosť vyrovnávacej pamäte: - + Audio Driver: Zvukový ovládač: - + Sample Rate: Hodnota vzorkovania: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Dozvuk - + Chorus Zbor - + + Buffer Count: + + + + Latency Fix Oprava latencie - + Latency Latencia - + 0 (msec) 0 (ms) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Žiadne (Klávesnica počítača) - - - + + + None Žiadne - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Výstupné zariadenie Midi: - + %1 mSec %1 ms - + Enter a value for the latency fix in milliseconds Vložte hodnotu pre opravu latencie v milisekundách - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Oprava latencie funguje na princípe toho, že hudba hrá o niečo skôr, <br>ako hráte Vy, čím sa kompenzuje oneskorenie vzniknuté v generátore zvuku.<br><br>Budete potrebovať klavír, ktorého <b>reproduktory</br> sú <b>zosilnené</b>.<br><br>Zadajte čas oneskorenia v milisekundách (1000 ms = 1 s)<br>(Pri softvérovom syntetizátore Microsoft GS Wavetable SW skúste použiť hodnotu 150)<br>Ak si nie ste istý, zadajte nulu. - - SoundFont2 Files (*.sf2) - Súbory SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup Nastavenia MIDI - + No Sound Output Device selected; Choose a Midi Output Device Nebolo vybraté zariadenie pre výstupu zvuku. Prosím, vyberte zariadenie pre výstup Midi - - + + The use of Midi Through is not recommended! Použitie Midi-Through sa neodoporúča! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Ak nemáte klávesnicu MIDI, môžete použiť počítačovú klávesnicu; 'X' je jednočiarkové C. - + Midi Input Device: Zariadenie pre vstup MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Poznámka: Softvérový syntetizátor Microsoft GS Wavetable Synth prináša nežiadúce oneskorenie! - - - + (Try a latency fix of 150msc) (Skúste opravu latencie 150 ms) - - - Open SoundFont2 File for fluidsynth - Otvoriť súbor SoundFont2 pre fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Po dobe + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Stlmiť pri prehrávaní Váš part - - + + Drums Bubny - - + + Melody Melódia - + Set as Right Hand Part Nastaviť ako part pravej ruky - + Set as Left Hand Part Nastaviť ako part ľavej ruky - + Reset Both Parts Nastaviť obidva hlasy nanovo @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Nepriradený žiaden kanál @@ -1280,27 +1280,27 @@ Kanál MIDI pre ľavú ruku: - + The left and right hand channels must be different Kanály pre ľavú a pravú ruku sa musia líšiť - + Both left and right hand channels must be none to disable this feature Pre zakázanie tejto funkcie nesmie byť nastavený kanál pre ľavú ani pravú ruku - + Set the MIDI Channels to be used for left and right hand piano parts: Nastaviť kanály MIDI na použitie pre hlasy klavíra ľavej a pravej ruky: - + the left hand piano part is using MIDI Channels 1 Part klavíra ľavej ruky používa kanál MIDI 1 - + the right hand piano part is using MIDI Channels 1 Part klavíra pravej ruky používa kanál MIDI 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Spustiť a zastaviť prehrávanie nôt @@ -1349,109 +1349,109 @@ Uložiť číslo tohto taktu - - + + Major Durová (Major) - - + + Minor Molová (Minor) - + Gb Ges - + Db Des - + Ab As - - + + Eb Es - - + + Bb - - + + C C - - + + F# Fis - - + + F F - - + + G G - - + + D D - - + + A A - - + + E E - - + + B H - + G# Gis - + C# Cis - + D# Dis - + Playing music from the beginning Prehrávanie nôt od začiatku @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Chyba súboru MIDI - + Cannot open "%1" Nepodarilo sa otvoriť "%1" - + Midi file "%1" is corrupted MIDI súbor "%1" je poškodený @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Chyba v súbore MIDI pre Piano Booster - + Cannot open "%1" Nepodarilo sa otvoriť "%1" - + "%1" is not a Midi File "%1" nie je súbor MIDI - + "%1" is not a valid Midi file "%1" nie je platným súborom MIDI - + &Open... &Otvoriť... - + Ctrl+O Ctrl+O - + Open an existing file Otvoriť existujúci súbor - + E&xit &Koniec - + Ctrl+Q Ctrl+Q - + Exit the application Ukončiť aplikáciu - + &About &O programe - + Show the application's About box Zobraziť okno s informáciami o programe - + &PC Shortcut Keys Klávesové &skratky - + The PC Keyboard shortcut keys Klávesové skratky - + &Midi Setup ... &Nastavenia MIDI... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Nastaviť vstup a výstup MIDI - + Piano &Keyboard Setting ... Nastavenie &klaviatúry... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Zmeniť nastavenia klaviatúry - + &Fullscreen &Celá obrazovka - + Fullscreen mode Režim na celú obrazovku - + F11 F11 - + &Show the Side Panel &Zobraziť bočný panel - + Show the Left Side Panel Zobraziť ľavý bočný panel - + F12 F12 - + Show Piano &Keyboard Zobraziť &klaviatúru - + Show Piano Keyboard Widget Zobraziť panel s klaviatúrou - + &Preferences ... &Predvoľby... - + Settings Nastavenie - + Ctrl+P Ctrl+P - + Song &Details ... &Podrobnosti skladby... - + Song Settings Nastavenia skladby - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Súbor - + &View &Zobraziť - + &Song &Skladba - + Set&up &Nastavenia - - + + &Help &Pomocník - - + + Piano Booster Help Pomocník pre Piano Booster - + &Website &Webová stránka - + Piano Booster Website Webová stránka programu Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Začíname</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p> Budete potrebovať <b> klávesy s podporou MIDI </b> a <b> MIDI rozhrania </b> pre Váš počítač.Pokud nemáte klávesy, ktoré toto rozhranie podporujú, môžete PianoBooster vyskúšať na klávesnici vášho počítača, 'X' je jednočiarkované C. </p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p> Na to, aby ste mohli počul zvuk budete potrebovať <b> Syntezátor zvuku MIDI </b>. Operačný systém windows obsahuje "Microsoft GS Wavetable software synthesizer", bohužiaľ tento software dosahuje vysokého oneskorenie (latencie). Na linuxu môžete použiť - + or alebo - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p> PianoBooster pracuje najlepšie s MIDI súbory, ktoré majú rozdelené časti na pravú a ľavú ruku používajúce MIDI kanály 3 a 4. - + <h3>Setting Up</h3> <h3>Počiatočné nastavenie</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p> Po prvé bežťe do menu <i> Nastavenia / Nastavenia MIDI </i> a vyberte také rozhranie, ktoré podporuje váš hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Ďalej použijeme <i> Súbor / Otvoriť </ > pre otvorenie MIDI súborov s príponou ".mid" alebo karaoke súborov s príponou ".kar". Potom si vyberte či chcete hudbu len <i> počúvať </i> alebo aby vás program<i> následoval</i> na Vašich klávesoch. Je možné tiež nastaviť <i> úrovne </i> obtiažnosti na ľavom paneli. Až budete pripravení kliknite na tlačidlo s <i> ikonou play </i> (alebo stlačte <i> medzerník </i>) na spustenie hudby. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3> Rady ako hrať na klavír </h3> <p> Pre rady ako hrať na klavír sa pozrite na: - + Piano Hints Rady na klavír - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3> Pre viac informácií </h3> <p> Pre viac informácií prosím navštívte - + website webovú stránku PianoBoosteru alebo - + the PianoBooster často kladené otázky PianoBoosteru - + FAQ FAQ - + and the a - + user forum užívateľské fórum - + About Piano Booster O programe Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - verzia %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Pozdvihnite</b> svoje <b>zručnosti hry na klavír</b>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - Kopírovacie právo (c) L. J. Barman, 2008-2013; Všetky práva vyhradené.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + Kopírovacie právo (c) L. J. Barman, 2008-2013; Všetky práva vyhradené.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Kopírovacie právo (c) Fabien Givors, 2018-2019; Všetky práva vyhradené.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Tento program je poskytovaný pod podmienkami GNU General Public License verzie 3 tak, ako sú zverejnené organizáciou Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Tento program tiež obsahuje RtMIDI: realtime MIDI i/o C++ triedy<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Kopírovacie právo (c) Gary P. Scavone, 2003-2019; Všetky práva vyhradené. - + space medzerník - + PC Keyboard ShortCuts Klávesové skratky - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Klávesové skratky</center></h2><p>Boli definované nasledovné klávesové skratky.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Činnosť</th><th>Kláves</th></tr> - + Choose the right hand Vybrať pravú ruku - + Choose both hands Vybrať obe ruky - + Choose the left Hand Vybrať ľavú ruku - + Play from start toggle Prepnutie prehrávania od začiatku - + Play Pause Toggle Prepnutie Prehrať/Pozastaviť - - + + Increase the speed by 5% Zvýšiť rýchlosť o 5 % - + Change to the Next Song Prejsť na ďalšiu skladbu - + Change to the Previous Song Prejsť na predchádzajúcu skladbu - + Change to the Next Book Prejsť na ďalšiu knihu - + Change to the Previous Book Prejsť na predchádzajúcu knihu - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Emulovaná klaviatúra</td><td>X is jednočiarkové C</td></tr></table> </center><br> - + Open Midi File Otvoriť súbor MIDI - + Midi Files Súbory MIDI - + None Žiaden diff --git a/translations/pianobooster_sl.ts b/translations/pianobooster_sl.ts index 62f0bf2f..89ce69ac 100644 --- a/translations/pianobooster_sl.ts +++ b/translations/pianobooster_sl.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Dodaj - - - - Remove - Odstrani - - - + Settings Nastavitve - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: + Hitrost vzorčenja: + + + + Sound Font - - Audio Driver: + + Load - - Sample Rate: - Hitrost vzorčenja: + + Clear + - + Reverb - + Chorus Korus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Noben - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major Velika - - + + Minor Mala - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb H - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Odpri ... - + Ctrl+O Ctrl+O - + Open an existing file Odpri obstoječo datoteko - + E&xit Konča&j - + Ctrl+Q Ctrl+Q - + Exit the application - + &About &O programu - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Celo&zaslonski način - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Nastavitve ... - + Settings Nastavitve - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Datoteka - + &View &Videz - + &Song - + Set&up - - + + &Help &Pomoč - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Odpri Midi datoteka - + Midi Files Datoteke MIDI - + None Noben diff --git a/translations/pianobooster_sq.ts b/translations/pianobooster_sq.ts index f015d6e4..65e0b5f2 100644 --- a/translations/pianobooster_sq.ts +++ b/translations/pianobooster_sq.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Shto - - - - Remove - Hiq - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Asnjë - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit D&il - + Ctrl+Q - + Exit the application - + &About &Informacione - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View &Shfaq - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Asnjë diff --git a/translations/pianobooster_sr.ts b/translations/pianobooster_sr.ts index 2b941210..003927d4 100644 --- a/translations/pianobooster_sr.ts +++ b/translations/pianobooster_sr.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Песма: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ Излазни миди-уређај: - - Sound Fonts - Звукотеке - - - - Add - Додај - - - - Remove - Уклони - - - + Settings Поставке - - Audio Device: - Звучни уређај: - - - - Buffer Counts: - Количина бафера: - - - + Master Gain: Јачина (Мастер): - + Buffer Size: - + Audio Driver: Звучни посредник: - + Sample Rate: Учестаност узорковања: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Јека - + Chorus Хорус - + + Buffer Count: + + + + Latency Fix Исправка за кашњење - + Latency Кашњење - + 0 (msec) 0 (м.сек) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Ништа (рачунарска тастатура) - - - + + + None Ништа - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Излазни миди-уређај: - + %1 mSec %1 мсек - + Enter a value for the latency fix in milliseconds Унесите вредност исправке за кашњење у милисекундама - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) - Звукотеке (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Улазни миди-уређај: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - Отвори звукотеку (.sf2) за fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Нема придружених канала @@ -1280,27 +1280,27 @@ Миди-канал за леву руку: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab As - - + + Eb Es - - + + Bb H - - + + C - - + + F# Fis - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# Cis - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Наставик клавира - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Отвори... - + Ctrl+O Ctrl+O - + Open an existing file Отвори постојећу датотеку - + E&xit &изађи - + Ctrl+Q Ctrl+Q - + Exit the application Напустите програм - + &About О прогр&аму - + Show the application's About box Прикажи прозорче са подацима о програму - + &PC Shortcut Keys &Пречице рачунарске тастатуре - + The PC Keyboard shortcut keys Тасетери пречица на рачунарској тастатури - + &Midi Setup ... &Миди-поставке... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Поставке миди улаза и излаза - + Piano &Keyboard Setting ... Поставке &клавијатуре... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Поставке... - + Settings Поставке - + Ctrl+P Ctrl+P - + Song &Details ... Подаци о пе&сми... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Датотека - + &View &Приказ - + &Song Пе&сма - + Set&up По&ставка - - + + &Help П&омоћ - - + + Piano Booster Help Помоћник наставика клавира - + &Website &Веб-странице - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster О Наставику клавира - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Пречице рачунарске тастатуре - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Пречице рачунарске тастатуре</center></h2><p>Одређене су ове пречице рачунарске тастатуре.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Радња</th><th>Тастер</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Патворене клавирске дирке</td><td>Џ је нота »До« прве октаве (Ц4)</td></tr></table> </center><br> - + Open Midi File Отвори миди-датотеку - + Midi Files - + None Ништа diff --git a/translations/pianobooster_sr@latin.ts b/translations/pianobooster_sr@latin.ts index b944f71a..9a13d56c 100644 --- a/translations/pianobooster_sr@latin.ts +++ b/translations/pianobooster_sr@latin.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Pesma: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ Izlazni midi-uređaj: - - Sound Fonts - Zvukoteke - - - - Add - Dodaj - - - - Remove - Ukloni - - - + Settings Postavke - - Audio Device: - Zvučni uređaj: - - - - Buffer Counts: - Količina bafera: - - - + Master Gain: Jačina (Master): - + Buffer Size: - + Audio Driver: Zvučni posrednik: - + Sample Rate: Učestanost uzorkovanja: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Jeka - + Chorus Refren - + + Buffer Count: + + + + Latency Fix Ispravka za kašnjenje - + Latency Kašnjenje - + 0 (msec) 0 (m.sek) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Ništa (računarska tastatura) - - - + + + None Ništa - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Izlazni midi-uređaj: - + %1 mSec - + Enter a value for the latency fix in milliseconds Unesite vrednost ispravke za kašnjenje u milisekundama - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) - Zvukoteke (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Ulazni midi-uređaj: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - Otvori zvukoteku (.sf2) za fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Nema pridruženih kanala @@ -1280,27 +1280,27 @@ Midi-kanal za levu ruku: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab As - - + + Eb Es - - + + Bb H - - + + C - - + + F# Fis - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# Cis - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Nastavik klavira - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Otvori... - + Ctrl+O Ctrl+O - + Open an existing file Otvori postojeću datoteku - + E&xit &izađi - + Ctrl+Q Ctrl+Q - + Exit the application Napustite program - + &About O progr&amu - + Show the application's About box Prikaži prozorče sa podacima o programu - + &PC Shortcut Keys &Prečice računarske tastature - + The PC Keyboard shortcut keys Taseteri prečica na računarskoj tastaturi - + &Midi Setup ... &Midi-postavke... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Postavke midi ulaza i izlaza - + Piano &Keyboard Setting ... Postavke &klavijature... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Postavke... - + Settings Postavke - + Ctrl+P Ctrl+P - + Song &Details ... Podaci o pe&smi... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fajl - + &View P&rikaz - + &Song Pe&sma - + Set&up Po&stavka - - + + &Help P&omoć - - + + Piano Booster Help Pomoćnik nastavika klavira - + &Website &Veb-stranice - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster O Nastaviku klavira - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Prečice računarske tastature - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Prečice računarske tastature</center></h2><p>Određene su ove prečice računarske tastature.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Radnja</th><th>Taster</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Patvorene klavirske dirke</td><td>Dž je nota »Do« prve oktave (C4)</td></tr></table> </center><br> - + Open Midi File Otvori midi-datoteku - + Midi Files - + None Ništa diff --git a/translations/pianobooster_sv.ts b/translations/pianobooster_sv.ts index d9bcea73..f38cb658 100644 --- a/translations/pianobooster_sv.ts +++ b/translations/pianobooster_sv.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Låt: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space blanksteg - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Konstant loopning - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ Utmatningsenhet för Midi: - - Sound Fonts - Ljudsamplingar - - - - Add - Lägg till - - - - Remove - Ta bort - - - + Settings Inställningar - - Audio Device: - Ljudenhet: - - - - Buffer Counts: - - - - + Master Gain: - + Buffer Size: - + Audio Driver: Drivrutin för ljudet: - + Sample Rate: Samplingsfrekvens: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Eko - + Chorus Korus - + + Buffer Count: + + + + Latency Fix Latens-lösning - + Latency Latens - + 0 (msec) 0 (msek) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Inget (Tangentbord för PC) - - - + + + None Ingen - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Utmatningsenhet för Midi: - + %1 mSec %1 mSek - + Enter a value for the latency fix in milliseconds Fyll i ett värde för latensfixen i millisekunder - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Inmatningsenhet för Midi: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major Dur - - + + Minor Moll - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Öppna... - + Ctrl+O Ctrl+O - + Open an existing file Öppna en befintlig fil - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Avsluta program - + &About &Om - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys Snabbkommandon - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... Inställningar för piano-&tangentbord... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Helskärm - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Inställningar... - + Settings Inställningar - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Arkiv - + &View &Visa - + &Song &Låt - + Set&up - - + + &Help &Hjälp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space blanksteg - + PC Keyboard ShortCuts Snabbkommandon - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Öppna MIDI-fil - + Midi Files MIDI-filer - + None Ingen diff --git a/translations/pianobooster_ta.ts b/translations/pianobooster_ta.ts index a6e56fd7..50172cb0 100644 --- a/translations/pianobooster_ta.ts +++ b/translations/pianobooster_ta.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - சேர் - - - - Remove - நீக்கு - - - + Settings அமைவுகள் - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus கொரஸ் - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None எதுவுமில்லை - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... திற... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About பற்றி - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings அமைவுகள் - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File கோப்பு - + &View பார்வை - + &Song - + Set&up - - + + &Help உதவி - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None எதுவுமில்லை diff --git a/translations/pianobooster_te.ts b/translations/pianobooster_te.ts index dd945c0c..c3041e89 100644 --- a/translations/pianobooster_te.ts +++ b/translations/pianobooster_te.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - జతచేయి - - - - Remove - తొలగించు - - - + Settings అమరికలు - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus కోరస్ - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None ఏదీకాదు - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... తెరువు (&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About గురించి (&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings అమరికలు - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File దస్త్రం (&F) - + &View వీక్షణం (&V) - + &Song - + Set&up - - + + &Help సహాయం (&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None ఏదీకాదు diff --git a/translations/pianobooster_tg.ts b/translations/pianobooster_tg.ts index 02344afe..0ba3b4e9 100644 --- a/translations/pianobooster_tg.ts +++ b/translations/pianobooster_tg.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add - Илова кардан - - - - Remove - Нобуд кардан - - - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Ғайри - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Кушодан... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Дарбораи - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Намоиш - + &Song - + Set&up - - + + &Help &Роҳнамо - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Ғайри diff --git a/translations/pianobooster_th.ts b/translations/pianobooster_th.ts index 8f8000e5..fe4f7b5a 100644 --- a/translations/pianobooster_th.ts +++ b/translations/pianobooster_th.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: เพลง: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space ช่องว่าง - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ วนซ้ำอย่างต่อเนื่อง - + Repeat End Bar: ทำซ้ำ End Bar: - + Repeat Bar is disabled ไม่ได้ใช้งานแถบทำซ้ำ @@ -876,77 +876,72 @@ อุปกรณ์ส่งออก MIDI: - - Sound Fonts - แบบอักษรเสียง - - - - Add - เพิ่ม - - - - Remove - ลบออก - - - + Settings การตั้งค่า - - Audio Device: - อุปกรณ์เสียง: - - - - Buffer Counts: - นับบัฟเฟอร์: - - - + Master Gain: - + Buffer Size: - + Audio Driver: ไดร้เวอร์เสียง: - + Sample Rate: ตัวอย่างอัตรา: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb เสียงสะท้อน - + Chorus ประสานเสียง - + + Buffer Count: + + + + Latency Fix เวลาแฝงคงที่ - + Latency แฝง - + 0 (msec) 0 (มิลลิวินาที) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) ไม่มี (PC คีย์บอร์ด) - - - + + + None ไม่มี - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: อุปกรณ์ส่งออก MIDI: - + %1 mSec %1 ไมโครวินาที - + Enter a value for the latency fix in milliseconds ป้อนค่าสำหรับการแก้ไขปัญหาความล่าช้าในมิลลิวินาที - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. การแก้ไขเวลาแฝงทำงานโดยทำการเล่นเพลงไปก่อน<br>สิ่งที่คุณกำลังจะเล่นเพื่อรับมือกับเวลาหน่วงที่เกิดขึ้นกับตัวกำเนิดเสียง<br><br> คุณจะต้องเล่นเปียโน<b>กับลำโพง</b>ที่มีการ<b>เปิดไว้</b><br><br>ใส่เวลาในหน่วยมิลลิวินาทีสำหรับเวลาหน่วง (1000 มิลลิวินาที = 1 วินาที)<br>(สำหรับ Microsoft GS Wavetable SW Synth ลองตั้งค่าที่ 150)<br>ถ้าคุณไม่แน่ใจให้ใส่ค่าเป็นศูนย์ - - SoundFont2 Files (*.sf2) - แฟ้ม SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup ตั้งค่า Midi - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: อุปกรณ์รับเข้า MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - เปิด SoundFont2 สำหรับ fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ ปิดเสียงของคุณขณะกำลังเล่น - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned ไม่มีช่องที่ได้รับสัญญาณ @@ -1280,27 +1280,27 @@ ช่องซ้ายมือ MIDI : - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music เริ่มและหยุดเล่นดนตรี @@ -1349,109 +1349,109 @@ บันทึกหมายเลขบาร์นี้ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster เปียโน บู๊สเตอร์ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... เปิ&ด... - + Ctrl+O Ctrl+O - + Open an existing file เปิดแฟ้มที่มีอยู่ - + E&xit &ออก - + Ctrl+Q Ctrl+Q - + Exit the application ออกจากโปรแกรม - + &About เกี่ยวกั&บ - + Show the application's About box แสดงกล่อง About ของโปรแกรมประยุกต์ - + &PC Shortcut Keys &ปุ่มลัดคอมพิวเตอร์ - + The PC Keyboard shortcut keys ปุ่มลัดแป้นพิมพ์คอมพิวเตอร์ - + &Midi Setup ... ตั้งค่า &Midi ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... การตั้งค่า&คีย์บอร์ดเปียโน ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &การตั้งค่า ... - + Settings การตั้งค่า - + Ctrl+P Ctrl+P - + Song &Details ... &รายละเอียดเพลง..... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File แฟ้&ม - + &View มุ&มมอง - + &Song &เพลง - + Set&up ติ&ดตั้ง - - + + &Help &ช่วยเหลือ - - + + Piano Booster Help ตัวช่วย เปียโน Booster - + &Website &เว็บไซต์ - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster เกี่ยวกับ Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space ช่องว่าง - + PC Keyboard ShortCuts ทางลัดคีย์บอร์ดคอมพิวเตอร์ - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>คีย์บอร์ดช็อตคัต</center></h2><p>PC คีย์บอร์ดช็อตคัตดังต่อไปนี้ได้ถูกกำหนดไว้แล้ว</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>แอ็คชั่น</th><th>คีย์</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>คีย์เปียโนเทียบเคียง</td><td>X คือ middle C</td></tr></table> </center><br> - + Open Midi File เปิดแฟ้ม Midi - + Midi Files - + None ไม่มี diff --git a/translations/pianobooster_tr.ts b/translations/pianobooster_tr.ts index 6e103685..a52026a1 100644 --- a/translations/pianobooster_tr.ts +++ b/translations/pianobooster_tr.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Şarkı: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Ekle - - - - Remove - Kaldır - - - + Settings Ayarlar - - Audio Device: - Ses Aygıtı: - - - - Buffer Counts: - - - - + Master Gain: Ana Kazanç: - + Buffer Size: - + Audio Driver: Ses Sürücüsü: - + Sample Rate: Örnekleme Hızı: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Yankı - + Chorus Koro - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency Gecikme Süresi - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Hiçbiri - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major Majör - - + + Minor Minör - + Gb - + Db - + Ab - - + + Eb - - + + Bb Si - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Aç... - + Ctrl+O Ctrl+O - + Open an existing file Varolan bir dosyayı aç - + E&xit - + Ctrl+Q - + Exit the application - + &About &Hakkında - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Seçenekler ... - + Settings Ayarlar - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Dosya - + &View &Görünüm - + &Song - + Set&up - - + + &Help &Yardım - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Hiçbiri diff --git a/translations/pianobooster_tt.ts b/translations/pianobooster_tt.ts index 0b2f3a41..5d38547a 100644 --- a/translations/pianobooster_tt.ts +++ b/translations/pianobooster_tt.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts + + Settings - - Add + + Master Gain: - - Remove - Töşer - - - - Settings + + Buffer Size: - - Audio Device: + + Audio Driver: - - Buffer Counts: + + Sample Rate: - - Master Gain: + + Sound Font - - Buffer Size: + + Load - - Audio Driver: + + Clear - - Sample Rate: + + Reverb - - Reverb + + Chorus - - Chorus + + Buffer Count: - + Latency Fix - + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index 5e9f2759..06b763b6 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -4,37 +4,37 @@ CDraw - + C До - + D Ре - + E Мі - + F Фа - + G Соль - + A Ля - + B Сі-бемоль @@ -42,17 +42,17 @@ CGLView - + Accuracy: Точність: - + Song: Пісня: - + Bar: Такт: @@ -60,17 +60,17 @@ CSettings - + space пробіл - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... ПОМИЛКА, НЕМАЄ ЗВУКУ: щоб виправити це, скористайтеся пунктом меню «Налаштування/Налаштувати MIDI»… - + ERROR NO MIDI FILE: To fix this use menu File/Open ... ПОМИЛКА, НЕМАЄ ФАЙЛА MIDI: щоб виправити це, скористайтеся пунктом меню «Файл -> Відкрити»... @@ -828,12 +828,12 @@ Неперервне повторення - + Repeat End Bar: Кінцевий такт повторення: - + Repeat Bar is disabled Повторення такту вимкнено @@ -876,77 +876,72 @@ Пристрій виведення MIDI: - - Sound Fonts - Звукові шрифти - - - - Add - Додати - - - - Remove - Видалити - - - + Settings Параметри - - Audio Device: - Звуковий пристрій: - - - - Buffer Counts: - Кількість буферів: - - - + Master Gain: Підсилення основного каналу: - + Buffer Size: Розмір буфера: - + Audio Driver: Звуковий драйвер: - + Sample Rate: Частота семплювання: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Реверберація - + Chorus Хорус - + + Buffer Count: + + + + Latency Fix Виправлення затримки - + Latency Затримка - + 0 (msec) 0 (мс) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Немає (клавіатура ПК) - - - + + + None Немає - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Пристрій виведення MIDI: - + %1 mSec %1 мс - + Enter a value for the latency fix in milliseconds Введіть значення для виправлення затримки у мілісекундах - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Виправлення затримки виконується за рахунок випереджального<br>відтворення для компенсації затримки у засобі відтворення звукових даних.<br><br>Вам потрібне буде піаніно <b>із гучномовцями</b>, які <b>розвернуто вгору</b>.<br><br>Вкажіть час затримки у мілісекундах (1000 мс = 1 секунда)<br>(Для Microsoft GS Wavetable SW Synth рекомендуємо значення 150)<br>Якщо не певні, чи це потрібно, вкажіть нульове значення. - - SoundFont2 Files (*.sf2) - файли SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) + - + Midi Setup Налаштування MIDI - + No Sound Output Device selected; Choose a Midi Output Device Не вибрано пристрою для виведення звуку; виберіть пристрій для виведення MIDI - - + + The use of Midi Through is not recommended! Не рекомендуємо використовувати MIDI Through! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. Якщо у вас немає MIDI-клавіатури, можете скористатися звичайною; «X» — середня нота до. - + Midi Input Device: Пристрій введення MIDI: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - Зауваження: використання Microsoft GS Wavetable Synth додає небажану затримку!. - - - + (Try a latency fix of 150msc) (Спробуйте виправлення затримки у 150 мс) - - - Open SoundFont2 File for fluidsynth - Відкрити файл SoundFont2 для fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat Після такту + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Вимкнути вашу партія під час відтворення - - + + Drums Ударні - - + + Melody Мелодія - + Set as Right Hand Part Встановити як партію для правої руки - + Set as Left Hand Part Встановити як партію для лівої руки - + Reset Both Parts Скинути обидві партії @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Не прив'язано жодного каналу @@ -1280,27 +1280,27 @@ Канал MIDI для лівої руки: - + The left and right hand channels must be different Канали для лівої і правої руки мають бути різними - + Both left and right hand channels must be none to disable this feature Для вимикання цієї можливості канали для лівої і правої рук мають бути порожніми - + Set the MIDI Channels to be used for left and right hand piano parts: Встановлено канали MIDI, які слід використовувати для партій для лівої і правої рук: - + the left hand piano part is using MIDI Channels 1 партія піаніно для лівої руки використовує MIDI-канали 1 - + the right hand piano part is using MIDI Channels 1 партія піаніно для правої руки використовує MIDI-канали 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Почати або зупинити відтворення музики @@ -1349,109 +1349,109 @@ Зберегти цей номер такту - - + + Major Мажор - - + + Minor Мінор - + Gb Gb - + Db Db - + Ab Ab - - + + Eb Eb - - + + Bb Bb - - + + C C - - + + F# F# - - + + F F - - + + G G - - + + D Ре - - + + A A - - + + E Мі - - + + B Сі - + G# G# - + C# C# - + D# D# - + Playing music from the beginning Відтворюємо музику від початку @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error Помилка у файлі MIDI - + Cannot open "%1" Не вдалося відкрити «%1» - + Midi file "%1" is corrupted Файл MIDI «%1» пошкоджено @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error Помилка із файлом MIDI у Piano Booster - + Cannot open "%1" Не вдалося відкрити «%1» - + "%1" is not a Midi File «%1» не є файлом MIDI - + "%1" is not a valid Midi file «%1» не є коректним файлом MIDI - + &Open... &Відкрити... - + Ctrl+O Ctrl+O - + Open an existing file Відкрити існуючий файл - + E&xit Ви&йти - + Ctrl+Q Ctrl+Q - + Exit the application Завершити роботу програми - + &About &Про програму - + Show the application's About box Показати панель з інформацією про програму - + &PC Shortcut Keys &Клавіші клавіатури комп'ютера - + The PC Keyboard shortcut keys Клавіатурні скорочення на клавіатурі комп'ютера - + &Midi Setup ... &Налаштувати MIDI… - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Налаштувати введення і виведення даних MIDI - + Piano &Keyboard Setting ... Налаштувати &клавіатуру піаніно… - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Змінити параметри клавіатури піаніно - + &Fullscreen Повний екр&ан - + Fullscreen mode Повноекранний режим - + F11 F11 - + &Show the Side Panel &Показати бічну панель - + Show the Left Side Panel Показувати ліву бічну панель - + F12 F12 - + Show Piano &Keyboard Показати &клавіатуру піаніно - + Show Piano Keyboard Widget Показувати віджет клавіатури піаніно - + &Preferences ... &Налаштування… - + Settings Параметри - + Ctrl+P Ctrl+P - + Song &Details ... П&араметри пісні… - + Song Settings Параметри композиції - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Файл - + &View П&ерегляд - + &Song &Пісня - + Set&up На&лаштування - - + + &Help &Довідка - - + + Piano Booster Help Довідка з Piano Booster - + &Website С&айт - + Piano Booster Website Сайт Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Про Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster — версія %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Удоскональте</b> ваші навички гри на <b>піаніно</b>!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> - © L. J. Barman, 2008-2013; усі права захищено.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> + © L. J. Barman, 2008-2013; усі права захищено.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> © Fabien Givors, 2018-2019; усі права захищено.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Цю програму випущено за умов дотримання Загальної громадської ліцензії GNU (GNU General Public License) версії 3, з текстом, який оприлюднено Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> До коду цієї програми включено код RtMIDI: класи обробки вхідних-вихідних даних MIDI мовою C++<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. © Gary P. Scavone, 2003-2019; усі права захищено. - + space пробіл - + PC Keyboard ShortCuts Комбінації клавіш на клавіатурі - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Комбінації клавіш</center></h2><p>Визначено вказані нижче комбінації клавіш на клавіатурі комп'ютера.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Дія</th><th>Клавіші</th></tr> - + Choose the right hand Вибрати праву руку - + Choose both hands Вибрати обидві руки - + Choose the left Hand Вибрати ліву руку - + Play from start toggle Перемикач відтворення від початку - + Play Pause Toggle Перемикач відтворення/пауза - - + + Increase the speed by 5% Збільшити швидкість на 5% - + Change to the Next Song Перейти до наступної пісні - + Change to the Previous Song Перейти до попередньої пісні - + Change to the Next Book Перейти до наступної книги - + Change to the Previous Book Перейти до попередньої книги - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Клавіші імітатора піаніно</td><td>X — середня нота до</td></tr></table> </center><br> - + Open Midi File Відкриття файла MIDI - + Midi Files MIDI файли - + None Немає diff --git a/translations/pianobooster_uz.ts b/translations/pianobooster_uz.ts index 8ff7aeb1..28647a0d 100644 --- a/translations/pianobooster_uz.ts +++ b/translations/pianobooster_uz.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Qoʻshish - - - - Remove - Olib tashlash - - - + Settings Moslamalar - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Yoʻq - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Ochish... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Haqida - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Moslamalar - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fayl - + &View &Koʻrinish - + &Song - + Set&up - - + + &Help &Yordam - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Yoʻq diff --git a/translations/pianobooster_vi.ts b/translations/pianobooster_vi.ts index 0b99febf..6a97baa9 100644 --- a/translations/pianobooster_vi.ts +++ b/translations/pianobooster_vi.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: Bài hát: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ Lặp lại Liên tục - + Repeat End Bar: Lặp lại nhịp cuối: - + Repeat Bar is disabled Đã tắt lặp lại nhịp @@ -876,77 +876,72 @@ Đầu ra Thiết bị Midi: - - Sound Fonts - - - - - Add - Thêm - - - - Remove - Gỡ bỏ - - - + Settings Cài đặt - - Audio Device: - Thiết bị Âm thanh: - - - - Buffer Counts: - Đếm vùng đệm: - - - + Master Gain: - + Buffer Size: - + Audio Driver: Chương trình điều khiển Âm thanh: - + Sample Rate: Tần số mẫu: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb Tiếng vang - + Chorus Điệp khúc - + + Buffer Count: + + + + Latency Fix Chỉnh độ trễ - + Latency Độ trễ - + 0 (msec) 0 (mili giây) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) Không (Bàn phím máy tính) - - - + + + None Không - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Đầu ra Thiết bị Midi: - + %1 mSec %1 mili giây - + Enter a value for the latency fix in milliseconds Nhập giá trị chỉnh độ trễ bằng mili giây - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. Bộ chỉnh độ trễ hoạt động bằng cách chạy nhạc trước âm thanh<br>bạn đang phát để khắc phục độ chậm trễ do bộ sinh âm.<br><br>Bạn sẽ cần một đàn piano <b> có loa</b> đã được <b>lên dây</b>.<br><br>Nhập thời gian trễ tính theo mili giây (1000 mili giây = 1 giây)<br>(Đối với Microsoft GS Wavetable SW Synth hãy thử nhập 150)<br>Nếu không chắc chắn hãy nhập giá trị là 0. - - SoundFont2 Files (*.sf2) - Tập tin SoundFont2 (*.sf2) + + Open SoundFont File for fluidsynth + - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Đầu vào Thiết bị Midi: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - Mở tập tin SoundFont2 cho fluidsynth - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ Tắt tiếng phần của bạn khi phát - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned Không có kênh nào được gán @@ -1280,27 +1280,27 @@ Kênh MIDI tay trái: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music Bắt đầu và dừng chơi nhạc @@ -1349,109 +1349,109 @@ Lưu số nhịp này - - + + Major - - + + Minor - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C - - + + F# f# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Mở... - + Ctrl+O Ctrl+O - + Open an existing file Mở một tập tin có sẵn - + E&xit &Thoát - + Ctrl+Q Ctrl+Q - + Exit the application Thoát ứng dụng - + &About &Giới thiệu - + Show the application's About box Hiện hộp thoại Giới thiệu ứng dụng - + &PC Shortcut Keys &Phím tắt máy tính - + The PC Keyboard shortcut keys Phím tắt bàn phím máy tính - + &Midi Setup ... &Cài đặt Midi... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output Cài đặt đầu vào và đầu ra Midi - + Piano &Keyboard Setting ... Thiết lập &Bàn phím Piano... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Tùy chỉnh... - + Settings Cài đặt - + Ctrl+P Ctrl+P - + Song &Details ... &Chi tiết Bản nhạc... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Tập tin - + &View &Xem - + &Song &Bản nhạc - + Set&up Cài&đặt - - + + &Help Trợ g&iúp - - + + Piano Booster Help Trợ giúp Piano Booster - + &Website &Trang web - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Giới thiệu về Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Phím tắt bàn phím máy tính - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Phím tắt bàn phím</center></h2><p>Những phím tắt sau đã được xác định.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Hành động</th><th>Từ khóa</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Phím Piano giả</td><td>X là phím Đô giữa</td></tr></table> </center><br> - + Open Midi File Mở tập tin Midi - + Midi Files Tập tin MIDI - + None Không diff --git a/translations/pianobooster_wa.ts b/translations/pianobooster_wa.ts index 7fdafcec..e8dc1f64 100644 --- a/translations/pianobooster_wa.ts +++ b/translations/pianobooster_wa.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Radjouter - - - - Remove - Oister - - - + Settings Apontiaedjes - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Nouk - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Drovi... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About Åd fw&ait - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Apontiaedjes - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File &Fitchî - + &View &Vey - + &Song - + Set&up - - + + &Help &Aidance - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Nouk diff --git a/translations/pianobooster_xh.ts b/translations/pianobooster_xh.ts index 916967db..a715ebe0 100644 --- a/translations/pianobooster_xh.ts +++ b/translations/pianobooster_xh.ts @@ -4,37 +4,37 @@ CDraw - + C - + D - + E - + F - + G - + A - + B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - Yongeza - - - - Remove + + Settings - - Settings + + Master Gain: - - Audio Device: + + Buffer Size: - - Buffer Counts: + + Audio Driver: - - Master Gain: + + Sample Rate: - - Buffer Size: + + Sound Font - - Audio Driver: + + Load - - Sample Rate: + + Clear - + Reverb - + Chorus Umculo wekwayari - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None Akukho nanye - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth - + + SoundFont Files (*.sf2 *.sf3) + + + + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major - - + + Minor - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C - - + + F# - - + + F + + + + G + + - G + D - D + A - A + E - E - - - - - B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Malunga - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File I&fayili - + &View &Okubonakalayo - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None Akukho nanye diff --git a/translations/pianobooster_zh.ts b/translations/pianobooster_zh.ts index 942d0eb5..86dab9ff 100644 --- a/translations/pianobooster_zh.ts +++ b/translations/pianobooster_zh.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E e - + F E - + G G - + A A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: - + Song: 曲子: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space 空格 - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... @@ -828,12 +828,12 @@ 循环播放 - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ Midi输出设备: - - Sound Fonts - 声音字体 - - - - Add - 增加 - - - - Remove - 移除 - - - + Settings 设置 - - Audio Device: - 音频设备: - - - - Buffer Counts: - 缓存数量: - - - + Master Gain: 主增益: - + Buffer Size: - + Audio Driver: 音频驱动器: - + Sample Rate: 采样率: - + + Sound Font + + + + + Load + + + + + Clear + + + + Reverb 混响 - + Chorus 和声(Chorus) - + + Buffer Count: + + + + Latency Fix 延时修复 - + Latency 延时 - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) None (电脑键盘) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: Midi输出设备: - + %1 mSec - + Enter a value for the latency fix in milliseconds 以毫秒为单位输入一个延时修复值 - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup Midi设置 - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: Midi输入设备: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - 为流体合成打开SoundFont2文件 - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ 播放时静音部件 - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned 未定义通道 @@ -1280,27 +1280,27 @@ 左MIDI通道: - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music 开始和停止播放音乐 @@ -1349,109 +1349,109 @@ 保存Bar数字 - - + + Major 大调 - - + + Minor 小调 - + Gb - + Db - + Ab Ab - - + + Eb Eb - - + + Bb - - + + C C - - + + F# f# - - + + F E - - + + G G - - + + D D - - + + A A - - + + E e - - + + B B - + G# g# - + C# c# - + D# d# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 打开(&O)... - + Ctrl+O Ctrl+O - + Open an existing file 打开已存在的文件 - + E&xit 退出(&x) - + Ctrl+Q Ctrl+Q - + Exit the application 退出程序 - + &About 关于(&A) - + Show the application's About box 显示程序的关于对话框 - + &PC Shortcut Keys &PC快捷键 - + The PC Keyboard shortcut keys 计算机键盘快捷键 - + &Midi Setup ... &Midi设置... - - + Ctrl+S Ctrl+S - + Setup the Midi input and output 设置MIDI输入输出 - + Piano &Keyboard Setting ... 琴键设置(&K)... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings 改变钢琴键设置 - + &Fullscreen 全屏(&F) - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... 首选项(&P)... - + Settings 设置 - + Ctrl+P Ctrl+P - + Song &Details ... 歌曲信息(&S)... - + Song Settings - + + Ctrl+D + + + + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File 文件(&F) - + &View 查看(&V) - + &Song 曲子(&S) - + Set&up 设置(&u) - - + + &Help 帮助(&H) - - + + Piano Booster Help Piano Booster 帮助 - + &Website 网站(&W) - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster 关于 Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space 空格 - + PC Keyboard ShortCuts 计算机快捷键 - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>快捷键</center></h2><p>已定义下述快捷键。</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% 以百分之五的速度增长 - + Change to the Next Song 切换到下一首歌 - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File 打开Midi文件 - + Midi Files MIDI 文件 - + None diff --git a/translations/pianobooster_zh_HK.ts b/translations/pianobooster_zh_HK.ts index 1542ee5a..79e819fb 100644 --- a/translations/pianobooster_zh_HK.ts +++ b/translations/pianobooster_zh_HK.ts @@ -4,37 +4,37 @@ CDraw - + C C - + D D - + E - + F - + G - + A - + B B @@ -42,17 +42,17 @@ CGLView - + Accuracy: 準確性: - + Song: 歌曲: - + Bar: @@ -60,17 +60,17 @@ CSettings - + space 空間 - + ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... 錯誤沒有聲音:修復錯誤請使用菜單 [設置]/ [Midi設置]... - + ERROR NO MIDI FILE: To fix this use menu File/Open ... 錯誤沒有 MIDI 文件:修復錯誤請使用菜單 [文件]/[打開]... @@ -828,12 +828,12 @@ - + Repeat End Bar: - + Repeat Bar is disabled @@ -876,77 +876,72 @@ - - Sound Fonts - - - - - Add - 加號 - - - - Remove - 移除 - - - + Settings 設定值 - - Audio Device: + + Master Gain: - - Buffer Counts: + + Buffer Size: - - Master Gain: + + Audio Driver: - - Buffer Size: + + Sample Rate: - - Audio Driver: + + Sound Font - - Sample Rate: + + Load - + + Clear + + + + Reverb - + Chorus 合唱 - - Latency Fix + + Buffer Count: + Latency Fix + + + + Latency - + 0 (msec) @@ -954,83 +949,83 @@ GuiMidiSetupDialog - + None (PC Keyboard) - - - + + + None - + + Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! + + + + Midi Output Device: - + %1 mSec - + Enter a value for the latency fix in milliseconds - + The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - SoundFont2 Files (*.sf2) + + Open SoundFont File for fluidsynth + + + + + SoundFont Files (*.sf2 *.sf3) - + Midi Setup - + No Sound Output Device selected; Choose a Midi Output Device - - + + The use of Midi Through is not recommended! - + If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Midi Input Device: - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay!. - - - - + (Try a latency fix of 150msc) - - - Open SoundFont2 File for fluidsynth - - GuiPreferencesDialog @@ -1119,6 +1114,11 @@ After the Beat + + + System Language + + GuiSidePanel @@ -1218,29 +1218,29 @@ - - + + Drums - - + + Melody - + Set as Right Hand Part - + Set as Left Hand Part - + Reset Both Parts @@ -1248,8 +1248,8 @@ GuiSongDetailsDialog - - + + No channel assigned @@ -1280,27 +1280,27 @@ - + The left and right hand channels must be different - + Both left and right hand channels must be none to disable this feature - + Set the MIDI Channels to be used for left and right hand piano parts: - + the left hand piano part is using MIDI Channels 1 - + the right hand piano part is using MIDI Channels 1 @@ -1319,7 +1319,7 @@ - + Start and stop playing music @@ -1349,109 +1349,109 @@ - - + + Major 大調 - - + + Minor 小調 - + Gb - + Db - + Ab - - + + Eb - - + + Bb - - + + C C - - + + F# - - + + F - - + + G - - + + D D - - + + A - - + + E - - + + B B - + G# - + C# - + D# - + Playing music from the beginning @@ -1459,18 +1459,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1511,443 +1511,447 @@ QtWindow - + Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 開啟(&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About 關於(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen 全螢幕(&F) - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings 設定值 - + Ctrl+P - + Song &Details ... - + Song Settings - + + Ctrl+D + + + + Shift+F1 - + Alt+F1 - + &File 檔案(&F) - + &View 檢視(&V) - + &Song - + Set&up - - + + &Help 說明(&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> + + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space 空間 - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - + None From febd417ab2d41d9e297ac584ac261f6983a1f855 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Sun, 19 Apr 2020 14:17:21 +0000 Subject: [PATCH 14/84] Translated using Weblate (French) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/fr/ --- translations/pianobooster_fr.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index ddb273b9..017e2ec2 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -903,17 +903,17 @@ Sound Font - + Banque de son Load - + Charger Clear - + Nettoyer @@ -928,7 +928,7 @@ Buffer Count: - + Nombre de tampons : @@ -963,7 +963,7 @@ Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - + Note : le Microsoft GS Wavetable Synth introduit un retard indésirable ! @@ -988,12 +988,12 @@ Open SoundFont File for fluidsynth - + Ouvrir le fichier SoundFont pour fluidsynth SoundFont Files (*.sf2 *.sf3) - + Fichiers de banque de son (*.sf2 *.sf3) @@ -1117,7 +1117,7 @@ System Language - + Langue système @@ -1685,7 +1685,7 @@ Ctrl+D - + Ctrl+D @@ -1842,12 +1842,12 @@ Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - Copyright(c) L. J. Barman, 2008-2013 ; Tous droits réservés.<br> {2008-2020;?} + Copyright(c) L. J. Barman, 2008-2020 ; tous droits réservés.<br> Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - Copyright(c) Fabien Givors, 2018-2019 ; Tous droits réservés.<br> + Copyright(c) Fabien Givors, 2018-2019 ; tous droits réservés.<br> @@ -1862,7 +1862,7 @@ Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - Copyright(c) Gary P. Scavone, 2003-2019 ; Tous droits réservés. + Copyright(c) Gary P. Scavone, 2003-2019 ; tous droits réservés. From 45d61d6990610ba1a4c87bf816d64f983588cc55 Mon Sep 17 00:00:00 2001 From: Jonatan Nyberg Date: Sat, 18 Apr 2020 19:03:44 +0000 Subject: [PATCH 15/84] Translated using Weblate (Swedish) Currently translated at 69.1% (260 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/sv/ --- translations/pianobooster_sv.ts | 102 ++++++++++++++++---------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/translations/pianobooster_sv.ts b/translations/pianobooster_sv.ts index f38cb658..a6994e1a 100644 --- a/translations/pianobooster_sv.ts +++ b/translations/pianobooster_sv.ts @@ -6,37 +6,37 @@ C - + C D - + D E - + E F - + F G - + G A - + A B - + B @@ -44,7 +44,7 @@ Accuracy: - + Noggrannhet: @@ -67,12 +67,12 @@ ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + FEL INGET LJUD: För att åtgärda detta använd menyn Installation/Midi-installation... ERROR NO MIDI FILE: To fix this use menu File/Open ... - + Fel INGEN MIDI-FIL: För att åtgärda detta använd menyn Arkiv/Öppna ... @@ -90,12 +90,12 @@ Bright Piano - + Ljust piano Electric Grand - + Elektrisk Grand @@ -145,7 +145,7 @@ Marimba - + Marimba @@ -365,7 +365,7 @@ Trumpet - + Trumpet @@ -375,7 +375,7 @@ Tuba - + Tuba @@ -425,7 +425,7 @@ Oboe - + Oboe @@ -470,7 +470,7 @@ Shakuhachi - + Shakuhachi @@ -600,7 +600,7 @@ FX 8 (sci-fi) - + FX 8 (sci-fi) @@ -610,22 +610,22 @@ Banjo - + Banjo Shamisen - + Shamisen Koto - + Koto Kalimba - + Kalimba @@ -650,7 +650,7 @@ Agogo - + Agogo @@ -733,7 +733,7 @@ Dialog - + Dialog @@ -771,7 +771,7 @@ Keyboard Note Range - + Keyboardets tonräckvidd @@ -802,12 +802,12 @@ Choose the right and wrong sound for your playing. - + Välj rätt och fel ljud för ditt spelande. You can use the PC keyboard instead of a MIDI keyboard; 'x' is middle C. - + Du kan använda PC-tangentbordet istället för en MIDI-keyboard; 'x' är mitt C. @@ -888,7 +888,7 @@ Buffer Size: - + Buffertstorlek: @@ -903,17 +903,17 @@ Sound Font - + Sound Font Load - + Läs in Clear - + Rensa @@ -928,7 +928,7 @@ Buffer Count: - + Buffertantal: @@ -963,7 +963,7 @@ Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - + Obs: Microsoft GS Wavetable Synth introducerar en oönskad försening! @@ -988,33 +988,33 @@ Open SoundFont File for fluidsynth - + Öppna SoundFont-fil för fluidsynth SoundFont Files (*.sf2 *.sf3) - + SoundFont-filer (*.sf2 *.sf3) Midi Setup - + Midi-installation No Sound Output Device selected; Choose a Midi Output Device - + Ingen ljudutgångsenhet vald; Välj en Midi-utgångsenhet The use of Midi Through is not recommended! - + Användning av Midi Through rekommenderas inte! If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - + Om du inte har en MIDI-keyboard kan du använda PC-tangentbordet; "X" är mitt C. @@ -1037,7 +1037,7 @@ Score Settings - + Betygsinställningar @@ -1047,12 +1047,12 @@ Follow stop point: - + Följ stoppunkt: Show Note Names - + Visa notnamn @@ -1067,22 +1067,22 @@ Show color coded notes on the score - + Visa färgkodade noter på poängen Color Coded Notes - + Färgkodade noter Music Course - + Musikkurs Show Tutor Help Pages - + Visa hjälpsidor för lärare @@ -1102,22 +1102,22 @@ Automatic (Recommended) - + Automatisk (rekommenderas) On the Beat - + På takten After the Beat - + Efter takten System Language - + Systemspråk @@ -1180,7 +1180,7 @@ Repeat song - + Upprepa låten From 24d34a20c58cb1a120e7977797e247162c7646ce Mon Sep 17 00:00:00 2001 From: Jeannette L Date: Wed, 22 Apr 2020 12:48:19 +0000 Subject: [PATCH 16/84] Translated using Weblate (German) Currently translated at 96.5% (363 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/de/ --- translations/pianobooster_de.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/translations/pianobooster_de.ts b/translations/pianobooster_de.ts index 589ec7b7..b138856c 100644 --- a/translations/pianobooster_de.ts +++ b/translations/pianobooster_de.ts @@ -908,7 +908,7 @@ Load - + Laden @@ -1024,7 +1024,7 @@ (Try a latency fix of 150msc) - (Probieren Sie eine Latenzkorrektur von 150ms aus) + (Probieren Sie eine Latenzkorrektur von 150 ms aus) @@ -1117,7 +1117,7 @@ System Language - + Systemsprache @@ -1180,7 +1180,7 @@ Repeat song - + Lied wiederholen @@ -1287,7 +1287,7 @@ Both left and right hand channels must be none to disable this feature - Die Kanäle der linken und der rechten Hand müssen auf "Kein" gesetzt sein, um dieses Feature zu deaktivieren + Die Kanäle der linken und der rechten Hand müssen auf „Kein“ gesetzt sein, um dieses Feature zu deaktivieren @@ -1321,7 +1321,7 @@ Start and stop playing music - Starten und stoppen die Musik zu spielen + Musikwiedergabe starten und stoppen @@ -1467,12 +1467,12 @@ Cannot open "%1" - Kann "%1" nicht öffnen + Kann „%1“ nicht öffnen Midi file "%1" is corrupted - MIDI-Datei "%1" ist beschädigt + MIDI-Datei „%1“ ist beschädigt From 45f728e309f3dad7e6377a99045b10baecd8ff1d Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Tue, 21 Apr 2020 15:14:14 +0000 Subject: [PATCH 17/84] Translated using Weblate (French) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/fr/ --- translations/pianobooster_fr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index 017e2ec2..c5edadb7 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -1057,7 +1057,7 @@ Courtesy Accidentals - Amabilité des accidents + altérations de précaution From 814a0642670c418e4c7b2d248e15af85c2aa40aa Mon Sep 17 00:00:00 2001 From: Jeannette L Date: Wed, 22 Apr 2020 12:49:17 +0000 Subject: [PATCH 18/84] Translated using Weblate (French) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/fr/ --- translations/pianobooster_fr.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index c5edadb7..40fd24e0 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -943,7 +943,7 @@ 0 (msec) - 0 (msec) + 0 (ms) @@ -973,7 +973,7 @@ %1 mSec - %1 mSec + %1 ms @@ -1024,7 +1024,7 @@ (Try a latency fix of 150msc) - (Essayez une correction de latence de 150msc) + (Essayez une correction de latence de 150 ms) From 9afec7bd702b19ceca7ca49b8a2037d4c190d504 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Tue, 21 Apr 2020 15:09:25 +0000 Subject: [PATCH 19/84] Translated using Weblate (French) Currently translated at 53.8% (7 of 13 strings) Translation: PianoBooster/music Translate-URL: https://hosted.weblate.org/projects/pianobooster/music/fr/ --- translations/music_fr.ts | 58 +++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/translations/music_fr.ts b/translations/music_fr.ts index b99a3402..98919412 100644 --- a/translations/music_fr.ts +++ b/translations/music_fr.ts @@ -1,8 +1,10 @@ - + + + QtWindow - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> + <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Ceci est une version simplifée dez <strong>Clair De La Lune</strong> qui utilise seulement les trois notes <strong>C D</strong> et <strong>E</strong> depuis votre main droite. Tout d'abord trouver <strong> C milieu</strong> et utilisez toujours votre<strong>pouce</strong> pour cette note, puis pour <strong>D</strong> utilisez votre <strong>premier doigt</strong> et pour <strong>E</strong> utilisez <strong>votre doigt du milieu</strong>.</p> @@ -10,15 +12,15 @@ <font color="#ff0000"><p><strong>Astuce :</strong> <em>Si vous êtres un débutant complet commencez par essayer les morceaux du <strong>cours débutant</strong> d'abord.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> + <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavande Bleue</strong> est une musique simple, à jouer à la main droite, qui utilise seulement les première notes de la gamme C majeur. Pour les cinq notes les plus basses <strong>C D E F</strong> et <strong>G</strong> utilisez tous les doigts de votre main droite - un pour chaque note (avec votre <strong>pouce</strong> sur <strong>C</strong> et votre <strong>petit doigt</strong> sur <strong>G</strong>). Puis pour <strong>A</strong> il suffit d'étendre votre <strong>petit doigt</strong> afin d'atteindre cette note.</p> + <body bgcolor="#FFFFC0"><p><strong>Lavande Bleue</strong> est une musique simple, à jouer à la main droite, qui utilise seulement les premières notes de la gamme C majeur. Pour les cinq notes les plus basses <strong>C D E F</strong> et <strong>G</strong> utilisez tous les doigts de votre main droite - un pour chaque note (avec votre <strong>pouce</strong> sur <strong>C</strong> et votre <strong>petit doigt</strong> sur <strong>G</strong>). Puis pour <strong>A</strong> il suffit d'étendre votre <strong>petit doigt</strong> afin d'atteindre cette note.</p> <font color="#ff0000"><p><strong>Astuce :</strong> <em>pour vous aider à trouver les notes, assurez-vous que <strong>montrer les noms des notes</strong> est activé, dans le menu <strong>Préférences paramètres</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> + <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> <p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> @@ -30,7 +32,7 @@ <font color="#ff0000"><p><strong>Astuce :</strong> <em>concernant les notes de la <strong>clé de sol</strong> vous devriez utiliser votre <strong>main droite</strong> et pour la <strong>clé de base</strong> votre <strong>main gauche</strong>. Assurez vous de toujours garder le doigt adéquat pour chaque note.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> + <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Pour <strong>Frère Jacques</strong> commencez à jouer à deux mains simultanées avec une partie très facile à la main droite. D'abord entraînez-vous <strong>main gauche</strong> et <strong>main droite</strong>séparément. Puis lorsque vous serez prêt réduisez la <strong>vitesse à 70%</strong> et essayez <strong>à deux mains</strong> simultanées. Ensuite démarrez avec les <strong>deux pouces</strong> sur les <strong>C du milieu</strong>.</p> @@ -38,66 +40,72 @@ <font color="#ff0000"><p><strong>Astuce :</strong> <em>entraînez-vous aux parties <strong>main gauche</strong> puis <strong>main droite</strong> séparément.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> + <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> couvre une gamme de huit notes et vous devrez donc déplacer vos doigts vers le haut du piano. Utilisez les doigts avec lesquels vous vous sentez à l'aise, mais assurez-vous que vous <strong>utilisez tous vos doigts</strong> (de votre main droite).</p> + +<font color="#ff0000"><p><strong>Hint:</strong> <em>Ne pensez pas aux doigts à utiliser, utilisez simplement le doigté qui <strong> vous vient naturellement</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> + <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduit la tonalité de <strong>sol majeur</strong> qui possède <strong>un dièse - fa#</strong>. Normalement, le symbole de dièse n'est pas affiché lorsque <strong>fa#</strong> est joué (mais en activant <strong>altérations de précaution</strong> dans le menu Piano Booster Paramétrages/Préférences vous pourrez voir tous les accidents dans la tonalité). La mélodie est à la main droite avec une partie simple à la main gauche.</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em>vous pouvez afficher les <strong>altérations de précaution</strong> depuis le menu Paramétrages/Préférences de Pianobooster. Mais souvenez-vous de <strong>les enlever</strong> lorsque vous serez plus compétent.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> + <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduit la tonalité de <strong>Fa majeur</strong> qui a un <strong>seul Bémol - Sib</strong>. Là encore, le symbole du bémol n'apparaît pas normalement sur la partition lorsque l'on joue le Si bémol. Pratiquez les deux mains séparément au début, puis lorsque vous êtes prêt, réduisez la vitesse à 70% lorsque vous essayez les deux mains pour la première fois..</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em>réduisez la vitesse à 70% lorsque vous essayez les deux mains pour la première fois.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - + - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> + <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - + - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - + - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> + <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - + - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> + <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> <p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - + - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> + <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - + - \ No newline at end of file + From c08cb9d9d294460079e29dfd66e4910371ccb637 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Wed, 22 Apr 2020 16:45:34 +0000 Subject: [PATCH 20/84] Translated using Weblate (Ukrainian) Currently translated at 96.0% (361 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/uk/ --- translations/pianobooster_uk.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index 06b763b6..5fea9715 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -903,17 +903,17 @@ Sound Font - + Звуковий шрифт Load - + Завантажити Clear - + Вилучити @@ -928,7 +928,7 @@ Buffer Count: - + Лічильник буфера: @@ -963,7 +963,7 @@ Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - + Зауваження: використання синтезатора Microsoft GS Wavetable призводить до небажаної затримки! @@ -988,12 +988,12 @@ Open SoundFont File for fluidsynth - + Відкрити файл SoundFont для fluidsynth SoundFont Files (*.sf2 *.sf3) - + файли SoundFont (*.sf2 *.sf3) @@ -1067,12 +1067,12 @@ Show color coded notes on the score - + Показувати кольорові коди нот у партитурі Color Coded Notes - + Кольорові коди нот @@ -1117,7 +1117,7 @@ System Language - + Мова системи @@ -1180,7 +1180,7 @@ Repeat song - + Повторити пісню @@ -1685,7 +1685,7 @@ Ctrl+D - + Ctrl+D @@ -1747,7 +1747,7 @@ <h3>Getting Started</h3> - + <h3>Початкові зауваження</h3> @@ -1762,7 +1762,7 @@ or - + або From 4fee130fcfdaaf52c0fba222d4922e33e13b127e Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Wed, 22 Apr 2020 17:07:43 +0000 Subject: [PATCH 21/84] Translated using Weblate (Ukrainian) Currently translated at 100.0% (13 of 13 strings) Translation: PianoBooster/music Translate-URL: https://hosted.weblate.org/projects/pianobooster/music/uk/ --- translations/music_uk.ts | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/translations/music_uk.ts b/translations/music_uk.ts index 83f8229b..5c269db1 100644 --- a/translations/music_uk.ts +++ b/translations/music_uk.ts @@ -1,8 +1,10 @@ - + + + QtWindow - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> + <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Це спрощена версія <strong>У світлі місяця</strong>, у якій використано три ноти <strong>до ре</strong> та <strong>мі</strong> для вашої правої руки. Спочатку знайдіть <strong>середню до</strong> і завжди використовуйте для цієї ноти ваш <strong>великий палець</strong>, далі, для <strong>ре</strong> використовуйте ваш <strong>вказівний палець</strong>, а для <strong>мі</strong> — <strong>середній палець</strong>.</p> @@ -10,7 +12,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо граєте вперше, спробуйте спочатку твори із <strong>Курсу для початківців</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> + <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong></strong>Лавандовий синій</b> — проста мелодія для правої руки, у якій використовують перші шість нот у гамі до-мажор. Для п'яти нижніх нот, <strong>до, ре, мі, фа</strong> та <strong>соль</strong> скористайтеся усіма пальцями на вашій правій руці — по одному на ноту. (<strong>Великий палець</strong> для <strong>до</strong>, а <strong>мізинець</strong> для <strong>соль</strong>). Далі, щоб зіграти <strong>ля</strong>, потягніться до відповідної клавіші <strong>мізинцем</strong>.</p> @@ -18,7 +20,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> + <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> <p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> @@ -30,7 +32,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Для нот у <strong>скрипковому ключі</strong> слід завжди використовувати <strong>праву руку</strong>, а для нот у <strong>басовому ключі</strong> — <strong>ліву руку</strong>. Переконайтеся, що ви завжди використовуєте відповідний палець для кожної ноти.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> + <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Брат Жак</strong> навчає грі обома руками і містить дуже просту партію для лівої руки. Спочатку повправляйтеся грі <strong>лівою рукою</strong> і <strong>правою рукою</strong> окремо. Далі, коли будете готові, зменшіть <strong>швидкість до 70%</strong> і спробуйте грати <strong>обома руками</strong> разом. Знову ж таки, розпочніть із <strong>обома великим пальцями</strong> на <strong>середній до</strong>.</p> @@ -38,7 +40,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Спочатку повправляйтеся грі <strong>лівою рукою</strong> і <strong>правою рукою</strong> окремо.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> + <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Ярмарка у Скарборо</strong> використовує вісім нот, тому вам доведеться пересувати пальці клавіатурою. Скористайтеся найзручнішим для вас способом пересування пальців, але намагайтеся <strong>використовувати усі пальці</strong> (вашої правої руки).</p> @@ -46,7 +48,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Просто натискайте клавіші тими пальцями, якими вам <strong>зручно це робити</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> + <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>У Зелених рукавах</strong> використано клавішу <strong>соль-мажор</strong>, яка є клавішею <strong>одинарного дієза — фа-дієз</strong>. Зазвичай, символ дієза не пишуть, якщо грають <strong>фа-дієз</strong> (але якщо увімкнути <strong>Врахування альтерації</strong> у меню налаштувань Piano Booster, програма показуватиме альтерацію на клавіатурі). Мелодію грає права рука — партія лівої руки є дуже простою.</p> @@ -54,7 +56,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Ви можете увімкнути <strong>Врахування альтерації</strong> у меню налаштувань Piano Booster. Втім, не забудьте <strong>вимкнути альтерацію</strong>, коли набудете певного досвіду.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> + <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Чудова ласка</strong> навчає вас грі клавішею <strong>фа-мажор</strong>, яка є клавішею <strong>одинарного бемоля — сі-бемоль</strong>. Знову ж таки, символ бемоль, зазвичай, не буде показано у нотному записі, коли ви граєте сі-бемоль. Спочатку попрактикуйтеся грі руками окремо, а потім зменшіть швидкість до 70% і спробуйте грати обома руками.</p> @@ -62,7 +64,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Зменшіть швидкість до 70%, коли вперше намагатиметеся грати обома руками.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Почнімо з середнього до</strong> — надзвичайно простий твір. Просто знайдіть <strong>середнє до</strong> на піаніно, а потім зіграйте цю ноту чотири рази за допомогою вашого <strong>великого пальця</strong> на <strong>правій руці</strong>. У перша половині твору <strong>середнє до</strong> грають у <strong>скрипковому ключі</strong>, а у другій половині ту саму ноту <strong>середнього до</strong> грають у <strong>басовому ключі</strong>. Цю ноту слід грати <strong>великим пальцем</strong> вашої <strong>лівої руки</strong>.</p> @@ -70,7 +72,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Постарайтеся згадати, де знаходиться <strong>середньої до</strong> на піаніно -- це <strong>найважливіша нота</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> + <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> @@ -82,19 +84,19 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>У вгору і вниз</strong> ви маєте скористатися усіма пальцями на вашій правій руці для перших п'яти нот у <strong>гамі до-мажор</strong>.</p> -<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>вказівним пальцем</strong> слід грати <strong>ре</strong>, . . . , і так далі, аж до вашого <strong>мізинця</strong> для <strong>соль</strong>. Переконайтеся, що для кожної ноти ви використовуйте відповідний палець.</p> +<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>вказівним пальцем</strong> слід грати <strong>ре</strong>, . . . , і так далі, аж до вашого <strong>мізинця</strong> для <strong>соль</strong>. Переконайтеся, що для кожної ноти ви використовуйте відповідний палець.</p> <font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування нот на клавіатурі піаніно, попросіть програму <strong>додати мітки клавіш</strong> за допомогою <strong>Діаграми нот</strong> PianoBooster.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> + <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Це спрощена версія <strong>У світлі місяця</strong>, у якій використано три ноти <strong>до ре</strong> та <strong>мі</strong> для вашої правої руки. Спочатку знайдіть <strong>середню до</strong> і завжди використовуйте для цієї ноти ваш <strong>великий палець</strong>, далі, для <strong>ре</strong> використовуйте ваш <strong>вказівний палець</strong>, а для <strong>мі</strong> — <strong>середній палець</strong>.</p> @@ -102,7 +104,7 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Запам'ятайте розкладку за пальцями: <strong>великий палець</strong> для <strong>середньої до</strong>, <strong>вказівний палець</strong> для <strong>ре</strong> і <strong>середній палець</strong> для <strong>мі</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> + <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> <p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> @@ -114,16 +116,16 @@ <font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> + <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Вниз і вгору</strong> є дзеркальною версією «Вгору і вниз», яку грають <strong>лівою рукою</strong>. Це верхні п'ять нот гами до-мажор. Знову ж таки, намагайтеся використовувати усі ваші пальці.</p> -<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>вказівним пальцем</strong> слід грати <strong>сі</strong>, . . . , і так далі, аж до вашого <strong>мізинця</strong> для <strong>фа</strong>.</p> +<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>вказівним пальцем</strong> слід грати <strong>сі</strong>, . . . , і так далі, аж до вашого <strong>мізинця</strong> для <strong>фа</strong>.</p> <font color="#ff0000"><p><strong>Підказка:</strong> <em>Користуйтеся <strong>усіма пальцями</strong> на вашій <strong>лівій руці</strong>, коли гратимете цей твір.</em></p></font></body> - \ No newline at end of file + From 68f338776ee709f67000119e0deaf800443b11d6 Mon Sep 17 00:00:00 2001 From: anonymous Date: Thu, 23 Apr 2020 05:53:55 +0000 Subject: [PATCH 22/84] Translated using Weblate (Slovak) Currently translated at 98.4% (370 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/sk/ --- translations/pianobooster_sk.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/pianobooster_sk.ts b/translations/pianobooster_sk.ts index 496a5439..5cbd367d 100644 --- a/translations/pianobooster_sk.ts +++ b/translations/pianobooster_sk.ts @@ -903,17 +903,17 @@ Sound Font - + Zvuková banka Load - + Načítať Clear - + Vyčistiť @@ -928,7 +928,7 @@ Buffer Count: - + Množstvo vyrovnávajúcej pamäte: From a0b7cffe3a89813cc16352a5062f7a7ecc8a6470 Mon Sep 17 00:00:00 2001 From: Petr Hanek Date: Thu, 23 Apr 2020 16:08:44 +0200 Subject: [PATCH 23/84] CZ translations --- translations/pianobooster_cs.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/translations/pianobooster_cs.ts b/translations/pianobooster_cs.ts index 395e497b..ad3f56a3 100644 --- a/translations/pianobooster_cs.ts +++ b/translations/pianobooster_cs.ts @@ -903,17 +903,17 @@ Sound Font - + Zvuková banka Load - + Načíst Clear - + Vyčistit @@ -928,7 +928,7 @@ Buffer Count: - + Množství vyrovnávací paměti: @@ -963,7 +963,7 @@ Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - + Poznámka: GS Wavetable Synth od Microsoftu přináší nechtěné opožení! @@ -988,12 +988,12 @@ Open SoundFont File for fluidsynth - + Otevřít soubory typu SoundFont pro fluidsynth SoundFont Files (*.sf2 *.sf3) - + Soubory typu SoundFont (*.sf2 *.sf3) @@ -1117,7 +1117,7 @@ System Language - + Systémový jazyk @@ -1685,7 +1685,7 @@ Ctrl+D - + Ctrl+D @@ -1842,7 +1842,7 @@ Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - Kopírovací právo (c) L. J. Barman, 2008-2013; Všechna práva vyhrazena.<br> {2008-2020;?} + Kopírovací právo (c) L. J. Barman, 2008-2020; Všechna práva vyhrazena.<br> From c6bf71f5e8fabad002f469cb423429723d4ab529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Garc=C3=ADa-Alz=C3=B3rriz?= Date: Wed, 22 Apr 2020 18:46:47 +0000 Subject: [PATCH 24/84] Translated using Weblate (Catalan) Currently translated at 63.5% (239 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/ca/ --- translations/pianobooster_ca.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/translations/pianobooster_ca.ts b/translations/pianobooster_ca.ts index 114a39f1..e7a1bcae 100644 --- a/translations/pianobooster_ca.ts +++ b/translations/pianobooster_ca.ts @@ -100,7 +100,7 @@ Honky-tonk Piano - + Piano Honky-tonk @@ -125,12 +125,12 @@ Celesta - + Celesta Glockenspiel - + Glockenspiel @@ -145,7 +145,7 @@ Marimba - + Marimba @@ -155,7 +155,7 @@ Tubular Bells - + Campanes tubulars @@ -220,12 +220,12 @@ Electric Guitar (clean) - + Guitarra elèctrica (pura) Electric Guitar (muted) - + Guitarra elèctrica (silenciada) From 369021219c83eae4ee8415aec747f99f0ac4ae96 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Wed, 22 Apr 2020 22:01:56 +0000 Subject: [PATCH 25/84] Translated using Weblate (French) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/fr/ --- translations/pianobooster_fr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index 40fd24e0..e74b3953 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -1052,7 +1052,7 @@ Show Note Names - Affiche le nom des notes + Afficher le nom des notes From 0b51dd72afc93b1c6ec5678ca67db4f7aa88e543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 24 Apr 2020 02:43:11 +0000 Subject: [PATCH 26/84] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 69.1% (260 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/nb_NO/ --- translations/pianobooster_nb.ts | 88 ++++++++++++++++----------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index b3db721f..2b081e0a 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -49,12 +49,12 @@ Song: - Sang: + Spor: Bar: - + Takt: @@ -62,7 +62,7 @@ space - + mellomrom @@ -295,7 +295,7 @@ Cello - + Cello @@ -610,7 +610,7 @@ Banjo - + Banjo @@ -738,7 +738,7 @@ Setup Your Piano Keyboard - + Sett opp ditt piano-klaviatur @@ -776,18 +776,18 @@ Lowest Note: - + Laveste note: The note number between 0 and 127 - + Notenummer mellom 0 og 127 Highest Note: - + Høyeste note: @@ -850,7 +850,7 @@ End bar - + Slutt-takt @@ -858,7 +858,7 @@ MIDI input && output - + MIDI-inngang og utgang @@ -903,17 +903,17 @@ Sound Font - + Lydskrift Load - + Last inn Clear - + Tøm @@ -1072,7 +1072,7 @@ Color Coded Notes - + Fargekodede noter @@ -1117,7 +1117,7 @@ System Language - + Systemspråk @@ -1180,7 +1180,7 @@ Repeat song - + Gjenta spor @@ -1210,12 +1210,12 @@ Follow You - + Følger deg Mute your part when playing - + Forstum din del under avspilling @@ -1272,37 +1272,37 @@ Right Hand MIDI Channel: - + Høyrehånds-MIDI-kanal: Left Hand MIDI Channel: - + Venstrehånds-MIDI-kanal: The left and right hand channels must be different - + Venstre- og høyrehåndskanaler må være forskjellige Both left and right hand channels must be none to disable this feature - + Både venstre- og høyrehåndskanaler må være "Ingen" for å skru av denne funksjonen Set the MIDI Channels to be used for left and right hand piano parts: - + Velg MIDI-kanaler å bruke for venstre- og høyre- pianohåndsdeler: the left hand piano part is using MIDI Channels 1 - + venstrehåndspianodel bruker MIDI-kanal 1 the right hand piano part is using MIDI Channels 1 - + høyrehåndspianodel bruker MIDI-kanal 1 @@ -1341,12 +1341,12 @@ Start Bar: - + Starttakt: Save this Bar Number - + Lagre dette taktnummeret @@ -1467,12 +1467,12 @@ Cannot open "%1" - + Kan ikke åpne "%1" Midi file "%1" is corrupted - + MIDI-filen "%1" er skadet @@ -1525,17 +1525,17 @@ Cannot open "%1" - + Kan ikke åpne "%1" "%1" is not a Midi File - + "%1" er ikke en MIDI-fil "%1" is not a valid Midi file - + "%1" er ikke en gyldig MIDI-fil @@ -1600,7 +1600,7 @@ Setup the Midi input and output - + Velg MIDI-inngang og utgang @@ -1680,17 +1680,17 @@ Song Settings - + Spor-innstillinger Ctrl+D - + Ctrl+D Shift+F1 - + Shift+F1 @@ -1710,7 +1710,7 @@ &Song - + &Spor @@ -1727,7 +1727,7 @@ Piano Booster Help - + Piano Booster-hjelp @@ -1737,7 +1737,7 @@ Piano Booster Website - + Piano Booster-nettside @@ -1887,17 +1887,17 @@ Choose the right hand - + Velg høyre hånd Choose both hands - + Velg begge hender Choose the left Hand - + Velg venstre hånd @@ -1907,7 +1907,7 @@ Play Pause Toggle - + Veksle avspilling og pause From 3f3776beb4dccc629caa03cb37fb122f3379e593 Mon Sep 17 00:00:00 2001 From: ssantos Date: Thu, 23 Apr 2020 17:28:59 +0000 Subject: [PATCH 27/84] Translated using Weblate (Portuguese) Currently translated at 46.8% (176 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/pt/ --- translations/pianobooster_pt.ts | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index a1bfdb41..cfbc9555 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -54,7 +54,7 @@ Bar: - + Barra: @@ -67,12 +67,12 @@ ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + ERRO SEM SOM: para corrigi-lo use o menu Configurações / Configurações Midi ... ERROR NO MIDI FILE: To fix this use menu File/Open ... - + ERRO NENHUM ARQUIVO MIDI: para corrigi-lo isso use o menu Ficheiro/Abrir ... @@ -120,12 +120,12 @@ Clavi - + Clavi Celesta - + Celesta @@ -250,12 +250,12 @@ Electric Bass (finger) - + Baixo Elétrico (dedo) Electric Bass (pick) - + Baixo Elétrico (pick) @@ -290,7 +290,7 @@ Viola - + Viola @@ -315,7 +315,7 @@ Orchestral Harp - + Harpa Orquestral @@ -355,7 +355,7 @@ Synth Voice - + Sintetizador De Voz @@ -370,12 +370,12 @@ Trombone - + Trombone Tuba - + Tuba @@ -480,7 +480,7 @@ Ocarina - + Ocarina From 8197abffef83a167299689219b2433cf9d88e90c Mon Sep 17 00:00:00 2001 From: Jose Riha Date: Thu, 23 Apr 2020 05:54:25 +0000 Subject: [PATCH 28/84] Translated using Weblate (Slovak) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/sk/ --- translations/pianobooster_sk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_sk.ts b/translations/pianobooster_sk.ts index 5cbd367d..1805ad08 100644 --- a/translations/pianobooster_sk.ts +++ b/translations/pianobooster_sk.ts @@ -928,7 +928,7 @@ Buffer Count: - Množstvo vyrovnávajúcej pamäte: + Množstvo vyrovnávacej pamäte: From c8685cf2e6f683df477096252845a11ed243039e Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 23 Apr 2020 05:54:32 +0000 Subject: [PATCH 29/84] Translated using Weblate (Slovak) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/sk/ --- translations/pianobooster_sk.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/translations/pianobooster_sk.ts b/translations/pianobooster_sk.ts index 1805ad08..911ef0a6 100644 --- a/translations/pianobooster_sk.ts +++ b/translations/pianobooster_sk.ts @@ -963,7 +963,7 @@ Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - + Poznámka: Microsoft GS Wavetable Synth prináša nežiaduce oneskorenie! @@ -988,12 +988,12 @@ Open SoundFont File for fluidsynth - + Otvoriť súbor SoundFont pre fluidsynth SoundFont Files (*.sf2 *.sf3) - + Súbory SoundFont (*.sf2 *.sf3) @@ -1117,7 +1117,7 @@ System Language - + Jazyk systému @@ -1685,7 +1685,7 @@ Ctrl+D - + Ctrl+D @@ -1842,7 +1842,7 @@ Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - Kopírovacie právo (c) L. J. Barman, 2008-2013; Všetky práva vyhradené.<br> {2008-2020;?} + Kopírovacie právo (c) L. J. Barman, 2008-2020; Všetky práva vyhradené.<br> From 9d7e645401cf3d00c24083267b5b2a022b0b59d9 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Wed, 22 Apr 2020 17:06:33 +0000 Subject: [PATCH 30/84] Translated using Weblate (Ukrainian) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/uk/ --- translations/pianobooster_uk.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index 5fea9715..8ea25408 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -235,7 +235,7 @@ Distortion Guitar - Розладнана гітара + Розладнана гітара @@ -1752,12 +1752,12 @@ <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>Вам знадобиться <b>клавіатура MIDI піаніно </b> та <b>інтерфейс MIDI</b> для ПК. Якщо у вас немає MIDI-клавіатури, ви можете спробувати користуватися PianoBooster за допомогою клавіатури комп'ютера — «X» — середня «до».</p> <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + <p>Щоб чути музику, вам потрібен <b>Типовий звуковий синтезатор MIDI</b>. Можна скористатися «Програмним синтезатором Microsoft GS Wavetable», який постачається разом із Windows, але його використання призводить до неприйнятної затримки відтворення (латентності). У Linux ви можете скористатися @@ -1767,62 +1767,62 @@ <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <p>PianoBooster дає найкращі результати з файлами MIDI, у який відокремлено ліву і праву частину піаніно на основі використання каналів MIDI 3 та 4. <h3>Setting Up</h3> - + <h3>Налаштовування</h3> <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + <p>Спочатку скористайтеся пунктом меню <i>Налаштування/Налаштувати MIDI</i>. У діалоговому вікні виберіть вхідний та вихідний інтерфейси MIDI, які відповідають вашому обладнанню. Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + Далі, скористайтеся пунктом меню <i>Файл/Відкрити</i>, щоб відкрити файл MIDI «.mid» або файл караоке «.kar». Тепер виберіть, хочете ви просто <i>прослухати</i> музику, чи <i>зіграти</i> її на клавіатурі, встановивши рівень <i>майстерності</i> на бічній панелі. Нарешті, коли будете готові, натисніть <i>піктограму відтворення</i> (або клавішу <i>Пробіл</i>), щоб почати вправу. <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + <h3>Підказки щодо гри на піаніно</h3><p>Підказки щодо гри на піаніно можна знайти тут: Piano Hints - + Підказки щодо піаніно <h3>More Information</h3><p>For more help please visit the PianoBooster - + <h3>Докладніші відомості</h3><p>Щоб дізнатися більше, будь ласка, відвідайте website - + сайт PianoBooster the PianoBooster - + , FAQ - + Поширені питання щодо PianoBooster and the - + та user forum - + форум користувачів @@ -1842,7 +1842,7 @@ Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - © L. J. Barman, 2008-2013; усі права захищено.<br> {2008-2020;?} + © L. J. Barman, 2008-2020; усі права захищено.<br> From 7e038b773a302b85357afeba515cc3a94388d915 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Wed, 22 Apr 2020 21:53:46 +0000 Subject: [PATCH 31/84] Translated using Weblate (French) Currently translated at 100.0% (13 of 13 strings) Translation: PianoBooster/music Translate-URL: https://hosted.weblate.org/projects/pianobooster/music/fr/ --- translations/music_fr.ts | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/translations/music_fr.ts b/translations/music_fr.ts index 98919412..b77ea1c5 100644 --- a/translations/music_fr.ts +++ b/translations/music_fr.ts @@ -67,7 +67,9 @@ <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - + <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> est une pièce extrêmement facile. Il suffit de trouver le <strong>do moyen</strong> sur le piano et de jouer cette note quatre fois en utilisant le <strong>pouce</strong> de votre <strong>main droite</strong>. La première moitié de la pièce comporte un <strong>Do central</strong> en <strong>clef de Sol</strong>, puis pour la deuxième moitié de la pièce, la même note de <strong>Do central</strong> est indiquée en <strong>clef de Fa</strong>. Jouez cette note en utilisant le <strong>pouce</strong> de votre <strong>main gauche</strong>.</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em>essayez de vous rappeler où se trouve le <strong>Do moyen</strong> sur le piano - c'est la <strong>note la plus importante</strong>!</em></p></font></body> <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> @@ -75,7 +77,11 @@ <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p>La pièce <strong> Accord de Do majeur</strong>, vous introduit à l'accord de <strong>Do majeur</strong> qui possède trois notes <strong>Do central</strong>, <strong>Mi</strong> et <strong>Sol</strong>.</p> + +<p>Utilisez votre <strong>pouce</strong> pour le <strong>Do</strong>, votre <strong>majeur</strong> pour le <strong>Mi</strong> et votre <strong>auriculaire</strong> pour le <strong>Sol</strong>.</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em>Si vous ne connaissez pas les noms des notes de la partition, alors activez l'option <strong>Afficher le nom des notes</strong> dans le menu <strong>Paramétrage/Préférences</strong> de PianoBooster.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> @@ -83,13 +89,19 @@ <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> utilise tous les doigts de votre main droite pour jouer les cinq premières notes de la <strong>gamme de Do majeur</strong>.</p> + +<p>Utilisez votre <strong>pouce</strong> pour le <strong>Do</strong>, votre <strong>index finger</strong> pour le <strong>Ré</strong>, . . . , jusqu'à votre <strong>auriculaire</strong> pour le <strong>Sol</strong>. Assurez-vous de toujours utiliser le bon doigt pour chaque note.</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em> si vous ne connaissez pas les notes du piano, alors <strong>étiquetez les touches du piano</strong> à l'aide du <strong>tableau de notes</strong> de PianoBooster.</em></p></font></body> <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p>Il s'agit d'une version simplifiée de <strong> Au clair de la lune</strong> qui utilise seulement trois notes <strong>Do, Ré</strong> et <strong>Mi</strong> de votre main droite. Trouvez d'abord le <strong>Do central</strong> et utilisez toujours votre <strong>pouce</strong> pour cette note, puis pour le <strong>Ré</strong> utilisez votre <strong>premier doigt</strong> et pour le <strong>Mi</strong> utilisez le <strong>majeur</strong>.</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em>souvenez vous du doigté : utilisez votre <strong>pouce</strong> pour le <strong>Do central</strong>, votre <strong>premier doigt</strong> pour le <strong>Ré</strong> et le <strong>majeur</strong> pour le <strong>Mi</strong>.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> @@ -97,7 +109,11 @@ <p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p>Nous allons maintenant jouer de la <strong>main gauche</strong> l'<strong>accord en Fa majeur</strong>. Les trois notes d'un accord sont appelées une triade et cet accord a la même forme que l'accord de Do majeur que nous avons joué précédemment mais sur une partie différente du piano.</p> + +<p>Utilisez votre <strong>petit doigt</strong> de la main gauche pour <strong>le Fa</strong>, votre <strong>majeur</strong> pour le <strong>La</strong> et votre <strong>pouce</strong> puor le <strong>Do</strong>.</p> + +<font color="#ff0000"><p><strong>Astuce : </strong> <em>si vous ne connaissez pas les noms des notes de la partition, activez l'option <strong>Afficher le nom des notes</strong> dans le menu <strong>Paramètre/Préférences</strong> de PianoBooster.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> @@ -105,7 +121,11 @@ <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - + <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> est une version miroir du morceau Up And Down que nous avons joué plus tôt, mais cette version utilise votre <strong>main gauche</strong>. Ce sont les cinq premières notes de la gamme de Do majeur. Essayez à nouveau d'utiliser tous vos doigts.</p> + +<p>Utilisez votre <strong>pouce</strong> pour le <strong>Do</strong>, votre <strong>index</strong> pour le <strong>Si</strong>, . . . , jusqu'à votre <strong>auriculaire</strong> pour le <strong>Fa</strong>.</p> + +<font color="#ff0000"><p><strong>Astuce :</strong> <em> assurez-vous d'utiliser <strong>tous les doigts</strong> de votre <strong>main gauche</strong> lorsque vous jouez ce morceau.</em></p></font></body> From b4eefb60b98ec8a645776e2d30511c6534b8b8a1 Mon Sep 17 00:00:00 2001 From: Artem Date: Thu, 23 Apr 2020 20:00:13 +0000 Subject: [PATCH 32/84] Translated using Weblate (Russian) Currently translated at 100.0% (13 of 13 strings) Translation: PianoBooster/music Translate-URL: https://hosted.weblate.org/projects/pianobooster/music/ru/ --- translations/music_ru.ts | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/translations/music_ru.ts b/translations/music_ru.ts index 655808f6..4b99c4eb 100644 --- a/translations/music_ru.ts +++ b/translations/music_ru.ts @@ -1,24 +1,26 @@ - + + + QtWindow - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> + <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"></p>Это упрощённая версия <strong>Clair De La Lune/В свете луны</strong>, в которой используются только три ноты <strong>C D</strong> и <strong>E</strong> правой руки. Сначала найдите <strong>C в середине</strong> и всегда используйте <strong>большой палец</strong> для этой ноты, затем для <strong>D</strong> используйте <strong>указательный палец</strong> и для <strong>E</strong> - <strong>средний палец</strong>.</p> + <body bgcolor="#FFFFC0"><p>Это упрощённая версия <strong>Clair De La Lune/В свете луны</strong>, в которой используются только три ноты <strong>C D</strong> и <strong>E</strong> правой руки. Сначала найдите <strong>C в середине</strong> и всегда используйте <strong>большой палец</strong> для этой ноты, затем для <strong>D</strong> используйте <strong>указательный палец</strong> и для <strong>E</strong> - <strong>средний палец</strong>.</p> <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы новичок, то попробуйте сначала <strong>Beginner Course/Курс для начинающих</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> + <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue/Лавандовый синий</strong> - простая мелодия для правой руки, в которой используются первые шесть нот тоники C (До) мажор. Для пяти самых низких нот <strong>C D E F</b> и <strong>G</strong> используйте все пальцы или правую руку - по одному пальцу для каждой ноты. (С вашим <strong>большим пальцем</strong> на <strong>C</strong> и вашим <strong>мизинцем</strong> на <strong>G</strong>). Тогда для <strong>A</strong> просто вытяните <strong>мизинец</strong>, чтобы достать эту ноту.</p> + <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue/Лавандовый синий</strong> - простая мелодия для правой руки, в которой используются первые шесть нот тоники C (До) мажор. Для пяти самых низких нот <strong>C D E F</strong> и <strong>G</strong> используйте все пальцы или правую руку - по одному пальцу для каждой ноты. (С вашим <strong>большим пальцем</strong> на <strong>C</strong> и вашим <strong>мизинцем</strong> на <strong>G</strong>). Тогда для <strong>A</strong> просто вытяните <strong>мизинец</strong>, чтобы достать эту ноту.</p> <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Чтобы легче найти ноты, убедитесь, что в меню <strong>Настройка</strong> включено <strong>Показывать названия нот</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> + <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> <p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> @@ -30,7 +32,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Для нот в <strong>скрипичном ключе</strong> вы всегда используете <strong>правую руку</strong>, а для <strong>басового ключа</strong> - <strong>левую руку</strong>. Убедитесь, что вы всегда продолжаете использовать правильный палец для каждой ноты.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> + <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Для <strong>Frere Jacques/Брат Жак</strong> вводится игра двумя руками одновременно с очень простой партией для левой руки. Сначала попрактикуйтесь в партиях для <strong>левой руки</strong> и <strong>правой руки</strong>. Затем, когда будете готовы, уменьшите <strong>скорость до 70%</strong> и попробуйте <strong>обе руки</strong> вместе. Снова начните с обоих <strong>больших пальцев</strong> на <strong>C в середине</strong>.</p> @@ -38,7 +40,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Практикуйте <strong>левую</strong> и <strong>правую</strong> партии отдельно.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> + <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair/Ярмарка в Скарборо</strong> охватывает диапазон из восьми нот, поэтому вам придётся двигать пальцами вверх по пианино. Используйте аппликатуру, которая вам удобна, но убедитесь, что вы <strong>используете все свои пальцы</strong> (правой руки).</p> @@ -46,7 +48,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Не думайте о том, какие пальцы использовать, просто используйте аппликатуру <strong>естественно</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> + <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Green Sleeves/В зелёных рукавах</strong> вводит ключ <strong>G (Си) мажор</strong>, который имеет <strong>один диез - F#</strong>. Обычно символ диеза не отображается при воспроизведении <strong>F#</strong> (но включение <strong>Прощать случайные ошибки</strong> в меню Piano Booster Настройка -> Предпочтения покажет альтерацию на клавиатуре). Мелодия для правой руки с простой левой партией.</p> @@ -54,7 +56,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Вы можете видеть <strong>Прощать случайные ошибки</strong> в меню Piano Booster Настройка -> Предпочтения. Но не забудьте <strong>выключить их</strong>, когда вы станете более опытным.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> + <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Amazing Grace/Великая благодать</strong> вводит ключ <strong>F (Ля) мажор</strong>, который имеет <strong>один бемоль - Bb</strong>. Снова символ бемоля обычно не отображается на партитуре при игре Bb. Сначала тренируйте обе руки по отдельности, а затем, когда будете готовы, уменьшите скорость до 70% при первой попытке играть обеими руками.</p> @@ -62,7 +64,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Уменьшите скорость до 70% при первой попытке играть обеими руками.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> <body bgcolor="#FFFFC0"><p><strong>Start With Middle C/Начните с C в середине</strong> - чрезвычайно лёгкая вещь. Просто найдите <strong>C в середине</strong> на пианино и затем сыграйте эту ноту четыре раза, используя <strong>большой палец</strong> <strong>на правой руке</strong>. Первая половина пьесы имеет <strong>C в середине</strong> в <strong>скрипичном ключе</strong>, затем для второй половины пьесы та же самая нота <strong>С в середине</strong> показана в <strong>басовом ключе</strong>. Играйте, используя <strong>большой палец</strong> на <strong>левой руке</strong>.</p> @@ -70,7 +72,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Попробуйте вспомнить, где <strong>C в середине</strong> находится на пианино - это самая <strong>важная нота</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> + <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> @@ -83,7 +85,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете названий нот на партитуре, то включите <strong>Показывать названия нот</strong> в меню PianoBooster <strong>Настройка -> Предпочтения</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> @@ -95,7 +97,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете ноты на пианино, <strong>маркируйте клавиши пианино</strong>, используя <strong>Диаграмму нот</strong> PianoBooster.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> + <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> <body bgcolor="#FFFFC0"><p>Это упрощённая версия <strong>Clair De La Lune/В свете луны</strong>, в которой используются только три ноты <strong>C D</strong> и <strong>E</strong> правой руки. Сначала найдите <strong>C в середине</strong> и всегда используйте <strong>большой палец</strong> для этой ноты, затем для <strong>D</strong> используйте <strong>указательный палец</strong> и для <strong>E</strong> - <strong>средний палец</strong> @@ -104,7 +106,7 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Запомните аппликатуру: используйте <strong>большой палец</strong> для <strong>C в середине</strong>, свой <strong>указательный палец</strong> для <strong>D</strong> и <strong>средний палец</strong> для <strong>E</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> + <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> <p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> @@ -113,10 +115,10 @@ <p>Используйте свой <strong>мизинец</strong> на левой руке для <strong>F</strong>, свой <strong>средний палец</strong> для <strong>A</strong> и свой <strong>большой палец</strong> для <strong>C</strong>.</p> -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете названий нот на партитуре, то включите <strong>Показывать названия нот</strong> в меню PianoBooster <strong>Настройка -> Предпочтения</strong>.</em></font></p></body> +<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете названий нот на партитуре, то включите <strong>Показывать названия нот</strong> в меню PianoBooster <strong>Настройка -> Предпочтения</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> + <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> <p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> @@ -128,4 +130,4 @@ <font color="#ff0000"><p><strong>Подсказка:</strong> <em>Убедитесь, что вы используете <strong>каждый палец</strong> на <strong>левой руке</strong> при игре этой пьесы.</em></p></font></body> - \ No newline at end of file + From 81ba8d321b3686690e709bb3b010d02437d7779b Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Wed, 22 Apr 2020 17:09:28 +0000 Subject: [PATCH 33/84] Translated using Weblate (Ukrainian) Currently translated at 100.0% (13 of 13 strings) Translation: PianoBooster/music Translate-URL: https://hosted.weblate.org/projects/pianobooster/music/uk/ --- translations/music_uk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/music_uk.ts b/translations/music_uk.ts index 5c269db1..77d9e61f 100644 --- a/translations/music_uk.ts +++ b/translations/music_uk.ts @@ -15,7 +15,7 @@ <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> <font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong></strong>Лавандовий синій</b> — проста мелодія для правої руки, у якій використовують перші шість нот у гамі до-мажор. Для п'яти нижніх нот, <strong>до, ре, мі, фа</strong> та <strong>соль</strong> скористайтеся усіма пальцями на вашій правій руці — по одному на ноту. (<strong>Великий палець</strong> для <strong>до</strong>, а <strong>мізинець</strong> для <strong>соль</strong>). Далі, щоб зіграти <strong>ля</strong>, потягніться до відповідної клавіші <strong>мізинцем</strong>.</p> + <body bgcolor="#FFFFC0"><p><strong>Лавандовий синій</strong> — проста мелодія для правої руки, у якій використовують перші шість нот у гамі до-мажор. Для п'яти нижніх нот, <strong>до, ре, мі, фа</strong> та <strong>соль</strong> скористайтеся усіма пальцями на вашій правій руці — по одному на ноту. (<strong>Великий палець</strong> для <strong>до</strong>, а <strong>мізинець</strong> для <strong>соль</strong>). Далі, щоб зіграти <strong>ля</strong>, потягніться до відповідної клавіші <strong>мізинцем</strong>.</p> <font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> From b43c025a6f875e0707fa6e2260ed25eed5f86ebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 24 Apr 2020 22:29:00 +0000 Subject: [PATCH 34/84] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 73.6% (277 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/nb_NO/ --- translations/pianobooster_nb.ts | 42 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index 2b081e0a..5a573be8 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -67,12 +67,12 @@ ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - + Feil, ingen lyd: For å fikse dette bruk "Oppsett" → "MIDI-oppsett" fra menyen. ERROR NO MIDI FILE: To fix this use menu File/Open ... - + Feil, ingen MIDI-fil: For å fikse dette bruk "Fil" → "Åpne" fra menyen. @@ -95,7 +95,7 @@ Electric Grand - + Elektrisk klaver @@ -160,7 +160,7 @@ Dulcimer - + Dulcimer @@ -605,7 +605,7 @@ Sitar - + Sitar @@ -728,7 +728,7 @@ Piano Keyboard Settings - + Innstillinger for piano-tangentbord @@ -766,12 +766,12 @@ Wrong Notes - + Feilaktige noter Keyboard Note Range - + Kebyoard-notespennvidde @@ -802,22 +802,22 @@ Choose the right and wrong sound for your playing. - + Velg riktig og feil lyd for spillingen din. You can use the PC keyboard instead of a MIDI keyboard; 'x' is middle C. - + Du kan bruke PC-tastatur istedenfor et MIDI-keyboard; "x" er midt-C. Your keyboard range is <b>octaves %1</b> and <b>semitones %2</b>; 60 is middle C. - + Tastaturtoneområdet er <b>oktaver %1</b> og <b>halvtoner %2</b>; 60 er midt-C. Oops, you have <b>0 notes</b> on your keyboard! - + Oida, du har <b>0 noter</b> på tangentbordet. @@ -825,7 +825,7 @@ Continuous Looping - + Evig gjentagelse @@ -888,7 +888,7 @@ Buffer Size: - + Mellomlagerstørrelse: @@ -928,12 +928,12 @@ Buffer Count: - + Mellomlagerantall: Latency Fix - + Forsinkelsesfiks @@ -951,7 +951,7 @@ None (PC Keyboard) - + Ingen (PC-tastatur) @@ -978,7 +978,7 @@ Enter a value for the latency fix in milliseconds - + Skriv inn antall millisekunders forsinkelsesverdi @@ -1052,7 +1052,7 @@ Show Note Names - + Vis notenavn @@ -1107,12 +1107,12 @@ On the Beat - + På takten After the Beat - + Etter takten From 56ef27026a8daefbd1795fe9d5447804e101a04e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 25 Apr 2020 06:08:26 +0000 Subject: [PATCH 35/84] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 76.8% (289 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/nb_NO/ --- translations/pianobooster_nb.ts | 42 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index 5a573be8..b97f3c9c 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -265,12 +265,12 @@ Slap Bass 1 - + El-bass (slap 1) Slap Bass 2 - + El-bass (slap 2) @@ -525,7 +525,7 @@ Pad 1 (new age) - + Lydplate 1 (new age) @@ -535,7 +535,7 @@ Pad 3 (polysynth) - + Lydplate 3 (polysynth) @@ -555,12 +555,12 @@ Pad 7 (halo) - + Lydplate 7 (glorie) Pad 8 (sweep) - + Lydplate 8 (sveip) @@ -615,17 +615,17 @@ Shamisen - + Samisen Koto - + Koto Kalimba - + Kalimba @@ -749,7 +749,7 @@ sound: - + lyd: @@ -973,7 +973,7 @@ %1 mSec - + %1 ms @@ -993,7 +993,7 @@ SoundFont Files (*.sf2 *.sf3) - + SoundFont-filer (*.sf2 *.sf3) @@ -1267,7 +1267,7 @@ MIDI Channels for left and right hand piano parts: - + MIDI-kanaler for venstre- og høyrehåndspianodeler @@ -1655,7 +1655,7 @@ Show Piano Keyboard Widget - + Vis pianoklaviatur-miniprogram @@ -1675,7 +1675,7 @@ Song &Details ... - + Spor og detaljer … @@ -1792,7 +1792,7 @@ Piano Hints - + Pianohint @@ -1842,12 +1842,12 @@ Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Opphavsrett © L. J. Barman, 2008-2020.<br> Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + Opphavsrett © Fabien Givors, 2018-2019.<br> @@ -1857,17 +1857,17 @@ This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Dette programmer inneholder også RtMIDI: Sanntids MIDI-I/O-C++ classes<br> Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + Opphavsrett © Gary P. Scavone, 2003-2019. space - + mellomrom From 02a91da447fe9ba9d146fa458848e0d0267db7df Mon Sep 17 00:00:00 2001 From: Elizabeth Sherrock Date: Sun, 26 Apr 2020 19:45:17 +0000 Subject: [PATCH 36/84] Translated using Weblate (Chinese (Simplified)) Currently translated at 69.6% (262 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/zh_Hans/ --- translations/pianobooster_zh.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/pianobooster_zh.ts b/translations/pianobooster_zh.ts index 86dab9ff..344a6c80 100644 --- a/translations/pianobooster_zh.ts +++ b/translations/pianobooster_zh.ts @@ -21,7 +21,7 @@ F - E + F @@ -1680,7 +1680,7 @@ Song Settings - + 歌曲设置 @@ -1802,7 +1802,7 @@ website - + 网站 From 4bea07091027e7a5752e526ae78ee48977c906d6 Mon Sep 17 00:00:00 2001 From: Pavel Fric Date: Wed, 29 Apr 2020 20:05:05 +0000 Subject: [PATCH 37/84] Translated using Weblate (Czech) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/cs/ --- translations/pianobooster_cs.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/pianobooster_cs.ts b/translations/pianobooster_cs.ts index ad3f56a3..37f1c7fb 100644 --- a/translations/pianobooster_cs.ts +++ b/translations/pianobooster_cs.ts @@ -903,7 +903,7 @@ Sound Font - Zvuková banka + Zvuková banka @@ -963,7 +963,7 @@ Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - Poznámka: GS Wavetable Synth od Microsoftu přináší nechtěné opožení! + Poznámka: GS Wavetable Synth od Microsoftu přináší nechtěné zpoždění! @@ -1757,7 +1757,7 @@ <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - <p>Na to, aby jste mohli slyšel zvuk budete potřebovat <b>Syntezátor zvuku MIDI</b>. Operační systém windows obsahuje "Microsoft GS Wavetable software synthesizer", bohužel tento software dosahuje vysokého spoždění (latence). Na linuxu můžete použít + <p>Na to, abyste mohli slyšet zvuk budete potřebovat <b>Syntezátor zvuku MIDI</b>. Operační systém Windows obsahuje "Microsoft GS Wavetable software synthesizer". Bohužel tento software dosahuje nepřijatelně vysokého zpoždění (prodlevy, latence). Na Linuxu můžete použít From cdf936cc13f14f7f6e365a65fad18e358277e4a8 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Thu, 30 Apr 2020 07:23:12 +0000 Subject: [PATCH 38/84] Translated using Weblate (Hebrew) Currently translated at 28.4% (107 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/he/ --- translations/pianobooster_he.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translations/pianobooster_he.ts b/translations/pianobooster_he.ts index eef4b01b..fbbd55de 100644 --- a/translations/pianobooster_he.ts +++ b/translations/pianobooster_he.ts @@ -1913,27 +1913,27 @@ Increase the speed by 5% - + הגברת המהירות ב־5% Change to the Next Song - + מעבר לשיר הבא Change to the Previous Song - + מעבר לשיר הקודם Change to the Next Book - + מעבר לספר הבא Change to the Previous Book - + מעבר לספר הקודם From 5d66b7a824b052cbfb3337bdbb17d15c355421dd Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Sun, 3 May 2020 22:07:38 +0000 Subject: [PATCH 39/84] Translated using Weblate (Croatian) Currently translated at 29.7% (112 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/hr/ --- translations/pianobooster_hr.ts | 162 ++++++++++++++++---------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/translations/pianobooster_hr.ts b/translations/pianobooster_hr.ts index 76a42553..97712b70 100644 --- a/translations/pianobooster_hr.ts +++ b/translations/pianobooster_hr.ts @@ -6,37 +6,37 @@ C - + C D - + D E - + E F - + F G - + G A - + A B - + B @@ -44,17 +44,17 @@ Accuracy: - + Točnost: Song: - + Pjesma: Bar: - + Takt: @@ -62,7 +62,7 @@ space - + spacija @@ -80,12 +80,12 @@ (None) - + (Ništa) Grand Piano - Koncertni glasovir + Koncertni klavir @@ -100,17 +100,17 @@ Honky-tonk Piano - + Honky-tonk klavir Electric Piano 1 - + Električni klavir 1 Electric Piano 2 - + Električni klavir 2 @@ -130,7 +130,7 @@ Glockenspiel - + Orkestralna zvona @@ -145,12 +145,12 @@ Marimba - + Marimba Xylophone - + Ksilofon @@ -170,17 +170,17 @@ Percussive Organ - + Udarne orgulje Rock Organ - + Rock orgulja Church Organ - + Crkvena orgulja @@ -195,7 +195,7 @@ Harmonica - + Usna harmonika @@ -205,27 +205,27 @@ Acoustic Guitar (nylon) - + Akustična gitara (najlon) Acoustic Guitar (steel) - + Akustična gitara (čelik) Electric Guitar (jazz) - + Električna gitara (jazz) Electric Guitar (clean) - + Električna gitara (nepojačana) Electric Guitar (muted) - + Električna gitara (utišana) @@ -245,17 +245,17 @@ Acoustic Bass - + Akustični bas Electric Bass (finger) - + Električni bas (prsti) Electric Bass (pick) - + Električni bas (plektron) @@ -290,12 +290,12 @@ Viola - + Viola Cello - + Violončelo @@ -315,7 +315,7 @@ Orchestral Harp - + Orkestralna harfa @@ -365,22 +365,22 @@ Trumpet - + Truba Trombone - + Trombon Tuba - + Tuba Muted Trumpet - + Stišana truba @@ -405,22 +405,22 @@ Soprano Sax - + Soprano saksofon Alto Sax - + Alt saksofon Tenor Sax - + Tenor saksofon Baritone Sax - + Bariton saksofon @@ -440,12 +440,12 @@ Clarinet - + Klarinet Piccolo - + Pikolo @@ -455,17 +455,17 @@ Recorder - + Rekorder Pan Flute - + Panova flauta Blown Bottle - + Puhana boca @@ -475,7 +475,7 @@ Whistle - + Fučkaljka @@ -695,7 +695,7 @@ Seashore - + Morska obala @@ -705,22 +705,22 @@ Telephone Ring - + Telefonsko zvono Helicopter - + Helikopter Applause - + Aplaus Gunshot - + Pucanj @@ -728,34 +728,34 @@ Piano Keyboard Settings - + Postavke klavijature Dialog - + Dijaloški okvir Setup Your Piano Keyboard - + Podesi klavijaturu Right Notes - + Točne note sound: - Sound: + zvuk: volume: - + glasnoća: @@ -766,28 +766,28 @@ Wrong Notes - + Krive note Keyboard Note Range - + Notni opseg klavijature Lowest Note: - + Najniža nota: The note number between 0 and 127 - + Notni broj između 0 i 127 Highest Note: - + Najviša nota: @@ -802,7 +802,7 @@ Choose the right and wrong sound for your playing. - + Odaberi ispravni i krivi zvuk za tvoje sviranje. @@ -817,7 +817,7 @@ Oops, you have <b>0 notes</b> on your keyboard! - + Opa, imaš <b>0 nota</b> na klavijaturi! @@ -825,7 +825,7 @@ Continuous Looping - + Neprekidno ponavljanje @@ -858,22 +858,22 @@ MIDI input && output - + MIDI ulaz &i izlaz Select the MIDI devices - + Odaberi MIDI uređaj Midi Input Device: - + Ulazni Midi uređaj: Midi Output Device: - + Izlazni Midi uređaj: @@ -908,12 +908,12 @@ Load - + Učitaj Clear - + Izbriši @@ -943,7 +943,7 @@ 0 (msec) - + 0 (ms) @@ -951,7 +951,7 @@ None (PC Keyboard) - + Nijedan (PC tastatura) @@ -968,12 +968,12 @@ Midi Output Device: - + Izlazni Midi uređaj: %1 mSec - + %1 ms @@ -993,12 +993,12 @@ SoundFont Files (*.sf2 *.sf3) - + SoundFont datoteke (*.sf2 *.sf3) Midi Setup - + Midi postavke @@ -1019,7 +1019,7 @@ Midi Input Device: - + Ulazni Midi uređaj: @@ -1032,7 +1032,7 @@ Dialog - + Dijaloški okvir From 8bc1f43f7374ca90ad32d857c03329e986a0d58b Mon Sep 17 00:00:00 2001 From: pianobooster Date: Thu, 14 May 2020 12:36:54 +0100 Subject: [PATCH 40/84] Fixes issues on Windows --- src/CMakeLists.txt | 48 ++++++++++---------- src/Cfg.cpp | 1 - src/Cfg.h | 1 - src/Conductor.cpp | 17 +++++++ src/Conductor.h | 1 + src/Draw.cpp | 4 +- src/Draw.h | 2 +- src/GlView.cpp | 45 ++++++++++--------- src/GlView.h | 3 ++ src/MidiDevice.cpp | 8 ++++ src/MidiDevice.h | 3 +- src/MidiDeviceBase.h | 2 + src/MidiDeviceFluidSynth.cpp | 12 +++-- src/MidiDeviceFluidSynth.h | 3 ++ src/MidiDeviceRt.cpp | 86 +++++++++++++++++++++++++++--------- src/MidiDeviceRt.h | 11 +++-- src/MidiTrack.cpp | 2 +- src/QtWindow.cpp | 17 +------ src/QtWindow.h | 1 + src/Symbol.h | 2 +- src/Util.h | 2 +- 21 files changed, 170 insertions(+), 101 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f2d81ba6..8e4cf901 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,10 @@ # Cmake File for Piano Booster -option(USE_FTGL "build with ftgl" ON) +if(WIN32) + option(USE_FTGL "build with ftgl" OFF) +else() + option(USE_FTGL "build with ftgl" ON) +endif() option(USE_JACK "build with Jack (Only required for BSD Unix)" OFF) option(USE_SYSTEM_FONT "build with system font" OFF) if(${CMAKE_SYSTEM} MATCHES "Linux") @@ -55,13 +59,16 @@ if(NOT WIN32) endif() if(USE_FTGL) - pkg_check_modules(FTGL ftgl) - if(NOT FTGL_FOUND) - MESSAGE(FATAL_ERROR "FTGL was not found") - endif(NOT FTGL_FOUND) - - SET(FTGL_INCLUDE_DIR ${FTGL_INCLUDE_DIRS}) - SET(FTGL_LIBRARY ${FTGL_LIBRARIES}) + if(NOT WIN32) + pkg_check_modules(FTGL ftgl) + if(NOT FTGL_FOUND) + MESSAGE(FATAL_ERROR "FTGL was not found") + endif(NOT FTGL_FOUND) + SET(FTGL_INCLUDE_DIR ${FTGL_INCLUDE_DIRS}) + SET(FTGL_LIBRARY ${FTGL_LIBRARIES}) + else() + FIND_PACKAGE( ftgl REQUIRED ) + endif() else(USE_FTGL) add_compile_options("-DNO_USE_FTGL") endif(USE_FTGL) @@ -95,23 +102,18 @@ if(${CMAKE_SYSTEM} MATCHES "Darwin") endif(${CMAKE_SYSTEM} MATCHES "Darwin") if(WITH_INTERNAL_FLUIDSYNTH) - ADD_DEFINITIONS(-DWITH_INTERNAL_FLUIDSYNTH) - MESSAGE("Building using fluidsynth") - SET( PB_BASE_SRCS MidiDeviceFluidSynth.cpp ) - - if(DEFINED ENV{FLUIDSYNTH_INPLACE_DIR}) - SET (FLUIDSYNTH_INPLACE_DIR = $ENV{FLUIDSYNTH_INPLACE_DIR}) - INCLUDE_DIRECTORIES(${FLUIDSYNTH_INPLACE_DIR}/include/) - if(WIN32) - LINK_LIBRARIES( $ENV{FLUIDSYNTH_INPLACE_DIR}/lib/libfluidsynth.dll.a) - endif(WIN32) - else() + if(NOT WIN32) pkg_check_modules(FLUIDSYNTH fluidsynth) if(NOT FLUIDSYNTH_FOUND) - MESSAGE(FATAL_ERROR "FLUIDSYNTH was not found") + MESSAGE(FATAL_ERROR "FLUIDSYNTH was not found") endif(NOT FLUIDSYNTH_FOUND) LINK_LIBRARIES(fluidsynth) + else() + FIND_PACKAGE( fluidsynth REQUIRED ) endif() + ADD_DEFINITIONS(-DWITH_INTERNAL_FLUIDSYNTH) + MESSAGE("Building with internal fluidsynth") + SET( PB_BASE_SRCS MidiDeviceFluidSynth.cpp ) endif(WITH_INTERNAL_FLUIDSYNTH) # we need this to be able to include headers produced by uic in our code @@ -123,7 +125,6 @@ SET(PB_BASE_SRCS MidiFile.cpp MidiTrack.cpp Song.cpp Conductor.cpp Util.cpp SET(PB_BASE_HDR MidiFile.h MidiTrack.h Song.h Conductor.h Rating.h Util.h Chord.h Tempo.h MidiDevice.h) - if(USE_JACK) # Check for Jack find_library(JACK_LIB jack) @@ -254,7 +255,7 @@ if(UNIX) endif(UNIX) if(WIN32) - ADD_EXECUTABLE( pianobooster WIN32 ${PIANOBOOSTER_SRCS} + ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} ${PIANOBOOSTER_MOC_SRCS} ${PIANOBOOSTER_RC_SRCS} ${PIANOBOOSTER_UI_HDRS} ${PIANOBOOSTER_RCS} ) SET_TARGET_PROPERTIES(pianobooster PROPERTIES LINK_FLAGS "-mwindows") @@ -306,7 +307,8 @@ if(USE_FONT) endif(USE_FONT) if(NOT USE_SYSTEM_FONT) - INSTALL ( FILES fonts/DejaVuSans.ttf DESTINATION ${DATA_DIR}/fonts) + configure_file(fonts/DejaVuSans.ttf ${CMAKE_CURRENT_BINARY_DIR}/fonts/DejaVuSans.ttf COPYONLY) + INSTALL ( FILES fonts/DejaVuSans.ttf DESTINATION ${DATA_DIR}/fonts/) endif(NOT USE_SYSTEM_FONT) if(NOT NO_LANGS) diff --git a/src/Cfg.cpp b/src/Cfg.cpp index 5fd891db..8fb15ef3 100644 --- a/src/Cfg.cpp +++ b/src/Cfg.cpp @@ -30,7 +30,6 @@ float Cfg::m_staveEndX; int Cfg::logLevel = 1; -bool Cfg::quickStart = false; int Cfg::m_appX; int Cfg::m_appY; int Cfg::m_appWidth; diff --git a/src/Cfg.h b/src/Cfg.h index 0787d227..7ea264a1 100644 --- a/src/Cfg.h +++ b/src/Cfg.h @@ -130,7 +130,6 @@ class Cfg static int defaultRightPatch() {return 1;} // Starts at 1 static int logLevel; - static bool quickStart; static bool experimentalTempo; static bool experimentalNoteLength; static int experimentalSwapInterval; diff --git a/src/Conductor.cpp b/src/Conductor.cpp index 4c20d52b..804e12b6 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -388,8 +388,25 @@ void CConductor::testWrongNoteSound(bool enable) updatePianoSounds(); } +void CConductor::reconnectMidi() +{ + if (!validMidiOutput()) { + QString midiInputName = m_settings->value("Midi/Input").toString(); + if (midiInputName.startsWith(tr("None"))) { + CChord::setPianoRange(PC_KEY_LOWEST_NOTE, PC_KEY_HIGHEST_NOTE); + } else { + CChord::setPianoRange(m_settings->value("Keyboard/LowestNote", 0).toInt(), + m_settings->value("Keyboard/HighestNote", 127).toInt()); + } + openMidiPort(CMidiDevice::MIDI_INPUT, midiInputName); + openMidiPort(CMidiDevice::MIDI_OUTPUT,m_settings->value("Midi/Output").toString()); + } + m_settings->updateWarningMessages(); +} + void CConductor::playMusic(bool start) { + reconnectMidi(); m_playing = start; allSoundOff(); if (start) diff --git a/src/Conductor.h b/src/Conductor.h index aa46d1c2..c1a40cf7 100644 --- a/src/Conductor.h +++ b/src/Conductor.h @@ -100,6 +100,7 @@ class CConductor : public CMidiDevice void realTimeEngine(int mSecTicks); void playMusic(bool start); bool playingMusic() {return m_playing;} + void reconnectMidi(); float getSpeed() {return m_tempo.getSpeed();} void setSpeed(float speed) diff --git a/src/Draw.cpp b/src/Draw.cpp index 647f5213..1ce177ac 100644 --- a/src/Draw.cpp +++ b/src/Draw.cpp @@ -2,7 +2,7 @@ /*! @file Draw.cpp -@brief xxxxx. + @author L. J. Barman @@ -61,7 +61,7 @@ CDraw::CDraw(CSettings* settings) for (int i=0;i= 2) ? 1 : 2) // there are two gl buffers but redrawing once is best (set 2 with buggy gl drivers) +#define TEXT_LEFT_MARGIN 30 + CGLView::CGLView(QtWindow* parent, CSettings* settings) : QGLWidget(parent) { @@ -133,9 +135,6 @@ void CGLView::paintGL() void CGLView::drawTimeSignature() { - if (Cfg::quickStart) - return; - if (m_forcefullRedraw == 0) return; @@ -181,7 +180,7 @@ void CGLView::drawAccurracyBar() CColor color; float y = Cfg::getAppHeight() - 14; - const float x = 120; + const float x = accuracyBarStart; const int width = 360; const int lineWidth = 8/2; @@ -212,9 +211,6 @@ void CGLView::drawDisplayText() return; // don't run this func the first time it is called } - if (Cfg::quickStart) - return; - if (m_forcefullRedraw == 0) return; @@ -223,21 +219,28 @@ void CGLView::drawDisplayText() if (!m_settings->getWarningMessage().isEmpty()) { glColor3f(1.0,0.2,0.0); - renderText(30, y-4, 0, m_settings->getWarningMessage(), m_timeRatingFont); + renderText(TEXT_LEFT_MARGIN, y-4, 0, m_settings->getWarningMessage(), m_timeRatingFont); return; } glColor3f(1.0,1.0,1.0); - if (m_song->getPlayMode() != PB_PLAY_MODE_listen) - renderText(30, y-4,0 ,tr("Accuracy:"), m_timeRatingFont); + if (m_song->getPlayMode() != PB_PLAY_MODE_listen) { + if (accuracyBarStart == 0) { + QFontMetrics fm(m_timeRatingFont); + accuracyText = tr("Accuracy:"); + accuracyBarStart=fm.horizontalAdvance(accuracyText + " ") + TEXT_LEFT_MARGIN; + } + + renderText(TEXT_LEFT_MARGIN, y-4,0 ,accuracyText, m_timeRatingFont); + } if (m_titleHeight < 45 ) return; y = Cfg::getAppHeight() - m_titleHeight; - renderText(30, y+6, 0,tr("Song:") + " " + m_song->getSongTitle(), m_timeRatingFont); + renderText(TEXT_LEFT_MARGIN, y+6, 0,tr("Song:") + " " + m_song->getSongTitle(), m_timeRatingFont); /* char buffer[100]; sprintf(buffer, "Notes %d wrong %d Late %d Score %4.1f%%", @@ -249,12 +252,12 @@ void CGLView::drawDisplayText() void CGLView::drawBarNumber() { - if (m_forceBarRedraw == 0 || Cfg::quickStart) + if (m_forceBarRedraw == 0) return; m_forceBarRedraw--; float y = Cfg::getAppHeight() - m_titleHeight - 34; - float x = 30; + float x = TEXT_LEFT_MARGIN; //CDraw::drColor (Cfg::backgroundColor()); //CDraw::drColor (Cfg::noteColorDim()); @@ -288,6 +291,10 @@ void CGLView::resizeGL(int width, int height) m_titleHeight = 60; } maxSoreHeight = heightAboveStave + heightBelowStave + staveGap + m_titleHeight; + if (height > maxSoreHeight) { + int scoreExtraTopGap = (height - maxSoreHeight); + maxSoreHeight += qMin(200, scoreExtraTopGap); + } int sizeX = qMin(width, maxSoreWidth); int sizeY = qMin(height, maxSoreHeight); int x = (width - sizeX)/2; @@ -339,19 +346,15 @@ void CGLView::initializeGL() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); //enableAntialiasedLines(); - m_timeSigFont = QFont("Arial", 22 ); - m_timeRatingFont = QFont("Arial", 12 ); + // This is a work around for Windows different display scaling option + int widgetPointSize = m_qtWindow->font().pointSize(); + m_timeSigFont = QFont("Arial", widgetPointSize*2 ); + m_timeRatingFont = QFont("Arial", static_cast(widgetPointSize * 1.2) ); Cfg::setStaveEndX(400); //This value get changed by the resizeGL func m_song->setActiveHand(PB_PART_both); - if (!Cfg::quickStart) - { - renderText(10,10,QString("~"), m_timeRatingFont); //fixme this is a work around for a QT bug. - renderText(10,10,QString("~"), m_timeSigFont); //this is a work around for a QT bug. - } - setFocusPolicy(Qt::ClickFocus); m_qtWindow->init(); diff --git a/src/GlView.h b/src/GlView.h index 31890d22..f308c7ff 100644 --- a/src/GlView.h +++ b/src/GlView.h @@ -71,6 +71,9 @@ class CGLView : public QGLWidget//, RtTimer void drawBarNumber(); void updateMidiTask(); + QString accuracyText; + int accuracyBarStart = 0; + QColor m_backgroundColor; QtWindow* m_qtWindow; // The parent Window CSettings* m_settings; diff --git a/src/MidiDevice.cpp b/src/MidiDevice.cpp index 7b94d8b9..e615988f 100644 --- a/src/MidiDevice.cpp +++ b/src/MidiDevice.cpp @@ -139,6 +139,14 @@ CMidiEvent CMidiDevice::readMidiInput() return m_selectedMidiInputDevice->readMidiInput(); } +bool CMidiDevice::validMidiOutput() +{ + if (m_validOutput) { + return m_selectedMidiOutputDevice->validMidiConnection(); + } + return m_validOutput; +} + int CMidiDevice::midiSettingsSetStr(QString name, QString str) { if (m_selectedMidiOutputDevice) diff --git a/src/MidiDevice.h b/src/MidiDevice.h index 2e0346d6..9e5d3754 100644 --- a/src/MidiDevice.h +++ b/src/MidiDevice.h @@ -49,7 +49,8 @@ class CMidiDevice : public CMidiDeviceBase void playMidiEvent(const CMidiEvent & event); int checkMidiInput(); CMidiEvent readMidiInput(); - bool validMidiOutput() { return m_validOutput; } + bool validMidiOutput(); + virtual bool validMidiConnection() {return validMidiOutput();} QStringList getMidiPortList(midiType_t type); bool openMidiPort(midiType_t type, QString portName); diff --git a/src/MidiDeviceBase.h b/src/MidiDeviceBase.h index 7b3404dc..2c99e2bb 100644 --- a/src/MidiDeviceBase.h +++ b/src/MidiDeviceBase.h @@ -50,6 +50,8 @@ class CMidiDeviceBase : public QObject virtual QStringList getMidiPortList(midiType_t type) = 0; virtual bool openMidiPort(midiType_t type, QString portName) = 0; + virtual bool validMidiConnection() = 0; + virtual void closeMidiPort(midiType_t type, int index) = 0; // based on the fluid synth settings diff --git a/src/MidiDeviceFluidSynth.cpp b/src/MidiDeviceFluidSynth.cpp index 6eaaa904..99aa829b 100644 --- a/src/MidiDeviceFluidSynth.cpp +++ b/src/MidiDeviceFluidSynth.cpp @@ -34,6 +34,7 @@ CMidiDeviceFluidSynth::CMidiDeviceFluidSynth() m_fluidSettings = nullptr; m_audioDriver = nullptr; m_rawDataIndex = 0; + m_validConnection = false; } CMidiDeviceFluidSynth::~CMidiDeviceFluidSynth() @@ -71,13 +72,13 @@ bool CMidiDeviceFluidSynth::openMidiPort(midiType_t type, QString portName) if (type == MIDI_INPUT) return false; - if (!portName.endsWith(FLUID_NAME)) return false; + if (!portName.endsWith(FLUID_NAME)) {return false;} - if (getMidiPortList(type).size()==0) return false; + if (getMidiPortList(type).size()==0) {return false;} // Load a SoundFont QStringList fontList = qsettings->value("FluidSynth/SoundFont").toStringList(); - if (fontList.size() == 0) return false; + if (fontList.size() == 0) {return false;} // Create the settings. m_fluidSettings = new_fluid_settings(); @@ -110,12 +111,15 @@ bool CMidiDeviceFluidSynth::openMidiPort(midiType_t type, QString portName) { fluid_synth_program_change(m_synth, channel, GM_PIANO_PATCH); } - fluid_synth_set_gain(m_synth, qsettings->value("FluidSynth/masterGainSpin", 40).toFloat()/100.0f ); + fluid_synth_set_gain(m_synth, qsettings->value("FluidSynth/masterGainSpin", 80).toFloat()/100.0f ); + m_validConnection = true; return true; } void CMidiDeviceFluidSynth::closeMidiPort(midiType_t type, int index) { + m_validConnection = false; + if (type != MIDI_OUTPUT) return; diff --git a/src/MidiDeviceFluidSynth.h b/src/MidiDeviceFluidSynth.h index 1caf59d3..b66dd0d6 100644 --- a/src/MidiDeviceFluidSynth.h +++ b/src/MidiDeviceFluidSynth.h @@ -45,6 +45,8 @@ class CMidiDeviceFluidSynth : public CMidiDeviceBase virtual bool openMidiPort(midiType_t type, QString portName); virtual void closeMidiPort(midiType_t type, int index); + virtual bool validMidiConnection() {return m_validConnection;} + // based on the fluid synth settings virtual int midiSettingsSetStr(QString name, QString str); virtual int midiSettingsSetNum(QString name, double val); @@ -71,6 +73,7 @@ class CMidiDeviceFluidSynth : public CMidiDeviceBase fluid_synth_t* m_synth; fluid_audio_driver_t* m_audioDriver; int m_soundFontId; + bool m_validConnection; }; #endif //__MIDI_DEVICE_FLUIDSYNTH_H__ diff --git a/src/MidiDeviceRt.cpp b/src/MidiDeviceRt.cpp index 675f3730..b132dc61 100644 --- a/src/MidiDeviceRt.cpp +++ b/src/MidiDeviceRt.cpp @@ -30,35 +30,51 @@ CMidiDeviceRt::CMidiDeviceRt() { - try { - m_midiout = new RtMidiOut(); - } - catch(RtMidiError &error){ - error.printMessage(); - exit(1); - } - - try { - m_midiin = new RtMidiIn(); - } - catch(RtMidiError &error){ - error.printMessage(); - exit(1); - } - + m_validConnection = false; + m_midiout = nullptr; + m_midiin = nullptr; m_midiPorts[0] = -1; m_midiPorts[1] = -1; m_rawDataIndex = 0; + init(); } CMidiDeviceRt::~CMidiDeviceRt() { - delete m_midiout; - delete m_midiin; + if (m_midiout!=nullptr) { delete m_midiout; } + if (m_midiin!=nullptr) {delete m_midiin; } } void CMidiDeviceRt::init() { + if (m_midiin == nullptr || m_midiout == nullptr) { + m_midiPorts[0] = -1; + m_midiPorts[1] = -1; + m_rawDataIndex = 0; + if (m_midiout!=nullptr) { + delete m_midiout; + m_midiout = nullptr; + } + try { + m_midiout = new RtMidiOut(); + } + catch(RtMidiError &error){ + error.printMessage(); + return; + } + + if (m_midiin!=nullptr) { + delete m_midiin; + m_midiin = nullptr; + } + try { + m_midiin = new RtMidiIn(); + } + catch(RtMidiError &error){ + error.printMessage(); + return; + } + } } QString CMidiDeviceRt::addIndexToString(QString name, int index) @@ -72,10 +88,15 @@ QString CMidiDeviceRt::addIndexToString(QString name, int index) } QStringList CMidiDeviceRt::getMidiPortList(midiType_t type) { + init(); + QStringList portNameList; + if (m_midiin == nullptr || m_midiout == nullptr) { + return portNameList; + } + unsigned int nPorts; QString name; RtMidi* midiDevice; - QStringList portNameList; if (type == MIDI_INPUT) midiDevice = m_midiin; @@ -100,6 +121,11 @@ QStringList CMidiDeviceRt::getMidiPortList(midiType_t type) bool CMidiDeviceRt::openMidiPort(midiType_t type, QString portName) { + init(); + if (m_midiin == nullptr || m_midiout == nullptr) { + return false; + } + unsigned int nPorts; QString name; RtMidi* midiDevice; @@ -134,6 +160,7 @@ bool CMidiDeviceRt::openMidiPort(midiType_t type, QString portName) m_rawDataIndex = 0; midiDevice->openPort( i ); + m_validConnection = true; return true; } } @@ -142,6 +169,7 @@ bool CMidiDeviceRt::openMidiPort(midiType_t type, QString portName) void CMidiDeviceRt::closeMidiPort(midiType_t type, int index) { + m_validConnection = false; if (type == MIDI_INPUT) m_midiin->closePort(); else @@ -215,8 +243,13 @@ void CMidiDeviceRt::playMidiEvent(const CMidiEvent & event) return; } - - m_midiout->sendMessage( &message ); + try { + m_midiout->sendMessage( &message ); + } + catch(RtMidiError &error){ + error.printMessage(); + m_validConnection = false; + } //event.printDetails(); // useful for debugging } @@ -226,7 +259,16 @@ int CMidiDeviceRt::checkMidiInput() { if (m_midiPorts[0] < 0) return 0; - m_stamp = m_midiin->getMessage( &m_inputMessage ); + + try { + m_stamp = m_midiin->getMessage( &m_inputMessage ); + } + catch(RtMidiError &error){ + error.printMessage(); + m_validConnection = false; + return 0; + } + return m_inputMessage.size(); } diff --git a/src/MidiDeviceRt.h b/src/MidiDeviceRt.h index afc02139..e0d5b813 100644 --- a/src/MidiDeviceRt.h +++ b/src/MidiDeviceRt.h @@ -2,11 +2,9 @@ /*! @file MidiDeviceRt.h -@brief xxxxxx. - @author L. J. Barman - Copyright (c) 2008-2013, L. J. Barman, all rights reserved + Copyright (c) 2008-2020, L. J. Barman, all rights reserved This file is part of the PianoBooster application @@ -29,12 +27,9 @@ #ifndef __MIDI_DEVICE_RT_H__ #define __MIDI_DEVICE_RT_H__ - #include "MidiDeviceBase.h" - #include "rtmidi/RtMidi.h" - class CMidiDeviceRt : public CMidiDeviceBase { virtual void init(); @@ -48,6 +43,8 @@ class CMidiDeviceRt : public CMidiDeviceBase virtual bool openMidiPort(midiType_t type, QString portName); virtual void closeMidiPort(midiType_t type, int index); + virtual bool validMidiConnection() {return m_validConnection;} + // based on the fluid synth settings virtual int midiSettingsSetStr(QString name, QString str); virtual int midiSettingsSetNum(QString name, double val); @@ -76,6 +73,8 @@ class CMidiDeviceRt : public CMidiDeviceBase // kotechnology added function to create indexed string. Format: "1 - Example" QString addIndexToString(QString name, int index); + + bool m_validConnection; }; #endif //__MIDI_DEVICE_RT_H__ diff --git a/src/MidiTrack.cpp b/src/MidiTrack.cpp index 96ffacb4..425b5e72 100644 --- a/src/MidiTrack.cpp +++ b/src/MidiTrack.cpp @@ -284,7 +284,7 @@ void CMidiTrack::readMetaEvent(byte_t type) case METATEMPO: /* Set Tempo */ { - byte b1,b2, b3; + byte_t b1,b2, b3; int tempo; b1 = readVarLen(); diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index b051cff8..5d2aa6ea 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -117,21 +117,13 @@ QtWindow::QtWindow() m_song->setPianoSoundPatches(m_settings->value("Keyboard/RightSound", Cfg::defaultRightPatch()).toInt() - 1, m_settings->value("Keyboard/WrongSound", Cfg::defaultWrongPatch()).toInt() - 1, true); - QString midiInputName = m_settings->value("Midi/Input").toString(); - if (midiInputName.startsWith(tr("None"))) - CChord::setPianoRange(PC_KEY_LOWEST_NOTE, PC_KEY_HIGHEST_NOTE); - else - CChord::setPianoRange(m_settings->value("Keyboard/LowestNote", 0).toInt(), - m_settings->value("Keyboard/HighestNote", 127).toInt()); - m_song->setLatencyFix(m_settings->value("Midi/Latency", 0).toInt()); m_song->cfg_timingMarkersFlag = m_settings->value("Score/TimingMarkers", m_song->cfg_timingMarkersFlag ).toBool(); m_song->cfg_stopPointMode = static_cast (m_settings->value("Score/StopPointMode", m_song->cfg_stopPointMode ).toInt()); m_song->cfg_rhythmTapping = static_cast (m_settings->value("Score/RtyhemTappingMode", m_song->cfg_rhythmTapping ).toInt()); - m_song->openMidiPort(CMidiDevice::MIDI_INPUT, midiInputName); - m_song->openMidiPort(CMidiDevice::MIDI_OUTPUT,m_settings->value("Midi/Output").toString()); + m_song->reconnectMidi(); readSettings(); @@ -140,7 +132,6 @@ QtWindow::QtWindow() if (!songName.isEmpty()) m_settings->openSongFile( songName ); }); - } void QtWindow::init() @@ -167,10 +158,7 @@ void QtWindow::displayUsage() { fprintf(stdout, "Usage: pianobooster [flags] [midifile]\n"); fprintf(stdout, " -d, --debug Increase the debug level.\n"); - fprintf(stdout, " -q, --quick-start Quick start.\n"); fprintf(stdout, " --Xnote-length Displays the note length (experimental)\n"); - fprintf(stdout, " --Xtick-rate=RATE Adjust the tick rate in mSec (experimental).\n"); - fprintf(stdout, " default 4 (12 windows).\n"); fprintf(stdout, " -h, --help Displays this help message.\n"); fprintf(stdout, " -v, --version Displays version number and then exits.\n"); fprintf(stdout, " -l --log Write debug info to the \"pb.log\" log file.\n"); @@ -267,8 +255,6 @@ void QtWindow::decodeCommandLine() { if (arg.startsWith("-d") || arg.startsWith("--debug")) Cfg::logLevel++; - else if (arg.startsWith("-q") || arg.startsWith("--quick-start")) - Cfg::quickStart = true; else if (arg.startsWith("--Xnote-length")) Cfg::experimentalNoteLength = true; else if (arg.startsWith("--Xtick-rate")) { @@ -279,7 +265,6 @@ void QtWindow::decodeCommandLine() Cfg::useLogFile = true; else if (arg.startsWith("--midi-input-dump")) Cfg::midiInputDump = true; - else if (arg.startsWith("-X1")) Cfg::experimentalTempo = true; else if (arg.startsWith("-Xswap")) diff --git a/src/QtWindow.h b/src/QtWindow.h index 14261b12..b70d06a3 100644 --- a/src/QtWindow.h +++ b/src/QtWindow.h @@ -92,6 +92,7 @@ private slots: preferencesDialog.exec(); refreshTranslate(); + m_score->refreshScroll(); } void showSongDetailsDialog() diff --git a/src/Symbol.h b/src/Symbol.h index 50740097..2fa06a87 100644 --- a/src/Symbol.h +++ b/src/Symbol.h @@ -172,7 +172,7 @@ class CSymbol CStavePos m_stavePos; musicalSymbol_t m_symbolType; - byte m_midiNote; + byte_t m_midiNote; accidentalModifer_t m_accidentalModifer; // Used to suppress the second sharp in the same bar int m_midiDuration; whichPart_t m_hand; diff --git a/src/Util.h b/src/Util.h index f5370468..46fda0ba 100644 --- a/src/Util.h +++ b/src/Util.h @@ -46,7 +46,7 @@ using namespace std; #define MAX_MIDI_NOTES 128 #define MAX_MIDI_TRACKS 32 // This will allow us to map midi track on to midi channels -typedef unsigned char byte; +typedef unsigned char byte_t; #define arraySize(a) (sizeof(a)/sizeof(a[0])) /* Returns (at compile time) the number of elements in an array */ From b397bbaa521e492116723fbd7e626097c3df7af0 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Thu, 14 May 2020 14:51:45 +0100 Subject: [PATCH 41/84] Does a better job at detecting the left and right hand piano parts. --- src/GlView.cpp | 2 +- src/GuiTopBar.cpp | 5 +++-- src/MidiEvent.h | 29 +++++++++++++++++++++++++++++ src/TrackList.cpp | 41 ++++++++++++++++++++++++++++++++++------- src/TrackList.h | 14 ++++++++++++++ 5 files changed, 81 insertions(+), 10 deletions(-) diff --git a/src/GlView.cpp b/src/GlView.cpp index b1356c71..93780524 100644 --- a/src/GlView.cpp +++ b/src/GlView.cpp @@ -229,7 +229,7 @@ void CGLView::drawDisplayText() if (accuracyBarStart == 0) { QFontMetrics fm(m_timeRatingFont); accuracyText = tr("Accuracy:"); - accuracyBarStart=fm.horizontalAdvance(accuracyText + " ") + TEXT_LEFT_MARGIN; + accuracyBarStart=fm.boundingRect(accuracyText + " ").right() + TEXT_LEFT_MARGIN; } renderText(TEXT_LEFT_MARGIN, y-4,0 ,accuracyText, m_timeRatingFont); diff --git a/src/GuiTopBar.cpp b/src/GuiTopBar.cpp index 4ac8b099..d94cc74c 100644 --- a/src/GuiTopBar.cpp +++ b/src/GuiTopBar.cpp @@ -128,6 +128,7 @@ void GuiTopBar::on_transposeSpin_valueChanged(int value) { unsigned int i; //C Db D Eb E F F# G Ab A Bb B const int nextKey[] = { 0, -5, 2, -3, 4, -1, 6, 1, -4, 3, -2, 5}; + const int nextKeySize = arraySize(nextKey); if (!m_song) return; int diff = value - m_song->getTranspose(); int oldValue = CStavePos::getKeySignature(); @@ -135,13 +136,13 @@ void GuiTopBar::on_transposeSpin_valueChanged(int value) oldValue = 6; // if key is Eb change to D# // Find the old value in the table - for (i=0; i < arraySize(nextKey); i++) + for (i=0; i < nextKeySize; i++) { if (oldValue == nextKey[i]) break; } - int newValue = nextKey[(diff + i + arraySize(nextKey)) % arraySize(nextKey) ]; + int newValue = nextKey[(diff + i + nextKeySize) % nextKeySize ]; CStavePos::setKeySignature( newValue, 0 ); diff --git a/src/MidiEvent.h b/src/MidiEvent.h index 246a245c..ca8e8a54 100644 --- a/src/MidiEvent.h +++ b/src/MidiEvent.h @@ -82,6 +82,7 @@ #define METASEQEVENT 0x7F #define GM_PIANO_PATCH 0 // The default grand piano sound +#define isPianoOrOrganPatch(p) (((p) >= 0 && (p) <=7) || ((p) >= 16 && (p) <= 23 )) /*! * @brief xxxxx. @@ -107,6 +108,7 @@ class CMidiEvent int deltaTime(){return m_deltaTime;} void addDeltaTime(int delta){m_deltaTime +=delta;} + void subtractDeltaTime(int delta){m_deltaTime -=delta;} void setDeltaTime(int delta){m_deltaTime = delta;} //////////////////////////////////////////////////////////////////////////////// @@ -232,6 +234,33 @@ class CMidiEvent //@brief how long the midi note was played for long getDuration(){return m_duration;} + + /** + * This merges two MidiEvents (this and the other MidiEvent) + * The MidiEvent that happens first (has the lowest delta time) + * then a COPY of that MidiEvent is returned. + * The original is then cleared so that it type is set to MIDI_NONE + * The MidiEvent that happens second will have it delta time reduced + * using the delta time form the first MidiEvent. + * NOTE Both this and the otherMidiEvent will be altered when call this method. + */ + CMidiEvent getNextMergedEvent(CMidiEvent &otherMidiEvent) + { + CMidiEvent result; + int thisDelta = deltaTime(); + int otherDelta = otherMidiEvent.deltaTime(); + if ( thisDelta <= otherDelta ) { + result = *this; + otherMidiEvent.subtractDeltaTime(thisDelta); + clear(); + } else { + result = otherMidiEvent; + subtractDeltaTime(otherDelta); + otherMidiEvent.clear(); + } + return result; + } + std::string event_type_str(int atype) { std::string r; diff --git a/src/TrackList.cpp b/src/TrackList.cpp index 47946432..ce866c9e 100644 --- a/src/TrackList.cpp +++ b/src/TrackList.cpp @@ -89,20 +89,44 @@ void CTrackList::examineMidiEvent(CMidiEvent event) // Returns true if there is a piano part on channels 3 & 4 bool CTrackList::pianoPartConvetionTest() { - if ((m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] == GM_PIANO_PATCH && + if (m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] == GM_PIANO_PATCH && m_midiActiveChannels[CONVENTION_LEFT_HAND_CHANNEL] == true && - m_midiFirstPatchChannels[CONVENTION_RIGHT_HAND_CHANNEL] <= GM_PIANO_PATCH)) + m_midiFirstPatchChannels[CONVENTION_RIGHT_HAND_CHANNEL] <= GM_PIANO_PATCH) return true; if (m_midiFirstPatchChannels[CONVENTION_RIGHT_HAND_CHANNEL] == GM_PIANO_PATCH && m_midiActiveChannels[CONVENTION_RIGHT_HAND_CHANNEL] == true && - m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] <= GM_PIANO_PATCH) + m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] <= GM_PIANO_PATCH) return true; - if (m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] == GM_PIANO_PATCH && - m_midiActiveChannels[CONVENTION_LEFT_HAND_CHANNEL] == true && - m_midiFirstPatchChannels[CONVENTION_RIGHT_HAND_CHANNEL] <= GM_PIANO_PATCH) - return true; + return false; +} + +bool CTrackList::findLeftAndRightPianoParts() +{ + int patchA = -1; + int chanA = -1; + + for (int chan = 0 ; chan < MAX_MIDI_CHANNELS; chan++) { + if (m_midiActiveChannels[chan]) { + int patch = m_midiFirstPatchChannels[chan]; + if (isPianoOrOrganPatch(patch)) { + if (patchA == -1) { + patchA = patch; + chanA = chan; + } else { + if (patchA == patch) { + if (averageNotePitch(chan) < averageNotePitch(chanA)) { + CNote::setChannelHands(chan, chanA); + } else { + CNote::setChannelHands(chanA, chan); + } + return true; + } + } + } + } + } return false; } @@ -211,6 +235,9 @@ void CTrackList::refresh() m_song->setActiveChannel(CNote::bothHandsChan()); ppLogInfo("Active both"); } + else if (findLeftAndRightPianoParts()) { + m_song->setActiveChannel(CNote::bothHandsChan()); + } else { if (m_trackQtList.count() > 0) diff --git a/src/TrackList.h b/src/TrackList.h index 36bdcd20..2431e5ad 100644 --- a/src/TrackList.h +++ b/src/TrackList.h @@ -71,6 +71,7 @@ Q_OBJECT void currentRowChanged(int currentRow); void examineMidiEvent(CMidiEvent event); bool pianoPartConvetionTest(); + bool findLeftAndRightPianoParts(); int guessKeySignature(int chanA, int chanB); // The programme name now starts at 1 with 0 = "(none)" @@ -86,6 +87,18 @@ Q_OBJECT void changeListWidgetItemView(unsigned int index, QListWidgetItem* listWidgetItem); + double averageNotePitch(int chan) { + int totalNoteCount = 0; + double sumOffAllPitches = 0.0; + + for (int note = 0; note < MAX_MIDI_NOTES; note++) { + int frequency = m_noteFrequency[chan][note]; + totalNoteCount += frequency; + sumOffAllPitches += frequency * note; + } + return sumOffAllPitches / totalNoteCount; + } + private: QString getChannelProgramName(int chan); @@ -95,6 +108,7 @@ Q_OBJECT bool m_midiActiveChannels[MAX_MIDI_CHANNELS]; int m_midiFirstPatchChannels[MAX_MIDI_CHANNELS]; int m_noteFrequency[MAX_MIDI_CHANNELS][MAX_MIDI_NOTES]; + float m_averagePitch[MAX_MIDI_CHANNELS]; }; #endif //__TRACK_LIST_H__ From dc3fa3fe6b2890b2953c9fdc09de509ce64d3943 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Wed, 22 Apr 2020 20:55:08 +0300 Subject: [PATCH 42/84] Fix minor typos --- src/Conductor.cpp | 2 +- src/Conductor.h | 2 +- src/MidiDeviceFluidSynth.cpp | 2 +- src/Notation.cpp | 2 +- src/Piano.cpp | 2 +- src/Settings.cpp | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Conductor.cpp b/src/Conductor.cpp index 804e12b6..e74e3da5 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -1083,7 +1083,7 @@ void CConductor::realTimeEngine(int mSecTicks) { int channel = m_nextMidiEvent.channel(); - // Is this this channel_muted + // Is this channel_muted if (!hasPianistKeyboardChannel(channel)) { if (getfollowState() >= PB_FOLLOW_earlyNotes && diff --git a/src/Conductor.h b/src/Conductor.h index c1a40cf7..08f27780 100644 --- a/src/Conductor.h +++ b/src/Conductor.h @@ -282,7 +282,7 @@ class CConductor : public CMidiDevice CPiano* m_piano; CBar m_bar; - int m_leadLagAdjust; // Synchronise the sound the the video + int m_leadLagAdjust; // Synchronise the sound with the video int m_silenceTimeOut; // used to create silence if the student stops for toooo long CChord m_wantedChord; // The chord the pianist needs to play CChord m_savedWantedChord; // A copy of the wanted chord complete with both left and right parts diff --git a/src/MidiDeviceFluidSynth.cpp b/src/MidiDeviceFluidSynth.cpp index 99aa829b..d5e53f6e 100644 --- a/src/MidiDeviceFluidSynth.cpp +++ b/src/MidiDeviceFluidSynth.cpp @@ -176,7 +176,7 @@ void CMidiDeviceFluidSynth::playMidiEvent(const CMidiEvent & event) break; case MIDI_PITCH_BEND: //PITCH_BEND: - // a 14 bit number LSB first 0x4000 is the off posintions + // a 14 bit number LSB first 0x4000 is the off positions fluid_synth_pitch_bend(m_synth, channel, (event.data2() << 7) | event.data1()); break; diff --git a/src/Notation.cpp b/src/Notation.cpp index 5bd780fa..610dcc0f 100644 --- a/src/Notation.cpp +++ b/src/Notation.cpp @@ -57,7 +57,7 @@ bool CSlot::addSymbol(CSymbol symbol) return true; break; } - // move the previous entry up one possition + // move the previous entry up one position m_symbols[i+1] = m_symbols[i]; } m_symbols[i+1] = symbol; diff --git a/src/Piano.cpp b/src/Piano.cpp index 707f51b9..4505e1bd 100644 --- a/src/Piano.cpp +++ b/src/Piano.cpp @@ -59,7 +59,7 @@ void CPiano::spaceNoteBunch(unsigned int bottomIndex, unsigned int topIndex) if (gap < minNameGap) { gap = (minNameGap - gap)/2; - m_noteNameList[midPoint].posY += gap; // then move the middle two notes apart by the same amout + m_noteNameList[midPoint].posY += gap; // then move the middle two notes apart by the same amount m_noteNameList[midPoint-1].posY -= gap; } } diff --git a/src/Settings.cpp b/src/Settings.cpp index 08609042..fdc08b95 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -125,7 +125,7 @@ QDomElement CSettings::openDomElement(QDomElement parent, const QString & elemen debugSettings(("openDomElement1 %s %s %s", qPrintable(parent.tagName()), qPrintable(elementName), qPrintable(elementName))); // There should be only a single element without a name - // there should be lots of elemens but only one with this tag name + // there should be lots of elements but only one with this tag name QDomNode n = parent.firstChild(); while(!n.isNull()) @@ -149,7 +149,7 @@ QDomElement CSettings::openDomElement(QDomElement parent, const QString & elemen if (wantedElement.isNull()) { - // Create the element because it does not exsist + // Create the element because it does not exist wantedElement = m_domDocument.createElement(elementName); if (!attributeName.isEmpty() ) wantedElement.setAttribute("name", attributeName); @@ -459,7 +459,7 @@ void CSettings::unzipBoosterMusicBooks() #ifndef _WIN32 - // on windows the the installer does the unzipping + // on windows the installer does the unzipping if (!zipFile.exists() ) { ppLogError(qPrintable("Cannot find " + ZIPFILENAME)); From 2667bf360fabc88f478ebccf501fa5783bfa3960 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Thu, 14 May 2020 18:03:31 +0100 Subject: [PATCH 43/84] Deleted the stopTimerEvent method. --- src/GlView.cpp | 14 -------------- src/GlView.h | 5 +---- src/GuiTopBar.cpp | 13 ++++++++++--- src/GuiTopBar.h | 2 +- src/QtWindow.cpp | 15 +-------------- 5 files changed, 13 insertions(+), 36 deletions(-) diff --git a/src/GlView.cpp b/src/GlView.cpp index 93780524..3fcbbca5 100644 --- a/src/GlView.cpp +++ b/src/GlView.cpp @@ -54,7 +54,6 @@ CGLView::CGLView(QtWindow* parent, CSettings* settings) m_forcefullRedraw = 0; m_forceRatingRedraw = 0; m_forceBarRedraw = 0; - m_allowedTimerEvent = true; m_backgroundColor = QColor(0, 0, 0); @@ -72,7 +71,6 @@ CGLView::~CGLView() delete m_song; delete m_score; m_titleHeight = 0; - } QSize CGLView::minimumSizeHint() const @@ -85,16 +83,6 @@ QSize CGLView::sizeHint() const return QSize(200, 800); //fixme this does not work } -void CGLView::stopTimerEvent() -{ - m_allowedTimerEvent=false; -} - -void CGLView::startTimerEvent() -{ - m_allowedTimerEvent=true; -} - void CGLView::paintGL() { BENCHMARK(2, "enter"); @@ -381,8 +369,6 @@ void CGLView::updateMidiTask() void CGLView::timerEvent(QTimerEvent *event) { - if (!m_allowedTimerEvent) return; - BENCHMARK(0, "timer enter"); if (event->timerId() != m_timer.timerId()) { diff --git a/src/GlView.h b/src/GlView.h index f308c7ff..5c98b3ad 100644 --- a/src/GlView.h +++ b/src/GlView.h @@ -51,9 +51,6 @@ class CGLView : public QGLWidget//, RtTimer CScore* getScoreObject() {return m_score;} int m_cfg_openGlOptimise; - void stopTimerEvent(); - void startTimerEvent(); - protected: void timerEvent(QTimerEvent *event); void mediaTimerEvent(int ticks); @@ -92,7 +89,7 @@ class CGLView : public QGLWidget//, RtTimer int m_forceBarRedraw; int m_titleHeight; eventBits_t m_eventBits; - bool m_allowedTimerEvent; + }; #endif // __GLVIEW_H__ diff --git a/src/GuiTopBar.cpp b/src/GuiTopBar.cpp index d94cc74c..e09fc3e5 100644 --- a/src/GuiTopBar.cpp +++ b/src/GuiTopBar.cpp @@ -238,13 +238,20 @@ void GuiTopBar::on_startBarSpin_valueChanged(double bar) { if (!m_song) return; - // Stop the muisc playing - m_song->playMusic(false); - setPlayButtonState(false); + stopMuiscPlaying(); m_song->setPlayFromBar( bar); } +// Stop the muisc playing +void GuiTopBar::stopMuiscPlaying() +{ + if (!m_song) return; + + m_song->playMusic(false); + setPlayButtonState(false); +} + void GuiTopBar::on_saveBarButton_clicked(bool clicked) { if (!m_song) return; diff --git a/src/GuiTopBar.h b/src/GuiTopBar.h index 25fef586..e370aaec 100644 --- a/src/GuiTopBar.h +++ b/src/GuiTopBar.h @@ -52,7 +52,7 @@ class GuiTopBar : public QWidget, private Ui::GuiTopBar void setSpeed(int value){ speedSpin->setValue(value); } int getSpeed(){return speedSpin->value();} - + void stopMuiscPlaying(); void updateTranslate(); public slots: diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index 5d2aa6ea..d6237bd4 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -454,22 +454,12 @@ void QtWindow::openRecentFile() } void QtWindow::showMidiSetup(){ - bool isPlaying=false; - if(m_song->playingMusic()){ - isPlaying=true; - m_topBar->on_playButton_clicked(true); - } + m_topBar->stopMuiscPlaying(); - m_glWidget->stopTimerEvent(); GuiMidiSetupDialog midiSetupDialog(this); midiSetupDialog.init(m_song, m_settings); midiSetupDialog.exec(); - - m_glWidget->startTimerEvent(); - if (isPlaying){ - m_topBar->on_playButton_clicked(true); - } } // load the recent file list from the config file into the file menu @@ -643,8 +633,6 @@ void QtWindow::keyboardShortcuts() void QtWindow::open() { - m_glWidget->stopTimerEvent(); - QFileInfo currentSong = m_settings->getCurrentSongLongFileName(); QString dir; @@ -660,7 +648,6 @@ void QtWindow::open() m_settings->openSongFile(fileName); setCurrentFile(fileName); } - m_glWidget->startTimerEvent(); } void QtWindow::readSettings() From 3fd6b85b88920396f93358750da29b1a2653acee Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 23 May 2020 10:44:51 +0100 Subject: [PATCH 44/84] Separate left and right parts contained in different midi tracks. --- src/Chord.cpp | 47 +++++++++----- src/Chord.h | 29 +++++++-- src/Conductor.cpp | 6 +- src/Conductor.h | 2 + src/GuiMidiSetupDialog.cpp | 2 +- src/MidiDeviceFluidSynth.cpp | 11 +--- src/MidiDeviceRt.cpp | 15 ++--- src/MidiEvent.h | 3 + src/MidiFile.cpp | 6 +- src/MidiFile.h | 3 + src/MidiTrack.h | 3 +- src/QtWindow.cpp | 4 +- src/Song.cpp | 6 +- src/TrackList.cpp | 113 ++++++++++++++++---------------- src/TrackList.h | 122 +++++++++++++++++++++++++++++++++-- 15 files changed, 256 insertions(+), 116 deletions(-) diff --git a/src/Chord.cpp b/src/Chord.cpp index 570614fe..9775c1c4 100644 --- a/src/Chord.cpp +++ b/src/Chord.cpp @@ -31,13 +31,34 @@ int CNote::m_leftHandChannel = -2; int CNote::m_rightHandChannel = -2; +int CNote::m_rightHandTrack[MAX_MIDI_CHANNELS]; + whichPart_t CNote::m_activeHand = PB_PART_both; int CChord::m_cfg_highestPianoNote = 127; // The highest note on the users piano keyboard; int CChord::m_cfg_lowestPianoNote = 0; -whichPart_t CNote::findHand(int midiNote, int midiChannel, int whichChannel, whichPart_t whichPart) + +void CNote::reset() +{ + CNote::setChannelHands(-2, -2); // -2 for not set -1 for none + + for (int chan = 0; chan < MAX_MIDI_CHANNELS; chan++) { + m_rightHandTrack[chan]=-1; + } +} + +void CNote::setChannelHands(int left, int right) +{ + m_leftHandChannel = left; + m_rightHandChannel = right; +} + + +whichPart_t CNote::findHand(CMidiEvent midi, int whichChannel, whichPart_t whichPart) { + int midiNote = midi.note(); + int midiChannel = midi.channel(); whichPart_t hand = PB_PART_none; // exit if it is not for this channel if (midiChannel != whichChannel) @@ -46,21 +67,18 @@ whichPart_t CNote::findHand(int midiNote, int midiChannel, int whichChannel, whi if (CNote::hasPianoPart(whichChannel) == false || CNote::hasPianoPart(midiChannel) == false) return PB_PART_none; } + int rightHandTrack = CNote::rightHandTrack(midiChannel); - if (midiChannel == CNote::rightHandChan()) + if (midiChannel == whichChannel && rightHandTrack >= 0 ) { + hand = (midi.track() == rightHandTrack) ? PB_PART_right : PB_PART_left ; + } else if (midiChannel == CNote::rightHandChan()) { hand = PB_PART_right; - else if (midiChannel == CNote::leftHandChan()) + } else if (midiChannel == CNote::leftHandChan()) { hand = PB_PART_left; - else - { - if (midiChannel == whichChannel) - { - if (midiNote >= MIDDLE_C) - hand = PB_PART_right; - else - hand = PB_PART_left; - } + } else if (midiChannel == whichChannel) { + hand = (midiNote >= MIDDLE_C) ? PB_PART_right : PB_PART_left ; } + if (whichPart == PB_PART_left && hand == PB_PART_right) hand = PB_PART_none; if (whichPart == PB_PART_right && hand == PB_PART_left) @@ -82,11 +100,6 @@ void CChord::addNote(whichPart_t part, int note, int duration) m_length++; } -void CNote::setChannelHands(int left, int right) -{ - m_leftHandChannel = left; - m_rightHandChannel = right; -} //////////////// CChord ///////////////////// diff --git a/src/Chord.h b/src/Chord.h index edc7787d..21c03c57 100644 --- a/src/Chord.h +++ b/src/Chord.h @@ -42,7 +42,6 @@ typedef enum PB_PART_both = 200, // keep well clear of real midi channels PB_PART_right, PB_PART_left, - PB_PART_accump, PB_PART_all, PB_PART_none, } whichPart_t; @@ -65,6 +64,9 @@ class CNote m_pitch = note; m_duration = duration; } + + static void reset(); + void transpose(int amount) { m_pitch += amount; @@ -73,13 +75,14 @@ class CNote whichPart_t part() {return m_part;} void setPart(whichPart_t part) {m_part = part;} - static whichPart_t findHand(int midiNote, int midiChannel, int whichChannel, whichPart_t whichPart); + static whichPart_t findHand(CMidiEvent midi, int whichChannel, whichPart_t whichPart); - static whichPart_t findHand(CMidiEvent midi, int channel, whichPart_t part) - { - return findHand(midi.note(), midi.channel(), channel, part); + static void setRightHandTrack(int channel, int rightHandTrackNumber) { + m_rightHandTrack[channel] = rightHandTrackNumber; } + static int rightHandTrack(int channel) { return m_rightHandTrack[channel]; } + static void setChannelHands(int left, int right); static void setActiveHand(whichPart_t hand){m_activeHand = hand;} static whichPart_t getActiveHand(){return m_activeHand;} @@ -97,7 +100,8 @@ class CNote static int m_leftHandChannel; static int m_rightHandChannel; static whichPart_t m_activeHand; - + // -1 means there is a single track and no separate left and right hand parts + static int m_rightHandTrack[MAX_MIDI_CHANNELS]; }; class CNoteRange @@ -147,6 +151,19 @@ class CChord return false; } + static bool isPianistNote(CMidiEvent midi, int transpose, int whichChannel) + { + whichPart_t whichPart = CNote::getActiveHand(); + + int note = midi.note(); + whichPart_t hand = CNote::findHand( midi, whichChannel, whichPart ); + if (hand == PB_PART_none) { + return false; + } + + return CChord::isNotePlayable(note, transpose); + } + static bool isHandPlayable(whichPart_t hand) { if (CNote::getActiveHand() == PB_PART_both) diff --git a/src/Conductor.cpp b/src/Conductor.cpp index e74e3da5..ecde0226 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -283,7 +283,7 @@ void CConductor::transpose(int transpose) void CConductor::activatePianistMutePart() { mutePart(PB_PART_all, false); - if (m_playMode != PB_PLAY_MODE_listen && m_mutePianistPart == true) + if (shouldMutePianistPart()) { if (CNote::hasPianoPart(m_activeChannel)) { @@ -451,9 +451,9 @@ void CConductor::playTransposeEvent(CMidiEvent event) (event.type() == MIDI_NOTE_ON || event.type() == MIDI_NOTE_OFF) ) event.transpose(m_transpose); - if (event.type() == MIDI_NOTE_ON && isChannelMuted(event.channel()) == true && - CChord::isNotePlayable(event.note(), m_transpose) == true) + if (event.type() == MIDI_NOTE_ON && CChord::isPianistNote(event, m_transpose, getActiveChannel()) && shouldMutePianistPart()) { return; // mute the note by not playing it + } // boost any volume events if (event.type() == MIDI_CONTROL_CHANGE && event.data1() == MIDI_MAIN_VOLUME) diff --git a/src/Conductor.h b/src/Conductor.h index 08f27780..54b0a99f 100644 --- a/src/Conductor.h +++ b/src/Conductor.h @@ -165,6 +165,8 @@ class CConductor : public CMidiDevice } bool hasPianistKeyboardChannel(int chan) { return (m_pianistGoodChan == chan || m_pianistBadChan == chan ) ? true : false;} + bool shouldMutePianistPart() {return m_playMode != PB_PLAY_MODE_listen && m_mutePianistPart == true;} + CRating* getRating(){return &m_rating;} // You MUST clear the time sig to 0 first before setting an new start time Sig diff --git a/src/GuiMidiSetupDialog.cpp b/src/GuiMidiSetupDialog.cpp index d133546c..77410a7a 100644 --- a/src/GuiMidiSetupDialog.cpp +++ b/src/GuiMidiSetupDialog.cpp @@ -291,7 +291,7 @@ void GuiMidiSetupDialog::on_fluidLoadButton_clicked ( bool checked ) } } - QFileInfo soundFontInfo = QFileDialog::getOpenFileName(this,tr("Open SoundFont File for fluidsynth"), + QFileInfo soundFontInfo = QFileDialog::getOpenFileName(this, tr("Open SoundFont File for fluidsynth"), lastSoundFont, tr("SoundFont Files (*.sf2 *.sf3)")); if (!soundFontInfo.isFile()) return; diff --git a/src/MidiDeviceFluidSynth.cpp b/src/MidiDeviceFluidSynth.cpp index d5e53f6e..bd19677a 100644 --- a/src/MidiDeviceFluidSynth.cpp +++ b/src/MidiDeviceFluidSynth.cpp @@ -155,9 +155,7 @@ void CMidiDeviceFluidSynth::playMidiEvent(const CMidiEvent & event) break; case MIDI_NOTE_PRESSURE: //POLY_AFTERTOUCH: 3 bytes - //message.push_back( channel | MIDI_NOTE_PRESSURE); - //message.push_back( event.data1()); - //message.push_back( event.data2()); + //fluid_synth_key_pressure(m_synth, channel, event.data1(), event.data2()); break; case MIDI_CONTROL_CHANGE: //CONTROL_CHANGE: @@ -170,15 +168,13 @@ void CMidiDeviceFluidSynth::playMidiEvent(const CMidiEvent & event) break; case MIDI_CHANNEL_PRESSURE: //AFTERTOUCH: 2 bytes only - //message.push_back( channel | MIDI_CHANNEL_PRESSURE); - //message.push_back( event.data1()); - // FIXME missing + fluid_synth_channel_pressure(m_synth, channel, event.programme()); break; case MIDI_PITCH_BEND: //PITCH_BEND: // a 14 bit number LSB first 0x4000 is the off positions fluid_synth_pitch_bend(m_synth, channel, (event.data2() << 7) | event.data1()); - break; + break; case MIDI_PB_collateRawMidiData: //used for a SYSTEM_EVENT if (m_rawDataIndex < arraySize(m_savedRawBytes)) @@ -192,7 +188,6 @@ void CMidiDeviceFluidSynth::playMidiEvent(const CMidiEvent & event) // FIXME missing break; } - //event.printDetails(); // useful for debugging } diff --git a/src/MidiDeviceRt.cpp b/src/MidiDeviceRt.cpp index b132dc61..f3e6fda3 100644 --- a/src/MidiDeviceRt.cpp +++ b/src/MidiDeviceRt.cpp @@ -302,10 +302,7 @@ CMidiEvent CMidiDeviceRt::readMidiInput() break; case MIDI_NOTE_PRESSURE: //MIDI_CMD_NOTE_PRESSURE: //POLY_AFTERTOUCH: - // fixme fill in the blanks - //midi_input_bytes[midi_input_length++] = channel | MIDI_CMD_NOTE_PRESSURE; - //midi_input_bytes[midi_input_length++] = ev->data.note.note; - //midi_input_bytes[midi_input_length++] = ev->data.note.velocity; + midiEvent.notePressure(0, channel, m_inputMessage[1], m_inputMessage[2]); break; case MIDI_CONTROL_CHANGE: //CONTROL_CHANGE: @@ -313,19 +310,15 @@ CMidiEvent CMidiDeviceRt::readMidiInput() break; case MIDI_PROGRAM_CHANGE: //PROGRAM_CHANGE: - //midiEvent.programChangeEvent(0, ev->data.control.channel, ev->data.control.value); + midiEvent.programChangeEvent(0, channel, m_inputMessage[1]); break; case MIDI_CHANNEL_PRESSURE: //AFTERTOUCH: - // fixme fill in the blanks - //midi_input_bytes[midi_input_length++] = ev->data.control.channel | MIDI_CMD_CHANNEL_PRESSURE; - //midi_input_bytes[midi_input_length++] = ev->data.control.value; + midiEvent.channelPressure(0, channel, m_inputMessage[1]); break; case MIDI_PITCH_BEND: //PITCH_BEND: - // fixme fill in the blanks - //midi_input_bytes[midi_input_length++] = ev->data.control.channel | MIDI_CMD_CHANNEL_PRESSURE; - //midi_input_bytes[midi_input_length++] = ev->data.control.value; + midiEvent.pitchBendEvent(0, channel, m_inputMessage[1], m_inputMessage[2]); break; } diff --git a/src/MidiEvent.h b/src/MidiEvent.h index ca8e8a54..78f83606 100644 --- a/src/MidiEvent.h +++ b/src/MidiEvent.h @@ -126,6 +126,8 @@ class CMidiEvent int data1() const {return m_note;} // Meta data is stored here int data2() const {return m_velocity;} void setDatat2(int value) {m_velocity = value;} + void setTrack(int track) {m_track = track;} + int track() {return m_track;} void noteOffEvent( int deltaTime, int channel, int note, int velocity) { @@ -338,6 +340,7 @@ class CMidiEvent int m_note; int m_velocity; int m_duration; + int m_track; }; #endif //__MIDI_EVENT_H__ diff --git a/src/MidiFile.cpp b/src/MidiFile.cpp index 5175fcf6..4b724a06 100644 --- a/src/MidiFile.cpp +++ b/src/MidiFile.cpp @@ -100,6 +100,7 @@ void CMidiFile::openMidiFile(string filename) void CMidiFile::rewind() { + m_numberOfTracks = 0; size_t ntrks; size_t trk; dword_t trackLength; @@ -123,6 +124,7 @@ void CMidiFile::rewind() ppLogError("Too many tracks in SMF file"); return; } + m_numberOfTracks = ntrks; for (trk = 0; trk < arraySize(m_tracks); trk++) { if (m_tracks[trk]!= nullptr) @@ -163,7 +165,7 @@ bool CMidiFile::checkMidiEventFromStream(int streamIdx) return false; } -CMidiEvent CMidiFile::fetchMidiEventFromStream(int streamIdx) +CMidiEvent CMidiFile::fetchMidiEventFromStream(int trackNo) { - return m_tracks[streamIdx]->pop(); + return m_tracks[trackNo]->pop(trackNo); } diff --git a/src/MidiFile.h b/src/MidiFile.h index be27492b..364f9b62 100644 --- a/src/MidiFile.h +++ b/src/MidiFile.h @@ -52,6 +52,7 @@ class CMidiFile : public CMerge setSize(MAX_TRACKS); for (i = 0; i < arraySize(m_tracks); i++) m_tracks[i] = 0; + m_numberOfTracks = 0; } void openMidiFile(string filename); @@ -66,6 +67,7 @@ class CMidiFile : public CMerge void setLogLevel(int level){CMidiTrack::setLogLevel(level);} midiErrors_t getMidiError() { return m_midiError;} + int numberOfTracks() const {return m_numberOfTracks;} private: bool checkMidiEventFromStream(int streamIdx); @@ -76,6 +78,7 @@ class CMidiFile : public CMerge midiErrors_t m_midiError; CMidiTrack* m_tracks[MAX_TRACKS]; QString m_songTitle; + int m_numberOfTracks; }; #endif // __MIDIFILE_H__ diff --git a/src/MidiTrack.h b/src/MidiTrack.h index 7c0b356b..5bd7f5f8 100644 --- a/src/MidiTrack.h +++ b/src/MidiTrack.h @@ -78,8 +78,9 @@ class CMidiTrack midiErrors_t getMidiError() { return m_midiError;} int length() {return m_trackEventQueue->length();} - CMidiEvent pop() { + CMidiEvent pop(int trackNo) { CMidiEvent m = m_trackEventQueue->pop(); + m.setTrack(trackNo); m.printDetails(); return m; } diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index d6237bd4..dfed9fde 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -163,7 +163,7 @@ void QtWindow::displayUsage() fprintf(stdout, " -v, --version Displays version number and then exits.\n"); fprintf(stdout, " -l --log Write debug info to the \"pb.log\" log file.\n"); fprintf(stdout, " --midi-input-dump Displays the midi input in hex.\n"); - fprintf(stdout, " --lights: Turns on the keyboard lights.\n"); + fprintf(stdout, " --lights Turns on the keyboard lights.\n"); } int QtWindow::decodeIntegerParam(QString arg, int defaultParam) @@ -641,7 +641,7 @@ void QtWindow::open() else dir = QDir::homePath(); - QString fileName = QFileDialog::getOpenFileName(this,tr("Open Midi File"), + QString fileName = QFileDialog::getOpenFileName(this, tr("Open Midi File"), dir, tr("Midi Files") + " (*.mid *.MID *.midi *.MIDI *.kar *.KAR)"); if (!fileName.isEmpty()) { diff --git a/src/Song.cpp b/src/Song.cpp index 9f184e1e..d8ebfc94 100644 --- a/src/Song.cpp +++ b/src/Song.cpp @@ -32,7 +32,7 @@ void CSong::init2(CScore * scoreWin, CSettings* settings) { - CNote::setChannelHands(-2, -2); // -2 for not set -1 for none + CNote::reset(); this->CConductor::init2(scoreWin, settings); @@ -44,7 +44,7 @@ void CSong::init2(CScore * scoreWin, CSettings* settings) void CSong::loadSong(const QString & filename) { - CNote::setChannelHands(-2, -2); // -2 for not set -1 for none + CNote::reset(); m_songTitle = filename; int index = m_songTitle.lastIndexOf("/"); @@ -74,7 +74,7 @@ void CSong::loadSong(const QString & filename) // read the file ahead to collect info about the song first void CSong::midiFileInfo() { - m_trackList->clear(); + m_trackList->reset(m_midiFile->numberOfTracks()); setTimeSig(0,0); CStavePos::setKeySignature( NOT_USED, 0 ); diff --git a/src/TrackList.cpp b/src/TrackList.cpp index ce866c9e..6d2f8739 100644 --- a/src/TrackList.cpp +++ b/src/TrackList.cpp @@ -38,65 +38,61 @@ void CTrackList::init(CSong* songObj, CSettings* settings) m_settings = settings; } -void CTrackList::clear() +void CTrackList::reset(int numberOfTracks) { - int chan; - - for (chan = 0; chan < MAX_MIDI_CHANNELS; chan++) - { - m_midiActiveChannels[chan] = false; - m_midiFirstPatchChannels[chan] = -1; - for (int i = 0; i < MAX_MIDI_NOTES; i++) + m_partsList.clear(); + m_midiChannels.clear(); + for (int chan = 0; chan < MAX_MIDI_CHANNELS; chan++) { + for (int i = 0; i < MAX_MIDI_NOTES; i++) { m_noteFrequency[chan][i]=0; + } + m_midiChannels.append(AnalyseItem(numberOfTracks)); } - m_trackQtList.clear(); } void CTrackList::currentRowChanged(int currentRow) { if (!m_song) return; - if (currentRow >= m_trackQtList.size()|| currentRow < 0) + if (currentRow >= m_partsList.size()|| currentRow < 0) return; - m_song->setActiveChannel(m_trackQtList[currentRow].midiChannel); + m_song->setActiveChannel(m_partsList[currentRow].midiChannel()); } void CTrackList::examineMidiEvent(CMidiEvent event) { - int chan; - chan = event.channel(); + int chan = event.channel(); + assert (chan < MAX_MIDI_CHANNELS && chan >= 0); if (chan < MAX_MIDI_CHANNELS && chan >= 0) { if (event.type() == MIDI_NOTE_ON) { - m_midiActiveChannels[chan] = true; + m_midiChannels[chan].addNoteEvent(event); + // count each note so we can guess the key signature - if (event.note() >= 0 && event.note() < MAX_MIDI_NOTES) + if (event.note() >= 0 && event.note() < MAX_MIDI_NOTES) { m_noteFrequency[chan][event.note()]++; + } + } - // If we have a note and no patch then default to grand piano patch - if (m_midiFirstPatchChannels[chan] == -1) - m_midiFirstPatchChannels[chan] = GM_PIANO_PATCH; - + if (event.type() == MIDI_PROGRAM_CHANGE) { + m_midiChannels[chan].addPatch(event.programme()); } - - if (event.type() == MIDI_PROGRAM_CHANGE && m_midiActiveChannels[chan] == false) - m_midiFirstPatchChannels[chan] = event.programme(); } } // Returns true if there is a piano part on channels 3 & 4 bool CTrackList::pianoPartConvetionTest() { - if (m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] == GM_PIANO_PATCH && - m_midiActiveChannels[CONVENTION_LEFT_HAND_CHANNEL] == true && - m_midiFirstPatchChannels[CONVENTION_RIGHT_HAND_CHANNEL] <= GM_PIANO_PATCH) + if (m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL].firstPatch() == GM_PIANO_PATCH && + m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL].active() && + m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL].firstPatch() <= GM_PIANO_PATCH) return true; - if (m_midiFirstPatchChannels[CONVENTION_RIGHT_HAND_CHANNEL] == GM_PIANO_PATCH && - m_midiActiveChannels[CONVENTION_RIGHT_HAND_CHANNEL] == true && - m_midiFirstPatchChannels[CONVENTION_LEFT_HAND_CHANNEL] <= GM_PIANO_PATCH) + if (m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL].firstPatch() == GM_PIANO_PATCH && + m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL].active() && + m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL].firstPatch() <= GM_PIANO_PATCH) return true; return false; @@ -108,9 +104,14 @@ bool CTrackList::findLeftAndRightPianoParts() int chanA = -1; for (int chan = 0 ; chan < MAX_MIDI_CHANNELS; chan++) { - if (m_midiActiveChannels[chan]) { - int patch = m_midiFirstPatchChannels[chan]; + if (m_midiChannels[chan].active()) { + int patch = m_midiChannels[chan].firstPatch(); if (isPianoOrOrganPatch(patch)) { + if (m_midiChannels[chan].trackCount() > 1) { + CNote::setChannelHands(chan, chan); + return true; + } + if (patchA == -1) { patchA = patch; chanA = chan; @@ -205,7 +206,7 @@ int CTrackList::findFreeChannel(int startChannel) continue; if (chan == MIDI_DRUM_CHANNEL) continue; - if (m_midiActiveChannels[chan] == false) + if (!m_midiChannels[chan].active()) return chan; } return -1; // Not found @@ -214,17 +215,14 @@ int CTrackList::findFreeChannel(int startChannel) void CTrackList::refresh() { - int chan; int rowCount = 0; - m_trackQtList.clear(); + m_partsList.clear(); - for (chan = 0; chan < MAX_MIDI_CHANNELS; chan++) + for (int chan = 0; chan < MAX_MIDI_CHANNELS; chan++) { - if (m_midiActiveChannels[chan] == true) + if (m_midiChannels[chan].active()) { - CTrackListItem trackItem; - trackItem.midiChannel = chan; - m_trackQtList.append(trackItem); + m_partsList.append(CTrackListItem(chan)); rowCount++; } } @@ -240,14 +238,14 @@ void CTrackList::refresh() } else { - if (m_trackQtList.count() > 0) + if (m_partsList.count() > 0) { - m_song->setActiveChannel(m_trackQtList[0].midiChannel); + m_song->setActiveChannel(m_partsList[0].midiChannel()); } } if (CStavePos::getKeySignature() == NOT_USED) - CStavePos::setKeySignature(guessKeySignature(CNote::rightHandChan(),CNote::leftHandChan()), 0); + CStavePos::setKeySignature(guessKeySignature(CNote::rightHandChan(), CNote::leftHandChan()), 0); // Find an unused channel that we can use for the keyboard m_song->reset(); @@ -260,18 +258,23 @@ void CTrackList::refresh() goodChan = 15 -1; badChan = 16-1; } - m_song->setPianistChannels(goodChan,badChan); + m_song->setPianistChannels(goodChan, badChan); ppLogInfo("Using Pianist Channels %d + %d", goodChan +1, badChan +1); if (Cfg::keyboardLightsChan != -1 && spareChan != -1) m_song->mapTrack2Channel(Cfg::keyboardLightsChan, spareChan); + for (int chan = 0; chan < MAX_MIDI_CHANNELS; chan++) { + AnalyseItem item = m_midiChannels[chan]; + ppLogInfo("ZZ track notes %d tracks %s", item.noteCount(), qPrintable(item.trackInfo())); + CNote::setRightHandTrack(chan, item.rightHandTrack()); + } } int CTrackList::getActiveItemIndex() { int chan; - for (int i = 0; i < m_trackQtList.size(); ++i) + for (int i = 0; i < m_partsList.size(); ++i) { - chan = m_trackQtList.at(i).midiChannel; + chan = m_partsList[i].midiChannel(); if (chan == CNote::rightHandChan() ) return i; } @@ -285,10 +288,10 @@ QStringList CTrackList::getAllChannelProgramNames(bool raw) QString text; QString hand; - for (int i = 0; i < m_trackQtList.size(); ++i) + for (int i = 0; i < m_partsList.size(); ++i) { hand.clear(); - chan = m_trackQtList.at(i).midiChannel; + chan = m_partsList[i].midiChannel(); if (raw == false) { if (CNote::leftHandChan() == chan) @@ -305,8 +308,8 @@ QStringList CTrackList::getAllChannelProgramNames(bool raw) int CTrackList::getActiveHandIndex(whichPart_t whichPart) { int index = 0; - for (int i = 0; i < m_trackQtList.size(); ++i) - if (m_trackQtList.at(i).midiChannel == CNote::getHandChannel( whichPart)) + for (int i = 0; i < m_partsList.size(); ++i) + if (m_partsList[i].midiChannel() == CNote::getHandChannel( whichPart)) return index; return index; @@ -318,9 +321,9 @@ void CTrackList::setActiveHandsIndex(int leftIndex, int rightIndex) int rightChannel = -1; if (leftIndex>=0) - leftChannel = m_trackQtList.at(leftIndex).midiChannel; + leftChannel = m_partsList.at(leftIndex).midiChannel(); if (rightIndex>=0) - rightChannel = m_trackQtList.at(rightIndex).midiChannel; + rightChannel = m_partsList.at(rightIndex).midiChannel(); m_settings->setChannelHands(leftChannel, rightChannel); refresh(); m_song->rewind(); @@ -331,10 +334,10 @@ int CTrackList::getHandTrackIndex(whichPart_t whichPart) { int index = 0; int midiHand = CNote::getHandChannel(whichPart); - for (int i = 0; i < m_trackQtList.size(); ++i) + for (int i = 0; i < m_partsList.size(); ++i) { - if (m_trackQtList.at(i).midiChannel == midiHand) + if (m_partsList[i].midiChannel() == midiHand) return index; index++; } @@ -344,7 +347,7 @@ int CTrackList::getHandTrackIndex(whichPart_t whichPart) void CTrackList::changeListWidgetItemView( unsigned int index, QListWidgetItem* listWidgetItem ) { - int chan = m_trackQtList[index].midiChannel; + int chan = m_partsList[index].midiChannel(); if ( CNote::hasPianoPart( chan )) { QFont font = listWidgetItem->font(); @@ -359,12 +362,12 @@ void CTrackList::changeListWidgetItemView( unsigned int index, QListWidgetItem* QString CTrackList::getChannelProgramName(int chan) { - if(chan<0 || chan>= static_cast(arraySize(m_midiFirstPatchChannels))) + if(chan<0 || chan>= MAX_MIDI_CHANNELS) { assert(true); return QString(); } - int program = m_midiFirstPatchChannels[chan]; + int program = m_midiChannels[chan].firstPatch(); if (chan==10-1) return QObject::tr("Drums"); diff --git a/src/TrackList.h b/src/TrackList.h index 2431e5ad..7407bae0 100644 --- a/src/TrackList.h +++ b/src/TrackList.h @@ -43,10 +43,119 @@ class CSong; class CSettings; +class AnalyseItem +{ +public: + + AnalyseItem() {} + + AnalyseItem(int numberOfTracks) + { + m_noteCount = 0; + for(int i = 0; i < numberOfTracks; i++) { + QSharedPointer notePtr (new int[MAX_MIDI_NOTES]); + memset(notePtr.data(), 0, sizeof(int) * MAX_MIDI_NOTES ); + m_noteFrequencyByTrack.append( notePtr) ; + m_noteCountByTrack.append(0); + } + } + + void addNoteEvent(CMidiEvent event){ + m_noteCount++; + int trackNo = event.track(); + m_noteCountByTrack[trackNo]++; + int *noteFrequency = m_noteFrequencyByTrack[trackNo].data(); + int note = event.note(); + // count each note so we can guess the key signature + if (note >= 0 && note< MAX_MIDI_NOTES) { + (*(noteFrequency + note))++; + } + // If we have a note and no patch then default to grand piano patch + if (m_firstPatch == -1) { + m_firstPatch = GM_PIANO_PATCH; + } + } + + int noteCount() const {return m_noteCount;} + int active() {return m_noteCount >0;} + + void addPatch(int patch){ + if (m_firstPatch == -1) { + m_firstPatch = patch; + } + } + + int firstPatch() {return m_firstPatch;} + + QString trackInfo() { // ZZ not required + QString info = QString("No of tracks %1 : ").arg( QString::number(m_noteFrequencyByTrack.size()) ); + for (int i = 0; i < m_noteCountByTrack.size(); i++) { + info += QString(" track %1 note count %2 " ).arg(QString::number(i),QString::number(m_noteCountByTrack[i])); + } + return info; + } + + int trackCount() { + int acitveTracks = 0; + for (int track = 0; track < m_noteCountByTrack.size(); track++) { + if (m_noteCountByTrack[track] > 0) { + acitveTracks++; + } + } + return acitveTracks; + } + + int rightHandTrack() { + if (trackCount() <= 1) { + return -1; + } + double highestAveragePitch = 0.0; + int rightHAndTrack = 1; + for (int track = 0; track < m_noteCountByTrack.size(); track++) { + if (m_noteCountByTrack[track] > 0) { + double averagePitch = averageNotePitch(track); + if (averagePitch > highestAveragePitch ) { + highestAveragePitch = averagePitch; + rightHAndTrack = track; + } + } + } + return rightHAndTrack; + } + + double averageNotePitch(int trackNo) const { + int totalNoteCount = 0; + double sumOffAllPitches = 0.0; + int *noteFrequency = m_noteFrequencyByTrack[trackNo].data(); + + for (int note = 0; note < MAX_MIDI_NOTES; note++) { + int frequency = *(noteFrequency + note); + totalNoteCount += frequency; + sumOffAllPitches += frequency * note; + } + return sumOffAllPitches / totalNoteCount; + } + +private: + int m_noteCount; + int m_firstPatch = -1; + QVector> m_noteFrequencyByTrack; + QVector m_noteCountByTrack; + int m_noteFrequencyByChannel[MAX_MIDI_NOTES]; +}; + class CTrackListItem { public: - int midiChannel; + CTrackListItem(int midiChannel) : + m_midiChannel(midiChannel) + { + } + + int midiChannel() const {return m_midiChannel;} + +private: + int m_midiChannel; }; class CTrackList : public QObject @@ -57,13 +166,13 @@ Q_OBJECT { m_song = 0; m_settings = 0; - clear(); + reset(0); } void init(CSong* songObj, CSettings* settings); void refresh(); - void clear(); + void reset(int numberOfTracks); // Find an unused channel int findFreeChannel(int startChannel); @@ -104,11 +213,10 @@ Q_OBJECT CSong* m_song; CSettings* m_settings; - QList m_trackQtList; - bool m_midiActiveChannels[MAX_MIDI_CHANNELS]; - int m_midiFirstPatchChannels[MAX_MIDI_CHANNELS]; + QList m_partsList; + QVector m_midiChannels; int m_noteFrequency[MAX_MIDI_CHANNELS][MAX_MIDI_NOTES]; - float m_averagePitch[MAX_MIDI_CHANNELS]; + }; #endif //__TRACK_LIST_H__ From ef2d617c9ee45fa7f5231f43062484169c66fcae Mon Sep 17 00:00:00 2001 From: pianobooster Date: Thu, 28 May 2020 22:37:49 +0100 Subject: [PATCH 45/84] reads left and right hand parts if held in differnt tracks. --- .gitignore | 2 +- src/CMakeLists.txt | 2 +- src/Chord.h | 2 -- src/Conductor.cpp | 68 ++---------------------------------- src/Conductor.h | 13 +------ src/GlView.cpp | 14 +++++++- src/GlView.h | 5 ++- src/GuiMidiSetupDialog.cpp | 2 +- src/GuiSidePanel.cpp | 5 +-- src/MidiDevice.h | 7 ++++ src/MidiDeviceFluidSynth.cpp | 2 +- src/MidiDeviceFluidSynth.h | 2 ++ src/MidiEvent.h | 4 +-- src/MidiFile.cpp | 2 -- src/MidiTrack.cpp | 1 - src/QtWindow.cpp | 9 ++++- src/Score.cpp | 1 - src/StavePosition.h | 3 -- src/TrackList.cpp | 49 ++++++++++++++------------ src/TrackList.h | 8 ----- src/Util.cpp | 3 -- 21 files changed, 69 insertions(+), 135 deletions(-) diff --git a/.gitignore b/.gitignore index 6d3f6db8..7605cb23 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /build*/ /debug*/ /release*/ -CMakeLists.txt.user +CMakeLists.txt.user* diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8e4cf901..e74e4aa9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,6 +5,7 @@ if(WIN32) else() option(USE_FTGL "build with ftgl" ON) endif() +option(WITH_INTERNAL_FLUIDSYNTH "build with an internal FluidSynth sound generator" ON) option(USE_JACK "build with Jack (Only required for BSD Unix)" OFF) option(USE_SYSTEM_FONT "build with system font" OFF) if(${CMAKE_SYSTEM} MATCHES "Linux") @@ -12,7 +13,6 @@ if(${CMAKE_SYSTEM} MATCHES "Linux") else() option(USE_BUNDLED_RTMIDI "build with bundled rtmidi" ON) endif() -option(WITH_INTERNAL_FLUIDSYNTH "build with an internal FluidSynth sound generator" OFF) cmake_minimum_required(VERSION 2.4) if(COMMAND cmake_policy) diff --git a/src/Chord.h b/src/Chord.h index 21c03c57..12da6b78 100644 --- a/src/Chord.h +++ b/src/Chord.h @@ -42,7 +42,6 @@ typedef enum PB_PART_both = 200, // keep well clear of real midi channels PB_PART_right, PB_PART_left, - PB_PART_all, PB_PART_none, } whichPart_t; @@ -220,4 +219,3 @@ class CFindChord }; #endif // __CHORD_H__ - diff --git a/src/Conductor.cpp b/src/Conductor.cpp index ecde0226..d09d3c83 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -42,8 +42,6 @@ playMode_t CConductor::m_playMode = PB_PLAY_MODE_listen; CConductor::CConductor() { - int i; - m_scoreWin = nullptr; m_settings = nullptr; m_piano = nullptr; @@ -75,10 +73,6 @@ CConductor::CConductor() setPianoSoundPatches(1-1, 7-1); // 6-1 m_tempo.setSavedWantedChord(&m_savedWantedChord); - for ( i = 0; i < MAX_MIDI_CHANNELS; i++) - { - m_muteChannels[i] = false; - } reset(); rewind(); testWrongNoteSound(false); @@ -115,6 +109,7 @@ int CConductor::midiEventSpace() return m_songEventQueue->space(); } + void CConductor::channelSoundOff(int channel) { if (channel < 0 || channel >= MAX_MIDI_CHANNELS) @@ -130,11 +125,6 @@ void CConductor::channelSoundOff(int channel) playMidiEvent(midi); } -void CConductor::trackSoundOff(int trackNumber) -{ - channelSoundOff( track2Channel( trackNumber )); -} - void CConductor::allSoundOff() { int channel; @@ -160,35 +150,6 @@ void CConductor::resetAllChannels() } } -void CConductor::muteChannel(int channel, bool state) -{ - if (channel < 0 || channel >= MAX_MIDI_CHANNELS) - return; - - m_muteChannels[ channel] = state; - if (state == true) - trackSoundOff(channel); // fixme this is called too often -} - -void CConductor::mutePart(int part, bool state) -{ - int channel; - - if ( part < MAX_MIDI_CHANNELS) - { - muteChannel(part, state); - return; - } - - for ( channel = 0; channel < MAX_MIDI_CHANNELS; channel++) - { - muteChannel( channel, state); - } - - if (state == true) - trackSoundOff(channel); -} - /* calculate the new solo_volume */ int CConductor::calcBoostVolume(int channel, int volume) { @@ -280,27 +241,9 @@ void CConductor::transpose(int transpose) } } -void CConductor::activatePianistMutePart() -{ - mutePart(PB_PART_all, false); - if (shouldMutePianistPart()) - { - if (CNote::hasPianoPart(m_activeChannel)) - { - if (CNote::getActiveHand() == PB_PART_both || CNote::getActiveHand() == PB_PART_left) - mutePart(CNote::leftHandChan(), true); - if (CNote::getActiveHand() == PB_PART_both || CNote::getActiveHand() == PB_PART_right) - mutePart(CNote::rightHandChan(), true); - } - else - mutePart(m_activeChannel, true); - } -} - void CConductor::mutePianistPart(bool state) { m_mutePianistPart = state; - activatePianistMutePart(); } void CConductor::setActiveHand(whichPart_t hand) @@ -308,7 +251,6 @@ void CConductor::setActiveHand(whichPart_t hand) if (CNote::getActiveHand() == hand) return; CNote::setActiveHand(hand); - activatePianistMutePart(); outputBoostVolume(); m_wantedChord = m_savedWantedChord; @@ -338,7 +280,6 @@ void CConductor::setPlayMode(playMode_t mode) m_playMode = mode; if ( m_playMode == PB_PLAY_MODE_listen ) resetWantedChord(); - activatePianistMutePart(); outputBoostVolume(); m_piano->setRhythmTapping(m_playMode == PB_PLAY_MODE_rhythmTapping); } @@ -349,7 +290,6 @@ void CConductor::setActiveChannel(int channel) outputBoostVolume(); resetWantedChord(); fetchNextChord(); - activatePianistMutePart(); } void CConductor::outputPianoVolume() @@ -412,7 +352,6 @@ void CConductor::playMusic(bool start) if (start) { resetAllChannels(); - activatePianistMutePart(); testWrongNoteSound(false); outputBoostVolume(); @@ -435,6 +374,7 @@ void CConductor::playMusic(bool start) // This will allow us to map midi tracks onto midi channels // tacks will eventually allow for more than the 16 midi channels (eg with two mid devices) +// At the moment tracks are only used to remap midi events from channel 0 when using the keyboard lights. void CConductor::playTrackEvent(CMidiEvent event) { int track = event.channel(); @@ -1165,8 +1105,6 @@ void CConductor::rewind() void CConductor::init2(CScore * scoreWin, CSettings* settings) { - int channel; - m_scoreWin = scoreWin; m_settings = settings; setQSettings(settings); @@ -1175,8 +1113,6 @@ void CConductor::init2(CScore * scoreWin, CSettings* settings) m_followState = PB_FOLLOW_searching; this->CMidiDevice::init(); - for ( channel = 0; channel < MAX_MIDI_CHANNELS; channel++) - muteChannel(channel, false); assert(m_scoreWin); if (m_scoreWin) diff --git a/src/Conductor.h b/src/Conductor.h index 54b0a99f..d80a4781 100644 --- a/src/Conductor.h +++ b/src/Conductor.h @@ -115,8 +115,6 @@ class CConductor : public CMidiDevice } int getLatencyFix() { return m_latencyFix; } - void muteChannel(int channel, bool state); - void mutePart(int channel, bool state); void transpose(int transpose); int getTranspose() {return m_transpose;} @@ -217,7 +215,6 @@ class CConductor : public CMidiDevice eventBits_t m_realTimeEventBits; //used to signal real time events to the caller of task() void outputSavedNotes(); - void activatePianistMutePart(); void resetWantedChord(); void playWantedChord (CChord chord, CMidiEvent inputNote); @@ -236,7 +233,6 @@ class CConductor : public CMidiDevice void outputPianoVolume(); void channelSoundOff(int channel); - void trackSoundOff(int trackNumber); void findSplitPoint(); void fetchNextChord(); @@ -272,13 +268,6 @@ class CConductor : public CMidiDevice CQueue* m_savedNoteQueue; CQueue* m_savedNoteOffQueue; CMidiEvent m_nextMidiEvent; - bool m_muteChannels[MAX_MIDI_CHANNELS]; - bool isChannelMuted(int chan) - { - if (chan < 0 || chan >= MAX_MIDI_CHANNELS) - return true; - return m_muteChannels[chan]; - } void setFollowSkillAdvanced(bool enable); CPiano* m_piano; @@ -316,7 +305,7 @@ class CConductor : public CMidiDevice bool m_testWrongNoteSound; int m_boostVolume; int m_pianoVolume; - int m_activeChannel; // The current part that is being displayed (used for boost and activatePianistMutePart) + int m_activeChannel; // The current part that is being displayed (used for boost) int m_savedMainVolume[MAX_MIDI_CHANNELS]; static playMode_t m_playMode; int m_skill; diff --git a/src/GlView.cpp b/src/GlView.cpp index 3fcbbca5..fb06e5a7 100644 --- a/src/GlView.cpp +++ b/src/GlView.cpp @@ -54,6 +54,7 @@ CGLView::CGLView(QtWindow* parent, CSettings* settings) m_forcefullRedraw = 0; m_forceRatingRedraw = 0; m_forceBarRedraw = 0; + m_allowedTimerEvent = true; m_backgroundColor = QColor(0, 0, 0); @@ -67,7 +68,6 @@ CGLView::CGLView(QtWindow* parent, CSettings* settings) CGLView::~CGLView() { - makeCurrent(); delete m_song; delete m_score; m_titleHeight = 0; @@ -83,6 +83,16 @@ QSize CGLView::sizeHint() const return QSize(200, 800); //fixme this does not work } +void CGLView::stopTimerEvent() +{ + m_allowedTimerEvent=false; +} + +void CGLView::startTimerEvent() +{ + m_allowedTimerEvent=true; +} + void CGLView::paintGL() { BENCHMARK(2, "enter"); @@ -369,6 +379,8 @@ void CGLView::updateMidiTask() void CGLView::timerEvent(QTimerEvent *event) { + if (!m_allowedTimerEvent) return; + BENCHMARK(0, "timer enter"); if (event->timerId() != m_timer.timerId()) { diff --git a/src/GlView.h b/src/GlView.h index 5c98b3ad..f308c7ff 100644 --- a/src/GlView.h +++ b/src/GlView.h @@ -51,6 +51,9 @@ class CGLView : public QGLWidget//, RtTimer CScore* getScoreObject() {return m_score;} int m_cfg_openGlOptimise; + void stopTimerEvent(); + void startTimerEvent(); + protected: void timerEvent(QTimerEvent *event); void mediaTimerEvent(int ticks); @@ -89,7 +92,7 @@ class CGLView : public QGLWidget//, RtTimer int m_forceBarRedraw; int m_titleHeight; eventBits_t m_eventBits; - + bool m_allowedTimerEvent; }; #endif // __GLVIEW_H__ diff --git a/src/GuiMidiSetupDialog.cpp b/src/GuiMidiSetupDialog.cpp index 77410a7a..f617c458 100644 --- a/src/GuiMidiSetupDialog.cpp +++ b/src/GuiMidiSetupDialog.cpp @@ -61,7 +61,7 @@ void GuiMidiSetupDialog::init(CSong* song, CSettings* settings) refreshMidiInputCombo(); refreshMidiOutputCombo(); - masterGainSpin->setValue(40); + masterGainSpin->setValue(FLUID_DEFAULT_GAIN); reverbCheck->setChecked(false); chorusCheck->setChecked(false); diff --git a/src/GuiSidePanel.cpp b/src/GuiSidePanel.cpp index 4a7275ea..0f6ecf17 100644 --- a/src/GuiSidePanel.cpp +++ b/src/GuiSidePanel.cpp @@ -185,14 +185,11 @@ void GuiSidePanel::on_leftHandRadio_toggled (bool checked) void GuiSidePanel::on_repeatSong_released(){ m_settings->setValue("SidePanel/repeatSong",repeatSong->isChecked()); - } void GuiSidePanel::autoSetMuteYourPart() { - bool checked = false; - if ( CNote::hasPianoPart(m_song->getActiveChannel())) - checked = true; + bool checked = true; if (m_song->getPlayMode() == PB_PLAY_MODE_rhythmTapping) { if (m_song->cfg_rhythmTapping == PB_RHYTHM_TAP_drumsOnly) diff --git a/src/MidiDevice.h b/src/MidiDevice.h index 9e5d3754..8c720c80 100644 --- a/src/MidiDevice.h +++ b/src/MidiDevice.h @@ -63,6 +63,13 @@ class CMidiDevice : public CMidiDeviceBase virtual double midiSettingsGetNum(QString name); virtual int midiSettingsGetInt(QString name); + void flushMidiInput() + { + while (checkMidiInput() > 0) { + readMidiInput(); + } + } + private: CMidiDeviceBase* m_rtMidiDevice; #if WITH_INTERNAL_FLUIDSYNTH diff --git a/src/MidiDeviceFluidSynth.cpp b/src/MidiDeviceFluidSynth.cpp index bd19677a..a18784dd 100644 --- a/src/MidiDeviceFluidSynth.cpp +++ b/src/MidiDeviceFluidSynth.cpp @@ -111,7 +111,7 @@ bool CMidiDeviceFluidSynth::openMidiPort(midiType_t type, QString portName) { fluid_synth_program_change(m_synth, channel, GM_PIANO_PATCH); } - fluid_synth_set_gain(m_synth, qsettings->value("FluidSynth/masterGainSpin", 80).toFloat()/100.0f ); + fluid_synth_set_gain(m_synth, qsettings->value("FluidSynth/masterGainSpin", FLUID_DEFAULT_GAIN).toFloat()/100.0f ); m_validConnection = true; return true; } diff --git a/src/MidiDeviceFluidSynth.h b/src/MidiDeviceFluidSynth.h index b66dd0d6..613bbbe1 100644 --- a/src/MidiDeviceFluidSynth.h +++ b/src/MidiDeviceFluidSynth.h @@ -33,6 +33,8 @@ #include +#define FLUID_DEFAULT_GAIN 80 + class CMidiDeviceFluidSynth : public CMidiDeviceBase { virtual void init(); diff --git a/src/MidiEvent.h b/src/MidiEvent.h index 78f83606..0c26081f 100644 --- a/src/MidiEvent.h +++ b/src/MidiEvent.h @@ -29,7 +29,6 @@ #ifndef __MIDI_EVENT_H__ #define __MIDI_EVENT_H__ -#include #include #include "Util.h" @@ -236,14 +235,13 @@ class CMidiEvent //@brief how long the midi note was played for long getDuration(){return m_duration;} - /** * This merges two MidiEvents (this and the other MidiEvent) * The MidiEvent that happens first (has the lowest delta time) * then a COPY of that MidiEvent is returned. * The original is then cleared so that it type is set to MIDI_NONE * The MidiEvent that happens second will have it delta time reduced - * using the delta time form the first MidiEvent. + * using the delta time from the first MidiEvent. * NOTE Both this and the otherMidiEvent will be altered when call this method. */ CMidiEvent getNextMergedEvent(CMidiEvent &otherMidiEvent) diff --git a/src/MidiFile.cpp b/src/MidiFile.cpp index 4b724a06..3daf2a13 100644 --- a/src/MidiFile.cpp +++ b/src/MidiFile.cpp @@ -18,8 +18,6 @@ You should have received a copy of the GNU General Public License along with PianoBooster. If not, see . */ -#include -#include #include #include "MidiFile.h" diff --git a/src/MidiTrack.cpp b/src/MidiTrack.cpp index 425b5e72..d56e8b80 100644 --- a/src/MidiTrack.cpp +++ b/src/MidiTrack.cpp @@ -26,7 +26,6 @@ */ /*********************************************************************************/ -#include #include "MidiTrack.h" #include "Util.h" #include "StavePosition.h" diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index dfed9fde..6bfbbf30 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -457,9 +457,12 @@ void QtWindow::showMidiSetup(){ m_topBar->stopMuiscPlaying(); + m_glWidget->stopTimerEvent(); GuiMidiSetupDialog midiSetupDialog(this); midiSetupDialog.init(m_song, m_settings); midiSetupDialog.exec(); + m_song->flushMidiInput(); + m_glWidget->startTimerEvent(); } // load the recent file list from the config file into the file menu @@ -633,6 +636,8 @@ void QtWindow::keyboardShortcuts() void QtWindow::open() { + m_glWidget->stopTimerEvent(); + QFileInfo currentSong = m_settings->getCurrentSongLongFileName(); QString dir; @@ -641,13 +646,15 @@ void QtWindow::open() else dir = QDir::homePath(); - QString fileName = QFileDialog::getOpenFileName(this, tr("Open Midi File"), + QString fileName = QFileDialog::getOpenFileName(this,tr("Open Midi File"), dir, tr("Midi Files") + " (*.mid *.MID *.midi *.MIDI *.kar *.KAR)"); if (!fileName.isEmpty()) { m_settings->openSongFile(fileName); setCurrentFile(fileName); } + m_song->flushMidiInput(); + m_glWidget->startTimerEvent(); } void QtWindow::readSettings() diff --git a/src/Score.cpp b/src/Score.cpp index 69298b13..283f22d7 100644 --- a/src/Score.cpp +++ b/src/Score.cpp @@ -26,7 +26,6 @@ */ /*********************************************************************************/ -#include #include "Cfg.h" #include "Draw.h" #include "Score.h" diff --git a/src/StavePosition.h b/src/StavePosition.h index db4a2b5d..c6225fe1 100644 --- a/src/StavePosition.h +++ b/src/StavePosition.h @@ -32,9 +32,6 @@ #include "Util.h" #include "Chord.h" -#include -#include - typedef struct { int pianoNote; // 1 is Middle C, 2 is D int accidental; diff --git a/src/TrackList.cpp b/src/TrackList.cpp index 6d2f8739..c6c26a03 100644 --- a/src/TrackList.cpp +++ b/src/TrackList.cpp @@ -85,16 +85,14 @@ void CTrackList::examineMidiEvent(CMidiEvent event) // Returns true if there is a piano part on channels 3 & 4 bool CTrackList::pianoPartConvetionTest() { - if (m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL].firstPatch() == GM_PIANO_PATCH && - m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL].active() && - m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL].firstPatch() <= GM_PIANO_PATCH) - return true; - - if (m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL].firstPatch() == GM_PIANO_PATCH && - m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL].active() && - m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL].firstPatch() <= GM_PIANO_PATCH) + AnalyseItem left = m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL]; + AnalyseItem right = m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL]; + if (left.active() && right.active()) { + if (left.firstPatch() == right.firstPatch() && isPianoOrOrganPatch(left.firstPatch())) { + CNote::setChannelHands(CONVENTION_LEFT_HAND_CHANNEL, CONVENTION_RIGHT_HAND_CHANNEL); return true; - + } + } return false; } @@ -186,12 +184,6 @@ int CTrackList::guessKeySignature(int chanA, int chanB) highScore = score; keySignature = keyLookUp[i].key; } - /* - printf("key %2d score %3d :: ", keyLookUp[i].key, score); - for (int j=0; j < MIDI_OCTAVE; j++) - printf(" %d", scale[(keyLookUp[i].offset + j)%MIDI_OCTAVE]); - printf("\n"); - */ } return keySignature; } @@ -226,21 +218,33 @@ void CTrackList::refresh() rowCount++; } } - if (pianoPartConvetionTest()) - { - if (CNote::bothHandsChan() == -2 ) // -2 for not set -1 for not used - CNote::setChannelHands(CONVENTION_LEFT_HAND_CHANNEL, CONVENTION_RIGHT_HAND_CHANNEL); + + if (CNote::bothHandsChan() != -2 ) { // -2 for not set -1 for not used + m_song->setActiveChannel(CNote::bothHandsChan()); + } else if (pianoPartConvetionTest()) { m_song->setActiveChannel(CNote::bothHandsChan()); ppLogInfo("Active both"); } else if (findLeftAndRightPianoParts()) { m_song->setActiveChannel(CNote::bothHandsChan()); + } else { + if (m_partsList.count() > 0) { + // for the case when there is no piano or organ patch + m_song->setActiveChannel(m_partsList[0].midiChannel()); + } } - else + + for (int chan = 0; chan < MAX_MIDI_CHANNELS; chan++) { - if (m_partsList.count() > 0) + AnalyseItem item = m_midiChannels[chan]; + if (item.active()) { - m_song->setActiveChannel(m_partsList[0].midiChannel()); + if (item.firstPatch() == GM_PIANO_PATCH) { + // For those midi files that do not include ANY patch we want to set it piano + CMidiEvent midi; + midi.programChangeEvent(0, chan, GM_PIANO_PATCH); + m_song->playMidiEvent(midi); + } } } @@ -264,7 +268,6 @@ void CTrackList::refresh() m_song->mapTrack2Channel(Cfg::keyboardLightsChan, spareChan); for (int chan = 0; chan < MAX_MIDI_CHANNELS; chan++) { AnalyseItem item = m_midiChannels[chan]; - ppLogInfo("ZZ track notes %d tracks %s", item.noteCount(), qPrintable(item.trackInfo())); CNote::setRightHandTrack(chan, item.rightHandTrack()); } } diff --git a/src/TrackList.h b/src/TrackList.h index 7407bae0..fd0a1fa7 100644 --- a/src/TrackList.h +++ b/src/TrackList.h @@ -87,14 +87,6 @@ class AnalyseItem int firstPatch() {return m_firstPatch;} - QString trackInfo() { // ZZ not required - QString info = QString("No of tracks %1 : ").arg( QString::number(m_noteFrequencyByTrack.size()) ); - for (int i = 0; i < m_noteCountByTrack.size(); i++) { - info += QString(" track %1 note count %2 " ).arg(QString::number(i),QString::number(m_noteCountByTrack[i])); - } - return info; - } - int trackCount() { int acitveTracks = 0; for (int track = 0; track < m_noteCountByTrack.size(); track++) { diff --git a/src/Util.cpp b/src/Util.cpp index aeb80a7b..5cad15fb 100644 --- a/src/Util.cpp +++ b/src/Util.cpp @@ -26,9 +26,6 @@ */ /*********************************************************************************/ -#include -#include -#include #include #include #include From 4435be5ba5aa79badc1f5e94d7ec78b289af21fa Mon Sep 17 00:00:00 2001 From: pianobooster Date: Thu, 28 May 2020 22:40:19 +0100 Subject: [PATCH 46/84] run lupdate on the translations, but no new text needing translated. --- translations/pianobooster_af.ts | 487 +++++++++++++------------ translations/pianobooster_am.ts | 487 +++++++++++++------------ translations/pianobooster_ar.ts | 487 +++++++++++++------------ translations/pianobooster_as.ts | 487 +++++++++++++------------ translations/pianobooster_az.ts | 487 +++++++++++++------------ translations/pianobooster_be.ts | 487 +++++++++++++------------ translations/pianobooster_bg.ts | 487 +++++++++++++------------ translations/pianobooster_blank.ts | 487 +++++++++++++------------ translations/pianobooster_bn.ts | 487 +++++++++++++------------ translations/pianobooster_br.ts | 489 +++++++++++++------------ translations/pianobooster_bs.ts | 487 +++++++++++++------------ translations/pianobooster_bs_BA.ts | 487 +++++++++++++------------ translations/pianobooster_ca.ts | 487 +++++++++++++------------ translations/pianobooster_cs.ts | 487 +++++++++++++------------ translations/pianobooster_cy.ts | 487 +++++++++++++------------ translations/pianobooster_da.ts | 487 +++++++++++++------------ translations/pianobooster_de.ts | 487 +++++++++++++------------ translations/pianobooster_dz.ts | 487 +++++++++++++------------ translations/pianobooster_el.ts | 487 +++++++++++++------------ translations/pianobooster_eo.ts | 487 +++++++++++++------------ translations/pianobooster_es.ts | 487 +++++++++++++------------ translations/pianobooster_et.ts | 487 +++++++++++++------------ translations/pianobooster_eu.ts | 487 +++++++++++++------------ translations/pianobooster_fa.ts | 487 +++++++++++++------------ translations/pianobooster_fi.ts | 487 +++++++++++++------------ translations/pianobooster_fo.ts | 487 +++++++++++++------------ translations/pianobooster_fr.ts | 487 +++++++++++++------------ translations/pianobooster_fur.ts | 487 +++++++++++++------------ translations/pianobooster_fy.ts | 487 +++++++++++++------------ translations/pianobooster_ga.ts | 487 +++++++++++++------------ translations/pianobooster_gd.ts | 487 +++++++++++++------------ translations/pianobooster_gl.ts | 487 +++++++++++++------------ translations/pianobooster_gu.ts | 487 +++++++++++++------------ translations/pianobooster_he.ts | 487 +++++++++++++------------ translations/pianobooster_hi.ts | 487 +++++++++++++------------ translations/pianobooster_hr.ts | 507 +++++++++++++------------- translations/pianobooster_hu.ts | 487 +++++++++++++------------ translations/pianobooster_hy.ts | 487 +++++++++++++------------ translations/pianobooster_id.ts | 487 +++++++++++++------------ translations/pianobooster_is.ts | 487 +++++++++++++------------ translations/pianobooster_it.ts | 487 +++++++++++++------------ translations/pianobooster_ja.ts | 487 +++++++++++++------------ translations/pianobooster_ka.ts | 487 +++++++++++++------------ translations/pianobooster_kk.ts | 487 +++++++++++++------------ translations/pianobooster_kn.ts | 487 +++++++++++++------------ translations/pianobooster_ko.ts | 487 +++++++++++++------------ translations/pianobooster_ks.ts | 487 +++++++++++++------------ translations/pianobooster_ku.ts | 487 +++++++++++++------------ translations/pianobooster_lt.ts | 487 +++++++++++++------------ translations/pianobooster_lv.ts | 487 +++++++++++++------------ translations/pianobooster_mg.ts | 487 +++++++++++++------------ translations/pianobooster_mi.ts | 487 +++++++++++++------------ translations/pianobooster_ml.ts | 487 +++++++++++++------------ translations/pianobooster_mn.ts | 487 +++++++++++++------------ translations/pianobooster_mr.ts | 487 +++++++++++++------------ translations/pianobooster_ms.ts | 487 +++++++++++++------------ translations/pianobooster_my.ts | 487 +++++++++++++------------ translations/pianobooster_nb.ts | 487 +++++++++++++------------ translations/pianobooster_ne.ts | 487 +++++++++++++------------ translations/pianobooster_nl.ts | 487 +++++++++++++------------ translations/pianobooster_nn.ts | 487 +++++++++++++------------ translations/pianobooster_oc.ts | 487 +++++++++++++------------ translations/pianobooster_or.ts | 487 +++++++++++++------------ translations/pianobooster_pa.ts | 487 +++++++++++++------------ translations/pianobooster_pl.ts | 487 +++++++++++++------------ translations/pianobooster_ps.ts | 487 +++++++++++++------------ translations/pianobooster_pt.ts | 487 +++++++++++++------------ translations/pianobooster_pt_BR.ts | 487 +++++++++++++------------ translations/pianobooster_ro.ts | 487 +++++++++++++------------ translations/pianobooster_ru.ts | 487 +++++++++++++------------ translations/pianobooster_se.ts | 487 +++++++++++++------------ translations/pianobooster_si.ts | 487 +++++++++++++------------ translations/pianobooster_sk.ts | 487 +++++++++++++------------ translations/pianobooster_sl.ts | 487 +++++++++++++------------ translations/pianobooster_sq.ts | 487 +++++++++++++------------ translations/pianobooster_sr.ts | 487 +++++++++++++------------ translations/pianobooster_sr@latin.ts | 487 +++++++++++++------------ translations/pianobooster_sv.ts | 505 ++++++++++++------------- translations/pianobooster_ta.ts | 487 +++++++++++++------------ translations/pianobooster_te.ts | 487 +++++++++++++------------ translations/pianobooster_tg.ts | 487 +++++++++++++------------ translations/pianobooster_th.ts | 487 +++++++++++++------------ translations/pianobooster_tr.ts | 487 +++++++++++++------------ translations/pianobooster_tt.ts | 487 +++++++++++++------------ translations/pianobooster_uk.ts | 487 +++++++++++++------------ translations/pianobooster_uz.ts | 487 +++++++++++++------------ translations/pianobooster_vi.ts | 487 +++++++++++++------------ translations/pianobooster_wa.ts | 487 +++++++++++++------------ translations/pianobooster_xh.ts | 487 +++++++++++++------------ translations/pianobooster_zh.ts | 487 +++++++++++++------------ translations/pianobooster_zh_HK.ts | 487 +++++++++++++------------ 91 files changed, 22315 insertions(+), 22042 deletions(-) diff --git a/translations/pianobooster_af.ts b/translations/pianobooster_af.ts index c68b5234..96aa8990 100644 --- a/translations/pianobooster_af.ts +++ b/translations/pianobooster_af.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Geen + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano Vleuelklavier - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Klawesimbel - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone Vibrafoon - + Marimba - + Xylophone Xilofoon - + Tubular Bells - + Dulcimer Dulsimer - + Drawbar Organ - + Percussive Organ Perkussiewe orrel - + Rock Organ - + Church Organ - + Reed Organ Harmonium - + Accordion Trekklavier - + Harmonica Mondfluitjie - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akoestiese bas - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Viool - + Viola Altviool - + Cello - + Contrabass Kontrabas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Pouke (timpani) - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trompet - + Trombone Tromboon - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Hobo - + English Horn Cor anglais - + Bassoon Fagot - + Clarinet Klarinet - + Piccolo - + Flute Fluit - + Recorder Blokfluit - + Pan Flute Panfluit - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Staaltromme - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Onbekend @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... Maak oop... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About Aangaande - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Instellings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File Lêer - + &View Besigtig - + &Song - + Set&up - - + + &Help Hulp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI-lêers - - - None - Geen - diff --git a/translations/pianobooster_am.ts b/translations/pianobooster_am.ts index 553be7ad..adafe6b2 100644 --- a/translations/pianobooster_am.ts +++ b/translations/pianobooster_am.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ምንም + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &ስለ - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &ምርጫዎች ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &ፋይል - + &View &ተመልከት - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ምንም - diff --git a/translations/pianobooster_ar.ts b/translations/pianobooster_ar.ts index 4583cbce..e0205d5a 100644 --- a/translations/pianobooster_ar.ts +++ b/translations/pianobooster_ar.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + لا شيء + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (لا يوجد) - + Grand Piano بيانو كبير - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord هاربسيكورد - + Clavi - + Celesta سيليستا - + Glockenspiel غلوكنسبيل - + Music Box - + Vibraphone فيبرافون - + Marimba ماريمبا - + Xylophone زايلوفون - + Tubular Bells - + Dulcimer دلسيمر - + Drawbar Organ - + Percussive Organ أورغان إيقاعي - + Rock Organ - + Church Organ - + Reed Organ أورغان خشبي - + Accordion أكورديون - + Harmonica هارمونيكا - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass بيس خشبي - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin كمان - + Viola فيولا - + Cello - + Contrabass كونترابيس - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani تيمباني - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet ترمبيت - + Trombone ترومبون - + Tuba تيوبا - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe أوبوا - + English Horn هورن إنجليزي - + Bassoon باسون - + Clarinet كلارنيت - + Piccolo بيكولو - + Flute فلوت - + Recorder ريكوردر - + Pan Flute بان فلوت - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina أوكارينا - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar سيتار - + Banjo بانجو - + Shamisen شاميسين - + Koto كوتو - + Kalimba كاليمبا - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums طبول معدنية - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ ري دييز - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown مجهول @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... ا&فتح ... - + Ctrl+O - + Open an existing file افتح الملف المحدد - + E&xit - + Ctrl+Q - + Exit the application - + &About &حوْل - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &التفضيلات ... - + Settings اعدادات - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &ملف - + &View &أعرض - + &Song - + Set&up - - + + &Help &مساعدة - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files ملفات الميدي - - - None - لا شيء - diff --git a/translations/pianobooster_as.ts b/translations/pianobooster_as.ts index 5f50f9b7..78ce05e3 100644 --- a/translations/pianobooster_as.ts +++ b/translations/pianobooster_as.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + শূণ্য + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown অজ্ঞাত @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About পৰিচিতি - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings পটভুমি - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View দৰ্শন - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - শূণ্য - diff --git a/translations/pianobooster_az.ts b/translations/pianobooster_az.ts index d31b8c75..d2465e14 100644 --- a/translations/pianobooster_az.ts +++ b/translations/pianobooster_az.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Yoxdur + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Namə'lum @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Aç... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Haqqında - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fayl - + &View &Görünüş - + &Song - + Set&up - - + + &Help &Yardım - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Yoxdur - diff --git a/translations/pianobooster_be.ts b/translations/pianobooster_be.ts index d25a6f28..fd58c904 100644 --- a/translations/pianobooster_be.ts +++ b/translations/pianobooster_be.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Няма + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Невядомае @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Адкрыць... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Аб праграме - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Настаўленні - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Выгляд - + &Song - + Set&up - - + + &Help &Дапамога - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Няма - diff --git a/translations/pianobooster_bg.ts b/translations/pianobooster_bg.ts index bc321449..350b129f 100644 --- a/translations/pianobooster_bg.ts +++ b/translations/pianobooster_bg.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Без + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute Флейта - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Непознат @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Отваряне... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Относно - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Настройки - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Изглед - + &Song &Песен - + Set&up - - + + &Help Помо&щ - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Без - diff --git a/translations/pianobooster_blank.ts b/translations/pianobooster_blank.ts index ff608881..026e450a 100644 --- a/translations/pianobooster_blank.ts +++ b/translations/pianobooster_blank.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + Ctrl+D - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - - diff --git a/translations/pianobooster_bn.ts b/translations/pianobooster_bn.ts index f2edb42f..abab0524 100644 --- a/translations/pianobooster_bn.ts +++ b/translations/pianobooster_bn.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ফাঁকা + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown অজ্ঞাত @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... খোলো (&খ)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &পরিচিতি - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &পছন্দগুলি ... - + Settings বৈশিষ্ট্যাবলী - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File ফা&ইল - + &View প্রদর্শ&ন - + &Song - + Set&up - - + + &Help &সহায়তা - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ফাঁকা - diff --git a/translations/pianobooster_br.ts b/translations/pianobooster_br.ts index 3c108c1c..5d502d4d 100644 --- a/translations/pianobooster_br.ts +++ b/translations/pianobooster_br.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Hini ebet + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1331,7 +1339,7 @@ Key: - Alc'hwez : + Alc'hwez : @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Dianav @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Diwar-benn - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Arventennoù - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Restr - + &View G&welout - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Hini ebet - diff --git a/translations/pianobooster_bs.ts b/translations/pianobooster_bs.ts index 992929f6..6f31174b 100644 --- a/translations/pianobooster_bs.ts +++ b/translations/pianobooster_bs.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ништа + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Отвори... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About О прогр&аму - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Поставке - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Датотека - + &View По&глед - + &Song - + Set&up - - + + &Help П&омоћ - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Ништа - diff --git a/translations/pianobooster_bs_BA.ts b/translations/pianobooster_bs_BA.ts index 8c8c2e7f..b39d1ac6 100644 --- a/translations/pianobooster_bs_BA.ts +++ b/translations/pianobooster_bs_BA.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ništa + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Otvori... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About O progr&amu - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Postavke - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Datoteka - + &View Po&gled - + &Song - + Set&up - - + + &Help P&omoć - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Ništa - diff --git a/translations/pianobooster_ca.ts b/translations/pianobooster_ca.ts index e7a1bcae..13c7a77c 100644 --- a/translations/pianobooster_ca.ts +++ b/translations/pianobooster_ca.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Cap + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Ajustar: - + Song: Cançó: - + Bar: Compàs: @@ -78,647 +86,647 @@ CTrackList - + (None) (Cap) - + Grand Piano Piano de cua - + Bright Piano Piano brillant - + Electric Grand Piano de cua elèctric - + Honky-tonk Piano Piano Honky-tonk - + Electric Piano 1 Piano elèctric 1 - + Electric Piano 2 Piano elèctric 2 - + Harpsichord Clavicèmbal - + Clavi Clave - + Celesta Celesta - + Glockenspiel Glockenspiel - + Music Box Caixa de música - + Vibraphone Vibràfon - + Marimba Marimba - + Xylophone Xilòfon - + Tubular Bells Campanes tubulars - + Dulcimer - + Drawbar Organ - + Percussive Organ Orgue de percussió - + Rock Organ Orgue de rock - + Church Organ Orgue d'església - + Reed Organ - + Accordion Acordió - + Harmonica Harmònica - + Tango Accordion Acordió de tango - + Acoustic Guitar (nylon) Guitarra acústica (niló) - + Acoustic Guitar (steel) Guitarra acústica (metall) - + Electric Guitar (jazz) Guitarra elèctrica (jazz) - + Electric Guitar (clean) Guitarra elèctrica (pura) - + Electric Guitar (muted) Guitarra elèctrica (silenciada) - + Overdriven Guitar - + Distortion Guitar Guitarra amb distorsió - + Guitar harmonics Harmònics de guitarra - + Acoustic Bass Baix acústic - + Electric Bass (finger) - + Electric Bass (pick) Baix elèctric (pua) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 Baix sintetitzat 1 - + Synth Bass 2 Baix sintetitzat 2 - + Violin Violí - + Viola - + Cello - + Contrabass Contrabaix - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 Conjunt de corda 1 - + String Ensemble 2 Conjunt de corda 2 - + SynthStrings 1 Cordes sintetitzades 1 - + SynthStrings 2 Cordes sintetitzades 2 - + Choir Aahs - + Voice Oohs - + Synth Voice Veu sintetitzada - + Orchestra Hit - + Trumpet Trompeta - + Trombone Trombó - + Tuba - + Muted Trumpet Trompeta amb sordina - + French Horn Corn francès - + Brass Section Secció de vents - + SynthBrass 1 Vents sintetitzats 1 - + SynthBrass 2 Vents sintetitzats 2 - + Soprano Sax Saxo soprano - + Alto Sax Saxo alt - + Tenor Sax Saxo tenor - + Baritone Sax Saxo baríton - + Oboe Oboè - + English Horn Corn anglès - + Bassoon - + Clarinet - + Piccolo - + Flute Flauta - + Recorder Enregistrador - + Pan Flute Flauta de Pan - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) FX 1 (pluja) - + FX 2 (soundtrack) FX 2 (banda sonora) - + FX 3 (crystal) FX 3 (vidre) - + FX 4 (atmosphere) FX 4 (atmòsfera) - + FX 5 (brightness) FX 5 (lluminositat) - + FX 6 (goblins) - + FX 7 (echoes) FX 7 (ecos) - + FX 8 (sci-fi) FX 8 (ciència ficció) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe Gaita - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Percussió de metall - + Woodblock Bloc de fusta - + Taiko Drum - + Melodic Tom - + Synth Drum Percussió sintetitzada - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise Soroll de respiració - + Seashore Costa - + Bird Tweet Cant d'ocell - + Telephone Ring Trucada de telèfon - + Helicopter Helicòpter - + Applause Aplaudiments - + Gunshot Dispar de pistola @@ -1219,13 +1227,13 @@ - + Drums Bateria - + Melody Melodia @@ -1319,7 +1327,7 @@ - + Start and stop playing music Començar i aturar la reproducció de música @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning Reproduir la música des del principi @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Error en l'arxiu Midi - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums Bateria - + Unknown Desconegut @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Error de l'arxiu Midi PianoBooster - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Obre... - + Ctrl+O Ctrl+O - + Open an existing file Obrir un fitxer existent - + E&xit Su&rt - + Ctrl+Q Ctrl+Q - + Exit the application Sortir de l'aplicació - + &About &Sobre - + Show the application's About box Mostrar la caixa Sobre de l'aplicació - + &PC Shortcut Keys - + The PC Keyboard shortcut keys Dreceres de teclat del PC - + &Midi Setup ... &Paràmetres de Midi… - + Ctrl+S Ctrl+S - + Setup the Midi input and output Configuració de l'entrada i la sortida Midi - + Piano &Keyboard Setting ... Paràmetres del teclat de piano... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Canviar els paràmetres de teclat del piano - + &Fullscreen &Pantalla completa - + Fullscreen mode - + F11 F11 - + &Show the Side Panel &Mostrar el panell lateral - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferències… - + Settings Configuració - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fitxer - + &View &Visualitza - + &Song Cançó: - + Set&up - - + + &Help &Ajuda - - + + Piano Booster Help Ajuda de Piano Booster - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Sobre Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Versió %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Milloreu</b> les vostres habilitats al <b>Piano>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Copyright(c) L. J. Barman, 2008-2013; Tots els drets reservats.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; Tots els drets reservats.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Aquest programari s'ha publicat seguint les condicions de la General Public Licence GNU versió 3 tal com s'ha publicat per la Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Aquest programari també conté TrMIDI: classes C++ d'entrada/sortida de MIDI en temps real<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; Tots els drets reservats. - + space espai - + PC Keyboard ShortCuts Dreceres de teclat del teclat del PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Acció</th><th>Tecla</th></tr> - + Choose the right hand Escolliu la mà dreta - + Choose both hands Escollir les dues mans - + Choose the left Hand Escollir la mà esquerra - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% Incrementar la velocitat en un 5% - + Change to the Next Song Canviar a la propera cançó - + Change to the Previous Song Change a la cançó anterior - + Change to the Next Book Canviar al següent llibre - + Change to the Previous Book Canviar al llibre anterior - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Tecles del piano fals</td><td>X és el C3</td></tr></table> </center><br> - + Open Midi File Obrir un arxiu Midi - + Midi Files Arxius Midi - - - None - Cap - diff --git a/translations/pianobooster_cs.ts b/translations/pianobooster_cs.ts index 37f1c7fb..0caa3c91 100644 --- a/translations/pianobooster_cs.ts +++ b/translations/pianobooster_cs.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Přesnost: - + Song: Píseň: - + Bar: Takt: @@ -78,647 +86,647 @@ CTrackList - + (None) (Žádný) - + Grand Piano Koncertní křídlo - + Bright Piano Zvučný klavír - + Electric Grand Elektrické koncertní křídlo - + Honky-tonk Piano Honky-tonk piano - + Electric Piano 1 Elektrický klavír 1 - + Electric Piano 2 Elektrický klavír 2 - + Harpsichord Cembalo - + Clavi Clavichord - + Celesta Celesta - + Glockenspiel Zvonkohra - + Music Box Hrací skříňka - + Vibraphone Vibrafon - + Marimba Marimba - + Xylophone Xylofon - + Tubular Bells Koncertní zvony - + Dulcimer Dulcimer (citera) - + Drawbar Organ Natahovací varhany - + Percussive Organ Perkusivní varhany - + Rock Organ Rockové varhany - + Church Organ Kostelní varhany - + Reed Organ Jazýčkové varhany - + Accordion Akordeon - + Harmonica Harmonika - + Tango Accordion Tango harmonika (akordeon) - + Acoustic Guitar (nylon) Akustická kytara (nylonové struny) - + Acoustic Guitar (steel) Akustická kytara (kovové struny) - + Electric Guitar (jazz) Elektrická kytara (jazzová) - + Electric Guitar (clean) Elektrická kytara (pravá) - + Electric Guitar (muted) Elektrická kytara (tlumená) - + Overdriven Guitar Přebuzená elektrická kytara - + Distortion Guitar Zkreslená elektrická kytara - + Guitar harmonics Elektrická kytara - flažolety - + Acoustic Bass Kontrabas (prsty - pizzicato) - + Electric Bass (finger) Elektrická baskytara (prsty) - + Electric Bass (pick) Elektrická baskytara (trsátkem) - + Fretless Bass Bezpražcová baskytara - + Slap Bass 1 Slap baskytara 1 - + Slap Bass 2 Slap baskytara 2 - + Synth Bass 1 Syntetizátorová baskytara 1 - + Synth Bass 2 Syntetizátorová baskytara 2 - + Violin Housle - + Viola Viola - + Cello Violoncello - + Contrabass Kontrabas - + Tremolo Strings Smyčce tremolo - + Pizzicato Strings Smyčce pizzicato - + Orchestral Harp Orchestrální harfa - + Timpani Kotle - + String Ensemble 1 Smyčcový sbor rychlý 1 - + String Ensemble 2 Smyčcový sbor pomalý 2 - + SynthStrings 1 Syntetické smyčce 1 - + SynthStrings 2 Syntetické smyčce 2 - + Choir Aahs Sborový vokál A - + Voice Oohs Hlas O - + Synth Voice Syntetický hlas - + Orchestra Hit Orchestrální akcent - + Trumpet Trubka - + Trombone Pozoun - + Tuba Tuba - + Muted Trumpet Trumpeta s dusítkem - + French Horn Lesní roh - + Brass Section Žesťová sekce - + SynthBrass 1 Syntetické žestě 1 - + SynthBrass 2 Syntetické žestě 2 - + Soprano Sax Sopránový saxofon - + Alto Sax Altový saxofon - + Tenor Sax Tenorový saxofon - + Baritone Sax Barytonový saxofon - + Oboe Hoboj - + English Horn Anglický roh - + Bassoon Fagot - + Clarinet Klarinet - + Piccolo Pikola - + Flute Flétna - + Recorder Zobcová flétna - + Pan Flute Syrinx (Panova flétna) - + Blown Bottle Foukání přes láhev - + Shakuhachi Šakuhači - + Whistle Píšťalka - + Ocarina Okarína - + Lead 1 (square) Syntetické sólo 1 (obdélník) - + Lead 2 (sawtooth) Syntetické sólo 2 (pila) - + Lead 3 (calliope) Syntetické sólo 3 (calliope - parní varhany) - + Lead 4 (chiff) Syntetické sólo 4 (chiff, se vzduchem) - + Lead 5 (charang) Syntetické sólo 5 (charang) - + Lead 6 (voice) Syntetické sólo 6 (hlas) - + Lead 7 (fifths) Syntetické sólo 7 (pila s kvintou) - + Lead 8 (bass + lead) Syntetické sólo 8 (bas + sólo) - + Pad 1 (new age) Plocha 1 (fantazie) - + Pad 2 (warm) Plocha 2 (teplá) - + Pad 3 (polysynth) Plocha 3 (polyfonní syntetizér) - + Pad 4 (choir) Plocha 4 (sborový zvuk) - + Pad 5 (bowed) Plocha 5 (skleněná harmonika) - + Pad 6 (metallic) Plocha 6 (kovová) - + Pad 7 (halo) Plocha 7 (světelný kruh) - + Pad 8 (sweep) Plocha 8 (sweep) - + FX 1 (rain) FX 1 (ledový déšť) - + FX 2 (soundtrack) FX 2 (zvuková stopa) - + FX 3 (crystal) FX 3 (křišťál) - + FX 4 (atmosphere) FX 4 (atmosféra) - + FX 5 (brightness) FX 5 (jas) - + FX 6 (goblins) FX 6 (skřítci) - + FX 7 (echoes) FX 7 (ozvěny) - + FX 8 (sci-fi) FX 8 (sci-fi) - + Sitar Sitár - + Banjo Bendžo - + Shamisen Šamisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Dudy - + Fiddle Skřipky - + Shanai Šenai - + Tinkle Bell Rolničky - + Agogo Agogo - + Steel Drums Kovové bubny - + Woodblock Dřevěný blok - + Taiko Drum Buben taiko - + Melodic Tom Melodický tom - + Synth Drum Syntetický buben - + Reverse Cymbal Zvuk činelu pozpátku - + Guitar Fret Noise Hluk kytarového pražce - + Breath Noise Dech - + Seashore Mořský příboj - + Bird Tweet Ptačí zpěv - + Telephone Ring Telefonní zvonek - + Helicopter Vrtulník - + Applause Potlesk - + Gunshot Výstřel @@ -1219,13 +1227,13 @@ - + Drums Bubny - + Melody Melodie @@ -1319,7 +1327,7 @@ - + Start and stop playing music Spustit a zastavit přehrávání not @@ -1350,13 +1358,13 @@ - + Major Durová (Major) - + Minor Mollová (Minor) @@ -1451,7 +1459,7 @@ D# - + Playing music from the beginning Přehrávání not od začátku @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Chyba souboru MIDI - + Cannot open "%1" Nelze otevřít "%1" - + Midi file "%1" is corrupted MIDI soubor "%1" je poškozený @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums Bubny - + Unknown Neznámý @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Chyba v souboru MIDI pro Piano Booster - + Cannot open "%1" Nelze otevřít "%1" - + "%1" is not a Midi File "%1" není soubor MIDI - + "%1" is not a valid Midi file "%1" není platný soubor MIDI - + &Open... &Otevřít... - + Ctrl+O Ctrl+O - + Open an existing file Otevřít existující soubor - + E&xit &Ukončit - + Ctrl+Q Ctrl+Q - + Exit the application Ukončit program - + &About O &programu - + Show the application's About box Ukázat okénko s informacemi o programu - + &PC Shortcut Keys Klávesové &zkratky - + The PC Keyboard shortcut keys Klávesové zkratky - + &Midi Setup ... Nastavení &MIDI... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Nastavit vstup a výstup MIDI - + Piano &Keyboard Setting ... Nastavení &klávesnice klavíru... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Změnit nastavení klávesnice klavíru - + &Fullscreen &Celá obrazovka - + Fullscreen mode Režim celé obrazovky - + F11 F11 - + &Show the Side Panel &Ukázat postranní panel - + Show the Left Side Panel Ukázat levý postranní panel - + F12 F12 - + Show Piano &Keyboard Ukázat &klávesnici klavíru - + Show Piano Keyboard Widget Ukázat panel s klávesnicí klavíru - + &Preferences ... &Nastavení... - + Settings Nastavení - + Ctrl+P Ctrl+P - + Song &Details ... Podrobnosti pí&sně... - + Song Settings Nastavení písně - + Ctrl+D Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Soubor - + &View &Pohled - + &Song Pí&seň - + Set&up &Nastavení - - + + &Help Nápo&věda - - + + Piano Booster Help Nápověda k Piano Boosteru - + &Website &Webová stránka - + Piano Booster Website Stránky Piano Boosteru - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Začínáme</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Budete potřebovat <b>klávesy s podporou MIDI</b> a <b>MIDI rozhraní</b> pro Váš počítač.Pokud nemáte klávesy, které toto rozhraní podporují, můžete PianoBooster vyzkoušet na klávesnici vašeho počítače, 'X' je jednočárkované C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Na to, abyste mohli slyšet zvuk budete potřebovat <b>Syntezátor zvuku MIDI</b>. Operační systém Windows obsahuje "Microsoft GS Wavetable software synthesizer". Bohužel tento software dosahuje nepřijatelně vysokého zpoždění (prodlevy, latence). Na Linuxu můžete použít - + or nebo - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster pracuje nejlépe s MIDI soubory, které mají rozdělené části na pravou a levou ruku používající MIDI kanály 3 a 4. - + <h3>Setting Up</h3> <h3>Počáteční nastavení</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>První běžte do menu <i>Nastavení/Nastavení MIDI</i> a vyberte takové rozhraní, které podporuje váš hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Dále použíte <i>Soubor/Otevřít</i> pro otevření MIDI souborů s příponou ".mid" nebo karaoke souborů s příponou ".kar". Poté si vyberte jestli chcete hudbu jen <i>poslouchat</i> nebo <i>hrát pospolu</i> na Vaších klávesách. Je možné také nastavit<i>úrovně</i> obtížnosti na levém panelu. Až budete připraveni klikněte na tlačítko s <i>ikonou play</i> (nebo zmáčkněte <i>mezerník</i>) ke spuštění hudby. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Rady jak hrát na klavír</h3><p>Pro rady jak hrát na klavír se podívejte na: - + Piano Hints Rady na Klavír - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Pro více informací</h3><p>Pro více informací prosím navštivte - + website webovou stránku PianoBoosteru nebo - + the PianoBooster často kladené otázky PianoBoosteru - + FAQ FAQ - + and the a - + user forum uživatelské fórum - + About Piano Booster O programu Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - verze %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Pozvedněte</b> své <b>dovednosti hry na klavír</b>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Kopírovací právo (c) L. J. Barman, 2008-2020; Všechna práva vyhrazena.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Kopírovací právo (c) Fabien Givors, 2018-2019; Všechna práva vyhrazena.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Tento program je dostupný za podmínek GNU General Public License verze 3, jak jsou zveřejněny Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Tento program také obsahuje RtMIDI: třídy MIDI i/o C++ ve skutečném čase<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Kopírovací právo (c) Gary P. Scavone, 2003-2019; Všechna práva vyhrazena. - + space mezerník - + PC Keyboard ShortCuts Klávesové zkratky - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Klávesové zkratky</center></h2><p>Byly stanoveny následující klávesové zkratky.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Činnost</th><th>Klávesa</th></tr> - + Choose the right hand Vybrat pravou ruku - + Choose both hands Vybrat obě ruce - + Choose the left Hand Vybrat levou ruku - + Play from start toggle Přepnutí Přehrát od začátku - + Play Pause Toggle Přepnutí Přehrát/Pozastavit - - + + Increase the speed by 5% Zvýšit rychlost o 5 % - + Change to the Next Song Změnit na další píseň - + Change to the Previous Song Změnit na předchozí píseň - + Change to the Next Book Změnit na další knihu - + Change to the Previous Book Změnit na předchozí knihu - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Nepravé klávesy klavíru</td><td>X je jednočárkované C</td></tr></table> </center><br> - + Open Midi File Otevřít soubor MIDI - + Midi Files Soubory MIDI - - - None - Žádný - diff --git a/translations/pianobooster_cy.ts b/translations/pianobooster_cy.ts index 17d59d18..f384ac31 100644 --- a/translations/pianobooster_cy.ts +++ b/translations/pianobooster_cy.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Dim + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Obo - + English Horn Cor anglais - + Bassoon Basŵn - + Clarinet Clarinét - + Piccolo Picolo - + Flute Ffliwt - + Recorder - + Pan Flute Pibau Pan - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Anhysbys @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Agor... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Ynghylch - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Gosodiadau - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Ffeil - + &View &Golwg - + &Song - + Set&up - - + + &Help &Cymorth - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Dim - diff --git a/translations/pianobooster_da.ts b/translations/pianobooster_da.ts index 73ffc41a..62b5c6fd 100644 --- a/translations/pianobooster_da.ts +++ b/translations/pianobooster_da.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ingen + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Sang: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ingen) - + Grand Piano Flygel - + Bright Piano - + Electric Grand - + Honky-tonk Piano Honky-tonk klaver - + Electric Piano 1 Elektrisk klaver 1 - + Electric Piano 2 Elektrisk klaver 2 - + Harpsichord Cembalo - + Clavi Claves - + Celesta Celeste - + Glockenspiel Klokkespil - + Music Box - + Vibraphone Vibrafon - + Marimba Marimba - + Xylophone Xylofon - + Tubular Bells Rørklokker - + Dulcimer Dulcimer - + Drawbar Organ Trækorgel - + Percussive Organ Percusivt orgel - + Rock Organ Rock orgel - + Church Organ Kirkeorgel - + Reed Organ Rørbladsorgel - + Accordion akkordion - + Harmonica Harmonika - + Tango Accordion Tango-akkordion - + Acoustic Guitar (nylon) Akustisk guitar (nylon) - + Acoustic Guitar (steel) Akkustisk guitar (stål) - + Electric Guitar (jazz) Elektrisk guitar (jazz) - + Electric Guitar (clean) Elektrisk guitar (ren) - + Electric Guitar (muted) Elektrisk guitar (dæmpet) - + Overdriven Guitar Overdrive guitar - + Distortion Guitar Forvrænget guitar - + Guitar harmonics Guitar flageoletter - + Acoustic Bass Akustisk bas - + Electric Bass (finger) Elektrisk bas (fingerspil) - + Electric Bass (pick) Elektrisk bas (plektrum) - + Fretless Bass Båndløs bas - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Violin - + Viola Bratsch - + Cello Cello - + Contrabass Kontrabas - + Tremolo Strings Tremolo strygere - + Pizzicato Strings Pizzicato strygere - + Orchestral Harp Orkesterharpe - + Timpani Timpani - + String Ensemble 1 Strygerensemble 1 - + String Ensemble 2 Strygerensemble 2 - + SynthStrings 1 Synth strygere 1 - + SynthStrings 2 Synth strygere 2 - + Choir Aahs Kor (aaah) - + Voice Oohs Kor (oooh) - + Synth Voice Synth-stemme - + Orchestra Hit - + Trumpet Trompet - + Trombone Basun - + Tuba Tuba - + Muted Trumpet Dæmpet trompet - + French Horn Waldhorn - + Brass Section Messingsektion - + SynthBrass 1 Synth messing 1 - + SynthBrass 2 Synth messing 2 - + Soprano Sax Sopransax - + Alto Sax Altsax - + Tenor Sax Tenorsax - + Baritone Sax Baritonsax - + Oboe Obo - + English Horn Engelskhorn - + Bassoon Fagot - + Clarinet Klarinet - + Piccolo Piccolo - + Flute Fløjte - + Recorder Blokfløjte - + Pan Flute Panfløjte - + Blown Bottle Blæs i flaske - + Shakuhachi Shakuhachi - + Whistle Whistle (fløjte) - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) Lead 6 (stemme) - + Lead 7 (fifths) Lead 7 (kvinter) - + Lead 8 (bass + lead) Lead 8 (bas + melodi) - + Pad 1 (new age) - + Pad 2 (warm) Pad 2 (varm) - + Pad 3 (polysynth) - + Pad 4 (choir) Pad 4 (kor) - + Pad 5 (bowed) Pad 5 (strøget) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) FX 1 (regn) - + FX 2 (soundtrack) FX 2 (lydspor) - + FX 3 (crystal) FX 3 (krystal) - + FX 4 (atmosphere) FX 4 (atmosfære) - + FX 5 (brightness) FX 5 (klar) - + FX 6 (goblins) - + FX 7 (echoes) FX 7 (ekkoer) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe Sækkepibe - + Fiddle Fiol - + Shanai - + Tinkle Bell Tinkle Bell (lille klokke) - + Agogo - + Steel Drums Oljetønder - + Woodblock - + Taiko Drum Taiko tromme - + Melodic Tom Melodisk tam - + Synth Drum Synth tromme - + Reverse Cymbal Baglæns bækken - + Guitar Fret Noise Guitar båndstøj - + Breath Noise Åndelyde - + Seashore På stranden - + Bird Tweet Fuglekvidder - + Telephone Ring Telefonen ringer - + Helicopter Helikopter - + Applause Publikum klapper - + Gunshot Geværskud @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music Start og stop afspilning af musik @@ -1350,13 +1358,13 @@ - + Major Dur - + Minor Mol @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R r - + Drums - + Unknown Ukendt @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... Å&bn... - + Ctrl+O Ctrl+O - + Open an existing file Åbn en eksisterende fil - + E&xit &Afslut - + Ctrl+Q Ctrl+Q - + Exit the application Afslut programmet - + &About &Om - + Show the application's About box Vis programmets om-boks - + &PC Shortcut Keys &Pc-genvejstaster - + The PC Keyboard shortcut keys Pc-tastaturets genvejstaster - + &Midi Setup ... &Midi-opsætning ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Opsæt ind- og uddata for MIDI - + Piano &Keyboard Setting ... Piano&tastaturindstilling ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Fuldskærm - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Præferencer ... - + Settings Indstillinger - + Ctrl+P Ctrl+P - + Song &Details ... &Sangdetaljer ... - + Song Settings - + Ctrl+D - + Shift+F1 Skift+F1 - + Alt+F1 Alt+F1 - + &File &Fil - + &View &Vis - + &Song &Sang - + Set&up &Opsætning - - + + &Help &Hjælp - - + + Piano Booster Help Hjælp til Piano Booster - + &Website &Hjemmeside - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Om Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space mellemrum - + PC Keyboard ShortCuts PC-tastaturgenveje - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Tastaturgenveje</center></h2><p>De følgende pc-tastaturgenveje er blevet defineret.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Handling</th><th>Tast</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Falske klavertangenter</td><td>X er midte C</td></tr></table> </center><br> - + Open Midi File Åbn Midi-fil - + Midi Files MIDI filer - - - None - Ingen - diff --git a/translations/pianobooster_de.ts b/translations/pianobooster_de.ts index b138856c..ae43061f 100644 --- a/translations/pianobooster_de.ts +++ b/translations/pianobooster_de.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Genauigkeit: - + Song: Lied: - + Bar: Takt: @@ -78,647 +86,647 @@ CTrackList - + (None) (Kein Instrument ausgewählt) - + Grand Piano Grand Piano - + Bright Piano Bright Piano - + Electric Grand Electric Grand - + Honky-tonk Piano Honky-tonk Piano - + Electric Piano 1 Electric Piano 1 - + Electric Piano 2 Electric Piano 2 - + Harpsichord Harpsichord - + Clavi Clavinet - + Celesta Celesta - + Glockenspiel Glockenspiel - + Music Box Music Box - + Vibraphone Vibraphone - + Marimba Marimba - + Xylophone Xylophone - + Tubular Bells Tubular Bells - + Dulcimer Dulcimer - + Drawbar Organ Drawbar Organ - + Percussive Organ Percussive Organ - + Rock Organ Rock Organ - + Church Organ Church Organ - + Reed Organ Reed Organ - + Accordion Accordion - + Harmonica Harmonica - + Tango Accordion Tango Accordion - + Acoustic Guitar (nylon) Acoustic Guitar (nylon) - + Acoustic Guitar (steel) Acoustic Guitar (steel) - + Electric Guitar (jazz) Electric Guitar (jazz) - + Electric Guitar (clean) Electric Guitar (clean) - + Electric Guitar (muted) Electric Guitar (muted) - + Overdriven Guitar Overdriven Guitar - + Distortion Guitar Distortion Guitar - + Guitar harmonics Guitar harmonics - + Acoustic Bass Acoustic Bass - + Electric Bass (finger) Electric Bass (finger) - + Electric Bass (pick) Electric Bass (pick) - + Fretless Bass Fretless Bass - + Slap Bass 1 Slap Bass 1 - + Slap Bass 2 Slap Bass 2 - + Synth Bass 1 Synth Bass 1 - + Synth Bass 2 Synth Bass 2 - + Violin Violin - + Viola Viola - + Cello Cello - + Contrabass Contrabass - + Tremolo Strings Tremolo Strings - + Pizzicato Strings Pizzicato Strings - + Orchestral Harp Orchestral Harp - + Timpani Timpani - + String Ensemble 1 String Ensemble 1 - + String Ensemble 2 String Ensemble 2 - + SynthStrings 1 SynthStrings 1 - + SynthStrings 2 SynthStrings 2 - + Choir Aahs Choir Aahs - + Voice Oohs Voice Oohs - + Synth Voice Synth Voice - + Orchestra Hit Orchestra Hit - + Trumpet Trumpet - + Trombone Trombone - + Tuba Tuba - + Muted Trumpet Muted Trumpet - + French Horn French Horn - + Brass Section Brass Section - + SynthBrass 1 SynthBrass 1 - + SynthBrass 2 SynthBrass 2 - + Soprano Sax Soprano Sax - + Alto Sax Alto Sax - + Tenor Sax Tenor Sax - + Baritone Sax Baritone Sax - + Oboe Oboe - + English Horn English Horn - + Bassoon Bassoon - + Clarinet Clarinet - + Piccolo Piccolo - + Flute Flute - + Recorder Recorder - + Pan Flute Pan Flute - + Blown Bottle Blown Bottle - + Shakuhachi Shakuhachi - + Whistle Whistle - + Ocarina Ocarina - + Lead 1 (square) Lead 1 (square) - + Lead 2 (sawtooth) Lead 2 (sawtooth) - + Lead 3 (calliope) Lead 3 (calliope) - + Lead 4 (chiff) Lead 4 (chiff) - + Lead 5 (charang) Lead 5 (charang) - + Lead 6 (voice) Lead 6 (voice) - + Lead 7 (fifths) Lead 7 (fifths) - + Lead 8 (bass + lead) Lead 8 (bass + lead) - + Pad 1 (new age) Pad 1 (new age) - + Pad 2 (warm) Pad 2 (warm) - + Pad 3 (polysynth) Pad 3 (polysynth) - + Pad 4 (choir) Pad 4 (choir) - + Pad 5 (bowed) Pad 5 (bowed) - + Pad 6 (metallic) Pad 6 (metallic) - + Pad 7 (halo) Pad 7 (halo) - + Pad 8 (sweep) Pad 8 (sweep) - + FX 1 (rain) FX 1 (rain) - + FX 2 (soundtrack) FX 2 (soundtrack) - + FX 3 (crystal) FX 3 (crystal) - + FX 4 (atmosphere) FX 4 (atmosphere) - + FX 5 (brightness) FX 5 (brightness) - + FX 6 (goblins) FX 6 (goblins) - + FX 7 (echoes) FX 7 (echoes) - + FX 8 (sci-fi) FX 8 (sci-fi) - + Sitar Sitar - + Banjo Banjo - + Shamisen Shamisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Bag pipe - + Fiddle Fiddle - + Shanai Shanai - + Tinkle Bell Tinkle Bell - + Agogo Agogo - + Steel Drums Steel Drums - + Woodblock Woodblock - + Taiko Drum Taiko Drum - + Melodic Tom Melodic Tom - + Synth Drum Synth Drum - + Reverse Cymbal Reverse Cymbal - + Guitar Fret Noise Guitar Fret Noise - + Breath Noise Breath Noise - + Seashore Seashore - + Bird Tweet Bird Tweet - + Telephone Ring Telephone Ring - + Helicopter Helicopter - + Applause Applause - + Gunshot Gunshot @@ -1219,13 +1227,13 @@ - + Drums Schlagzeug - + Melody Melodie @@ -1319,7 +1327,7 @@ - + Start and stop playing music Musikwiedergabe starten und stoppen @@ -1350,13 +1358,13 @@ - + Major Dur - + Minor Moll @@ -1451,7 +1459,7 @@ D# - + Playing music from the beginning Die Musik von Anfang an spielen @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error MIDI Dateifehler - + Cannot open "%1" Kann „%1“ nicht öffnen - + Midi file "%1" is corrupted MIDI-Datei „%1“ ist beschädigt @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums Schlagzeug - + Unknown Unbekannt @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster MIDI Dateifehler - + Cannot open "%1" Kann "%1" nicht öffnen - + "%1" is not a Midi File "%1" ist keine MIDI-Datei - + "%1" is not a valid Midi file "%1" ist keine gültige MIDI-Datei - + &Open... &Öffnen... - + Ctrl+O Ctrl+O - + Open an existing file Bereits vorhandene Datei öffnen - + E&xit &Schliessen - + Ctrl+Q Ctrl+Q - + Exit the application Das Programm schliessen - + &About &Über - + Show the application's About box Den "Über" Dialog des Programms anzeigen - + &PC Shortcut Keys &Computer-Tastenkombinationen - + The PC Keyboard shortcut keys Die Computer-Tastenkombinationen - + &Midi Setup ... &MIDI Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output MIDI Eingabe und Ausgabe konfigurieren - + Piano &Keyboard Setting ... Klavier &Tastatur Einstellungen ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Klaviertastatur Einstellungen anpassen - + &Fullscreen &Vollbild - + Fullscreen mode Vollbildmodus - + F11 F11 - + &Show the Side Panel &Side Panel anzeigen - + Show the Left Side Panel Zeige die linke Anzeige - + F12 F12 - + Show Piano &Keyboard Zeige &Tasten des Pianos - + Show Piano Keyboard Widget Zeige Piano-Tasten-Widget - + &Preferences ... &Einstellungen ... - + Settings Einstellungen - + Ctrl+P Ctrl+P - + Song &Details ... &Liedinformationen ... - + Song Settings Song-Einstellungen - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Datei - + &View &Ansicht - + &Song &Lied - + Set&up &Setup - - + + &Help &Hilfe - - + + Piano Booster Help Piano Booster Hilfe - + &Website &Website - + Piano Booster Website Website von Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Erste Schritte</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Sie benötigen ein <b>MIDI Piano Keyboard </b> und ein <b>MIDI Interface</b> für Ihren Computer. Wenn Sie kein MIDI Keyboard haben können Sie PianoBooster mit der Tastatur Ihres Computers ausprobieren, 'X' ist C3.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Um den Ton zu hören benötigen Sie einen <b>MIDI Sound Synthesizer</b>. Der "Microsoft GS Wavetable software synthesizer" welcher unter Windows vorinstalliert ist, kann verwendet werden, verursacht aber eine unerwünschte Verzögerung/Latenz. Unter Linux können - + or oder - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster funktioniert am Besten mit MIDI Dateien, welche separate Abschnitte für die linke und die rechte Hand beinhalten, welche die MIDI Kanäle 3 and 4 verwenden. - + <h3>Setting Up</h3> <h3>Installation</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>Verwenden Sie als erstes den Menupunkt <i>Setup/Midi Setup</i> und wählen Sie damit den MIDI Eingang und Ausgang, welche ihrer Hardware entsprechen. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Als nächstes mit <i>Datei/Öffnen</i> eine MIDI Datei (".mid") oder eine Karaoke Datei (".kar") öffnen. Wählen Sie nun, ob Sie die Musik nur <i>hören</i> oder mit dem Klavier <i>dazu spielen</i> wollen, indem Sie den <i>Niveau</i> Level im Side Panel festlegen. Wenn Sie bereit sind, klicken Sie auf das <i>Spielen Icon</i> (oder drücken Sie die <i>Leertaste</i>) um die Musik abzuspielen. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Hinweise zum Klavierpsielen</h3><p>Um Hinweise zum Klavierspielen zu erhalten, besuchen Sie: - + Piano Hints Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Mehr Informationen</h3><p>Für mehr Hilfe besuchen Sie bitte die PianoBooster - + website Website - + the PianoBooster die PianoBooster - + FAQ FAQ - + and the und das - + user forum Benutzerforum - + About Piano Booster Über Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Boost</b> Ihre <b>Piano</b> Spielfähigkeiten!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Copyright (c) L. J. Barman, 2008-2013; Alle Rechte vorbehalten. <br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright (c) Fabien Givors, 2018-2019; Alle Rechte vorbehalten. <br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Dieses Programm wird unter den Bedingungen der GNU General Public License Version 3, wie sie von der Free Software Foundation veröffentlicht wurde, zur Verfügung gestellt.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Dieses Programm enthält auch RtMIDI: Echtzeit MIDI i/o C++ Klassen<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright (c) Gary P. Scavone, 2003-2019; Alle Rechte vorbehalten. - + space Leertaste - + PC Keyboard ShortCuts PC Tastaturkombinationen - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Tastenkürzel</center></h2><p>Die folgenden Tastenkürzel wurden konfiguriert.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr>1<th>2Aktion</th>3<th>4Taste</th>5</tr>6 - + Choose the right hand Wählen Sie die rechte Hand - + Choose both hands Wählen Sie beide Hände - + Choose the left Hand Wählen Sie die linke Hand - + Play from start toggle Vom Startmarker weg spielen - + Play Pause Toggle Start/Stop Marker - - + + Increase the speed by 5% Geschwindigkeit um 5% erhöhen - + Change to the Next Song Zum nächsten Lied springen - + Change to the Previous Song Zum vorherigen Lied springen - + Change to the Next Book Zum nächsten Buch springen - + Change to the Previous Book Zum vorherigen Buch springen - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Falsche Klaviertasten</td><td>X ist C3</td></tr></table> </center><br> - + Open Midi File MIDI Datei öffnen - + Midi Files MIDI Dateien - - - None - Kein - diff --git a/translations/pianobooster_dz.ts b/translations/pianobooster_dz.ts index fb2bba8b..85cba7e4 100644 --- a/translations/pianobooster_dz.ts +++ b/translations/pianobooster_dz.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ཅི་མེད། + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown མ་ཤེསཔ། @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About སྐོར་ལས། - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File ཡིག་སྣོད། - + &View མཐོང་སྣང་། - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ཅི་མེད། - diff --git a/translations/pianobooster_el.ts b/translations/pianobooster_el.ts index 79c11d26..7cdaa187 100644 --- a/translations/pianobooster_el.ts +++ b/translations/pianobooster_el.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Κανένα + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Τραγούδι: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Κανένα) - + Grand Piano Πιάνο με Ουρά - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Τσέμπαλο - + Clavi - + Celesta Τσελέστα - + Glockenspiel Μεταλλόφωνο - + Music Box - + Vibraphone Βιμπράφωνο - + Marimba Μαρίμπα - + Xylophone Ξυλόφωνο - + Tubular Bells - + Dulcimer Ντούλτσιμερ - + Drawbar Organ - + Percussive Organ Κρουστό Όργανο - + Rock Organ - + Church Organ - + Reed Organ Καλαμένιο Εκκλησιαστικό Όργανο - + Accordion Ακορντεόν - + Harmonica Φυσαρμόνικα - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Ακουστικό Μπάσο - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Βιολί - + Viola Βιόλα - + Cello - + Contrabass Κοντραμπάσο - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Τιμπάνι - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Τρομπέτα - + Trombone Τρομπόνι - + Tuba Τούμπα - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Όμποε - + English Horn Αγγλικό Κόρνο - + Bassoon Φαγκότο - + Clarinet Κλαρινέτο - + Piccolo Πίκολο - + Flute Φλάουτο - + Recorder Φλάουτο με Ράμφος - + Pan Flute Αυλός Πάνα - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Οκαρίνα - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Σιτάρ - + Banjo Μπάντζο - + Shamisen - + Koto Κότο - + Kalimba Καλίμπα - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music Αρχίστε και σταματήστε να παίζετε μουσική @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ ρε# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Άγνωστο @@ -1516,444 +1524,439 @@ Δάσκαλος πιάνου - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... Ά&νοιγμα... - + Ctrl+O Ctrl+O - + Open an existing file Άνοιγμα ενός υπάρχοντος αρχείου - + E&xit Έ&ξοδος - + Ctrl+Q Ctrl+Q - + Exit the application Έξοδο από την εφαρμογή - + &About &Σχετικά - + Show the application's About box Να εμφανισθεί το κουτί Περί της εφαρμογής - + &PC Shortcut Keys Πλήκτρα συντόμευσης του &PC - + The PC Keyboard shortcut keys Τα πλήκτρα συντόμευσης στο πληκτρολόγιο του PC - + &Midi Setup ... Ρύθμιση του &Midi ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Ρυθμίστε την είσοδο και την έξοδο MIDI - + Piano &Keyboard Setting ... Ρυθμίσεις &Πληκτρολογίου του πιάνου ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Προτιμήσεις ... - + Settings Ρυθμίσεις - + Ctrl+P Ctrl+P - + Song &Details ... Λεπτομέρειες &Τραγουδιού ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Αρχείο - + &View Π&ροβολή - + &Song &Τραγούδι - + Set&up Ρύθμ&ιση - - + + &Help &Βοήθεια - - + + Piano Booster Help Βοήθεια για το Piano Booster - + &Website &Ιστότοπος - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Περί Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Συντομεύσεις Πληκτρολογίου Η/Υ - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Συντομεύσεις πληκτρολογίου</center></h2><p>Έχουν ορισθεί οι ακόλουθες συντομεύσεις για πληκτρολόγιο PC.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Ενέργεια</th><th>Πλήκτρο</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Απομίμηση πλήκτρων πιάνου</td><td>Το X είναι το μεσαίο C</td></tr></table> </center><br> - + Open Midi File Άνοιγμα αρχείου Midi - + Midi Files - - - None - Κανένα - diff --git a/translations/pianobooster_eo.ts b/translations/pianobooster_eo.ts index 0c3527e3..c183adf6 100644 --- a/translations/pianobooster_eo.ts +++ b/translations/pianobooster_eo.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Neniu + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Neniu) - + Grand Piano Horizontala piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Klaviceno - + Clavi - + Celesta Celesto - + Glockenspiel Kampaneto - + Music Box - + Vibraphone Vibrafono - + Marimba Marimbo - + Xylophone Ksilofono - + Tubular Bells - + Dulcimer Dulcimero - + Drawbar Organ - + Percussive Organ Perkuta orgeno - + Rock Organ - + Church Organ - + Reed Organ Anĉorgeno - + Accordion Akordeono - + Harmonica Harmoniko - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akustika baso - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Violono - + Viola Violo - + Cello - + Contrabass Kontrabaso - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Timbalo - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trumpeto - + Trombone Trombono - + Tuba Tubjo - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Hobojo - + English Horn Angla korno - + Bassoon Fagoto - + Clarinet Klarneto - + Piccolo Fluteto - + Flute Fluto - + Recorder Bekfluto - + Pan Flute Pajnofluto - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarino - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sitaro - + Banjo Banĝo - + Shamisen Ŝamiseno - + Koto Kotoo - + Kalimba Kalimbo - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Ŝtaltamburo - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nekonate @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Malfermi... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Pri - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Agordo - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Dosiero - + &View &Rigardi - + &Song - + Set&up - - + + &Help &Helpo - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Neniu - diff --git a/translations/pianobooster_es.ts b/translations/pianobooster_es.ts index 9dd574d5..56538b7e 100644 --- a/translations/pianobooster_es.ts +++ b/translations/pianobooster_es.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ninguno + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Precisión: - + Song: Canción: - + Bar: Compás: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ninguno) - + Grand Piano Piano de Cola - + Bright Piano Piano acústico Brillante - + Electric Grand Piano de Cola Eléctrico - + Honky-tonk Piano Honky-tonk Piano - + Electric Piano 1 Piano Eléctrico 1 - + Electric Piano 2 Piano Eléctrico 2 - + Harpsichord Clavicordio - + Clavi Clavinet - + Celesta Celesta - + Glockenspiel Carrillón - + Music Box Caja de Música - + Vibraphone Vibráfono - + Marimba Marimba - + Xylophone Xylófono - + Tubular Bells Campanas Tubulares - + Dulcimer Salterio - + Drawbar Organ Órgano Hammond - + Percussive Organ Órgano Percusivo - + Rock Organ Órgano de Rock - + Church Organ Órgano de Iglesia - + Reed Organ Armonio - + Accordion Acordeón - + Harmonica Armónica - + Tango Accordion Bandoneón - + Acoustic Guitar (nylon) Guitarra Española - + Acoustic Guitar (steel) Guitarra Acústica - + Electric Guitar (jazz) Guitarra Eléctrica (jazz) - + Electric Guitar (clean) Guitarra Eléctrica - + Electric Guitar (muted) Guitarra Eléctrica (silenciada) - + Overdriven Guitar Guitarra Saturada - + Distortion Guitar Guitarra Distorsionada - + Guitar harmonics Armónicos de Guitarra - + Acoustic Bass Bajo Acústico - + Electric Bass (finger) Bajo Eléctrico Pulsado - + Electric Bass (pick) Bajo Eléctrico Punteado - + Fretless Bass Bajo sin Trastes - + Slap Bass 1 Bajo Golpeado 1 - + Slap Bass 2 Bajo Golpeado 2 - + Synth Bass 1 Bajo Sintetizado 1 - + Synth Bass 2 Bajo Sintetizado 2 - + Violin Violín - + Viola Viola - + Cello Violoncello - + Contrabass Contrabajo - + Tremolo Strings Cuerdas con Trémolo - + Pizzicato Strings Cuerdas con Pizzicato - + Orchestral Harp Arpa - + Timpani Timbales - + String Ensemble 1 Conjunto de Cuerda 1 - + String Ensemble 2 Conjunto de Cuerda - + SynthStrings 1 Cuerdas Sintetizadas 1 - + SynthStrings 2 Cuerdas Sintetizadas 2 - + Choir Aahs Voz Aahs - + Voice Oohs Voz Oohs - + Synth Voice Sintetizador de Voz - + Orchestra Hit Conjunto de Stacaatos - + Trumpet Trompeta - + Trombone Trombón - + Tuba Tuba - + Muted Trumpet Trompeta con Sordina - + French Horn Corno Francés - + Brass Section Sección de Bronces - + SynthBrass 1 Bronces Sintetizados 1 - + SynthBrass 2 Bronces Sintetizados 2 - + Soprano Sax Saxo Soprano - + Alto Sax Saxo Alto - + Tenor Sax Saxo Tenor - + Baritone Sax Saxo Barítono - + Oboe Oboe - + English Horn Corno Inglés - + Bassoon Fagot - + Clarinet Clarinete - + Piccolo Flautín - + Flute Flauta - + Recorder Flauta Dulce - + Pan Flute Flauta de Pan - + Blown Bottle Cuello de Botella - + Shakuhachi Flauta Japonesa - + Whistle Silbato - + Ocarina Ocarina - + Lead 1 (square) Melodía 1 (onda cuadrada) - + Lead 2 (sawtooth) Melodía 2 (diente de sierra) - + Lead 3 (calliope) Melodía 3 (órgano de vapor) - + Lead 4 (chiff) Melodía 4 (siseo órgano) - + Lead 5 (charang) Melodía 5 (charanga) - + Lead 6 (voice) Melodía (voz) - + Lead 7 (fifths) Melodía 7 (quintas) - + Lead 8 (bass + lead) Melodía 8 (bajo y melodías) - + Pad 1 (new age) Fondo 1(nueva era) - + Pad 2 (warm) Fondo 2 (cálido) - + Pad 3 (polysynth) Fondo 3 (polisintetizador) - + Pad 4 (choir) Fondo 4 (coro) - + Pad 5 (bowed) Fondo 5 (de arco) - + Pad 6 (metallic) Fondo 6 (metálico) - + Pad 7 (halo) Fondo 7 (celestial) - + Pad 8 (sweep) Fondo 8 (escobillas) - + FX 1 (rain) Efecto 1 (lluvia) - + FX 2 (soundtrack) Efecto 2 (banda sonora) - + FX 3 (crystal) Efecto 3 (cristales) - + FX 4 (atmosphere) Efecto 4 (atmóstfera) - + FX 5 (brightness) Efecto 5 (brillo) - + FX 6 (goblins) EFecto 6 (duendes) - + FX 7 (echoes) Efecto 7 (ecos) - + FX 8 (sci-fi) Efecto 8 (ciencia ficción) - + Sitar Sitar - + Banjo Banjo - + Shamisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Gaita - + Fiddle Violín Celta - + Shanai Shanai - + Tinkle Bell Campanillas - + Agogo Agogo - + Steel Drums Cajas Metálicas - + Woodblock Caja de Madera - + Taiko Drum Caja Taiko - + Melodic Tom Timbal Melódico - + Synth Drum Caja Sintetizada - + Reverse Cymbal Platillo Invertido - + Guitar Fret Noise Trasteo de Guitarra - + Breath Noise Sonido de Respiración - + Seashore Playa - + Bird Tweet Canto de Pajaro - + Telephone Ring Tiembre de Teléfono - + Helicopter Helicóptero - + Applause Aplauso - + Gunshot Disparo @@ -1219,13 +1227,13 @@ - + Drums Tambores - + Melody Melodía @@ -1319,7 +1327,7 @@ - + Start and stop playing music Empezar y parar de tocar la música @@ -1350,13 +1358,13 @@ - + Major Mayor - + Minor Menor @@ -1451,7 +1459,7 @@ Re# - + Playing music from the beginning Tocar desde el principio @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Error en Archivo Midi - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L I - + R D - + Drums Baterías - + Unknown Desconocido @@ -1516,444 +1524,439 @@ Piano Midi - - - + + + PianoBooster Midi File Error Piano Booster Archivo Midi Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abrir un archivo existente - + E&xit &Salir - + Ctrl+Q Ctrl+Q - + Exit the application Salir de la Aplicación - + &About So&bre - + Show the application's About box Mostrar el Formulario sobre la Aplicación - + &PC Shortcut Keys &Atajos de Teclado del PC - + The PC Keyboard shortcut keys Atajos del Teclado del PC - + &Midi Setup ... Configuración &Midi... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Configurar la entrada y salida Midi - + Piano &Keyboard Setting ... Configuración del &Teclado del Piano... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Cambiar la configuración del teclado musical - + &Fullscreen Pantalla Completa (&F) - + Fullscreen mode - + F11 F11 - + &Show the Side Panel Mo&strar el Panel Lateral - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard Mostrar piano y teclado - + Show Piano Keyboard Widget - + &Preferences ... &Preferencias ... - + Settings Configuración - + Ctrl+P Ctrl+P - + Song &Details ... Detalle&s de la Canción... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Archivo - + &View &Ver - + &Song &Canción - + Set&up Config&uración - - + + &Help A&yuda - - + + Piano Booster Help Ayuda de Piano Booster - + &Website &Web - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Sobre Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Versión %1</b><br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>¡Mejora </b>tus <b>habilidades </b>de piano!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Copyright(c) L. J. Barman, 2008-2013; Todos los derechos reservados.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; Todos los derechos reservados.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Este programa está disponible bajo los términos de la Licencia Pública General de GNU versión 3 publicada por la Fundación de Software Libre.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Este programa también contiene RtMIDI: clases en tiempo real de MIDI i /o C ++ <br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; Todos los derechos reservados. - + space espacio - + PC Keyboard ShortCuts Atajos del Teclado del PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Atajos del Teclado</center></h2><p>Se han definido los siguientes atajos del teclado</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Acción</th><th>Tecla</th></tr> - + Choose the right hand Seleccionar Mano Derecha - + Choose both hands Seleccionar ambas manos - + Choose the left Hand Seleccionar Mano Izquierda - + Play from start toggle Tocar desde el Principio - + Play Pause Toggle Tocar Pausar Alternar - - + + Increase the speed by 5% Aumentar la velocidad un 5% - + Change to the Next Song Ir a la Siguiente Canción - + Change to the Previous Song Ir a la Canción Anterior - + Change to the Next Book Ir al Libro Siguiente - + Change to the Previous Book Ir al Libro Anterior - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Teclas del Piano Simuladas</td><td>X es el C central</td></tr></table> </center><br> - + Open Midi File Abrir Archivo Midi - + Midi Files Archivos Midi - - - None - Ninguno - diff --git a/translations/pianobooster_et.ts b/translations/pianobooster_et.ts index 3af0dba4..de1039f7 100644 --- a/translations/pianobooster_et.ts +++ b/translations/pianobooster_et.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Puudub + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Pala: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Puudub) - + Grand Piano Tiibklaver - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Klavessiin - + Clavi - + Celesta - + Glockenspiel Kellamäng - + Music Box - + Vibraphone Vibrafon - + Marimba - + Xylophone Ksülofon - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ Harmoonium - + Accordion Akordion - + Harmonica Suupill - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akustiline basskitarr - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Viiul - + Viola Vioola - + Cello - + Contrabass Kontrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Timpan - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trompet - + Trombone Tromboon - + Tuba Tuuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn Inglissarv - + Bassoon Fagott - + Clarinet Klarnet - + Piccolo Pikoloflööt - + Flute Flööt - + Recorder Plokkflööt - + Pan Flute Paaniflööt - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okariin - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo Bändžo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Steel-trumm - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music Alusta/peata muusika mängimine @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Tundmatu @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Ava... - + Ctrl+O Ctrl+O - + Open an existing file Ava olemasolev fail - + E&xit Väl&jumine - + Ctrl+Q Ctrl+Q - + Exit the application Rakendusest väljumine - + &About &Lähemalt - + Show the application's About box Kuva infot rakendusest - + &PC Shortcut Keys &Arvuti kiirklahvid - + The PC Keyboard shortcut keys Arvuti klaviatuuri kiirklahvid - + &Midi Setup ... &MIDI sätted ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Seadista MIDI sisend ja väljund - + Piano &Keyboard Setting ... Pilli &klahvistiku sätted ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Eelistused ... - + Settings Sätted - + Ctrl+P Ctrl+P - + Song &Details ... &Pala sätted ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fail - + &View &Vaade - + &Song &Pala - + Set&up Sea&distus - - + + &Help &Abi - - + + Piano Booster Help Piano Booster'i abi - + &Website &Veebileht - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Lähemalt Piano Booster'ist - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space tühik - + PC Keyboard ShortCuts Arvutiklaviatuuri kiirklahvid - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Klaviatuuri kiirklahvid</center></h2><p>Järgnevad arvutiklaviatuuri kiirklahvid on seadistatud.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Tegevus</th><th>Klahv</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Võltsklaveri klahv</td><td>X on esimese oktaavi C/do</td></tr></table> </center><br> - + Open Midi File Ava MIDI fail - + Midi Files MIDI failid - - - None - Puudub - diff --git a/translations/pianobooster_eu.ts b/translations/pianobooster_eu.ts index a6b55cf2..8cf31d32 100644 --- a/translations/pianobooster_eu.ts +++ b/translations/pianobooster_eu.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Bat ere ez + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Bat ere ez) - + Grand Piano Isats-pianoa - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Klabizenbaloa - + Clavi - + Celesta Zelesta - + Glockenspiel Glockenspiela - + Music Box - + Vibraphone Bibrafonoa - + Marimba Marinba - + Xylophone Xilofonoa - + Tubular Bells - + Dulcimer Dultzimerra - + Drawbar Organ - + Percussive Organ Organo perkusiboa - + Rock Organ - + Church Organ - + Reed Organ Organo mihiduna - + Accordion Akordeoia - + Harmonica Harmonika - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Baxu akustikoa - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Bibolina - + Viola Biola - + Cello - + Contrabass Kontrabaxua - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Tinbalak - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Tronpeta - + Trombone Tronboia - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Oboea - + English Horn Adar ingelesa - + Bassoon Fagota - + Clarinet Klarinetea - + Piccolo Piccoloa - + Flute Zeharkako txirula - + Recorder Txirula eztia - + Pan Flute Pan txirula - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sitara - + Banjo Banjoa - + Shamisen Shamisena - + Koto Kotoa - + Kalimba Kalinba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Metalezko danborrak - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ re# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Ezezaguna @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... I&reki... - + Ctrl+O - + Open an existing file Ireki dagoen fitxategi bat - + E&xit - + Ctrl+Q - + Exit the application - + &About Honi &buruz - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Ezarpenak - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fitxategia - + &View &Ikusi - + &Song - + Set&up - - + + &Help &Laguntza - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI fitxategiak - - - None - Bat ere ez - diff --git a/translations/pianobooster_fa.ts b/translations/pianobooster_fa.ts index 97011712..eb7dcece 100644 --- a/translations/pianobooster_fa.ts +++ b/translations/pianobooster_fa.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + هیچ‌کدام + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano پیانو مجلسی - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord هارپسیکورد - + Clavi - + Celesta سلستا - + Glockenspiel گلوکنشپیل - + Music Box - + Vibraphone ویبرافون - + Marimba ماریمبا - + Xylophone زایلوفون - + Tubular Bells - + Dulcimer دالکیمر - + Drawbar Organ - + Percussive Organ اُرگ پرکاسیو - + Rock Organ - + Church Organ - + Reed Organ اُرگ رید - + Accordion آکاردئون - + Harmonica هارمونیکا - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass بیس آکوستیک - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin ویولن - + Viola ویولا - + Cello - + Contrabass کنترباس - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani تیمپانی - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet ترومپت - + Trombone ترومبون - + Tuba توبا - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe اُبو - + English Horn کر آنگله - + Bassoon باسوون - + Clarinet کلارینت - + Piccolo پیکولو - + Flute فلوت - + Recorder ریکوردر - + Pan Flute فلوت پان - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina اوکارینا - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar سیتار - + Banjo بانجو - + Shamisen شامیسن - + Koto کوتو - + Kalimba کالیمبا - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums درامز فلزی - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown نامعلوم @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &باز کردن...‌ - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &و درباره - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &تنظیمات... - + Settings تنظیمات - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &پرونده‌ - + &View &نما‌ - + &Song - + Set&up - - + + &Help &کمک‌ - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - هیچ‌کدام - diff --git a/translations/pianobooster_fi.ts b/translations/pianobooster_fi.ts index ea0b611d..aec026d5 100644 --- a/translations/pianobooster_fi.ts +++ b/translations/pianobooster_fi.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ei mikään + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (ei mikään) - + Grand Piano Flyygeli - + Bright Piano - + Electric Grand - + Honky-tonk Piano Honky-tonk piano - + Electric Piano 1 Sähköpiano 1 - + Electric Piano 2 Sähköpiano 2 - + Harpsichord Cembalo - + Clavi Klaveeri - + Celesta - + Glockenspiel Kellopeli - + Music Box Soittorasia - + Vibraphone Vibrafoni - + Marimba - + Xylophone Ksylofoni - + Tubular Bells Putkikellot - + Dulcimer - + Drawbar Organ Hammond-urut - + Percussive Organ Perkussiourut - + Rock Organ Rock-urut - + Church Organ Pilliurut - + Reed Organ Urkuharmoni - + Accordion Harmonikka - + Harmonica Huuliharppu - + Tango Accordion Tangoharmonikka - + Acoustic Guitar (nylon) Akustinen kitara (nylon) - + Acoustic Guitar (steel) Akustinen kitara (teräs) - + Electric Guitar (jazz) Sähkökitara (jazz) - + Electric Guitar (clean) Sähkökitara (puhdas) - + Electric Guitar (muted) Sähkökitara (vaimennettu) - + Overdriven Guitar Yliohjattu kitara - + Distortion Guitar Särökitara - + Guitar harmonics Kitaran harmoniset - + Acoustic Bass Akustinen basso - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass Nauhaton basso - + Slap Bass 1 Peukalobasso 1 - + Slap Bass 2 Peukalobasso 2 - + Synth Bass 1 Synabasso 1 - + Synth Bass 2 Synabasso 2 - + Violin Viulu - + Viola Alttoviulu - + Cello Sello - + Contrabass Kontrabasso - + Tremolo Strings Tremolojouset - + Pizzicato Strings Pizzicatojouset - + Orchestral Harp Orkesteriharppu - + Timpani Patarummut - + String Ensemble 1 Jousi ensemble 1 - + String Ensemble 2 Jousi ensemble 2 - + SynthStrings 1 Synajouset 1 - + SynthStrings 2 Synajouset 2 - + Choir Aahs Kuoro "Aah" - + Voice Oohs Laulu "Ooh" - + Synth Voice Synalaulu - + Orchestra Hit Orkesterilyönti - + Trumpet Trumpetti - + Trombone Pasuuna - + Tuba Tuuba - + Muted Trumpet Vaimennettu trumpetti - + French Horn Käyrätorvi - + Brass Section Vaskiosasto - + SynthBrass 1 Synavaski 1 - + SynthBrass 2 Synavaski 2 - + Soprano Sax Sopraanosaksofoni - + Alto Sax Alttosaksofoni - + Tenor Sax Tenorisaksofoni - + Baritone Sax Baritonisaksofoni - + Oboe - + English Horn Englannintorvi - + Bassoon Fagotti - + Clarinet Klarinetti - + Piccolo Pikkolo - + Flute Poikkihuilu - + Recorder Nokkahuilu - + Pan Flute Panhuilu - + Blown Bottle Pulloon puhallus - + Shakuhachi - + Whistle Vihellys - + Ocarina Okariina - + Lead 1 (square) Lead 1 (kantti) - + Lead 2 (sawtooth) Lead 2 (sahalaita) - + Lead 3 (calliope) Lead 3 (höyryurut) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) Lead 6 (ääni) - + Lead 7 (fifths) Lead 7 (kvintti) - + Lead 8 (bass + lead) Lead 8 (basso + lead) - + Pad 1 (new age) - + Pad 2 (warm) Pad 2 (lämpö) - + Pad 3 (polysynth) - + Pad 4 (choir) Pad 4 (kuoro) - + Pad 5 (bowed) Pad 5 (jousi) - + Pad 6 (metallic) Pad 6 (metallinen) - + Pad 7 (halo) - + Pad 8 (sweep) Pad 8 (pyyhkäisy) - + FX 1 (rain) FX 1 (sade) - + FX 2 (soundtrack) - + FX 3 (crystal) FX 3 (kristalli) - + FX 4 (atmosphere) FX 4 (atmosfääri) - + FX 5 (brightness) FX 5 (kirkkaus) - + FX 6 (goblins) FX 6 (peikot) - + FX 7 (echoes) FX 7 (kaiut) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe Säkkipilli - + Fiddle Fiideli - + Shanai - + Tinkle Bell Helikellot - + Agogo Agago - + Steel Drums Steel pan - + Woodblock Puupalikat - + Taiko Drum Taikorumpu - + Melodic Tom Melodiatomi - + Synth Drum Synarumpu - + Reverse Cymbal Käänteinen lautanen - + Guitar Fret Noise Kitaran nauhahäly - + Breath Noise Hengitysääni - + Seashore Merenranta - + Bird Tweet Linnun laulu - + Telephone Ring Puhelimen soitto - + Helicopter Helikopteri - + Applause Aplodit - + Gunshot Aseen laukaus @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major duuri - + Minor molli @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums - + Unknown Tuntematon @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Avaa... - + Ctrl+O Ctrl+O - + Open an existing file Avaa olemassaoleva tiedosto - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Poistu ohjelmasta - + &About &Tietoja - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Asetukset - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Tiedosto - + &View &Näytä - + &Song - + Set&up - - + + &Help &Ohje - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Avaa MIDI-tiedosto - + Midi Files MIDI-tiedostot - - - None - Ei mikään - diff --git a/translations/pianobooster_fo.ts b/translations/pianobooster_fo.ts index e18d1ade..6227ce41 100644 --- a/translations/pianobooster_fo.ts +++ b/translations/pianobooster_fo.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano Flygil - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta Selesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ Percussivt Orgul - + Rock Organ - + Church Organ - + Reed Organ Reed Orgul - + Accordion Akkordion - + Harmonica Harmonika - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akkustiskur Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola Bratsj - + Cello - + Contrabass Kontrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trompet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Obo - + English Horn Enskt horn - + Bassoon Fagott - + Clarinet Klarinett - + Piccolo Pikkolo - + Flute Floyta - + Recorder Blokkfloyta - + Pan Flute Panfloyta - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Stál Trummur - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fila - + &View &Sýning - + &Song - + Set&up - - + + &Help &Hjálp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI fílur - - - None - - diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index e74b3953..15a36e41 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Aucun + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Exactitude : - + Song: Morceau : - + Bar: Mesure : @@ -78,647 +86,647 @@ CTrackList - + (None) (aucun) - + Grand Piano Piano à queue - + Bright Piano Piano brillant - + Electric Grand À queue électrique - + Honky-tonk Piano Piano Honky-tonk - + Electric Piano 1 Piano électrique 1 - + Electric Piano 2 Piano électrique 2 - + Harpsichord Clavecin - + Clavi Clavi - + Celesta Célesta - + Glockenspiel Glockenspiel - + Music Box Boîte à musique - + Vibraphone Vibraphone - + Marimba Marimba - + Xylophone Xylophone - + Tubular Bells Carillon - + Dulcimer Dulcimer - + Drawbar Organ Orgue à tirette - + Percussive Organ Orgue percussif - + Rock Organ Orgue rock - + Church Organ Grand orgue - + Reed Organ Orgue à anche - + Accordion Accordéon - + Harmonica Harmonica - + Tango Accordion Accordéon tango - + Acoustic Guitar (nylon) Guitare sèche (nylon) - + Acoustic Guitar (steel) Guitare sèche (acier) - + Electric Guitar (jazz) Guitare électrique (jazz) - + Electric Guitar (clean) Guitare électrique - + Electric Guitar (muted) Guitare électrique (étouffée) - + Overdriven Guitar Guitare saturée - + Distortion Guitar Guitare distorsion - + Guitar harmonics Guitare harmoniques - + Acoustic Bass Basse acoustique - + Electric Bass (finger) Basse électrique (doigt) - + Electric Bass (pick) Basse électrique (médiator) - + Fretless Bass Basse sans frette - + Slap Bass 1 Basse slap 1 - + Slap Bass 2 Basse slap 2 - + Synth Bass 1 Basse synthétique 1 - + Synth Bass 2 Basse synthétique 2 - + Violin Violon - + Viola Alto - + Cello Violoncelle - + Contrabass Contre-basse - + Tremolo Strings Cordes trémolo - + Pizzicato Strings Cordes pizzicato - + Orchestral Harp Harpe orchestrale - + Timpani Timbales - + String Ensemble 1 Ensemble de corde 1 - + String Ensemble 2 Ensemble de corde 2 - + SynthStrings 1 Cordes synthétiques 1 - + SynthStrings 2 Cordes synthétiques 2 - + Choir Aahs Chœur Aaah - + Voice Oohs Voix Oooh - + Synth Voice Voix synthétique - + Orchestra Hit Pêche orchestrale - + Trumpet Trompette - + Trombone Trombone - + Tuba Tuba - + Muted Trumpet Trompette étouffée - + French Horn Cor d'harmonie - + Brass Section Section de cuivre - + SynthBrass 1 Cuivre synthétique 1 - + SynthBrass 2 Cuivre synthétique 2 - + Soprano Sax Sax soprano - + Alto Sax Sax alto - + Tenor Sax Sax ténor - + Baritone Sax Sax baryton - + Oboe Hautbois - + English Horn Cor anglais - + Bassoon Basson - + Clarinet Clarinette - + Piccolo Piccolo - + Flute Flûte - + Recorder Enregistreur - + Pan Flute Flûte de pan - + Blown Bottle Souffle dans une bouteille - + Shakuhachi Shakuhachi - + Whistle Sifflet - + Ocarina Ocarina - + Lead 1 (square) Général 1 (carrée) - + Lead 2 (sawtooth) Général 2 (dent de scie) - + Lead 3 (calliope) Général 3 (orgue à vapeur) - + Lead 4 (chiff) Général 4 (chiff) - + Lead 5 (charang) Général 5 (charang) - + Lead 6 (voice) Général 6 (voix) - + Lead 7 (fifths) Général 7 (quinte) - + Lead 8 (bass + lead) Général 8 (basse + général) - + Pad 1 (new age) Nappe 1 (new age) - + Pad 2 (warm) Nappe 2 (chaud) - + Pad 3 (polysynth) Nappe 3 (polysynth) - + Pad 4 (choir) Nappe 4 (chœur) - + Pad 5 (bowed) Nappe 5 (courbée) - + Pad 6 (metallic) Nappe 6 (métallique) - + Pad 7 (halo) Nappe 7 (halo) - + Pad 8 (sweep) Nappe 8 (balais) - + FX 1 (rain) Effet 1 (pluie) - + FX 2 (soundtrack) Effet 2 (bande-son) - + FX 3 (crystal) Effet 3 (cristal) - + FX 4 (atmosphere) Effet 4 (atmosphère) - + FX 5 (brightness) Effet 5 (brillance) - + FX 6 (goblins) Effet 6 (lutins) - + FX 7 (echoes) Effet 7 (échos) - + FX 8 (sci-fi) Effet 8 (sci-fi) - + Sitar Sitar - + Banjo Banjo - + Shamisen Shamisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Cornemuse - + Fiddle Violon folk - + Shanai Shanai - + Tinkle Bell Tintement de cloche - + Agogo Agogo - + Steel Drums Steeldrums - + Woodblock Woodblock - + Taiko Drum Taikodrum - + Melodic Tom Tom mélodique - + Synth Drum Percussion synthétique - + Reverse Cymbal Cymbale inversée - + Guitar Fret Noise Bruit de frette de guitare - + Breath Noise Bruit de respiration - + Seashore Bord de mer - + Bird Tweet Cuicui d'oiseau - + Telephone Ring Sonnerie de téléphone - + Helicopter Hélicoptère - + Applause Applaudissement - + Gunshot Coup de feu @@ -1219,13 +1227,13 @@ - + Drums Percussions - + Melody Mélodie @@ -1319,7 +1327,7 @@ - + Start and stop playing music Démarrer et arrêter la lecture de la musique @@ -1350,13 +1358,13 @@ - + Major Majeure - + Minor Mineure @@ -1451,7 +1459,7 @@ Ré# - + Playing music from the beginning Lire la musique depuis le début @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Erreur de fichier MIDI - + Cannot open "%1" Impossible d’ouvrir "%1" - + Midi file "%1" is corrupted Le fichier midi "%1" est corrompu @@ -1488,22 +1496,22 @@ QObject - + L G - + R D - + Drums Percussions - + Unknown Inconnu @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Erreur de fichier MIDI Piano Booster - + Cannot open "%1" Impossible d’ouvrir "%1" - + "%1" is not a Midi File "%1" n’est pas un fichier midi - + "%1" is not a valid Midi file "%1" n’est pas un fichier midi valide - + &Open... &Ouvrir... - + Ctrl+O Ctrl+O - + Open an existing file Ouvrir un fichier existant - + E&xit &Quitter - + Ctrl+Q Ctrl+Q - + Exit the application Quitter l'application - + &About À pr&opos - + Show the application's About box Afficher la boîte d'à propos de l'application - + &PC Shortcut Keys &Raccourcis-clavier - + The PC Keyboard shortcut keys Les raccourcis du clavier alphanumérique - + &Midi Setup ... Paramètres &MIDI... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Paramétrer la sortie et l'entrée MIDI - + Piano &Keyboard Setting ... Paramétrer le &clavier-piano ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Modifier les paramètres du clavier-piano - + &Fullscreen &Plein écran - + Fullscreen mode Mode plein-écran - + F11 F11 - + &Show the Side Panel &Afficher le panneau latéral - + Show the Left Side Panel Afficher le panneau-gauche - + F12 F12 - + Show Piano &Keyboard Afficher le &clavier-piano - + Show Piano Keyboard Widget Afficher le clavier piano - + &Preferences ... &Préférences ... - + Settings Paramètres - + Ctrl+P Ctrl+P - + Song &Details ... &Détails du morceau... - + Song Settings Paramètres de morceau - + Ctrl+D Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fichier - + &View &Affichage - + &Song &Morceau - + Set&up &Paramétrage - - + + &Help A&ide - - + + Piano Booster Help Aide de Piano Booster - + &Website &Site sur la toile - + Piano Booster Website Site ouèbe Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Pour commencer</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Vous avez besoin d'un <b>clavier de piano MIDI</b> et d'une <b>interface MIDI</b> pour le PC. Si vous n'avez pas de clavier, vous pouvez toujours essayer PianoBooster en utilisant le clavier alphanumérique du PC, 'X' est le Do médium.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Pour entendre la musique, vous aurez besoin d'un <b>synthétiseur de son General Midi</b>. Le "synthétiseur logiciel Microsoft GS Wavetable" qui vient avec Windows peut être utilisé mais il introduit un délai inacceptable (latence). Sur Linux, vous pouvez utiliser - + or ou - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster fonctionne mieux avec des fichiers MIDI qui ont des parties de piano droite et gauche séparée utilisant les canaux MIDI 3 et 4. - + <h3>Setting Up</h3> <h3>Mise en place</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>Premièrement, utilisez le menu <i>Pramétrages/Paramètres MIDI</i> puis, dans la boîte de dialogue, sélectionnez les interfaces d'entrée et de sortie MIDI qui correspondent à votre matériel. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Ensuite, utilisez <i>Fichier/Ouvrir</i> pour ouvrir un fichier MIDI ".mid" ou un fichier karaoke ".kar". Maintenant, sélectionner si vous voulez seulement <i>écouter</i> de la musique ou <i>jouer avec</i> sur le clavier piano en paramétrant le niveau de <i>compétence</i> sur le coté du panneau. Finalement, lorsque vous êtes prêt, cliquez sur l'<i>icône de lecture</i> (ou pressez la <i>barre d'espace</i>) pour lancer la musique. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Conseils pour jouer du piano</h3><p>Pour des conseils sur la manière de jouer du piano, lire : - + Piano Hints Conseils pour piano - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Plus d'informations</h3><p>Pour plus d'aide sur PianoBooster, veuillez visiter son - + website site ouèbe - + the PianoBooster le PianoBooster - + FAQ FAQ - + and the et le - + user forum forum utilisateur - + About Piano Booster À propos de Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Augmenter</b> vos talents de joueur de <b>Piano</b> !<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Copyright(c) L. J. Barman, 2008-2020 ; tous droits réservés.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019 ; tous droits réservés.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Ce programme est disponible sous les termes de la Licence Publique Générale GNU version 3 telle que publiée par la Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Ce programme contient également RtMIDI : classes C++ entrée/sortie MIDI<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019 ; tous droits réservés. - + space espace - + PC Keyboard ShortCuts Raccourcis du clavier alphanumérique - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Raccourcis-clavier</center></h2><p>Les raccourcis-clavier suivants ont été assignés.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Action</th><th>Touche</th></tr> - + Choose the right hand Choisir la main droite - + Choose both hands Choisir les deux mains - + Choose the left Hand Choisir la main gauche - + Play from start toggle Basculer le jouer depuis le début - + Play Pause Toggle Bascule pause lecture - - + + Increase the speed by 5% Augmente la vitesse de 5% - + Change to the Next Song Va au morceau suivant - + Change to the Previous Song Va au morceau précédant - + Change to the Next Book Va au livre suivant - + Change to the Previous Book Va au livre précédant - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Touches de piano factice</td><td>X est le Do du milieu</td></tr></table> </center><br> - + Open Midi File Ouvrir un fichier MIDI - + Midi Files Fichiers MIDI - - - None - Aucun - diff --git a/translations/pianobooster_fur.ts b/translations/pianobooster_fur.ts index b20896b3..64fb9869 100644 --- a/translations/pianobooster_fur.ts +++ b/translations/pianobooster_fur.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + No stâ centrâ + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - No stâ centrâ - diff --git a/translations/pianobooster_fy.ts b/translations/pianobooster_fy.ts index 15d8fa4b..0554096b 100644 --- a/translations/pianobooster_fy.ts +++ b/translations/pianobooster_fy.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Neat + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Iepenje... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Ynfo oer - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Ynstellings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Triem - + &View Byl&d - + &Song - + Set&up - - + + &Help &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Neat - diff --git a/translations/pianobooster_ga.ts b/translations/pianobooster_ga.ts index f34dd06b..05bba799 100644 --- a/translations/pianobooster_ga.ts +++ b/translations/pianobooster_ga.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Neamhní + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano Mórphianó - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Cruitchlár - + Clavi - + Celesta Ceileiste - + Glockenspiel Glocainspíl - + Music Box - + Vibraphone Vibreafón - + Marimba Mairimbe - + Xylophone Xileafón - + Tubular Bells - + Dulcimer Téadchlár - + Drawbar Organ - + Percussive Organ Greadorgán - + Rock Organ - + Church Organ - + Reed Organ Feagorgán - + Accordion Cairdín - + Harmonica Armónach - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Dordghiotár Fuaimiúil - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Veidhlín - + Viola Vióla - + Cello - + Contrabass Olldord - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Tiompáin - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trumpa - + Trombone Trombón - + Tuba Tiúba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Óbó - + English Horn Corn Sasanach - + Bassoon Basún - + Clarinet Clairnéid - + Piccolo Fliúiteog - + Flute Fliúit - + Recorder Fliúit Shasanach - + Pan Flute Coinlín Ceoil - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Ócairín - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Siotár - + Banjo Bainseó - + Shamisen Seamasan - + Koto Cótó - + Kalimba Cailimbe - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Drumaí Cruach - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Anaithnid @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Oscail... - + Ctrl+O - + Open an existing file Oscail comhad atá ann - + E&xit - + Ctrl+Q - + Exit the application - + &About &Eolas - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Socruithe - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Comhad - + &View &Amharc - + &Song - + Set&up - - + + &Help Cab&hair - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Neamhní - diff --git a/translations/pianobooster_gd.ts b/translations/pianobooster_gd.ts index ff591dec..25a1462c 100644 --- a/translations/pianobooster_gd.ts +++ b/translations/pianobooster_gd.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Chan eil gin + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano Mòr-phiàno - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Cruit-chòrda - + Clavi - + Celesta Celeste - + Glockenspiel - + Music Box - + Vibraphone Critheafon - + Marimba - + Xylophone Saidhleafon - + Tubular Bells - + Dulcimer Dulsamar - + Drawbar Organ - + Percussive Organ Beum-organ - + Rock Organ - + Church Organ - + Reed Organ Organ ribheid - + Accordion Bogsa - + Harmonica Organ-beòil - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Beus fuaimneach - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Fìdheall - + Viola - + Cello - + Contrabass Contra-bheus - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Gall-druma - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trombaid - + Trombone Trompan - + Tuba Tiùba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Òbo - + English Horn Gall-chòrn - + Bassoon Torm-fheadan - + Clarinet Clàirneid - + Piccolo - + Flute Duiseal - + Recorder Cuisle-bhinn - + Pan Flute Pan-duiseal - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo Bainsio - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Drumaichean stàillinn - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d♯ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Chan eil fhios @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Mu dhèidhinn - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Roghainnean - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Faidhle - + &View &Sealladh - + &Song - + Set&up - - + + &Help Cob&hair - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files Faidhlichean MIDI - - - None - Chan eil gin - diff --git a/translations/pianobooster_gl.ts b/translations/pianobooster_gl.ts index b6740696..8f62796f 100644 --- a/translations/pianobooster_gl.ts +++ b/translations/pianobooster_gl.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ningún + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Precisión: - + Song: Canción: - + Bar: Barra: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ningún) - + Grand Piano Piano de cola - + Bright Piano Piano acústico brillante - + Electric Grand Piano de cola eléctrico - + Honky-tonk Piano Piano Honky-tonk - + Electric Piano 1 Piano eléctrico 1 - + Electric Piano 2 Piano eléctrico 2 - + Harpsichord Clavicémbalo (clave) - + Clavi Clavinet - + Celesta Celesta - + Glockenspiel Carillón - + Music Box Caja de música - + Vibraphone Vibráfono - + Marimba Marimba - + Xylophone Xilófono - + Tubular Bells Campás tubulares - + Dulcimer Salterio - + Drawbar Organ Órganos de barras esvarantes (Hammond) - + Percussive Organ Órgano percutivo - + Rock Organ Órgano de rock - + Church Organ Órgano de igrexa - + Reed Organ Harmonio - + Accordion Acordeón - + Harmonica Harmónica - + Tango Accordion Bandoneón - + Acoustic Guitar (nylon) Guitarra española - + Acoustic Guitar (steel) Guitarra acústica - + Electric Guitar (jazz) Guitarra eléctrica (jazz) - + Electric Guitar (clean) Guitarra Eléctrica - + Electric Guitar (muted) Guitarra Eléctrica (silenciada) - + Overdriven Guitar Guitarra saturada - + Distortion Guitar Guitarra distorsionada - + Guitar harmonics Harmónicos de guitarra - + Acoustic Bass Baixo acústico - + Electric Bass (finger) Baixo eléctrico pulsado - + Electric Bass (pick) Baixo eléctrico punteado - + Fretless Bass Baixo sen trastes - + Slap Bass 1 Baixo «slap» 1 - + Slap Bass 2 Baixo «slap» 2 - + Synth Bass 1 Baixo sintetizado 1 - + Synth Bass 2 Baixo sintetizado 2 - + Violin Violín - + Viola Viola - + Cello Violoncello - + Contrabass Contrabaixo - + Tremolo Strings Cordas con trémolo - + Pizzicato Strings Cordas con pizzicato - + Orchestral Harp Arpa - + Timpani Timbais - + String Ensemble 1 Conxunto de corda 1 - + String Ensemble 2 Conxunto de corda 2 - + SynthStrings 1 Cordas sintetizadas 1 - + SynthStrings 2 Cordas sintetizadas 2 - + Choir Aahs Coro «aahs» - + Voice Oohs Voz «oohs» - + Synth Voice Voz sintetizada - + Orchestra Hit Conxunto de stacaatos - + Trumpet Trompeta - + Trombone Trombón - + Tuba Tuba - + Muted Trumpet Trompeta con sordina - + French Horn Corno francés - + Brass Section Sección de metales - + SynthBrass 1 Metales sintetizados 1 - + SynthBrass 2 Metales sintetizados 2 - + Soprano Sax Saxofón soprano - + Alto Sax Saxofón alto - + Tenor Sax Saxofón tenor - + Baritone Sax Saxofón barítono - + Oboe Óboe - + English Horn Corno inglés - + Bassoon Fagot - + Clarinet Clarinete - + Piccolo Frautín - + Flute Frauta travesa - + Recorder Frauta doce - + Pan Flute Frauta de Pan - + Blown Bottle Colo de botella - + Shakuhachi Frauta xaponesa - + Whistle Asubío - + Ocarina Ocarina - + Lead 1 (square) Melodía 1 (onda cadrada) - + Lead 2 (sawtooth) Melodía 2 (dente de serra) - + Lead 3 (calliope) Melodía 3 (órgano de vapor) - + Lead 4 (chiff) Melodía 4 (siseo órgano) - + Lead 5 (charang) Melodía 5 (charanga) - + Lead 6 (voice) Melodía 6 (voz) - + Lead 7 (fifths) Melodía 7 (quintas) - + Lead 8 (bass + lead) Melodía 8 (baixo e melodías) - + Pad 1 (new age) Fondo 1 (nova era) - + Pad 2 (warm) Fondo 2 (cálido) - + Pad 3 (polysynth) Fondo 3 (polisintetizador) - + Pad 4 (choir) Fondo 4 (coro) - + Pad 5 (bowed) Fondo 5 (de arco) - + Pad 6 (metallic) Fondo 6 (metálico) - + Pad 7 (halo) Fondo 7 (celestial) - + Pad 8 (sweep) Fondo 8 (barrido) - + FX 1 (rain) Efecto 1 (choiva) - + FX 2 (soundtrack) Efecto 2 (banda sonora) - + FX 3 (crystal) Efecto 3 (cristais) - + FX 4 (atmosphere) Efecto 4 (atmosfera) - + FX 5 (brightness) Efecto 5 (brillo) - + FX 6 (goblins) Efecto 6 (trasnos) - + FX 7 (echoes) Efecto 7 (ecos) - + FX 8 (sci-fi) Efecto 8 (ciencia ficción) - + Sitar Sitar - + Banjo Banxo - + Shamisen Shamisen (sangen) - + Koto Koto - + Kalimba Kalimba (Mbira, piano de man) - + Bag pipe Gaita - + Fiddle Violín Celta - + Shanai Shehnai - + Tinkle Bell Campaíñas - + Agogo Agogo - + Steel Drums Tambores de aceiro - + Woodblock Caixa de madeira - + Taiko Drum Tambor Taiko - + Melodic Tom Timbal melódico - + Synth Drum Tambor sintetizado - + Reverse Cymbal Platillo invertido - + Guitar Fret Noise Trasteo de guitarra - + Breath Noise Ruído de respiración - + Seashore Praia - + Bird Tweet Chío de paxaro - + Telephone Ring Timbre de teléfono - + Helicopter Helicóptero - + Applause Aplauso - + Gunshot Disparo @@ -1219,13 +1227,13 @@ - + Drums Tambores - + Melody Melodía @@ -1319,7 +1327,7 @@ - + Start and stop playing music Comezar / Deter a reprodución musical @@ -1350,13 +1358,13 @@ - + Major Maior - + Minor Menor @@ -1451,7 +1459,7 @@ D# (Re#) - + Playing music from the beginning Reproducir a música desde o principio @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Produciuse un erro no ficheiro MIDI - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L E - + R D - + Drums Baterías - + Unknown Descoñecido @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Produciuse un erro no ficheiro MIDI do PianoBooster - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abrir un ficheiro existente - + E&xit &Saír - + Ctrl+Q Ctrl+Q - + Exit the application Saír do aplicativo - + &About So&bre - + Show the application's About box Amosar a xanela con información sobre o aplicativo - + &PC Shortcut Keys &Teclas de atallo no PC - + The PC Keyboard shortcut keys Teclas de atallo no teclado do PC - + &Midi Setup ... Configuración &MIDI ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Configurar as entradas e saídas MIDI - + Piano &Keyboard Setting ... Axustes do &teclado do piano… - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Cambiar os axustes do teclado do piano - + &Fullscreen Pantalla &completa - + Fullscreen mode Modo de pantalla completa - + F11 F11 - + &Show the Side Panel Amosar o &panel lateral - + Show the Left Side Panel Amosar o panel lateral esquerdo - + F12 F12 - + Show Piano &Keyboard Amosar o &teclado do piano - + Show Piano Keyboard Widget Amosar o trebello do teclado do piano - + &Preferences ... &Preferencias ... - + Settings Axustes - + Ctrl+P Ctrl+P - + Song &Details ... &Detalles da canción... - + Song Settings Axustes do son - + Ctrl+D - + Shift+F1 Maiús+F1 - + Alt+F1 Alt+F1 - + &File &Ficheiro - + &View &Ver - + &Song &Canción - + Set&up Config&uración - - + + &Help &Axuda - - + + Piano Booster Help Axuda de Piano Booster - + &Website Páxina &web - + Piano Booster Website Sitio web de Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Sobre Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Versión %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Mellora</b> as túas habilidades co <b>piano</b>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Copyright(c) L. J. Barman, 2008-2013; Todos os dereitos reervados.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; Todos os dereitos reervados.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Este programa está dispoñíbel baixo os térmos da Licenza Pública Xeral de GNU versión 3 publicada pola Fundación do Software Libre. - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Este programa tamén contén RtMIDI: clases MIDI e/s C++ en tempo real<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; Todos os dereitos reervados. - + space espazo - + PC Keyboard ShortCuts Atallos do teclado do PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Atallos do teclado</center></h2><p>Definironse funcións de atallo nas seguintes teclas do teclado do PC.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Acción</th><th>Tecla</th></tr> - + Choose the right hand Escoller a man dereita - + Choose both hands Escoller ámbalas dúas mans - + Choose the left Hand Escoller a man esquerda - + Play from start toggle Reproducir desde o principio - + Play Pause Toggle Reproducir / Parar - - + + Increase the speed by 5% Aumentar a velocidade nun 5% - + Change to the Next Song Ir á canción seguinte - + Change to the Previous Song Ir á canción anterior - + Change to the Next Book Ir á partitura seguinte - + Change to the Previous Book Ir á partitura anterior - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Teclas de piano simuladas</td><td>X é o do (C) central</td></tr></table> </center><br> - + Open Midi File Abrir un ficheiro MIDI - + Midi Files Ficheiro MIDI - - - None - Ningún - diff --git a/translations/pianobooster_gu.ts b/translations/pianobooster_gu.ts index f1570fe8..28103f73 100644 --- a/translations/pianobooster_gu.ts +++ b/translations/pianobooster_gu.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + કંઈ નહિં + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown અજ્ઞાત @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About વિશે (&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings સુયોજનો - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File ફાઇલ (&F) - + &View દેખાવ (&V) - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - કંઈ નહિં - diff --git a/translations/pianobooster_he.ts b/translations/pianobooster_he.ts index fbbd55de..2b45aa4e 100644 --- a/translations/pianobooster_he.ts +++ b/translations/pianobooster_he.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ללא + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: דיוק: - + Song: שיר: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (ללא) - + Grand Piano פסנתר כנף - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord צ'מבלו - + Clavi - + Celesta צ'לסטה - + Glockenspiel פעמוניה - + Music Box - + Vibraphone ויברפון - + Marimba מרימבה - + Xylophone קסילופון - + Tubular Bells - + Dulcimer דולצימר - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ עוגב קנים - + Accordion אקורדיון - + Harmonica מפוחית - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass בס אקוסטית - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin כינור - + Viola ויולה - + Cello - + Contrabass קונטרבס - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani טימפאני - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet חצוצרה - + Trombone טרומבון - + Tuba טובה - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe אבוב - + English Horn קרן אנגלית - + Bassoon באסון - + Clarinet קלרינט - + Piccolo פיקולו - + Flute חליל - + Recorder חלילית - + Pan Flute חליל פאן - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina אוקרינה - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar סיטאר - + Banjo בנג'ו - + Shamisen שַמיסֵן - + Koto קוטו - + Kalimba קלימבה - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums תופי פלדה - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major גדול - + Minor קטן @@ -1451,7 +1459,7 @@ רה# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown לא ידוע @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &פתיחה... - + Ctrl+O Ctrl+O - + Open an existing file - + E&xit &צא - + Ctrl+Q Ctrl+Q - + Exit the application - + &About &אודות - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen מ&סך מלא - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &העדפות ... - + Settings הגדרות - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &קובץ - + &View &תצוגה - + &Song &שיר - + Set&up - - + + &Help ע&זרה - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% הגברת המהירות ב־5% - + Change to the Next Song מעבר לשיר הבא - + Change to the Previous Song מעבר לשיר הקודם - + Change to the Next Book מעבר לספר הבא - + Change to the Previous Book מעבר לספר הקודם - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File פתיחת קובץ Midi - + Midi Files קובצי Midi - - - None - ללא - diff --git a/translations/pianobooster_hi.ts b/translations/pianobooster_hi.ts index 1b2653f3..e54794cf 100644 --- a/translations/pianobooster_hi.ts +++ b/translations/pianobooster_hi.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + कुछ नहीं + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown अज्ञात @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... खोलें (&O)... - + Ctrl+O - + Open an existing file मौज़ूदा फ़ाइल को खोलें - + E&xit - + Ctrl+Q - + Exit the application - + &About के बारे में (&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings निर्धारण - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File फ़ाइल (&F) - + &View देखें (&V) - + &Song - + Set&up - - + + &Help मदद (&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - कुछ नहीं - diff --git a/translations/pianobooster_hr.ts b/translations/pianobooster_hr.ts index 97712b70..007a7bc4 100644 --- a/translations/pianobooster_hr.ts +++ b/translations/pianobooster_hr.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nijedan + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Točnost: - + Song: Pjesma: - + Bar: Takt: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ništa) - + Grand Piano Koncertni klavir - + Bright Piano - + Electric Grand - + Honky-tonk Piano Honky-tonk klavir - + Electric Piano 1 Električni klavir 1 - + Electric Piano 2 Električni klavir 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel Orkestralna zvona - + Music Box - + Vibraphone Vibrafon - + Marimba Marimba - + Xylophone Ksilofon - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ Udarne orgulje - + Rock Organ Rock orgulja - + Church Organ Crkvena orgulja - + Reed Organ - + Accordion Harmonika - + Harmonica Usna harmonika - + Tango Accordion - + Acoustic Guitar (nylon) Akustična gitara (najlon) - + Acoustic Guitar (steel) Akustična gitara (čelik) - + Electric Guitar (jazz) Električna gitara (jazz) - + Electric Guitar (clean) Električna gitara (nepojačana) - + Electric Guitar (muted) Električna gitara (utišana) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akustični bas - + Electric Bass (finger) Električni bas (prsti) - + Electric Bass (pick) Električni bas (plektron) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Violina - + Viola Viola - + Cello Violončelo - + Contrabass Kontrabas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp Orkestralna harfa - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Truba - + Trombone Trombon - + Tuba Tuba - + Muted Trumpet Stišana truba - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax Soprano saksofon - + Alto Sax Alt saksofon - + Tenor Sax Tenor saksofon - + Baritone Sax Bariton saksofon - + Oboe Oboa - + English Horn Engleski rog - + Bassoon - + Clarinet Klarinet - + Piccolo Pikolo - + Flute Flauta - + Recorder Rekorder - + Pan Flute Panova flauta - + Blown Bottle Puhana boca - + Shakuhachi - + Whistle Fučkaljka - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore Morska obala - + Bird Tweet - + Telephone Ring Telefonsko zvono - + Helicopter Helikopter - + Applause Aplaus - + Gunshot Pucanj @@ -1135,7 +1143,7 @@ Song: - + Pjesma: @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1256,7 +1264,7 @@ Dialog - + Dijaloški okvir @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1391,7 +1399,7 @@ C - + C @@ -1403,37 +1411,37 @@ F - + F G - + G D - + D A - + A E - + E B - + B @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nepoznato @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Otvori... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About O &programu - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Postavke ... - + Settings Postavke - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Datoteka - + &View &Prikaz - + &Song - + Set&up - - + + &Help &Pomoć - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + spacija - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Nijedan - diff --git a/translations/pianobooster_hu.ts b/translations/pianobooster_hu.ts index 03adfaf8..902e1086 100644 --- a/translations/pianobooster_hu.ts +++ b/translations/pianobooster_hu.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nincs + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Nincs) - + Grand Piano Hangversenyzongora - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Csembaló - + Clavi - + Celesta Cseleszta - + Glockenspiel Harangjáték - + Music Box - + Vibraphone Vibrafon - + Marimba - + Xylophone Xilofon - + Tubular Bells Csőharang - + Dulcimer Cimbalom - + Drawbar Organ - + Percussive Organ Perkusszív orgona - + Rock Organ - + Church Organ Templomi orgona - + Reed Organ Nyelvsípos orgona - + Accordion Harmonika - + Harmonica Szájharmonika - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akusztikus basszus - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 Slap basszus 1 - + Slap Bass 2 Slap basszus 2 - + Synth Bass 1 Szinti Basszus 1 - + Synth Bass 2 Szinti Basszus 2 - + Violin Hegedű - + Viola Brácsa - + Cello Cselló - + Contrabass Bőgő - + Tremolo Strings Vonóstremoló - + Pizzicato Strings - + Orchestral Harp - + Timpani Üstdob - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs Kórus A - + Voice Oohs Énekhang O - + Synth Voice - + Orchestra Hit Zenekari ütés - + Trumpet Trombita - + Trombone Harsona - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax Szopránszaxofon - + Alto Sax Altszaxofon - + Tenor Sax Tenorszaxofon - + Baritone Sax Baritonszaxofon - + Oboe Oboa - + English Horn Angolkürt - + Bassoon Fagott - + Clarinet Klarinét - + Piccolo Pikkoló - + Flute Fuvola - + Recorder Furulya - + Pan Flute Pánsíp - + Blown Bottle - + Shakuhachi Sakuhacsi - + Whistle Síp - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Szitár - + Banjo Bendzsó - + Shamisen Samiszen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Acéldob - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore Tenger - + Bird Tweet - + Telephone Ring - + Helicopter Helikopter - + Applause Tapsvihar - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d♯ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Ismeretlen @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Megnyitás... - + Ctrl+O Ctrl+O - + Open an existing file Fájl megnyitása - + E&xit &Kilépés - + Ctrl+Q Ctrl+Q - + Exit the application - + &About Név&jegy - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Teljes képernyő - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Beállítások ... - + Settings Beállítások - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fájl - + &View &Nézet - + &Song - + Set&up - - + + &Help &Segítség - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI fájlok - - - None - Nincs - diff --git a/translations/pianobooster_hy.ts b/translations/pianobooster_hy.ts index 5fbd9056..a9f2bdb6 100644 --- a/translations/pianobooster_hy.ts +++ b/translations/pianobooster_hy.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Գոբոյ - + English Horn Անգլիական եղջրափող - + Bassoon - + Clarinet - + Piccolo Պիկկոլո - + Flute Ֆլեյտա - + Recorder Բլոկֆլեյտա - + Pan Flute Պանի ֆլեյտա - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Օկարինա - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ ռե♯ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ Երաժշտական ծրագիր (Պիանո Բուստեր) - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Նիշք - + &View &Տեսք - + &Song - + Set&up - - + + &Help &Օգնություն - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI նիշքեր - - - None - - diff --git a/translations/pianobooster_id.ts b/translations/pianobooster_id.ts index fb3c785f..9291a810 100644 --- a/translations/pianobooster_id.ts +++ b/translations/pianobooster_id.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Tidak ada + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Bass akustik - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Biola - + Viola Biola Alto - + Cello - + Contrabass Kontrabas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Terompet - + Trombone - + Tuba - + Muted Trumpet - + French Horn Terompet Perancis - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Obu - + English Horn Terompet Inggris - + Bassoon - + Clarinet - + Piccolo Pikolo - + Flute Seruling - + Recorder Perekam - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Drum besi - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major Mayor - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Tak dikenal @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Buka... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Tentang - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Pengaturan - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Berkas - + &View &Tampilan - + &Song - + Set&up - - + + &Help B&antuan - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Buka Berkas MIDI - + Midi Files Berkas MIDI - - - None - Tidak ada - diff --git a/translations/pianobooster_is.ts b/translations/pianobooster_is.ts index e820500e..3ecb44d9 100644 --- a/translations/pianobooster_is.ts +++ b/translations/pianobooster_is.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Nákvæmni: - + Song: Lag: - + Bar: Taktur: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ekkert) - + Grand Piano Flygill - + Bright Piano Skært píanó - + Electric Grand Rafmagnsflygill - + Honky-tonk Piano Honky-tonk píanó - + Electric Piano 1 Rafmagnspíanó 1 - + Electric Piano 2 Rafmagnspíanó 2 - + Harpsichord Semball - + Clavi Klavikord - + Celesta Selesta - + Glockenspiel Klukkuspil - + Music Box Spiladós - + Vibraphone Víbrafónn - + Marimba Marímba - + Xylophone Sílafónn - + Tubular Bells Rörklukkur - + Dulcimer Dulcimer - + Drawbar Organ Dragsveifaorgel (drawbar) - + Percussive Organ Ásláttarorgel - + Rock Organ Rokkorgel - + Church Organ Kirkjuorgel - + Reed Organ - + Accordion Harmónikka - + Harmonica Munnharpa - + Tango Accordion Tangó-harmónikka - + Acoustic Guitar (nylon) Órafmagnaður gítar (nælonstrengir) - + Acoustic Guitar (steel) Órafmagnaður gítar (stálstrengir) - + Electric Guitar (jazz) Rafmagnsgítar (djass) - + Electric Guitar (clean) Rafmagnsgítar (hreinn) - + Electric Guitar (muted) Rafmagnsgítar (daufur) - + Overdriven Guitar Gítar á yfirsnúningi - + Distortion Guitar Bjagaður gítar - + Guitar harmonics Gítarhljómar - + Acoustic Bass Órafmagnaður bassi - + Electric Bass (finger) Rafbassi (fingur) - + Electric Bass (pick) Rafbassi (plokk) - + Fretless Bass Bandalaus bassi - + Slap Bass 1 Slagbassi 1 - + Slap Bass 2 Slagbassi 2 - + Synth Bass 1 Gerfilbassi 1 - + Synth Bass 2 Gerfilbassi 2 - + Violin Fiðla - + Viola Lágfiðla - + Cello Selló - + Contrabass Kontrabassi - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp Hljómsveitarharpa - + Timpani Pákur - + String Ensemble 1 Strengjasveit 1 - + String Ensemble 2 Strengjasveit 2 - + SynthStrings 1 SynthStrings 1 - + SynthStrings 2 SynthStrings 2 - + Choir Aahs Aah-kór - + Voice Oohs Ooh-rödd - + Synth Voice Hljóðgervilsrödd - + Orchestra Hit - + Trumpet Trompet - + Trombone Básúna - + Tuba Túba - + Muted Trumpet Þaggaður trompet - + French Horn Franskt horn - + Brass Section Málmblásarasveit - + SynthBrass 1 SynthBrass 1 - + SynthBrass 2 SynthBrass 2 - + Soprano Sax Sópransaxófónn - + Alto Sax Altsaxófónn - + Tenor Sax Tenórsaxófónn - + Baritone Sax Barítónsaxófónn - + Oboe Óbó - + English Horn Enskt horn - + Bassoon Fagott - + Clarinet Klarínett - + Piccolo Pikkolóflauta - + Flute Flauta - + Recorder Upptaka - + Pan Flute Panflauta - + Blown Bottle Flöskublástur - + Shakuhachi Shakuhachi bambusflauta - + Whistle Blístur - + Ocarina Okkarína - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sítar - + Banjo Banjó - + Shamisen Shamisen strengjahljóðfæri - + Koto Koto - + Kalimba Kalimba - + Bag pipe Sekkjapípa - + Fiddle Fíólín - + Shanai Shanai - + Tinkle Bell - + Agogo Agogo - + Steel Drums Stáltrommur - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise Andardráttur - + Seashore Sjávarsíða - + Bird Tweet Fuglatíst - + Telephone Ring Símhringing - + Helicopter Þyrla - + Applause Lófatak - + Gunshot Byssuskot @@ -1219,13 +1227,13 @@ - + Drums Trommur - + Melody Laglína @@ -1319,7 +1327,7 @@ - + Start and stop playing music Ræsa og stöðva afspilun @@ -1350,13 +1358,13 @@ - + Major Dúr - + Minor Moll @@ -1451,7 +1459,7 @@ D# - + Playing music from the beginning Spilandi tónlist frá upphafi @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Villa í MIDI-skrá - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L V - + R H - + Drums Trommur - + Unknown Óþekkt @@ -1516,444 +1524,439 @@ Píanó Booster - - - + + + PianoBooster Midi File Error Villa í PianoBooster MIDI-skrá - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Opna... - + Ctrl+O Ctrl+O - + Open an existing file Opna fyrirliggjandi skrá - + E&xit &Hætta - + Ctrl+Q Ctrl+Q - + Exit the application Hætta í forritinu - + &About Um &hugbúnaðinn - + Show the application's About box Birta upplýsingaglugga forritsins - + &PC Shortcut Keys &Flýtilyklar á lyklaborði tölvunnar - + The PC Keyboard shortcut keys Flýtilyklar á lyklaborði tölvunnar - + &Midi Setup ... Uppsetning &MIDI ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... Stillingar &nótnaborðs á píanói ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Breyta stillingum nótnaborðs á píanói - + &Fullscreen &Fylla skjáinn - + Fullscreen mode - + F11 F11 - + &Show the Side Panel &Birta hliðarspjaldið - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard Birta &nótnaborð á píanói - + Show Piano Keyboard Widget - + &Preferences ... &Kjörstillingar ... - + Settings Stillingar - + Ctrl+P Ctrl+P - + Song &Details ... Nánar um &lagið ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Skrá - + &View S&koða - + &Song &Lag - + Set&up &Uppsetning - - + + &Help &Hjálp - - + + Piano Booster Help Aðstoð við notkun Piano Booster - + &Website &Vefsvæði - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Um Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Útgáfa %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Bættu</b> hæfileika þína til að spila á <b>píanó</b>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Höfundarréttur (c) L. J. Barman, 2008-2013; Öll réttindi áskilin.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Höfundarréttur (c) Fabien Givors, 2018-2019; Öll réttindi áskilin.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Þetta er frjáls hugbúnaður; þú mátt dreifa honum og/eða breyta samkvæmt skilmálum í almenna GNU GPL3 notkunarleyfinu eins og það er gefið út af Frjálsu hugbúnaðarstofnuninni.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Þetta forrit inniheldur einnig RtMIDI: rauntíma MIDI i/o C++ klasa<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Höfundarréttur (c) Gary P. Scavone, 2003-2019; Öll réttindi áskilin. - + space bil - + PC Keyboard ShortCuts Lyklaborðsstyttingar - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Flýtileiðir á lyklaborði</center></h2><p>Eftirfarandi flýtilyklasamsetningar hafa verið skilgreindar.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand Veldu hægri hendina - + Choose both hands Veldu báðar hendurnar - + Choose the left Hand Veldu vinstri hendina - + Play from start toggle - + Play Pause Toggle Víxla afpilun/bið - - + + Increase the speed by 5% Auka hraðann um 5% - + Change to the Next Song Skipta yfir í næsta lag - + Change to the Previous Song Skipta yfir í fyrra lag - + Change to the Next Book Skipta yfir í næsta lagahefti - + Change to the Previous Book Skipta yfir í fyrra lagahefti - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Opna MIDI-skrá - + Midi Files MIDI-skrár - - - None - Engin - diff --git a/translations/pianobooster_it.ts b/translations/pianobooster_it.ts index 7e2370f8..47cc3f76 100644 --- a/translations/pianobooster_it.ts +++ b/translations/pianobooster_it.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nessuno + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Canzone: - + Bar: Misura: @@ -78,647 +86,647 @@ CTrackList - + (None) (nessuno) - + Grand Piano Pianoforte a coda - + Bright Piano - + Electric Grand - + Honky-tonk Piano Pianoforte honky-tonk - + Electric Piano 1 Piano elettrico 1 - + Electric Piano 2 Piano elettrico 2 - + Harpsichord Clavicembalo - + Clavi Clavicembalo - + Celesta - + Glockenspiel - + Music Box Carillon - + Vibraphone Vibrafono - + Marimba - + Xylophone Xilofono - + Tubular Bells Campane tubolari - + Dulcimer Salterio - + Drawbar Organ Organo Hammond - + Percussive Organ Percussione organo - + Rock Organ Organo Rock - + Church Organ Organo da chiesa - + Reed Organ Organo ad ancia - + Accordion Fisarmonica - + Harmonica Armonica - + Tango Accordion Bandoneón - + Acoustic Guitar (nylon) Chitarra classica - + Acoustic Guitar (steel) Chitarra acustica - + Electric Guitar (jazz) Chitarra elettrica jazz - + Electric Guitar (clean) Chitarra elettrica (pulita) - + Electric Guitar (muted) Chitarra elettrica (muted) - + Overdriven Guitar Chitarra elettrica overdrive - + Distortion Guitar Chitarra elettrica distorta - + Guitar harmonics Citarra acustica - + Acoustic Bass Basso acustico - + Electric Bass (finger) Basso Elettrico (dito) - + Electric Bass (pick) Basso Elettrico (pick) - + Fretless Bass Basso fretless (senza tasti) - + Slap Bass 1 Basso slap 1 - + Slap Bass 2 Basso slap 2 - + Synth Bass 1 Basso synth 1 - + Synth Bass 2 Basso synth 2 - + Violin Violino - + Viola - + Cello Violoncello - + Contrabass Contrabbasso - + Tremolo Strings Archi tremolo - + Pizzicato Strings Archi pizzicati - + Orchestral Harp Arpa - + Timpani - + String Ensemble 1 Archi ensemble 1 - + String Ensemble 2 Archi ensemble 2 - + SynthStrings 1 Archi synth 1 - + SynthStrings 2 Archi synth 2 - + Choir Aahs Coro Aahs - + Voice Oohs Voce Oohs - + Synth Voice Voci synth - + Orchestra Hit Orchestra colpo - + Trumpet Tromba - + Trombone - + Tuba - + Muted Trumpet Tromba sordina - + French Horn Corno francese - + Brass Section Sezione di ottoni - + SynthBrass 1 Ottoni synth 1 - + SynthBrass 2 Ottoni synth 2 - + Soprano Sax Sassofono soprano - + Alto Sax Sassofono contralto - + Tenor Sax Sassofono tenore - + Baritone Sax Sassofono baritono - + Oboe - + English Horn Corno inglese - + Bassoon Fagotto - + Clarinet Clarinetto - + Piccolo Ottavino - + Flute Flauto - + Recorder Flauto dolce - + Pan Flute Flauto di Pan - + Blown Bottle Flauto bottighia - + Shakuhachi - + Whistle Zuffolo - + Ocarina - + Lead 1 (square) Solo 1 (onda quadra) - + Lead 2 (sawtooth) Solo 2 (dente di sega) - + Lead 3 (calliope) Solo 3 (calliope) - + Lead 4 (chiff) Solo 4 (chiff) - + Lead 5 (charang) Solo 5 (charango) - + Lead 6 (voice) Solo 6 (voce) - + Lead 7 (fifths) Solo 7 (quinte) - + Lead 8 (bass + lead) Solo 8 (basso + solo) - + Pad 1 (new age) Tappeto 1 (new age) - + Pad 2 (warm) Tappero 2 (caldo) - + Pad 3 (polysynth) Tappeto 3 (polysynth) - + Pad 4 (choir) Tappeto 4 (coro) - + Pad 5 (bowed) Tappeto 5 (archi) - + Pad 6 (metallic) Tappeto 6 (metallico) - + Pad 7 (halo) Tappeto 7 (halo) - + Pad 8 (sweep) Tappeto 8 (sweep) - + FX 1 (rain) FX1 (pioggia) - + FX 2 (soundtrack) FX2 (colonna sonora) - + FX 3 (crystal) FX3 (cristallo) - + FX 4 (atmosphere) FX4 (atmosfera) - + FX 5 (brightness) FX 5 (brillante) - + FX 6 (goblins) - + FX 7 (echoes) FX 7 (echi) - + FX 8 (sci-fi) FX 8 (fantascienza) - + Sitar - + Banjo Benjo - + Shamisen - + Koto - + Kalimba - + Bag pipe Cornamusa - + Fiddle Violino folk - + Shanai shanai - + Tinkle Bell Campanella - + Agogo - + Steel Drums Tamburi d'acciaio - + Woodblock Blocchi di legno - + Taiko Drum Tamburo taico - + Melodic Tom Tamburo melodico - + Synth Drum Tamburo synth - + Reverse Cymbal Cembalo al contrario - + Guitar Fret Noise Tasto chitarra (rumore) - + Breath Noise Respiro (rumore) - + Seashore Mare - + Bird Tweet Cinguettio di uccellini - + Telephone Ring Telefono - + Helicopter Elicottero - + Applause Applausi - + Gunshot Sparo @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major Maggiore - + Minor Minore @@ -1451,7 +1459,7 @@ re# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums - + Unknown Sconosciuto @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Apri... - + Ctrl+O Ctrl+O - + Open an existing file Apri un file esistente - + E&xit E&sci - + Ctrl+Q Ctrl+Q - + Exit the application Esci dall'applicazione - + &About &Informazioni - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Schermo &intero - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferenze... - + Settings Impostazioni - + Ctrl+P Ctrl+P - + Song &Details ... Dettagli della &canzone... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &File - + &View Visuali&zza - + &Song &Canzone - + Set&up - - + + &Help &Aiuto - - + + Piano Booster Help - + &Website Sito &web - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Spazio - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Azione</th><th>Chiave</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Apri un file midi - + Midi Files File MIDI - - - None - Nessuno - diff --git a/translations/pianobooster_ja.ts b/translations/pianobooster_ja.ts index 497a7de6..f0424297 100644 --- a/translations/pianobooster_ja.ts +++ b/translations/pianobooster_ja.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + なし + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: 正確性: - + Song: 歌曲: - + Bar: 小節: @@ -78,647 +86,647 @@ CTrackList - + (None) (なし) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano ホンキートンクピアノ - + Electric Piano 1 エレクトリックピアノ1 - + Electric Piano 2 エレクトリックピアノ2 - + Harpsichord ハープシコード - + Clavi クラビネット - + Celesta チェレスタ - + Glockenspiel グロッケンシュピール - + Music Box オルゴール - + Vibraphone ビフラフォン - + Marimba マリンバ - + Xylophone シロフォン - + Tubular Bells チューブラベル - + Dulcimer (ハンマー)ダルシマー - + Drawbar Organ ドローバーオルガン - + Percussive Organ パーカッシブオルガン - + Rock Organ ロックオルガン - + Church Organ チャーチオルガン - + Reed Organ リードオルガン - + Accordion アコーディオン - + Harmonica ハーモニカ - + Tango Accordion タンゴアコーディオン - + Acoustic Guitar (nylon) アコースティックギター(ナイロン弦) - + Acoustic Guitar (steel) アコースティックギター(スチール弦) - + Electric Guitar (jazz) ジャズギター - + Electric Guitar (clean) クリーンギター - + Electric Guitar (muted) ミュートギター - + Overdriven Guitar オーバードライブギター - + Distortion Guitar ディストーションギター - + Guitar harmonics ギターハーモニクス - + Acoustic Bass アコースティックベース - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass フレットレスベース - + Slap Bass 1 スラップベース1 - + Slap Bass 2 スラップベース2 - + Synth Bass 1 シンセベース1 - + Synth Bass 2 シンセベース2 - + Violin バイオリン - + Viola ビオラ - + Cello チェロ - + Contrabass コントラバス - + Tremolo Strings トレモロ - + Pizzicato Strings ピチカート - + Orchestral Harp ハープ - + Timpani ティンパニ - + String Ensemble 1 ストリングアンサンブル1 - + String Ensemble 2 ストリングアンサンブル2 - + SynthStrings 1 シンセストリングス1 - + SynthStrings 2 シンセストリングス2 - + Choir Aahs "あー"と言う声 - + Voice Oohs "おー"という声 - + Synth Voice シンセヴォイス - + Orchestra Hit オーケストラピット - + Trumpet トランペット - + Trombone トロンボーン - + Tuba チューバ - + Muted Trumpet ミュートトランペット - + French Horn フレンチホルン - + Brass Section ブラスセクション - + SynthBrass 1 シンセブラス1 - + SynthBrass 2 シンセブラス2 - + Soprano Sax ソプラノサキソフォン - + Alto Sax アルトサキソフォン - + Tenor Sax テノールサキソフォン - + Baritone Sax バリトンサキソフォン - + Oboe オーボエ - + English Horn イングリッシュホルン - + Bassoon バスーン - + Clarinet クラリネット - + Piccolo ピッコロ - + Flute フルート - + Recorder リコーダー - + Pan Flute パンパイプ - + Blown Bottle 茶瓶 - + Shakuhachi 尺八 - + Whistle 口笛 - + Ocarina オカリナ - + Lead 1 (square) 矩形波 - + Lead 2 (sawtooth) 鋸波 - + Lead 3 (calliope) カリオペ - + Lead 4 (chiff) チフ - + Lead 5 (charang) チャラング - + Lead 6 (voice) - + Lead 7 (fifths) フィフスズ - + Lead 8 (bass + lead) バス+リード - + Pad 1 (new age) ファンタジア - + Pad 2 (warm) ウォーム - + Pad 3 (polysynth) ポリシンセ - + Pad 4 (choir) クワイア - + Pad 5 (bowed) ボウ - + Pad 6 (metallic) メタリック - + Pad 7 (halo) ハロー - + Pad 8 (sweep) スイープ - + FX 1 (rain) - + FX 2 (soundtrack) サウンドトラック - + FX 3 (crystal) クリスタル - + FX 4 (atmosphere) アトモスフィア - + FX 5 (brightness) ブライトネス - + FX 6 (goblins) ゴブリン - + FX 7 (echoes) エコー - + FX 8 (sci-fi) サイファイ - + Sitar シタール - + Banjo バンジョー - + Shamisen 三味線 - + Koto - + Kalimba カリンバ - + Bag pipe バグパイプ - + Fiddle フィドル - + Shanai シャハナーイ - + Tinkle Bell ティングルベル - + Agogo アゴゴ - + Steel Drums スチールドラム - + Woodblock ウッドブロック - + Taiko Drum 太鼓 - + Melodic Tom メロディックタム - + Synth Drum シンセドラム - + Reverse Cymbal 逆シンバル - + Guitar Fret Noise ギターフレットノイズ - + Breath Noise ブレスノイズ - + Seashore 海岸 - + Bird Tweet 鳥のさえずり - + Telephone Ring 電話の着信音 - + Helicopter ヘリコプター - + Applause 拍手 - + Gunshot 銃声 @@ -1219,13 +1227,13 @@ - + Drums ドラム - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music 音楽の再生/停止 @@ -1350,13 +1358,13 @@ - + Major 長調 - + Minor 短調 @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning 曲の頭から演奏 @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Midiファイルエラー - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums ドラム - + Unknown 不明 @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster MIDIファイルエラー - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 開く(&O)... - + Ctrl+O Ctrl+O - + Open an existing file 既存ファイルを開く - + E&xit 終了(&X) - + Ctrl+Q Ctrl+Q - + Exit the application アプリを閉じる - + &About このソフトについて(&A) - + Show the application's About box ソフトの説明 - + &PC Shortcut Keys ショートカット(&P) - + The PC Keyboard shortcut keys ショートカットキー一覧 - + &Midi Setup ... &MIDI設定 。。。 - + Ctrl+S Ctrl+S - + Setup the Midi input and output MIDI入力と出力設定 - + Piano &Keyboard Setting ... ピアノ鍵盤設定(&K) 。。。 - + Ctrl+K Ctrl+K - + Change the piano keyboard settings ピアノの鍵盤設定の変更 - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... オプション設定(&P) 。。。 - + Settings 設定 - + Ctrl+P Ctrl+P - + Song &Details ... 歌曲詳細(&S) 。。。 - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File ファイル(&F) - + &View 表示(&V) - + &Song 歌曲(&S) - + Set&up セットアップ(&U) - - + + &Help ヘルプ(&H) - - + + Piano Booster Help Piano Boosterヘルプ - + &Website ウェブサイト(&W) - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Piano Boosterについて - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space スペース - + PC Keyboard ShortCuts PCキーボードショートカット - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>キーボードショートカット</center></h2><p>以下のショートカットが使えます。</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>アクション</th><th>キー</th></tr> - + Choose the right hand 右手を選ぶ - + Choose both hands 両手を選ぶ - + Choose the left Hand 左手を選ぶ - + Play from start toggle スタート点から演奏 - + Play Pause Toggle 再生/静止ボタン - - + + Increase the speed by 5% 速度を5%ずつ増加 - + Change to the Next Song 次の曲へ変更 - + Change to the Previous Song 前の曲へ変更 - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>仮想ピアノ鍵盤</td><td>XがミドルC</td></tr></table> </center><br> - + Open Midi File MIDIファイルを開く - + Midi Files MIDI ファイル - - - None - なし - diff --git a/translations/pianobooster_ka.ts b/translations/pianobooster_ka.ts index c490870b..ef38d8b9 100644 --- a/translations/pianobooster_ka.ts +++ b/translations/pianobooster_ka.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + არაფერი + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo პატარა ფლეიტა - + Flute ფლეიტა - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown უცნობი @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &ფაილი - + &View &ხედი - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - არაფერი - diff --git a/translations/pianobooster_kk.ts b/translations/pianobooster_kk.ts index c4acf645..2b04f08e 100644 --- a/translations/pianobooster_kk.ts +++ b/translations/pianobooster_kk.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Жоқ + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Белгісіз @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Ашу... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Осы туралы - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Баптау - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Көрініс - + &Song - + Set&up - - + + &Help &Анықтама - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Жоқ - diff --git a/translations/pianobooster_kn.ts b/translations/pianobooster_kn.ts index a0a88378..726a96c9 100644 --- a/translations/pianobooster_kn.ts +++ b/translations/pianobooster_kn.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ಯಾವುದೂ ಇಲ್ಲ + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown ಅಜ್ಞಾತ @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About ತಂತ್ರಾಂಶದ ಬಗ್ಗೆ(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ಸಿದ್ಧತೆಗಳು - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File ಕಡತ(&F) - + &View ನೋಟ(&V) - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ಯಾವುದೂ ಇಲ್ಲ - diff --git a/translations/pianobooster_ko.ts b/translations/pianobooster_ko.ts index b2a6632f..9de2dc72 100644 --- a/translations/pianobooster_ko.ts +++ b/translations/pianobooster_ko.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + 없음 + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (없음) - + Grand Piano 그랜드 피아노 - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord 하프시코드 - + Clavi - + Celesta 첼레스타 - + Glockenspiel 글로켄슈필 - + Music Box - + Vibraphone 비브라폰 - + Marimba 마림바 - + Xylophone 실로폰 - + Tubular Bells - + Dulcimer 덜시머 - + Drawbar Organ - + Percussive Organ 퍼커시브 오르간 - + Rock Organ - + Church Organ - + Reed Organ 리드 오르간 - + Accordion 아코디언 - + Harmonica 하모니카 - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass 어쿠스틱 베이스 - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin 바이올린 - + Viola 비올라 - + Cello - + Contrabass 콘트라베이스 - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani 팀파니 - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet 트럼펫 - + Trombone 트롬본 - + Tuba 튜바 - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe 오보에 - + English Horn 잉글리시 호른 - + Bassoon 바순 - + Clarinet 클라리넷 - + Piccolo 피콜로 - + Flute 플루트 - + Recorder 리코더 - + Pan Flute 팬 플루트 - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina 오카리나 - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar 시타르 - + Banjo 밴조 - + Shamisen 샤미센 - + Koto 거문고 - + Kalimba 칼림바 - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums 스틸 드럼 - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown 알려지지 않음 @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 열기(&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About 정보(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings 설정 - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File 파일(&F) - + &View 보기(&V) - + &Song - + Set&up - - + + &Help 도움말(&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI 파일 - - - None - 없음 - diff --git a/translations/pianobooster_ks.ts b/translations/pianobooster_ks.ts index a4d220a2..4a2c742b 100644 --- a/translations/pianobooster_ks.ts +++ b/translations/pianobooster_ks.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + कय्ह न + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - कय्ह न - diff --git a/translations/pianobooster_ku.ts b/translations/pianobooster_ku.ts index 6c1a3f20..4ea1dc16 100644 --- a/translations/pianobooster_ku.ts +++ b/translations/pianobooster_ku.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Tune + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nenas @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Der barê de - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Pel - + &View &Dîtin - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Tune - diff --git a/translations/pianobooster_lt.ts b/translations/pianobooster_lt.ts index c2a864a8..6d0dbf14 100644 --- a/translations/pianobooster_lt.ts +++ b/translations/pianobooster_lt.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nėra + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Nėra) - + Grand Piano Fortepijonas - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Klavesinas - + Clavi - + Celesta Čelesta - + Glockenspiel Varpeliai - + Music Box - + Vibraphone Vibrafonas - + Marimba - + Xylophone Ksilofonas - + Tubular Bells - + Dulcimer Dulcimeras - + Drawbar Organ - + Percussive Organ Stuksintys vargonai - + Rock Organ - + Church Organ - + Reed Organ Liežuvėliniai vargonai - + Accordion Akordeonas - + Harmonica Lūpinė armonikėlė - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akustinis bosas - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Smuikas - + Viola Altas - + Cello - + Contrabass Kontrabosas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Timpanai - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trimitas - + Trombone Trombonas - + Tuba Tūba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Obojus - + English Horn Anglų ragas - + Bassoon Fagotas - + Clarinet Klarnetas - + Piccolo Pikolo fleita - + Flute Fleita - + Recorder Išilginė fleita - + Pan Flute Pano fleita - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sitaras - + Banjo Bandža - + Shamisen Šiamisenas - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Plieniniai būgnai - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nežinoma @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... At&verti... - + Ctrl+O Ctrl+O - + Open an existing file Atverti egzistuojantį failą - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Baigti programos darbą - + &About &Apie - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Nuostatos ... - + Settings Nustatymai - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Failas - + &View &Rodymas - + &Song - + Set&up - - + + &Help &Pagalba - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files MIDI failai - - - None - Nėra - diff --git a/translations/pianobooster_lv.ts b/translations/pianobooster_lv.ts index d579dd60..194aafc3 100644 --- a/translations/pianobooster_lv.ts +++ b/translations/pianobooster_lv.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nekas + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Vijole - + Viola - + Cello - + Contrabass Kontrbass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo Pikolo - + Flute Flauta - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sītara - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ D# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Atvērt... - + Ctrl+O - + Open an existing file Atvērt failu - + E&xit - + Ctrl+Q - + Exit the application - + &About &Par - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Uzstādījumi - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fails - + &View &Apskatīt - + &Song - + Set&up - - + + &Help &Palīdzība - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Nekas - diff --git a/translations/pianobooster_mg.ts b/translations/pianobooster_mg.ts index f1af0ac7..9584e1fa 100644 --- a/translations/pianobooster_mg.ts +++ b/translations/pianobooster_mg.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Tsy fantatra @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Momobamomba - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Rakitra - + &View &Asehoy - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - - diff --git a/translations/pianobooster_mi.ts b/translations/pianobooster_mi.ts index 00574203..cd777e56 100644 --- a/translations/pianobooster_mi.ts +++ b/translations/pianobooster_mi.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Kore + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Kore) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Mo - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Ngā Hiahia ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Kōnae - + &View &Titiro - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Kore - diff --git a/translations/pianobooster_ml.ts b/translations/pianobooster_ml.ts index aab8162e..b506dd8e 100644 --- a/translations/pianobooster_ml.ts +++ b/translations/pianobooster_ml.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ഒന്നുമില്ല + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown അറിയപ്പെടാത്ത @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &സംബന്ധിച്ചുള്ളതു് - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ക്രമീകരണങ്ങള്‍ - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &ഫയല്‍ - + &View &കാഴ്ച - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ഒന്നുമില്ല - diff --git a/translations/pianobooster_mn.ts b/translations/pianobooster_mn.ts index 600bbffb..f6b9fa0f 100644 --- a/translations/pianobooster_mn.ts +++ b/translations/pianobooster_mn.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Хоосон + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Мэдэгдэхгүй @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Нээх... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Тухай - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Харах - + &Song - + Set&up - - + + &Help &Тусламж - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Хоосон - diff --git a/translations/pianobooster_mr.ts b/translations/pianobooster_mr.ts index eb88352a..25d6771f 100644 --- a/translations/pianobooster_mr.ts +++ b/translations/pianobooster_mr.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + काहीच नाही + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown अपरिचित @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About विषयी - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings समायोजन - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View दृश्य - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - काहीच नाही - diff --git a/translations/pianobooster_ms.ts b/translations/pianobooster_ms.ts index cb696e9d..438ac587 100644 --- a/translations/pianobooster_ms.ts +++ b/translations/pianobooster_ms.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Tiada + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Lagu: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Tiada) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music Mula dan henti memainkan muzik @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Entah @@ -1516,444 +1524,439 @@ Penggalak Piano - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Buka... - + Ctrl+O Ctrl+O - + Open an existing file Buka fail sedia ada - + E&xit Ke&luar - + Ctrl+Q Ctrl+Q - + Exit the application Keluar dari aplikasi - + &About Perih&al - + Show the application's About box Tunjuk kotak Perihal aplikasi - + &PC Shortcut Keys Kekunci Pintasan &PC - + The PC Keyboard shortcut keys Kekunci pintasan Papan Kekunci PC - + &Midi Setup ... Persediaan &Midi ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... Tetapan Papan &Kekunci Piano ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Keutamaan ... - + Settings Tetapan - + Ctrl+P Ctrl+P - + Song &Details ... Perincian &Lagu ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fail - + &View &Lihat - + &Song &Lagu - + Set&up Per&sediaan - - + + &Help &Bantuan - - + + Piano Booster Help Bantuan Penggalak Piano - + &Website Laman Sesa&wang - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Perihal Penggalak Piano - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Pintasan Papan Kekunci PC - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Pintasan papan kekunci</center></h2><p>Pintasan papan kekunci PC berikut telah ditakrif.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Kekunci</th><th>Tindakan</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Kekunci Piano palsu</td><td>X adalah dipertengahan C</td></tr></table> </center><br> - + Open Midi File Buka Fail Midi - + Midi Files - - - None - Tiada - diff --git a/translations/pianobooster_my.ts b/translations/pianobooster_my.ts index 719f75c6..1b612ea5 100644 --- a/translations/pianobooster_my.ts +++ b/translations/pianobooster_my.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ချိန်ညိှရန် + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown အမည်မသိ @@ -1516,444 +1524,439 @@ စန္ဒရားသင် အဆင့်မြှင့် - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About အကြောင်းအရာ - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File ဖိုင် - + &View မြင်ကွင်း - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ချိန်ညိှရန် - diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index b97f3c9c..d7a89e55 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ingen + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Nøyaktighet: - + Song: Spor: - + Bar: Takt: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ingen) - + Grand Piano Flygel - + Bright Piano Lyst piano - + Electric Grand Elektrisk klaver - + Honky-tonk Piano Honky-tonk-piano - + Electric Piano 1 Elektrisk piano 1 - + Electric Piano 2 Elektrisk piano 2 - + Harpsichord Cembalo - + Clavi Klavikord - + Celesta Klaviaturklokkespill - + Glockenspiel Klokkespill - + Music Box Spilldåse - + Vibraphone Vibrafon - + Marimba Marimba - + Xylophone Xylofon - + Tubular Bells Rørklokker - + Dulcimer Dulcimer - + Drawbar Organ Trøorgel - + Percussive Organ Perkusivtorgel - + Rock Organ Hammondorgel - + Church Organ Kirkeorgel - + Reed Organ Melodeon - + Accordion Trekkspill - + Harmonica Munnspill - + Tango Accordion Bandoneón - + Acoustic Guitar (nylon) Akustisk gitar (nylon) - + Acoustic Guitar (steel) Akustisk gitar (stål) - + Electric Guitar (jazz) Elektrisk gitar (jazz) - + Electric Guitar (clean) Elektrisk gitar (ren) - + Electric Guitar (muted) Elektrisk gitar (forstummet) - + Overdriven Guitar Overdrevet gitar - + Distortion Guitar Forvrengningsgitar - + Guitar harmonics Gitarharmonier - + Acoustic Bass Akustisk bass - + Electric Bass (finger) Elektrisk gitar (finger) - + Electric Bass (pick) Elektrisk gitar (plekter) - + Fretless Bass Bandløs bass - + Slap Bass 1 El-bass (slap 1) - + Slap Bass 2 El-bass (slap 2) - + Synth Bass 1 Bass fra synth 1 - + Synth Bass 2 Bass fra synth 2 - + Violin Fiolin - + Viola Bratsj - + Cello Cello - + Contrabass Kontrabass - + Tremolo Strings Strykere tremolo - + Pizzicato Strings Strykere pizzicato - + Orchestral Harp Orkesterharpe - + Timpani Pauker - + String Ensemble 1 Strykeensemble 1 - + String Ensemble 2 Strykeensemble 2 - + SynthStrings 1 Strykere fra synth 1 - + SynthStrings 2 Strykere fra synth 2 - + Choir Aahs Kor Aah - + Voice Oohs Vokal Ooh - + Synth Voice Synthstemme - + Orchestra Hit Orkesteraksent - + Trumpet Trompet - + Trombone Trombone (F-nøkkel) - + Tuba Tuba - + Muted Trumpet Forstummet trompet - + French Horn Valthorn - + Brass Section Messingblåsere - + SynthBrass 1 Messingblåsere fra synth 1 - + SynthBrass 2 Messingblåsere fra synth 2 - + Soprano Sax Sopransaksofon - + Alto Sax Altsaksofon - + Tenor Sax Tenorsaksofon - + Baritone Sax Baritonsaksofon - + Oboe Obo - + English Horn Engelsk horn - + Bassoon Fagott - + Clarinet Klarinett - + Piccolo Pikkolofløyte - + Flute Fløyte - + Recorder Blokkfløyte - + Pan Flute Panfløyte - + Blown Bottle Flaske - + Shakuhachi Shakuhachi - + Whistle Fløyte - + Ocarina Okarnia - + Lead 1 (square) Solo 1 (firkant) - + Lead 2 (sawtooth) Solo 2 (sagtann) - + Lead 3 (calliope) Solo 3 (calliope) - + Lead 4 (chiff) Solo 4 (pipe) - + Lead 5 (charang) Solo 5 (charang) - + Lead 6 (voice) Solo 6 (stemme) - + Lead 7 (fifths) Solo 7 (kvinter) - + Lead 8 (bass + lead) Solo 8 (bass + solo) - + Pad 1 (new age) Lydplate 1 (new age) - + Pad 2 (warm) Pad 2 (varm) - + Pad 3 (polysynth) Lydplate 3 (polysynth) - + Pad 4 (choir) Pad 4 (kor) - + Pad 5 (bowed) Pad 5 (buet) - + Pad 6 (metallic) Pad 6 (metallisk) - + Pad 7 (halo) Lydplate 7 (glorie) - + Pad 8 (sweep) Lydplate 8 (sveip) - + FX 1 (rain) Effekt 1 (regn) - + FX 2 (soundtrack) Effekt 2 (lydspor) - + FX 3 (crystal) Effekt 3 (krystall) - + FX 4 (atmosphere) Effekt 4 (atmosfære) - + FX 5 (brightness) Effekt 5 (lys) - + FX 6 (goblins) Effekt 6 (troll) - + FX 7 (echoes) Effekt 7 (ekko) - + FX 8 (sci-fi) Effekt 8 (sci-fi) - + Sitar Sitar - + Banjo Banjo - + Shamisen Samisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Sekkepipe - + Fiddle Fele - + Shanai - + Tinkle Bell Bjelle - + Agogo - + Steel Drums Oljefat - + Woodblock Treblokk - + Taiko Drum Taikotromme - + Melodic Tom Stemt tom-tom - + Synth Drum Trommer fra synth - + Reverse Cymbal Baklengs cymbal - + Guitar Fret Noise Gripebåndslyd fra gitar - + Breath Noise Pustelyd - + Seashore Havbrus - + Bird Tweet Fuglesang - + Telephone Ring Telefonringelyd - + Helicopter Helikopter - + Applause Applaus - + Gunshot Skudd @@ -1219,13 +1227,13 @@ - + Drums Trommer - + Melody Melodi @@ -1319,7 +1327,7 @@ - + Start and stop playing music Start og stopp avspilling av musikk @@ -1350,13 +1358,13 @@ - + Major Stor - + Minor Liten @@ -1451,7 +1459,7 @@ - + Playing music from the beginning Spiller musikk fra begynnelsen @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" Kan ikke åpne "%1" - + Midi file "%1" is corrupted MIDI-filen "%1" er skadet @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums Trommer - + Unknown Ukjent @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" Kan ikke åpne "%1" - + "%1" is not a Midi File "%1" er ikke en MIDI-fil - + "%1" is not a valid Midi file "%1" er ikke en gyldig MIDI-fil - + &Open... &Åpne … - + Ctrl+O Ctrl+O - + Open an existing file Åpne en eksisterende fil - + E&xit A&vslutt - + Ctrl+Q Ctrl+Q - + Exit the application Avslutt programmet - + &About &Om - + Show the application's About box - + &PC Shortcut Keys &PC-snarveistaster - + The PC Keyboard shortcut keys PC-tastatursnarveier - + &Midi Setup ... &MIDI-oppsett … - + Ctrl+S Ctrl+S - + Setup the Midi input and output Velg MIDI-inngang og utgang - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Full skjerm - + Fullscreen mode Fullskjermsmodus - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget Vis pianoklaviatur-miniprogram - + &Preferences ... &Innstillinger … - + Settings Innstillinger - + Ctrl+P Ctrl+P - + Song &Details ... Spor og detaljer … - + Song Settings Spor-innstillinger - + Ctrl+D Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fil - + &View &Vis - + &Song &Spor - + Set&up Opp&sett - - + + &Help &Hjelp - - + + Piano Booster Help Piano Booster-hjelp - + &Website &Nettside - + Piano Booster Website Piano Booster-nettside - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or eller - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> <h3>Oppsett</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints Pianohint - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website nettside - + the PianoBooster - + FAQ O-S-S - + and the og - + user forum forumet - + About Piano Booster Om Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Opphavsrett © L. J. Barman, 2008-2020.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Opphavsrett © Fabien Givors, 2018-2019.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Dette programmer inneholder også RtMIDI: Sanntids MIDI-I/O-C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Opphavsrett © Gary P. Scavone, 2003-2019. - + space mellomrom - + PC Keyboard ShortCuts PC-tastatursnarveier - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand Velg høyre hånd - + Choose both hands Velg begge hender - + Choose the left Hand Velg venstre hånd - + Play from start toggle - + Play Pause Toggle Veksle avspilling og pause - - + + Increase the speed by 5% Øk hastigheten med 5% - + Change to the Next Song Bytt tll neste sang - + Change to the Previous Song Bytt til forrige sang - + Change to the Next Book Bytt til neste bok - + Change to the Previous Book Bytt til forrige bok - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Åpne MIDI-fil - + Midi Files MIDI-filer - - - None - Ingen - diff --git a/translations/pianobooster_ne.ts b/translations/pianobooster_ne.ts index 25e58652..a4c6ee0f 100644 --- a/translations/pianobooster_ne.ts +++ b/translations/pianobooster_ne.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + कुनै पनि होइन + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown अज्ञात @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About बारेमा - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File फाइल - + &View दृश्य - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - कुनै पनि होइन - diff --git a/translations/pianobooster_nl.ts b/translations/pianobooster_nl.ts index a2b5a2fd..1c42280c 100644 --- a/translations/pianobooster_nl.ts +++ b/translations/pianobooster_nl.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Geen + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Nauwkeurigheid: - + Song: Lied: - + Bar: Maat: @@ -78,647 +86,647 @@ CTrackList - + (None) (Geen) - + Grand Piano Vleugel - + Bright Piano Piano - + Electric Grand Elektrische Vleugel - + Honky-tonk Piano Honky-tonk Piano - + Electric Piano 1 Elektrische Piano 1 - + Electric Piano 2 Elektrische Piano 2 - + Harpsichord Clavecimbel - + Clavi - + Celesta - + Glockenspiel Klokkenspel - + Music Box Speeldoos - + Vibraphone Vibrafoon - + Marimba - + Xylophone Xylofoon - + Tubular Bells Carillon - + Dulcimer Hakkebord - + Drawbar Organ Trekorgel - + Percussive Organ Percussief Orgel - + Rock Organ Rock Orgel - + Church Organ Kerkorgel - + Reed Organ Harmonium - + Accordion Accordeon - + Harmonica - + Tango Accordion Tango-accordeon - + Acoustic Guitar (nylon) Akoestische Gitaar (nylon) - + Acoustic Guitar (steel) Akoestische Gitaar (staal) - + Electric Guitar (jazz) Elektrische Gitaar (jazz) - + Electric Guitar (clean) Elektrische Gitaar (puur) - + Electric Guitar (muted) Elektrische Gitaar (gedempt) - + Overdriven Guitar Overgestuurde Gitaar - + Distortion Guitar Distortion Gitaar - + Guitar harmonics Gitaar akkoorden - + Acoustic Bass Akoestische bas - + Electric Bass (finger) Elektrische Bas (vinger) - + Electric Bass (pick) Elektrische Bas (plukken) - + Fretless Bass Fretloze Bas - + Slap Bass 1 Slapping Bas 1 - + Slap Bass 2 Slapping Bas 2 - + Synth Bass 1 Synth Bas 1 - + Synth Bass 2 Synth Bas 2 - + Violin Viool - + Viola Altviool - + Cello - + Contrabass Contrabas - + Tremolo Strings Snaarinstrumenten (tremolo) - + Pizzicato Strings Snaarinstrumenten (pizzicato) - + Orchestral Harp Harp - + Timpani Pauken - + String Ensemble 1 Snaarensemble 1 - + String Ensemble 2 Snaarensemble 2 - + SynthStrings 1 Synth Snaarinstrumenten 1 - + SynthStrings 2 Synth Snaarinstrumenten 2 - + Choir Aahs Koor Aahs - + Voice Oohs Koor Oohs - + Synth Voice Synth Stem - + Orchestra Hit Orkestgeluid - + Trumpet Trompet - + Trombone - + Tuba - + Muted Trumpet Gedempte Trompet - + French Horn Hoorn - + Brass Section Koperblazers - + SynthBrass 1 Synth Koperinstrumenten 1 - + SynthBrass 2 Synth Koperinstrumenten 2 - + Soprano Sax Sopraansax - + Alto Sax Altsax - + Tenor Sax Tenor Sax - + Baritone Sax Bariton Sax - + Oboe Hobo - + English Horn Althobo - + Bassoon Fagot - + Clarinet - + Piccolo - + Flute Fluit - + Recorder Blokfluit - + Pan Flute Panfluit - + Blown Bottle Fles (geblazen) - + Shakuhachi Shakuhachi - + Whistle Fluitje - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe Doedelzak - + Fiddle Viool - + Shanai - + Tinkle Bell Rinkelende bel - + Agogo - + Steel Drums Steeldrum - + Woodblock - + Taiko Drum Taiko Drum - + Melodic Tom Melodische Tom - + Synth Drum - + Reverse Cymbal Cimbaal - + Guitar Fret Noise Gitaar Fretgeluid - + Breath Noise Ademhaling - + Seashore Branding - + Bird Tweet Vogelgezang - + Telephone Ring Telefoonbel - + Helicopter Helikopter - + Applause Applaus - + Gunshot Geweerschot @@ -1219,13 +1227,13 @@ - + Drums Trommels - + Melody Melodie @@ -1319,7 +1327,7 @@ - + Start and stop playing music Start en stop het afspelen van de muziek @@ -1350,13 +1358,13 @@ - + Major Majeur - + Minor Mineur @@ -1451,7 +1459,7 @@ Dis - + Playing music from the beginning Speel de muziek vanaf het begin @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Midi Bestandsfout - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums Trommels - + Unknown Onbekend @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster Midi bestandsfout - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Openen... - + Ctrl+O Ctrl+O - + Open an existing file Open een bestaand bestand - + E&xit &Afsluiten - + Ctrl+Q Ctrl+Q - + Exit the application Sluit de applicatie af - + &About &Over - + Show the application's About box Toon het informatiescherm van de applicatie - + &PC Shortcut Keys Com&puter sneltoetsen - + The PC Keyboard shortcut keys De computer sneltoetsen - + &Midi Setup ... &Midi Instellingen ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Instellingen voor Midi invoer en uitvoer - + Piano &Keyboard Setting ... &Toetsenbordinstellingen ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Pas de toetsenbordinstellingen aan - + &Fullscreen &Volledig scherm - + Fullscreen mode - + F11 F11 - + &Show the Side Panel &Toon het zijpaneel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Instellingen ... - + Settings Instellingen - + Ctrl+P Ctrl+P - + Song &Details ... &Liedeigenschappen ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Bestand - + &View &Scherm - + &Song &Lied - + Set&up &Instellingen - - + + &Help &Hulp - - + + Piano Booster Help Piano Booster Hulp - + &Website &Webpagina - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Over Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space spatie - + PC Keyboard ShortCuts Computer toetsenbord sneltoetsen - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Sneltoetsen</center></h2><p>De volgende computer sneltoetsen zijn gedefiniëerd.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Actie</th><th>Toets</th></tr> - + Choose the right hand Kies de rechterhand - + Choose both hands Kies beide handen - + Choose the left Hand Kies de linkerhand - + Play from start toggle Speel vanaf het begin knop - + Play Pause Toggle Speel Pauzeer Knop - - + + Increase the speed by 5% Verhoog de snelheid met 5% - + Change to the Next Song Ga naar het Volgende Lied - + Change to the Previous Song Ga naar het Vorige Lied - + Change to the Next Book Ga naar het Volgende Boek - + Change to the Previous Book Ga naar het Vorige Boek - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Neptoetsen</td><td>X is de centrale C</td></tr></table> </center><br> - + Open Midi File Open Midi Bestand - + Midi Files Midi Bestanden - - - None - Geen - diff --git a/translations/pianobooster_nn.ts b/translations/pianobooster_nn.ts index d5dcccff..e3f5de23 100644 --- a/translations/pianobooster_nn.ts +++ b/translations/pianobooster_nn.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ingen + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Ukjend @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Opna … - + Ctrl+O - + Open an existing file Opna ei gammal fil - + E&xit - + Ctrl+Q - + Exit the application - + &About &Om - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Innstillingar - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fil - + &View &Vis - + &Song - + Set&up - - + + &Help &Hjelp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Ingen - diff --git a/translations/pianobooster_oc.ts b/translations/pianobooster_oc.ts index c3f5e795..75d93990 100644 --- a/translations/pianobooster_oc.ts +++ b/translations/pianobooster_oc.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Pas cap + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Desconegut @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About A &prepaus - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferéncias ... - + Settings Paramètres - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fichièr - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Pas cap - diff --git a/translations/pianobooster_or.ts b/translations/pianobooster_or.ts index 077e3477..ee9afd51 100644 --- a/translations/pianobooster_or.ts +++ b/translations/pianobooster_or.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + କିଛି ନୁହେଁ + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown ଅଜଣା @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About ବିବରଣୀ - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ବିନ୍ଯାସ - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View ଦେଖନ୍ତୁ - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - କିଛି ନୁହେଁ - diff --git a/translations/pianobooster_pa.ts b/translations/pianobooster_pa.ts index ed7d262a..00c462e8 100644 --- a/translations/pianobooster_pa.ts +++ b/translations/pianobooster_pa.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ਕੋਈ ਨਹੀਂ + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown ਅਣਜਾਣ @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... ਖੋਲ੍ਹੋ(&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About ਇਸ ਬਾਰੇ(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings ਸਥਾਪਨ - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File ਫਾਇਲ(&F) - + &View ਵੇਖੋ(&V) - + &Song - + Set&up - - + + &Help ਮੱਦਦ(&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ਕੋਈ ਨਹੀਂ - diff --git a/translations/pianobooster_pl.ts b/translations/pianobooster_pl.ts index 52de0bf9..a8013e4b 100644 --- a/translations/pianobooster_pl.ts +++ b/translations/pianobooster_pl.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Brak + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Dokładność: - + Song: Piosenka: - + Bar: Takt: @@ -78,647 +86,647 @@ CTrackList - + (None) (Brak) - + Grand Piano Pianoforte - + Bright Piano - + Electric Grand - + Honky-tonk Piano Fortepian honky-tonk - + Electric Piano 1 Fortepian elektryczny 1 - + Electric Piano 2 Fortepian elektryczny 2 - + Harpsichord Clavicembalo - + Clavi Klawikord - + Celesta Czelesta - + Glockenspiel Campanelli - + Music Box Pozytywka - + Vibraphone Vibrafono - + Marimba Marimba - + Xylophone Xilofono - + Tubular Bells Dzwony rurowe - + Dulcimer Cimbalom - + Drawbar Organ Organy Drawbar - + Percussive Organ Percussione organo - + Rock Organ Organy rockowe - + Church Organ Organy kościelne - + Reed Organ Organo ad ancia - + Accordion Akordeon - + Harmonica Armonica - + Tango Accordion Akordeon (tango) - + Acoustic Guitar (nylon) Gitara akustyczna (nylonowe) - + Acoustic Guitar (steel) Gitara akustyczna (stalowe) - + Electric Guitar (jazz) Gitara elektryczna (jazzowa) - + Electric Guitar (clean) Gitara elektryczna (clean) - + Electric Guitar (muted) Gitara elektryczna (muted) - + Overdriven Guitar Gitara przesterowana - + Distortion Guitar Gitara zniekształcona - + Guitar harmonics Gitara harmoniczna - + Acoustic Bass Basso acustico - + Electric Bass (finger) Bas elektryczny (palce) - + Electric Bass (pick) Bas Elektryczny (kostka) - + Fretless Bass Bas bezprogowy - + Slap Bass 1 Bas klepany 1 - + Slap Bass 2 Bas klepany 2 - + Synth Bass 1 Bas syntetyczny 1 - + Synth Bass 2 Bas syntetyczny 2 - + Violin Violino - + Viola Altówka - + Cello Wiolonczela - + Contrabass Contrabbasso - + Tremolo Strings Smyczki tremolo - + Pizzicato Strings Smyczki pizzicato - + Orchestral Harp Harfa - + Timpani Kotły - + String Ensemble 1 Sekcja smyczków 1 - + String Ensemble 2 Sekcja smyczków 2 - + SynthStrings 1 Syntetyczne smyczki 1 - + SynthStrings 2 Syntetyczne smyczki 2 - + Choir Aahs Chór Aahs - + Voice Oohs Głos Oohs - + Synth Voice Głos syntetyczny - + Orchestra Hit Orchestra hit - + Trumpet Tromba - + Trombone Puzon - + Tuba Tuba - + Muted Trumpet Trąbka z tłumikiem - + French Horn Waltornia - + Brass Section Sekcja dętych blaszanych - + SynthBrass 1 Syntetyczne dęte blaszane 1 - + SynthBrass 2 Syntetyczne dęte blaszane 2 - + Soprano Sax Saksofon sopranowy - + Alto Sax Saksofon altowy - + Tenor Sax Saksofon tenorowy - + Baritone Sax Saksofon barytonowy - + Oboe Obój - + English Horn Corno inglese - + Bassoon Fagotto - + Clarinet Clarinetto - + Piccolo Flauto piccolo - + Flute Flauto - + Recorder Flauto dolce - + Pan Flute Flauto di Pan - + Blown Bottle Dmuchana butelka - + Shakuhachi - + Whistle Gwizdek - + Ocarina Okaryna - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) FX 1 (deszcz) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sitara - + Banjo Banjo - + Shamisen - + Koto - + Kalimba Kalimba - + Bag pipe Dudy - + Fiddle Skrzypce fiddle - + Shanai - + Tinkle Bell Dzwonek tinkle - + Agogo - + Steel Drums Steel pan - + Woodblock Blok z drewna - + Taiko Drum Bęben Taiko - + Melodic Tom - + Synth Drum Syntetyczna perkusja - + Reverse Cymbal - + Guitar Fret Noise Dźwięk progu w gitarze - + Breath Noise Dźwięk oddechu - + Seashore Brzeg morza - + Bird Tweet Śpiew ptaka - + Telephone Ring Dzwonek telefonu - + Helicopter Helikopter - + Applause Oklaski - + Gunshot Postrzał @@ -1219,13 +1227,13 @@ - + Drums Bębny - + Melody Melodia @@ -1319,7 +1327,7 @@ - + Start and stop playing music Uruchom i zatrzymaj odtwarzanie muzyki @@ -1350,13 +1358,13 @@ - + Major Dur - + Minor Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning Odtwarzanie muzyki od początku @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Error pliku Midi - + Cannot open "%1" Nie można otworzyć "%1" - + Midi file "%1" is corrupted Plik Midi "%1" jest uszkodzony @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums Bębny - + Unknown Nieznany @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error PianoBooster Error pliku Midi - + Cannot open "%1" Nie można otworzyć "%1" - + "%1" is not a Midi File "%1" nie jest plikiem Midi - + "%1" is not a valid Midi file - + &Open... &Otwórz... - + Ctrl+O Ctrl+O - + Open an existing file Otwórz istniejący plik - + E&xit &Zakończ - + Ctrl+Q Ctrl+Q - + Exit the application Zakończ aplikację - + &About &O programie - + Show the application's About box Wyświetl okno informacji o programie - + &PC Shortcut Keys Skróty klawiszowe &PC - + The PC Keyboard shortcut keys Skróty klawiszowe na PC - + &Midi Setup ... Konfiguracja &Midi ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Konfiguracja wejścia i wyjścia Midi - + Piano &Keyboard Setting ... Ustawienia &klawiatury pianina ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Zmień ustawienia klawiatury pianina - + &Fullscreen Pełen &ekran - + Fullscreen mode Pełny ekran - + F11 F11 - + &Show the Side Panel &Pokaż panel boczny - + Show the Left Side Panel Pokaż panel boczny - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Ustawienia ... - + Settings Ustawienia - + Ctrl+P Ctrl+P - + Song &Details ... &Szczegóły piosenki ... - + Song Settings Ustawienia utworu - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Plik - + &View &Widok - + &Song &Piosenka - + Set&up Konfig&uracja - - + + &Help P&omoc - - + + Piano Booster Help Pomoc Piano Booster - + &Website Strona &www - + Piano Booster Website Strona Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster O Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Wersja %1</b><br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Copyright(c) L. J. Barman, 2008-2013; All rights reserved.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space spacja - + PC Keyboard ShortCuts Skróty klawiszowe - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Skróty klawiatury</center></h2><p>Następujące skróty klawiatury zostały zdefiniowane.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Akcja</th><th>Klawisz</th></tr> - + Choose the right hand Wybierz prawą rękę - + Choose both hands Wybierz obie ręce - + Choose the left Hand Wybierz lewą rękę - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% Zwiększ prędkość o 5% - + Change to the Next Song Zmień na następny utwór - + Change to the Previous Song Zmień na poprzedni utwór - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Klawisze klawiatury zamiast pianina</td><td>X jest średnią C</td></tr></table> </center><br> - + Open Midi File Otwórz plik MIDI - + Midi Files Pliki MIDI - - - None - Brak - diff --git a/translations/pianobooster_ps.ts b/translations/pianobooster_ps.ts index 3e51728e..83ccf1d9 100644 --- a/translations/pianobooster_ps.ts +++ b/translations/pianobooster_ps.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + هېڅ + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown ناپېژندلی @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About په اړه - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File دوتنه - + &View ليد - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - هېڅ - diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index cfbc9555..661958fb 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nenhum + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Precisão: - + Song: Música: - + Bar: Barra: @@ -78,647 +86,647 @@ CTrackList - + (None) (nenhum) - + Grand Piano Piano de Cauda - + Bright Piano Piano Vertical - + Electric Grand - + Honky-tonk Piano Piano Honky-tonk - + Electric Piano 1 Piano Elétrico 1 - + Electric Piano 2 Piano Elétrico 2 - + Harpsichord Cravo - + Clavi Clavi - + Celesta Celesta - + Glockenspiel Lira - + Music Box Caixinha de Música - + Vibraphone Vibrafone - + Marimba Marimba - + Xylophone Xilofone - + Tubular Bells Sinos Tubulares - + Dulcimer Saltério - + Drawbar Organ Orgão Drawbar - + Percussive Organ Órgão Percussivo - + Rock Organ Órgão de Rock - + Church Organ Órgão de Igreja - + Reed Organ Harmônio - + Accordion Acordeão - + Harmonica Harmónica - + Tango Accordion Acordeão de tango - + Acoustic Guitar (nylon) Violão Aústico (nylon) - + Acoustic Guitar (steel) Violão Aústico (aço) - + Electric Guitar (jazz) Violão Elétrico (jazz) - + Electric Guitar (clean) Violão Elétrico (clean) - + Electric Guitar (muted) Violão Elétrico (mudo) - + Overdriven Guitar Gitarra Overdriven - + Distortion Guitar Gitarra Distorcida - + Guitar harmonics Guitarra harmonica - + Acoustic Bass Baixo Acústico - + Electric Bass (finger) Baixo Elétrico (dedo) - + Electric Bass (pick) Baixo Elétrico (pick) - + Fretless Bass Baixo sem trastes - + Slap Bass 1 Baixo batido 1 - + Slap Bass 2 Baixo batido 2 - + Synth Bass 1 Baixo sintético 1 - + Synth Bass 2 Baixo sintético 2 - + Violin Violino - + Viola Viola - + Cello Violoncelo - + Contrabass Contrabaixo - + Tremolo Strings Cordas com trêmulo - + Pizzicato Strings - + Orchestral Harp Harpa Orquestral - + Timpani Tímpanos - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs Coro de Aahs - + Voice Oohs Coro de Oohs - + Synth Voice Sintetizador De Voz - + Orchestra Hit Tutti da orquestra - + Trumpet Trompete - + Trombone Trombone - + Tuba Tuba - + Muted Trumpet Muted Trompete - + French Horn Trompa francesa - + Brass Section Peça de Metal - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax Sax soprano - + Alto Sax Sax alto - + Tenor Sax Sax tenor - + Baritone Sax Sax barítono - + Oboe Oboé - + English Horn Corne Inglês - + Bassoon Fagote - + Clarinet Clarinete - + Piccolo Piccolo (flautim) - + Flute Flauta - + Recorder Flauta de bisel - + Pan Flute Flauta de Pã - + Blown Bottle Sopro de Garrafa - + Shakuhachi - + Whistle Apito - + Ocarina Ocarina - + Lead 1 (square) Lead 1 (quadrado) - + Lead 2 (sawtooth) Lead 2 (dente de serra) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) Lead 6 (voz) - + Lead 7 (fifths) Lead 7 (quintas) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) Pad 4 (coro) - + Pad 5 (bowed) - + Pad 6 (metallic) Pad 6 (metalico) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Cítara - + Banjo - + Shamisen Sangen - + Koto - + Kalimba Quissange - + Bag pipe SoproTubos - + Fiddle Rabeca - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Tambor de aço - + Woodblock - + Taiko Drum Percussão Taiko - + Melodic Tom Percussão metálica - + Synth Drum Percussão sintética - + Reverse Cymbal Chimbal reverso - + Guitar Fret Noise - + Breath Noise Som de respiração - + Seashore Costa marinha - + Bird Tweet Canto de Aves - + Telephone Ring - + Helicopter Helicóptero - + Applause Aplauso - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major maior - + Minor menor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums - + Unknown Desconhecido @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abrir um ficheiro existente - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Sair da aplicação - + &About &Acerca - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Tela C&heia - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferências ... - + Settings Definições - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Ficheiro - + &View &Ver - + &Song - + Set&up - - + + &Help &Ajuda - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Espaço - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Abrir Arquivo MIDI - + Midi Files Arquivos MIDI - - - None - Nenhum - diff --git a/translations/pianobooster_pt_BR.ts b/translations/pianobooster_pt_BR.ts index a80e9893..e1d3dc09 100644 --- a/translations/pianobooster_pt_BR.ts +++ b/translations/pianobooster_pt_BR.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nenhum + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Exatidão: - + Song: Canção: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (nenhum) - + Grand Piano Piano de cauda - + Bright Piano - + Electric Grand - + Honky-tonk Piano Piano Honky-tonk - + Electric Piano 1 Piano Elétrico 1 - + Electric Piano 2 Piano Elétrico 2 - + Harpsichord Cravo - + Clavi - + Celesta - + Glockenspiel Xilofone - + Music Box Caixa de Música - + Vibraphone Vibrafone - + Marimba - + Xylophone Xilofone - + Tubular Bells Tubular bells - + Dulcimer - + Drawbar Organ Orgão Drawbar - + Percussive Organ Órgão Percussivo - + Rock Organ Órgão de Rock - + Church Organ Órgão de igreja - + Reed Organ Harmônio Elétrico - + Accordion Acordeão - + Harmonica Gaita - + Tango Accordion Acordeão de tango - + Acoustic Guitar (nylon) Violão Aústico (nylon) - + Acoustic Guitar (steel) Violão Aústico (aço) - + Electric Guitar (jazz) Violão Elétrico (jazz) - + Electric Guitar (clean) Violão Elétrico (clean) - + Electric Guitar (muted) Violão Elétrico (mudo) - + Overdriven Guitar Gitarra Overdriven - + Distortion Guitar Gitarra Distorcida - + Guitar harmonics Guitarra harmônica - + Acoustic Bass Baixolão - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass Baixo Fretless - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Violino - + Viola - + Cello Violoncelo - + Contrabass Contrabaixo - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Tímpano - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs Coral Aahs - + Voice Oohs Vozes Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trompete - + Trombone - + Tuba - + Muted Trumpet Muted Trompete - + French Horn Trompa francesa - + Brass Section Peça de Metal - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax Sax Soprano - + Alto Sax - + Tenor Sax Sax Tenor - + Baritone Sax Barítono Sax - + Oboe Oboé - + English Horn Corne Inglês - + Bassoon Fagote - + Clarinet Clarinete - + Piccolo Flautim - + Flute Flauta Transversal - + Recorder Flauta Doce - + Pan Flute Flauta de Pã - + Blown Bottle Sopro de Garrafa - + Shakuhachi - + Whistle Apito - + Ocarina - + Lead 1 (square) Lead 1 (quadrado) - + Lead 2 (sawtooth) Lead 2 (dente de serra) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) Lead 6 (voz) - + Lead 7 (fifths) Lead 7 (quintas) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) Pad 4 (coro) - + Pad 5 (bowed) - + Pad 6 (metallic) Pad 6 (metalico) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen Sangen - + Koto - + Kalimba Quissange - + Bag pipe SoproTubos - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Tambor de aço - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise Ruído de Respiração - + Seashore - + Bird Tweet Canto de Aves - + Telephone Ring - + Helicopter Helicoptero - + Applause Aplausos - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major maior - + Minor menor @@ -1451,7 +1459,7 @@ ré# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L L - + R R - + Drums - + Unknown Desconhecido @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Abrir... - + Ctrl+O Ctrl+O - + Open an existing file Abre um arquivo existente - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Sair do programa - + &About &Sobre - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Tela C&heia - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Preferências ... - + Settings Configurações - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Arquivo - + &View &Exibir - + &Song &Canção - + Set&up - - + + &Help &Ajuda - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space Espaço - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Abrir Arquivo MIDI - + Midi Files Arquivos MIDI - - - None - Nenhum - diff --git a/translations/pianobooster_ro.ts b/translations/pianobooster_ro.ts index 5e870bf9..b2f8ecf8 100644 --- a/translations/pianobooster_ro.ts +++ b/translations/pianobooster_ro.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nici unul + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano Pian cu coadă - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Clavecin - + Clavi - + Celesta Celestă - + Glockenspiel - + Music Box - + Vibraphone Vibrafon - + Marimba Marimbafon - + Xylophone Xilofon - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ Orgă Percusivă - + Rock Organ - + Church Organ - + Reed Organ Orgă cu Ancie - + Accordion Acordeon - + Harmonica Muzicuță - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Bass acustic - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Vioară - + Viola Violă - + Cello - + Contrabass Contrabas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Timpan - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trompetă - + Trombone Trombon - + Tuba Tubă - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Oboi - + English Horn Corn Englez - + Bassoon Fagot - + Clarinet - + Piccolo Piculină - + Flute Flaut - + Recorder Flaut dulce - + Pan Flute Nai - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ re# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Necunoscută @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Deschide... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Despre - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Setări - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fișier - + &View &Vizualizare - + &Song - + Set&up - - + + &Help A&jutor - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Nici unul - diff --git a/translations/pianobooster_ru.ts b/translations/pianobooster_ru.ts index 34406540..9ca0828a 100644 --- a/translations/pianobooster_ru.ts +++ b/translations/pianobooster_ru.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Нету + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Точность: - + Song: Песня: - + Bar: Такт: @@ -78,647 +86,647 @@ CTrackList - + (None) (Нету) - + Grand Piano Рояль - + Bright Piano Яркое пианино - + Electric Grand Электрический гранд - + Honky-tonk Piano Пианино Хонки-тонк - + Electric Piano 1 Электрическое пианино 1 - + Electric Piano 2 Электрическое пианино 2 - + Harpsichord Клавесин - + Clavi Клавинет - + Celesta Челеста - + Glockenspiel Глокеншпиль - + Music Box Музыкальная шкатулка - + Vibraphone Вибрафон - + Marimba Маримба - + Xylophone Ксилофон - + Tubular Bells Трубные колокола - + Dulcimer Дульцимер - + Drawbar Organ Тяговый орган - + Percussive Organ Ударный орган - + Rock Organ Скальный орган - + Church Organ Церковный орган - + Reed Organ Язычковый орган - + Accordion Аккордеон - + Harmonica Губная гармоника - + Tango Accordion Аккордеон Танго - + Acoustic Guitar (nylon) Акустическая гитара (нейлон) - + Acoustic Guitar (steel) Акустическая гитара (сталь) - + Electric Guitar (jazz) Электрогитара (джаз) - + Electric Guitar (clean) Электрогитара (чистая) - + Electric Guitar (muted) Электрогитара (приглушённая) - + Overdriven Guitar Перегруженная гитара - + Distortion Guitar Расстроенная гитара - + Guitar harmonics Гитарные гармоники - + Acoustic Bass Акустический бас - + Electric Bass (finger) Электрический бас (палец) - + Electric Bass (pick) Электрический бас (медиатор) - + Fretless Bass Безладовый бас - + Slap Bass 1 Слэп-бас 1 - + Slap Bass 2 Слэп-бас 2 - + Synth Bass 1 Синтезированный бас 1 - + Synth Bass 2 Синтезированный бас 2 - + Violin Скрипка - + Viola Альт - + Cello Виолончель - + Contrabass Контрабас - + Tremolo Strings Струны тремоло - + Pizzicato Strings Струны пиццикато - + Orchestral Harp Оркестровая арфа - + Timpani Тимпаны, литавры - + String Ensemble 1 Струнный ансамбль 1 - + String Ensemble 2 Струнный ансамбль 2 - + SynthStrings 1 Струны синтезатора 1 - + SynthStrings 2 Струны синтезатора 2 - + Choir Aahs Хоровое ахание - + Voice Oohs Голосовое охание - + Synth Voice Синтезированный голос - + Orchestra Hit Оркестровый хит (акцент) - + Trumpet Труба - + Trombone Тромбон - + Tuba Туба - + Muted Trumpet Приглушённая труба - + French Horn Валторна - + Brass Section Духовые инструменты - + SynthBrass 1 Синтезированная латунь 1 - + SynthBrass 2 Синтезированная латунь 2 - + Soprano Sax Саксофон-сопрано - + Alto Sax Саксофон-альт - + Tenor Sax Саксофон-тенор - + Baritone Sax Саксофон-баритон - + Oboe Гобой - + English Horn Английский рожок - + Bassoon Фагот - + Clarinet Кларнет - + Piccolo Флейта-пикколо - + Flute Флейта - + Recorder Блокфлейта - + Pan Flute Флейта Пана - + Blown Bottle Выдувная бутылка - + Shakuhachi Сякухати - + Whistle Свисток - + Ocarina Окарина - + Lead 1 (square) Лид 1 (квадрат) - + Lead 2 (sawtooth) Лид 2 (пилообразный) - + Lead 3 (calliope) Лид 3 (каллиопа) - + Lead 4 (chiff) Лид 4 (шифф) - + Lead 5 (charang) Лид 5 (чаранг) - + Lead 6 (voice) Лид 6 (голос) - + Lead 7 (fifths) Лид 7 (пятый) - + Lead 8 (bass + lead) Лид 8 (бас + лид) - + Pad 1 (new age) Пэд 1 (новый век) - + Pad 2 (warm) Пэд 2 (тепло) - + Pad 3 (polysynth) Пэд 3 (полисинтез) - + Pad 4 (choir) Пэд 4 (хор) - + Pad 5 (bowed) Пэд 5 (смычковый) - + Pad 6 (metallic) Пэд 6 (металлик) - + Pad 7 (halo) Пэд 7 (гало) - + Pad 8 (sweep) Пэд 8 (покачивание) - + FX 1 (rain) FX 1 (дождь) - + FX 2 (soundtrack) FX 2 (саундтрек) - + FX 3 (crystal) FX 3 (кристалл) - + FX 4 (atmosphere) FX 4 (атмосфера) - + FX 5 (brightness) FX 5 (яркость) - + FX 6 (goblins) FX 6 (гоблины) - + FX 7 (echoes) FX 7 (эхо) - + FX 8 (sci-fi) FX 8 (научно-фантастический) - + Sitar Ситар - + Banjo Банджо - + Shamisen Сямисэн - + Koto Кото - + Kalimba Калимба - + Bag pipe Волынка - + Fiddle Фиддл - + Shanai Шахнай - + Tinkle Bell Тинкл Белл - + Agogo Агого - + Steel Drums Стальные ударные - + Woodblock Вуд-блок, гольцтон - + Taiko Drum Барабан Тайко - + Melodic Tom Мелодичный том - + Synth Drum Синтезированный барабан - + Reverse Cymbal Реверс-кимвал - + Guitar Fret Noise Раздражительный шум гитары - + Breath Noise Шум дыхания - + Seashore Морской берег - + Bird Tweet Чирикание птицы - + Telephone Ring Телефонный звонок - + Helicopter Вертолёт - + Applause Аплодисменты - + Gunshot Выстрел @@ -1219,13 +1227,13 @@ - + Drums Барабаны - + Melody Мелодия @@ -1319,7 +1327,7 @@ - + Start and stop playing music Начните и остановите играть музыку @@ -1350,13 +1358,13 @@ - + Major Мажор - + Minor Минор @@ -1451,7 +1459,7 @@ D# - + Playing music from the beginning Воспроизведение музыки с самого начала @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Ошибка Midi файла - + Cannot open "%1" Не могу открыть "%1" - + Midi file "%1" is corrupted Midi файл "%1" повреждён @@ -1488,22 +1496,22 @@ QObject - + L Л - + R П - + Drums Барабаны - + Unknown Неизвестно @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Ошибка файла MIDI PianoBooster - + Cannot open "%1" Не могу открыть "%1" - + "%1" is not a Midi File "%1" - не Midi файл - + "%1" is not a valid Midi file "%1" - некорректный Midi файл - + &Open... &Открыть... - + Ctrl+O Ctrl+O - + Open an existing file Открыть существующий файл - + E&xit В&ыход - + Ctrl+Q Ctrl+Q - + Exit the application Выйти из приложения - + &About &О программе - + Show the application's About box Показать окно приложения о программе - + &PC Shortcut Keys &Сочетания клавиш для ПК - + The PC Keyboard shortcut keys Сочетания клавиш клавиатуры для ПК - + &Midi Setup ... Настройка &Midi ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Настроить вход и выход Midi - + Piano &Keyboard Setting ... Настройка &клавиатуры пианино ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Изменить настройки клавиатуры пианино - + &Fullscreen &Полноэкранный - + Fullscreen mode Полноэкранный режим - + F11 F11 - + &Show the Side Panel &Показать боковую панель - + Show the Left Side Panel Показать боковую панель слева - + F12 F12 - + Show Piano &Keyboard Показать &клавиатуру пианино - + Show Piano Keyboard Widget Показать виджет клавиатуры пианино - + &Preferences ... &Предпочтения ... - + Settings Настройки - + Ctrl+P Ctrl+P - + Song &Details ... &Детали песни ... - + Song Settings Настройки песни - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Файл - + &View &Вид - + &Song П&есня - + Set&up Настрой&ка - - + + &Help &Помощь - - + + Piano Booster Help Справка Piano Booster - + &Website &Сайт - + Piano Booster Website Веб-сайт Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster О Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - Версия %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Улучшите</b> свои навыки игры на <b>пианино</b>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> © L. J. Barman, 2008-2013; Все права защищены.<br> {2008-2020;?} - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> © Fabien Givors, 2018-2019; Все права защищены.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Эта программа доступна на условиях Стандартной общественной лицензии GNU версии 3, опубликованной Фондом свободного программного обеспечения.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Эта программа также содержит RtMIDI: классы C++ ввода/вывода MIDI в реальном времени<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. © Gary P. Scavone, 2003-2019; Все права защищены. - + space пробел - + PC Keyboard ShortCuts Сочетания клавиш ПК - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Сочетания клавиш</center></h2><p>Следующие сочетания клавиш ПК были определены.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Действие</th><th>Клавиша</th></tr> - + Choose the right hand Выбрать правую руку - + Choose both hands Выбрать обе руки - + Choose the left Hand Выбрать левую руку - + Play from start toggle Переключить воспроизведение с начала - + Play Pause Toggle Переключить воспроизведение и паузу - - + + Increase the speed by 5% Увеличить скорость на 5% - + Change to the Next Song Перейти к следующей песне - + Change to the Previous Song Перейти к предыдущей песне - + Change to the Next Book Перейти к следующему песеннику - + Change to the Previous Book Перейти к предыдущему песеннику - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Мнимые клавиши пианино</td><td>X - это C в середине</td></tr></table> </center><br> - + Open Midi File Открыть файл Midi - + Midi Files Файлы Midi - - - None - Нету - diff --git a/translations/pianobooster_se.ts b/translations/pianobooster_se.ts index 69ad5fc9..4e537090 100644 --- a/translations/pianobooster_se.ts +++ b/translations/pianobooster_se.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ii oktage + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Raba … - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Om - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fiila - + &View Čá&jet - + &Song - + Set&up - - + + &Help H&jälp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Ii oktage - diff --git a/translations/pianobooster_si.ts b/translations/pianobooster_si.ts index 919e0727..7daa730d 100644 --- a/translations/pianobooster_si.ts +++ b/translations/pianobooster_si.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + කිසිවක් නැත + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown නොදන්නා @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &සම්බන්ධව - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &ගොනුව - + &View &දසුන - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - කිසිවක් නැත - diff --git a/translations/pianobooster_sk.ts b/translations/pianobooster_sk.ts index 911ef0a6..b8ebbe0b 100644 --- a/translations/pianobooster_sk.ts +++ b/translations/pianobooster_sk.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Presnosť: - + Song: Skladba: - + Bar: Takt: @@ -78,647 +86,647 @@ CTrackList - + (None) (Žiaden) - + Grand Piano Koncertné krídlo - + Bright Piano Zvučný klavír - + Electric Grand Elektrické koncertné krídlo - + Honky-tonk Piano Honky-tonk Piano - + Electric Piano 1 Elektrický klavír 1 - + Electric Piano 2 Elektrický klavír 2 - + Harpsichord Čembalo - + Clavi Clavichord - + Celesta Celesta - + Glockenspiel Zvonkohra - + Music Box Hracia skrinka - + Vibraphone Vibrafón - + Marimba Marimba - + Xylophone Xylofón - + Tubular Bells Trubicové zvonky - + Dulcimer Dulcimer - + Drawbar Organ Naťahovací organ - + Percussive Organ Perkusívny organ - + Rock Organ Rockový organ - + Church Organ Kostolný organ - + Reed Organ Píšťalový organ - + Accordion Akordeón - + Harmonica Harmonika - + Tango Accordion Tango harmonika (akordeón) - + Acoustic Guitar (nylon) Akustická gitara (nylonové struny) - + Acoustic Guitar (steel) Akustická gitara (kovové struny) - + Electric Guitar (jazz) Elektrická gitara (džezová) - + Electric Guitar (clean) Elektrická gitara (pravá) - + Electric Guitar (muted) Elektrická gitara (tlmená) - + Overdriven Guitar Prebudená elektrická gitara - + Distortion Guitar Skreslená elektrická gitara - + Guitar harmonics Kontrabas (prsty - pizzicato) - + Acoustic Bass Akustická basgitara - + Electric Bass (finger) Elektrická basgitara (prsty) - + Electric Bass (pick) Elektrická basgitara (brnkátko) - + Fretless Bass Bezpražcová basgitara - + Slap Bass 1 Slap basgitara 1 - + Slap Bass 2 Slap basgitara 2 - + Synth Bass 1 Syntetizátorová basgitara 1 - + Synth Bass 2 Syntetizátorová basgitara 2 - + Violin Husle - + Viola Altové husle - + Cello Violončelo - + Contrabass Kontrabas - + Tremolo Strings Tremolo sláčiky - + Pizzicato Strings Pizzicato sláčiky - + Orchestral Harp Orchestrálna harfa - + Timpani Tympany - + String Ensemble 1 Sláčikový zbor rýchly 1 - + String Ensemble 2 Sláčikový zbor pomalý 2 - + SynthStrings 1 Syntetické sláčíky 1 - + SynthStrings 2 Syntetické sláčíky 1 - + Choir Aahs Chór Ááá - + Voice Oohs Hlas Oohs - + Synth Voice Syntetický hlas - + Orchestra Hit Orchestrálny akcent - + Trumpet Trúbka - + Trombone Pozauna - + Tuba Tuba - + Muted Trumpet Trúbka s dusítkom - + French Horn Lesný roh - + Brass Section Sláčiková sekcia - + SynthBrass 1 Syntetická dychová kapela 1 - + SynthBrass 2 Syntetická dychová kapela 2 - + Soprano Sax Sopránový saxofón - + Alto Sax Altový saxofón - + Tenor Sax Tenorový saxofón - + Baritone Sax Baritónový saxofón - + Oboe Hoboj - + English Horn Anglický roh - + Bassoon Fagot - + Clarinet Klarinet - + Piccolo Pikola - + Flute Flauta - + Recorder Zobcová flauta - + Pan Flute Panova flauta - + Blown Bottle Fúkanie cez fľašu - + Shakuhachi Šakuhači - + Whistle Hvizd - + Ocarina Okarína - + Lead 1 (square) Syntetické sólo 1 (obdĺžnik) - + Lead 2 (sawtooth) Syntetické sólo 2 (píla) - + Lead 3 (calliope) Syntetické sólo 3 (calliope - parný organ) - + Lead 4 (chiff) Syntetické sólo 4 (chiff, so vzduchom) - + Lead 5 (charang) Syntetické solo 5 (charang) - + Lead 6 (voice) Syntatické sólo 6 (hlas) - + Lead 7 (fifths) Syntetické sólo 7 (píla s kvintou) - + Lead 8 (bass + lead) Syntetické sólo 8 (bas + sólo) - + Pad 1 (new age) Plocha 1 (fantázia) - + Pad 2 (warm) Plocha 2 (teplá) - + Pad 3 (polysynth) Plocha 3 (polyfónny syntetizér) - + Pad 4 (choir) Plocha 2 (zborový zvuk) - + Pad 5 (bowed) Plocha 5 (sklenená harmonika) - + Pad 6 (metallic) Plocha 6 (kovová) - + Pad 7 (halo) Plocha 7 (svetelný kruh) - + Pad 8 (sweep) Plocha 8 (sweep) - + FX 1 (rain) FX 1 (ľadový dážď) - + FX 2 (soundtrack) FX 2 (zvuková stopa) - + FX 3 (crystal) FX 3 (kryštál) - + FX 4 (atmosphere) FX 4 (atmosféra) - + FX 5 (brightness) FX 5 (jas) - + FX 6 (goblins) FX 6 (škriatkovia) - + FX 7 (echoes) FX 7 (ozveny) - + FX 8 (sci-fi) FX 8 (sci-fi) - + Sitar Sitár - + Banjo Bendžo - + Shamisen Šamisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Gajdy - + Fiddle Husle (folklórne) - + Shanai Šenai - + Tinkle Bell Roľničky - + Agogo Agogo - + Steel Drums Oceľové bubny - + Woodblock Drevený blok - + Taiko Drum Bubon taiko - + Melodic Tom Melodický bubon - + Synth Drum Syntetický bubon - + Reverse Cymbal Zvuk činelu pospiatky - + Guitar Fret Noise Zvuk gitarového pražca - + Breath Noise Dych - + Seashore Morské pobrežie - + Bird Tweet Vtáčí spev - + Telephone Ring Zvonenie telefónu - + Helicopter Helikoptéra - + Applause Potlesk - + Gunshot Výstrel @@ -1219,13 +1227,13 @@ - + Drums Bubny - + Melody Melódia @@ -1319,7 +1327,7 @@ - + Start and stop playing music Spustiť a zastaviť prehrávanie nôt @@ -1350,13 +1358,13 @@ - + Major Durová (Major) - + Minor Molová (Minor) @@ -1451,7 +1459,7 @@ Dis - + Playing music from the beginning Prehrávanie nôt od začiatku @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Chyba súboru MIDI - + Cannot open "%1" Nepodarilo sa otvoriť "%1" - + Midi file "%1" is corrupted MIDI súbor "%1" je poškodený @@ -1488,22 +1496,22 @@ QObject - + L Ľ - + R P - + Drums Bubny - + Unknown Neznáme @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Chyba v súbore MIDI pre Piano Booster - + Cannot open "%1" Nepodarilo sa otvoriť "%1" - + "%1" is not a Midi File "%1" nie je súbor MIDI - + "%1" is not a valid Midi file "%1" nie je platným súborom MIDI - + &Open... &Otvoriť... - + Ctrl+O Ctrl+O - + Open an existing file Otvoriť existujúci súbor - + E&xit &Koniec - + Ctrl+Q Ctrl+Q - + Exit the application Ukončiť aplikáciu - + &About &O programe - + Show the application's About box Zobraziť okno s informáciami o programe - + &PC Shortcut Keys Klávesové &skratky - + The PC Keyboard shortcut keys Klávesové skratky - + &Midi Setup ... &Nastavenia MIDI... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Nastaviť vstup a výstup MIDI - + Piano &Keyboard Setting ... Nastavenie &klaviatúry... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Zmeniť nastavenia klaviatúry - + &Fullscreen &Celá obrazovka - + Fullscreen mode Režim na celú obrazovku - + F11 F11 - + &Show the Side Panel &Zobraziť bočný panel - + Show the Left Side Panel Zobraziť ľavý bočný panel - + F12 F12 - + Show Piano &Keyboard Zobraziť &klaviatúru - + Show Piano Keyboard Widget Zobraziť panel s klaviatúrou - + &Preferences ... &Predvoľby... - + Settings Nastavenie - + Ctrl+P Ctrl+P - + Song &Details ... &Podrobnosti skladby... - + Song Settings Nastavenia skladby - + Ctrl+D Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Súbor - + &View &Zobraziť - + &Song &Skladba - + Set&up &Nastavenia - - + + &Help &Pomocník - - + + Piano Booster Help Pomocník pre Piano Booster - + &Website &Webová stránka - + Piano Booster Website Webová stránka programu Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Začíname</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p> Budete potrebovať <b> klávesy s podporou MIDI </b> a <b> MIDI rozhrania </b> pre Váš počítač.Pokud nemáte klávesy, ktoré toto rozhranie podporujú, môžete PianoBooster vyskúšať na klávesnici vášho počítača, 'X' je jednočiarkované C. </p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p> Na to, aby ste mohli počul zvuk budete potrebovať <b> Syntezátor zvuku MIDI </b>. Operačný systém windows obsahuje "Microsoft GS Wavetable software synthesizer", bohužiaľ tento software dosahuje vysokého oneskorenie (latencie). Na linuxu môžete použiť - + or alebo - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p> PianoBooster pracuje najlepšie s MIDI súbory, ktoré majú rozdelené časti na pravú a ľavú ruku používajúce MIDI kanály 3 a 4. - + <h3>Setting Up</h3> <h3>Počiatočné nastavenie</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p> Po prvé bežťe do menu <i> Nastavenia / Nastavenia MIDI </i> a vyberte také rozhranie, ktoré podporuje váš hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Ďalej použijeme <i> Súbor / Otvoriť </ > pre otvorenie MIDI súborov s príponou ".mid" alebo karaoke súborov s príponou ".kar". Potom si vyberte či chcete hudbu len <i> počúvať </i> alebo aby vás program<i> následoval</i> na Vašich klávesoch. Je možné tiež nastaviť <i> úrovne </i> obtiažnosti na ľavom paneli. Až budete pripravení kliknite na tlačidlo s <i> ikonou play </i> (alebo stlačte <i> medzerník </i>) na spustenie hudby. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3> Rady ako hrať na klavír </h3> <p> Pre rady ako hrať na klavír sa pozrite na: - + Piano Hints Rady na klavír - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3> Pre viac informácií </h3> <p> Pre viac informácií prosím navštívte - + website webovú stránku PianoBoosteru alebo - + the PianoBooster často kladené otázky PianoBoosteru - + FAQ FAQ - + and the a - + user forum užívateľské fórum - + About Piano Booster O programe Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster - verzia %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Pozdvihnite</b> svoje <b>zručnosti hry na klavír</b>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> Kopírovacie právo (c) L. J. Barman, 2008-2020; Všetky práva vyhradené.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> Kopírovacie právo (c) Fabien Givors, 2018-2019; Všetky práva vyhradené.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Tento program je poskytovaný pod podmienkami GNU General Public License verzie 3 tak, ako sú zverejnené organizáciou Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> Tento program tiež obsahuje RtMIDI: realtime MIDI i/o C++ triedy<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. Kopírovacie právo (c) Gary P. Scavone, 2003-2019; Všetky práva vyhradené. - + space medzerník - + PC Keyboard ShortCuts Klávesové skratky - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Klávesové skratky</center></h2><p>Boli definované nasledovné klávesové skratky.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Činnosť</th><th>Kláves</th></tr> - + Choose the right hand Vybrať pravú ruku - + Choose both hands Vybrať obe ruky - + Choose the left Hand Vybrať ľavú ruku - + Play from start toggle Prepnutie prehrávania od začiatku - + Play Pause Toggle Prepnutie Prehrať/Pozastaviť - - + + Increase the speed by 5% Zvýšiť rýchlosť o 5 % - + Change to the Next Song Prejsť na ďalšiu skladbu - + Change to the Previous Song Prejsť na predchádzajúcu skladbu - + Change to the Next Book Prejsť na ďalšiu knihu - + Change to the Previous Book Prejsť na predchádzajúcu knihu - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Emulovaná klaviatúra</td><td>X is jednočiarkové C</td></tr></table> </center><br> - + Open Midi File Otvoriť súbor MIDI - + Midi Files Súbory MIDI - - - None - Žiaden - diff --git a/translations/pianobooster_sl.ts b/translations/pianobooster_sl.ts index 89ce69ac..e71bdb24 100644 --- a/translations/pianobooster_sl.ts +++ b/translations/pianobooster_sl.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Noben + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Noben) - + Grand Piano Koncertni klavir - + Bright Piano - + Electric Grand - + Honky-tonk Piano Honky-tonk klavir - + Electric Piano 1 Električni klavir 1 - + Electric Piano 2 Električni klavir 2 - + Harpsichord Čembalo - + Clavi Klavikord - + Celesta Čelesta - + Glockenspiel Zvončki - + Music Box Lajna - + Vibraphone Vibrafon - + Marimba - + Xylophone Ksilofon - + Tubular Bells Cevasti zvonovi - + Dulcimer Čembalo 2 - + Drawbar Organ Orgle 1 - + Percussive Organ Udarne orgle - + Rock Organ Orgle 3 - + Church Organ Orgle cerkvene - + Reed Organ Orgle 4 - + Accordion Harmonika - + Harmonica Orglice - + Tango Accordion Tango akordeon - + Acoustic Guitar (nylon) Kitara akustična (najlonske strune) - + Acoustic Guitar (steel) Kitara akustična (jeklene strune) - + Electric Guitar (jazz) Kitara električna (jazz) - + Electric Guitar (clean) Kitara električna (neojačana) - + Electric Guitar (muted) Kitara električna (utišana) - + Overdriven Guitar Kitara električna (overdriven) - + Distortion Guitar Kitara električna (distortion) - + Guitar harmonics Kitara električna (harmonije) - + Acoustic Bass Akustična bas kitara - + Electric Bass (finger) Električni bas 1 - + Electric Bass (pick) Električni bas 2 - + Fretless Bass Električni bas 3 - + Slap Bass 1 Slap bas 1 - + Slap Bass 2 Slap bas 2 - + Synth Bass 1 Synth bas 1 - + Synth Bass 2 Synth bas 2 - + Violin Violina - + Viola - + Cello Čelo - + Contrabass Kontrabas - + Tremolo Strings Tremolo godala - + Pizzicato Strings Pizzicato godala - + Orchestral Harp Harfa - + Timpani Pavke - + String Ensemble 1 Ansambel godal 1 - + String Ensemble 2 Ansambel godal 2 - + SynthStrings 1 Synth godala 1 - + SynthStrings 2 Synth godala 2 - + Choir Aahs Zborovski "aaa" - + Voice Oohs Pevski "ooo" - + Synth Voice Synth glas - + Orchestra Hit Orkestralni udarec - + Trumpet Trobenta - + Trombone Pozavna - + Tuba - + Muted Trumpet Utišana trobenta - + French Horn Francoski rog - + Brass Section Trobila - + SynthBrass 1 Synth trobila 1 - + SynthBrass 2 Synth trobila 2 - + Soprano Sax Saksofon sopran - + Alto Sax Saksofon alt - + Tenor Sax Saksofon tenor - + Baritone Sax Saksofon bariton - + Oboe Oboa - + English Horn Angleški rog - + Bassoon Fagot - + Clarinet Klarinet - + Piccolo Mala flavta - + Flute Flavta - + Recorder Kljunasta flavta - + Pan Flute Panova piščal - + Blown Bottle Pihanje v steklenico - + Shakuhachi Šakuhači - + Whistle Žvižganje - + Ocarina Okarina - + Lead 1 (square) Lead 1 (pravilen val) - + Lead 2 (sawtooth) Lead 2 (melodični val) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) Lead 5 (šarang) - + Lead 6 (voice) Lead 6 (glasovi) - + Lead 7 (fifths) Lead 7 (kvinte) - + Lead 8 (bass + lead) Lead 8 (bas + lead) - + Pad 1 (new age) Pad 1 (nova doba) - + Pad 2 (warm) Pad 2 (topli) - + Pad 3 (polysynth) - + Pad 4 (choir) Pad 4 (zbor) - + Pad 5 (bowed) Pad 5 (steklovina) - + Pad 6 (metallic) Pad 6 (kovinski) - + Pad 7 (halo) Pad 7 (žareč) - + Pad 8 (sweep) Pad 8 (izčiščen) - + FX 1 (rain) FX 1 (dež) - + FX 2 (soundtrack) - + FX 3 (crystal) FX 3 (kristal) - + FX 4 (atmosphere) FX 4 (atmosfera) - + FX 5 (brightness) FX 5 (svetloba) - + FX 6 (goblins) FX 6 (goblini) - + FX 7 (echoes) FX 7 (odmevi) - + FX 8 (sci-fi) FX 8 (fantastika) - + Sitar - + Banjo - + Shamisen Šamisen - + Koto - + Kalimba - + Bag pipe Dude irske - + Fiddle Gosli - + Shanai Šanai - + Tinkle Bell Zvončki otroški - + Agogo - + Steel Drums Jeklene plošče - + Woodblock Tolkala lesena - + Taiko Drum Taiko boben - + Melodic Tom Tom - + Synth Drum Tolkala synth - + Reverse Cymbal Obrnjene činele - + Guitar Fret Noise Praskanje strune kitare - + Breath Noise Vdih - + Seashore Obala - + Bird Tweet Ptiči - + Telephone Ring Telefon - + Helicopter Helikopter - + Applause Aplavz - + Gunshot Pištola @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major Velika - + Minor Mala @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Neznano @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Odpri ... - + Ctrl+O Ctrl+O - + Open an existing file Odpri obstoječo datoteko - + E&xit Konča&j - + Ctrl+Q Ctrl+Q - + Exit the application - + &About &O programu - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen Celo&zaslonski način - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Nastavitve ... - + Settings Nastavitve - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Datoteka - + &View &Videz - + &Song - + Set&up - - + + &Help &Pomoč - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Odpri Midi datoteka - + Midi Files Datoteke MIDI - - - None - Noben - diff --git a/translations/pianobooster_sq.ts b/translations/pianobooster_sq.ts index 65e0b5f2..a8b4eeb3 100644 --- a/translations/pianobooster_sq.ts +++ b/translations/pianobooster_sq.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Asnjë + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nuk njihet @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit D&il - + Ctrl+Q - + Exit the application - + &About &Informacione - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View &Shfaq - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Asnjë - diff --git a/translations/pianobooster_sr.ts b/translations/pianobooster_sr.ts index 003927d4..405763de 100644 --- a/translations/pianobooster_sr.ts +++ b/translations/pianobooster_sr.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ништа + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Песма: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ништа) - + Grand Piano Клавир — концертни - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Чембало - + Clavi - + Celesta Челеста - + Glockenspiel - + Music Box - + Vibraphone Вибрафон - + Marimba Маримба - + Xylophone Ксилофон - + Tubular Bells - + Dulcimer Цимбал - + Drawbar Organ - + Percussive Organ Ударачке оргуље - + Rock Organ - + Church Organ - + Reed Organ Оргуље са језичком - + Accordion Хармоника - + Harmonica Хармоника — усна - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Бас — Акустични - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Виолина - + Viola Виола - + Cello - + Contrabass Контрабас - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani Тимпани - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Труба - + Trombone Тромбон - + Tuba Туба - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Обоа - + English Horn Рог — Енглески - + Bassoon Фагот - + Clarinet Кларинет - + Piccolo Флаута — Пиколо - + Flute Флаута - + Recorder Флаута — Блок - + Pan Flute Флаута — Панова (Панова фрула) - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Окарина - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Ситара - + Banjo Бенџо - + Shamisen Шамисен - + Koto Кото - + Kalimba Калимба - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Челични бубњеви - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Непознато @@ -1516,444 +1524,439 @@ Наставик клавира - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Отвори... - + Ctrl+O Ctrl+O - + Open an existing file Отвори постојећу датотеку - + E&xit &изађи - + Ctrl+Q Ctrl+Q - + Exit the application Напустите програм - + &About О прогр&аму - + Show the application's About box Прикажи прозорче са подацима о програму - + &PC Shortcut Keys &Пречице рачунарске тастатуре - + The PC Keyboard shortcut keys Тасетери пречица на рачунарској тастатури - + &Midi Setup ... &Миди-поставке... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Поставке миди улаза и излаза - + Piano &Keyboard Setting ... Поставке &клавијатуре... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Поставке... - + Settings Поставке - + Ctrl+P Ctrl+P - + Song &Details ... Подаци о пе&сми... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Датотека - + &View &Приказ - + &Song Пе&сма - + Set&up По&ставка - - + + &Help П&омоћ - - + + Piano Booster Help Помоћник наставика клавира - + &Website &Веб-странице - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster О Наставику клавира - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Пречице рачунарске тастатуре - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Пречице рачунарске тастатуре</center></h2><p>Одређене су ове пречице рачунарске тастатуре.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Радња</th><th>Тастер</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Патворене клавирске дирке</td><td>Џ је нота »До« прве октаве (Ц4)</td></tr></table> </center><br> - + Open Midi File Отвори миди-датотеку - + Midi Files - - - None - Ништа - diff --git a/translations/pianobooster_sr@latin.ts b/translations/pianobooster_sr@latin.ts index 9a13d56c..00a8a442 100644 --- a/translations/pianobooster_sr@latin.ts +++ b/translations/pianobooster_sr@latin.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ništa + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Pesma: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Ništa) - + Grand Piano Klavir — koncertni - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Čembalo - + Clavi - + Celesta Čelesta - + Glockenspiel - + Music Box - + Vibraphone Vibrafon - + Marimba - + Xylophone Ksilofon - + Tubular Bells - + Dulcimer Cimbal - + Drawbar Organ - + Percussive Organ Udaračke orgulje - + Rock Organ - + Church Organ - + Reed Organ Orgulje sa jezičkom - + Accordion Harmonika - + Harmonica Harmonika — usna - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Bas — Akustični - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Violina - + Viola - + Cello - + Contrabass Kontrabas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Truba - + Trombone Trombon - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Oboa - + English Horn Engleski rog - + Bassoon Fagot - + Clarinet Klarinet - + Piccolo Pikolo - + Flute Flauta - + Recorder Blok flauta - + Pan Flute Panova Frula - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Sitara - + Banjo Bendžo - + Shamisen Šamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Čelični bubnjevi - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nepoznato @@ -1516,444 +1524,439 @@ Nastavik klavira - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Otvori... - + Ctrl+O Ctrl+O - + Open an existing file Otvori postojeću datoteku - + E&xit &izađi - + Ctrl+Q Ctrl+Q - + Exit the application Napustite program - + &About O progr&amu - + Show the application's About box Prikaži prozorče sa podacima o programu - + &PC Shortcut Keys &Prečice računarske tastature - + The PC Keyboard shortcut keys Taseteri prečica na računarskoj tastaturi - + &Midi Setup ... &Midi-postavke... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Postavke midi ulaza i izlaza - + Piano &Keyboard Setting ... Postavke &klavijature... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Postavke... - + Settings Postavke - + Ctrl+P Ctrl+P - + Song &Details ... Podaci o pe&smi... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Fajl - + &View P&rikaz - + &Song Pe&sma - + Set&up Po&stavka - - + + &Help P&omoć - - + + Piano Booster Help Pomoćnik nastavika klavira - + &Website &Veb-stranice - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster O Nastaviku klavira - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Prečice računarske tastature - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Prečice računarske tastature</center></h2><p>Određene su ove prečice računarske tastature.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Radnja</th><th>Taster</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Patvorene klavirske dirke</td><td>Dž je nota »Do« prve oktave (C4)</td></tr></table> </center><br> - + Open Midi File Otvori midi-datoteku - + Midi Files - - - None - Ništa - diff --git a/translations/pianobooster_sv.ts b/translations/pianobooster_sv.ts index a6994e1a..85e56b94 100644 --- a/translations/pianobooster_sv.ts +++ b/translations/pianobooster_sv.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ingen + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Noggrannhet: - + Song: Låt: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (ingen) - + Grand Piano Flygelpiano - + Bright Piano Ljust piano - + Electric Grand Elektrisk Grand - + Honky-tonk Piano Honky-tonk-piano - + Electric Piano 1 Elpiano 1 - + Electric Piano 2 Elpiano 2 - + Harpsichord Cembalo - + Clavi Klavikord - + Celesta Celest - + Glockenspiel Klockspel - + Music Box Speldosa - + Vibraphone Vibrafon - + Marimba Marimba - + Xylophone Xylofon - + Tubular Bells Rörklockor - + Dulcimer Hackbräde - + Drawbar Organ Hammondorgel 1 - + Percussive Organ Orgel med percussion - + Rock Organ Hammondorgel 3 - + Church Organ Orgel - + Reed Organ Orgel med tungstämma - + Accordion Dragspel - + Harmonica Munspel - + Tango Accordion Bandoneón - + Acoustic Guitar (nylon) Akustisk nylonsträngad gitarr - + Acoustic Guitar (steel) Akustisk stålsträngad gitarr - + Electric Guitar (jazz) Elgitarr (jazz) - + Electric Guitar (clean) Elgitarr (ren) - + Electric Guitar (muted) Elgitarr (sordinerad) - + Overdriven Guitar Elgitarr (overdrive) - + Distortion Guitar Elgitarr (distortion) - + Guitar harmonics Gitarrflageoletter - + Acoustic Bass Akustisk bas - + Electric Bass (finger) Elbas (fingerknäppt) - + Electric Bass (pick) Elbas (plektrumknäppt) - + Fretless Bass Bandlös elbas - + Slap Bass 1 Elbas (Slap 1) - + Slap Bass 2 Elbas (Slap 2) - + Synth Bass 1 Syntbas 1 - + Synth Bass 2 Syntbas 2 - + Violin Fiol - + Viola Altfiol - + Cello Violoncell - + Contrabass Kontrabas - + Tremolo Strings Stråktremolo - + Pizzicato Strings Pizzicato - + Orchestral Harp Harpa - + Timpani Pukor - + String Ensemble 1 Stråkensemble 1 - + String Ensemble 2 Stråkensemble 2 - + SynthStrings 1 Syntstråkar 1 - + SynthStrings 2 Syntstråkar 2 - + Choir Aahs Röster (A) - + Voice Oohs Röster (O) - + Synth Voice Syntröst - + Orchestra Hit Orkesteraccent - + Trumpet Trumpet - + Trombone Trombon - + Tuba Tuba - + Muted Trumpet Sordinerad trumpet - + French Horn Valthorn - + Brass Section Brassektion - + SynthBrass 1 Syntbrass 1 - + SynthBrass 2 Syntbrass 2 - + Soprano Sax Sopransaxofon - + Alto Sax Altsaxofon - + Tenor Sax Tenorsaxofon - + Baritone Sax Barytonsaxofon - + Oboe Oboe - + English Horn Engelskt horn - + Bassoon Fagott - + Clarinet Klarinett - + Piccolo Piccolaflöjt - + Flute Flöjt - + Recorder Blockflöjt - + Pan Flute Panflöjt - + Blown Bottle Flaska - + Shakuhachi Shakuhachi - + Whistle Pipa - + Ocarina Okarina - + Lead 1 (square) Solo 1 (fyrkant) - + Lead 2 (sawtooth) Solo 2 (sågtand) - + Lead 3 (calliope) Solo 3 (ångvissla) - + Lead 4 (chiff) Solo 4 (pipa) - + Lead 5 (charang) Solo 5 (charang) - + Lead 6 (voice) Solo 6 (röst) - + Lead 7 (fifths) Solo 7 (kvinter) - + Lead 8 (bass + lead) Solo 8 (bas+solo) - + Pad 1 (new age) Ljudmatta 1 (new age) - + Pad 2 (warm) Ljudmatta 2 (varm) - + Pad 3 (polysynth) Ljudmatta 3 (polysynt) - + Pad 4 (choir) Ljudmatta 4 (kör) - + Pad 5 (bowed) Ljudmatta 5 (stråkar) - + Pad 6 (metallic) Ljudmatta 6 (metallisk) - + Pad 7 (halo) Ljudmatta 7 (halo) - + Pad 8 (sweep) Ljudmatta 8 (svep) - + FX 1 (rain) FX 1 (regn) - + FX 2 (soundtrack) FX 2 (ljudspår) - + FX 3 (crystal) FX 3 (kristall) - + FX 4 (atmosphere) FX 4 (atmosfär) - + FX 5 (brightness) FX 5 (lyster) - + FX 6 (goblins) FX 6 (troll) - + FX 7 (echoes) FX 7 (ekon) - + FX 8 (sci-fi) FX 8 (sci-fi) - + Sitar Sitra - + Banjo Banjo - + Shamisen Shamisen - + Koto Koto - + Kalimba Kalimba - + Bag pipe Säckpipa - + Fiddle Fiddla - + Shanai Shehnai - + Tinkle Bell Bjällra - + Agogo Agogo - + Steel Drums Ståltrummor - + Woodblock Träblock - + Taiko Drum Taikotrumma - + Melodic Tom Stämd tom-tom - + Synth Drum Synttrumma - + Reverse Cymbal Cymbal (baklänges) - + Guitar Fret Noise Greppbandsljud - + Breath Noise Andningsljud - + Seashore Havsstrand - + Bird Tweet Fågelkvitter - + Telephone Ring Telefon - + Helicopter Helikopter - + Applause Applåd - + Gunshot Pistolskott @@ -1032,7 +1040,7 @@ Dialog - + Dialog @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1256,7 +1264,7 @@ Dialog - + Dialog @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major Dur - + Minor Moll @@ -1391,7 +1399,7 @@ C - + C @@ -1403,37 +1411,37 @@ F - + F G - + G D - + D A - + A E - + E B - + B @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Okänd @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Öppna... - + Ctrl+O Ctrl+O - + Open an existing file Öppna en befintlig fil - + E&xit - + Ctrl+Q Ctrl+Q - + Exit the application Avsluta program - + &About &Om - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys Snabbkommandon - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... Inställningar för piano-&tangentbord... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen &Helskärm - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Inställningar... - + Settings Inställningar - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Arkiv - + &View &Visa - + &Song &Låt - + Set&up - - + + &Help &Hjälp - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space blanksteg - + PC Keyboard ShortCuts Snabbkommandon - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File Öppna MIDI-fil - + Midi Files MIDI-filer - - - None - Ingen - diff --git a/translations/pianobooster_ta.ts b/translations/pianobooster_ta.ts index 50172cb0..0e26669b 100644 --- a/translations/pianobooster_ta.ts +++ b/translations/pianobooster_ta.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + எதுவுமில்லை + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown தெரியாத @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... திற... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About பற்றி - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings அமைவுகள் - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File கோப்பு - + &View பார்வை - + &Song - + Set&up - - + + &Help உதவி - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - எதுவுமில்லை - diff --git a/translations/pianobooster_te.ts b/translations/pianobooster_te.ts index c3041e89..3d1d24c5 100644 --- a/translations/pianobooster_te.ts +++ b/translations/pianobooster_te.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ఏదీకాదు + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown తెలియదు @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... తెరువు (&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About గురించి (&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings అమరికలు - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File దస్త్రం (&F) - + &View వీక్షణం (&V) - + &Song - + Set&up - - + + &Help సహాయం (&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - ఏదీకాదు - diff --git a/translations/pianobooster_tg.ts b/translations/pianobooster_tg.ts index 0ba3b4e9..b02cf0fd 100644 --- a/translations/pianobooster_tg.ts +++ b/translations/pianobooster_tg.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Ғайри + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Номаълум @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Кушодан... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Дарбораи - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Файл - + &View &Намоиш - + &Song - + Set&up - - + + &Help &Роҳнамо - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Ғайри - diff --git a/translations/pianobooster_th.ts b/translations/pianobooster_th.ts index fe4f7b5a..3e1588bc 100644 --- a/translations/pianobooster_th.ts +++ b/translations/pianobooster_th.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + ไม่มี + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: เพลง: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (ไม่มี) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion แอคคอร์เดียน - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin ไวโอลิน - + Viola วิโอลา - + Cello - + Contrabass คอนทราเบส - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music เริ่มและหยุดเล่นดนตรี @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown ไม่ทราบ @@ -1516,444 +1524,439 @@ Piano Booster เปียโน บู๊สเตอร์ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... เปิ&ด... - + Ctrl+O Ctrl+O - + Open an existing file เปิดแฟ้มที่มีอยู่ - + E&xit &ออก - + Ctrl+Q Ctrl+Q - + Exit the application ออกจากโปรแกรม - + &About เกี่ยวกั&บ - + Show the application's About box แสดงกล่อง About ของโปรแกรมประยุกต์ - + &PC Shortcut Keys &ปุ่มลัดคอมพิวเตอร์ - + The PC Keyboard shortcut keys ปุ่มลัดแป้นพิมพ์คอมพิวเตอร์ - + &Midi Setup ... ตั้งค่า &Midi ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... การตั้งค่า&คีย์บอร์ดเปียโน ... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &การตั้งค่า ... - + Settings การตั้งค่า - + Ctrl+P Ctrl+P - + Song &Details ... &รายละเอียดเพลง..... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File แฟ้&ม - + &View มุ&มมอง - + &Song &เพลง - + Set&up ติ&ดตั้ง - - + + &Help &ช่วยเหลือ - - + + Piano Booster Help ตัวช่วย เปียโน Booster - + &Website &เว็บไซต์ - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster เกี่ยวกับ Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space ช่องว่าง - + PC Keyboard ShortCuts ทางลัดคีย์บอร์ดคอมพิวเตอร์ - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>คีย์บอร์ดช็อตคัต</center></h2><p>PC คีย์บอร์ดช็อตคัตดังต่อไปนี้ได้ถูกกำหนดไว้แล้ว</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>แอ็คชั่น</th><th>คีย์</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>คีย์เปียโนเทียบเคียง</td><td>X คือ middle C</td></tr></table> </center><br> - + Open Midi File เปิดแฟ้ม Midi - + Midi Files - - - None - ไม่มี - diff --git a/translations/pianobooster_tr.ts b/translations/pianobooster_tr.ts index a52026a1..e84277db 100644 --- a/translations/pianobooster_tr.ts +++ b/translations/pianobooster_tr.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Hiçbiri + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Şarkı: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano Kuyruklu Piyano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord Klavsen - + Clavi - + Celesta Çelesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone Ksilofon - + Tubular Bells Tubular bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion Akordiyon - + Harmonica Mızıka - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Akustik Bas - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Keman - + Viola Viyola - + Cello - + Contrabass Kontrbas - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Trompet - + Trombone Trombon - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Obua - + English Horn İngiliz Kornosu - + Bassoon Fagot - + Clarinet Klarnet - + Piccolo Pikolo - + Flute Flüt - + Recorder Blok Flüt - + Pan Flute Pan Flüt - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Okarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major Majör - + Minor Minör @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Bilinmeyen @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Aç... - + Ctrl+O Ctrl+O - + Open an existing file Varolan bir dosyayı aç - + E&xit - + Ctrl+Q - + Exit the application - + &About &Hakkında - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Seçenekler ... - + Settings Ayarlar - + Ctrl+P Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Dosya - + &View &Görünüm - + &Song - + Set&up - - + + &Help &Yardım - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Hiçbiri - diff --git a/translations/pianobooster_tt.ts b/translations/pianobooster_tt.ts index 5d38547a..29422245 100644 --- a/translations/pianobooster_tt.ts +++ b/translations/pianobooster_tt.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File - + &View - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - - diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index 8ea25408..afe68262 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Немає + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: Точність: - + Song: Пісня: - + Bar: Такт: @@ -78,647 +86,647 @@ CTrackList - + (None) (Немає) - + Grand Piano Рояль - + Bright Piano Світле фортепіано - + Electric Grand Електророяль - + Honky-tonk Piano Розладнане фортепіано - + Electric Piano 1 Електропіаніно 1 - + Electric Piano 2 Електропіаніно 2 - + Harpsichord Клавікорд - + Clavi Клавінет - + Celesta Челеста - + Glockenspiel Дзвіночки - + Music Box Музична скринька - + Vibraphone Вібрафон - + Marimba Маримба - + Xylophone Ксилофон - + Tubular Bells Дзвони - + Dulcimer Цимбали - + Drawbar Organ Орган - + Percussive Organ Ударний орган - + Rock Organ Рок орган - + Church Organ Церковний орган - + Reed Organ Язичковий орган - + Accordion Аккордеон - + Harmonica Гармоніка - + Tango Accordion Танго-акордеон - + Acoustic Guitar (nylon) Акустична гітара (нейлонові струни) - + Acoustic Guitar (steel) Акустична гітара (сталеві струни) - + Electric Guitar (jazz) Джазова електрогітара - + Electric Guitar (clean) Електрогітара (звичайна) - + Electric Guitar (muted) Електрогітара (приглушена) - + Overdriven Guitar Перемодульована гітара - + Distortion Guitar Розладнана гітара - + Guitar harmonics Гітарні гармоніки - + Acoustic Bass Акустична бас-гітара - + Electric Bass (finger) Бас-гітара (щипком) - + Electric Bass (pick) Бас-гітара (медіатором) - + Fretless Bass Безладова бас-гітара - + Slap Bass 1 Слеп 1 - + Slap Bass 2 Слеп 2 - + Synth Bass 1 Синтезаторний бас 1 - + Synth Bass 2 Синтезаторний бас 2 - + Violin Скрипка - + Viola Віола - + Cello Віолончель - + Contrabass Контрабас - + Tremolo Strings Тремулюючі струни - + Pizzicato Strings Струнні піцикато - + Orchestral Harp Оркестрова арфа - + Timpani Литаври - + String Ensemble 1 Струнний ансамбль 1 - + String Ensemble 2 Струнний ансамбль 2 - + SynthStrings 1 Синтезаторні струнні 1 - + SynthStrings 2 Синтезаторні струнні 2 - + Choir Aahs Хоровий спів - + Voice Oohs Вигук о - + Synth Voice Синтезований голос - + Orchestra Hit Оркестровий акцент - + Trumpet Труба - + Trombone Тромбон - + Tuba Туба - + Muted Trumpet Засурдинена труба - + French Horn Французький ріжок - + Brass Section Духові інструменти - + SynthBrass 1 Синтезаторні мідні 1 - + SynthBrass 2 Синтезаторні мідні 2 - + Soprano Sax Сопрановий саксофон - + Alto Sax Альтовий саксофон - + Tenor Sax Теноровий саксофон - + Baritone Sax Баритоновий саксофон - + Oboe Гобой - + English Horn Англійський ріжок - + Bassoon Фаґот - + Clarinet Кларнет - + Piccolo Піколо - + Flute Флейта - + Recorder Поздовжня флейта - + Pan Flute Флейта Пана - + Blown Bottle Дмухання в пляшку - + Shakuhachi Шакухачі - + Whistle Свист - + Ocarina Окарина - + Lead 1 (square) Соло-гітара 1 (прямокутна хвиля) - + Lead 2 (sawtooth) Соло-гітара 2 (пилкоподібна хвиля) - + Lead 3 (calliope) Calliope-гітара - + Lead 4 (chiff) Chiff-гітара - + Lead 5 (charang) Charang-гітара - + Lead 6 (voice) Соло-гітара (голосовий тембр) - + Lead 7 (fifths) Соло-гітара 7 - + Lead 8 (bass + lead) Соло- і бас-гітара 8 - + Pad 1 (new age) Синтезатор 1 (нью ейдж) - + Pad 2 (warm) Синтезатор 2 (теплий) - + Pad 3 (polysynth) Синтезатор 3 (полісинтезатор) - + Pad 4 (choir) Синтезатор 4 (хоровий) - + Pad 5 (bowed) Синтезатор 5 (смичковий) - + Pad 6 (metallic) Синтезатор 6 (метал) - + Pad 7 (halo) Синтезатор 7 (ореол) - + Pad 8 (sweep) Синтезатор 8 (гойдання) - + FX 1 (rain) Спецефект 1 (дощ) - + FX 2 (soundtrack) Спецефект 2 (саундтрек) - + FX 3 (crystal) Спецефект 3 (кришталь) - + FX 4 (atmosphere) Спецефект 4 (атмосфера) - + FX 5 (brightness) Спецефект 5 (яскравість) - + FX 6 (goblins) Спецефект 6 (гобліни) - + FX 7 (echoes) Спецефект 7 (відлуння) - + FX 8 (sci-fi) Спецефект 8 (наукова фантастика) - + Sitar Ситар - + Banjo Банджо - + Shamisen Сямісен - + Koto Кото - + Kalimba Калімба - + Bag pipe Волинка - + Fiddle Вулична скрипка - + Shanai Санаї - + Tinkle Bell Дзвіночок - + Agogo Аґоґо - + Steel Drums Сталеві ударні - + Woodblock Коробочка (гольцтон) - + Taiko Drum Барабан Таїко - + Melodic Tom Мелодійний томтом - + Synth Drum Синтезаторний барабан - + Reverse Cymbal Реверсивна тарілка (запис у зворотньому напрямку) - + Guitar Fret Noise Шум гітарних ладів - + Breath Noise Подих - + Seashore Морський берег - + Bird Tweet Цвірінькання - + Telephone Ring Телефонний дзвінок - + Helicopter Гвинтокрил - + Applause Аплодисменти - + Gunshot Постріл @@ -1219,13 +1227,13 @@ - + Drums Ударні - + Melody Мелодія @@ -1319,7 +1327,7 @@ - + Start and stop playing music Почати або зупинити відтворення музики @@ -1350,13 +1358,13 @@ - + Major Мажор - + Minor Мінор @@ -1451,7 +1459,7 @@ D# - + Playing music from the beginning Відтворюємо музику від початку @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error Помилка у файлі MIDI - + Cannot open "%1" Не вдалося відкрити «%1» - + Midi file "%1" is corrupted Файл MIDI «%1» пошкоджено @@ -1488,22 +1496,22 @@ QObject - + L Л - + R П - + Drums Ударні - + Unknown Невідомий @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error Помилка із файлом MIDI у Piano Booster - + Cannot open "%1" Не вдалося відкрити «%1» - + "%1" is not a Midi File «%1» не є файлом MIDI - + "%1" is not a valid Midi file «%1» не є коректним файлом MIDI - + &Open... &Відкрити... - + Ctrl+O Ctrl+O - + Open an existing file Відкрити існуючий файл - + E&xit Ви&йти - + Ctrl+Q Ctrl+Q - + Exit the application Завершити роботу програми - + &About &Про програму - + Show the application's About box Показати панель з інформацією про програму - + &PC Shortcut Keys &Клавіші клавіатури комп'ютера - + The PC Keyboard shortcut keys Клавіатурні скорочення на клавіатурі комп'ютера - + &Midi Setup ... &Налаштувати MIDI… - + Ctrl+S Ctrl+S - + Setup the Midi input and output Налаштувати введення і виведення даних MIDI - + Piano &Keyboard Setting ... Налаштувати &клавіатуру піаніно… - + Ctrl+K Ctrl+K - + Change the piano keyboard settings Змінити параметри клавіатури піаніно - + &Fullscreen Повний екр&ан - + Fullscreen mode Повноекранний режим - + F11 F11 - + &Show the Side Panel &Показати бічну панель - + Show the Left Side Panel Показувати ліву бічну панель - + F12 F12 - + Show Piano &Keyboard Показати &клавіатуру піаніно - + Show Piano Keyboard Widget Показувати віджет клавіатури піаніно - + &Preferences ... &Налаштування… - + Settings Параметри - + Ctrl+P Ctrl+P - + Song &Details ... П&араметри пісні… - + Song Settings Параметри композиції - + Ctrl+D Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Файл - + &View П&ерегляд - + &Song &Пісня - + Set&up На&лаштування - - + + &Help &Довідка - - + + Piano Booster Help Довідка з Piano Booster - + &Website С&айт - + Piano Booster Website Сайт Piano Booster - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> <h3>Початкові зауваження</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> <p>Вам знадобиться <b>клавіатура MIDI піаніно </b> та <b>інтерфейс MIDI</b> для ПК. Якщо у вас немає MIDI-клавіатури, ви можете спробувати користуватися PianoBooster за допомогою клавіатури комп'ютера — «X» — середня «до».</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use <p>Щоб чути музику, вам потрібен <b>Типовий звуковий синтезатор MIDI</b>. Можна скористатися «Програмним синтезатором Microsoft GS Wavetable», який постачається разом із Windows, але його використання призводить до неприйнятної затримки відтворення (латентності). У Linux ви можете скористатися - + or або - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. <p>PianoBooster дає найкращі результати з файлами MIDI, у який відокремлено ліву і праву частину піаніно на основі використання каналів MIDI 3 та 4. - + <h3>Setting Up</h3> <h3>Налаштовування</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. <p>Спочатку скористайтеся пунктом меню <i>Налаштування/Налаштувати MIDI</i>. У діалоговому вікні виберіть вхідний та вихідний інтерфейси MIDI, які відповідають вашому обладнанню. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. Далі, скористайтеся пунктом меню <i>Файл/Відкрити</i>, щоб відкрити файл MIDI «.mid» або файл караоке «.kar». Тепер виберіть, хочете ви просто <i>прослухати</i> музику, чи <i>зіграти</i> її на клавіатурі, встановивши рівень <i>майстерності</i> на бічній панелі. Нарешті, коли будете готові, натисніть <i>піктограму відтворення</i> (або клавішу <i>Пробіл</i>), щоб почати вправу. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: <h3>Підказки щодо гри на піаніно</h3><p>Підказки щодо гри на піаніно можна знайти тут: - + Piano Hints Підказки щодо піаніно - + <h3>More Information</h3><p>For more help please visit the PianoBooster <h3>Докладніші відомості</h3><p>Щоб дізнатися більше, будь ласка, відвідайте - + website сайт PianoBooster - + the PianoBooster , - + FAQ Поширені питання щодо PianoBooster - + and the та - + user forum форум користувачів - + About Piano Booster Про Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> <b>PianoBooster — версія %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> <b>Удоскональте</b> ваші навички гри на <b>піаніно</b>!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> © L. J. Barman, 2008-2020; усі права захищено.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> © Fabien Givors, 2018-2019; усі права захищено.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> Цю програму випущено за умов дотримання Загальної громадської ліцензії GNU (GNU General Public License) версії 3, з текстом, який оприлюднено Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> До коду цієї програми включено код RtMIDI: класи обробки вхідних-вихідних даних MIDI мовою C++<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. © Gary P. Scavone, 2003-2019; усі права захищено. - + space пробіл - + PC Keyboard ShortCuts Комбінації клавіш на клавіатурі - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Комбінації клавіш</center></h2><p>Визначено вказані нижче комбінації клавіш на клавіатурі комп'ютера.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Дія</th><th>Клавіші</th></tr> - + Choose the right hand Вибрати праву руку - + Choose both hands Вибрати обидві руки - + Choose the left Hand Вибрати ліву руку - + Play from start toggle Перемикач відтворення від початку - + Play Pause Toggle Перемикач відтворення/пауза - - + + Increase the speed by 5% Збільшити швидкість на 5% - + Change to the Next Song Перейти до наступної пісні - + Change to the Previous Song Перейти до попередньої пісні - + Change to the Next Book Перейти до наступної книги - + Change to the Previous Book Перейти до попередньої книги - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Клавіші імітатора піаніно</td><td>X — середня нота до</td></tr></table> </center><br> - + Open Midi File Відкриття файла MIDI - + Midi Files MIDI файли - - - None - Немає - diff --git a/translations/pianobooster_uz.ts b/translations/pianobooster_uz.ts index 28647a0d..3144edaf 100644 --- a/translations/pianobooster_uz.ts +++ b/translations/pianobooster_uz.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Yoʻq + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Ochish... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Haqida - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Moslamalar - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fayl - + &View &Koʻrinish - + &Song - + Set&up - - + + &Help &Yordam - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Yoʻq - diff --git a/translations/pianobooster_vi.ts b/translations/pianobooster_vi.ts index 6a97baa9..aaf44a24 100644 --- a/translations/pianobooster_vi.ts +++ b/translations/pianobooster_vi.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Không + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: Bài hát: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (Không) - + Grand Piano Đại dương cầm - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba Mộc cầm Marimba - + Xylophone Mộc cầm - + Tubular Bells - + Dulcimer Đàn Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion Đàn xếp Accordion - + Harmonica Kèn Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass Ghi-ta bass mộc - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin Vĩ cầm - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet Kèn Trumpet - + Trombone Kèn Trombone - + Tuba Kèn Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe Kèn Ôboa - + English Horn Kèn Horn Anh - + Bassoon Kèn Bassoon - + Clarinet Kèn Clarinet - + Piccolo Sáo - + Flute Sáo trúc - + Recorder Sáo Recorder - + Pan Flute Sáo trúc quạt - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina Sáo Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar Đàn - + Banjo - + Shamisen - + Koto Đàn Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums Trống thép - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music Bắt đầu và dừng chơi nhạc @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Không rõ @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Mở... - + Ctrl+O Ctrl+O - + Open an existing file Mở một tập tin có sẵn - + E&xit &Thoát - + Ctrl+Q Ctrl+Q - + Exit the application Thoát ứng dụng - + &About &Giới thiệu - + Show the application's About box Hiện hộp thoại Giới thiệu ứng dụng - + &PC Shortcut Keys &Phím tắt máy tính - + The PC Keyboard shortcut keys Phím tắt bàn phím máy tính - + &Midi Setup ... &Cài đặt Midi... - + Ctrl+S Ctrl+S - + Setup the Midi input and output Cài đặt đầu vào và đầu ra Midi - + Piano &Keyboard Setting ... Thiết lập &Bàn phím Piano... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... &Tùy chỉnh... - + Settings Cài đặt - + Ctrl+P Ctrl+P - + Song &Details ... &Chi tiết Bản nhạc... - + Song Settings - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File &Tập tin - + &View &Xem - + &Song &Bản nhạc - + Set&up Cài&đặt - - + + &Help Trợ g&iúp - - + + Piano Booster Help Trợ giúp Piano Booster - + &Website &Trang web - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster Giới thiệu về Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts Phím tắt bàn phím máy tính - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>Phím tắt bàn phím</center></h2><p>Những phím tắt sau đã được xác định.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> <tr><th>Hành động</th><th>Từ khóa</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> <tr><td>Phím Piano giả</td><td>X là phím Đô giữa</td></tr></table> </center><br> - + Open Midi File Mở tập tin Midi - + Midi Files Tập tin MIDI - - - None - Không - diff --git a/translations/pianobooster_wa.ts b/translations/pianobooster_wa.ts index e8dc1f64..31c71ee3 100644 --- a/translations/pianobooster_wa.ts +++ b/translations/pianobooster_wa.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Nouk + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Nén cnoxhou @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... &Drovi... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About Åd fw&ait - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings Apontiaedjes - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File &Fitchî - + &View &Vey - + &Song - + Set&up - - + + &Help &Aidance - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Nouk - diff --git a/translations/pianobooster_xh.ts b/translations/pianobooster_xh.ts index a715ebe0..a213fdae 100644 --- a/translations/pianobooster_xh.ts +++ b/translations/pianobooster_xh.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + Akukho nanye + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) - + Grand Piano - + Bright Piano - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major - + Minor @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown Engaziwayo @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About &Malunga - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File I&fayili - + &View &Okubonakalayo - + &Song - + Set&up - - + + &Help - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - Akukho nanye - diff --git a/translations/pianobooster_zh.ts b/translations/pianobooster_zh.ts index 344a6c80..893be4d6 100644 --- a/translations/pianobooster_zh.ts +++ b/translations/pianobooster_zh.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: - + Song: 曲子: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (无) - + Grand Piano 三角钢琴 - + Bright Piano - + Electric Grand - + Honky-tonk Piano 叮噹琴 - + Electric Piano 1 電鋼琴一 - + Electric Piano 2 電鋼琴二 - + Harpsichord 拨弦琴 - + Clavi - + Celesta 钢片琴 - + Glockenspiel 钟琴 - + Music Box 音樂盒 - + Vibraphone 颤音琴 - + Marimba 马林巴琴 - + Xylophone 木琴 - + Tubular Bells 管鐘 - + Dulcimer 扬琴 - + Drawbar Organ 電風琴 - + Percussive Organ 敲击风琴 - + Rock Organ 搖滾風琴 - + Church Organ 教堂管風琴 - + Reed Organ 簧管风琴 - + Accordion 手风琴 - + Harmonica 口琴 - + Tango Accordion 探戈手風琴 - + Acoustic Guitar (nylon) 古典吉他 - + Acoustic Guitar (steel) 民謠吉他 - + Electric Guitar (jazz) 爵士電吉他 - + Electric Guitar (clean) 電吉他 - + Electric Guitar (muted) 悶音電吉他 - + Overdriven Guitar 濁音電吉他 - + Distortion Guitar 變音電吉他 - + Guitar harmonics 合音吉他 - + Acoustic Bass 原音贝斯 - + Electric Bass (finger) 手彈貝士 - + Electric Bass (pick) 匹克貝士 - + Fretless Bass 無格貝士無格貝士 - + Slap Bass 1 重貝士一 - + Slap Bass 2 重貝士二 - + Synth Bass 1 合成貝士一 - + Synth Bass 2 合成貝士二 - + Violin 小提琴 - + Viola 中提琴 - + Cello 大提琴 - + Contrabass 低音提琴 - + Tremolo Strings 節奏工具列 - + Pizzicato Strings 彈撥弦樂 - + Orchestral Harp 豎琴 - + Timpani 定音鼓 - + String Ensemble 1 合奏弦樂一 - + String Ensemble 2 合奏弦樂二 - + SynthStrings 1 合成弦樂一 - + SynthStrings 2 合成弦樂二 - + Choir Aahs 唱詩樂(啊) - + Voice Oohs 唱詩樂(喔) - + Synth Voice 合成人聲 - + Orchestra Hit 交響打擊樂 - + Trumpet 小号 - + Trombone 长号 - + Tuba 大号 - + Muted Trumpet 悶音小號 - + French Horn 法國號 - + Brass Section 銅管樂 - + SynthBrass 1 合成銅管一 - + SynthBrass 2 合成銅管二 - + Soprano Sax 高音薩克管 - + Alto Sax 中音薩克管 - + Tenor Sax 次中音薩克管 - + Baritone Sax 上低音薩克管 - + Oboe 双簧管 - + English Horn 英国管 - + Bassoon 大管 - + Clarinet 单簧管 - + Piccolo 短笛 - + Flute 长笛 - + Recorder 竖笛 - + Pan Flute 排萧 - + Blown Bottle 吹瓶聲 - + Shakuhachi 尺八簫 - + Whistle 笛哨聲 - + Ocarina 陶笛 - + Lead 1 (square) 合成音一(方波) - + Lead 2 (sawtooth) 合成音二(鋸齒波) - + Lead 3 (calliope) 合成音三(詩歌) - + Lead 4 (chiff) 合成音四(合成吹管) - + Lead 5 (charang) 合成音五(合成電吉他) - + Lead 6 (voice) 合成音六(人聲鍵盤) - + Lead 7 (fifths) 合成音七(五度音) - + Lead 8 (bass + lead) 合成音八(貝士吉他合奏) - + Pad 1 (new age) 合成音一(新歲月) - + Pad 2 (warm) 合成音二(溫暖) - + Pad 3 (polysynth) 合成音三(多重合音) - + Pad 4 (choir) 合成音四(人聲合唱) - + Pad 5 (bowed) 合成音五(玻璃) - + Pad 6 (metallic) 合成音六(金屬) - + Pad 7 (halo) 合成音七(光華) - + Pad 8 (sweep) 合成音八(掃掠) - + FX 1 (rain) 合成音一(雨聲) - + FX 2 (soundtrack) 合成音二(電影音效) - + FX 3 (crystal) 合成音三(水晶) - + FX 4 (atmosphere) 合成音四(大氣) - + FX 5 (brightness) 合成音五(明亮) - + FX 6 (goblins) 合成音六(魅影) - + FX 7 (echoes) 合成音七(迴音) - + FX 8 (sci-fi) 每日提示(&d) - + Sitar 西塔琴 - + Banjo 班卓琴 - + Shamisen 三味线 - + Koto 日本筝 - + Kalimba 卡林巴琴 - + Bag pipe 蘇格蘭風笛 - + Fiddle 古提琴 - + Shanai 鎖吶 - + Tinkle Bell 叮噹鈴 - + Agogo 阿哥哥鼓 - + Steel Drums 钢鼓 - + Woodblock 木塊 - + Taiko Drum 日本太鼓 - + Melodic Tom 古式高音鼓 - + Synth Drum 合成鼓 - + Reverse Cymbal - + Guitar Fret Noise 磨弦聲 - + Breath Noise 呼吸聲 - + Seashore 海浪聲 - + Bird Tweet 鳥叫聲 - + Telephone Ring 電話鈴聲 - + Helicopter 直昇機聲 - + Applause 拍手聲 - + Gunshot 槍聲 @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music 开始和停止播放音乐 @@ -1350,13 +1358,13 @@ - + Major 大调 - + Minor 小调 @@ -1451,7 +1459,7 @@ d# - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown 未知 @@ -1516,444 +1524,439 @@ Piano Booster - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 打开(&O)... - + Ctrl+O Ctrl+O - + Open an existing file 打开已存在的文件 - + E&xit 退出(&x) - + Ctrl+Q Ctrl+Q - + Exit the application 退出程序 - + &About 关于(&A) - + Show the application's About box 显示程序的关于对话框 - + &PC Shortcut Keys &PC快捷键 - + The PC Keyboard shortcut keys 计算机键盘快捷键 - + &Midi Setup ... &Midi设置... - + Ctrl+S Ctrl+S - + Setup the Midi input and output 设置MIDI输入输出 - + Piano &Keyboard Setting ... 琴键设置(&K)... - + Ctrl+K Ctrl+K - + Change the piano keyboard settings 改变钢琴键设置 - + &Fullscreen 全屏(&F) - + Fullscreen mode - + F11 F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... 首选项(&P)... - + Settings 设置 - + Ctrl+P Ctrl+P - + Song &Details ... 歌曲信息(&S)... - + Song Settings 歌曲设置 - + Ctrl+D - + Shift+F1 Shift+F1 - + Alt+F1 Alt+F1 - + &File 文件(&F) - + &View 查看(&V) - + &Song 曲子(&S) - + Set&up 设置(&u) - - + + &Help 帮助(&H) - - + + Piano Booster Help Piano Booster 帮助 - + &Website 网站(&W) - + Piano Booster Website - + &%1 %2 &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website 网站 - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster 关于 Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space 空格 - + PC Keyboard ShortCuts 计算机快捷键 - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > <h2><center>快捷键</center></h2><p>已定义下述快捷键。</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% 以百分之五的速度增长 - + Change to the Next Song 切换到下一首歌 - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File 打开Midi文件 - + Midi Files MIDI 文件 - - - None - - diff --git a/translations/pianobooster_zh_HK.ts b/translations/pianobooster_zh_HK.ts index 79e819fb..7c9cd29f 100644 --- a/translations/pianobooster_zh_HK.ts +++ b/translations/pianobooster_zh_HK.ts @@ -1,6 +1,14 @@ + + CConductor + + + None + + + CDraw @@ -42,17 +50,17 @@ CGLView - + Accuracy: 準確性: - + Song: 歌曲: - + Bar: @@ -78,647 +86,647 @@ CTrackList - + (None) (沒有) - + Grand Piano 大鋼琴 - + Bright Piano 明亮的鋼琴 - + Electric Grand - + Honky-tonk Piano - + Electric Piano 1 - + Electric Piano 2 - + Harpsichord - + Clavi - + Celesta - + Glockenspiel - + Music Box - + Vibraphone - + Marimba - + Xylophone - + Tubular Bells - + Dulcimer - + Drawbar Organ - + Percussive Organ - + Rock Organ - + Church Organ - + Reed Organ - + Accordion - + Harmonica - + Tango Accordion - + Acoustic Guitar (nylon) - + Acoustic Guitar (steel) - + Electric Guitar (jazz) - + Electric Guitar (clean) - + Electric Guitar (muted) - + Overdriven Guitar - + Distortion Guitar - + Guitar harmonics - + Acoustic Bass - + Electric Bass (finger) - + Electric Bass (pick) - + Fretless Bass - + Slap Bass 1 - + Slap Bass 2 - + Synth Bass 1 - + Synth Bass 2 - + Violin - + Viola - + Cello - + Contrabass - + Tremolo Strings - + Pizzicato Strings - + Orchestral Harp - + Timpani - + String Ensemble 1 - + String Ensemble 2 - + SynthStrings 1 - + SynthStrings 2 - + Choir Aahs - + Voice Oohs - + Synth Voice - + Orchestra Hit - + Trumpet - + Trombone - + Tuba - + Muted Trumpet - + French Horn - + Brass Section - + SynthBrass 1 - + SynthBrass 2 - + Soprano Sax - + Alto Sax - + Tenor Sax - + Baritone Sax - + Oboe - + English Horn - + Bassoon - + Clarinet - + Piccolo - + Flute - + Recorder - + Pan Flute - + Blown Bottle - + Shakuhachi - + Whistle - + Ocarina - + Lead 1 (square) - + Lead 2 (sawtooth) - + Lead 3 (calliope) - + Lead 4 (chiff) - + Lead 5 (charang) - + Lead 6 (voice) - + Lead 7 (fifths) - + Lead 8 (bass + lead) - + Pad 1 (new age) - + Pad 2 (warm) - + Pad 3 (polysynth) - + Pad 4 (choir) - + Pad 5 (bowed) - + Pad 6 (metallic) - + Pad 7 (halo) - + Pad 8 (sweep) - + FX 1 (rain) - + FX 2 (soundtrack) - + FX 3 (crystal) - + FX 4 (atmosphere) - + FX 5 (brightness) - + FX 6 (goblins) - + FX 7 (echoes) - + FX 8 (sci-fi) - + Sitar - + Banjo - + Shamisen - + Koto - + Kalimba - + Bag pipe - + Fiddle - + Shanai - + Tinkle Bell - + Agogo - + Steel Drums - + Woodblock - + Taiko Drum - + Melodic Tom - + Synth Drum - + Reverse Cymbal - + Guitar Fret Noise - + Breath Noise - + Seashore - + Bird Tweet - + Telephone Ring - + Helicopter - + Applause - + Gunshot @@ -1219,13 +1227,13 @@ - + Drums - + Melody @@ -1319,7 +1327,7 @@ - + Start and stop playing music @@ -1350,13 +1358,13 @@ - + Major 大調 - + Minor 小調 @@ -1451,7 +1459,7 @@ - + Playing music from the beginning @@ -1459,18 +1467,18 @@ QMessageBox - - + + Midi File Error - + Cannot open "%1" - + Midi file "%1" is corrupted @@ -1488,22 +1496,22 @@ QObject - + L - + R - + Drums - + Unknown @@ -1516,444 +1524,439 @@ - - - + + + PianoBooster Midi File Error - + Cannot open "%1" - + "%1" is not a Midi File - + "%1" is not a valid Midi file - + &Open... 開啟(&O)... - + Ctrl+O - + Open an existing file - + E&xit - + Ctrl+Q - + Exit the application - + &About 關於(&A) - + Show the application's About box - + &PC Shortcut Keys - + The PC Keyboard shortcut keys - + &Midi Setup ... - + Ctrl+S - + Setup the Midi input and output - + Piano &Keyboard Setting ... - + Ctrl+K - + Change the piano keyboard settings - + &Fullscreen 全螢幕(&F) - + Fullscreen mode - + F11 - + &Show the Side Panel - + Show the Left Side Panel - + F12 - + Show Piano &Keyboard - + Show Piano Keyboard Widget - + &Preferences ... - + Settings 設定值 - + Ctrl+P - + Song &Details ... - + Song Settings - + Ctrl+D - + Shift+F1 - + Alt+F1 - + &File 檔案(&F) - + &View 檢視(&V) - + &Song - + Set&up - - + + &Help 說明(&H) - - + + Piano Booster Help - + &Website - + Piano Booster Website - + &%1 %2 - + <h3>Getting Started</h3> - + <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - + <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - + or - + <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - + <h3>Setting Up</h3> - + <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - + Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - + <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - + Piano Hints - + <h3>More Information</h3><p>For more help please visit the PianoBooster - + website - + the PianoBooster - + FAQ - + and the - + user forum - + About Piano Booster - + <b>PianoBooster - Version %1</b> <br><br> - + <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - + Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - + Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - + This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - + This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - + Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - + space 空間 - + PC Keyboard ShortCuts - + <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - + <tr><th>Action</th><th>Key</th></tr> - + Choose the right hand - + Choose both hands - + Choose the left Hand - + Play from start toggle - + Play Pause Toggle - - + + Increase the speed by 5% - + Change to the Next Song - + Change to the Previous Song - + Change to the Next Book - + Change to the Previous Book - + <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - + Open Midi File - + Midi Files - - - None - - From 43dc74fbfc3d9132cf158b1c897e8716db7743a5 Mon Sep 17 00:00:00 2001 From: pianobooster Date: Thu, 28 May 2020 23:09:21 +0100 Subject: [PATCH 47/84] Updated the version to 0.7.4-RC1 --- Changelog.txt | 14 ++++++++++---- src/version.txt | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 444c2a6d..ad4ff8d3 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,7 +1,13 @@ -v0.7.3 (25 Feb 2020) -- Integrated fluidsynth as an build option. -- Changes necessary for AppImage. -- Added to the manual langage selection. +0.7.4-RC1 (28 May 2020) +- Integrated fluidsynth as a build option. +- Changes necessary for building an AppImage. +- Added to the manual language selection. +- Fixes required for the Windows build +- Fixes required for the Mac OS build +- Now reads left and right hand parts if held in different MIDI tracks. +- Automaticity detects the left and right hand piano parts. +- Now defaults to enabling the option mute your part when playing. +- Added more space for notes at the top of the page. v0.7.2b (25 Feb 2020) - Fixed a problem that prevented a connected MIDI piano keyboard from working. diff --git a/src/version.txt b/src/version.txt index 01419da3..d324ff89 100644 --- a/src/version.txt +++ b/src/version.txt @@ -1,2 +1,2 @@ -#define PB_VERSION "0.7.3-PREVIEW1" +#define PB_VERSION "0.7.4-RC1" #define MUSIC_RELEASE 3 From db8308231eb8bdc96ddc6dae8865e83e8c02232e Mon Sep 17 00:00:00 2001 From: pianobooster Date: Fri, 29 May 2020 20:10:03 +0100 Subject: [PATCH 48/84] Fixed an issue with single left or right piano parts. --- src/Conductor.cpp | 19 +------------------ src/Song.cpp | 1 + src/TrackList.cpp | 20 +++++++++++++++++++- src/TrackList.h | 6 +++--- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/Conductor.cpp b/src/Conductor.cpp index d09d3c83..c94e39dd 100644 --- a/src/Conductor.cpp +++ b/src/Conductor.cpp @@ -252,25 +252,8 @@ void CConductor::setActiveHand(whichPart_t hand) return; CNote::setActiveHand(hand); outputBoostVolume(); - m_wantedChord = m_savedWantedChord; - - if (m_wantedChord.trimOutOfRangeNotes(m_transpose)==0) - fetchNextChord(); - - int note; - int i; + resetWantedChord(); - // Reset the note colors - for(i = 0; i < m_savedWantedChord.length(); i++) - { - note = m_savedWantedChord.getNote(i).pitch(); - m_scoreWin->setPlayedNoteColor(note, Cfg::noteColor(), m_chordDeltaTime); - } - for(i = 0; i < m_wantedChord.length(); i++) - { - note = m_wantedChord.getNote(i).pitch(); - m_scoreWin->setPlayedNoteColor(note, Cfg::playedStoppedColor(), m_chordDeltaTime); - } findSplitPoint(); forceScoreRedraw(); } diff --git a/src/Song.cpp b/src/Song.cpp index d8ebfc94..c0dddb54 100644 --- a/src/Song.cpp +++ b/src/Song.cpp @@ -112,6 +112,7 @@ void CSong::setActiveHand(whichPart_t hand) hand = PB_PART_left; this->CConductor::setActiveHand(hand); + regenerateChordQueue(); m_scoreWin->setDisplayHand(hand); } diff --git a/src/TrackList.cpp b/src/TrackList.cpp index c6c26a03..4887a955 100644 --- a/src/TrackList.cpp +++ b/src/TrackList.cpp @@ -87,8 +87,23 @@ bool CTrackList::pianoPartConvetionTest() { AnalyseItem left = m_midiChannels[CONVENTION_LEFT_HAND_CHANNEL]; AnalyseItem right = m_midiChannels[CONVENTION_RIGHT_HAND_CHANNEL]; + // Both hands on channels 3 & 4 if (left.active() && right.active()) { - if (left.firstPatch() == right.firstPatch() && isPianoOrOrganPatch(left.firstPatch())) { + if (left.firstPatch() == right.firstPatch() && isPianoOrOrganPatch(right.firstPatch())) { + CNote::setChannelHands(CONVENTION_LEFT_HAND_CHANNEL, CONVENTION_RIGHT_HAND_CHANNEL); + return true; + } + } + // Right hand only channel 4 and no left hand on channel 3 + if (right.active() && !left.active()) { + if (isPianoOrOrganPatch(right.firstPatch())) { + CNote::setChannelHands(CONVENTION_LEFT_HAND_CHANNEL, CONVENTION_RIGHT_HAND_CHANNEL); + return true; + } + } + // Left hand only channel 3 and no right hand on channel 4 + if (left.active() && !right.active()) { + if (isPianoOrOrganPatch(left.firstPatch())) { CNote::setChannelHands(CONVENTION_LEFT_HAND_CHANNEL, CONVENTION_RIGHT_HAND_CHANNEL); return true; } @@ -102,6 +117,9 @@ bool CTrackList::findLeftAndRightPianoParts() int chanA = -1; for (int chan = 0 ; chan < MAX_MIDI_CHANNELS; chan++) { + if (chan == MIDI_DRUM_CHANNEL) { + continue; + } if (m_midiChannels[chan].active()) { int patch = m_midiChannels[chan].firstPatch(); if (isPianoOrOrganPatch(patch)) { diff --git a/src/TrackList.h b/src/TrackList.h index fd0a1fa7..b712b7e1 100644 --- a/src/TrackList.h +++ b/src/TrackList.h @@ -62,7 +62,7 @@ class AnalyseItem void addNoteEvent(CMidiEvent event){ m_noteCount++; - int trackNo = event.track(); + int trackNo = event.track(); m_noteCountByTrack[trackNo]++; int *noteFrequency = m_noteFrequencyByTrack[trackNo].data(); int note = event.note(); @@ -71,7 +71,7 @@ class AnalyseItem (*(noteFrequency + note))++; } // If we have a note and no patch then default to grand piano patch - if (m_firstPatch == -1) { + if (m_firstPatch == -1 && event.channel() != MIDI_DRUM_CHANNEL) { m_firstPatch = GM_PIANO_PATCH; } } @@ -129,7 +129,7 @@ class AnalyseItem } private: - int m_noteCount; + int m_noteCount = 0; int m_firstPatch = -1; QVector> m_noteFrequencyByTrack; QVector m_noteCountByTrack; From 4111def3e5a8e63d0b8a5c661665cafa76318258 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Wed, 17 Jun 2020 12:33:56 +0100 Subject: [PATCH 49/84] Removing distribution info as this is not need here. Closes GitHub issue #247 --- pkgs/arch/PKGBUILD | 46 --------- pkgs/deb/debian.changelog | 112 --------------------- pkgs/deb/debian.control | 47 --------- pkgs/deb/debian.copyright | 69 ------------- pkgs/deb/debian.rules | 30 ------ pkgs/deb/pianobooster.dsc | 25 ----- pkgs/rpm/pianobooster.spec | 151 ----------------------------- pkgs/slack/README | 7 -- pkgs/slack/doinst.sh | 3 - pkgs/slack/pianobooster.SlackBuild | 92 ------------------ pkgs/slack/pianobooster.info | 10 -- pkgs/slack/slack-desc | 19 ---- 12 files changed, 611 deletions(-) delete mode 100644 pkgs/arch/PKGBUILD delete mode 100644 pkgs/deb/debian.changelog delete mode 100644 pkgs/deb/debian.control delete mode 100644 pkgs/deb/debian.copyright delete mode 100644 pkgs/deb/debian.rules delete mode 100644 pkgs/deb/pianobooster.dsc delete mode 100644 pkgs/rpm/pianobooster.spec delete mode 100644 pkgs/slack/README delete mode 100644 pkgs/slack/doinst.sh delete mode 100644 pkgs/slack/pianobooster.SlackBuild delete mode 100644 pkgs/slack/pianobooster.info delete mode 100644 pkgs/slack/slack-desc diff --git a/pkgs/arch/PKGBUILD b/pkgs/arch/PKGBUILD deleted file mode 100644 index a3931794..00000000 --- a/pkgs/arch/PKGBUILD +++ /dev/null @@ -1,46 +0,0 @@ -# FIXME: libffado was added as dependency, because it requires by jack (and not optionally, but mandatory), but Arch Linux jack's maintainer is stupid to understand it -# TiMidity, Fluidsynth+JACK do not work out of box, but Fluidsynth without JACK works - -build_with_cmake="1" - -pkgdesc='A MIDI file player that teaches you how to play the piano' -origname='PianoBooster' -pkgname='pianobooster' -pkgver=0.7.2b -pkgrel=1 -makedepends=('cmake' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'qt5-tools' 'jack' 'fluidsynth' 'hicolor-icon-theme' 'rtmidi') -depends=('ttf-dejavu' 'unzip' 'hicolor-icon-theme' 'alsa-lib' 'freetype2' 'ftgl' 'mesa' 'glu' 'qt5-base' 'jack' 'libffado' 'fluidsynth' 'soundfont-fluid' 'libnotify' 'rtmidi') -optdepends=('qt5-translations') -arch=('x86_64') -groups=('qt5') -url='https://github.com/captnfab/PianoBooster' -license=('GPL3+') -source=("${origname}-${pkgver}.tar.gz::https://github.com/captnfab/PianoBooster/archive/v${pkgver}.tar.gz") -md5sums=('SKIP') - -build () { - mv -f "${origname}-${pkgver}" "${pkgname}-${pkgver}" - cd "${pkgname}-${pkgver}" -if [ "$build_with_cmake" = "1" ] -then - cmake . \ - -DUSE_SYSTEM_FONT=ON \ - -DWITH_MAN=ON \ - -DCMAKE_INSTALL_PREFIX="${pkgdir}/usr" -else - qmake-qt5 \ - USE_SYSTEM_FONT=ON \ - WITH_MAN=ON - make -fi -} - -package () { - cd "${pkgname}-${pkgver}" - if [ "$build_with_cmake" = "1" ] - then - make install -C build - else - make install INSTALL_ROOT=${pkgdir} - fi -} diff --git a/pkgs/deb/debian.changelog b/pkgs/deb/debian.changelog deleted file mode 100644 index 581ef62a..00000000 --- a/pkgs/deb/debian.changelog +++ /dev/null @@ -1,112 +0,0 @@ -pianobooster (v0.7.2b) unstable; urgency=medium - - -pianobooster (0.7.0) unstable; urgency=medium - - * Better installation by 'make install' - * Update dependencies - * Update copyright - * Update description - * Bump policy, dh12 - * Shorten debian/rules - - -- Alexey Loginov Wed, 19 Jun 2019 01:08:17 +0100 - -pianobooster (0.6.7~svn156-1) unstable; urgency=medium - - [ Miriam Ruiz ] - * Adapted changes for Debian - * Refreshed patches - * Added typos.patch and i18n.patch - * Upgraded Standards-Version from 3.9.6 to 3.9.8 - * Added Daniel Gimpelevich to Uploaders - - -- Miriam Ruiz Thu, 17 Nov 2016 01:08:17 +0100 - -pianobooster (0.6.7~svn156-0ppa2~trusty) trusty; urgency=medium - - * New Upstream Release. - * Dropped link-pthread-and-GL-explicitly.patch, merged upstream - * Dropped i18n.patch pending rebase - * Reflected upstream i18n in debian/rules and debian/pianobooster.install - * Rebased rtmidi-1.0.15.patch - * Updated manpage - * Added paths.patch and armel.patch - - -- Daniel Gimpelevich Sat, 23 Oct 2016 04:19:54 -0700 - -pianobooster (0.6.4.0-1) UNRELEASED; urgency=medium - - * New Upstream Release. - * Added build dependency: qt4-linguist-tools - * Upgraded Standards-Version from 3.9.4 to 3.9.6 - - -- Miriam Ruiz Fri, 27 Nov 2015 00:35:47 +0100 - -pianobooster (0.6.4b-2) unstable; urgency=low - - * Team upload. - * Bump Standards-Version to 3.9.4, no changes. - * Use canonical VCS-URI. - * Remove quilt from Build-Depends because source format 3.0 uses quilt by - default. - * Remove superfluous substvar ${shlibs:Depends} from performous-dbg. - * Add link-pthread-and-GL-explicitly.patch and fix FTBFS by linking the - missing libraries in CMakelist.txt explicitly. (Closes: #713691) - * Fix lintian error and do not set the library RPATH in debian/rules anymore. - Use the normal library search path instead. - * Update debian/copyright to copyright format 1.0. Fix spelling mistakes. - * pianobooster.desktop: Add keywords. - * Update debian/watch. - - -- Markus Koschany Tue, 02 Jul 2013 16:53:50 +0200 - -pianobooster (0.6.4b-1) unstable; urgency=low - - [ Miriam Ruiz ] - * New upstream release - * Upgraded Standards-Version from 3.9.2 to 3.9.3 - * Upgraded debian/compat to 9. - * Added patch: linker_opts.patch - * Modified debian/rules to use fortified libc functions. - See: http://wiki.debian.org/Hardening - * Changed my email address in debian/control to miriam@debian.org - - [ Martin Erik Werner ] - * Use -DCMAKE_BUILD_TYPE=Debug to get a better debug package. Closes: #664473 - - [ Paul Wise ] - * Install a MIDI synthesizer and sounds by default. Closes: #650700 - - -- Miriam Ruiz Tue, 04 Dec 2012 00:44:18 +0100 - -pianobooster (0.6.4-3.1) unstable; urgency=low - - * Non-maintainer upload. - * Fix "ftbfs with GCC-4.7": add patch to set linker flag -mwindows only on - Windows. (Closes: #667322) - - -- gregor herrmann Wed, 23 May 2012 18:13:25 +0200 - -pianobooster (0.6.4-3) unstable; urgency=low - - [ Miriam Ruiz ] - * Added Galician translation and improved Spanish. Thanks to Miguel Bouzada. - - -- Miriam Ruiz Sat, 03 Dec 2011 17:27:22 +0100 - -pianobooster (0.6.4-2) unstable; urgency=low - - [ Miriam Ruiz ] - * Added support for translations: i18n.patch - * Added Spanish translation - * Fixed desktop file - * Set the Games Team as Maintainer - - -- Miriam Ruiz Wed, 30 Nov 2011 08:02:42 +0100 - -pianobooster (0.6.4-1) unstable; urgency=low - - * Initial release. Closes: #650398 - --- Miriam Ruiz Tue, 29 Nov 2011 15:41:19 +0100 diff --git a/pkgs/deb/debian.control b/pkgs/deb/debian.control deleted file mode 100644 index 545b9c9b..00000000 --- a/pkgs/deb/debian.control +++ /dev/null @@ -1,47 +0,0 @@ -Source: pianobooster -Section: games -Priority: optional -Maintainer: Louis Barman -Build-Depends: - cmake, - debhelper-compat (= 12), - hicolor-icon-theme, - libasound2-dev, - libfluidsynth-dev, - libftgl-dev, - libglu1-mesa-dev, - libjack-dev, - libqt5opengl5-dev, - librtmidi-dev, - qtbase5-dev, - qttools5-dev -Standards-Version: 4.4.0 -Homepage: https://github.com/captnfab/PianoBooster - -Package: pianobooster -Architecture: any -Depends: - ${shlibs:Depends}, - ${misc:Depends}, - fluid-soundfont-gm, - fluid-soundfont-gs, - fluidsynth, - fonts-dejavu-core, - hicolor-icon-theme, - unzip -Recommends: - qttranslations5-l10n -Description: Learn the piano just by playing a game - A MIDI file player/game that displays the musical notes AND teaches you how - to play the piano. - . - PianoBooster is a fun way of playing along with a musical accompaniment and - at the same time learning the basics of reading musical notation. - The difference between playing along to a CD or a standard MIDI file - is that PianoBooster listens and reacts to what you are playing on a - MIDI keyboard. - . - To run Piano Booster you need a MIDI Piano Keyboard and a MIDI interface - for the PC. If you don't have a MIDI keyboard you can still try out - PianoBooster, using the PC keyboard ('x' is middle C), but a MIDI piano - is really recommended. diff --git a/pkgs/deb/debian.copyright b/pkgs/deb/debian.copyright deleted file mode 100644 index 53f84ca2..00000000 --- a/pkgs/deb/debian.copyright +++ /dev/null @@ -1,69 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Source: https://github.com/captnfab/PianoBooster -Upstream-Contact: - Fabien Givors - Louis J. Barman -Upstream-Name: Piano Booster -Debianized-By: Miriam Ruiz -Debianized-Date: Wed, 04 Mar 2009 02:22:56 +0100 - -Files: * -Copyright: - 2008-2013, Louis J. Barman - 2018-2019, Fabien Givors -License: GPL-3+ - -Files: src/3rdparty/rtmidi/* -Copyright: - 2003-2019, Gary P. Scavone -License: MIT - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - Any person wishing to distribute modifications to the Software is asked to - send the modifications to the original developer so that they can be - incorporated into the canonical version. This is, however, not a binding - provision of this license. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. - -Files: music/* -Copyright: - 2008-2013, Louis J. Barman -License: CC-BY - These pieces of music have been created to work with PianoBooster and - have the creative commons copyright. - . - The complete text of this License can be found in - `/usr/share/common-licenses/CC0-1.0'. - . - See https://creativecommons.org/2014/01/07/plaintext-versions-of-creative-commons-4-0-licenses/ - -Files: debian/* -Copyright: - 2009, Miriam Ruiz - 2018, Olivier Humbert - 2019, Barak A. Pearlmutter -License: GPL-3+ - -License: GPL-3+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - . - The complete text of version 3 of the GNU General Public License can be - found in `/usr/share/common-licenses/GPL-3'. diff --git a/pkgs/deb/debian.rules b/pkgs/deb/debian.rules deleted file mode 100644 index 02812c04..00000000 --- a/pkgs/deb/debian.rules +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/make -f - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -%: - dh $@ - -override_dh_auto_configure: - dh_auto_configure -- \ - -DCMAKE_INSTALL_BINDIR=/usr/games \ - -DUSE_SYSTEM_FONT=ON \ - -DWITH_MAN=ON \ - -DNO_LICENSE=ON \ - -DNO_CHANGELOG=ON - -# Workaround for OpenSuse Build Service -override_dh_installchangelogs: - dh_installchangelogs Changelog.txt - -# Not much benefit from compressing the little markdown documentation files. -override_dh_compress: - dh_compress --exclude=.md - -refresh-tr: - dh_testdir - @echo Update translations - lupdate -verbose pianobooster.pro -ts translations/pianobooster_*.ts diff --git a/pkgs/deb/pianobooster.dsc b/pkgs/deb/pianobooster.dsc deleted file mode 100644 index 5ba88d07..00000000 --- a/pkgs/deb/pianobooster.dsc +++ /dev/null @@ -1,25 +0,0 @@ -Format: 3.0 (quilt) -Source: pianobooster -Binary: pianobooster -Architecture: any -Version: 0.7.2b -Maintainer: Louis Barman -Homepage: https://github.com/captnfab/PianoBooster -Standards-Version: 4.4.0 -Build-Depends: - cmake, - debhelper-compat (= 12), - hicolor-icon-theme, - libasound2-dev, - libfluidsynth-dev, - libftgl-dev, - libglu1-mesa-dev, - libjack-dev, - libqt5opengl5-dev, - librtmidi-dev, - qtbase5-dev, - qttools5-dev -Package-List: - pianobooster deb games optional arch=any -Files: - 7e32ca7fc4eb65ac39a5bc5d95cd5709 8511345 PianoBooster-v0.7.2b.tar.gz diff --git a/pkgs/rpm/pianobooster.spec b/pkgs/rpm/pianobooster.spec deleted file mode 100644 index f2b6ce29..00000000 --- a/pkgs/rpm/pianobooster.spec +++ /dev/null @@ -1,151 +0,0 @@ -%define build_with_cmake 1 - -%define orig_name PianoBooster - -%if 0%{?suse_version} -%define qmake_qt5 qmake-qt5 -%endif - -Name: pianobooster -Version: 0.7.2b -Release: %mkrel 1 -Summary: A MIDI file player that teaches you how to play the piano -%if 0%{?mageia} -Group: Sound/Midi -%endif -%if 0%{?fedora} -Group: Applications/Sound -%endif -%if 0%{?suse_version} -Group: Productivity/Multimedia/Sound/Midi -%endif -%if 0%{?mageia} || 0%{?fedora} -License: GPLv3+ -%endif -%if 0%{?suse_version} -License: GPL-3.0-or-later -%endif -Url: https://github.com/captnfab/PianoBooster -Source0: %{orig_name}-%{version}.tar.gz - -%if %{build_with_cmake} -BuildRequires: cmake -%endif -BuildRequires: pkgconfig(alsa) -BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(ftgl) -BuildRequires: pkgconfig(gl) -BuildRequires: pkgconfig(glu) -BuildRequires: pkgconfig(Qt5Core) -BuildRequires: pkgconfig(Qt5Gui) -BuildRequires: pkgconfig(Qt5Help) -BuildRequires: pkgconfig(Qt5OpenGL) -BuildRequires: pkgconfig(Qt5Widgets) -BuildRequires: pkgconfig(Qt5Xml) -BuildRequires: pkgconfig(rtmidi) -BuildRequires: pkgconfig(fluidsynth) -BuildRequires: hicolor-icon-theme - -%if 0%{?mageia} -Requires: fonts-ttf-dejavu -%endif -%if 0%{?suse_version} -Requires: dejavu-fonts -%endif -%if 0%{?fedora} -Requires: dejavu-sans-fonts -%endif -Requires: unzip -Requires: hicolor-icon-theme - -#Recommends: %%{name}-fluidsynth -%if 0%{?mageia} -Recommends: qttranslations5 -%endif -%if 0%{?suse_version} -Recommends: libqt5-qttranslations -%endif -%if 0%{?fedora} -Recommends: qt5-qttranslations -%endif - -%description -A MIDI file player/game that displays the musical notes AND teaches you how -to play the piano. - -PianoBooster is a fun way of playing along with a musical accompaniment and -at the same time learning the basics of reading musical notation. -The difference between playing along to a CD or a standard MIDI file -is that PianoBooster listens and reacts to what you are playing on a -MIDI keyboard. - -To run Piano Booster you need a MIDI Piano Keyboard and a MIDI interface -for the PC. If you don't have a MIDI keyboard you can still try out -PianoBooster, using the PC keyboard ('x' is middle C), but a MIDI piano -is really recommended. - -%files -%doc README.md Changelog.txt doc/faq.md -%license license.txt -%{_bindir}/%{name} -%{_datadir}/applications/%{name}.desktop -%{_datadir}/icons/hicolor/*/apps/%{name}.png -%dir %{_datadir}/games/%{name} -%dir %{_datadir}/games/%{name}/music -%dir %{_datadir}/games/%{name}/translations -%{_datadir}/games/%{name}/music/*.zip -%{_datadir}/games/%{name}/translations/%{name}*.qm -%{_datadir}/games/%{name}/translations/music*.qm -%{_datadir}/games/%{name}/translations/*.json -%{_mandir}/man6/%{name}.6* - -#---------------------------------------------------------------------------- - -%if 0%{?mageia} -Group: Sound/Midi -%endif -%if 0%{?fedora} -Group: Applications/Sound -%endif -%if 0%{?suse_version} -Group: Productivity/Multimedia/Sound/Midi -%endif - -Requires: %{name} = %{version}-%{release} - -%if 0%{?mageia} || 0%{?fedora} -Requires: libnotify -%endif -%if 0%{?suse_version} -Requires: libnotify-tools -%endif - -#---------------------------------------------------------------------------- - -%prep -%autosetup -p1 -n %{orig_name}-%{version} - -%build -%if %{build_with_cmake} -%cmake \ - -DUSE_SYSTEM_FONT=ON \ - -DNO_DOCS=ON \ - -DNO_LICENSE=ON \ - -DNO_CHANGELOG=ON \ - -DWITH_MAN=ON -%else -%qmake_qt5 \ - USE_SYSTEM_FONT=ON \ - NO_DOCS=ON \ - NO_LICENSE=ON \ - NO_CHANGELOG=ON \ - WITH_MAN=ON -%endif -%make_build - -%install -%if %{build_with_cmake} -%make_install -C build -%else -%make_install INSTALL_ROOT=%{buildroot} -%endif diff --git a/pkgs/slack/README b/pkgs/slack/README deleted file mode 100644 index bbc0a15b..00000000 --- a/pkgs/slack/README +++ /dev/null @@ -1,7 +0,0 @@ -pianobooster (educational music software) - -PianoBooster is a fun way of playing along with a musical accompaniment -and at the same time learning the basics of reading musical notation. The -difference between playing along to a CD or a standard midi file is -that PianoBooster listens and follows what you are playing on a midi -piano keyboard. diff --git a/pkgs/slack/doinst.sh b/pkgs/slack/doinst.sh deleted file mode 100644 index 5fb28930..00000000 --- a/pkgs/slack/doinst.sh +++ /dev/null @@ -1,3 +0,0 @@ -if [ -x /usr/bin/update-desktop-database ]; then - /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 -fi diff --git a/pkgs/slack/pianobooster.SlackBuild b/pkgs/slack/pianobooster.SlackBuild deleted file mode 100644 index 45b96519..00000000 --- a/pkgs/slack/pianobooster.SlackBuild +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh - -# Slackware build script for pianobooster - -# Written by B. Watson (yalhcru@gmail.com) -# Modified by Willy Sudiarto Raharjo -# Modified by Alexey Loginov - -# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. - -PRGNAM=pianobooster -ORIGNAM=PianoBooster -VERSION=${VERSION:-0.7.2b} -BUILD=${BUILD:-1} -TAG=${TAG:-_SBo} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i486 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -fi - -CWD=$(pwd) -TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} - -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686 -std=c++11" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686 -mtune=i686 -std=c++11" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2 -fPIC -std=c++11" - LIBDIRSUFFIX="64" -else - SLKCFLAGS="-O2 -std=c++11" - LIBDIRSUFFIX="" -fi - -set -e - -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -rf $PRGNAM-src-$VERSION -tar xvf $CWD/$ORIGNAM-$VERSION.tar.gz -mv -f "$ORIGNAM-$VERSION" "$PRGNAM-$VERSION" -cd $PRGNAM-$VERSION -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -cmake \ - -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ - -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DUSE_SYSTEM_FONT=ON \ - -DNO_DOCS=ON \ - -DNO_LICENSE=ON \ - -DNO_CHANGELOG=ON \ - -DWITH_MAN=ON \ - -DCMAKE_BUILD_TYPE=Release . - -make VERBOSE=1 -make install/strip DESTDIR=$PKG - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a \ - README.md Changelog.txt doc/faq.md license.txt \ - $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild - -if [ -d $PKG/usr/share/man ]; then - ( cd $PKG/usr/share/man - find . -type f -exec gzip -9 {} \; - for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done - ) -fi - -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh - -cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/pkgs/slack/pianobooster.info b/pkgs/slack/pianobooster.info deleted file mode 100644 index c06fa457..00000000 --- a/pkgs/slack/pianobooster.info +++ /dev/null @@ -1,10 +0,0 @@ -PRGNAM="pianobooster" -VERSION="0.7.2b" -HOMEPAGE="https://github.com/captnfab/PianoBooster" -DOWNLOAD="PianoBooster-0.7.2b.tar.gz" -MD5SUM="SKIP" -DOWNLOAD_x86_64="" -MD5SUM_x86_64="" -REQUIRES="" -MAINTAINER="B. Watson" -EMAIL="yalhcru@gmail.com" diff --git a/pkgs/slack/slack-desc b/pkgs/slack/slack-desc deleted file mode 100644 index 34200d55..00000000 --- a/pkgs/slack/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# HOW TO EDIT THIS FILE: -# The "handy ruler" below makes it easier to edit a package description. -# Line up the first '|' above the ':' following the base package name, and -# the '|' on the right side marks the last column you can put a character in. -# You must make exactly 11 lines for the formatting to be correct. It's also -# customary to leave one space after the ':' except on otherwise blank lines. - - |-----handy-ruler------------------------------------------------------| -pianobooster: pianobooster (educational music software) -pianobooster: -pianobooster: PianoBooster is a fun way of playing along with a musical -pianobooster: accompaniment and at the same time learning the basics of reading -pianobooster: musical notation. The difference between playing along to a CD or a -pianobooster: standard midi file is that PianoBooster listens and follows what you -pianobooster: are playing on a midi piano keyboard. -pianobooster: -pianobooster: -pianobooster: -pianobooster: From 56653b416937d3ac4d5c58cf214aa48d02bc2d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Wed, 17 Jun 2020 08:24:05 +0000 Subject: [PATCH 50/84] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 77.1% (290 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/nb_NO/ --- translations/pianobooster_nb.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_nb.ts b/translations/pianobooster_nb.ts index d7a89e55..517adf7f 100644 --- a/translations/pianobooster_nb.ts +++ b/translations/pianobooster_nb.ts @@ -815,7 +815,7 @@ You can use the PC keyboard instead of a MIDI keyboard; 'x' is middle C. - Du kan bruke PC-tastatur istedenfor et MIDI-keyboard; "x" er midt-C. + Du kan bruke PC-tastatur istedenfor et MIDI-keyboard; "x" er midt-C. From c343d266aaa51c4cf7eea164686ccdb54a66bea2 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Thu, 18 Jun 2020 11:04:50 +0000 Subject: [PATCH 51/84] Translated using Weblate (French) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/fr/ --- translations/pianobooster_fr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_fr.ts b/translations/pianobooster_fr.ts index 15a36e41..099d7906 100644 --- a/translations/pianobooster_fr.ts +++ b/translations/pianobooster_fr.ts @@ -6,7 +6,7 @@ None - Aucun + Aucun From 575b16e99782a542459ee1d17228a67c1c96b13e Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Thu, 18 Jun 2020 08:51:16 +0000 Subject: [PATCH 52/84] Translated using Weblate (Ukrainian) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/uk/ --- translations/pianobooster_uk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index afe68262..3b478d92 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -6,7 +6,7 @@ None - Немає + Немає From 1f146a2ccc0078d0684639037c6bad2bea72b939 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Sun, 28 Jun 2020 17:22:15 +0000 Subject: [PATCH 53/84] Translated using Weblate (Ukrainian) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/uk/ --- translations/pianobooster_uk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_uk.ts b/translations/pianobooster_uk.ts index 3b478d92..64744006 100644 --- a/translations/pianobooster_uk.ts +++ b/translations/pianobooster_uk.ts @@ -198,7 +198,7 @@ Accordion - Аккордеон + Акордеон From 41e76e85f98d48ebe158fb4b986232d17a43b22b Mon Sep 17 00:00:00 2001 From: ssantos Date: Sat, 18 Jul 2020 22:45:03 +0000 Subject: [PATCH 54/84] Translated using Weblate (Portuguese) Currently translated at 46.5% (175 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/pt/ --- translations/pianobooster_pt.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index 661958fb..bcc7f080 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -80,7 +80,7 @@ ERROR NO MIDI FILE: To fix this use menu File/Open ... - ERRO NENHUM ARQUIVO MIDI: para corrigi-lo isso use o menu Ficheiro/Abrir ... + ERRO NENHUM FICHEIRO MIDI: para corrigi-lo isso use o menu Ficheiro/Abrir ... From 7262882f36fb924e99347e00295e0e8abe6df9ee Mon Sep 17 00:00:00 2001 From: Fontan 030 Date: Mon, 17 Aug 2020 15:44:32 +0000 Subject: [PATCH 55/84] Translated using Weblate (Kazakh) Currently translated at 5.5% (21 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/kk/ --- translations/pianobooster_kk.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/pianobooster_kk.ts b/translations/pianobooster_kk.ts index 2b04f08e..e2ab7bb0 100644 --- a/translations/pianobooster_kk.ts +++ b/translations/pianobooster_kk.ts @@ -1835,7 +1835,7 @@ About Piano Booster - + Piano Booster туралы @@ -1956,7 +1956,7 @@ Midi Files - + MIDI файлдары From 5ea39068a4f8923c3e792ae5e1bdadcdff3abe4e Mon Sep 17 00:00:00 2001 From: ssantos Date: Thu, 10 Sep 2020 19:36:12 +0000 Subject: [PATCH 56/84] Translated using Weblate (Portuguese) Currently translated at 46.8% (176 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/pt/ --- translations/pianobooster_pt.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index bcc7f080..79ca1458 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -6,7 +6,7 @@ None - Nenhum + Nenhum From 7b15f3fb10bdc49bad1673cffd652d06effc5a65 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sat, 12 Sep 2020 21:12:44 +0000 Subject: [PATCH 57/84] Translated using Weblate (Portuguese) Currently translated at 46.8% (176 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/pt/ --- translations/pianobooster_pt.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index 79ca1458..b9538d53 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -75,7 +75,7 @@ ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - ERRO SEM SOM: para corrigi-lo use o menu Configurações / Configurações Midi ... + ERRO SEM SOM: para corrigi-lo use o menu Configurações/Configurações Midi ... From 7738f0a2c836c38f98be9b27cf8b03f75f4ee848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Wed, 23 Sep 2020 19:06:33 +0000 Subject: [PATCH 58/84] Translated using Weblate (Turkish) Currently translated at 19.1% (72 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/tr/ --- translations/pianobooster_tr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_tr.ts b/translations/pianobooster_tr.ts index e84277db..aee84918 100644 --- a/translations/pianobooster_tr.ts +++ b/translations/pianobooster_tr.ts @@ -6,7 +6,7 @@ None - Hiçbiri + Hiçbiri From 80ba82604a979c4f56e0ed1e2bdcf150804d975a Mon Sep 17 00:00:00 2001 From: ssantos Date: Thu, 1 Oct 2020 21:03:48 +0000 Subject: [PATCH 59/84] Translated using Weblate (Portuguese) Currently translated at 46.8% (176 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/pt/ --- translations/pianobooster_pt.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/pianobooster_pt.ts b/translations/pianobooster_pt.ts index b9538d53..aee3e5ee 100644 --- a/translations/pianobooster_pt.ts +++ b/translations/pianobooster_pt.ts @@ -1628,7 +1628,7 @@ &Fullscreen - Tela C&heia + Ecrã C&heio @@ -1951,12 +1951,12 @@ Open Midi File - Abrir Arquivo MIDI + Abrir ficheiro MIDI Midi Files - Arquivos MIDI + Ficheiros MIDI From 291886d53ad6080339c7d54646ee532728686207 Mon Sep 17 00:00:00 2001 From: pianobooster Date: Sun, 4 Oct 2020 11:45:57 +0100 Subject: [PATCH 60/84] Renamed the MIDI music info mark down files. --- .../{01-StartWithMiddleC_en.md => 01-StartWithMiddleC.md} | 0 .../{02-ChordOfCMajor_en.md => 02-ChordOfCMajor.md} | 0 music/src/BeginnerCourse/{03-UpAndDown_en.md => 03-UpAndDown.md} | 0 .../{04-ClairDeLaLune_en.md => 04-ClairDeLaLune.md} | 0 .../{05-ChordOfFMajor_en.md => 05-ChordOfFMajor.md} | 0 music/src/BeginnerCourse/{06-DownAndUp_en.md => 06-DownAndUp.md} | 0 .../BoosterMusic/{01-ClairDeLaLune_en.md => 01-ClairDeLaLune.md} | 0 .../BoosterMusic/{02-LavendersBlue_en.md => 02-LavendersBlue.md} | 0 .../src/BoosterMusic/{03-SkipToMyLoo_en.md => 03-SkipToMyLoo.md} | 0 .../BoosterMusic/{04-FrereJacques_en.md => 04-FrereJacques.md} | 0 .../{05-ScarboroughFair_en.md => 05-ScarboroughFair.md} | 0 .../BoosterMusic/{06-Greensleeves_en.md => 06-Greensleeves.md} | 0 .../BoosterMusic/{07-AmazingGrace_en.md => 07-AmazingGrace.md} | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename music/src/BeginnerCourse/{01-StartWithMiddleC_en.md => 01-StartWithMiddleC.md} (100%) rename music/src/BeginnerCourse/{02-ChordOfCMajor_en.md => 02-ChordOfCMajor.md} (100%) rename music/src/BeginnerCourse/{03-UpAndDown_en.md => 03-UpAndDown.md} (100%) rename music/src/BeginnerCourse/{04-ClairDeLaLune_en.md => 04-ClairDeLaLune.md} (100%) rename music/src/BeginnerCourse/{05-ChordOfFMajor_en.md => 05-ChordOfFMajor.md} (100%) rename music/src/BeginnerCourse/{06-DownAndUp_en.md => 06-DownAndUp.md} (100%) rename music/src/BoosterMusic/{01-ClairDeLaLune_en.md => 01-ClairDeLaLune.md} (100%) rename music/src/BoosterMusic/{02-LavendersBlue_en.md => 02-LavendersBlue.md} (100%) rename music/src/BoosterMusic/{03-SkipToMyLoo_en.md => 03-SkipToMyLoo.md} (100%) rename music/src/BoosterMusic/{04-FrereJacques_en.md => 04-FrereJacques.md} (100%) rename music/src/BoosterMusic/{05-ScarboroughFair_en.md => 05-ScarboroughFair.md} (100%) rename music/src/BoosterMusic/{06-Greensleeves_en.md => 06-Greensleeves.md} (100%) rename music/src/BoosterMusic/{07-AmazingGrace_en.md => 07-AmazingGrace.md} (100%) diff --git a/music/src/BeginnerCourse/01-StartWithMiddleC_en.md b/music/src/BeginnerCourse/01-StartWithMiddleC.md similarity index 100% rename from music/src/BeginnerCourse/01-StartWithMiddleC_en.md rename to music/src/BeginnerCourse/01-StartWithMiddleC.md diff --git a/music/src/BeginnerCourse/02-ChordOfCMajor_en.md b/music/src/BeginnerCourse/02-ChordOfCMajor.md similarity index 100% rename from music/src/BeginnerCourse/02-ChordOfCMajor_en.md rename to music/src/BeginnerCourse/02-ChordOfCMajor.md diff --git a/music/src/BeginnerCourse/03-UpAndDown_en.md b/music/src/BeginnerCourse/03-UpAndDown.md similarity index 100% rename from music/src/BeginnerCourse/03-UpAndDown_en.md rename to music/src/BeginnerCourse/03-UpAndDown.md diff --git a/music/src/BeginnerCourse/04-ClairDeLaLune_en.md b/music/src/BeginnerCourse/04-ClairDeLaLune.md similarity index 100% rename from music/src/BeginnerCourse/04-ClairDeLaLune_en.md rename to music/src/BeginnerCourse/04-ClairDeLaLune.md diff --git a/music/src/BeginnerCourse/05-ChordOfFMajor_en.md b/music/src/BeginnerCourse/05-ChordOfFMajor.md similarity index 100% rename from music/src/BeginnerCourse/05-ChordOfFMajor_en.md rename to music/src/BeginnerCourse/05-ChordOfFMajor.md diff --git a/music/src/BeginnerCourse/06-DownAndUp_en.md b/music/src/BeginnerCourse/06-DownAndUp.md similarity index 100% rename from music/src/BeginnerCourse/06-DownAndUp_en.md rename to music/src/BeginnerCourse/06-DownAndUp.md diff --git a/music/src/BoosterMusic/01-ClairDeLaLune_en.md b/music/src/BoosterMusic/01-ClairDeLaLune.md similarity index 100% rename from music/src/BoosterMusic/01-ClairDeLaLune_en.md rename to music/src/BoosterMusic/01-ClairDeLaLune.md diff --git a/music/src/BoosterMusic/02-LavendersBlue_en.md b/music/src/BoosterMusic/02-LavendersBlue.md similarity index 100% rename from music/src/BoosterMusic/02-LavendersBlue_en.md rename to music/src/BoosterMusic/02-LavendersBlue.md diff --git a/music/src/BoosterMusic/03-SkipToMyLoo_en.md b/music/src/BoosterMusic/03-SkipToMyLoo.md similarity index 100% rename from music/src/BoosterMusic/03-SkipToMyLoo_en.md rename to music/src/BoosterMusic/03-SkipToMyLoo.md diff --git a/music/src/BoosterMusic/04-FrereJacques_en.md b/music/src/BoosterMusic/04-FrereJacques.md similarity index 100% rename from music/src/BoosterMusic/04-FrereJacques_en.md rename to music/src/BoosterMusic/04-FrereJacques.md diff --git a/music/src/BoosterMusic/05-ScarboroughFair_en.md b/music/src/BoosterMusic/05-ScarboroughFair.md similarity index 100% rename from music/src/BoosterMusic/05-ScarboroughFair_en.md rename to music/src/BoosterMusic/05-ScarboroughFair.md diff --git a/music/src/BoosterMusic/06-Greensleeves_en.md b/music/src/BoosterMusic/06-Greensleeves.md similarity index 100% rename from music/src/BoosterMusic/06-Greensleeves_en.md rename to music/src/BoosterMusic/06-Greensleeves.md diff --git a/music/src/BoosterMusic/07-AmazingGrace_en.md b/music/src/BoosterMusic/07-AmazingGrace.md similarity index 100% rename from music/src/BoosterMusic/07-AmazingGrace_en.md rename to music/src/BoosterMusic/07-AmazingGrace.md From 5e591aef336480a15a6275a965c4544ab544968e Mon Sep 17 00:00:00 2001 From: pianobooster Date: Sun, 4 Oct 2020 21:14:40 +0100 Subject: [PATCH 61/84] Updated the music tutor books to include a PDF file of the music. Also updated the scripts to generate the zip file. The music tutor books translations now work. --- music/BoosterMusicBooks.zip | Bin 24859 -> 472364 bytes music/src/.gitignore | 2 + .../BeginnerCourse/01-StartWithMiddleC.abc | 4 +- .../src/BeginnerCourse/01-StartWithMiddleC.md | 2 +- music/src/BeginnerCourse/02-ChordOfCMajor.abc | 4 +- music/src/BeginnerCourse/02-ChordOfCMajor.md | 2 +- music/src/BeginnerCourse/03-UpAndDown.abc | 8 +- music/src/BeginnerCourse/03-UpAndDown.md | 2 +- music/src/BeginnerCourse/03-UpAndDown.mma | 2 +- music/src/BeginnerCourse/04-ClairDeLaLune.abc | 4 + music/src/BeginnerCourse/04-ClairDeLaLune.md | 2 +- music/src/BeginnerCourse/05-ChordOfFMajor.abc | 4 +- music/src/BeginnerCourse/05-ChordOfFMajor.md | 2 +- music/src/BeginnerCourse/06-DownAndUp.abc | 12 +- music/src/BeginnerCourse/06-DownAndUp.md | 2 +- music/src/BeginnerCourse/06-DownAndUp.mma | 2 +- music/src/BeginnerCourse/Introduction.md | 3 + music/src/BoosterMusic/01-ClairDeLaLune.abc | 4 + music/src/BoosterMusic/01-ClairDeLaLune.md | 2 +- music/src/BoosterMusic/02-LavendersBlue.abc | 2 + music/src/BoosterMusic/02-LavendersBlue.md | 2 +- music/src/BoosterMusic/03-SkipToMyLoo.md | 5 - ...{03-SkipToMyLoo.abc => 03-SkipToMyLou.abc} | 2 +- music/src/BoosterMusic/03-SkipToMyLou.md | 5 + ...{03-SkipToMyLoo.mma => 03-SkipToMyLou.mma} | 4 +- music/src/BoosterMusic/04-FrereJacques.md | 2 +- music/src/BoosterMusic/05-ScarboroughFair.abc | 17 +- music/src/BoosterMusic/05-ScarboroughFair.md | 2 +- music/src/BoosterMusic/06-Greensleeves.abc | 4 +- music/src/BoosterMusic/06-Greensleeves.md | 4 +- music/src/BoosterMusic/06-Greensleeves.mma | 2 +- music/src/BoosterMusic/07-AmazingGrace.abc | 28 +- music/src/BoosterMusic/07-AmazingGrace.md | 2 +- music/src/BoosterMusic/07-AmazingGracePs.abc | 34 ++ music/src/BoosterMusic/Introduction.md | 4 + music/src/Makefile | 46 --- music/src/makemusic.py | 212 +++++++++++++ music/src/music.md.end | 2 - music/src/music.md.start | 50 --- music/src/po4a-booster-music.cfg | 28 ++ music/src/translations/.gitignore | 1 + music/src/translations/BoosterMusic_blank.pot | 261 +++++++++++++++ music/src/translations/BoosterMusic_cs.po | 288 +++++++++++++++++ music/src/translations/BoosterMusic_de.po | 240 ++++++++++++++ music/src/translations/BoosterMusic_es.po | 247 +++++++++++++++ music/src/translations/BoosterMusic_fr.po | 297 ++++++++++++++++++ music/src/translations/BoosterMusic_pl.po | 255 +++++++++++++++ music/src/translations/BoosterMusic_ru.po | 291 +++++++++++++++++ music/src/translations/BoosterMusic_uk.po | 293 +++++++++++++++++ music/src/translations/BoosterMusic_zh.pot | 261 +++++++++++++++ src/CMakeLists.txt | 2 + src/QtWindow.cpp | 9 +- src/Settings.cpp | 42 ++- src/Settings.h | 4 + src/version.txt | 2 +- tools/conv_html_to_ts.pl | 68 ---- tools/make_music.sh | 77 ----- 57 files changed, 2821 insertions(+), 337 deletions(-) create mode 100644 music/src/.gitignore create mode 100644 music/src/BeginnerCourse/Introduction.md delete mode 100644 music/src/BoosterMusic/03-SkipToMyLoo.md rename music/src/BoosterMusic/{03-SkipToMyLoo.abc => 03-SkipToMyLou.abc} (96%) create mode 100644 music/src/BoosterMusic/03-SkipToMyLou.md rename music/src/BoosterMusic/{03-SkipToMyLoo.mma => 03-SkipToMyLou.mma} (90%) create mode 100644 music/src/BoosterMusic/07-AmazingGracePs.abc create mode 100644 music/src/BoosterMusic/Introduction.md delete mode 100644 music/src/Makefile create mode 100755 music/src/makemusic.py delete mode 100644 music/src/music.md.end delete mode 100644 music/src/music.md.start create mode 100644 music/src/po4a-booster-music.cfg create mode 100644 music/src/translations/.gitignore create mode 100644 music/src/translations/BoosterMusic_blank.pot create mode 100644 music/src/translations/BoosterMusic_cs.po create mode 100644 music/src/translations/BoosterMusic_de.po create mode 100644 music/src/translations/BoosterMusic_es.po create mode 100644 music/src/translations/BoosterMusic_fr.po create mode 100644 music/src/translations/BoosterMusic_pl.po create mode 100644 music/src/translations/BoosterMusic_ru.po create mode 100644 music/src/translations/BoosterMusic_uk.po create mode 100644 music/src/translations/BoosterMusic_zh.pot delete mode 100755 tools/conv_html_to_ts.pl delete mode 100755 tools/make_music.sh diff --git a/music/BoosterMusicBooks.zip b/music/BoosterMusicBooks.zip index 32941c8a32fe20e3a3ecaa0b0b718f4807a236f9..48c0149c3d230fc7686ff60dab0b559c264b4f0e 100644 GIT binary patch literal 472364 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 z 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 >zRgtm;l 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 z%0Aa5yV8}$I(hY`w27{sQC#NGndN^el#UljZEG1fYFJrWRa?`Rvu63iw$5H>U$fg) zG_F|Zh%cM5*orNm^&bLxjXbIR+oj-NlD;uA{74bgYr1)UhjUL ziS*jCdNPh6=VxsVXguhGS9MjmK@pKi#TK{r6~pLIxo@-<86um_MA)n+nwLO``l);cPZ*| z3?nc!GsAn*YV?)=qWeR34CU%de_M%T?^ou&TRS7!9OGC#_*HuC&urZOJ3|?9?yX)M z6$VG%_B+z7e6pX{=aQ%^+Hs2A(pLm_a}LDxb>vC?JPD7>=hdrh+WwPCCP_QN@IVrhN!6~`xtONByuW6=?F|K6Q+@x9 z*ycZX9h<|L&Q-7K4;}l|e0q$d<55vIdB*ZkW!^R-yJIJZUwJ;ig*ui8vN^Dgarmy* zNkKc^aPIFowOclObuavr#l^<9K>5;4E3CP`A~X^+&gA9XSj|i98#MhnurM=eU$wmL z%v&j!3m>qvDYpcINBvX8gZi8w`A|_tE6=II%3Z8+%Q? zt(l`(Jz<3F;$Ph*y`@gC&&N8uB3JWbRl>YuCr*q`yTk?P;SZ~NOQWe;Z?$u()a zr)q6MpvQlGl+d0=L)w;`V^^Qd`tp6KH-*^pY>o91_OasUk7`ZIk3Z>FS^j(Y8K$+Y4H>JC^27*%7vD>vnt~VCk ztd>%^Tk0!IE=Ov;VVc?-!0rr0E0pXMZ%7%rjk%4=GlEiI{M3<7$7*wG%XrEqh$pyG zMyC=bVn0W%^W}Xf<;Jh$8r+7QHz+@n3-f;=jPeM)j?bAT^vs-HmpjML&4^!V8?jf- zO=_hAObc;pk8412*Czu(nSa_@i#*CzM^`jg@2aDFKt26JcGY^hhp39m2)>5~23A=y zYS2YY%s})&A|B5EoJ^0%Lp_>{eeH;Q$W(hyDqDN+V!XUwr5NnZ%05wPife4*BzEOKgbGuhy7^8 zRR8v%kD^xW@y6%H{U{8Z#-i(G7S)3~%%$wmh`MK9&#-h`3*b8V^cBBKh z$9zbm>T_NroaaLDTqY!@>$x1j4wrq3Man5Wi~%o~e&|9hm)km_~KWLRp z_mLfrRKI-+L9X9&{Hu}2gE!jvD(6W9FK)?!HA*dx^Mnd3j>BOyR2Z!2DKR`)hvmr- z6>PZZIzZiRwNM%boN^n0o=d-NQVyMq4n|iAd}NCKMsCn-DC5A~MuaAOzjvlhP#cH?Ap9+$9FX$UTQ196B+ z+}7EUI-thiW+RuT&0=HMFfls`(Vk(VAsh`!Tji0(ledPjl|m|v#b#RQX{^F#y@64a zh+Vvafi_5153@#45k*GdryC>|WuX%Z%VN_J|0-9r+>pjpzq()`D6Fwkk4bpVT7wyA zZ>dphn2JhmZV(DM%}T>;kVyrEM*~|Z7u;n&DMb@!qzKW9l_w<}yGUfs;RM z0I(|Ovl{;?Hj{mw@XW=q9>@tdQzw<&+*`q*|$%hxjMW$F~R$<8K*ds3&V*~_?Y{ih5hH)>v*#VCX}d#%cKgL5>ui~Snh2=uJH}QriD}+u*QW;4Hj*QCX+$i z5DpsIcFqM~QjDZ>$RaRM2Ud}UE3rU64N~zUxv;pU3q=CBgbL(FsYEygv_o_Vu0p6V zvj`Ck9@-47f8e_9_R#Y;JNCOA`or6~sUP6oAo}cILJr1%8GUdtaQv6Wp1!Km@yiSd zeedcbM@KkEWA`E0&^JKfAVugSP7`f*#%%FP;MG6gW;ZU|0_{~RTgG46_GW#VO%$Q< z(J5tI=!nQkP|2d#UXR{_u+pAq^f|QOh}n6vVW;C-;`dvl>K{1qNsvsO!#$d`Y3)R@ zPFdD<#j9_d^vfzzsI_d1@J{QR+b^lD{zik5x5xR_^3&RNb9szePm}P+Nmga@2&@7f zWM^S8y4d6o-I(hENf4lAOlBituf%(e;SHAUgR?QajA(P5v&}wt$8>Te(~`OX0Ob8! zcUt>KYIpnU($sTVr5&`%^{R$4tbM4Lf~Za}p;BKDK8b zEOIF8C(hfeqN=!Yn$3X*_&Ei&{3{cG2hBTbgBD*8^_Jl-xTOefe<^5ERn7+0_1hTd zCzOLRQxagdbs+N@!62-{92iHK%Vh?z)8_X);tuTeQ7^s&^xcqc-Ycc>#|Ul08m)Dj zhhu|y^q0d;76_T??YA4TZQ>zUvU&tb>(}jo5r?cOs(!c}3;&+sIBvJTip-<~OZYm9 zE`x2uO7Rlg@^8@Lyt!e#Py3p;Q+&>`6+#}AfT8h_7tv_`OK-$r#wJqa^4+Z<-abQ<7??F3)bMDKFy%4bB>j zqVUjgwNv}1hudnhWH)#@33EO|BlK3kuf9|@ZU5rkMB5dhPfeqqY7K)hv!D~fl*7}h zJiNN-_b{Yp6o7^01s;Nk<O~dy zsKiBJYH~|(rJR&Bq+>W$umrntiSN2iK$(W2_?9K+rDHBO}xQW!hIpMwb7B_?3~7_5YxL zWn^Uge_G7{tHu65ieZ_USr{4rf4?`Z?Uk;l;da8~n%7qx?gh*}J;~ z-S}B=Lw=k0@A&Ta->~=pcz#>&-yC{$!yyeRTkXY&|7nZ&4>?8~23X6xzGcVX?*DpC z|4#o#v+MtK{km=M|H36qOPb@v@OEcXKn7KTRwo>TD-%y)TcBh+|xg7 zKl6#B98saD(q7lCjeeff+>P%9tIK)|-jR_TVz0MqZ;Xs;{Ch_56z40P8GX$g(mlFk ze*NE%j$Hj$=HK=H?${iE0$2Y`2Yin|{`&9ueZ2#B?fbQ#Zu@tA*J~T7e%=#6y12*K zF>Wm09GeBK>A8~qKxuk`;azb~AR@1vPyWLPz( znH;{c_S}9C?2JQPXE3V|zMDoD_c^80Np=M5fmjvWzPy@#m$gmTY$fd zf-okq5NPM(f5HTgE}@n_xDUI4Txt8f`SQlr7BY95pl?g{WkF+{Tp0t;+;+*7%+jX1 zbEY$<0q&D2?Nx1T!E#iV_JYO96PPjw&*K6E6yesI949G5B@sti{LTcUL0Er z49i^*e>Y^CFrzIwZu@tz4;C1PY4s>K0Aq-aItG^i$IF=(>dzOHM4{I6w&M5|i*Uc@ zC*K$P0Fw?&e+(Y?Uqhj39AFCPOd}q7##mYo^NA(jID}K%IR3nI^c2F`Crhs{E?!!@ z>zB9ZmmyEDsPA}qWzCIsVs9=cZ)oq;Qih2x(Lw6CmUeS(o*2VYw;TqDlS{JpK}YP> zrka-xQ+w3&U^(`bH#UrL`iN9?uPjv)QF171Y4UeulG{Oa-UE~>S8Xps15LN!8e;IM zYnipu{O0Tw)Tc*=V@J9%<4Z~%GaNi~96Dw;6sxsZ4 zuH@wyU$=h0TMLJ&=jKDHXnsL&=s0Fps@Gl&aU2`^^p=HsLA5{MJ(=#lqA!xeJZLqw zyOal}_G=T|-3FgEn+X_UF^w;z0qee&#hdGx)8w;Pamws;xtJ%W_Iox_5a=TLtT;Ed ztIGaRp1b+1+26Vdn3F5V7sm$vgsVI+Jc=Hv--T0tRZMY>K9xlP;!GD&K0D{@rhep_ zSH@pQfALA0rh{f0;Tr|qTGSOMaJ&OT{40^=UBQei)~TR0t8NmM+mvyG@*>9%NyfA& z!E)j#;T_9v?MuUp%~IowC&%}H-j2WQe;lEO|5Ub~@*(^^bKh?7S2UP*oRy^}v%GOBlJGE`AU`8=d!3?X(9veAXG3He^m}VRY=FyZhZ=S(0tU~bFmvz{0 zRAM|c-u}xQw*CI+*4;@G0~voH9#AGnvi@>gzb_tgO7>0OFaKkB*!Rd#$rQ%GW{k5k zsCxJDIhpDeW9YMEc{Dxw&+I!AW2mD*n!P(r-hN%YeR}`*bjB85x4f+Qeprmc7$t|t zI-;Yw%`qF)q20uefteN$RDI2HR21~?#zm))Pk7Dj5nqV6gSL#E;vo|hq09szWlBd1*=ksrT9`~ZU&rjwQ*@zEkO zSol}vOSW)dD0} zMcgC%Tn5v}fSxDjpaOMB4C5!tqIc}EAKDl%cNk+bOjmzl28De5Ps1^|+k|ehmj%Ym z2SjSErwZ&DvUGao8p~P4F(Hrd)=W0 zFsc;tW-?7)jsJ`+Wl4OXQp~V9E(jB!lRWCRB34|c#9{~Dh;xM837nbaqiv2(PJRq} zbujdW0PXk&2CCybjXS-9`4ol#mM(6pP=)Wg7@o_x793wVQwr(_60ftVk}UfsWA-v9 zU6!!N^ydKyvm6iYaT&8#&oTa2!I8D*b^q~C=pr(Fe2%b$#Pq!yp6@v$iv7W9qnXB= zU|_~PhcYU|8lY8|`+@_`GahQgPxDU1I%14HquVS-Kw7)wb@CA8JpNH6jKey&4?`>R7W8h)GQz{N#44ZjXx@VxRQ$GIO4_%7&97Ff8m@eHsmdB+JTp?x)dyJ z7;pfLb(zUB+&JSW!;z!EE}UD^Org-n}#x=}Czu=8pD^eAYOR_1xixJ65M)<<|TS`kmWv1_;SC$2cc4Wtr0Qgh4@dxKK5cSUOO!%M;dM zG#H=}dvYG`znrhTtp|5=q5QsKa z7SObeuxhfqXf3^4A`=TGPE#U;=}GrAIK(@DvpQ7prePcp+5K>2j;QRMgHGoLy`-E? z^;r-z3!<_TK`OA>PLdU25o|Td7#%`Uk!E9522o9^WO0;iHIaxKB~@MFc-f+*X4mlD zm`+hyw3VT&Fj9#;Vm=+XX6dklSN86-D`vYKEL9HXNtJ`Hi~5@&HY<9c(547|$Km}P ztCi)@()mx>opd%=%R%#Y)ZJ<@SMI&5ZaZM1rG^`ow&3X@7b@rU!nwRid#U$M1*Tg0 zYbMt#7aaZ0(2gFxPP`O+yAtekgd%rRRJX2Pc!f*=K#~kk&0+XzpDdzVT)*Qy`oGW@qqmZ1%T8i&Zu%gZ#t?tjyY8HQpM#%r9vB}_^4I2?ZOm|pd~!ASBFI>{JKjJ_Q@sqs15Lq|BeFV z4ID(TVi-t{|DsU^S`ACq#rV*(YN=Ax#l4cPYF0QJJH@DnTsSDS$+R3=c7kYZH!$~{ z5aeKRT?H9pmItJ|(K`Objh|{$#1Z0|SOl43v!e9=FAOkm{FIK&GxA8Gp-a4GWtN37 zrdFfeeX*iH#C3198#OYo9gzx2A~?#TvfkR6-?rD;V=&;6)uW@cK=@Ko^h!LESMyRK z9xT{^2^EN&ZB24FLAh7j4Bq(|;AtIj(ZoCIZo$a&MwHUm-Ko&em2F{vPmx}V!Cx0) z0e4!A+qt4Mq}Fv}f$R)D>*8B1TU}%`0QJyN$I{8yjIIVqgMf(Nix0?q;xHWZ@?J~b3k3kyL;K2r()Qsm$i_AoAtgLA7!9~|S~oE4)D5nrt; zDt=L<(F`j+iOW{mUO1}Y@=POgd?P0HQ8`3#4)vQDIVATYN;j7-^q0C#KmZXARc>Hn zjsvrKTZ4hjsBUTB56$y|7%_~KDszyJU- zMr#zz)YkN(FIXA?E;I>mcb<(JaCg}T#0>KxCKEx2JfK%*_+_ukf<@OH>w5)P*^hJ|Q3&3el`Q)`0RQMBIRJB1!9 zQAbPA?nf&}#|sl&PlAqkkgLG(%-)q)52USDjuOsSf~4JcPcu@P%VWTRB#+c<&p4;7 zY20budEKB)E_2Usi9Mh>At?>!?UyXK6&?O*mRTMqB zKZxoP9P!AYp&Uw6H>6ahGma1@aaj;@&Ihe8Ox5Y>O8OGcX^s(EFZ`Wpa-Ac0rDPc& zqbj7x{TW>rO!Q?`+5cFf$=2l0W?ZAl{aH}}O**ow0*}>|(iCp2tR!yiteB(pEHF~wvt8DvC zxmLw@W<1c#UCoWt8(cOWxcEms8{BFCIV&(82E(P`1_td>njLc&7RwoDIKcBqy+_9M z49gk{-CaM<7uf$ooCd_JqL#!_{N-U5cAJSW5rj zD|(+KaAD2D;XHQ>RiEMNGyHBQt-602t;G#hjr!FTBUBN~LxZ=%G{p&!W&bnC^XzXZ zxV?sUJT*-Z&CG~*)1&~TVaDJW_-s%^oDf->ZjBN$Llwy>^~nkh@Egi^)majXIv(^4E5PmZzf^8Gf}bT$*RzmEfuqsk1vMh0A%?3+w}bw#?ZCL>;ihM-}!cYZy&Mc zee|Auumv^-*Ur`P{et@NN{JKkQhYplj*RfDQwDoj6IaF@G!G?Uk>H9~Pm$4KF}+ZXo0mZic??!7l8Gsa7OJ&b`L z!%S?Tc|lXU)yf90G6{TxVRY);SYxRd)*!UxcBctL7EAa+dh%afI`M;gg~!41SHIw; zW}FqbCAsa3cpTwk>?sV?9qK}?RE0$d`RqXrZts1ucL&*61W6(g9x%Ld-by0UsB=sY zrWO%nhX{2s=MC864K0GE!CuTMDXB({=oro^j4{VaLbE?Gql5cWg>)>-lN4r-R70$A zSaLeAl*e(;-4d8ftUd(eQTRXs)J(yF_8TuOg)9*%190i|bR;rOjHnpQYz5)*+98MF zT=uK^XBL0Xb9?Lv;31*qN)GV5YmBKrnCp_*lskY8>=51>8M-H09g?F0)i)}{db)uN zXorEM9fyU854fV}q6keZC(MIF0{4xF1*OwD52Rn-k&6PEajNYT4nGCKG#}Vzu>n}# zSW?aPm;_jkTv0~+fHci<*!lj5Jny+hAKgM04KKouQr43aXzc)k<7r$ReFQKVZmZL? zL=tAjseuA`1+uj!x;3gXEa|wRxYmf8fG+43IH>~;-f(r{;sI`*;2NH;e2FyhMNvuy z*}*>C1@JD(4{y~3)ZiCEHpN47S~Pn1pXMqKRS==efura(lOc8dj^1&wZAl#TF>lAv z0~0R-MYt%2+?M0?2p&?W$Q;57q4guh1Ui5ceX1|95@k1X3jES8!3$sFYdr$>!o5~j z0Blh}(AL|~rAcproT>pKg>j*Q(AO=IUZdgeNV5r8vdA8pg~tX(TSwObjQL=4w+gLa z`Yd91;tVOC*NOmIF?Zwuy1;C_5@nwT?PE;Dr7{e6$ebNa4Z_3`@#t2l273=BaI!m* z$=L0@3F1`*mJZuud*h3V)9o%=s+}$kNh+~eeJG3*CNivK00c-xcYA~eUF)1mYd%!_P>pPY1CYm6ic+~u|*&Oa02>YBYdZ5kL(nyxlsoP6F5 zL#lfE++j@$jb)xJ$r!@*<J zJ%WmIlcdLr*8_+MBv_ZJ8}vVhfDoHwjuVPe<=W^Sf+GU)l@(Z@C!AM}ZDfR+Y#tyY zDj_taI2VG=Tc7GQN@84^=r%3_J2llofM+P=xQo7OWX?c0LM)hKy$iugl@0ZQRi(WQ zu)T%)Ioe=;4RtJ?=&eUCkbN_B>a&j!P9z%NOcT!48L0w(AR6J=6i1~##WXVrP)u^c zJ4Zaz*qbKAx&w2LO-w{g5KK*y_z=?9*a*d>+wM(mY=U6$Kda3xkmc1ou+Uf>0@~rs z5|YQgktn&LzY+t*iY7(|-j5QhNBi@z&XJV zM`mCrl1TV>Lu_RHv?g;~XN2@68!^n4Sb&$>6)P$Z3~qqGbgLNjCkc!t7@X7q3i{nx z{wM6Je}BPIeri>Yxc-{6c8~D$Z`yWYNsN0X5QH7!-4aYffZ0BFN+1#8N@0OdT7l;s zJ|z&uBn$OSDA_wLDg%eK8W`VzPjZRK;e zMY(|T@Jlg4fTw|Myi`nbR+BhXWTe~By5o^@LK@d~0OOQ$+9L%+X$DBjSxrJ5U2wYn zr*FH3PADcB#wfM$NIAhlP4GxB+$#Y{j;AAXh5tE(AQVF3wehq5UjnAVaFZ;H@B^eL zkE9d=$RQ8GX)|$j@*1gHP^%4q!5c%?cJ3@ad;~HaPBFuH)AD^hD}o_pQ3|#WCsD14 zaj<*e4#ArzcBT)cG}9O~l?YXW#ladmrjRZYd>k|jg!N59`E}2T!mOT2aBVISXS2lzhfA^8fiJtX(qdowMrhrxC=FRF%Ms2pl~mUvk?|s# zT0j z%b~Xf=-=od%h_wGkl+i}antV_4Q3qDMU^Exd!v^iQsP(dP_txF3bEsI??x;1L~GX% zI)W4=dGI~p|J3)-6e^PLcVDQw1|hUQhSqW$pOTNJCx#z?M=9Y|9%x^j0Io?_!_R z;S$FqIWV`&y}oa2vh=}XcNl-3*~1fKOSlqcZ)#%d!BX4pH4-`C${+<=7p%zSfE%+M zcx@1apaV{v;&5xMILJZU0VT%wt};l$+5t8;ImpToHO$H&g`f=FoDh=HHKa57&+tVu zp+`szoC3LfS=2--w~tme%FTwtjFZe3(M43686+9Y3||QL-4q2VvseYDTvNf+DR(2i zMOKU$&O?sGZ~rbFDN_HcJBQe>QanZ$>RAbXow@G2X9Zt~|DPI;uZ!ocNvFztwBzIS zKg5&muhP9@C)>Gte){(>QN#By#{nU|j(eA_K=RRpUx=N+ca(B8)FJ5iDx!7wNQP+! zu-nb)j2=5>?WJOCaj?TQ;`WIyveL>RG`E&84sMGp3GCp637it54tb#Thw#k8GeU@` zY%~{1q=N)6Iwh6V5__fO2)3_uf?z8gaB~IVBqoIjI8S_pyjzhLwJ=SRA>ehox=7?c zGzr4;lO;za=0nC#LRA}+Xd>cm$xDQ)@>2F;A!JNM;SvX10xzVz@!q1GC6ZBL^C_rv z&bpd~JnN~bQ~wkW|5F(Ir$ET_zBOJ{?T~lf1$Eq6R;`eCT?KXCSy!ci^Uo)b+Z7dh ze)gEeoCwQUmKs2tka?n(TUb=HMCrH_6D&EQt#qmm7duLmOgsm`Nk){x^X_KY;|?cO z;EV!w*b)uKp+oLQ+6(iz6V7AK*)e!5)h=-k;ZA!9Wgg*TvT4e^<8NvMltt?LkR*wM zyasabXT9&vdGBsy34y!`WU@p63IOu5m4-h!+(68z-_b?3ZSC*difZOM-UFJKh-^29y#P5{wh1!HpAQJlvJ6-L0X>A1+#&> zh7^P<`~*=t+-$vsQ9|8qodKY9J)ua!B-tw{k|$V(UM5>0@vfd1*vT>ht9(wL0#Qn? z?u+GDeRRztzVfA6_8j1M&>R;Jo)v5c_S?a6`jeB-=0em#@P|f`IRc9jXfIz_@7;X0 zrk}cK{_k8N+`Y6rn8$ARTGJez2A?yhy-{3#F6W7>z1nP7H_@NO@y_@2g!OMt*6aJI zi|M>8c`r8KWz4LoDpN7JD6Z5H+7_u}dWH3&y z;SL`1<`9j(s|ov-eRF@>enIXp`6H;G;Gc=WSv}?wm9+DIV2ML7G3Eik4H$pVytmBf zjPW=7XXo*}Omk>Cg(pUPuPZU$u-CeoI^JMuj$o{=cBu_TeOBI!N$oH-b_P~xpg5fkZW-I?%A#vEx zy-PluQo;@nl278+(Y;$-?+~>) zbB<@a={j?U-^u(rzuHSW$;5o@l(zzN&i9sy-Hcwb#RY=lMI5Qbi~P+F(ZeW+V2(i@ zT^I1Z%e-=(uw0Jn5&4(9NsIYpGv`E3IjaS5Fr*onqRCW7?P zRSNwAulxf}0F0xn4*?=6^aE3W_=pwE^MT=oOmCyLRz2Gc&(oL z%Ih;|bFGeaK5%B#S`_9>mU&yx%t-QLzS+Ceqau})>_fzF2j&2MLHg`dx0yj)6wW@G zM%|bX5uMZl5*%fIcfhCK$>0)maOE8Ps|3{;=QZ}LPO?MmK-nFm9|2d$#p1@wD4^i0 z$ic1-`#Eng8Aubg`-KqCc+#iQ@g`6v8>@+KIRQs+y|Q;stX~K2gOeQYWudKhe1F#k8MDB9$rOZoQ%p+_@hpsmOl40zBGYy}-tD zv-SejkGD;i@kaL*OQ&<1g@pUt)#{(vD_Z$$rw-1uPd70fI#6xstypWsBf2sP8HttR z@1jfBFPLGd}eS=PBo^K(~BscoUGI2Y|8~8-=2}zJ~5z^YwV_Dr|)k z9uuQ_SlMgEmbzNn2egr%}L|XHB&Mr__^y^#KOfp zV@J9g+nKH&N->=0+%;3DoL(G(ASqWLZX;%ewPW)dFgvYQ3@!c}ZuJqv5n@YYAP-NNRaI*hapf>Xa988P_O)v4c(Q(B6* zn`?lf5}`wap@oEa3XA0%Vo~iLn|3b6r|ZIFWC&89Ik-n&g4G|u-V~uxXgV{~gZ+;N zfoSfp^V)9M{Z#Z|NQCx6RE2Vk_QT7B_t+BDTo#hewFimZv#SBD+P8%*q7aT#k`Nv? zo?@J5&(T2G0$XAt<%t!%8Jz=Mb+wz+l4vns=pWrwqzs%3Brwh1JZfFMEPAYTGo&-Z zOK8QgGXPU2zn#ud2KY&I*(FdzJgf+!`efUYNos9tv5at%7%=)lAtRk8{;ZM!Zutiw5qkxa47+%8q09_Qe`7RnXO$o%{GB zr|>Xh%54h8eoB~-o14ZMSdw$<>e>Nx+!51+6GMZ5oHk*Z*8};!*qYp3=#LNy8dBW= zRI!l5MuaK=c#AE@m{Q;m*iTGQalbe;>%JQUUzb~>XDGf&-y37c#R9>cycS6rJ8hZ| zR%u=QP6>(#I|>taqLNkW^pUcZppUQ!ORywmgm`|MMoEg+a`T-M6hR>s8YL(#MOkJB zP&Vg_sElBr=*j>A57|Q5q0(^5mCUg58&_9)wED?ONrxMhN3Y9e3;Yp>GHwsH3prx%UBXn)#c85>591+%j8sRM`)6 z0+<|L5kKuLjAj3`W8&|<6A>1y*8cfx2}KKUx#3g<>rxt19kX7vg+P#@PAPx)b~`Yu z0bpd{*pES$X~iuftcDvHmgH6WfWy0f@(tse?Ol}^ONIdLA8;9`VX@TY4j!pNN2uVDh&XVav_x_!Ehig zm8J)247>%E=GTHsIY2bB%#;^6FJPYnoxsIJ^*Mp!_SXK16yJI!!T4kSV@Gh;1vVf8P``1$ zE(4hY0zzTTnOH#nWS7S$H>bX8M1H^`3hcQqes%DS9~dqHFeMvmscEK635}8eKCq~y zLZLE`ToxRCaMs3^is1}Uwyd?;`YoD80OOo_LgaX8J^G2_1!*+!^lT^kKv3;Idb&*)He5(dBjp2WkRUJhJ z>mb-SDvd=b-NiKoIMx718k8z-6B4pnC>+l*huDs) zr~j>&6h6AA&&kwPT-h3*(nNgjV`gd*-co5k7tId-2!=y~xQOU=_%{pl@8Nd1JFQL8 z8F9{z^ChFxc|E1nVk@VcP+}~nph$7=$VZwQuI3~0_W1~5?*(kWiV5cZCULBG9}bDUh2swp>>K#+hbmLdgQG472IT$^Wxrj!q<+jLbGw(|h9Q>2 zAIyF5A5ZSPyPykZUlt~VXPz(Se)!KPx7|I^CG*;sqgJRh#=AKH{`0vlPk(e7eutX3 z-|dSpSO4AFuP%enM)_aixww8Rn93PnR|)p<=kai-ADuCRB}-o%fHkTMCDGGvUtdf- zj15=aQyLcPEiKZV%9tMM0}EM3`-I5SkZ`I4CD4n_O-kV2px)aYd@emleh=_qY$N{u z{@ULU|FVxGZ_MzhllZ^bzUXtFqt0vF_?(?YjmX5}jWuML#rr@OC-mN@voS9`z?=EC zM+=PUwF}SOeqX=R^0cuXxYMPx&D#Z*NVnqt7b{yB9lr@EUrW=Mfu75Z;NL$9As*1j zrLS%OzQ#+u&1Ikb{p0~Su-=%=?3F(o?$IJ9WIZASH9RXLGr%o=k7NKq$POna)k!?%D8De>)|* zd#1ac`A8VcR{ioealI;WD))wx4wK~U zbY`BtFQ+F^YTmf%!E$sMv^Q%w9qGYD$OvEV z!HjoR)P8n@xSTI@W?n_uG<>n6Qz?b7bS)4X=hvV zxXztvh8915LYq5nl%Di>4koYBo{kaKxLS~Dxou%_*>ezF}(ww$J-9|hE4CEcs^ zxf1}6=wd^EVO3l+qd~zfSZUdy@Lwr1ZZwsI1yOD*Jy&b_02aui@p>j^<{elrqBgi( z$l{og;r#?Dhw5gY`>YfnTWWV)@gOEUFQ+Ext;wBXFu3y0Diz}|?6t6#6-!l)bGjzf zFksE%&>vcIFMfD$1M1ucE9^}(Z|p!r_V2N#%6nK4fc1#*diz|zL4S6i!T}MusFb>k zLhSOR)|`Uvl4eHSs9P?1>hZL#>kV0d>4wX$*T;+g6l8nQL!XeHa)I~g?g6D(gZ3W* z$CbfqQ@RbE#APB$r?Ao2W!=>b<^1R$_clR2z1VIyem^FXAxeN~hH_wNA;|4DW^pqp zl$a=hfB;j{2;Pa|#Tdbv3n23&P)RJnz09c-1|F!a_Q-`BCnA8NX62IU54Vy*bgv+h z9y~h)uaMFNhbNCF@itFi2PSNatpXwm{4gkne9F`1>Sz*Eh}h&#>=9ld3sEB;mj?)^ z5wy1kebtteU~o$7Y9F;E&r&z&%=bO}Fx3A(Vj~Rnv5fFB^5qGN`z7dWV-lOA$=p&Z z`H}z$O?7|DVH?jt)t^T}p_u}2(F5rxRb66`0)LSiScPB%pnvjj5=}!m$Z{4r5oTp=qDQU| zXaAU4T@G*#o$jFlujv zYP5eFum+)$PT`nj~w%LZw41h~hv|Y)pgm6fDu0-4pt6Ba*T^yJgU| z6X6t8NnlimnE{f}&iz8z)t6pYrf5@0Z2ttmItC*I@ZALBY>x-!kH#g!wj|5-7UBy@UQ z=mub=w9^*=`wLM)bO^vp(X5Xcw~yaIRM6OcrS)d??}8{~sjrM;`Yb_v5pQC2RB>d% zJgq($f;Wa{h$k+gT}HPS6P)_7G}!s0&X_9@LB<-Kq;fEkMBH;ccXf11%Brdf>ZT=+ ztz$gJGytgGhR8%%HN88b=eB6V4W`j0U8JvDBx1*`Fpqkjv-eGQ<~O00CRebJ5rO~} zX$KkEXShGYAiC#14X7ge1akcr^$K`B)8TFe%cxGfQlp6*tq)RelrJ5y5l`p&#__MJ z4B8m*iPsiMiQu}tlkm|XDp&W^=GEW=X>MM;?znN-d(M?xCdk^2p%MKWY?$JBos*v5 zHVgx67P|G$0MGO^hTOHpeYOZWY>+VM?(xI02a@$_;&F$)CObw^Ms59lntYeGswVhV z*drb1xao$$GcMF>1 zOfEMn!s*gtP81r$_`6){^Q`YiMQQ=>iaS-9sBN^}%9Y6Q-8oms8fPiI8T(UCWq>?e zB^T}>T^NS)+qj9FyZbmzTCO$@Q$r#RPaIq(D7?a=eZ+5ui-+C7H>30hYlhAb<3aYc zNnD}P&}gho>ZH74LN5ET?Wb{EB4fSq4`V}vXV?77On5Iy&2L61BVMiJ#`zm;YRg8WL>Z09@K~WZ5=p716#}Ew4+q9B#>odJ+t72yX!`-tPt*PZ| zla>)%BsHapBjXdQhonx^hio1gNWEJ$^*Vr2O;qa{_q{LBw?e5y_bKIM5}q!Zkp*G_ zEg8`yMh>k`VGe?$G06?DuSFXK2|u)(*`kOQ_QWGW1n>M6lxx!o zjsZY#zZ@RU``vpDVwCPgiqMyw<=&$=5i4{Wt3x?#e=J3~hL?ujp%|e*9xL=MREu(m z?nI8*mjDgd6^|V|{qIUnpU8#cGSy12T z+Ygy2Urj-lIIR~WamoS0G-gRL%Up1DI&`f^Mc^YCD}(cxEl0q;@C^v5UW~v(OLUx6g5M-qjF@N^Csk+5uA}ogkMPkj+CwpF2`-3h^1=Wnj1MZ^+q5A zfs+YkgvZs4-tF?=23%6eHYbu-)-`|Aay5{)`W1n*bmVpQyB^s{5FvcI7>PW~b@IGl zKqMb;l@6%l6lAlA8ub;VD|ksLlJ_B?K5Tfq0M^WO?#e(XKZ0%I6k>u(icedLM&=jN zr1MKa?bO6@?#QD8DjI{l(91qYTNvdc^2wWWm9lRUmF5~si*x^RIIWKzin{|0846M2g- zsm99Z=`9hI!+%-|gGSU*@I6ha0IS$264raOSTT!NSIO(y*dVFdxLzQv^KQ0k8l$e9 z%NFR;DKm?Q^V}&?&EnNl^gRXB%E&dj`2ULFa|F%e;XZbXSFw3_7k)NEUnKY9hN?@# zt1ebdl6^%CMz1N3iy#jPr#e&+E$#O9BEkDSce2EF9iTo-r#e(JnFaQTKY3A^z#+mX zp0ukejw_K$-VbS!Tjtc2dW@Q)tIL)rCcd%qbtYKFojSVRdSks=&z#8+I1#M`3IzJU zQDrrGd#Z_m9uIs>7I7b|`*P)ZS07HS5W_IuA-~PioyvI7tagKFVeMZ<<~@|^R?g%0 z{+U6~=Kjj9?alG#*mh*Tsj%Pkd&`N{=WP8Yh^2Gp6e_z>7MB8G8qdq&ZuGncFHF^w z{b_QUZt(f4y6b~+qCV1g_q#f+3ij`N-TN6}N%R8l1#teeTtbsjXD$@B`169}|Lw`S zVLX>Ek0W*W8p)nh%Qd-5;>GBm0*Xwtq>T2FP(g+MVk|1-PPe4&1{{KEFs!_KUvXtT zvNg#nBfk+<*7atP+xXh$F$t%ZdYxnSl2XGcEmBW$S|uh^Nz@lsD#&|C9bG0-L84;5 zfkna?{5d%oS9}TmkQ$mQ&ir>!9nHRsh&S$YQb-{x^1^GxvoY!{y>rs2i)&gk!>&waNxZhU%QOP4q?o$r{$rFND9916Jr*RfLkLrSYsUO`N5}7;N z?oT+{iJ%5X&7R7Lacz z(ih;|efEO?E!~%=OR%wnrV8LYN<6yRd);6N7*e=7b>qHSEv#7pA`vy+GH$y?5JF-` zo7u(@0gB0+sLhZVL<$1o_|q$eu$Ez~zDPuna&#F7eg|>~KI?)I20`J-lUT~WgQN^a z5}XDcvLnXuKW6OS#XBSX7`S)##+7e>n7&m<9ySOelw4Z<;m}1p9nL!ENr!8khGWp? zBEN+2>A3{>C-CZX6V;Hl*R3QvfqAVKg8iulIC8AJI;XNTZKUe(;vhPFx}sxtq-#1P z`i-G$jqp$CEbP=F=JChj!H$v_{Bi#IQ7ubA@rh5hrX`6v=U;b6v+|DfLs2j?^9gB; z=M&bH4u>KcRnX}!tlatM;^;<)dpzMv>iX2!xe{UpROJLy;dn(gfT}RS0gbsjX!)Qi zlwlg@95kM`l?PFI(2RZ*pk(vI*a%9mIZd)Ch(s*+MI7pEoa&xZ#1a(kWjA&)$ z5X4~YhKNSylM%#m%?|*Haajm{@J>AcW0misAf)lWAQhKV;&x#=ex!K>pC2aI%pg7Y z((q+fIlvyIA2RF1@&})$F3=LtvhF4$1Vot_Hc~x0vnl6%)WtNzJE)2EjAME!jgel? zwo@Fdp?nBzlnVi?e|jkckyh$}s7Doro1m)7|x40K?N3IpnNZn)q--}t6s@1D)*rjM=Q9Ld7WohgU-gktJ!eX^pt zhd!_fx|uojogh@26jyojJ}Tb7K6cvIw>#%7p{qViSnJaaEYUahKN`>I&m0=Qm%`oZa7pqY+K-4;a!P(lVR z{OZEoSY|8mr8~O-2BLP!Q{I$6{J|a?V~IIuL^cncV491as-oAku^y?Bn2sGLa}vl>}8fzXkc5 zpt&PR!>C1GQR&#{Z4A)E1LPHnDJr5(DlQ`c1;_EMB~sGaWtH7klvwyuJe~&FUuR$RHgi5A{_<;;GVrGtD4*ppSQ!6aKq&d`m*jRa%eidhfD|{X;*EeJta;Mlt zB`zXs3xd#5RZ`c`OM>fp32sC7BJ?_M6Fjo2k_gUIL{djpN0JfN)psU_bSNpgy%NMT z;k=(`b}0cPaB5nQ+;&$~mw%=LYytS!GXdb6PQ=EL42MWyr6N#$)ZqyE z3b#uKzej?AXzd(h#mw`xZZ7`lrHC4rZC^%Oy)ucB1^wM}u@kSjFsth@5Nz+Q$!@dd}6HvMb$4}vtsdsLAI0a))Z0d% zTE>v+)6@9?AwJo2@b`=)f7s_HL_TOFiI;*|^bIr&0*tKF$pdqcwMk`;p;a(5L>P2S zQ%Z8F0emPus2#9M3Z+%)pf23KHU3)#2_GCGB#&Eq)B70XB7urz%6bN?So4l%S8ADL z@Te{o9E`TY9Y=nQQ7QuSUHWL5~`gOa8~roz3Ee3#=waM>)$J zkG5aifaQd$HP+Uqr#K z0pNO%V9CkAloTX^ODwyWNrjYY$E``w6{WImHdG!D76JoeUldR3QC;J{2vI?=>dg;x z0hbCVfEM?Ym^-g*(sQBi@Po7b%D51Ian{JlF7>N*-;h@31$UcCc;3;L@N0L*kM^pa zYGV3l@4g{Zn``XU#NaBSWT-kviKIR^@H6X#<)pKNSEsq`+*A2=9>NmY#saFD?(Qhd zTPCVJ_fc2r^R%i~d)d?^lz~JrE+ruZs5)oqsW|5u%c*DSi}zQO_ssb-$;+-bK&Z6p zR+Kk=*x_co^|`zZtb_JhRSCro+V&4Fl@MXgTyPX18OKDVQu|FyG&kWh5Tl*8mtugE zHbH3GbbF2UO!ihBbiPmoFcl9aRND%j+;;1JTee-5hBbm=Y6-sA45FG=C(k!y2Q5Lt znQg_Q&wpBD6ha-MuQ5Mk+wIk8+bxdx{KWF#&khL-c&2Zqqa@Er!7LqGWcU+Fdd@^< z0>jsu2X!*%hO8B^rEsFvDZnUHxYe8^(yi&*&Xn0D9zrf?Uw8%eaITT?PF1mOg zOCBiS8%Sa0FFa;Awd0=QOjYM6N-)WLLe-D#yR zWithWl}y9dnuV31HtyZ2AZ*@~-kqKvqMNd0@)dEN&q1*8vWu9+N8{xfd9e}os;jn4 z`}rg4Bn#U|A_{H=kwikXdr!+?(W%<=KUoeu4S`PncXt|7K)USd_J4P$2Tkr<9kkER z6V`aOS~iYQSIR6`kzM~ZiHCRJE>zCo)s+_$F8hmPiTs2R_A|u4otvM*aW;jZ%Yas% zIgJ`7oY{nyh7Sy2vEZbDkc%)`s>(KnGyT*Sc!CMhMso&>EozcJt#T@AXmWMr5p;Ql z4UKgOst4=LG@%2n504TixE^662dIOZ}o8}-cOihZyc)7CM+QgPvn z8=ko3INF|J5{vD#7z0)_tBrF#F2(dD^Ydly47T+O`6dU|J-@qNYCGthKOkRTN&1-b z$sv$|EwG+fM5w3NCZ(p^GgggD$)hyUcovY09D97B;fgVJhIr8{>R;s?A&ldc6>!X% z{Gd6zC4YKduVIe)z8P^p)IifWAWHL@mbj)EAqxM^l0%@36CveIMJLXPU zj`DTYDdBgc%a3IW_s)KGVxXeofN>tYPja9^^~PLZ9ceh|h`pYSkGXOVf`+OdcrTSv zL1i)q!_v2px>OP;M1rXeIirSl>w_$@n%#>p&ZrKzxPdut^RjNisfiLgqw$7@a~-IJ zH(r!P37Mq|q(``-L48J!k3nT3knM)m=dZsl;tSz_D2N%HrV$%TzLyW~`T6`Ud1>_j zx+1HiBZxJ#Ql-}DKPERcjU-cFC)W;hGe=NciF3c>(9u7C*O?YcBvriiN6%uz zcmo#L^5H~_+l{U0H$5K7KY|B`HQ#Xsz-JGC$B3oD2jJ&E$8^|4>_;Ary(J8~i{A?d zy?S7Ug%tlr2Z)PnV~Vry^ZQF0M(pzi4CVhw&W@10q1RXNaQq|gNh&)^Tzho5XqZsf zM;8=r5G4HfEcxp#g7cdk=E>byh;_x@{{xQ|;Yl7C>Gk)fujsz7@2c2X;%OowV=&_~ ztmAiRh$Zh`O$@AersJf+(P8TEMaKc>@h%sS8h_sQ-7#l|{{7(O-?8!oe6UopiOZb= zEEp%ogzQAH4=)8vxYjTJyiN5%slDF3Au(;_hJhh5>|}&9&6MzdRvQ%aa5Ad3dd2Ph z1E)g6qA+=50B!X)@>nceT_zH#`SM>Y#v)kyH09s<3`K~>_O7ZdF=4EfABMI#HCp$& z;h0vXjh2xZHjcPkJmyU)hOM;W7&h6>GRC5s2<7zAn8(MyGfd{mREU)zu?D&4O9a`k z{VNx(*Zc*rEU{Ofj2nnU{R+jR8wf1@a>XK${Ra|AY+HrqaN!}bK;An0Y8I19tBoPC z1?)l)R-5LE$&EoV#nIOJdd24zclduK3qMs9;q`;ySdcs;>)?cQJKYYB!=Gk-ftDvk zqO_?G8w(waU@L52N$pVbf+Pk1IlMcFV9ZE3td{p$?o;sbxNu^zZ!QN59*Hq(NRIp? zO;9!TPyL|2`Zl?%-B*oQW3fRciPB%r26L0~EZ$U+d$Nlci7D1n+P+RhjRy#pp4~Ka z^g1+-J$nNxR;fp~ckloekGOabkRsR&?dZYm+tJH5jkj-20U_j}Ca~|(eP$$-&c0t3 z22t70IB!H*WRWLfT|4T#`UE1~J(ogN5|Ee+I-O%P9f75!M2pyA=>%lg5L{@kC>?qm z$V#tks@zz0NXE&(hzQ#14b8RR0k{AKaY>-jqT6}DG+N#WY*Q<-=J@q$pUT+QS+ZjP z{4Roi^bzVUZ+2aZ0?w7B0(>N6D<@sRy43`hVDNvulnY9oC*@G@=g&FCCTvRrCJtv% zx`B8??2x$+0j`=}AUL~-6wa4SU6uiV!KBH(5wGS-hu;SiMf=}_ zGPy{fqP9S@QVH-4PU@BpqDa?GCcqRqJAVo-&8Us~I?Ibg+L`G_Fuhu@X zmcynDyHX>)B3CCZgn837nm5G;P!Yk`Xu2qfyE;i)5&rJb={iEdnU9Z7TYfR{O9aVFM#$M#ASNqoZJq+&g>IP`iiB># zE&On{8iE#0xFc^F_{AJ7X6u#*#Ism-lQ5YrZXF)$t5U`m6AhHFxZ#2y72un`Daiwe ztNzg#pCO#Ppe04*B_{?bzM0U#0m4f}8`8ibqNFV1j5kgoQd-B3m!{E)MNG z;3dd)o7_XfQy#Mog^627Qc+1BD3JDop$Z;Kuu0Nsox*9ifq(Mqu<^+8)u$DQ^PJtk z50WczFa(b$ai4T6CBx0isep7-*R#Hs!EG$(sW3LDLb{t6k(^cOmLncZ&8Y|w;ni<< ziA^WqR}Ng{%gL@dN3-W#FW?%z0l##G(`gO&gk|hi<1$=lHJn}{aF{Zvh9uBvCr7Xa z?W^)qaItY|Jfa%~4`OGxX|>l{Hxm@5)c;wuu2pF?bkGlN^fiU5{YGAp(NpEL6{)gQ)5+av-c&){sbC)0{`XH#7?-dT>&+a!O7` z|L4a2=X8_aBMMI;MYIXU+~QR%n~SJK2YnN_GzjmI3&$?LY)lhkcU>ge`jCnN|11*o zRop9b50a5!iZ(8clBx%(u=tQW+B$=fjz^xn1Bn`qTnUN&V<^jKo~1N2Nwto^Ii;&3 z9y!11klOD%ri*`}v!-NB8+34;c2}?k*KsDD7#Y~oFV>E9;86278R^oSBBw`B<|%vl zQl|_R7<#bFx@3Y(Tyxf@RG0eCJK}L4zYqJ_XRTZf4}^0WtB67#H2Za_`*Z2(QPny? z6^sUfy+QE;Vsoz^hcj9Cug22xZXY4EP%D?w+uT6s>2>wmkOkJ>kcPAXIY!yF9PSa7 z;jj$rSBK2_ml*BRdFYk*9VFIJ&JYX=_f7B~bWww}dZ)B4RGvIi&xh*G$J}&zT%7m? zX*6`=U?m|>a_XnSxS#;5htgipEZ4d9&nkL~5%vAv))>c~5rI7G3qo9x1aGf3VuUjK z@Pt|wAd>u~6)8a`#*G<2*E86-(aPeX-6XqqCWUZO4u7_Qb*aU$u)FLx^X9>rMxjOY z49aD~^NSrve>e4~uR605fpY7VOHLT+l5mo-FJUvIC?ydLkf@Xh!8OU~tFrB0OfYC2M)3{88=nVk-q;5%V>rf*#5 z?GW7GEHT)}$)(kS@QJcm!dTElAQA~lV^jzd318Ktq)etA69-L%eI}%_85)jD!ao|* zk+GO;ucK0IASPr$2y7xS1#TMb;^4`Z$&`}WH8Sf`y$?H>cPw$ZL3;Fx8hCN6LuZHCLTKnNmDuVt_FW z;tGw@IZim}7y8N^CUMuLo-{K2dSHT)GeROs#WdU_(HoB8Xhk%wv$XaD9;WwbT4!dY zR=0}4yOV^=ekx#1C1oic#VOLX6MJ)3HZ=hwaa6L(B>}yJcrnhqP%Wm7n|!+BN)tR1 z3uMV4!}<&nOm#($0@xK^NVH<4jUR&&tfF$*8pHd^2rTZSw3IkJOUKR5R)bQ9mDZ(X z`GP^y$`^A+`S~Hh>eDfV2W^?ZyP`e8%nKdmzh>qR3zUIjO{+||S``G&ZLNdY6n5cI}ZvvIeOwLV3 zeyq0Wx;J?5Ndg?4&bsFylHGc_zK& z{+UUi3Mi!#UmblQvgj88B?${iCISS+&rywsfxfX$r-n$W-gFfIl!y}>!#p2Bhyit1 zm`-6Hqyss@G(_ZYEI-FP(*J3>>G`~?J=gsrTQFtotx{A$GZ zzzG*P?T8iiBtueh?&?;D57U6k8qO7d{28N=4-kI5XxU%Zt5rxNfI$Fav0g$G2QXhR z{h=Tf$v`|*4t+Qb2$kBlkK*QfadgY&*hufG(gYfcQ;br6OPCVqz4THMWvbyv9;FKy z1T>W9gu;(}Ve|wQqY$>sRIP0nI*x7a!?)%E5=B|90|H+OYiX%nNrKy9m|?ncflO2_ zpeTdCyCLnW4~-iJa7qC?*dZvrVL6{ox^~_*Fg(lK%sOi zp@ji~)}_Q2>@Pe6I)(v-5@ox`6zFueca1tSp>SkFieNxBk18x-3JaDAa`TGZ;Ghst zFj%Ff7FeL0hYfmc7~j6cZ$T9xmP(J}9-%=_GUHbCa>b_~qxl6j#%wc8H`=^FBAO9k zka1`FVsK{`{o@yw7;?-BHy^Kc^!T~&t}d-d3gUq+21KacA&aF(3h>d)0W5n6X)NiwcQL z&P(sLLh;2tbl#)_1yLl3RQdpE@T?yhEXyQ6x6!0(1V00=b5i)=fu}-=bXH(9nr#L6IK3bpq58Q!J8%@Csi+S2kcUn1HL-qOy8R zb28tI-!X_`6ag`UQouhThg1Yb2+Dw%kviO&RQZx5rNB;9jJOGjkrx4EnHg~72^mP^ z=ff=m)CJ|ECXwZT0Cwe7K#vxb3JWz4D`a3D z#N-^@yW&N&*zNuRI6%k0-49|D8u`RSv7&lo`dG6R+~4rQK^c+VjyL(5df(<1N}hAI zl;jGn$|DJzm>m~UeIaPR#ngJCf7QT2r|m22AO4ACs)`DTR8HmuMBWiT1sQH|km0nQ zuuP_lrc2&M?IGS>%|u3^XN6RvU(;4rzxc2_nxqB!!_w!7#|Udqv)ensou}jZ1GM=T z#PDA#mWlDdRqX#$&Tl0_yCVje?kiL-H~2tY?KG`^h@OZv6(ojd){xHCgW zRCIj1^wilep4rkn+n02Bdh3pj@H|VtMR?k)A9QqihE=uI5K<7|Kz~`s6B6? zwWG#lt2uG)%hme_ohBPBd%cMDli=keiq7>%X!4>>3Me+Y$V9JHGKVg7F+}v=TJ^sWxid2VKc*P( z_z%VS%|{d^`v_Fskqwp!#=fNxr> znAI7F_s*CVRy)G){UAEQp-(&(EUGu6p(-5&4@7)$S;wqb;)!1-zPEsRv@aELCA}l8 z;z5d?7#S8>_`!_af~CJkXO$T-pJ|Daw}DJqVF8g%blCylx-agTZK-X;clglc1pX%= z9dj*4w;A%z+M>3Mi)bf)rr$j6t{&Wu_k>lGU!W-WMM6mhh%y}tv~>_7v+j-imu$o5B|VmuFI9)wio0fqa35d`HplO@wm z#LPp!F`X0`%lQQRmQ&_rLJ;NhcUG#ZliBt#i~iDaaiyCISzWG$f;O(n-< zH$H!!oApjbNUZl>J5t-c?YdgnwVhb8J8FX`Cc;?Q&`5wyh>>8gbU(Sd-~OE3Y<0=! z^&Smn6lo?kObG%@HsRf!+r;ozcSRa_X>4ugt|(CVY%U_R9?_|yD~I{nda zT>AdAGv#YBb;^@TGoEBZLLP{+99B&clcofFlb@p^?b;lDSrLe3$$nGN(;WZ01o#;M zr-Y1KIP^^DD}uj-XjNL|5)-#XzAQw3PLfl&V5Omydrz?j=K%c@9Zq0Eu~wkS~C(F@VM90o-a4?Pd`VS1&AHo*xEgUjW@%h}~HP z?p28Hb!7W2sQ)bN4->$w!+>ySfS|*OA#DGJ*AC`y_x_}YffD!)SFxGY74hAX1Xop$^&lZYl#~#|su7K1@nBv|1bZ=P322r|PFWy}#LKOcn55vj}(%lwXF?g)4GfJwLStTRliGphfdG+0#vbu&@lw324hn1L^ zS~s(H<)ow>+Sur^Fx76i_sG`@O*gNKuT@2@%SzZK#MrN$Xs54B4v*WP!fT9$zU;5T z#2Ou?pYDi1zqF#=#1p=lEm<{8TufYqGp59Hw9j~O>4MB3sov$l>+wrYT$&lx*bUAU zGv$PjxW6%&N)5J7MHi05Rw5meOFNTlSZ%d~EX_dab($R78+2|#753=VTP)6HKZrh# zvMzmQ3tJPfDXQT^$gTdBlSvoV06R2cu zP#J0&W?RyiB%ZQqid~zESv51um0pr1J0nDzUY=^6iASSJL0UbN6d$CJFB_nnz&j$? z6%9>vx_PDYtm!PiVMNO2MGWA2Y^r)89#>(Zlu|B@ z`pM`_#H6$YV}eqt(RPJh*QYsQQ#En$;rbU`OYCln5mY=hlsp5z%3^2Wu`R4;scTt1 z;q5cn3?}(nj|pbutAB7nw~n2bu8kc1I=Xi+rLXkykh;hTab>~2Xu*VY_3X#lF<@ZX z*kHq=c!CA(?NG37rVYMhcbF~HK5S+eJU?UT=FeOb=@v{og=$=0NU47L%T)t}Pzv7t z1?u*US5TV|sd_yIXmo~LxBJ!Kx$O?Ew+C&v2XwcG*xTd5-_hV7aPbbjzXR|eknw~= zAm#5-ka7>qzk^Y?!)n(5*uKNIp0sYqZ8?Lt9>v+r<-E&pXX36Wrhb!gH$<&eAGEbY zyPw!?=Xg8F-;VTr*xnBLcHqCA0bWnj@g(dW2wqPHdqTjU81iI`*JH;YEAspqyVt-Q zJKD(EGlkFXNA^ULKc&2$P~M0xdvM7e*u5TN_C%XA(|xcG4 zq(3!)J5bOYH0)m9)WWgi_p(zsMk#ThZ!Jo^eE)3zbBzquAe!r?)n#iMTWGh@E!!*g zH{iYAz_owyy<#qgpy48b{>ZHP` zoJOseiq}szTPdrYK0+P)3>;-vUCOznR!N?+-2Elv^uj8h`7Kyf&5yLTs>W6&IxwiV zr1-g9@Byj&kt@_bG?$n(`P6oY#CnzNa;k3v|xP>LzdEQPWv2D|k(q6$JA0hN1K z-&cEl{$n_d>}!~t1nTp#a9imlt#DYNr5L@@cWH@NSx;t1QigGo_l0tVa|UWjmr(gE z9V6*5cRwM6{x~h=6phL{Dj9frP7Q*yDJi+kj7m>*Wv%@A@{Nf)rN+_!IX1DnIcrTV zLx)=bs#dSY9|&xjJMO<3dXE2Q=>Ol6Qs=09dZ3K7-rZLI!82zN3KPsI=mHjkXru>I zL;yiVdKDc^;+1)gl~I!*!-mu(%cL>MAxSnNgC>MDAtZzj!POkrQ531o_visy`$Ac; zc0Kp-u^)y2v zOepH#r;s2>5~;geOP|f+b*~-b*48PV%V2ai)$q^}3CQy=-udo$LfiBl+xTHJeoGU> z-bc4Gr|%W94jLL1W+_PgoA~>;#{V*BC&JrJ?Jf65fKNU$PAP;rQA~&_@;mI0)Q0jB z1-KR03lnRwQ{iE`+9ic+j8)NQ1zctFXV_<&7l_HeY(1zAC?f&daGp z+dla{+c)($%5I?hf%(0&2RvT@{6X72;x`;$*xnHSe&2pPf-oN30J%cI&^`IPJ&EWX zA!ZUW_A?Mx>?nbDv4C+RQmin2;e!R-pXk$q4+}u82tC0#3q&teTCuuGVZr@&=YF>8Nl}cG{gh#h^Un zkRlfY0~w|AP3~QnsG+w|S*=dy765*7fw+bN@Sw?@X%e02&!7;RJ081+4>V)2yscRw3PSs@nav7 zyAl*L3sT)oQt;-=;^~wW2)CAcTT;DvBRNxZ^vX$TD4LFH#rSEV+O*o4@wsvNiJ8kx zyXVoOklqK!t%X@%L_sZADXRlQU$;2E^rf?lCz#4niR3=BJH1$I@%fLm(ZfGht(~jO z3!ez`XXLSU9C|9tDb!lGMmu^nsW{vk*;o~e7c2wz^^krQid=ogwa=C9){E;^72;7U zqlMkAI;%A2%`RVpzG|t-e8l9e?5-{KHr=n4d%!5(Og-His){P}1_&iY%`Uo~gf+X6 z+%Qw4S)?8?y^lE#pes`MIDS?i4TFQ9-H=Y-0DEeO6^brCT3VfQIcZ7BZF$siQ7j^r zXIwS<$IBP54CyB^Ow2TxA?}I>J@rV0|K#Ft~ji85BJ(4p4aT;=jg> zZNkZCJZLC5ed`~ER@e?y4c%gN;(>hDlx4$c^7GJdq_CR?wg%s}u5u(zO<>+g(ZGPY_RH3ZLmG;|&d zGK}TJ4YnwoY~Qz#rX%3WeeJ1N?-#yJPAm;^YAke!m7D8KP|oOAaBn-SFC}= z?o%nvz$S)USXob#v|O!4-__(K%9>a@e*!U;XyuAe;=+m#r?r)KWscC{;M!FooGgn- zkh=;F{H2&c*q13P`X2-Fcs2=e*_JY=l9JF%B#Dm|D=BoN{K>L%OQxj8k@zFdP@4Ca z6GtBOp|qP_oYh3D^@wrl5ZI%m;Ue{THW&muW_5T{}XK813k)71f zdL5U?&si(5vZ}amvzw%|H}$>qW(Ovxz&{L#4+@f`Q~Nr*oP5GjvdzD>=IM4X(Ap%^ zQ~%}aO8wg#`c3XOEb0MDfgKJ`%7Gz2K=V4V3lu&E@sRC6DC9)iL#1~|g)3LeJ6P1( z$dTMvQ_Y&%yvKq0?nbSBr_?&A$VzQyn81C7R?oetc~eWx`(RD>Z3i(6$$md->|vO! zBd0Z-of%#R$hmWbY2=~|y==s7SlREx^Ao-_Gn(9!&Ag**HPQ7gO~XjONos}56~Uct zB5#~EKTL0%RF`bZx6(T*+8V5?vS)~ri_bXHwGvdtpqpWuGdY_SJD&BvA}(g~(!sgG zd3iXPVm|Z5wH2b?GIc_>WeqruZ!2$x^akQV>yGJY!)W{zqdo^)qvrMb<=w#!?&jXc z;_eRK?BT@buTr0Kr;LWfl$O%STDqBp^%CG&bbok9BDeO&Uau++wMADcQZvEVsNb9A zw>4A4Sk6t)ubnsd+bY3@BmH+nQ(N3#J-ameW^w!^(hL3qpR9pbnD2}KAUi!W&qdCs zV^-b*OOf{Zx6~_jKeWfi+;hY8ir;85YXGY+qQ1oK32k}@WgoRN2NMY$w}sp+OTPGS zOYYY`bWRWVToxfY@@05y7|V#dA<{t9!caPfbQIx9B%mQ^UBZSqmz)iu3j*EfpYi9q zV7E}WXt!`RSt%ktvfQwW5%UAkfj~8>8j^BNJ4n3z8sIUhjH@7RZ*( z(!2*~L*zo67f#Z*u~9f(5-VMH|6d0x@l68%jzg?TBLSc74)n9~$l% z!LFU2Tr?Gu+~b|URdl@3*NH~q`!|riQt#HP4tIXj{oJ(Zm;2dm1V#~kI>hQr#j#jAQ)BS!I9>fwW)RY^-}*Wy<;%qs2R0TjM2^E zXmg>~q`fH96V`4V4ED)k;oY(AVP_lq1I|J97h_WoRs3B;ZhwL}h+_NH#>tx%*F}qLfO;Pf(E2BYDuHK%uR+-EJWu; z(Qh*-pvu(;DBZJ9Z!*P*Qv=dQUK@v&OiA%yxE7Mr5)!ed>QJ-N_25#hrkGGFC!(Nf zIBabKb@a!%1GJ0Vxt4rlav*d+<#Ivjk8Y|vp`o%J$Tn)E?-MBGWQCg!?R6L;r z*0QZ=j9Ssdz_({vohi2+kR@ZP-?7$AhBtU(4Yy8&N-WS_x8V~uy{%fTp$!)@2?svc z5bs3MkE~$uk#HPG4>6$fK;JqtROZY;ZznE1r>h;M@pKMsLh^^;?~?4ELtch-5qvY7 zMBWs&7X!^OcXmW0^BP+c$(oODaz>7;-by|{(YK*lrUR~IZj?+l)L@D)MZXzLxxk0zJ`a;y!`BJ zBu_ahne|EtSvqFh zbgNPKP{ub$)*kUrHHdeTY=UWeM8vA{K;n0kD70ZYJ~_dJ0qp?w^v7qdtZM96vY@2o zG8w1FeEF^$c8u1zcoBhHkia1Wi!?kWKinIhD^68oCXseJwsL~K5aEgz?TWP_=N^}P zl9G!p^r7UZO0+7BQYj$%o1iU@iXuwzLJT$p>}`I?9K32}UL+X@%bgbRRI^cfJSU0r?A{ zAM79W7jQ4Yet`HM_n(0uIDdeDAU+@%4+fBY06^G){Qlm)xkQ9*M9|TG^gNtgQ1XGa z15`HD%>m0fK-p0G0SpK7Y*3Rw;e`FriUX`m(5yqvdb^u|{5fb(0sJ;F>pc3WpnpRq z=pX?GjIaR(Oz?pNeN2EB24qn#;cO%WB-s#31{8cu!g(+Qu-PC@2JA~8;-!xU0JI?{ z4SvBgYdzYZ0?^d~uXOqNJOmdkmZ4n|ffk!J~R;x4&Y2Uk92V7nnf5 zc-?S&;lcOx_rM;&eiUan4;UwOcL^NwFS+xRs}^*(5>`(Gf|Rq##lC2J*vn+L@J_6@ zs?bH~oDi=;KRK8l&t*Td@O6$toO-3hMNZV*pDR5lfI#C1hoTCD;X0~h(aNmtIGTh-@RwMybtXY#FE+ z(-dI(NtAdT<0$cZhzn@+4HSDU!zrdYX^#!fzb>&4VsXnvJaPGdlN51huOp)M6X^zD zqtotTx1qEWzHXvkcBo$polDeNhO| zY<|l(@^rg)Tcg*4%YC{J!f}vLhtS9Cni`+tqt zx+{4~2#GnFnInfZzsV;zqmoX$X7GR-=oFjSlVTUZ@I0hxfwZtcZ8T>VCJ%ul zFEA}FCv2p?2aZWnap+?cY&=HBc099Kd<5D>x!pft^zJx(%93L##QtRbKrUR?7e~Rt zA!XfvqGYFCN9xJExsQ%e#I{J3Ii?jB9uYc6QCwKpt7Si=d@qPeG}GyJH3a z6cc&3?cC=LI(Z>JH}A5aHbX~i(~xwRm-73w>l`BUt0~9ZvM0_a1b9Csvue*5DVFss zj3ftfm4fa3s%{#U?uvA?X}*x7VC?ecjcBn>>rVktHGc(zCjZihvBYdl^0x-onjrwt zCt35N4n29}3xeN+tK_0@Bt6L!8@&XAf9RU*siV9${MN5J%p-O={DOu~LWE#q&z{a2R*CkI0o{hR+EZ%-*v*oH87m1gLjfjS4w=Ny#+cp8iKh~wGC2Om^fTSJQV9l-=lBmhd;`hy6Tpm2+Fpk2Tl!4N_m1k8|u2oaPxi~x%wD8QDGtU%J z?vba~J2U+~5&Z*GU3~^=_oQ|6BbWU>nf(LX-96pi10Vi9AwDM$c^A1~k{tOz!#N{l zRi~0o*AsYcZ!=q1mS;w6`gD$HxVKQTWn{NApGz|gyK<3O3{6KxyUWFVTc3b)SstPj+Y2gq|->uv!%cqHepEXSk8tLQSxoz~5({?c-Z2Y8?XPNg-vM-8R$pBel{< zXCk2-;UwZCBv@f1SYz*<SUl>kdd99EaZ#IPl6TULcE*=1 z$(CALT2@|Ol|@INn#!`4OaE+^7vVV6`_EMoCh?E+{R3)WB%Nai10ebMpv! zMTl5O&@2P#7ExvvacCBiY8J6<7SV3^0^TkGk$U%{ z_U{Auz6b%m=i$E)%?JB?M|%!2{SqXEm__%jVn^6M(RU1B#*A=BjDX0DkdzrQloFwk zmKjl&8F82rWB*y)ogUDc9`f;t2OSq6^XnI)88o61L`yTmOfv>mGeT`l4A!Y0#i}0R zsvZNg878wCMY9=k%Sa5zU60gVkL6vD_Fa$n!RZ&o88k%Mhlo4Gh&uw2J4BHyLO^$f zOm_qwp%_rr2}WIW1ZLNdKK%Q>m)UY=a3B~=w=GO?q?b)uP)Vn}Ig44mrF zBl*`Yk6*CwcEz(P;`p!OxD+#e_l5@(PtjomGwtraAz}q%9dO_tAjy<<&426Bnf_ak z{(ljJ_CG?51kB7#EdM{<`HiZzgYp>aZqHt=iS+7{d zl~y(uL(n4y8~oZJMVe=bdOxEij?px+Km=hzL>NP}6=XA9L5>0$GS8CuA33twXK~09 zN>d8fHD07=#+zdQty!1&*IU0m_t}jm?-JCb7)D@dW`?(CzyS;ou71u8ZqJ&ASQJ~zvs z-jAD-5Ozi~?TkSnt#F9(BbAz5&SetEoQv8gkPaxNjuo$}cOCoGJbH}7qY+Uy zdB(C(W!_dIyCWxuzw&&3^R+DZWV2xFWAL3V6M}ZS;oLuQYBy~5>R$NA3kwacf$}Ap zR#>yWg=i#ZoXJZ$v6>gy*J%2)U}0v`zG}H!nKx1{=RRPklX7dEi^)nb)46}ldzOT` zdl&YMdrX_+OW;v0ZZ5i(gr`%rSG8C14xy6C?}^$ZWEU=Ud00g~!j6wOqjb8*`Aa=q z=wM zdwuM@+nBF@n()89)*1L*@1n`!abj6+)^{6wS~5ql%GyxA+(;P&^3_ z-VkETwKdj9*u#pSJFGD&JNlqQa(+07d0$EiU7%g)*V_1f$GVFQB_jAE8bE*A^KV*UBRB*%E5MqJmEvrKbaYiOL|IoA-FmL`-o-gm+rmcq*a#m=~#ONsUl6! zP7RnV(t9OR4P|cQ-<>y;4HqZmF**6RpuN&J1u^xZNy$VJE4^dFeSvPJ*EN0U6%|5W&UAjE%G2& z6Wz~67gW>_jqbp9_rCtMYW3< zUnPZqQcF==ZhPD6&nUveuzCu5{rjD!=cUj> z)vfGvqP>id2k^XdpQtmF86{EA?)DcwJMb_oTEdMD-b<^v4(ChW$S?fSt^$%K-c@Ne z)Q&&Zk3D1JSQ`QwdP@DKyY7&@`Tn1Gz; zgB;3sjR^dZdtc&0tlqMNE-X3?huwfSWk))2d(8VZs$S<+!Z|Jk&m}@)y6%g9>~Pt~ zSfuQNgBb8K>HAK^GP%uTN`ARb2PT?M@%--12ANbqcr>sD za>1SE6H+vBMv4$ESh-Tdu?s}jEIvD7peu46`2Z_&J}dDbV$)ey2~S)MYk{0_)3s8` zO+DpI+NP>lxy1()E-JH=DXE0hf6S7am>8u|nQ1efPAR4dJj3vpBJ=PDS&&QR7{@CJ zWf=D(p^|+D z`_H>YIJtmDBjq%g0sH1iez3$c6*EjyLg`{~E|ZC+83v6Lh;=B&+a`kGj+JG4VLvLz zrHAjcK{&S|^C0DIz@RF6ser761=VPs#&3;0Zy5^4+~NO2Yc&+s?Y+ONxcA?Ja3$u; zr$H*7Cl?eoccMrD7gK>;D-{cefVPVc!j%gZWELWV!9$yY_4Qx1-W+)T&5HdggMRmR zZtMeiGl)L@FGCKN|Kdclva=HWuiyV|2FdW1H#T3^|}fZG!8!l+s;n8EPhq% zWbMr$;cRG{IFyR|#hUwc20|s3(BNzLEawqpJcbXC66TB(W=V`9nTZNZmOgeRC$bq- z`<5IX-eQp9SHZ$UmfaI(??!4!(uD5Jj$zY|G};NvoCq53EORYOP$Lglc46IdMT39k zE2rFIN}_uYtpC0)Gm1i)}fK_+4w7VL8QriKO6t8R9`*Qahfp#h+YY9LX>a6 z$Yiz|m+lH?zG{mw*Vks8- zFG3swoSq|C&x3hx?WiW+iJbms?|QWf>BVa(x!mHqg2fRwT8Xk zMXx_$kF(7xBKKdcJTjp~DeyZyz1P1%+qJlM|I7Qx!2Z9zk1GF8R%pl@S(zHU{BP42 zV)jn9Q2*}#m0*OTS5Ohvp!?@tHI*~8H6@^+qjxd&U~(`qqod_yW->BlU^Fo_V=`oB z;xMK+WHV%7<6vOmG-O~hW@TeAG-5De;$&noW;SMKWMSf9XJq1JGc{zP`{#7Z|GBb) zp}DD?tF6&Ln(+TAOw!KGUc}Pag@BRef12j`!cFoU&{{rm>kjG6awa;H~;V9*&Lxd=P#L?M|g^Ow6=n zjQcwI8dX)2t~WmKSy+%6-s%}Tvh-{z4Y-#z8MDz&^3kLEW&oCk$bdJd;f>0wVx|L=(aq+UB8!C{l4M% z*Pki%kGD1b-qkk$G5)_f{&q3W`#q2r9cxzd`FiSW zI_UeH82$ABo}rbf^4?y$*#miXfBfse>Gu-Pj(N6a-|F*q*XG{=s7 zWZO5!rI}0kYp$_N=i76xcWNa`mpNvcF%l6k*MdjiPd8{_x|Y4JR!l~YW-Ze=MbP2y zo^b-031-P=H^mK(P>;h98RprL*9OItz53u? z+aAA*>4i?W3mudzvM<*gt?p-OfGv`}e*9vG^}%+F@5P_A))wopivNK3`Id8CZ0JYF zfr;zFntFC7+RmDUr6g&Man^Azzu|e4sY=TcgM_o_)e30UG+8ZhtOPokiyhb&C*MyG z4^NoaR+WW^Yzi~Z64&7dF6(IHaYZ=DaxrQUnxWeS$+9AjHxt~ijjjoef@kY^P^a66 z+A6pC!V~5Ao~Re|{EQRn_-GpXBf(dV$um4^gPR6HvYfcX?PTS6@jE|1F94ruFXyH{ zhNCl2`@(jIqCyW*v7{cCJI@3C@a*@uqdT!Jbs2o0jAR%yjr43`J$8;>Y*;-;-+RME zV5+lvmh*%)*tk2f;Qt6|m|AmfZsz}=LK}KSKHcFsd5s~sU+}W>C`D59KaQ&e{nY1x z-D>lX0uIklb6US{iJHB8t#dEGg0CHLW5wNgYgAyF&EZ(KoU>d|nHEw#YK-Gbrr-wL zD;qVlmfGl^TmouvJ?+z+QI7QQDAvNAL^xg12}MfgP8Cl#b$#E@@(2_0n@Kjc-09be zUEe=T_N{Gw!*h>QAtu8go1WdL>KzS z28ef{Z&cGlJSi96z3Gu66dE|VY($B5C;1o&h7Ebj-e6oHi#s>UE@`>>i z=(>~&#*w-yqzj~eZ}Z8f?cuZc67Pz;Q;O-1@`Kh7=Y2lg%GU_t9fAHb?{~e$#^o-L zXF2}AX*(bCi#bV+_)KiJI!8KSO}kM5f_hxUCo@0WAuzj`Nq4VU7N&eMfk zKNr$~K}R?GeG;y4^Y$D9Oo;_kkz1iIny7t)ZJ>L2QnPvZVGoYUw3@S5%`lnwBVT$~ z;=*X3Uyl1Cv3EU+y~toQow`Yu%@kQjid-nC7!|T9xK#t@g?`54M!xa$ z=C4v6!j;goIx0H@X2g@){G)dnG?})F_+I%2IC~3D9`>rk4PrWt(CQmup>T=^_Td(+ zu#X+h%c7>-uWxjXAt_N5A_!;!lxgne@3M02R$NTenkYz^>39N46R`SWNQzdmjkZ?` z@Fh7(T;A}!(!Dac&v(l?#S)L9WKbH6eMN7J@VC*D;KI#MRNA37exxF3Tf6K0NCE?}Vdz8Wq?Q!wF)h`bTdPE&q!l#J zx8IoL7|*JT>7c4;d&HEtQ5#_C z!me_I+7|-yCLE?&l@`-cd)*Y16l8*vTG%IQX?vlKem0*yG1U%yqoj)3=r;&5*<3aF z3cpBXa&o0aS4hwbR%{1|R?GFywr6H{MVVsK5ZV{wuZ;$^g6U4;SrrL|i*Waq`Llyd zLQ0zBBV_xex4Jkm*Mqpp%0ZZWLM^r&(AwmGb{XtR#cb|6VbdMi%(G`6bDmY;+Qk3~ zH#}pV(U-(d)WeQm$M%H4k-bDa2M9=^Oy_YbilLT3WCj4n*F%5-{*pjqD*bx$X6ZrX zJH=g#qIX;jF@ZLIz>d56r@FOI2HRj_ybu7(%E7ks2PCLU+ORpiJ1FiDCv1>$H0ggt%YZgKG1%hG9VbW$A+f+1u6Sr|TM{W$c7154= zAE5;1V=T5HtH9L#cv*%gOqyaA-LZ#52#d2!DuwRm~p3t7+t3~ z_H$Y>Od0Bh)M%YjECWofj?xO2Vqnpv!C4usLuoW40#=*3D+gP007omloT4FF22{Pz zjXE!Y!G-}}H#E`%^eGfy+Rig}JqHHA&ex?Efjxn@?AWkT1LN?-)drJw|8$S2wc{VL95e$3)YM#gj>((Ahgkr3NXUuPd1j)UuCBY$c$w1U>BlC) zS_xdI5j8V??274f6im=%p<7@Zk`fS-m)M+m!LfvVkd!3g`m{EaQz%%5jhI>90c~MdqNhsbMT5jSa>v zCeGFbKx2z$*E$=DWAw$dskvR7aV@3x01~D>>ug$}cvsNcCKL~*)7@B;GnmEWdb3*e zujh|(#B&LFsC3-&SbYRo1VBzK0#@W^0WqoDB{5T6OweC(os^f@O>v!w^oPM2$SB=v z9qr$G3;L7qD+JVDsJMZ;)ULx~sJh7OED{)e=rW8`wi!rtSS9*+i1qy#@WyYB8tA2g zewlEZ<46$E6+UH$(NyIP)>5)?8c3cH_L?e+5fn61n=l|g?uuG(a&R;Kc&fXGe+R=8 z?6sM~gOFUYLH`Q*Iy5H`T!Y#$JSR^eS>vmyadn_S8;y2xh0`4eH{p3bTh%LY9y~if zr31(PTv)6O`ugT#c9;d9XC|JgEHll;#26=w@-sW_0A`wtrS(WwQIuL^y9@mhOzCU1 zahREZoCZ(>JAae&d3jU z02V6m$pGIOou|;n^lm}Ja+Rq7(Cc~yntokxQXdN2^i~pGw3!2Qw7zg&a+X%h6dkDLo$O~?;Vq1wlcj=Kq!j7Mh_LQj#v;-ijxF=f7%?+ zVRZ|p$P1d?nNN}zfzBMQeoyk>9hhy)k9Ls#TH^jKswx77*&fgOTiX`)kfEF1%R-oK^U`=GqXrM zm2e)V03(CRX z$P}g}>^v^j=V&i-mwmgsAu%0B~euy{Q(!MG5EqsQ;}UrI=L zdr$NXn+MGZy8Gx@Hwc+1hBa*9$MsvV&OzC`vL4Qing-?)o_}bLpWz05hRhaJcC~EL zhz_B0mdqAd0IoO3jhZaDrlMyGU8|c%%mSBGRSpcB=Ao))1{2z6f}A0w!dC{Vwl@xf z;lSog`F0^W-`$6iY{M1fLV2e0v$Iy%tW~U^HGb8$-$0cp!8g|^oM=#g*Z|%_f$9#I zIm4KLn$dWkFO*j^O+jFowwL5x^>4#07ko|4M_x}m>DjkZ!d|0qDxEuJe^zkeaP}|h z`2?G1N+K)%0wpXJ{xup4P-A@7*8o+<_^kWwJ?{$}c+qcPJK$^tWBaS?PHD&(LSb}P zc;pxQOgDx0{6H`v)%J~!2ShL3q{K`hLea;G zl;E^Rn%=y(ouZ2-mPq*-OfxXaDhKe5)6HsQfyN|PB66XkQ9{KL_zpD&@g=$=CKr(k-w zb(ulYgCN5+rx$YJre9$i*OcWDdy+s1Fj-98;T9AY6`t3-f-Sz``Nu>c_l}$h4!6vs zOc6@5wCtGbk(Xz`Q9Xj?9YGSQ*GKlNHyR=&0rr}uBNE{oRexCbSb1C=@DY&(I`Ly2 zE+A9@^J>?WxZTk1DG@zT>J=T)oGNJc2L2o60hy#=+oXK%hC*r`5IAIG$^HQg;)SVP z`Diq09%jb@>;_#Zrzo&Gk|5A$vDU2vN`#UgE1*MoE=8=YqVEY!9w}|eC109!E`ow6O;Ze&2Jc=6b_lTr z8IFCEV_#VsQ0S?{4q!jT(Tr0?m2$yzQ1GrJ{R_o~#1p1PxrB zUI&)FFyP-$vFp1WIs}&)v7Tr{)%SaW+|d7#Z^w2KHh|O6k3VnQ(9d|MvLa5y&}zd< zriC~gHWVCa9F*BQYq1ZDFsz})QGe9rFqg5zWPQ-jIK>AE-LR?h?G6h*`Y=CzTnadV zNa(R6d(HvAJia5TWTLVb0Z}RlEoKo0V!u7TZ^$SJ*GfLT5SMR&0YqHmxx8yYG!-5W zDm)D3LS~1?Fj=slz`%e}EX23ezfZvp+--=5ffF57f9er2&&qvNgn@}8O{DB;z%Vrq zVPfDAGEy!A4-?jGIqC-sGfE&D(1 z7-v}`R)sjo(fkLDmq{#x22gj|D5U5*;T|%Mz_1>rY$^hs5>(eP=3a~t+vi4b@X@y{ zcJG_!KMQH2*;P+2B9P*o`bGt;`d`^tvOwu4%^pPS_^`){(%ryeS}93gRG8_rZUNfm{)@IdBkl3MC-e#6i9Qmd-mqzM%T?{z-#l5C^%J z1P>z)Vs2c!hyV~2=P?WCW{(Zb#@yA>Y|NEj8VSe&4g;hW{dMb0 ztu@WeZ`|3x8rQ<~JTM=2|IV(45e9M-2Zdk_aR5D%Yt&x;wvJhGU zefVi=82QzOqr1Y|?{LHIN6gU1fNm_cTMwg;iHLpK3V}g+suG*H-x__t__V|BI^6`$ z$JSJ&hVCTuq9_ei+b&+E%Z5R~yMtjO0~YyQGd)Vg9HmQ#d-)mv4)$+gW3A@IyTp#_VYNILr&iGUG%Scb(Ws=fJUrse&LZ=%*tBLinJPF;AZczOAasDi zKTL_g{INiZ-Cl`V`7|DKLmejz047TZE)sjyALxm&0D#~PIt6H=I>&`9R}6I-1KmFx z$mw!yrSMwC<`9IqVSg-+%VC+C}AuRV!}0lmh}Qq_XC8pfv_raAH-(8x@jJF}R*fj$P|t5dPKy>uT>BeEw%_ zPys?G1>3Q4y8JgEYUn-ZOq;(TUp`h`^3Gc+KRg$ejAXSh_nwGrp>59z@ImNQ zOD3PmjW@&;(0;fQz!fqet^{Z+G)4yu$%C_s@+j4mtuYpg%GLsG0jB^kusHY_cRN$* z=9~28vi12f2jL|mo+^C7jH25nb{jon_uG&{g>1q!tA-)~Pqb)=AlXUS@gmX-rLM>O zLh+d}$M_)OY&*#iy0rLkJ4u*1!YMjzb##C>f<=yOnxf5QLslswS(`~j>>tww{5Y_Vo9H>x zfD)xw$SBMrUm0$o|HDQ|WQZ%m*cTOrQV5x1&s2=R-*FdH?79Ggn&D|tD9QJy5+ zv1b;A7Fl+F9x>cv&~1z8Prt)_HDvzmef7;4iYyb`{4&}CNR84w(*lUf1zKg{L<#n@ zqn`Jx6V(1vM3n^-!Tpq@2tDDXU{T$uo|e%vjtn=sf^Z2gFF6!ku130ZVgKXW77w`; zLt6+g3dNmxHn^xDjWg6yz5uAX2p)>ShO-7-6cPs6-C2m3ApTKy`>SwpN}aFw#g{Mz zMX8a)T>#3=XAhh%Yma^PH_#Y2VdrDCgu#Xk;y2bgKUT(S&LBw>7c5 zkQd$5Bt3-exM{7A!O8i?Bsi|tYpVXF;Zc=@6m6J_dN1qaMk+s6hVfa#8Fio1-z$_1 z;nnXaUDCsO$$>UVK@%dS9Qv9goztkj$_Ez*>fbheB9}TDl>1aT1L(2s zYz*%ZnPZrgm08U&Hq5%)=7YmBb61BL42dT0?lTUW>mCLn4|dy;B#uInlYB77DhJt_ ziZf8{9tIo0QL$+CFihcc!C;7|U?XFQ4LEMV&sK@T7OY2Kv%yTkV3?Kb)-V}hLdLh- z0t`?Lzp+Ow*cV|1#GaqodRJ#-3)R~q^onl;zy9(8#{6xuFi6?|#S^XZ%>#ga#l?S0 z%biooY`(IqgR*Xnp=4e(d?&ny zBgTD)k)Diov49u0y?qas6G8b^UGmbIIW%v;oTMwOYtUb7Y4%0|)^_YJF)afEdXPVHdoz z67_}+$IhA3s%Xe=bmL5ad)lP~@Rj@H{ER1DcHXAg8~@rfNRpnHS233MF<+3*ZN{0% zZkuph;b%8;@yEYg!_kDdf^xB%V|~Q}PKg?B70FM(nq#`@l-$?HDMO*2tue#VtH|Ey zk7Gb9LE*v;$Nj((tCbs0RXvsy%ml;nGYgEm)p!F`%wC)qHboostq<_L2fZXp=_r<< zCjImT%>Kh;PLf8!EoHkJU#u@Muv>T5p3VYAJ7&(rMnb!asNYu{rU{kA?R6{Pe!_5&gbI(4q z4bGZa=>;gG{>&fMCFuDi#qH-HT)>z^HNdL+3_YC4EIkK-K*g|&5$ftv^xF$!1|dSP z;Mgpl_NpW=)+i58#-3@a@D>{iv5)$dUV*TU&@z~dYb@v6fG?q7)l8MWT3!uVx+e9y z;P$7;?z<%vw`TILNNi!U7x|=?n83k2=16Nhm#$USjwF2f+iM|(IiHb9mI|&+a-ww*>#T)g}rm)k0Ip}fi9QE zcfw$TnM&IUl2PLTnAHBu5Mo`%_l?o8)F4iwMh+FmS++18CJKfLsdgg?^htAfdCxa3 zjD2Or#y1E`#p| zl`S8UK+5?Jj`(}+Fe%T#%^Wg0#pTGUBK;ri{bP)<&DZD)wr%&_wr$(CZQHhO+qP}n zcK6-3yXX1u*=Hs*`^i3UcFxE5!&RxOR4P}kN@^il>(>Qq>4)G8O9jA8vl|(!;oNWW zhwsZadK7Hm#Y)$P)otKOq4}i%eJAGS zpBb-ze7%2W7Eouzrz57eVf!y%x;L$F122l!?X8(DEbIVu+s;-@z0jrkx;?s_wMvRi zz_T@dTXa%#pGE>A1_9I}ys&uajmf@2+G@Q$Py6MawW5wh z{POO%YBSs0&jK#8AX41y%uOFr82NX1OAl5T264-~Z~W=V!;eVoJ7=aRYcAt}1ye5_ zAfP%CcDR_}gl}@=qpNqmc9=NBJyMLqMbnJbx#sZVu5|Z%C>gsb7?U8GSvYdPcJMxT z=zdz4*Y992c83HUz z&MPpy7{jEIM`kGCKzg~vAv`6nz8X!0fqK{?s7+;!GBwMBLaz{B9GakEb;YV`M&T*b z^PUjxoHF*!6$Z1-ew{*Lh8i->ix2*#IEIfbvw>H6l}5Qih?B|*UPmu5A1x#cu46CTPIScJ3@ zJ~GWm{wm5vepBFai;-OHRLn@e+uP!WnLH?&fqb;R8mp0&m+# z(KMwgwezMSG)gea<KSn&-RkdhkSZN3*jSc(ymckq{Cr&%I)b)3xXv?ktTE^|b5 z92LG^tcB?>q@6+X_q87ZP9z=a7bd1j&G{7M50Vf9>d&>^Nzw0{$xs)vG*{L2wb{OY ziJyoIsmeE)ALK64Nt@r>;+rpC))$F|yYF1h^VpzV!pm{|9G@(pSVyn;o24^5kX7zZ z1yc{&vN^9P-)!^HHK~^-XS`;S-F=!HfNe=Vk>$4vxHz5D7QF$Baz=e!!{{g(gKrlx zM(=O>SL3A(VA5A2^UneB0}T$DOUrfi73(;1`OS!s9qQ_FtMQz5%yFx8|2*4Xr@eD( z#jy8%Z?_BJP%@9Lz*54ut(^|BcKP0^5&C?#KJBA>9Fh7*=!U}ADcY2+luS|l)j-tp z8_=Qqy&xL47UqTxB>D!koUPQ%p(sliEEu)1Sd1DSJrbJU90VB*iql2Qn+spkIsHqB%;L8uFX%F!>_CLEQ|2=XC1YV8yrIyq8 zFI(3r>eY&F;0;LNY((I~bC`c(t)~V~nx1gLUalIgcAKJZerg>a_mQ&&My9tsYRq2k z&roIYoIDb3<{mOdc+*S^qn{^Ak4|gP2%?*uZqE=Rn>;j4&$Ewi$4tlic=!XhYM#?! zbH!h?c6v(%5L<)EY6JkE#o_*beyYGE*6OVsmnpz1tZ`RG-+}@^X9L|jg57=c#3iVP zB2N(}5M!D^pkK27Q*2QbZL9#m_=2c_F6M#}K)ZhX##&l-U~ynBcFy^Izfk?3g2lZiNM53WxkB64d(kf4B1`1^Y+EQoPRVWVKGHVN-@qXvF%dJ&DpXl=G34-}Ia2D#6<$e|2Iw?wN)n5nH#@r%^E zM&hr)6o|bW+s^$7T{O1VM{oJ;YhV&1-#M}GwhytdM#84q;+}9rgkXsvo`QtupT34K zl#_H1LaW8KEepO-|1d(91EF*E?`JJj9bJ3u_aF!04!7ID4RU4fp}sxg^Hf9cK0Y6`0)1H;2m>oVNAFX`4Le zo(5Ybe2UhId9B$5RzzN$P}w^b%Pmc5a}@ie|UX zCilLSA>m3fpu*z^@P}3IX$q9eLWj=w>W63#)9t}#7EYuUdip*^7`J0bs0(s6Uv@8~ zYuOMstgkn6n5XygQY8Td4(qzWzomE9*o&Z$RvK{~;J1|os_u`eJ;zUt)3Hak~IC_mtaW zaYR4|rwMy<0~;e3j$;e0$U>S#NHG@S+eOet_IS?1v4gN3m71!xf1cipUQzfH($=tb zy$Ks*-tBsQf}PAeqKXzD`w(owP)ka;;ZMM6oF|2oG>Rar^>_Z*h26UXm<5$a>r(!7 zC9uCGwy;y&r$%UMIqb{1MktrGZA%ke(D-V)B~}y>rp^k7*n!=qMvrUY!1H{4>cBF? zjaNF=1;BF;mzo)(YI~-u_5(52I7GQ=_pG9^B8dOQOD)0OP(DbRB!Zyu2XwAo3d>D! zdEwd;X^rMfebrIBYXHP>_-t*Fy;kOpurr8s+~ zp8+*G`yDR!QlcDSE8R-c8M-D@akjcWqn7wYCq-{5MSj=A@eMbFKsT&{rXX~SOrHfv z^f)PVaF{jH61S2*fV8EdV$}H>BuD~}^Tl!9acSyJ$K{XzS*Ma{Py1il4K{i%?f8q! z1bykt8r7#E(1^Z2zb0W)qcJ`Xe`VKLZ>kG&W%#rmU#Fa}>?g(w;CQ&S=Wi4bN+o8f zkPvEnWpQa&N8jxynhQfZaLMu)my-zQU02dlTv=c}-evbxYQ|cXEkwhL?i?5D<5B(F z5r_Kk^Yg5m6Iez~kp%iBn|=NMf@B?WmOT}t~2y?N5b21>fZ^1%)CbQ4~5fcxoM>|ogdlN`3pRQ~ne zx$W5a`S}i97}k_>Wq;906HdC4BCPZjwgAj6I|_y|_|NWOPA4==yPM94D7qyA!ECx6 zvgMsXv<(Cczxewq@dub< zhO@#bm}0^yBdjxvd!9FNMS$YpZGKDYBj`+Dx_?vy2in#j%^I)TjEztn#v}+J)x!7h4&=-xzl*ggh$e;)UI;k%UNu#(T+ahUb^X7~j#drW z^hXJuS`K&Ou$ivB?jTS?Ihr>uF{Fve zo1nm}!LA zM+tPr^w?6pzO$|&WOaW7K^-te+Gt9o8hn8pY(~Zi(H1| z+!uXUslaK>_>OSr>bW06Fyu%REWJ@XcOG5TO=o$>hghPC%1xZ0xh^q#B;!7i8u^k`><*h#!ozqHRVR_&Q(nBLzztYyv0wxiDxWwt#jy7Y4B zzu~?YOKIu80rB55IP4J(x+!JRc^d><7#H0pIJBE|--S$ig)hBA$QC_W&W>59E=zsB zLXvZ*g+49-o_ZUzE9B657Yrz-qWALSGF9U2$x@}K0pT1+Jtn}6S)ok7L*PJ~)qUU& z%tm+8s4kbqg*_r#ksUZ#IPnG&yw46`e%kW_)xTbNfe5Nw&b)?`k3l(~dOhWZ-7fU9 ztr0Pc2jgcaG`ZyvAe={oOZ?&A3mbL{f!LnXnOKQ3?G9gqZrD@z=u#n?>w7V5ia!Dc zI2q}yP5uOPL~B5eUac7!^#1m!t0RDi~%#l2^TjO6i+a;w3+E?rNBY0=yGkQ0yahLNhq@S19L zXIM|ag&OF=3PUVyr;io$w#ASH6H@I=73swH6dPu>$9qz)Ejox#boW(JXNt>kQ`NvU zs>9+t-d<;#%Q&QFbT)mr^2Xt0WAtG;Dsfc%hf4}gO{SsDZ(4;39?NY71MYSC&4Edq zWhx+u*>3uJyO2y6J|_6AO$sLrrg7%Ia+BQ|prD?;ir8vh!F?kx6jiV(qcA;e##&@9 z^HVTPP<0Y@q=St4iSOyA#cmROSuP*Y!xy9jHTR-_TX}mijsu9Qy@U@vONZ%MDUqxS zMu{&L8{a{R&((O**TOjS18_lRMCO}+>OU>QP<=&v#U3Sfsjt{!sjodX$CAvqZb0dp zKX~h7qXc|-4qo?VVTwcVJ{Y97AYU9lzdQPSwPG~uKiBBMS&iTrQJ5|^Z*GDu5Cj)g zo&1lC-MM^&a=kfxHuJe0H$nHn_LyyW47S2KCUcCx zW+|q@7+`cC_w|D83#R3GX7kp=bNLdXf~uYWhz75!;m65rK0Am5=^`2KIiSP$Au{VS zM{QgCw)^nqV}fc(_dgxavlJ_$C0#y`k?ZFmwa}hj_kTJ`YTLTE;{SZzj4&@$b^AT^ zqCIhlnFzDa0m(e;`Nuhu*ZL>`K#Y5$G0QPf-`*%baB2`r@~A_`$qS*65lQ(cDTd!a z+rXK|c%ILgYr~9Sa2~THwsbk#hpZZBNNp3GY3&NGjuZ5g|LLrD9B+;@Ps-9d6kY8n z8YHv)r*n+NHp%&)FAb*ZYLdjZC!2_wAlsBJoD;o$#F=rjelnKQ)Y%25=zOVNkbc27 z1t*#j%Rx57nB2G|i=6gbou(=8D1`&uh#30;ur7Va`2e+P22Ph@>uMjBX_mJ8aCBpU z$}}6N+tI@Kj~Tiy!_n0-D%&h)UAlwo!9OeD{xh?W+BRF;{a|!?#pnv>!Rty_yC2|V zamG?yZ{L#q_h?JoWP6~g+gURIil2sz;NadzS(|ECpL6JhwE@B?+D*2DYi@ifn|Sn)fC?*Av7NMfm!rCZ>AmC(doKBH(#9yOD6fWY)zaOEx+L((D!j7huIG z`?&{Nv>S++QwKd@+8~8gdax%Vw6%RVcJ1PvJ8=O2UXKXfEKE4PwFdd4(`|TKb0Fp7 zTY?EYUZRD3PloS|<~V!AJm$I3fO18NLpG|;H+sqfWg z70=$WcEd+r*~~rmxb)B^Fuc9}YN^_8U%=Cmz~X-s>%WmsSpTblCB-h=A$pkYXVgDS z1ocE5j=&gzk%#8)?LO;F5wBiA9taHov?r0iUFLR&l)1B^eMSSzs zp9G=8XZMNR7qPKI%2Y)|`)6BfzMo256@gLkYmd@pK38HZ%$;xhLyy_Dp7$uDvAD^r zo$gWriwJR^_bpubF747w@HynOoyuD^aLY~GQd~W)WQ!uSx;Mai@Q*GNCVtU#m%^LJ zx2V+b4D%kAJSD8S5-cViD>8d_s3Ui`)3pkV&p%x%d+E zSo^R?o2JtNk8$ICjI1W3*vd_zvz(XJ{TdQBA)Au+(A$i){T0DSKyL!l&NfhVviJ=2|09*q(a9N~otgFjbK{JR?9Bhw z+~N~0E2XV*r0-fihCNzqDDK-aRm&;>A^hO}O@4hLUUE_NZcx^fv6`8_zA}<%lD>Lt zpjvB%h3M0b9VVxbr*Xt+rlDm0R7kpXBSmpiR7vinObbaECjt5hG;MNH9%Mx&Xwqin z1jS@S7#R!wN&IJb$mBzu@8}n44pQn8j0CAMWqrjz0TlFzrK_0|V?xC=iql0nC9wrj z&Wengn+19Ku4qA6;e_l&5%kgh^t|Gx#7fwWn9z_ZQ81>7>0A1y&^9o{51C9+m>oh; zBqn#$nx&{|)0~ntO}G?bETM|s;Kj4T=YlV^64%nrP^{CVa(TCGc zk}QwRD9)_rX8BbGZnuQ$lkCyA1esx(_34n}z`{ub4C=do#<9eiA+VT*2Z-jEmudAa z7xSPe)5YyYFfqcdjHy$@uqO3)^3#^$*SREd9^Kj0@#APm70{zi8JhiDa>V!mox1uN zsIRU|hVY52kCFqNx8;rC@3~XO1!aS313{eBHLg&^A+jJfIcV`~;+f-ulLK239BGl7 zBie&IKy8SQ>6vVZX&H+1X@ap+7RZrIQP)e8i6EC0fS!p^QCZXFD?UP74J-Rr66Ti& zH8)F_qsm%{dr~jZNO@pZ7QxUjUPvq~;-G~7#E%3MuqZuO)WBT4v=&33y8q^?{H=Z{ z@Yys?q13u0jnQq|`LI!{ZsPk1U#(4UdONFSKO=iGUnD9Oi^8?>)OMJm*zu*5z|--3 zI!~A{O0x45j{8xna$Xkg9hhCB|1O)gSTgoeKCgp|mp4l3F}=lt{QmJ#=J>vkub-6g zP7+SZaji;g_S7MlgDsMzxoG{&5nU`{N>9ZmS(|b1`iB3U#LQuipds!P!N?EFWq;9V zg3odN4X_W~#Wmx+Xs-K=DIQw=Gh4fA>(vu>bDJWm>Ae(zXPXssW7_59 z)Y1!Az$qb}T07bkT%+O#K4?GCks5ep-*a@xmt7|YYV(pWrd;vb_qwP?iK1Y_bwjE= zM5(ovhTfHS%gc7#_uAF+;gQVRNR#^3KJ3yOt#T z*oU=s-E~g$^|XS1XqxfwFC2|F@A{DHkkHfK%Rycu**~B-{WCNWABN37lyF>u&@Vi1T#VWolIA;*>^@tJ2yD%W1J%RW69MFcn&O z-GR(^MK+VQrMro2wIFpfcTm!}?VBk@V!2CV|Ii(sx|Bv+W~e%~_?HYdh5GL~;1w2B zFMW_P{);kB&;tj~0U{J<;h8m#0Qxb%*wvM|B#s0j+@My{5+`U?xc@^la$6@nh)E0{ zLgaIO1Ou66<-~7hO!13>*Yo_6mOPR8&#MT~yIV@FM7ZG`&^0nKxzT z!syhbD1*#n2))f&e($e|8-?`JVF?3lIBTe-W-7-m6Wa<@QKqU%b9S$LRkY=PJFxO2 zE09Sn@nATFwN|kve8ld^i5`Rqs}26-Ei38^f0duxtBrnMLMp3O#Sm%ugA^;XEwUi` zpVG3hw+mcQ*q4NK#ed%33KXa}0o($7ykkU>QnFBT>yyK`&%OM^3wiL@K%N)&cCqw_ zWeEM9axxxj<&)yhu%PU(C8NDU4V3kA1t@E@g8tEJQqZ5rhozelSB^4*5e(;yyAKri z#-TfkdibB{29l3B&PcJ>_$r!ZRQ;8Qw!%TxFKyd?_e-=*)Ao!5EI#7Z)&H~X^Om#6jh9= z?C>34$E3YaPOG$CqWNESz4u)EBvdv<1hHR2^XvkvtlY4+iDS3rfx`HN@SL z{KD0_3Uc<}XSxCqyxkhF2>n4bHigVB@?*QAR0!(*u^!sXvB%!7{iU;~qfpG==vy>Q zSaNUf6W@foGQrx?&sw|NwYav_pMCt{DBme6-A(Rawjb0M?{=2Cwor#X8e#I=?zy>H zE58)`-6Y$~;A6Uj-lohej^+<#GG4=5>Jlohv`uT~c^u#Gj4v1RwoQFaiaby0iPIoQ z&A4bTg;^z7N${49kA-PUwIm7FR!vOBWUZRGurcsYvbZW0@O>UXLHG1}-G`H*!wqVd zCJv251~vVXsUHIzQR}MR$fbq3G~Iw@NR69S1GMH^`YPnc<(465dMy)8GAV^M4FvjH z5|;E*Vr>@Or%%q>aQBXj=Glq(GM9XPP?8)ERf%W2{o0Pb5OwqlfFDcuNj;H%p)Lf% zfO8VWD}v0bb>uPM@;g;4bdtV6Is4);ej8Th9^uvr-L#@6 zV|^ILO>lID+6Pl-`;?XRf(siNpyi7TV>LlJNrQ~WW4@yF24vNPaz&DS7n$~hJ8N%q z^m(;_N{P`Ah+cH|(Cu#RYCJrY$l}tQk0iH%QC?(zD;e;lp`2&GJZ?at27_02rWCN6 z)QK3U4+$W7m}1hLxTRl?IXO9B9`5p_iT2)uo*Qit#9*QP;%tTxY-t4Uy9h0DW@6}a zd6oL%-K^ki_S`eOaWUV3Ozp7;*IUOEy@tKZ4l&~hyVOthUn+v|RFm=@88`MRLUE3L z3K=K1l2(}EMoEFY^S`kg(h|Ee&EMQ4Qa^Qx# zi|G$+AKY9}6XcuMljShTC?}4?vz9Uh^6YAZ67*)JbC#q^6ihU-$M#zA)PA&?Ai!__ zN#-G3SkwzLFFnA%oq|!bZRpUNOSRq++8{jbITCaAtw0e$2Rf$iNnk(pJG=SjRx@72 zi`#t%cyQ}izCaN=to75FFq7E7k)U1ts7xy^Ew|I?{Zy+`wmxX^5-@oBp*%<$;T*U#) zf4q&*TVE)gEg^>_Avps2f1Kv6$wnT3qlpTGgqTC@hZm>q`2i4C@!#K!y~VYg7Nb1= zJ>vCTB=$LS<}eZJ0sbO0l@IyIOiot;7TEJS>RAa@_HKQQ^Kt-w zKZrzk+=DxxYrG=gi2E?oLlCo-R{!G%Cp*&KtO$Pew`GG>A5A&TPbcr1gnU|`=Wt`- zMeG<72JS@5*$z!}?OIjDBR-!pFtc0H$gato566MS-7~BH%P_*#!xb_{#&(1w*ON)Rf&q5w(=ShuT$tw7i}bH zT7PX9It!YikRFl@^B)u`!oons;aZ4t<`Qv@NEFZjoeOG7l}HG21?uvM^&*MrhWKu? zsD@WpT3y3kNpHG|Pomo%W8c?V9=Drp4yMPfPal5icmRGmF}%HzfvTJ@AM|%vhleL9 z-41h9Kx9D(jN3R6R7B5!`~sl3z>)}d(Q04J_eR-5QenorODmq5Ei0Veo$?7U(Gi-z z1m#@Fm$Tx;0Er8TonHq+Ha6h1u8u93%;t9>zy9?qyt=yrt3=jeeO5i}(;qYFR$g-} zyt=-t-!V}Lb16T7y}7;ueV)G^-+d@%I|@0^S$}=4f@+u5$w*{}Go}ffBA^{eY=?8M zNWI2&8{?RhzK;Po#A%bLjww4teeu^O;*P;OBy1D5j^R3_ZW2C^0X@WV6UL4qJtT7z z&W=G1gz;^TNf0Ht-XppR`GziamH6oaA)SM6=7FaR$jJMFc7deofk?{p@t(o}=@G2= zaWFuF3?N`a66m3L{oxImqXXjfsiTA92H-}AKR(`W?gl#peZ4goR*+2Q|Zk+{OKc)xj?bAQKIMi}@*w1K^(O z5f=%783~{p3BVl*;9=t7v-Fuz_z6%17?SxZtOIJ~!A|4>Q|e(W^|_RVV3!Bs%7Z-3 z{YBRyyYeAjhj7=SKl3qPh5*?i@&?ZAAvE{tu>*?iVPc0M*&+4%DcE841~uN$W(Pdl z0niWd>>+7~P}`x__QBiX+zxQJ!@%zla0iUsf#eP_xx>)=`TbelAqks@< zh{(}iES-mQT$&_UR|I4g#Z5@qrZ&*uyab|kc~A|N$*y{jjg)oP-bXmZG((*&E^c`J zeV88S=uRIbnG26_)T8@cqd2UWg4!ESk2jBTRpHkTpWN#6M6WwijAdDAkd66u{iHjb zZ{BxTGFlio%G}d1>NE9KiLUytxu{=49B6!s8ybo74cnNYvG(Zc{ZgwU+)wCaZ|`nw zZ!aV)Uyoz^#7p}06NcH6f19EtAK$xOtDb{OjO0V6VXtP6@|e7XdUh2 zL5L04FcmuyycImBVKXYhf&!fivVUfDa`$=0PO%$M#Vod^K-`#sWmFw1F*PnJvyyDR z+EgyGqu%q4RW*U_v@HBgN49 zg4NcqG!Ee%m9I07;vm)Yw7!yV>(6Ln2^;dBG_5)X7nZ>p$zzMnj&eBG<`ktJV|UbI zBI0&;AUexNDak2ed{lZh?-&OA+3|L>Yw5_!+T?Z%+TONl-;91v9NIfJbz2@x7~|2z z>+{?Ay7Y#|>Uc*rT{O+AiDg?YV+YyOGkr;05Vc7y41HjtF09+0UI()Yx+?^%OjoYI zF=LKq`-r6shE7{pUB{FkN{tFSF_l`uhq)nQV-mHzRE3y6qh#y=t)dqn3pKlyIt}sC z)~;k9Q7t@yc`mugs4ScwNA>RFN;^iV#Yv-PvhBuC&IWcpqJ;X9t_feH%fdwFW8097 zPHJSB)^+?={SHw*8G@&K$vOGcZJc2mB6l2V|5+$J^$E+OVy3L7nJpTd!Df97p_@%S zn=A}1IV+t-)^6PJ?y<=EPO=2&$ZV&zsx(j0dhYzu%)BF-BdfO8;nY(rU$<0(sn_V7 z)8)TG=Y1?m$yxsi`_Lm$>EX<)!;ikmsVRqbF5?-sTk3YM;~BSG27fN}5zbpGcdqmi z&09uCUIb)QL{}lcbs_hJ`i%(*q$tcR04bRugy|~Ck!fgl6==GS+GXH&6>z$ajA|ZW zS3sg!fTXexy;3fKThqYyGSK_R`ZDyx4gg*V+Zz;QPY*Xxzz$>Mfa2?qcW90sgm<8h z9fntg6FUZJ9*6Akhx5=mJAi2cGRFaJRutV?gw1)3<2=C00e5x`v>gHcz)(9-Y5_T| z0Nt|)o^}ki9m!__{+j^+*a5Y6^dG|j0cL~+BlG|xAfbGOJbDx(dZYy->^|K;q8(0& z0oJ8_EG9h`Gd)5hJ%%Ga%EP?hdpkI*;eU{N8$hHSplwGOsmGwIhi%kDwi^Ce)uXxT zkeSMN826ca!0>C@bUJCzenU9C3{23J8<$2 zfC050N-MRY1&w^SXwcX_8&*C@HYr!u-o)imxx&LaNHA^*ouSz07IdO?Tzq)y_`+S4 z7=&3I6-dnXf8wukRB_LiYBYtN+TScvPYraa&Yl={jG(|O!8mJ}x2v4AFc>l5f8nwZnU*8dGqT+a51b8wr*Gchg`wKfStt=U-N zimi%G`{>J>%F?B#5;N$~uPDcx3Nc?=6nfu>kxHF-w%JlvDdT2nTaYb7M8zU$Qc^QJ zrGjo-OExiIT|*--sdQz=m~6e@nu2BdOhJtx*`$oY*sE0@R%;{0mj7<&nY21>FDWz* zRuWN?C@nC+t21ju5u37lvEKS~lT}A?H=Elhd~tQlW4C#zf@MD_gu+{QjBS?n+^g+vW2 z0}%zKFd|x95_TW@?!9uJqzC1>?JT;guU*S=(UC!UD^!)n9@;H_K6d zxo?PO74KUZHz)n0I*QRoD}&7{g*0JOEUxI}sMx4nl7R^A&X6e8sD;JV5p=9@K4guG z%+syPRT0YJJ=b0qHv84X%C^cBwTD4{KedjnTfM2NEWgO;a68UnTc8`|@e2BrBt|7N z;wFT7V>`a5T17!cL0-qb>Cn3yID%EIq)7CT7(1y>uh!z^_dYs3ylyR1OhCqMnRt|@YV@qtmvQCW+VQTixR8yN}PP z)pOpHN`c5^Brs+epZ9n*%5lQfVwBAz6uE-2G$9i7nl(|p0QwbO;)m_9a1VR4yz-|< zfr@UjqUzvRa2+;ey5^pa)dkAUiT)wk&kLuz&EpVQ%pL}$Wd#lxW?!K0ti zSWK>ga{7^TM>u&M0}ciR3cNx&vWE7;&eF#A%3pD1zv^E_a6Y)L=a1zhd9;9qO&Z3- zXiX&66k4N`>oPBZmxg$aT34)HL%fE5W_V3<>t$C=u4z8Az505CdHTFxm}vfd$^BFH zus^`Rpm5ms@HfElJ9jkR;Cnztw$2vA$A8A-dKABOzvoN z2Oi!2==VBT{Zj6jb^9t;!&dG%cKYbP;ca)Uy904|ybtR!dxvgsJPbgBgpLG&kP|7} z<2k~_r0{al(TsxCV#|7e<<=j5ZWas1%4zYDi@RD{ox0;K!7bJU``HQu=fnj zEkR^X6iuLuDP>?z9bItGQkvOt?D$Y7_p?8oqg3zv|+Z?Lt4HpssuvmX5))|JsX?z;<>XPEAY{-V+w>Ix0^E2>}l%$*y(J0iC zr8*6TH!G2x6=(#E;upbge`vXrvnusB$qu`ks~BO*kPYjJGe^tPa#K=4pk#!yzH|40 zGiH@wVqz4(sBQFF#;JipqL!`nPofIl{UbbB=O^9~_rG&j;?2 zsWLOGo}1O)?_?Efq@Y%9Eq{)ta+Lqi$MO=9YOR?Df;Jb(2^%TrgW~Iu`!6*D2 z*^3Dl=ghsdRW2ZQw~eor49yrqs;>I>@z$ba{|{nx^7vI5WCk_uFbj%s?{xsLdZT~6>k*UVb*aK)EvjJs4tgqRehc_NfMzv zC*ehIG3vcDnu>&IZeEsJzKH$XY9qD~P*HKQk^0tzS`(&C9@BX>u8nt!WOz{k+S*>Q z_gZM(B)VJIR2j9&cU(DrR^uoo#0tk63nMjMgf@T5lS$*yB(g@Mh_(4j%rtZ5OBNa0(xGWkSHo??@g{SY4X&K*+N(!Rr`mWhv}{=6 zXAs^eP(=+0qt@k4m= zgL>!TyZf<@^ZkGFK~T#Fz`^?Y|EG&?K#xc|V4M!5Wbo&0z=<9wHw=>=*>u1<9oWfW zSI*dyfI4ub9z?ZYQXRC)0Jb{Bj;Q6?^VQl$;e-7}m1Bd28X6Av! z@=;?2v9N=V?ntx!UD+Ya_G#E*?S{DQ!Da_J*x}Ll3A>?j{-*<;V-H(91p9{74SqW$ z^9InlFZ2d;GkA6f>J9npU$<}dM&=Ft8|e3I%Hb-87`XuKl@H=&NOu*JOFqI&KGeGo z-!qSOQr`blE{s~a01m#-j~yK300B2*z>b|aVCDc4JFIXXRpbB@JL15OOSUhZ{nUq- zb4ihPShq$-?#!XphI*2Qrd&zGD%C4u>vAH>UVDN`X zmDXR*WM(qOrb2wnLmIo8sC?fTCAEbibPF~~^!%E;5IO<`S)v+8; z%$5#&ik-5aY)6kV;~7MG9x`${*tBiknHh)`sq z`N1ntUEx~;bDe=Z++7jAhV;#k<3-w#xQxP~mE2a|HBs;x{aM0bQYIO~c# z#&AT2+G#XXs-_qQh7f5)Bh$!?sA-Z@#z$DEtb+`Je6T*kgL*_5!F4xy&QihGFfCo&)<7{Er|ZMrc1d2CPv&?&u(MIvkTe>2x4i zI;@jE?R3z)J>P$#fJmwXmg>M(2LkHgmj$4#{i5y=ngy_|1E%iSuKlv>pkDfP+>oF8 zeB7XNLrixn>;Q9var-WB4Bdcy0eOR2cT8^_UqHT)eSv;KZTo9?SngQ=Vcqk%K8&h%wDeGeh%4nHF)F(`JU97J-@*c*4;LMlC>} zi!@{R1gqw!El4&))rjJn!)ivY638{<+6Z*b+aAZf;Nu-feZ})Z@dt=U5y}%sia3zt zlH{W#M=r{9PV#4vLu1ObP6~9C=ex!$X;0L}DcVWN=;ac{9@sVNup?XuA5so+Ye@LU zV%PLK?H&!fu4u@lON%TCqOyj{i?-x;q!N4jA`oCfVscjGqTz8-OLc;IX=u2daX^)s ztW>l*;*gO+A9N^u8A%~XL8@?`k9t)?NYQoXt{X(Cl9pNurCTWm!#Z3HWb$;pOrniK zro)U)rm~uf;)-NeO)NFzdXyghSSkGy6iP54(O?zzqj-apTd5%#6w@d4uaM=tn+UPtMNXW>%3^HE>{5 zLqxNRRhiN5vHkgLdkfyXy%K(!PH&>j* zJ!-JRhEC`0BeTVH0n+wRKf79MZPnny%w{soX88w+GSSj|Skd~F2*r5$_}-X0!+s4l zZlLIvXPDM~J2^~vAY%~q?6NH$)Yvm{Z4?%=?oh(rW2YZf_QPBqwcxZl6OM#0(0ZY% zC$y0|Nw0L6ZmXV5sXFZgRHW>q>eTujD$d9K_>kWwhM*{zYL=4xPU(goC;C!8$Gp*1 zSKY;u6_d*X+X40X9{LVDMAkTbTv9R?_I}lDmL-x%ggqlKI5Sk8H7i<7hH$H=RP)M^ z*h1*W$k3hRaz2>dMJikKrxl|L6k1t;?YQdA-M9OY8gph6zAkZ`E3N9pu6yN4at_o) z?SrZlE#^xzUYM6f`fYV_RMhH(U}YglA&Vn%>Q9TsgxBMUXEv>PtkP(SNyydO@t>vW z3Q>pXo#T3AskDS6y961})){yDg<@3r6sWPp!=dOwh9RPmVk=m$qVE(eK9~_%_XRcJ zJ)OOErds(U1HngWiV>R0)zr}1t<%6v)|j0eN3Ztl7}TCbFZw!mJ?mMz$q5xxQ&JOS z^Ko)UsQal2Padyf^(12`=WVq3Y>b=snaLa487hXCsD^MJ;~uf(a@tbjoqTDznFUN1 z&umi@CdVksCiX^HHt%00rJWH*vo24ecXlBM^fMlO4{=Hr5Y*C@^v>b+Y2S|PmXOOH z7py?$#lAnoM9)6mKkT_nlqrj>1h}RL68w`d@1o0|RS-?{A=1Qu<4AvpUDD7}(5HOe(BI1we(seNXL%3%X%5<2 zYHsSxPaeIHsVeEcHr*ZRqLZq*pQ(oFFa8$q4{V@mO3J7sVq)V~!aLkQMD4r^3QPOD zR?-sC+OJ-9%#DV{Xz`5sDb71bIu@-eRh7FWgSUie(m20>E=Mh^7WBoHaaYVNOD#_= zD=mXra<#;03UDYCl`kY`KNPMi!aT#2VRds=P z&%IxmDw8&TT48c5P3P7u6=(kb!gD_|B2|b5zo1U~cV6wC<7&w84t&%jo?CL9k zwe!WZx($xJ(ukUqxZG)L5;&}_sjFMtPzicZkt#4N*d=L;j=i+MIa%Lp1ksVDnY^ZTsJErPwYO5+seYlip-8lEpn(CO zhQz$Do*^n_2ATSy-)NbY8}5#Yp(eeSbh~E4{rGuJi;sP7;%oVdJ;K`DJ(dJ=&UKJ! zH|4Vzv8nMcOsbe@t{$?2W1mnCNO)HH)IB z0=9_PfDP_!w+<{E~|LHO7A6SRmeMedk38&MBA3`S#zU~ znRqV@{Yme(#B@AYD(_3=m`H4jcUA1_q#d$RA3gvDJ#w zr4bK2+&Me%4;HBKDExF^5DVO{Bq87yK)^_Y|K_5%h10g;+VPhCwUL9d-KRX7a&C~! z8>TVfV%bUyeM4enRKlK`Yv7vsd4D7J8cQ!kf4-`lUZq-kRDzAjJQ+4(co6`LTF|bn zrl4yzg&q%`HGnt*7yfyxrIL!zGu!e@-*5GV$r?wdLSsdXpJ2q+iNhalK0Jy54UY^yGr zJsy~%v?k|53Xv5~MOFMReC3Gb z&N$<1M2Jtdkxf_3*Jn&|w!Ho^C+rP#nx;pre>VOYfF_J;f)&kp*?jHOAI<<-6w7N~&J5Xts&mWEP~RBe9N!>bxjp?- z#-;R&X&6&drYMipjG1YJe=PX)_h}$gf=BG8aE)ndgRcw#()a~NuMB$9>eO?1z6I;eShCC)cdOb!xuJGMHe~5a1m{3S%J0N>d0IPkUyS{zkJAyX|ZE!s3?-S%Z ziuQ~A1Q3`2zd*kLKOv~a_<()^5|Q{2Lv|R+d=$7aIe`p*TCx6wc}PoqaGia2c3fHi zT6;q0prm}RY?!G)T0y-ZO zZIIC16=6eB9SmOFgN<9UVTq4$LJbu|!;Lvtiqp`1s*7@Tq%eC<>0^jRJng-697pa~zr11<6*p1wwHiyDr3tzrslw0LAQqBNuRoA1|qwwHvnb1d+ zNuKt;C;tcglK{Y`QPB^hb!3hc4RE)^_=4Nf=J0wlyqGjtks?#X-5Ec%m6i2*-D7GQ z1!$gW*s1!^@&-*`mq20PF&#obdNqIB?(tIhfoypjZmLscjirsz%~$9V)(84fAG$sQ z$sQhxlM!velRk^6hhtsi2xfOPL;2=)GD3o7wTq3mvj;4nRHizMRyAhQT-E31RaZA| z(IzV25g5E+sOw}tQ=O{Rylj#LJw5ZWVmR&jESh?vJ?V%#f~hh5r#oyaENj^+9$UK? zkrGrOV+VZcIyRI81;`6e6=83uwRdDPUW@%=*J#6fb{|sblZ>}yl>?1r1(R;_QLK%C z)ZEra;Ef5?%<_-SYSNYa($v`A`PLn-<^?J@r-v%G2~jS>iZ|4Rw@pNeZ$14bO*|b5 z|48w(y4*jCn5HWZF$~WZ-w}r+3V;DyDL*a}X@)o-BKIAO8T%GzZ)e%hkJTK;1M>Uy+Vyym@++6k4xz429Fz_-O-rbvRS z{_25p|8Y$;O)v~T`*!%|+koBt`M1as`@cnw*#8eBN7u<#^2;VDqkiD2CLtywtIvZ_ zT@mDw==77)4M-$(6pVaPQ_KoX*M^oFna8PX znsgN@?>{GXsOn5BVPE@C1MoQ+uhUGAxo)T2OmnxWFo5CVEp<~o-rBqV2D#m=7a1By zjbSH*VEmS{=rgga!p-LZGl=CZjORqplYc{2yn+h*5wzP{rQB`c>(rJmIHjEs%GjhNBO6_jH@lLZ_ZhlBP6peBKfEW;h6ZEB*34-OPgAEF350;65sGb`Z z{6m=w84}hl2C;PuqdTULOiq<%fzTeHqRRCdq|_&?sEs(N++$Lz4O!|Q!K~D$I9VGq z+C0K&x~EiI?{T*(jKR4!Mn11jfnVy=;NQdJ-h+L-Cw<}U`0Nv;v`@u+56x=tpw$%2wTu4bTyF2H`6g|` zfQaW~5Q|46QIl2>5g<{TLLx^kr`T7JAsVK97$$)&%Kwotia_aNP9Tp!3u8Z_wV-5J zlr}8sXpU#Mpr|3%)s(`rpt>d&Kq~3krjc-r+or-f=Di?)l_I;Ko>&yYjR!v=xS*t1 zlZ zPUT2NpLR17HbvAO)V;x?sYZvTtS8NVh1KXO~}p{bM^1wN2cwTHsjW1j*h0LqN=JPt6etRlon^%u$HD~ z>m2szf!`r#^no#bptNY>2)Q=*fO(_CkpT=xG)Wrw1Ll}JRC>QKDMN-}qm(-l5 zB`{9UQsa?xf`rcZ8B_31k=H#R^0RE65?#(ZFj|LUtTMRVL&~T0#cdz$30I!h9L5S= z%Ijh%RhieT%wvrc^#rY(+|TlhzT*C}$Qu}WKk!N3>zjXhaM=DWla-zRzj@;S%@hA` zp7?+B#Q&Qo{@*&AX0UHQ1xa^N1Ih_c;LSpMWzz_lja{zu^DIz7TI0`Tj(L*AkBJ8qk zf*A3W0b(_*MU{kl$s!?8OLMt7>Xkp&4)Xb5O`WRmtre%!ZKvMvpBEmtar{Er=0yJ7 z4JkD6^Mq(b;ZXz)?Ar7${eyUt$8h}gmzkVC?yu>sPrUd?R}HPn(`lHFuOr!rAD)2@ z6GD3)J32B&9gtT_t$KHjK~W-|JM#g^$0@V9P#hu z$)5;p70?7)qNG7=1%n>3%BCe84_TKWYqn^RoLu|{qf-qhoSxExP*^8^0i5UqQRu?lksyfC1IC|A6+WTu19qR z3@AJc#9cGM%R_NdCmf0<)UCioTGMJ3qtt5)NSCP?Nfl$oBWBH$c$p&4^M^4E-eM44 zvj|x*)-X{(wiYZiAFjZ#_`(a4{=Z(1}% z){%CKR>>RJ#=B)1g_iuVk*GGk*_B9&bk2wqvwlWh>5u88uiQ`b%eT2qS2YVVqA%cT z1KAq*7t+NkHh!3&jYfPMWaG8hLead823UuiWJ0 z0ANxn3V5MjEKNI(i?v0-I8@XLh8Q8*`+6Xp4!4D})4$lz`*O+==@cE7bgIWqJ9VMrjIxn0XO>OPv5QvA z=2)RAu8Yo)ds)t1)34NftkF8m8N_VMzol{vnVkn}8}3mKjiXg^t|Jl3-2?2iZ=gpm zqjQ*iMqkPI$fFFRL`UW5bv3O|R?(qEF`WSp$9FJ3#fW06l|y0FKJKErTySR|G9+&l2LdJFHE|R`mp;!+csYU ztgf9mUx=<@V>OUDCf6JLzd6x3vetX4rEOvLHdSJFQbVfnxl+SuqfLluzNv@~22JcX zvHDA*ZM)0hSUc{dp|F=&&tRh;otU0JM5}emE^=C(wqSoBmY2|08FD=x^L-=lkNKCO zW;PkrKZAwpo{u2GSHtyXAgW4~s%Vzo?|DWm$9g!nh6XVxF;1fG7*5R&v!XqAy?N>o;^-$U z8PxdG8Nv_^r%k5~r?DdzF>qZC!H%q=>lh^?kzFKUMk3O4GfT_NjtEAB65j{BQA+aX z@6HEl(@)2iBPKj4jUs{J=}Gr)7m_evz3lOf63s~&NM-NNBPP=04;GQRF>VLhN7V>1 zumk{)beYO;V+i^XjYtXN9N>>`y1YMZ`ELH?6yH7=Jdvm2=B(ugE6_$8N9)7jovsZT zVWeIz41JB`{GIQ>g>lgrXFG0>=UFdk!VJQ}NIsbl(jIrz*RM~)Jr}4)1~V@5YT%PYPByrnRg={aLh+9A}bO@Vhk}Wg%3dJ9GjORcZMby3aMQj zsEvNYxEUAA^k)`LL*SGu<784Cpun2t0OwX z({`@y{}-Lg{=dcz|52Ar4DA2ch!LNWm7SUX{~G?|_5XkC?XWX4F#i|p?KHQVC~I#m zvP28{BXAF3xw*MP+#pe_A2HwD&<^bE@U$au?+~gX*`j0ghv?_i=0jrDI^QA4mWm@*~W@$XGzky8(^^Tt6r4R0l)@K=t(bcc`Np|uYeT@{SDfqLo}8H7M#%?f1QB1H zmV5u=|R!0BD@F``Gi?h4Jf}3a5mo^h-cDDgM;~ z_D9@@Xl`Np&Uw+>9^Xv|{E_!^Vrgt?{GtN%9~|D@&5X+3otTK2T_2duot<1wpWQs9 z^PMCubp;@!(sJtGs-u|)dQ&sP<`1>IZe|1g!P$RJ04SD$^~dMhwPtzrtMPX7 zOxpTQTh}7`=g`e>TiE*GAU|?{ka@cLyh~0_N&r(mOYyz%#o>+bOwH@eZuPu4*8ZN){HEIIgElg? zG_`$l5hCatTLON~?B2X)WCZ>sPC!gbhDT6REJ^mk;)bh^{;lD{=kzlB?5p-0LqDxwHnIW#?eZZkwex9gYji32T~p2qs?O%O{Z0Lo5eO6G z>$WpLkf{r5Y4#*=N<8Q}zXY1-2%kSS)13W);ofr8laufI2=1st>^&SeDk(=!XRs`RnI;rPncxO-*h5OdWvoyEX5p zb)k`|+5T0x(gy<8MdykS2ce zimTBLd$m+A>w*ho6lDtApY+Uin zLhFYa5eQQaBO@>hK&r~>pIcLt3(Y;W1w-G^2(*o{C%S=f{(F{e$)$vkvei=!d}Nulojn=zeq$?(on4zftR$08fT~2t@w6U+{)N z^L{@;>HtrPe)C$q7kuY5dDDJ~V_MSheBqey z)c2ghRMGx993CXmkk+3ezkarx{(qVWQ9t}8EoP!6zw$kG%wOQ%1;%$eV-KsEh^Q9G zyS$BES-bb@fL6bqV?XI#%f@%$J+QRh(Sb?aw^yWJ2Cu4>7rZ-~zMVYYUs3)sKh@bc zw6nY$y9%5iz&%NqFR{Em^{y}A-Uiq2r8PD!wfyTnmG9fp@n2u%FBfFSFO7m=>W^pP`g|BU;2cFrZyIrRb%(AQH;G~yS(48vTr^}@!#$K-#avsr2p0)bpt{Dx)QTn zAxLI&(oH)|lAO*1*0SNGFx4zsLUo=n{||Sb=&f=iH`T?Q_Ga!qZ$6NVq906DT1#pB z!@ZRdXaEh59HtyLvBJQCvLwI1Gl(cp6@D0)SyixUt-7>Pl3 z7iT<6IkHo7->S;=HP&FTn(M)#I;Da?f=adzr5%GJI{p;Nora;cSIF)X;>K%;G(P_u#d`+hDxNfQxX0d$D#Qe+1+H z@MJHiR0_a+9z8N%eOI{(_?`Y}=Th&7TIJ-R=0?Otp9KUZTGGg?p5v&xkq9AncwD}? z*F-!u+2fhW!u!KIfmjtt9kcSf*EhG((lU@G&GHWNNT&EW*#BtPpzgYSX*E4^kz=|= zX6MdsKAFLNb<#s6Z)YN~RwReepBph*rg;sZEgWNy6aAoor17E6Nq@~n)@W*7#g_vhs4vo@d+^6j>wnJJyw%AGUs$0WpW~Ui7J!g zX$CF$Ymk$nOW_DY zv{4uUFyrOA?^^!@nW@gtCgGUxB_Id`Y{}G=2Hx`7OmZprI?V7n01arO^dG{2P$O&{ zFkw14zw~RoLWhN|Hldm4=&|TXcd*QJ3~Y3Ur8i=5rGYi=2!h+-B^`!ou-a{c2xYBA zd|x>O)%!Vk44G0T+x2g%Aw5iRem-?g>0u8h2I&orGJG4<;B)9_7#q`tX&Z;!J`3 zxleupT$?V!5XbHOC@uYH1b0tdv!(W|E@Y&2vXj{)B9kF`Y9BPI=2&*L7J~em@g4xx zuF%MJfu_bFPkUP8bTKhhX|VPZJV~}rVW>- z47zHv&4b^W1?vx7?Gu3d0wdOe5R6^^_abTS#?M1!>=zSo3_c;o>T{QIGpw|1VDAk( zkQeJx-%mbRM1vAkhdOPPn#Npg(YwMUeejKV4y;lnbd8TW2a@k;(6)D)a|KPOuXwvg z@F87?YjI@hHp+4Kt%EV@6Ds%|6dz*EJRY8dh|j+GH6Gk6upQD$2EQD`y)AuAA2PyYT^AK!b{Q5bZA?-QQQYCpZ4 z^%U*QARW%-s7!wh2IE7Op6$15)D{Nk8)vprIAWTHTGL?3*VEMY7 zPoKZh@b+4tVKO`yYJ&>e=xTUuzU%J?w(2P_gj{J;6v5t|?i`+#;P$W7Wnp4u#pN<}eIW1OKTl^F_< zSP4Awf@FPk7Ht!1g{^R$$`It?_R;+GEyV6hYI!j41ucEf=qVUmvfG+W5WuVsIc~^D zHAEbaCdr2kd*t4(oW+~lnS?Ay#vi^Z*UUhQIHc~TyXtD9YA;7Oy5Y2f5D~R{Kh$P zg}2F;Qg*1aX{H;QP3LqTI1#_jtx-K~?7IJ$Ue|2!@CPFHy;lWjW1;QJO2mOclr8ogzLJEXfNB zV{8;<^!>d&-V$abLTGNGDZC6*U7Ni6Ipt62`SxF?t>^{g{j0UYzG0KO94`*>=Iuyu z$Ox#`*))T6C?UiNQ8=dz>AF`ot<0+T;KwDfG0FH zG!fCqwbZi;t>=(P%XAz-=n*Hq60472U4ELmk)he#NYL=OVKW>-03Bj3Y7a~R@+nVy zSNt(9X-%I3Ww2v=SI&Hk&tSK(`?aNOqRxYoU@+vcN04^Tg1aNN*1woBH8b*4sV?j~ z&NbnUBO*6cI+h=LQ2G#j|2o#$A|A*d{^vp}(`0rZ=a#tDDYML_w2)Kc&WA^TA1X6` zKeUbnGg`6Mk8t({-HT;7!h0wou_50B4+$lCEQkmNtwK(sdsK0~;+_!+1%sgWc?GLT zvdSSi(l{mG`q@Fi0k(Aq zg+$ZA89B$3C^sI8J4LRTEVRiqlIG)UR3QV_crORPf!$L!Mm(+h3>>EDn9HqT!>$>$J$p)QF1nQ zGX=r6MYnLSf4gJ)T^X{ha3Aq>{Jam%j#v@TGLn5L0WU9$ITE7mMyNhKby@9WH#o~? zg|*^)CdU`BWdV$^;3@CH>MiyB!{qBD!DjWw@px!`Vx$hXoKq_Pt}!m|O7lgfQQjo^ ziA~a&N@K;%&_gdM8Ma-4;I<0KM3;b#q=4MjlE*bbk%?BDg%KKSbw@Ykf>@%XpP2Y! z;0u5qt1EN|9jXZ4L45u&`zlA{DEPSnp-%B7h*jo;0lL(BT63C$A$c@IK=|DIjTtFH z7a>Iq^_a_8l;r_66y$vvGRz9%GCKnzbBs{ibxhhpNRHB|iTyc=tm%_$yF5M{TEFiQ zGK$k>cl`1^kVMB)U>=J>IH@+}NkStCiil5co7-vt*!pnDf-$5dtu_E?!|f8;NnUg< zjb~I^Z~dsdtNYpUqy1`e46;l%`y;)Fx)2eFT*(0$-*~=1s3pV2iQ|SDwB(s7xyk^X ziPR8T2wWBuDNR0$mF7;%wvU)uS}(8Vho=4aJQUSveKzipA=jC3`h*SQe)b?rg9<%g z!2CU$nUJ;%Cyq-J_L7$hAk~I80LlJ{_%{xt%K@4AD)u4@$fss8e1>J*2lo8KAO8$=#pzZ3z|Ww(O5suj$YB2Nvdd1BK+!21O}L zf2;`x$rEC`>GGhpwE}Y0Ej)7~zFugpbLYSLD{aIe zSuUxNdta%?!c2R4eNoTf+u%Jw5-e_iJZO2D!$^?g1a5#>2^HoB0%+(e`@F?CAh*@H z63CXZEikbGCMj`ufNwmbq)bRfhdHxD$3#r!28l!lwTB~{cHD}mi}BCC+vi#jNHNS8 zzDxunHpW7`t#Up}r0Zo;QOJYszI(26+nym=E^;g{=O(#o_$TOHmY}dcJTtKHcQ`%N zwWt*%5`j$xL=2S^>liMmULi4s4Ti;rTY#H+=GE;-2DxIl<2nt3sanp=)(Cx&mA;@5 z=f{ZR8$k1=%O#qiRhE;Ick8u=*Zhm-mJXzohj<$aFC!3RW`=W#WX72^+dF9XF|}ZxgzVB$ow{t%ovKQ zg!qt+oF)pwZVCV}>1`}TsPN}=g!t~J)vc%4#m-IO`9swC72oHyb}Fij&C_AYw$|G` zjtT5qI~+3gqhpLe>HD--L`u-@#F|1XsJ@MFpX16s&Kv5(1zq-{3ke-8Mu5DSA5C=; z1x$)DHP+|lrrnNVg7792WpDOP`LmPF2j8!(j^k7Mb*750^=QTgitV3Fo{mPAqp90Z z*YuP#XsT_ZTbBiy^)?GUqkD7OBdO3Xn9lg_^-QkrH1`D~poYO4F`WbsCskqLMZT}R zj%j?c^R@CsQOwg-ktc(^oCo8-ZwyM_FqvrGYJ$>Gbe55piFEVY zq4bIZlJ#I1H`Jg9q$b*CQ=!l7}mZ zy-CG{19p_m5U2P-h3Noc4Wk!v;ZLMWr1%R+LV_0Vit*;OkH{Bz=`hETY_%f zMwEKcNf&J2>J8)uSC$qYLpBg6;RI4tk6jb2%X6blwg^|_-d6OzZ&8i)!Wb8? z3Kr!pL=I1eh0FZg!?H43N^3|U8M@S8;&fuYe)f8i^&TZuU(8C?x(7fs3C zis;ZJ-RjgHkC`A!Lmm$8_8>rsssPr79me`~gL{5&5gF?X7M#MR9NMavmmx&?0fh*np}z zJ4F~JUy|7_kIc;~L`fX|+vS)m{W&howYX?^`YhEQW-~|5tkN$PjwH24F*93t&Q9k zuZp*ihxcTyYOtg4+O%91rUf1c6HM1g^y%%5fLLR;L`Q{Q;jd_086|2;z`B=S6RE#so4b~H3bV3R zkvAsyz#6{(tq^a>0YBv;n)d_U@vAL**r;P}%EjX^?QuORZ;i4y(U<(anCy$bB0E2) z^04dI4ue5{^V$vs}7v#!OaUcu=F1MR80{;|e4Bz(n!gDK?B4dKKG<9i z;PkGD2h8J!IQliYOihTo^aD*xWZl*nnskkF;xjUN>bG?K!n9>dZ~Nn=aE30SkrYYT z98YJT6#;F7D#U~dkf2shb`A(gZ4st~Ida)sA%(W?e-F6eVx-RO*a@;svK|H^Kx`Yux$0&zSl#BC9DQx}B6ZOS*b>K3|Hd^- zU+9O@cN)(`UnH6pB+pE=u6&c6zHfIZ+q=WiA4wa3St-2ulNAb_!krenSZPWNqrF!s zSySJ89AT#DkNL!)f%FBZ#o&^@t|@g&CDxOwCdIi1*bI0zILIpvA5&LV=;@p#7VC|>j4}<4be?=UnyrKa+_xE(16O)LT zM#qg$KAXDDFl!R^;3%Qkk^y)IyjrrzJppZt8Tktlek73ORvgx@tE%wI+~tyN>-Dds%QOQqoHA^h!OrR2` z>v!Q?m44lrcUDzaYr7tNd0zG}yl)~-#@ag>ZrEOI-5WHq)QH=$m>M_VT z;7_y+F+bMdr`OUY*AtP`|M8r*cdEBw#b-?Y(%T*or}4Bl0LJbI|e_ofZ}_d)b^G&mDu*KAc--KeoEK-&r<7A&aC z%pw{7=&i5C5v-q(#x?73kE)&}#9mK2a408M)G*}Zo>ZZQDU~hOQhK{Jt{JeUB|Wbo z&xTxXwM+v$x6{?OppKqKrwmH2JZY42CCEpdQL?LgfxFOQgbkP#is*cOYwj;Jk0ke zG{j`bqc?8N_e?mN3oGJ2sqUbqiPn@z*N_^V>~9&-V-X!6Ywg(bPWIy3JLhuJ!V29z zC>MUwf%jN#qNqkY06gC{Zr{En9F|JzCBZPU8E&PX}UB^imPtd-T2p) zGH;Is!_}ET=X*JXikzYlH$D{su7Pex4sUNI?~fIt!U6UY-WZb-^K523-ozh?XOGsr zwN&54upPp+C=>8J*s8TEpR$>;MBA!)%Z*kFQ#KmF`Gms#(`Ot9Rjs@Zi3SB_3Lv#O zIpqo#oLleF)p|-RU?!!#dEfFn4{<7+aur*dR zuF*xkI(t?_f0;ZADKJSlU}1N1!;TD1@fKFfwaGBDgf1 z=ww6&ELL2z;(N92AcisLIR`vS>SX$%gePYhE}TrDJ6Zz!xmjaUo5JVS#*}6`wdMG{ z4r@}TgG+IZa;g5X{|La9JD31pK%l>LOYOHb5Z(O`Jsgtm< zh~JYd*1$UmF?6l)F#n_9JfW%Ya36qP*SmP@5`E|SY7e_8Mg10PU^bnyw0%Srbx%gf zsPjdGdvv_L>SxU=h8%x2Z=)C$Y_*UCV0en_n@n9T>iM=z<8^#50%d12jkxXeZ<$!;qefqLa{0CWq`+Gi0#ap zl7V{&yeqq*3>;J1Bv2@tFAZS!VQIRnyJTlViltgN44O;1aelz1>OR7Kl!d)@^gi)V z0z@dh&#bC(ZR^I5oN?IgP)dOt%i4F7IuzV1T6a zQHekor6@s;1TH=+nw*iF&4bugg}B<1`_jJ8xDp45qreuVJg*HP0?;?{nW!n+26umzfC%vwdqnT2TN|iKlrsjwRk0 z)YACK zBN^{N55^j=UgfUy)V6!GE@gaLySH6k1CeX^4Isd<^?>556_R$d9e@T-NX%By1T5Ew zOR#GI1@V^GcIZT_(1Bc250eF^u1)_jZo9vY25f_5+yw%2Lz)eH7<}6*4DsG&Q)5*$K(Xb~%^02eo z5+qM|TtJ=J-5uBQBKl48o(IFRX_c4KS5`H~!Rl#|h@HIWId!3phG^x4l-tqEqr zvU}WQY&2S)C>YZ0+h9Yvj8@1G9bx^}vpNN{Jy2?i^%>evua1c^wzyGb5hQBF8O+BxB$;rpnqv#u;7%X999%wPrDrFVKBj*6tTpJkevZ1W5phd_9*- zV@A2HJr0hYp$?%?u1r51o=!8)Tdc9G&Y~7L1I+QFvUm*mUmUFMh$>2>t3D@uzBO<* zJZCo))f1DAnI3+QZz}}+jFKVxdp7c(10@1bOkThN>R`K}=49dZw`ZT8lzBu1ip=e`Rvd!s5M93L z(1g3<=RIi&W1i)rypWvBc6YkzvOrv`OcVEn#5;&!^|DFmfgY!&JMD;Ps0v_#MU2^c zAyXChS4Ml>m!S4Ds{M+x0@E6O6$+pI>P#{|7x}udFa!orJ6~cbS3RyoF5fL1XE`Gw zQif!WDd=?YaPR~VYOV5}pix;QRDvV{gE>Jve{0{o`-tjx;>JCI&6;Vve^D}Jno?;3 zZij8-s2gHwc_2#j$ztD}!ILg4vWVQp;%{zzVA(bl2PZZml#!let72=`9YmOfPN z-5Kt&Ge(v>%(?Ndo*79pRWArVTFs2&*U>hxQwP!q3<>&hab9Vu4&o^`B1X_|){E-} zcJJ1ckW%mEOy!h$5oEM?!h5$QN#o;$BTqSFw(f@N4Y0)6c));Wk_L8Pv@9iBqkz?R>rz`iOxyAp=@Tcf;Yj)pRv^Vd72Pq^inq->j?8*~J0*X&+FC{zC)_Rzf34V?RA$648&i`2k3Vu-LV@PL`c;X?}{ zCP&|f_GG3n#|k9Xt2ft{MBI*esk)U$CDyss^-FF0ePx&xDnhcT_}60$S2d_Vc>qgp577Ws%LPGxs4h zZW&41iVg~Sj-I8f=kvY7Y^B(rQqCEZ8oN&ql-bo;XXa#?qJtLbk`IbMH-|h;4!4h0 z!|pB%@Wd*H7iK(Y^v4X_a)Dq<_9fxMnnnRySXOZ4VZS=HR;@M{qBN;e&%R0Mk#1*~*CgpA6uL?Zv zIfq>#e*8nDZCmPqocsvZdFv6ubx!-TANHj9y~DwrFLxV0^-|8ZQxDO1-G(~;?*jDJ zfh5bS2qq6E9gBuiiGWeIK0R9$P;?JRQFmrUxMQ6-*;bHSom634G7xKcbKBlp9XXay z=IV3qqbR#QEL{wur!Ys_ADIL{Fs=#TVJY~m!_j_EJYP|R`tV8uoSV(#<;GqTZd7C=We!vi`AaeJaIR!Zo}B#-AtNT5{YFBv}I>g zE0Z=;$>*$rXhvi|7Np5GR$VH(lwn?h2W^-rLH9xL02~vi$0;d`aw(OsF+gm-Ds$}` zEQAibk9KTb_^&&D#D@9@|EP}^8pDY9SETlDWY3aC>YtaDZ=ZeWN{`YJFSG8@YQ6GI z+^v!%E54a2HmKv?vK%{vi{k*gD9M<~>@?FvY!kAV&lP6snHiecQW3BmUhWuJ+3$0N z1TJ}rfgFaWji#M9BUV%ZsO0%<7%}z#$iJia;F9Z*C6E zO&g0=@n8r&z-z7U1V~bP6Fppw+}XUM1iwhH#J8`sK?o8L%*wN{B-)`!06yWr&IJtx z-WFpSz5cDMbIdWF*Wj@#)c6Jv zVcGAvyj-kMijWy?31(kecPg$wtWhfY-Y014rOBnH*jRc*vAf&}@#fe=8V4>#Xv>09 zEjuc#Aukr46i5kRgKXGxl_c+hVt#^(tie^NC<*SbusJx_o5dLc($9b<3dYXJ^gw|B zFUHOxMi>Ujwr$(CZQHhO+qP}nwr%rk+qT_3|Lopk7B8ty?JBpDx;LrC(f*EjJV}U! z_t<>!LW|yRWS-Ke3gs+`eS9Y1O`zw4wiBmfW#LAT3?b`bw_}?V0SXZFE~<|0U;mm^ zi~0b8&phhWM>8saXZ>?c3N6(rdhvRvAmC;DW|(Z`$*_JR2sh~-dE>+Els6O2XzlnrrwcH zUMxM;)yysf<*MiG!ocRy#LWRgXc?;;YZZzMhgobGX0Z{>d_G_OtklU3~EA=76 z|16<#13?3aJ(WMFQcFLs5t9rTZ_oz}a=^fUB=P^&$h|B=SWgCyI`9##ZwahB#s(J3 z4_mL2oX_hlRwGDP!+fy@owYA5wZ1qbVQurL>zsBV|Ky}>70Zt2^t^(gu5o&^Dm)xR z>j3B@-g5WpGNP)5JAG5VrTGo)7rn#tNGo1&VlM!bidjO8xu@>mVjXzQ4ew8ZIGhP`x+1sX7Ui`Q z2wDQ6sIwBm{uP3@GAc08ItojI-LpOe^5__S9|fEqYQ4Fz(NdU&4C=iGYF2{CpL8=vd!jKjcX>dz9g^fl zW+t8SIhm_;8>3eq8~eo}X;nd94pvvsB%rS)Wi9J%=&Yp1lK1|3r-;zoHd}=%7UT&pDpZ1{kw=_Co1QSRAOQLN0ji_QI;r3W6$|_W<3)1x zPhKycy?@8lIWlvq16D+j?C$cfm)zZ5A zBzl4kvT|wFL(8CAWRc_iZlA}el*#X{kSP)5)k0ba)-R4*oH&)t2DyzRN6oW5xw5v3 zZu6R~3O%iT!K&M~$yWnTPS=I&c1v1!N}*C3LE_hZNwcR7V7B>Fymytr6f0=0cEh_0 z4SD{M#5aXiW|tF=9OPzwIg%xtM(`#L!cE?7x){YWEHBhc>R++yPiYp^acn2#d8T{f zhm6NYd;>8D09(tl@?U1na9rEnd?9>cXfRS&N)MX}$Q{-$YS^^vJkGO}O_X(e5UI)T z7N{k{ZJ=yJx~$o{9Ric$eS?jgD|aE{F8ygs#sr=pJa$a>m510s!)0uztuydOT_`X* z&2svUuB6K4{f;%dUqrTFvNOPNm^EgF3_-PCIH3ny4sXMYjsSW!U|pyJ3p&F`6@>iu zDSQ;;byERKN;|w#fRq?7)ZoDy*=f{!VI9)g_gv~y{&sY9@IURI%L~b;r?sb+>OB0c zV}wG3mkd7RRzTy(Y{9l7*BSu-DRx}o8oYxzwGK5`zPsbIp^=$5X zZ;Ee&l|Ub>DSY>n7- zv02bv2+^~pfB3~L#Wo64@%+cvSCcl>9-JVkC2yYo^0KF?RXy=E7HdF6RG}niBYYxB zJ#mwHPM+9{=q*=@-Nh;!euFK#7e+7W@%Sb&x#9No5gcJ~&IiHUOx?|$hZq92Aq|A= znzE;1N`BDXX2}lDyWnr=MI0&Z7-Gd;do+~?81hJ|PeDH{M7gh(=mC;Q-K$IKON!(4 zv0~>03iCucPccpBx7jMF5aY13rpWM!P#~BRhh4zRQQ$q{5y_TehqTuOg=35N?p-y& zU?bF`Q8Q0AO>wOzs$2D>nuYO%dgLf-%5=lC;&DvK{{mX0@=AVPvtE~6I-~Lqk%vu4zJjY2!X-uI+RIbI&t)>i}mPX01X~kn8DHYT_|NJ(Hd)K~u~v@!9u~o|t%9WT+z|rd^Gq%3L40+)K)&K8%iOtjz1R7Z8VQlR`L%NI+p zQPboUb$ZBPo8=viFb4|uSVzERnpFjVg35cebT#-4`l4EcxCE;gOrt$2R9Wrz#prQ1 zi)L?A^rB2ufo_u~9U-f0tgpT3cd3#Vln+Gr*eafRIXaIgRK=#Np&vzL^;>y_rVQXq z4#Qs9v^<}F=dnyyr+qT_UdobT1v(d8m$CRiIjHvuYt5%juuBNqgsnR}z5kbpDmLj;t3j35$K2_-EYS~B+ zUMz=u85#-@&vj<>X~$2@f0ww$PIMN@<7ut0`)4ZsH`|9Lf&w-j@KlFij4oDHx|hnb zh1l0?G0H`h=Q<|HrGYVd#E>{&77nXk5<>DMF9NKxHP#x^=D_ZTedjRBR(6up!?7L=7pxL5jX=ZuOLg9#<;X*jhZyI#VBl5tvs5(;Ww3&* z4>={wRYw^+|k_oTDEDqsIHQqr41EEP2o|qy+hu7c#g9u zLZBfvFkIRivAepS)25Klmb_SRkayH4bf^2&(ioE3BY9j2@P0M-Tg#r!VEaZ?=eAQw zBNGKtX4RzaM7pQsPE05E{`l<;`(jN<0Opb9=6B2vxPYBeUQMm z*bE*%0%uM3QhMIGKb?Qc9a;XBrqevp4e;o^nbQvvePRxS#Sw6cVEKZZv+|b;eb$~_N2;(U3^ODhQtQcW1^j8te8gzJmJYAoQlV88B*U z-~--$FLu@mdTFS15gZEFugxntY&}eGAtDT*{L;#MJHCucmI<|GQ~s*O+*P7_hU*;% z0N|2~_u#`(ipm2PF_hnlaVEw-N3GnDE5F0DTM8w_*`aLs1f%~X22|H$8b=x0OR99N zj8IjwDPQ7tk*4m+Xj)pK=7yfi2-6fyZ}!1XJGlN!sT;*!pPHt}M1Y5<%vr(8p9fNbbc(%$%b3jbj6KI> zr*r^D*m-|sf7@)!qXi}11aAx6Vy26mk~?Os2eq?z(|1NAWqo34`Lzqe*f`TbuKC=! zsP^>L@gt*n3h*=i`MxsYIq}nbUiJs!vP}+u)7l0c6sA9T&w_BQjMONNR6hB|-3R|@ z@SbGj`>(HCpVHjl5&3Auzo)Xgdc?l0^=_YF|2fV|x3tMkhF=wJ1ks}-f1^Rr13k7Y z*nui5QG3WOZhgh=dT9=OLBjiyXvr7G`+c*kGYn!}QCc6@#?N@Y4Z#Ps{Wdy6CnRhC zgFvL+;^Otk?HM>j-~t)g%cAN2Gv~?cIi^c!#UP$|U1{A>zvsdC4V1AChAp%wkY`we zVD$(t{bhMTdX+#kwfIuWLd1kw`*`_eJnNmgB-vb(b?AG@d7x$_ zMZh?$yYr4`5t9~v9`3Q<1Z}Vp&St~ELNfFO2Ri%ig1;}ZmKPM!U0S!xdQ{ZSIF@!fL>B)8(lw0oDUF&3EH>p`Hu1^7BYebRCci= z`;c-YscP$}vYUvcsf@|xTffLxfp{$w-3f?FiGLD5lMh}7#)2Upke>7v&(1(}eEROq zIyT3rF(2#1J84~a_&vSxyxa7USYDR_+y0@q`$WpVmDEP8t&cs~xM)h#$@Qb1Rm{A0 zs^d!C+MNmP9}cBjJ@~0oFY>hQaD2`OoeM_oC7yj>b>l;^_GxG4pkI|b?w3-iBh7pz zRRi}(uQ|cJTk4SxwFC9*r&P3|;(i$or2eWlfjJ9w#d6K`JujE=O)zJvligV($QupR z@2h(Gn(TlCf=lL5fOtv6v4&I4W(pb^&Nd?aS@=6e^tC3TXOkoZdAOVagj3lR?^C$Z zqrTD#nFGY$a&>j>cLl(YkDYut6xQ=o`zVc6UMl8`%U#KQTE;>jPx{&xr~j4m#k=F~ zupY$@HknV4yp?$HeV}80hfWt5)9iOD7Bbj$Z^RmHCrHxK(>JO{b!n2Wa4S$7PTSD7 z9$w{Dw1AI4#Lnnxr|{`w6uPzV{ek?fbYBXm&&^tLYPAq!Z@@CujtjX^gh=wORsE?- zAJ#=4CN=r8gXx#YuTYK+*SQ~v@ba$hD@4hVY0c@+HUoVD3>`vKD|LGu1&{R8yHLAqMCzWPPv^y za;O$UT&(i)_VkrP%@Q}zILAXGW!A#{LzZM07AHe%3$#X~f8jF7B`%r^j?HJx&pnVN zcOuxgNb%7*TfXf4f&=^6Ieh?Pm8x@MNeb!+mPuaLd{*vz3nN=2CD!I3po{JV7e z@HXE{<%>@%F~{KZS$OhMUl!;+eej0B#p*|FNKCNX(om3jX z(1j0Dh3C_+;=%)Ups?b4;eIIvX$H#b83)z`}Fhc!K^!O(*c= z++|OpmT+>Uh|!8|Jyju`*Jj&8v2Q-*4nG07AxP|<(K;wpmk)EaWco5qI(sImlFft!CN%gv{LG9 z04HT|lJR7B`mnMU;^*#fX3LqIz1(=!oH!`o|Mahp8g7aDwphFMb^Hzs$)+^|3EoXp zl>W?>ep@;84XqfkBpUn;U>`d=oz~q-lqAT&$pEGFjMn0%hP3EV&CDpXGtB!B!%E<$ z+NVGyut9OyFEZmX7ROjsbkiwW@601c5lle=I8Hc2?dnROFq z|5$1kyp;MY7p!~*YqtWTxh-9Id-9voXNf_c$(LD%C(*8VE{K#0MpkZs=n5wHx7 zD(BgBPFVQ$;>hp$u7R`(s!Hm}bc1kyVBe`RbKh;!4MM*6o^Yvr$ z*XqV*oGMpPO5Bvzna$77CH_j?B*?<%M6*`Y%hecQB$?oA@@^4~6by*=gO}h$SP||C z6DpmnpW}%Y53iy|;YD`&2PMifuIzovLOoJFR(mqgb-yavZ`D1^o9wO~&;L|B%k%Jg zE1cbq^~d^~MUJX$hSEy~Fn5<%ALlD&0OZ1~N%><@`#o5SeuZA+({iFVoYrho50hmK z^10-xZ+ZPvGot+wg7PQ#B~m@ltq=(!*VU6s zTtDjsW5&{?7H14{(W8zN0B{ZKK@Eu`^3NB^5+Ns`uq(29f{$}m9hx8WV`8jJpL6|; zwdeZA+gc*&bf)uJCR9dvJ*ON8@CzggItC5$mF|3I3T=N*G7^wziQarQC`o~CDi-;p z-KiHtBAI6Y8o=?@z86}5snL$ts0xYc=m2gjGlYmV&}%~!i$m5tfs`3MTG0wZxvBgr znwqDLNGkChO!kb&KyFz62wBJe=n@1#s2sjMw9SUhI63?t3YQf&)F1)6S}z?$Z(9W~ zrbh*UM<~A;^yKeKGZ9+hd~Qw5#5nW0oR>W})``i62_lyIegyT{Q+g0l@|f$yy1+Nq zrXR+|FV@9^H%$b#|8qfH)XWi1WWRXxWK(g(A+Jjl+Y^1PK!Bn~H&es_iAHDcFQUR> z4&!?RYNRwNeF)#Y*V{aBeRrcNh*F8GPXV5+Bq-SL*fDFyut21Z+XLHLRLxD+a@aci z36{dr;9V1)Z>f_1Qbv?Uc1_25Y5V}=(KVH`59L1OGMGR640d)vJupA}%7dx`V|Qnm)1-1;+T^|GeZlpo>+=FXaN|OpX-EVY(=)qM#Bl zyN3XEln1n86?IA!5(gFDFggAR*5eT(34C>5EV1B;Y4E8FT{6rh2^)RhC|XCbFiNR^tS%|r-H zh{GExpFaY;3qOe>D5{B1Ps=^+gZx^iB`&{PoCGqzr}V9%uZ)sN4 za-N}Pq_AyMHEt_4ONL>COGxTxwmVk9ito=g~2= z^M1a&!iMW&399n2ARL{BYUKOrf{LvLSFEeo z(;~Na8#aN$`MPd6xWos~C}yJi)w*pDtcalgHNL+cF^GI#UiXublO+^F}p zhGYruC$n&RVe?soyNv_%1U` zKu8xCID`jvn41qxcdLhHETP`ks6V!eM=C?IbFyq3p0KT{Ak59d@2FGpT1dCWId5fF_%Lcu+5jpKQH>JEsQX!DYsGicU zPl_^S^BJ?!h>J@G1aGvHGW@8h6!F4q^Rk_ z=d8K!-@Gm#Bty9iearf_0;A>HZz5^rte$bxM~w&_W@fnCmX&bQOs-D{pw+G^HN8^5 z6>6RKzDHy1ZtLZ4sYEgiGnSDx2kI%j|5pWQ`D~u|zI0Hhxo6HuPj0(MQ|4bj$6)OM ze3cLeLWobo&6fhM6mnf5hy+9(#Gz8Q>d^ez0|Hlf#me_nDs19&1&p6Sc#(9$f{>rs zY&rKBMsv&U&n>Yb+m=$m_=o$ufZz+FQJRvq;S18 zhq7Y%VBFr&*PBn@g}@N0oy$G^(u_Rcd0}7>6eP%B3m?b#Mdh9(T+pI~Mi_h9 ztMiUKf$2gJkn)}FL#KG{_UZlcG1uVH`8MOFK+5J|Sh&-wftlX7VvBz7;_3UzEo1DB zAU(5#=JNz$H=0(}m|EPUEUT|M9^oj#bL#AW#kc7(OP~C!4;-c6c6=qR-0pNuws$9sm<;zIjTgpBD3 zeJ*v>Od`8x8wb@-Em(O4(Y=;jf@^R1FA_2aGi#KL_4QB-5(;C;)L~@~9zdH$gq?Bm zZy<%54VWLNkBTz?(0-p#uH!Tt_Vnv|WmM+o#gBxAj|Th01Xidwz zC`D=}mwvYw9bTz|H@q`$r zqZu81nBdyCrrgnYhJQgpOt76FnE~M<<~cj%i5&W;IJg z@q3@k;TOZR?S&;B9l*fjsB%?g^zf_exEup85kM6&S4Wk)8}J{I77A$BO|9*-n7N=ej2q?S#V-;)g5(Fjb1&2QsA2HS$l5o_bn^3d@#6Bw zo9qu8rlx%zih%uod++l-r!e-*##KX+C17prQ&? z7$wtOu%a>b{(d1^ikSliU|##)U+v*n-?% z=7>15q2}n@PlOu59^2_Yy;;?_N$-^seq{G1ybS~kv-Uicp%7QIH4>QfNkV|i3{$ng z%F2iWW&P~+DJ|ALj1GN4ulzN?p{~}hESUR}{D$`*scG@qJSSBBV0TlV1lmAe)i^zX0vWi`N4VSVmCWOssA!XMl*A5cJJR;k ziFXwF#|l0>qn+q!7pbY{lS#dNCeZOyLArEl@-~7Pj z(J5)*;DucHVOPDu&1J7dY-zpbbNYB=R=bx;A@*aC`QXczJYb-hdceQtUOMErzz=3_2{JI=mCA&h6VqP<4nsa9X%%-+xqm}SBS%m zruD!&yE{`av~cbSHU()qhJL3kg+fjxGxP6Ou%Fg3Q#^zH6O8o@KdY04v;f>E_Ny7= zPtkuSxB|24H&U=D(w)nsWYv-Q-}1`}47J2CcHvNij_4^hW6X?jjHMy}@#kRtYuw+8 zMqd8n>@sSV5~WoDeL$q6eRX{7>=a=k4y&|DZxbX?5hpDwuv#|@APqTOjRuZ4h(A~m{!k5^O`(9)u^LJxq>EK=XiEaec6&a-(>^2c@Pr%jWg6Dx zMc>t%#Lon}%jMJI6naFo_H4xFlGzYw?sN!99cc+JXx(aY3NX56HRm{rJuY5kCn#Gq zi$XBNem4}IIu=RXZ<_L*j-3Mi;yOMeBT5&J-iMqWUiiYT_d6YVYIeV2LF>7C-z^@o zg>=&ghC*ttI$oh(`!GGGvMK~3LeWj-Kjk)S-@8pO1wx_suG8qq^t*q97~BI8UNy?% zRl{~R3=35O0CRtAD}#SQh(Ces3QVbq)JX5huY2XxHSHt$*6Lr|KX14tx#YdL6wE5R zM4x(h2ofd@dB0&XZZ{vVAA^dy6z?z*=-09Ih&PNE+R|fy;kYhDoLKmN4yKf{EVSDG zO1vay7AxKOb6WA)FyWNC(IRLI$0Og?AbZv3a{8Qn%3+qB3>>rB`X$wq> zf_jXA!pWNhBg1XIu>pEH06 zAi8m9teJlHr&C+MlX+Ru*gHgx_c%kq$dlU-c0zWFAp!t}&eTGg(i1b~jBnbV*Sb&j zeMZo>ReMg4A}#_W@%4xEeQurstAKvV6wh1m$kX5wanD-8fYjmBBbBo3$fZVNvOX$qw1@GRqUvmbMs`YqHzEe2KD-(Qriv3MA$K0d*$$ z;)JpY4Q1xj7=&+ax7xv8q^tw#!tlR99r<}R)Y+55$$|qkAjGi%(->Z!1+u5yQbrn| z?=Clka*~(gWP~ub1qFj*4O2h2$+aoeB^3m|vDTzKBbbq9*~MF>To&6EHAqAI6;6LAre!Y19hM`d|+kY7U^dtNnuv-)ramE3Dv%`B}23B z`*tYO%lSs1SmfUZ5<9`pyg@{8H#ErDw_Or_uMtwLr&gncoy>L2uFb7<6k2@~hO5A1fBpy4|4tap>oFRBH|srr+UXmNz*1V_8t6)fmpVFbT4BC5}iV*NU|cMCul0&^yf;-b%c&*u}BIT*RzcysnL>kz?{> zsH5iCZX>eV@>)qvUCvA;Bh(LzFI51Qf`WspHqKx;fu@$n0VU{}mf>s|hWdeAN&(VEKG zCmCtJtf>#7;nYGwk)^$!RH`ow_oI7N+TZpGadr@G8sDoY9VXLLVytDNe0oUqxse zm5c3i?xY-3+i7NPH5W{LMLur^u0ufSqT51jx!n!Cpf;~t@v|2Dj8XQSJgqA zy`|DoqPa0e!(0DvOS!xEUJ-Mly2fP34}*2@JXXiPYMxFuoVxSdi(l1tyc`#qn|l<= zN7AcJmuctlBU)UPqDz?M9|bxYMO~1`x)aH!`-pjY;lZnvm`@@!uRNr){t1)r6L|9z zKaPn1zQ7P(R`BY@l!v;;=U7u6zMU)%&rrE4j1vIWP(xcRiXY8le&N5n?bOGax#m~m z2&IZK$nP$j5CxE*h=0z>c4!eml&^aBz|&wPDTHQK>I9q*C1V0O#$R!y zF}~~}|N1xkwARDx9H~zBcU9^3n?rfis`ic1JYS+!@i^Pk?2!3+LoKAGTp#M~tD zRTClPN-iSMxFyaw%d=hA`!ItAEB6>Sp1_?3_wG>DPj_iJML68Yx7UAOAr{2 zaP*#p2vT-aTAJo-86d*{39jb9=aCi_W~;Hjx8z7s;DFRb2O#BS>ST;XHz5)2^$YX| z%%a&ycAqlQ9OiCL31zz#Vd|K`I#Vth>!QkEd&kRXCv2;6vX_Vl?+T3=;prBc%Oj?H zc-G&je`2ITf4nmrD7b~n#W~Rt9iP&N{xVm>--hw-Yb0Na=2(dK-twv?&|U;69l`sq zY`7+Zj;I_YDTl?Xy@IEM;5awW^enY5m8Dvc*SibBOtLxupC0Vn%a@_w3sn|udRte>3q z=5!f*tWYxcgmfR3ru{ntLb2(yt?9pXxF)?VHK&pYVtZR(FiPmacywm)tTSY(ZlHke z0;!Wl`0(X6?u%8~F^obI|IzHBremev!@IJ5@Fr0qV z6KO@pJNhMixDR+xCGi7l1cae#@QvciItH@9^1k5+K9y9z0)3*Tkg4>-?BhZw2{15mI@>t^OnGbhzLy&t}eLE$6ZnFo#8zF2t^W@75CuA`dTe?T3AuqJ!3kr#m{Gs;Y}&gU@=xqi$Ad)uZ~!IH*UPMPBm1h?ev8Lr+eQ^Gdv+Z8AOymsW6){ z%USv2BtJ<3m`4zxOrn0}Mv~IZ*ECHQ7~6yZidI|cZ7V?KF!DH8z)*9INvLi}p3M)a zHP27_?&9M_!{%~qV`w0 zeJ z6_Ni3Jk(g9zR^Z4R@{mii_HKxK*+yrR@YY8Z#{!R0dN}}8AZnG84G945uGZ2UG*($ zC|X3p&Y6;n&qWJw(=;l)x$5%?a>A;9AU>a&*;nREkx1Cj86PB^$^&x_N_a}OOBs!V z5-_?Awit(GiXiKIWUryXQgbxTfC=G-?0-KcybUQ8-ONtm8ZNAduKL z(@87HW4y0J>NUNNR0cAW*~$g_3##?#5@NDvyBG=15z6J>g(ObmgVoYTUbA#jF6mYseBaG_z6%A=>&b+^DS``G63>kKOb`cKO4 zIznA3ndKe)OXt3eQy3GfTC!y`D6q|);5`1WBD%m1eEG~phf05C>9kZ7h+_cS(<|`^ ztm~dpystSRvvF$2_l9dg{Ft-rtC)~2M>!AUTH1IT*pohhY?V7H{7@cF z0$pdqveP#_Du-u6DJGDmMw6tY7t}1{nDV>Ayf}>dmD`_-u|_m#xjAeeJp+Jr;1+84}MuO~A{?cg*Szqg&r3XM(IofaZk?yfUGv5o_Ic zA#fygTPoik0zewBUk3h8?d|zK7ievyOdK3f>W&7BBO@eudK4R}CcXXV?W47=P}PN;r4Q;e}z&xf+86wC~E?3=c1WH~6b2TG)Nmbq~af%}BiW!Yv2TO*BY z$kskR`8<*QP6Z*XYR3?tO-xW}ChC1Ez;r>W%idlB+kAS?=IuAaZZMnQbrCF$2JhZ+ z={)U~WK1=re_2f}V3KqW1Qs(dl`fME7}G?Z*Z@SBB6w+V)ZFQGVABya7+R zX10yuG}!et8kz3q8@fGkdD1hs!I&K|8ov?vIs3=;V~N^4N>3}Vjn?3^RWL<aBf{ zc!Uy_Uf#X~lAMXu$sgf`IuGb zWQg8QGnj=M7~~ieT-ovk$(EQY&eRn~QmZ33=Un$>*OeflK;8nFH*jUB6J`hiSDy;- zl-_83C6p9FyygNC#)@C>zL%yfVC;awmGhyl)1yq&Tp!r<^X!`6 zC^4^<&TV0z>)P_$A|b0FeF#xp)iUqOOg&kK8}__x7=Is$HPZHrRQl1pu%xsw2Ts@U z+)WGejPX(W@>}hH!M#t>d0ut#29Ee}RkWt}pVYcCELr@U4?JmJ2zw-?t)MYZN%11p*0p8tAUR5mclL>_9 zRKMZ0+lM4K&vf6x-O57t&~?n;VY&dk%-@|T+6fE_Xx?edKi%#O4siLOM5-4FMCXNQ zP>$jJIb3$c*jm5MiMT8FkEQUWK_OE zunnu8&yJO^Yg<@pQG?#CB>fB>;diCg7$#pEN=o zrC3~OvcxdcveI?&d_c|7!SE6v5Xa^(CI<$hQ1D}YamJ@Q~NSb+qZDSJffy_X|@1z8SBTQ&Fglu!##IjkCm!?+O zC`i+1KgOfNv%#!yF18r2=eyb`yu|t zcE5}z*sh+|10r0gxkK86gdt~u4oPHPz0kY#NO06>E@rXjB>d)!>uFTfo5e>X96*d$ z+Ke&7bG^D+N%d}6trtQR>$ZfOeU;i46rA2#Ny)~1Asbhn_VLhIcvxY#<#?UcQ_pHC zITPzYyu@%W>P}>FC;VIPKim3qd~=2G6p$!LZdS)3Y8E{2D;@KKH2!quLu;NAmYI5X zUIeXY%|NXBcL%2`tVCWioX&uFyu9@lQ4VTi#CanQnU zwWQKzmF)|ZW5?uxH)|iAgXjX_=)iO}{9lP$K2(2+);A03s2I9a z3H!&!TVFQIf2YVsd#+W-h=TyVKx3Mw@V4`gbI*1P0@l2r95Q839H&Re3Wj!IS#Hin zBIjOagmI$(w)%+K!h8#Lh-_BqqOtF4wxWSgS$PxbQm%RRTWEJvVxlu>e9*7io1|1b zQ$h42myD{PrIBoDP3E$1|B-10CvUB#H7PkQCHDj6=z5tu~Wt?EJ6tXKb^sLo$RCzksLpaKOI=I+6nQ_{#uN0aTqn81|3gNfG@Ia_+R%ZJL;b*Sca5(!bp zvsQng7)|-Nh@JOPzf1Cqr7t+?P4nQN50$uy?#5qytKV1)LBhz|=MHpy$7j9Q?C2Mi z5HrrWB);5U?!}=#&eRmp0D!$DCb<&ql>~iYx#W6{Gi{95mpc~)mlive#WW!E*>DBq z;{RFw1Iq7iza*r(X%%ag>o*A@B+-luL;M$i1o1V~xLQDgf(N5a?g zVwdh|5kET0^E#xS#Iho*4V|=~+D}KmmD*k8@skeAmm$LRfz)ryDeEQ*_4FlXjl6IM zDSTv}_|J8WHy~y3RK+0qglPAm{1ZBj-u?se!F^Lv1plV5ppAL)RinMjF{RmrJ~r1$M#6>Xb9Q=Eszz1B;yZW9Qx8MNWq#&T`zk|3qQ|JBL1Rlv*u=lESaV z8$26X2*$t+=oD$V;+lo5f|Q8^=;`qxcJ?fs(bd8oYQabVB*`Yif-v7J*+1(B(znUV49AYE)CjonEWEe|~CLs|Q`XotS* zqhPmG+BL+%Yef0gnjH!=lY<_n7ooNy)~@}HSFuW3Eo73y7egTwGlms@k><`~lY#k+ z>s#pXiU%hMZ;lyEVOc(pVK<@5`WB97;8BzLB-dYe619aL45huNK>V`A0M#Lab7keKFnW-} z!en@)ej%sxu{m_^5&N4w@xpL_No|S~{}j=4t<-(u)K4esSB)e>`eB1+z?oF#t8Q$3)O4j^UpHK~3i_ z`7Jo!i7@w69l3DsRv7x1v>;6v=p}mdp3I$`3J?&~FOas30i5!?x1L_b@2mOw#^j#* zJ3gKFwp@*o2(`X~=YTZbI#IX2V3Oq4AMl}%-0c5>tK($&KX7%79E>dg53Y`Zjh+4f z#MLo!FtGps;_5z)T}pN~Sz*TIxNx~qx7uvGhofw_uGewNakp@{+HT^O9Cx2v?XSK4 z=lATFDQ1G7a;`M0tHe+-6N{j76C!gF6}IPAGvgxj60r%W%Wce!Ev83g$ZgDRfegyb zO-w?GiIE*au(-6>H=?k(fI9(k=1u`XjnC#q!~vLziP3Q|1%ND|UA|qi0AhFmoCM5; zRpGq}kOThR;}=+*9m|-ToIhWHZDwh%16A@Vi(Fsx;?T~_N16c&GJU)Z-X@Cs}$ ztWV9&PEG+CSXcukl%*GgPi%GiV$lMmxU~Tg7jzc3QVz_a6hJM5R8&S#Rs)cvpf01R zR-E%gS9h#$ZE^mhqa&iKvO;PFR3!9NVE|OfK_@6EEB<^{K(+iF+lxUbsQ*0w-8^Bw zv+K&qs7k0xE5<|~+_3^=0MrSHlSlX4{sm)ykTVbbDSgSXy0$cblmiC*+uqp7%MKiz zosHd{8J*1Bom-6A-TlP(t2#xK17PPCrye+KCSJgLk7uB3Bg=Q<$_D;Z-M>o$FrkeJ zY?B-4mppX)bK3Ng`pA5?bpORS$`|7JtF`>8cL+d6c=zATz~=f%rmn7_fNo%HX>bMG z#M;F22jjx#>gE81`EB&w4J1SPBZ2^l=-}Y`y&-(tqZ|LTeA-(Mz2U2uS=*c*U%25{ zpIKNPoqXDB`RGr#wK2akIXJ$4u8$H3s0?Mjr}r-Jw>C5UikFp>(38@U5lxkQb-uT` zIKJjvX)JYjbN?m(wC5#M)U*R2C*}@_j7A-J=PWU5BO`KSW6Q6}-T$2;w|b~dZq6+R zANH4NO|8w%u3hujlBKngmHDf(J2aXvFta|`2TDQusb7~z-u~O1377*A16TkAaA9XN zf8V;ym;A6c`?UT|85p15ox?M*vbX_xZe#%U;~Vtk#OwkBoQtCqz_0gr|JDZ?9|2@& zWN`b%d7O_0dXsmh)K=yOSnHq3m-*d#(Vv$8m?ta!+%6<@Yg@$wKrW!f3GT^#I%81y z{WFjM5vO-Vx3=~a#wIxVLw)8ihOwoo;r+GW_7AZD_){wV_9xNih}7-?mPMh>iJko` zz3jhMnhVPprZ=%RgZ@{gV56EJEUb0b4*GXpSVa}O*mE-nDaJvf79Y^($5 z$>bN?0J;2`O8~$;x4F&bQv!ISo8t#m<`Qr3g?`)25qz&b(~kfeAbjADJVYMbcb5Tmx{K$M{gJP|>yK~p zYhO6e{$c;|Dgy`O8vvUr#X(ZEN?0ot*vsOA?&WT7m%rB_Vp`%O6SkQ>)>d`VN z+impMBxhWTaFOd*hq$se)Aq#z6tKBb4ZT!fQHFUw9$m>oHQH%zdEu34FY+ieXBD$X zeK9e~f!{v5fLAT-zQzEXLR+S0@y4)mLk_Z-PpL|bY~ zX%%bp(@K<5XQiolBElQw-$}YPD#rR06JtOZk^1(g!@5QEF|brVn`aY9#5fV-8{=OY z?cg|Omn-qc5pe(g=exDG_m+){d?jBgS4mqb2K}LPbYh&^E*iCx9?t#$V8WiuaZyU= z^)!O?&sBxApf1A4^a>o{Hr?^$_F~lB?^cGG@hY?-?T);7WUTMU5zC5B$NcVUbt(ME zrA?8B(EmO+AyTj z#gxU|nCx^-5VM$4YytBH1?+;+EhB%56t4rUp0DCXo&W6@XK-u*xcwPqRE@xav(J4kGf@$AG4@x!84_aXI(eU62nbAzRn0ftOTA_9%Aw z|EKKMl-iQ0crmM*MqvQ-btOza7JDNTr zan8N$o}k+YJZTbXH7@OuqCGqwIyIb9wE9~co?=kJoQ(`_S8w;))*FRZpwU=CRin0# z|NhIPiRZ~C1Tf!SqLzf^e`qwC*x9ik2ftYJIFoLFShkpr`^fWu2CIxov4f>2xbKdt zp9g_zWZaj~w}IG9Afz`g28tZh~6(M*VL@MQXGb( zw=Vb!h=|StRODwNZ(69}%h`(IUdeDevtrF3^Ph<|PL4UMP&~j6o4|{BZ+x?r3Dc-d zj#iI<0U!b4K;E!%B+V#bI^b=P!}Wc2Hg4<1S$93m zNXTr#d&ZE4YVabc#p56cxVfBm8$tg@{c)qy2YIPho-qD_HY6u%x38Ujvk%(egJLQa7apFFL7C%Kd!=`nJ%JNrkuaV9<2#sZ7A=ZQ~9>VzK`@#XB(MF#rV3 zS`}%SOWy}+_g(Rb!Emm*I#&|>xJ^ev?kSm9Xe5fbI9oO?licjS#tb}fI=WMrI0(&) zzSOYE!?lw(voK0U7w9cdcE7d-2xXNiW};$*e=c8E1wl4`x&g0b{sS>iTX;7D4=XJb zu@I$V1@$are@aAOQuQ8u|B}fHhE6uAY6*|`JK=xb74xPbXoN;Mu#=<*0>N zW7yC?_#9AXxO`2xQyvX>b9&&UICJoM>6o@FK&cPgLLg>DAucnvn%^XgtodhHkcs?E z$h{HV0UmD-k>vEZ)R-7F;jH(9o|^RE4zf@>x=RZ%XoX)zT6i7!@h{H%KAT2CP}+7> zL;OiyjwhsAvED8a0{^?K#PdHCs0F#(<(BBY!zCyt_{u+-)|Jjy6m9TgwdyR#)M(}) zFLN2)2%6sC>iuEwJZmdAl{3E8Vu$Or!8z%hxfYrxSGIL{rMNEU%cb6#$%2+b## zx*T$$(AD*D-Ki-}E{#C`oj9cAscZ9!*|l-c&01DKO&c^0R5{b)t0_ztoWZVCVCEeO z6UaV764JU+hI%PFeZoy;IsD9H$%rr3IauX|U?>;AX__f z{dVQvnJs$FcFh2Lc*>ZS0{t=G-BbX48KuKLn2V%Ln;sWbq58F+(`TvFF-?DZ32IV} zJ-yna8zLxd&@VPccd_5aQr?@ZXa`L|+)f^EaL;#yQ`k31o1<~{r<7{dPiMu9xJ6hw ziW0l!$7PSy3Y)xT(%Db0uO%5cdSv07jP|5X0p``m?lV^>{J8vnELQBhlEb-Oq6U|q ztYz$RJ?{5*S?WA?9Eu6osz0hVvKF@wbU-3Os+D!d`)s&KY)QnDuOuL(x2>uN=Dkfk zbz))dmJd%6!xc)OnHalX`>5ukev)-DIuM=5z8&3h%m`ysxnM>5t&BstHYCCPD5d~^i7UeKDwJFaA`tl^Dye=|@bT|Bdq zQr@4*3CsH=d!V`bmZ-fL75Ta63JN@S95Em5-6o23%^6u=7BZj6=BA-Fqg@A}$ccN)>u0i~Ri}I?oSAQi!`N<#(gFTHln7)ZR}HY)nyZ2`o`^`` zV9&j00${jyFJCVYqtG{0^(72D>X=h`5il0U7d?OHxb?Ngb*fy)3TF5sP~jP}@=4HZ zvCqS(1nOWt_Gj}6{7i{CnSI1gmQ=2+9oR=mGPhrv1jBznxe~U59cOtVG4Z1++JW5Vw9V&+n2S(}v9_6$3;QLMwO=_hyMjyEDSq(Vw#PJo>!LlPFl> z+fN`cc*+jLjiY)?3m54fqT7M=!*9K|d8O60+iTCbqtsv8Gew8DFfUJSbxE>0PLS64 z;N}xUwV52U=$~gq6uR42cR>GQxiks`wk-t!3-MQOG_(tI^Ykf-GZ@_`0Yx&DbA7sl zt?BPwxmvd^)QWhyn!Th_e9nCg39&h%XFwSYU3mHtv5vz+R}@QENDfk&3TlQJu)>NX zRZM82$KHL1#6w-n3rd3V*d)i`r2iehN@5dmW*Oc?fQWi*^zp$u;e75v8&GMS7H@P& ze0a=Y#IRoOx=BP}N@nQCz9vvKI;ehL7}S5W;Vms^mQx^ZhRUo?0XaQf7ihrPb4bOk zV3*QS1H<2 z&38^A%fiB%@nMR2wR*HySNIP|=K*HsF7)xSd*fK7z^MzstRVDDX2Jv( zl=3cJuH*#9_Hmbek~~!9+yfbk55{v@z*5~8&b~AsUuQXRr0C5m0=s*DUosJv4C%E5 zmW4QumIGWmQt#s+-2axIwRjzb(N^XR!W2cqiW7mRqRLCKiIZP|dNB&+3y~-Vh1=ze zy_KSj11(9*G9-?!G@Rz@WeJ1fe$dDB7Ce)>+$`EUJ(*uvF#7bEMFtE1r#SQHzl z4PZL=?M%I0_ey-~?E;fJh6TU4jCs%pqxyAbHi$ml54Pk52MFhi3F?M~m|Q&SpJ$be z9*Og+nyFw8s*7cIRSvd@qM%>40o=<3E^8e(c(VrFHTO8;mQmsGiil^MdYs16uk^rA zElepA&!Ql{YBX^RalTSYvA${+R9X8Z027 zg%Jes!%K;n0zTuG!cUiP%I>uM&{(w3utKar5?~3~8x&#L6A1*mSdS`jD+dAP zuRY};%`vNm3tGw>p;rFK@k+EhL7$7!>biIa(No+irB9CJQIfMX-`3-rdA~vRc%x%Q z6T)ho6>qz9NMa}H(?b(yA@rXx|7-ghCV?3za1IoK&CR3r4R&%EDPw2A@FeDW1jE_zePg?f9&I!Mv@w{9r+1_fNU%kKVac)KLJcr_|Ln z0vZ(quUXf`cA(qfEX%GHBB^0%NZe-Nm~kQvG^rDz!LQ@470otW3?+ zS2`(_er)pl45kDw2PR^>?-B!W@(jS1dkV^MD5iJZ;Xw`KK}(;;sTwc5LsA$KxF59X z_xgm6Oek<2NSu@c#daj}=Xl0eb^x$1?4? zmKJ3mu5~8Ze42;>*tg4kc%C4LOI!YYWRiFWUm|-ECTETR5N2hoQs*a26{{G%lUhb1 z`L4HLV{bgFji~O0G|%{YWT5!wxZH3}uqtC=uMH;ob9JT(YhhWTLvE9cO{6D)=ygEG zGBCX&^={=hbY8nP!6SPT(3yUz2BEl6!Y4M$?V85Bol{~HwgZ+Sao8P66=}7bB}=0e ze4a(DYjFJIKY0mBZF0Bnbi{Q%KzM0rk z>WiUwyMdF;HJ^hYu1u99+>T~R0wo9VS8PMnLKbC7m0`5z_9(55VuKa~e;m|89$}8S zlG94olbnZLE8M~+S_ovF5;1&?!!2gF1mJ_|(z$oz78*opT4iP&^el=l1}lc|P^v4K z%m;HzC%EY1`Inw~zYt@Go$+M15+f2fe9}Udr)1aVK=6orC6r9Km0%!Gk;O(No|;Jgu@tzb>rq8nJ_Ty+R8h3c+g}NGk%zN)MH&v8T^tuxxT?1Vhgv_7Y+c$MD=31*R$Um z_Cd3Di>QWRIxcV!7_-cPu2v8%i@fmw?7#|MDrLzlSdfGGNQzqR>K-kjF|;9SK%KZF znofk@kKSGVaTUa$UsJ9c>wS8|8(jq10@BoP4t+DV%$sVVF{v{BefZ(=U%k5j`5UKI z0h7g&Au~$a-qXx+xL}KfBkYZ1E2IR8=RM-yxT=q6z2D*bN2NrLP~_J{rs{+6&M%9g zF2vlT`r)T~BHdAZrHlq6*WHcXbZ*D_!Vh3qqEq)EW{0)}oZogsk#Dh-Jh)WHr(p*` zw_1*RjA_>sY2jXYw*P7O@d;WbuaQ*_vw^+eS7zC*Fsl&#lwZW8pv(KDuIH5PR{*|Q z9}KWz%2W(>$;)JV4)!En)jYoQid_7I&wsi81q5j~0_X)N&<9g2z3yq~8O41B&On*( zQm~#l6MJ*Wh3>Vu7bdxxpK_O= z8UH*CFPXqS0F<8GaOhmOiKSi4p`*EQ2dW~2 zXuC8#(&)@Hc@~DTN!dl(j!=Q-w*Z}k|4O)nzK=#1)RIfZXXA4q-GWcm^XSNK`oOpI za@XYhl#@I18Sri>PIVt9(jWW^fq$JZX16^p$nqIsoAt{DRj^_ViJ&+i?Z6?WYs>ih zed=taKV{=RZzRzY2Q}#qf&k{ZZy4z+#J{EvDye5ptEOaIxj+rb_q5-_4A_#+eCu9% zdymP&SPb68$kb!#M7ZU}VVO-h%V}N~coJEU_TXVy^lkQ$ zuA#QMk$R5nyDjM4&4AAzUhvsLP@Z0 zO1-&x8PZs^9!Qgo?*oS&cQtp~hI>{~Xo1?c2YgmP$32mjV#x;{xpjR;)%(TEI1e7h z&FNNSxqL6*-Xm@Qd{R!Cdn;bckyY8S%gSjgAx+Y|+X_?h!`4cm`shQ2N*+u^C2%$v z<5MQXjrNDfy0=eRmg1FANS-8#wAW>h)cWRa#akE|kjms|&?n7TwYNGCf5vp*yT^H8bG3|m!3Wrp?rzCszEcP?duC%hR#UbapB`e2pp}I(Fi3VS*Q38 zX4ZM&&u_DPJ<|-SAG`#bAe$*OTqP>VT_4YVRkm*ulrr`tIjfAvqlKZ8cEvyWtPIL- zkw62V{qVbmfdLb3Pd3=Rk>NZWYvfzIsH`GNncr>?BffF*eKT%wKFy3E815v!y;*P) zv4`Y7gQ%T|^7hpiGixWYEG_G*5-^bmXWn=-&8hrP-1)S(9EBjsu{(k|v-uJpdK}du zW3Zi6Wep_xMBh0M>Xc|V+?V4#`Hqd$tOl5K_qoN1z0Qg5R=sr2Yq6 zEmhc7mnBZt#z>hD4>;H9bNjAWxNj8pwnXl*;#+ujLGcK^2>wm~zvmjxX&VSXpIW7F65_Cy!h zN=|gGMN|Q}crY|s2h138l@bgi+79%7anncP8En?e@N#Ifd?(1;teni6W0U95(dZbm z0lq@U6I{^x?(CHK*mZ}YqXqFQ7&!?DRq*EcOH+PPCGQr4iWy3MrQk0=iyhg^RcSSP zm)l5eS`s&w6HexM86-!FoVw_)9s@r>b}n~M%-;62_y zni3{NupcE{!wm=wKOS^!n6i5fCGsNz*>2;eX?~xk4UH^kJYaGaLQqgt?~E!7MX5W4HqFA&?#L=@twnfnkhm3yf0WCEIf*> z@OqU5G)BfC1*sH-9-#dN!b~`T|LExl?4xaHE9Uq=*MfULa-#tc0)oF)P`?X^`?Tl$PE_Ja~esQL$LR4$857wiAKXEaCh$q=qsb=^gX&eWE_%)qn z5Gl@8S}~wb4nqq<`Zh7GCT)7%rzB2nv)KJu$kaD5htQYpikSBG>O-_$YGbc$a15W( z?{l%yS{}OjC**7FGRrSZ`6mBp2%7?D=f zj;^^Cx`IixKo{KT@~4Ld6C&ch#@!+la;;6fEx_<7QwIoB72jT8y4u4*G->8M!;3Kk zqwYQ**IWT`XYo7gm5ke3G9b8JDn(P6iAV(Lm)FGoLoPj^O1QxAd8Rn1oYG*)mY_M$ z5!5vGA^@TnE_nML`UQ8E4bkPDBs1@I>zfD1az3?|%k9YMkNDG+KNS^aHI4E$ACG<; zzxdu4uS%(CcUJ^%t5&Lig_$D@wyt&1c>Wyy$WFZNUkHG9*hO3(m(C*vG}6U2m9S9t ze4U;IP)e^vxKM=oLyNd9ZeGoEQwA(eC-!!n;r6C|sA?!$O|1!ZiQ~@Q($Kd12Aa=J z(o4@sm81<3h?Iq<>kYw{$l3)@x~#FtD)&J2sz}5;PR*uA3+Ev=6h(9|=^hIwZ-CkR z(h~Rn3Is7nwd1smnWJ}MunoAYfpe#uGbZrTPe_|XSglYF^XKH8X9H)WysJv(?BVMN zv#8$<800rd{1tP(x5DE!Ne-x|5I`vGp3McL9thO^NkYMpa;<#8b0L(f{Omi zL{;CEHgXXTW4G3l*E7NQBp=9e>3ghO>7~5xLvGCfv>uM0MFQETDdS#^*ha@{TMN>|9F`+t4}3lV+(?eqF7+iW z?D&kLO!qWs<;EF$F#l*ep#aiCc6BOWWc$?3>!9I5OB|TmdZ#t#n=~I48@8k6qs<)* zHhW`kVB##%KyuYic1;5UHK*<$M{JA=e^bocOmUw%i=YAp6geTT>jvNrBw3L#En($n zC6BCz)Gk4hAGKk&GQuH-$l=p8l(WtWze}UU`ap~4@1+AP8)$lopv>CKCkbIQ6iz~N zu*QC+Tg*$Qn)ZGjH-xGDq;}`RGB4Sr^Gv){jqMZiYz*m^3pJsF=Ik3ORe28>))OBNxYQr3X|L@#Rk}logcb74uSdo`b)8 z0iF85ZLA?ay*rUThB90|3MEP62qL{igou_YNyu!(_^;{LzuAlZ!qy`Zwpydepn5I? z-1~vXLn#f^rtABBlItN_(rosaq0trI;cq7u$ABcD_|IGSPjeFrX;kJFI;Sc1faVyy zm=w=^55N$EWbVft30PLVHt9cG;25p8Nh{JsS7w(88j!jlh}kZChn*$QF7TR-j&n*5 z5|7NdvAH+P9^CWEUvHg(RnJ;#7cw31|`l2H95`BsffDN&bl9$r{S0~4ZpM=a}k7d8IaDfOu&`n zwN4+)d0q|3kc$*B+ygEWJCj!bR^e0|K!>PkU;~@7A5%2`489F6u`r!Y;tEKj0?7MbV!5;VQ$#%{n&N|0ar0ym@BVIe zLdHk#LD8a*3y_0iOo<5UQOY2}fVJ)kzFr`X{#gCpt@WcmvoniIYPktF1cF!1 z=**;|GDslNKRt-8lEQV%YJwM^m_D7VbX86`YcWlcJc?~sZC+(sL^5L`Yq(X->DZTD zCsC!e2VVN=(%Q_zOgbToJynQnV&mAe!pYeG1W23i+={{BmpKeSa5?^Cp$4|arZhkj_Bn9Aw`RbFYzTq3(UH8a5-Tuy$x zeK5mja<8)7GUBu)BQ{a{1G_j9$^an{{$h4b+2xN|=h02G*g|I5?{ZEz#^0dx2L~f+ zNj%xim@#QonU$l~sdAT7iaC*go6CiLoQ6}I=&pF6-c_-|C*Qjb43wh39d#@AwY9w= z04hXlUC{1qpI@#?^&F_FL?N7BwDK^YRFj12v^^EgUmYv6tL-s?>RTFF z@2WIuvp0EPQ#7d2fTFJUbR{Zvjkp%kMuoB~Fjc+$qAOKc!?ha_~ijbuvwC23*rZl=_zx4^6aL$=OS1(uzlu>@w z!zGHQ)*ObDoIN{-jf_w!KWG-GROGKT4zJG2bW~dk(ch@*2t0X^m%0Yyd<2Pem29!0MVQ2jF1 zx@U1+E)wknhD?D7Nq_VOB5FRQYPE)&Z_JX8-t&&SNqbTiB&zn9OBY3D+Y3wK278(Z zqqzWn`%G^wPX5psY+F=AIHz5kXSh6Rhxb7&!^Rq(FmM3Js3q|~C`-d) zdX}-bBcy7D9)g-n5NuCqDGj{{N?@QTffye)DX<;AI3es*RP}wo-!-kN(%mEA4BAou z`daEAab2IS8z}1nPdmjW?yUjqs9eZEsaR7M?g)-``E~>RN{p*?5`pG4$}zGd@)G9; z70rcdM!N}R<;&_u?|SW}E$)ADfo!ajF)=uuRPr|F7YJP0>Gt^?Ex*UB4sCcON5g`S zMfBCRgi8)=NG?^DpK3DHk>~`V2<#>{p`P9z2Kz`x5n>Q)b;Xf<44OwKgtVpU^A~EW z*|@Ril+otM+)w1*vp4iGYip>)ZrVgcY^WSA=?VJh@7C85=bvH^+3HMRH?1c)N1CO` ze@+~98J5>klNC`fLX_bpFJ-_cJWM_$5O96DaR%u9dyd*kC~)_Vh&tRuKq(ueXUU#? z%!(3)<6P021FmW-))lKf6kwI>I2fR&=heI#?T!gA51apO2uOjlD-({(hvoWD%d^hO ze(M8S!+CkaAo4J}?6#vH+mZphRe_hu!5h4s`B4imzh(ZFSl@`cUuDK>^MNzspDPm- z`ls8}vF|b`R(M$YC@QLmlDDo${{AxfU^ehfgM#UogQti(+^+~rxTl?~&tj)mnyMHK+qiWX}luAP$ zSa7e6&_I@k2_zp6OeNlVcz>sZbbOgy(=6mo{-{W#Nw#0_Y`Z=(PC(Q#p@gUg$hOoZx$k!Iol{x zOji^De&jHm=kPnSy6(oN0=O7_8i}t2RIFxITjb7;m+q_q|7%*q9&@w`tX%j~L=Use@g)vsLt6U&DF?9-iO_T`j5DKdI!~liGR?<*DUBgcgzA-XYVAE>Vl=nZK zEv|VxWmi-C8Pb+K?3@%G)x}%PF&+O?n=1DhU{dAPO0=?DMNCmd?!l@q@A(=BkzWOY zE*Q8d{B4Q$kp_~>c3h6-g9HJJc~^5uG~RK#6HTaLqanSW9%qTGyH=eWfyCF`Ud*An zN|JU*{=C{FmQbdfUromIe}Iz>?HqnCE*#ncnPuHs?g&@^S{&$~Y&6>m_*Qt0La`Hd zb}kwpe}rJvK5pDZ-opn*;r?Oj93*}{fvi#AVJ9%!4Gq{@WK-rX|7=20^5hvENCgj2 z5@Llc2`R5;u8|{^G8jY3!M8FEi)fW}LI&k5e=5D^sa#p#acR`CNma;+gK^I6y zDp-5Ws#q>eKjkN|Y%NHnf&~Hw?GMnGo3U7Pm6FN;2wLt=e@cmxTal{(63fgWg(n$Z z?;v5~o@dCZkJ~^eqB!#rHVsasRkOA%R`L?N?s?XeV;+gldn|+GKqWbCQ#e_I2B2Co zuXpuWM|w)I@?2-?XLO54-aoX@AQ7!T7~*a5&;0;iK%u{4{Hq@_(kTyn3`;?+&;5no ztRiO}t$<|{%n9XB zbkjH&_D<^0(Zr)<2TnjYn2b+%1^3t)T%DDzuvm#2whPXYgpC~Fu8G^TJOEX}tsfHD zYB*7`<+(#4ViC3W()P#-X_ui|*slq$8B&OV)`E&IDu7W8q3b7{P5d(E_g02A4wVkjPm+eEdSGxfdVdJ)T zM$)N4_MpVB_@_Z ziQYFO$=mqsosQMean6m|*n{#;P)hEsZLSy$Ybyy_GaR|1{ydTiyyd?{RToK5xu1D{ zY#Hk#Z2sM3{0pbVoE~qeoYuE80StPnOYj^t| zw6X9TJR75|f&NxO=Ix4%FTAv)1C_7^U}jYLSrA(ecMFcqhY$RTuT()dy|thijdTAm z{O%B5-M%;jk%U}30%q&#oXuC|uT~(IXYLGgCmt@o-t0?Av(Y?~+-JYkH z9&d<=))MR6s_6bZkh{+>nOLEIzSx3nXI8o zwu5Cat_kd890Qn)n31>^Gsn}%LLW3`SzNkhlh)ePz(fKAWeHc~aKLGAl_nk1K8ihd znwRjPIL(sfMw+Vv2uy1QX*sp{ogoO}+h_$xh*)F!2ew$p;9Ch*=2(2iMGobW zU0_{Y%n+}3V1F&#MZpnSDz<-#5I#bDu5G@J``={758FFp%4YY}U#aN=9Y~24DanyR zb>TCeDQzuJFy}Yf87lwqmz7O;j-1fvk)x_dlUZW#g}81;>7cS_Q91<+lX`%Tl?8W~+6Kw3VMNcQ;Q%r-i>`tkgU znF!&xgHQ%Dtn8gz?&MvWswU?skN7)MAh>A4b;BqPbWmNhdy+;`dGjpwL> zf0q)9Jx}mU$B4gcwA>!sn8Hs(W4GfKwJF17kva{QR~w){rgl^x6ENydpB0cQZQK#O z-$ru0cF#L-{Ln*B%IFI;;ms9ZX#>|QFJ_uiv$FNdVj2_ZO^&n$Z6#d)~&fmTj23ZnZ z&Dl$UbLOD1tuaFu;p=!#B!y_=p)bI|dMgw(MfivaD3bNpJ=YUc6^dT4l%`tIU0PHG zLRza*)83epK&|D$SWMdSJcKFdIP`nZ9&!r7He={yLb|H3CFuQG|%a1xw{#$6$NWvqPVwNvywPFB@V} zPBHxnR(d|OgKxT!!`m)S&vi+6%r6wd12U<^#I2RM!SxY|U2FN?f8Q7CPb&KP%{+lo z+G4M{@bpl7edHzT7T=LNNKUb~8h$#UO6=ifB#}KydmLa)7we7)EWuzY z&$TSwQa0=Jy^S3ppjN+-+)i{U0V(^uWR&69uI(KKZt~tp7E%#9tiedWs3QG=<1ET5 zZh3bPDb?mi6y{nYCvVg`dWEoDDn@+oCRWb_D(14Pmi8OS=xLxHm(vx8!=$@5S z9c!K}At)fO%uoECeVVfi{nPj`Ca0(!i}X+O3uboey!LQ^+)IV8X?_RWC-200QVPzi zKtMS(}l7tv360H_238j*Q}!x6eC-cthEXErwUTZdj-SVLw5kQItEqv zt-8Rn=!~vQSet;-%PgG^>QCgGp^usWZ|-TGVhOQt$S8b>_AyBPAWJ)-sELLD6|pHe zDCSfc4UXs2zDQm_EkcZvGfHLtciEhH=F@Rsp}`#>VbM%Sd37?U@OzExrMlKs*2%M0 zVb?!HAgaHXS7~^MZJWrDt{S(r&&SHMWXdn3#_2#Y*eG@=ex&1*PGs)m;{?BhNilPyT;1G_N zo460M6wRP$WlY^HllLFiUCqv#VvTj|%|;d8`wxhL1+w&ZA}Y?W=Hs>wFAEHyjo}HP zQ1PJUThVcaWM@_G*rrPH(!WTK*yA^HW+}Q*IaD5^YzK6FW&Msv)ns3W!O~*%^P6>3 z58^w78`z0{ao_;$(eQwce$vchnnQ#La0GkI^X~9Wixw!680+cfGU^pkg2i_UI3D?G z>G*r?g}8ir{xnrV48yy<%XqJ=8sYwKxibk*Mj)OEh$?o-^kxn6^PH^ng{B>l0GsSXY4 z1=LgNL!QD>XSa*`;k1`63#tpwO_4oUGF9=QWz{n;j^$2u#e-jGhYOXN&Bk)s^;>?8 z@L^}UXDiN}s?9kAHz@bKY-PtJHb8s3?%n?OeYUo1wN)6bMIHz_%I+xRACVVNf2^ST zIszJl%0Mf`2oZ_eXS(5!6pi`W2Hsckladt48lK3k<$3B<cz#_!%zLU8R;XTeG&aQh(yp()AooPiSn}?P!9-_nf5xhGDY>AkU_ zm(ZxcA@!bh!drm{)iDyG#6ji85RHSDRAZ}C2BH8jnT{>4Vk6-a!U=YQ z5KpgNcAInTd+DDeN_h*Qb~ zY)q&_^U^w(lo!Jc#Bv*h``l1{zz>7vd9EWeiHOCtQs+GvtdNrYH?M4af|1Jh7&!1K zWz3z>Y+$UF?7}SHBNrBFF;R3$>L&J}`6bb!B|>jT%>cfXGZRB?khEtdG>@)rFNQxi z%jgD&E3`pxy6+zpg!R~RZAnJR$7MSt*t>pXU(BV(`xzTYzMBvou7y~UC_r%T5s~O^ zHr+3P?K|HFS}4Ih!= z-q#tB+);8=2QEwBR)KK#8$uVp34xMUA3KA61^jj15uKE~aWt%8hlCo_!v>PS58JWj z++Kyjo9jnHbhu2O zIn60i{1!2&T^?ob+g^N;dMPQSzf*8`p-5MTg+$E$onY_?623H9=!h9=L z_io|$MF?qFL6Cqb?CR}`v&)8P<)zehCjaKnALyd`UT@80VwTY8Jf2cJ{e!7OG2agU zh3BkETorg2PZUBi=cA4tX@GeZQyJ zh?GbQS@b>a`f?);5_if>-+k-d#+=n)L&xam)#E((F_s2`3zbgU(7&9K;ssCh`wUs_ z(Q)_qBdP5-vwNrQfyI^xXq#u=-~$ZG#^_MoZ^1|-IG$7l&zvZ7Jvu1!(@F2VD97;g zQRXPAcZPjwV<)4+W)aAB5Ze-0LlK11UJp{wSGEEYam7coc;TDY+d5Kk*4Sh#8W43M z+!?Kv8Vp!86Od*@$X`AB$)~S-4WE4vM39Z+Iy@?xVro8R+~i&nRdT<$&2Y~P&t@9u zHs*tahoPXSJ=8@};)Z1dz^EU)x2|3z?KV(jH(nk^M4U$@$jJ_oR21e!Ov+UC5e7d~ zX&o~e-YueO8}tneGO4m4@;nwbWujS6Dtgk%=;H*&zG;;Z$&Q<2qgLc4uC7-9-J9uLp){{ytMQ=#s&-icj`i-;Q>jmjXHvGH3zYJXFp|`-fdw4ve^!R()M(5tsguWX`?Lf^atbHFqX_P>FVna74o+Uk9`2Z?VAepmcq!%4vD7xpI9dKK;OiUyU+7R9{(idj^}c=q6pXT) zw53hasr~5!*9Z>a=kL<8DwQ=FbP29wtP+2p4!WCZHbn(p~K_i7zJ= zh*5X*X7Sfqtm*A1Ing;pBlkV`pl9@$HG5Cu2wTnyZ>5@Vp606Fw-H!cm`l{P{49(& z#>nGX!ciZ59>ZFE%6tA2(L}&e3y-3RM1Jnu3HLQs7c|J9roK`17me)eBRFzZZlyEZ{_#R&@-I?V0Aclm&%WKqpEJAehx{nNkC)qRX}v!6nxKGcJnF3@{Xl$|o5NMm)@zeOLy z_r#9c#B*_Ytw_p-cJB%wWQ)TSX|QI9-@}BMpU{|LaoC;!b{4B?K;lRzhgQs5AZloP z&*=@zE{nfK#OP?)Ho(PdbQk7d%oM0@?9H+&N!ec-9wff#vi=Ek(p zbyIV`6`iMk3Q^4wQZH6j>|Vn}p7wC?a%T=&VeWJ@5IZR#NR@-7v7MUy?^mmh?S@Qs zB{JraGdh!w0I&Epn#bZQZMT-c33F3pT!8v2pn$O%x%Prwfk$q)5pZ(I#(*qFvAC7U zG$EtnJ);S8h(}j%&=1B$PpILyIe?2AFJNVC+bICGV`N7DQ7(L83v(@XH#wNZK@{+R z$DyPECx{$5L~dCU1^iu`Ke#QcTIMKbq-oYY9-9lQ)lS3716>_7-ZHmWuA7VKOuH(d zpo1le3+DjxtKjde2ht@RaY~jq7&FmXRQU0!yXT@l=lq(Ryx8~jr`}#sGyYuCxr>wX zvv+<>1Daz%96AJQGXtW`Z09MkKdbQO-;p+zpW z1^GXfKB9AqXf;!W<&t8F(iL_pj7a?!X3DVuRWHoT>~K=u;Q5im3CAGRH{8a`dm@_W z%5Au{RSg4}hk}K-FDuyllp_!-9jM{_AAS|mL*h=t-l(k(OM+h_3dg?ivjVw9!2zZa z;|%XDU^p<{hOpj~`9};_p7nKx6X&iKRWO7py=c`4TROVFjFpw=@VbbSIa;ueH--~D3tIRD>_Al23-k%I{i~hJmFSy z@YmlYIw9DOxG+-QKUfTd{cEB3908Yy!h~Dj^GAg?#e3F$hD{gGCq+_Mk0-0%MZ)je zjaop4U796df@e@pi->*;xuc^;Lc#B3gj>#oM}g{xU)-29by-hOtmW z1gUk|?4c78;!C#YiuD>w!_`ry=1VV;!8+0AMwY#84vp)R^lV=M{E7*ELO9IobXhev z3`3Y|RZkUJjR1ZiLq>cZc}_GbdpDY4y-uAG!~0Bp01L9#zyl{m(?>aeZTrbz=mT^c z@r_L)L1T%9&Fk@x!BuZm$qxD@#$;~;{Wp03`GI~#aQEtj#Jjdso~I`MX~WxG8fifg zO`7=Q<%Ibmyp8u?Ys~eK|=w&)pK;(0@db|X|No~*NV4`ykR2ziK5HSRln3L@|C9V|! z9y%#w$Nfa+h1c;@Nm)Pz-*HmIq7Paa@zk1)A^+wlbQ(xWqp5{#dqHTZ9ya0hp~*fW z1#inzox!GYftdfu1)p=sw^?Cl?ld?Puh)ZbhQfuyDB>e7IZl*!o5AV zCehQj7s;eiB3Bg!g*C3WA+!-y=H$mpe`5RFtkNeWT%4Ec^@9F9em$aJfRE*L%&`ey z0snSFBvT* z@{{T4*8YR1;|jGwIci8v;;NddNf&4&xV8_EbQ9wae$b$g5c0yqqv_t>%$Pl6@4X<;)I`m4Es#fEX`D&}hV>Vsn_6 zL50))1f@+(vN*GzM~6ri3F8^|RX8}F3N`0iNB{i(REpriV$_tz!|l9nl(#jds>6Q; z5cEb|)mq&?*7t9j7dR~UV_Hm&uuQ^Orf+1X%3%lly#I;jbLyjQP_y^bzQ1gihz)VJ z3fccIj&g`ud5k|$0uw&g$ECo{ck4CUkj|PCv)tbHDx=|bkgD7D?CD5V$Bf(>l0??s z9AFUfM#&_Z&5Pxea}v-rgpb2bG5XDDG=AlF2~W{_<7032#osYf%RQvFRqiL=zJ3gKh3S-X`+ubQH@F%An zZ%KG;chdm>#VQ5f@-_jn{y9dcRbcM=&^b%iNHrciWa?AfE&1_;yViGpXk(Hkj>$EV z{Lnb|*WXIde0pK$=G_wG>$+16FDru2ZU4D0j6`(>(Pgci$bS``4%%5`9KSRo+MJwD zDD>Ako;UJ9zO{Xww~HmrQYmAI&Cs4#^p^I1W*{JBbx2UAP1ebY>byYMRMs%`q0%2K zI?9wbT3jRmN1zv*a%2SJ`Ns8;ma9`aP#DU)ixNBKUb0=yZK0X~LF@sRMLcasXQ`q; z)dc@@WraF2u2&9iEjVF|MEK(Vwa|7~4PzGvLAwUZWn+5?Um^|{KR{b0hq#`T z6XX{h$TXSWzyPxCqkDu{Y*p&ud^0yainG&_Q0g*^@46{-O3U}tu2=v0s;+7eNed_s z!KjJod~wy+Maa@d$xhL z2@WjK@jO%JNT+-#>r^um$&b;e@Bglyg~R0bCm)wg#8j4daAJj1EL*Q<65=~Bb&?0- z%b`l2J6V~8p~Q=6fp%E+(s(Vam!a0RcW?X0z9<}p$zF|-a-jof`Va=ZFA;kS5f&Co z0%ym+G7xtgtfZEE$cG++NXsy~w|;TCbWrzH9B#L{X$!e&(b#)YA)vY#%`2pYxKhoY zYcG_+Iw1E~Ak&8*`Fy_Jx1N8+C(3OdXR7KnFpDTRkAU3KE(lb)wCiR1o0&S|YDdYM zOI2iZ=^&&r*@kZ{@^BCArj_Jghzq^E%f%EhWm*+Ut2KN^i&cDNJONnY{^2Cyb~cxrZXa~uZFGO= z0&wa%HZH+D5D~-1l$*v|%ILG}dT|1WK6E)xBfisvLS_x^46Ckc+H_5rP#oKTY?ydn z$Pl!*T%;gye#8;uSj`y{mPT%JW0X@u_4NUR{P{ly?qhTS}t z4;j88F(o~ktp|7zh-=rg&mg# zLa0a2wW^Vnq8!<%@4*o|6!ptxROg6rBkV0$h4y6HbfLjbz{f`nkfLSF9LdJ*DQsM6 zBBGZ--H8)S=a-uD+(`53w zN$iwZ-~c@F7}9213pK~`m@kjbCTAV-G|%-icgrOR{L42FKi53`uNtL`)-9xUZv2NY z1Sj7qf8%sk3K%^d0hmu4djEhYs(3Hg$$rAl)(vvwiOSciXJ#tzAfis&&A2xQVuzA+ zOfhmi!6BL7!glrR-~8_4Mkltq)C%BkNXwzhRcyjP=+NqZ%Ry~DL;2r;$aGQYdUV1? z3-XM~mkET0_k)DzL|2eG;EUe5d z|I2A*VC7(>|NrZ>y16KCT{W_bM0F`)X-9UUxw*Lkfk56WZtv`r$ZtoXx{=@B-iknb zJKuTTZk$zr-L*9)>g6_=?Phq8QK9^cqgdh-;$<=HDD2o?Km7fC8Zh$^t6JJjMWcY^}8uMDX84gP{l0#L&nBw4MQ|08TvaWDlDud6#z#-O;ke#23WZOK(eH)^y5_t*l+uu zxd3>qwEN`awhQ&!J{eXHQEovQNyq%l2JDBi2jpZA{GI<*vrV?k0Q}9_%&N)=s+rLP z0kDK7Bjdso6;)GH19LJHBLmX{cLL+O>U&gb0pI}Aw!y6iu#*GNXSuH%WDk$ATsv>+?22 zMKu9r6(y)gMz989^tcrR6G;Qg+5l?*L+dknq+9um271v$Pd&Y9&D;#E*#Ru&X95xR z&?;*i$p8Iw+WU=?+TPgI+#LrK|M5$C>9dKk=3l-2v-r^?#p>sSRQiK_(8G!^VjqV! zuY_=9Y@udVo(271l)sq)U)VwIgncf5G6D~h2+SP`#S^qF`)!wZD0Wnm;t1|#sMG(2Pbv| zDQ#=eH!uTtXY7;dq?o^{>j0!@^tZ{`)dp~#mE8qk(gF|W>p9W)J9;Pn#C8C{2>FX) z2aG2Ai(>Bph<^NwYEK7E8c$Uw89=V&}g|82UeP z#J8_Cll=?02Y2@k|2}&4X*d2Tdi;z2Jr_##s}bP0V_E7a*Z=p;`W>Q@jbmNok43Q5 zwm0IJK90%3;lJ&izFYh6DeL>@rOwXtPk{g7&gK!`&cHy6P0rKRloo)83YpA5+2fvrpukNC6bzrOf7y54_0f1m0);zGD-OOqb+dN|tL;I3gm0kf%Xkf-(G4@GA zi4)F~!KW|=L5|ri3WZ$$eC;|*K*OAhYNF^Y=@^`LwHRW!)mP&ySN-8>R9V7)Yg}wL z3_(QN{GV8kzzm;|?Lb>~Q1Yq#|FvFiD2qsHLoo7L9sdpPydDuontY@FP-ZB%Rhy8& zkG7bHc0f)IU=7&-#^mSN8x;QJEL{PsN*61%%@f@;8~D=ChBH^|tidzy%o8Ia!uQ%G zZ^L6WBb8N`P>Kr<0d(q($rTh(mQEy_Xyk!2%YmNqE%B;LlaT~y;ws|GJX3nzN#9X3 zJ_4KN%mrtYBxakH!8Pnm1L3JW=w{C71Y=~e#4ctkoI)>vxIwERr0odwP|dYcTH>}j z!h`AzKJ+N*!7wfK=$ulZq@)VV{);cv>p_8dIVBirj{@$Jb+00mUBmt^NSE~)pW-Pv zd|FriIw6R)*ft`k=;&oVadfF4;Cw_-#oe(EQ;UbFh0>9yv|(UGQ*Y4~_*x#DSvYw)$`Z~b6*+`&?g zvQ3m~Ui7#7W8syQC&6?9Af81I=6!kLUS>LX;TZ?s>otk*ArvpLAn$H6ytZs!uo2jN zNc<(nB*GTQSJZx0=!DR)*xp@4C476gFU26h-BWzKZ z7egHfzqRXPbG6Ya&D=>nM#?_-NMii$>B7ag8z=xAJL>x9YQLwklM%mD0*!7)p85dK z%d#sphhKVpMQOewEfwiWDik_49ND7 zWpAifHiBgN(6%U&nyi$XA`TLQHdg)^kAxOI%8hdx_%0oMZi-pv^C(=j!3-Em_xZtC zLVZb3LAWz+jB20SF|T*FH{_DA?2$?EUiJ?$KimvZ0;W@^!%*UR>w_pd%SIhcjY%Uwf*w@~ ztqea;vzdFBQiBvojqOk+UP zA*^ez4&;GxFXmZuCTK07_(g?{X&(Yt4iMtBm18m+@gvDfTaZ+`lk|ONWhgU|o4s(M zSc=q&J2|x!N_ROJGDe)W z^-U|_j%$MazonXWT{ZjdO$qBgPNfO_2Q#;HTi$(JRH123Z=unB2(z4X6%|btV@)cw z3pUim``tv`cE~!hghr5L?G#RynuX(;JGv`x3$c%xR{iO$qB!G?bg<`=xT;YM4gPhM z-TvTn$|SSLd~^l;RW~m>OssZ@H2At(Qq>7Obu~agYZd{=#7IU*8e2M3LRZ{s>YCjT zv;SIBd3n7us|1)A1&J9Nkny%Rn$=q?fW!Gqfg)Hj!2Hz6*Y} z97s!L8b7-xK)RwW><#j;qEpyQe=+Kg(kv1s+p)pFsk|w;J$)yupIch(J}(V)Ra2~6)D5I0iKdzs=0Y zI}e||9#AREI?sWVIRA#Et?|=!&hDDQyj9eNbo9qkZ$xTyGc*UQtl`qVvey1yzVe^) zQIW(DF8RI)NQi=%7%`@YC;_DyAgT#Z&X0GW2Ty7{*OX#t1rO9^biHn4?mkwE(`ibX zE;PI=#G5!|C@omo_HpA7bSt#*U@(`v-P#Amoes(4OP*C>d1E$3xueuBZd!dhf4s~C z2BuOOYTOA+Yx^%s5xekFx9BG*-uEgk0eBs!-7b=&=<=+Wnpw2?u@y3Zy|MC>LSL70 zrIoi*Y=3u62Up3bL1AWl-*FjZPVSDX5>u2Uuh>DM%HC82+P0TdSQcC%S{l2AF*$y! z&sP$e16#q;mL7LR_dNwJci86{@X8Z*yOCz(eV6kQs3hMqD!!Idl0Q+ov>UjaZgb&) zCxzMGoLR32q`*aFOkLIl3Y`&WReXGd#EW+U-3x_amD@Rur5!jgH+ zT(JMenFq>lcuW%0Eic2%pa+i@Nkgy73Rm}b4{&n7McxEK z{}zF%Q+cQJA#Q};k7wqZX9driQ+n4ytKGBmP3=MTykXXFG?S#0lQQVHinAzHo&2V? zNPnh4O{*#WjSNVFU$e!)&aB&tIKNmpUE+y17>W-xIst<{cZPo@);rQon6?#L0d)t#pOmV`tPf@;w?7^w<#c%srVlNIGl%y>s< zKa#(w!zjv>bMF|-ooK*3v?V?hom^=)#gKRpmL|syvv37L#AMa(6UtheZ^$+N zF`{ix9*UpQTeE%WRfY?Apqi2PwX1*OpnxU4 zJdTh-T7-ivCar^}Pbljn~u^xQ`t6L4%|mMV}cDb$KehYWRx8VX)242%|ZYQRFsH#C&s8(oZHx{_<)ZwfO+D z&1Tl~pzgWgX!2Zc+_(`lh*s~Yy?$L8cE$6`v3x7e6=rzP0qIay?#~Hiycs8ysF`h- z%}D00qLihoI71Wq4To63s7o@P4PYM|T(ZUlzHRC)A1_+qjGj|C(^WFup_XDG6Nq>q zl|zo-!MO&Gu==G4dA$qmrT-RFh*E1;p|r~sZmmq*YBE0YIAqWHyyy#J-wcMV*Ay1d z5J(Znv9&&+uGi1$IlN&PKYP8$M=rzHe)e{x{4~1<;6tuiBRjGr9jaJm;mMy+SlLII zA>lYQTy&QC z55<%(L39<>DQ&%_;j-7w?zR(k{Eqg2+u?Rc(K2OzEHy~p68L@BYljcV`Mh<`I!aOp zHbX>+eUoQf0rwI5c=jph-Aa#W>amuWfOw1BB)479>bB#Cij{8&q)&cE?t|LV6zh3L zprvJ)ld;@w(4HtiBCR-Q{sF}->(FcS3HSaFK*;%KS{-mg5vf1=f zZ;a!;N2&6pf;rKygl_a*N-B<{JwgH@=Q|8;MWGFwAD-2)P-Vaz6ilcYz`&Bq4xvaD zOmauh3Y7=}GI$qk?Z9K7MG5@E6>2_c0jEGyw01QCZ~sZ^A~^U~lDvy~GJ_JloreUF zdr5T1nEF!6#_V5D8pqf?`{=&g0T&2jD1c#ho8-zn-Zm=sP22$S`$Hi{ozi4fhYp%G zzl4=qenchx4f2*jzS-x2FE5|83x>+Mc{tyV)xy|9w`6PAI`zgJt9O4X?Ee>@(94h% zZa(zJ%IcbZ?bAJ3@|}9VhO`0UeS1h!yZ5&7VbiCg^$=rzqUOd$-KKlacv!)hr~q}E z4rJJmaDdA5YoJ6%{bH&ljM*EV<~yIMHJd6HOjs`lou!D%xs0`73AHoB9n(f zsKa-#eQPvj$uF*2JW^%3qDirMT8c%-<@o3jkxW*UcXB?+7Aco>@l1e+mTzChUT?+e zaoU7u<-qdZJLmWO9j^ZVRgWy7WbL@Wk4~%kV{-5~s9VM4Fj`MNNY^+YJA4(^IVm&r z7>@(%XctH_Bp2WL^sZ+q*CtMw^`xC{3c(}OZWCnO#iTy;0@-DZOoNqd1q4c)jJ9<-lmoUnGtM^#x zGPF&eLA2D9=N%z$ixOdykzt)>f+BPu^YBx1J062Ge0TRbqwPeCrL$wUiC-kzV@vWx zFhJWk^hURJ>}t-sV?GKqLz?+5jH{*Ltydbf=IIjmF9RxlK2({NbGXl>#C4apwgcc zrB!r)DgcOUqWl+SMK)_H>3~Kh1P<5bA>HR)Z%<;?%p@{ar@qN3PuSNMg z9R7eO`gFGMUFZdG;rxPoHIHdpPn@%UC`W|cM{!Mm#Z}&K86@2_wHQtgV?9+-L z-jz~k9fSdKRNu?ODJB_Cp58%+YvJj1Yy>6%wKnze)J@z+X#4Sl5)o2TAb5QgRlGZh zy_`+irH@+{8t%w$@b#r+QpQKt7C?9giicu#gcNZSq$ly>p5=KE7dkB*G)=o>JdYv_ zCc2^u?ixh|qrb3K+hL~@)VcSiFF5SLZ%lF4WL-uDUhQ@7I(hg+nq2;JarOa|YtRm~ zaS&ez2eX2%y-n42V;T7DvINN6_sx*Z@TRBdO#W0$J=rnrD^b#cqPZZH*eE1o|3vpy+T}V`6b9F}YJnG_iS19h8!xA$%<`d|+rrNwUuI z9`L-8Hjh^f5wx1UJQ_k9xzq*f$EU^veE~zUAPHzdWm|3j8Pe2mI913`LFY^<$|ZXJ z<*KIwA244r%1Qu-Bj7c_+V9ev-&I{{y25vF`M^x5AgsHOj3~daosssXeaeGZkhMk= zad|sbeBq9an(#wD=o*ty?uSJl#_&&I5nf`skOD44(A8?EDBps%$L#Cd1(&m>hz|Zc zLkV?8`~1EHjwLOwVy8bR#M?SmYo<-Z9G-JmO};e!PQ4j?km4js3UWZ_>eAn8br~p+ zDRNkR@=$)$>nq?)z(E$mAhT$VU~6xuh<10)Ae=jx6C*5xDXbYot%7d*Xz1P|2ChPw z^P^=0-qrS}`zRA=nClsgF^%(V)qP;`(^=ksbP9N3Gw<0@{rI9G=J1O|@gt~lAWSJs zZP6DbPIY*No#IXWM662`;J4tj=%q6`N&YlHrR0DhGu^;x1aU%fXV7US2*fCwDwSnL zs|IMO=n<`bNb+T}Y4<05?>IbV2ZG52I-7xrwvTIM*dcGD4e4rDcv}9t^qlXM9OUZ# zp38a2Yqk4oQ+2yV4@EpyDAI~=Xp6o=O4ATPXV2B&Q=~90{Y{i_eDq$FfdSZr$5`NdzkT01)L?VI4OCbM)ZlmksBdv@>ZUAugvEnF-qENq74SWlvaqs~7G$i0hkPd0c8Zak(f5lhu z)&d31&UDBr{jfueYKxHczcEvvs;%Y07d$T-gQDi7%ah%rdC`_ZH%tY*jDM>zv0;e> zir@yRkkOlW$u9&rxF#x65Z||(>A?gjGe2;Wp?T>m&P&{H_JRUVP*m$XvxaFFV(>n- z!cko{yUYVOG!{ms*!u0Ag_tCfa3(Na&%{%|D+!hz%zw0Ah;oGYDCjP+0N0^?037VL z?|fsCIUgmk)*A?@P*pZTHf6kR+5k~MPhup#QCZwCTEQ`6Jh4Nfs)f}seeUExt>~7! zPK8W2gjXXb;NJf{)Z&|s7rT76+8epy?;rXV*9EerZW@cZxvaZKtIkHp(M35C%fz*~ z{+K;`>KVsODvO)q#~tj3`Lm3QW#1W|3diL5h=A-V;M)(>7d8o*f1xzNix*4ucEYH4 z8$=i9*x~PsQB>EJ{7q9hZKdjyGke4=$2X?G8w=mE3!pXnD9bNgpG&E~obM-gQb+gC+{||x5^qD)`Ngsj3Iwab z{aP+=%-coCk%R)cMGfZC?SQq9-0X|SX`YIUXFk5$S5Qz@3#{r}`scdRS}cXc~$RCdX$|o5cgX?0D2JY2p=yY>BlIr#%1$zVBZs} z$F_D&T(8_qGwtiPT9*?mN;mv>=q*5$v0mY1wOcqt)njOe76?RflKSDc=AUODIE2GE z1pSr5BagE#UK4uDN))#tIx&O3E7Y8L#?h9IMdKjm$TrtTZK_Qh zf*ty#euEuudC1l6{yFXp(^7+-eZx=%lXK)jz8V(VSo37lb9Ahe$DR6$S-92bRKh)m zmvtXRhnM@lPoGmp)B65*8iML&sDi7Z;=lSJQLB?1HaWt8!k3Ym99o(?B)PW}P5`^+MxY`jIG8lpVYP6@V8kqOS5PeCxbi)BTozZlmDX1Xn zx!1SD5*KQxif2H6>B(BPkM4 zV)`!UtTpiE&UdRt(KDvzt>FBsQ(XH5TS_L|?J>a8&s0%AXx-B&qMw2F_+y6FM&i-JdU$VimA(EM z!&TBFPtiuSsOa%oS+4{*M0}h!-M0`DmIsGL3H$g^0&gAh%h&j{s-@^a$QMKp=nZ~w zkO#XJDY0tKL-TBN*wWh(louce518ShuVQC2s5;@wm~qSIpxe)~m<%XdO!SCy+$83z zew!cCCLj9$^t>G)PYG_{`ME`2pQ2ay$%K_BbyQM+k4lL8Wd(&?Ufd(aj9s(GkPi0a zS8mtL$GD=we^r+rjI1|`68IqsA*9flJu@@~O=9x*^eBn;q3lj<3AU}ZdNuJm!9B9K z$xWp^Av>x~8YbH!`~nt*-aKK2Ik3L+31E)?iT={Y>+vw7jO%qv;&tOv z1`nY1lhQ2#uC4m#J`(EodKr>H@E~SMv7bjvZ1i+1j!uNphD-unEOT`Ng>(SVi3V`^ ziOwpHHi^R)=5cNnA!3j4o`km~N-)rgP;)zAtBt@2g;U${XhEs;aN1$q_O>Q!P4PMG zF$OH8A{+vxQS=VcQ0T~U!4I(BU3~i}KnJTBS0_}g0d|e>hh_3Yks ziasQA2-{IL8F?=Msd^mW@v2nVxUkK*lubUldp7LYfL1aaLFel}?y4gBryPi!hz-P; zR^0BF7o3iDml*E-_GgSe0JZhVvibXQZCf(0lIQbfzzT4<$`#Ae;||hfD(?9ABTUXM z_ojJrS@Q1ihS1gd-C1Po7FH7wfs&vBYpVwfL;Qz=CZz3H$4i8I`s1629fU_m!upsA zO{z<|KywoY<|3DFsF=@IS6v~uW$(QFTb6`5iD(!P$prt;}I zTyLWbtGOt2qV|fPEDSgPfo= zm8=N>KXLhfNj)PFi%J~Lp}C4JKi8#lNmReR%NgY#oSY#Tw|R2gxXO*fqZ0PXCCzZv za#S?BWX&!dhvH4n6i~bK7yy+~82tBvMeAyg(|)svkzSLURBMF<+KC-zX6_nmaD zo28(RH)+P&b}I$KR-WGk>dlZPvSGT1FGt^>E!!CHF8VA4v}opdpN97}7w5UD^0ZfI+x*4xVMzb%e%_&OUcT~%t)TT<^x+y{5S4&>c48Ct^oMkiYW}jf4RdTkfcJ(OYn%}9wn_rI~;lQC$H>dU<`r3So z>WZ;cvvhRf%(EjBN1?r)i5GLBYp#Thk&&ILek%G~&kRsam zj#>B!qiX+RkS8`4ynzmHI(&I0IPnS+C#^Y5t1>Cg2$q8VsyfmC;sb|yx`s^QCCCId zb&io@p-_g1uu!M3XuF=v+HcHNTCvp zYH^l{t+dygM${>S)N|4&@2z)K~Wu?pfJQ+MH=c-KwQ1F=HX`XQuZ{ zGCs4H5h%BPl?#w^mN6!E5dxZ#Uuiv=@S}uB6{lWNJrB&Jv2nllg6|2e&6tF!-QIH( z(5@46BDZ8=NyCoCmpKrmhu?&;s!Nu1LpP~v(w#Q!Ox46|ZuT0C_-|aKZuKREzf=CQ z^Quy1Qfmm*!pxaZ$Fq*kl;Zo!4#JH|ddfhUIgYhJDG6@OsYDRIbI&?^x$TMcUlVKO zaKF(8kD-ANV|wfQS88lOI8v2)JE^ms)^h5D+iO6-y$5_5lhvZF7(5?)QXa}^)o+rA z5=9b4UJSXe&x=DDv5v2bSZwYb#bE)D0|pKAHg&0+4U(T&AX?bhJr3r^9{$r~({d)A zu3*^O1rwjmJiYPh^8LhhSPDhsYd^INLa25~Do5H_KM}XEXg=k+#&6jtA4J!LPu&77aBs;8LeCnj58-?$*Eei8`2OzFDEnQJEGLS$4zm09+^g0BmB%fp=5A;zQv#i#|5o20=59mw-7VBsI zPu%g~kP^W@?)Ds&f!I3%VJwetAZR(tF@1nbR`dk{e45TgaHqKZqs7G zbe!?7BBFQ40mx%n#LXnDR@cWTI%|&enHr=#+tS!ZapdPAF2yS){;~PK>=iq5p1Qy0 zq6CD7RMRIb4V=x0VAh-6gl%`VJy8~U!#V$6H26QS*ngQ;qecZ)-K)Ck;}S5!Veuj@LPcWT>2(ZaqEl$#k=_ zb---3+cPmVAyKQ4xME-$lK7UcCT8bxxETZoI^wxS_~u9qroGc8vVpdH$O>1J?;}vf z1$;x-$muARt8qk&p&eAyjBmI%89tl5*5l!qu!WhlXaX>>`k!1OuaoD_UOn+q88a<%He5wWkyj^k?5d_!<)tU=v0vy7>uYC%` z+z`O`s2@na4269c1mAa1EkSE8v)^tRWm7|pY_|NSoZqu<>ys&@B@sA}jNr7{PUgpWaM222_fSo0y4lwy-N*8S`Ub7@~#dOIN_H}fW zwOuol`U?F~f;Jw82d!^-Wt8lwZWv+-ivS_JF1wUPa3_AT-}O*xu&#cXI7g1rD}qv5 zrJ>9+G5=G?$TI}=38Cp?17%-$g6SsY6`STIz*Uu;!=fa1b5&)TEQcNgl*T-O{$KX@ zJXmxQ#l6aM7EcI?Ef2tF18=dkDC?e&x|=nGoj$W+I9^7hvCV`l@mLobS(xwKB8(g) zH!eqm_2948W~3!uetia}8Kp^ov+2(GfOU4^%b1xQ4v1?}dabL*oOMi4G=$tS?pp>U zX4bGt6F;|4LmLCTEwy4Pduz|z%I>4^Pj-nYQXPiN`2@CdC&VPspkNafS*SQY_YJ<+Ebn;8H8l)b z((PFrMrN_nPV}o}L$Rll__8|07Pc}@$D`eA?*r)Trdti~oV}LV9|>74OrU;iz7A2v3n?jh zn?dJOl&1k}19{9v!;S0iL<=tZ*!hTJ0?!kLSxPEdikyc@Su z+iP8}^Jz%CTU03n>vG=RC}9u^^UDG+4&A~pmJRf7eGFldNr^5Uj6YCTqQot$T-1XA zYZkALrB%!Lc?hE2Q2p}+ri-Mr2Q-!c3w6}&Kh78BwJ zqyoDuO%xhb`uXa|;%GtHAKMI$BSKm2VOiuka1=MiQy2+W5OVO93NOMSz0V&FFgDzU z6?;(DIdXGSW8-%2p5eqRyUVQEP&UrTa2ZEEdV{A-yCT~RGq-FuR*X9zWBgmdRzY|cez4g+iQzl}o=bVR#Ej9S zI+G$WUYOs2LFPFHPqD-L1x_gX(b1O+4$qvVHv)X);b*{6maTRL`T3L)UEB|5&J`5M>v1M|mdyIAcoMsFN1_d9V=B4hReQ^Hk@VV%ZNaKxov z-34AQH}nXm$m|f#co2{H^5+EplK*fBIAPc(0f-vC%kaiGSFj0lnkHHdxWvIDc`dyL z!d4jM<{&#V{-abjBbHj~#DnnU;NG;*Z-UxMuZ*`AEnyPNK(>qs9I;W9K)R!o~@1DCmmQ(#)Usg{3PCimB$lZcd!M#$7hw(5g2pLG5u zfC$HNqqp$mvz056mS4G;lJlN(4t{|e%KX@DtTfFO2*OqtD84#9Y0)b^xZlcpcT5m6 zqa-ngt&+kL>k`DbmBQrn-g~l~F5@cAmzgjU zZY+|Xu%yitX#`!G1ib=8k)+)H+btMvr&@#pzO1!BHhX59&1Eb2!Ei2&eFL8ajj+%3 zMctHoTB4sFkW}%Gzr1he8Wxwp4$`m_kE+J*dhAwtXFmQ_W5zF6*ZOJHT5%HWm{G!7yzNYqm9agWiMgX~&spXUe^M&gO`A>DQag4B+6 z&?C7D&ls*tClcBS)8E%!2Q4(`&xl{lydV<7+5y@%GWNR9UN zxmagce=#!Dj#gU1OLq6q-?gO+pms$YE!# z*b!c}id5bIYFEc#6}Jr0TCCm}cpU6VU_tqL-e@%3c_N)>hi3H2>5UQ6e_Z_NI8BLeJs$z2MAss}PoDUN1qPfaDIBpQpT-!XrI|~G zAVw}~;hS{?TjX>?VLIjm#jEZ!@37lW+j4x9l&H=rL4Zs??MYHV=*)s&W zalp;{5IFo8b&smWwLpyVl&tYX>rddMz9v4V?qI4wp7F&Flw$QIF$lrW`(T7@g@_;x zbh;oaWPLK&k%I)ff2fb?f`m8)pI8``i!nORyoO=BZs5FpW%8MPK1>GyWeD=`uufmX zA{^A8TpF#-eLdq{*uEjta^Wb#Det~Tq3C2#6D}x;5L6@Pu7rl}?kKQX=i|Q&z`PYc z-KWr$@s|)iwAkOuU1r5W)Ch86tsN*R9ZZc4;f(o==BHl!f2U7;2o|Kmr%ea!#}pqz z!nnX^rHIrUSRqE@2~yKUVm+}{7mnRA2Hb*Pk8HjH9>ShOkR9)mDtTs1H;MzFCRwkH zdylIPD40m6Vl>dI%^r-*UsI-&XQXRq&1U1a)atWWB`%X*1nXF4lJ$Iv;X<(sSeO z?spvSl-tlUTvYm}s`#l!o(wg<2@G%|2K3TpzPyTaF@_GTqfeXR772ih0)+GGqa8(G zGXv`Sp#$h9z!WR`dB%+HA)3Ud%-%5hK6NsoV_82-p8$_Z6LwmaExqp%%zES3x}f`-qCk78(Jq7F}HOf)x*_Dd!QK znld@VGuZC~>0dsPlBYjk-yh3N?qOz17kZe6rBbVsJm?^d`JN46@cEWqKAEH}>XSYe z()?TzZVw1{u4BrQ8d_kwZLvLGs*7G8A(kc63p`W@KLAQ zW?o51jf+2Vk&YrvNGjlbY3SZVw{xxTp_Gp*J)78DorqdiL;q}Qe8vlb8@5B&ls~1PZt1>uS z{^e)5my(ckvM{5F6QJruVW?2*y6+aGRfNARcOD3VHKSTYvt;@xpb#!8N3|x<4=oJA z&tOf_eSJKV&`0)wJ}Bq=dYw{nXmxV-ISA`LfkSVKhP+wTeC_qBg%5W*@Gcu8yCO}~ z_L7mh-9_U{r0X$@NQ3Moz(z(m3Jfy#^^}OR{9bZ0&KG-&b=p;QN65T1kLQNLS=P&?lhp_~;DV-9dkAUiJ!zEJ| zwrs~f*I42)*LhwMbGpe*Q4XOskAuC=^(vyb<_w2>UspI^IKR513qVns!W45ovpgPv z@fvCLrCokba!y-~Z);5$K}?frx*fSu?1#7*%n@1jC`Xr78~>GtSNJwt`h`=Ep(hOZk35H3}igpaeHjuqkF(&NdVjgrO z*QiYOje{Tl$;P>X@6rZB7@FJzRa1kXK5^)?{m>_C@$vnlwj#Im(YE+Ai z+b%An0v_T;!$^CsN*)m7JAnYt>=yB>NOyE|UFh0RBVb5Vh zQ@!G_`r}F~Tj8XqR?8;b_ukzR;{Rk+Pu)0dIFAgylZ@fNN@CGz5w{gg)kKU8)<>q! z049z&7~FCh*-OT9B(uP-X{Ic6?^uGAWRZ73*obZ`j=~wW?5bWOi|q*q z(rs)NmGBO)6JydV5n0S(-_$(usKKEJ+G<1*5e|-SYWuV-V@DRG3gzepb9Y+=6&@_j zbNIYbls+`1K>{k$MMd7qkT~^pN_#$jQg1j|Kj!hWVIm-iT~^J9EDtPRyN7jtyCS~RyxLe3*zI_hwuIi8=4QBDhWsyhsC zG!Gk-8X^A1L-gzw1n0j?zOpQiJrq@FExxNi)-xNm{GD-pBynO@H1X!;Ug*U%0Qb1J zV@(8q9!8QBRs+nx%u%f#e!n?~TsmH4tRkDz+isyGufRF8!$=UWb>%wD4>{C}@bQW5 z%>o-LMiqlrY%rI#*Aft^kn1$e9wWO8D5Wt$wmoY_vY9xk z&0=sqHCf0{YnuIvDhu)ENC5UwK?=}QE>0myY+^0ZO2$>mp%?}L4xz`K81epteM~hf zTintmtkI=3^~zSI(R`}yXu;XbP=RwJ=ZF@7p9<)1QDwwEbevn6>KH^UwqowthBQak z-Ls2kxr?$K?4#W0y)lhHf(p05YE__je!4IXHS^t0T^LnfUO#D`*Xdg+J!*`Aovd@0 z6D=&);_-cdPP{QlvKTW}8+yROvdTyziIUW*oMHDHKcn+dCsxQ7ySV9OWWNVow4o1S z1ze5y2#rcZNo-?tWlHfu62qvHXaR)!`JAG9Q@O#|?s~C&FC#zY!l@UVpo!XU3F$GP zH+#{mq-VyAb0f#&#vGV!R$G+rNPNJ$xEnTZj&Wc-eZ-M*CUUF-J<(e|=Zp-_7?wtE= zbfi@a&OnxX@MJrI>)MXFgS4DsdG=^;iH-ti&;iLD4Du zP{Gd+zWnXJTHA$M*a;oTTKv-GyeyZ~K4t?EkhIl9kA(gR=evqhW@4>nQj%d^26e4& zJarJWe>rCAgjd~9M1Ss~{Jq<~5<}1lCd57p`c(tL+ClfmW8q18<`8aAvk>&#e(}1% z@|JrH_lcn4*h2rT^A}c$9-0>wXD=((N7gMt6wba;!HRifkh{S{yXdx1)bJ`fql%Kb z?&kC^fX`wJ;6?QNWxEfvaOa)>Yx7r{q}QNfcy&8d+$!80H^rwL%j;6lkfhMFN3u@7 z0+zhK>7641j;}?fsmK2z<|h%~uYZ+I6$M)d%`NaSRUYugO2=RyKu~)0=9F>jSld8E z@cY`6&CuJ$XM0n4MmnWp#+0#C_75_`L>8$A3(m9L%}5VL85&EBhZ!w{%I5`wGD;pu z)gp`!g4Z6{xrdo~8)G>&<%GfCvTY9`r!5x}BoiF}p+QlwvfGGn%RvsW=E-5QNcGkX zaVnnO2>p%bUmREf7C06WsgnWQO>qq?p?|(6+&cPM<>_PaCB*c-i8_pGM#V!dw18Z1 z1awm~NqXL%wMM%4Ty!iUp~8GJyR+O=Lj9akB|JOCB(Y9#+Wu_UJf=J?@AtD{mk!Oe z-}J$k@gzgr5G*{DEG6V#YndZ%3{`g`MkZ1?XTX^tj`X4Lj`>1zER7kVGN!U1Qmm}$ zU&AB$Zua5oN=8Cd?#evY>ova@A;^oM*r%D4xFYYs=!oB-BWd851PnNRY);3&&_Ea)w2}1Ae#+ zuv}TwNvm$u&g7gb@I2$rXA*b_Ao_cK_JE=)IBcOIgSh+ z2K62C24UE!(QL#W7Akp~8|rB7-X(s05c^pOn>9)z`l;u`{R#GCU?l0@wV) z((DjM-^|qHM7X#x(H<<*zXq2-kyM|6&mY_xRGtC2@3U94zVVSz5zyG5Apfaq5l8S3h4CpzV*bl`5Qc+43!nSe^*cw&Hl?0raAa`8AC0>)0%5wjsG9iy_X6= z@@rj=(4Wk83*vu|zWFtQvj+tFBaTUlnBwb=tgMU#@Itmi zz<^)`%;>=ilbczJ2I+H=~2Au^UjGqaEOw_-FJ>Dfms?1QG~X4UmrvaBg5a z^2l|-_w=YW{i^l734u>11}^3w5|INvKeh?<{uyw7Vt5D!;-8}vz^m&=^@~i{_y90n zGt*yJ^xLU}@E1V~-e?bS|0DH1dF-e1#{|;+XRXq?=3{va(D($B4orifk&N44M=bF5 zHz)g5r@dI~>N-jK%D?%ywDiZy+|btg^ewma$G8CYYbsUsU*qfy-}E@G&@HUs^E)b8 z)~7G^YJSqR;jAAy{|pJFxc09azllBHyredIW^b=PjDEh}f#@3?9RJd8U8rZQ1^Cg? z0nYli{p(`h=|<~z{$|koiK@uTimHe1{l-r5xhUc@f;w2nk@{yxVCfxPSs#RreR4ou zX=(k@x32WFfO&o~(Ey;C#sR-Cf$W_@zW}IlvJw60$l1{SMXuY<^}@0HiGIN!0M!5e z#<;5kQZM=;fcuNw!h5zTe+Ib&QcwPgcGvk<`psA6jp7eO>Mwi;>2`E~1?d`D{$W4# z5GC=Qvjkn>4}{HER|59wE4sH$;FsRi&*jYnx;O0IN7zi& z6?pzrpW)xxukw$N*pJhDNjOP*8j>St#pH}Btp)oY#CbDq-Ii}8ov z_ZJc{KmZ;;)9?o-I8%Ur*7D~(qh7^e!y}ur_jH(^eXz^%k-;g`s3zpYzbDr503s2< znBREcD<*n8_hdR~LO70a4T_ZqY?slgB+niG^K`8tU$?prtr_ z3n8LFg4d#dlx@j?^Z$Cqh8^bKYlE|3aCsx4F!hcXZ?WVF*hmGEkelQ5!Wekn=EfWj zYN#qZFw!Yq+ShxsETty$Z0Vi^c$k(OMT!T6ASQGOGIXI3(lY!A^qlI3xw0qRPdvL` zm7A)}>bSz+y8->Q*z92b7$QKDJ>~~sSky5-ou`T7$Vc)55C4!Azq2N>4q&55ItiIW zk?CW;-Zs*ZFLw6j+^Yc|AV3|~uP^L>mMJqNQsB%gQn24U^$@s<^(1SZJ-U2r z9fWcV*jNHG#pNTMOOqfzvf z*h{+YPU;QSVSJue=K5HkAhvmHQ) z<4!gI>V`TDcyO1wX#xQg+v&h=ovTV#iiG%zurE3-Un}O5uTa#gh+9ticx6eoX~%ia zOnFERJe+pI+QY|2qA3OTfemI<${BQ%X{wOO9dgRsR-MhdriLFO&b0HW%!NcuBGj5C zv+;VX5Z!+{5k07+ZJ5a@i}V-9IrGB^UU>T&domwGfYlMp+uLKqwNQuXgr?eKVuJM< zToBmH;cJ$=jP=*xh$P1ZDto_=DO*^WJkF;!3w*tj5Wz+}W~~{h1DE&}cKl>7>Myw6 z{*=paLdSYid}UP|yWc<&I}NY@<<@}x8<>@?WXvg1eNzRt$lJ$We+r}rPkxpHL%aY2 z`>cp<=b1cL#dutlq-8NlP=%*~mRj+?-Qdg({nJ5A9FS!^qclvTfUkO8;8n_8o zFNZ`UT-IG(;1+GBHaVIxl(^3=@niTJae29c#({ixhnBH(@cwY|Vlo9FaV!g=d$OJ^ z%UG@MQ3osgkY}vk)gERY#W>!$bGSEMO#&PAybl}<@T$>7M4|#w?c|^yT$>(g-W$X> zcUz#pj*)SAc3RC$7(%c@t*m)xw<;S>Qicw9d>n3kZ*mfD2(w@FNr1*Wau}gkoVrL} zY)GjipVpEkP;7LBHVKp&-Dsr6)}7>N%^{Ku&ea+W%bh6?r{-p;+q2gQ^%GiiG4#YM zWz*VKv$`P}zBT2tcKHY}5TQ@1A_yAg4u8<;vu@q(?ooa$qN(1~wdw#k$=q~WXA{(_ z^QxvpG$O3ioV?clJL+-vV-oNyk4e z`*k`yO2=@`sJP}yDPZKEQ`sNe&Ac{CAU?IC+x#}^bTF6-=ERP2=rA zJkn8ORjWo?W9tqxCnS5a9$~Je2*jvCZYMM3bGQ6`b+pz+Dkrn~ft@n=T zx*`g48G-XPFj|UkIXuN7HCr&B5Nmy$9&TrQOnVmN9q621DE&`Rr>)Ln%Y2Jia*Uo+ z+RM7GNNEAnFN^weu{ih$*5Z^2obd}oG~{Ict0ZyaiOu&2$Tqd17QZtVXN9jxjc`5{ zsgs0r#eNG8UfTqTfmwEpl`R8QUP!7Vko%*?S6rNR=#N{bV*BU0)=zokhAL(=O!_y$ z=mFYUaUy#i5-=+S&o~^mIHh+i;u-s7?1{{|5`OP7t-=OI=eRy*ckS?#lC z0Zh+!9o9{u#>msoReV)LF{-#lh}?1H7C}zISoE+_ak8P;0CS^GnA()MM)3vaiyc)i zsjTCg5}Sj`Vy=v~D@=#TjBSs$VIMNCyCmlY`Jh%3Zv>vr{I7`*J8tT8?FRwUJm}wx11MJ{giOrfJ7|G3OlsB z*@6_WzGI2&8N}KEBKzaATc*SW@qkBKcaMx6WD8ZD2x&RWUlwDzHHf*!j4Gt;-|PBZ zk+{|bVo8gM;L2IVxBF%ev70^&?YlOOo~vHFg0-SpaJOqpDBh_*DY)#_FcJHLFp~l0 z1dRvtP03hoW^%j=cSlP?5>YS-HT43L-4|=1SfbngfCN+j!@{bFJd*8ON2; zV=Go$kp2NC((F~co6kuXc3C~-7KfXc&SHWG;@*{^hwu2^DdKq&ifYm-sA2xrDxCD& zpgG!=f;GgAg+wBMtb4&wMVg`*Q0-4NSMpIrJgWY#(|>-A#yHAX+h|yp`2E($T*lY# z4__akS6EMHJ_u<3p9yK~oY5F0B2$1Wa6a3R^y)mEIZpDPEyLpL=7siEwf-{10Cvzb z&C=-{eTE1M31Ig{#drd?GCfwkja|{M-r`@rD9%ed3L?q-{FZDjcuJ=!1vXR_Fbf(v zDMyhbxQI{eG)X8zO}@VP_thJ=Wj;tF{nRmFb~s;ne*-DEV#3km-l&N2CrHNcBbU=K6b zH=2_cgl(0eeBnkT31==RMKWw5>W8Z8_Yw2l3v_U)MD+Se728~ffh{Of;;-i)3dCBG z&-r`svb|)w0zEeV^8Lw4s<;v`&o!v-0>KC}7oZ7EZyb>u59RaC%?o0Fs`(C1wB67D z(%n4`tLhQnTWK+7oHZfvH|TBV;4HPiN&_0 z6Q{-O&wMn9ry&UfZkZ=-ZlOj>(w4e)(VrfVzE|$GJFNIPOJ$m$EL_{qN7}MX>sk$c z&+UiaS&n#d#ZIZswtU^nG<>YOWjEnx#;Xl?G=8Y6{RTXPN(L&J0ssVdC&t@L-0)!7JnmI zMSR7+nD@=ff#hL5&(0QrfqDXBG7+g@_)!vHZ=C?41Ln*&P;@7T*`>J%`0ux}{=I}y zJd+3wKcc-4b5NN_yJ@c>IN>P2mx8U}ef(x{ypR4}ImdUlC6{#zKxRTp22Gr7KQQ@p z@A`fyWb^lEJe@=|Re2Eo@PNSGu2fX8PFF(wIY;3wDLXu8;iC7Zc0UJ=&9yl<$pZgf zca1Zu`vau`j{C^4KDS^hcrBYD(4$#%?KVf!BKySmLYRf_lgvE|j65>s(>Qvga*dTufbQKRoBgGy~ zOWdAI3<4ZgxtbR3B$u_jxYTBE6n?p)#H~q=Hh@nkSWRI(Ol$sn(3Yl!1$qW`JEJ_yCs>WvruwY^%s~NPRb1p%uedLy;tph)cqgT$kY&G-hJ6JW zH_ZGoy!bHWBY9C-EwS#wRnb}PQjE224vyjMAzdDor>+qO{r8Cz zcW%Z)_B1Ky2#P0bj;7)w_oA!ckl8!L3C^3@Kw!91PNHn#R^J(F#YN@_m_HWK?&1eQ zL8aiQNypB9SD_+Mox$KA{?(9^xc3UWd*kwV#Yx`59ZCT%ElEN@2sK!D(VyMYr<=iPXs6{*8gPdo>OuSK{f26X93~uHMmPnK2 zEmKAdj2l5VFPG~Tb2Y@*7*knA+`Z|#S6jYV)@yw21iD81`(m+o#c@!3RIJPMv1nZkG`8PU&euP0QwBQV7if`yc)4Jf%w_N#Qu54dX+o;qMrX@ zk}}2!8_;d4a$IK5g8%W_k(#Me$6H#z*~(ig!M}Mo!8p)8UvL3w&2Y@|vWt%~_|qyI=~Yb%Vqor%kisiks)# z)6-n7 z=PczB*J%YRd(&2$6wNdx4Hk3fRVYeKcN`d_^kOV5a~sPFq7z0D@3tkYcX9ib8}QU) z71$M$0=+ydqkVj0OusC(cA@S0guJYRBl<{@E^@FdVXz)YtFeg#EjMO51{wbdpS8n^ zh+lufB9~xX*Y-H&iow3ZSIqDur`w4SH<*wV(q2u4H(PB836!Pgm9mlqw?uWqhiHQf zy~(-dpM>aqhqQhLa@!m$yufs}q4E%Q_k}m)g`kU~3s5!B&>(jM8!2P}(@omz=5Td8 zYwx^7I@o`Io|TFV8S<8gW~&SB5_Npn|DC@L1_n{Ver1d%&&^z*5UK3QFn}P;UA;$%mU8r)-H#?M0wMk>!ckyR)@YO zPV**k%7@4E(Hjl6le62DO&yNK_u6Lr8JZ?$GG>NnV?P5WzT?ed8Z2-RTwwUND6CbZ z3P@DUYI+1y-$dB@6RwlNU2;d&{_HO=E77-PGpMz@RN2wsp)VE*B;m0_$D9VfJ!saq zo6eDbKi2M7x?iRl3yI>4QfJw8%=UI@uNr95sDLS>zIE-4yu^>i+L>Y$E4JALr@2XEZCpo0 zx$RE+@&VNvJNuQxS<7f(6UG|c#aqzW_0;Wi%Z*ufaCgs;_#Vlc{iB2bWdBG0CU8&{ z5ZXx)W{XxlY&xr*m8z}i{C3t>b<{UsI~a(36QL{F(z|pXoGzG-qdeSmvhgkt${&)> zJnl+^k#H6EP!1QtaLj|d{`&fTp0Ct^(Hf03>j(QZo1)edEH+i|f~Q=a>!(O+ACRc zu`MmdQ*#{v*~Y9wdAYu7!rJy<%M#?t4sOSFC_PD};0UNFw*VUTEzgDA2CR6?>Gu`l&>P&#;_3nVG(oEaxHRxgjX2=?0WP~3*_2Zq7WhV5`@idFl&qJz>(T;01 zj(xqL$@Xt%eRUnedBna{aro0vqY3S(8LYGXP9Lv%f66j50A0vZ~Bh z&H{pSEhxjdb5xPtAm{&m@MY(NBRvt>DH5OEJ z(JwKh<+*kqzIr7Zho}6VzdtNfsIP}RsTb{Yg^kf(;3^3mgeTSG@t!R~({>3#Jn$>1 zEm*j$bv8e(?se76kdI2bJW_^Z>e`xAr1`T$%WyX~Lt+;Ktpvgk=OPpJzXk0xJC>Uv z&Ma}`>S)-WY4N6K)gEO=HU4G{CE{$+Gg_S?TJD(0yawMVk~nc~Vs7@KA-^*RBId{d zSd5+cj@&JNlavYO6a1e+^vt;#%@ItOZ(=^&*c-v}4R_!7*n7Xb+}CnswZkjKM`(3X z*W{~`>%hyvcJ}4x5PjBo8V*Yw%wf!si&b#st=lkLQDb-&$40_UNZ8w;lB@L0-4(qE zeII1Vt_yP_)8*o1ybZsKrA~hj<`lNZ_h;}=Jn)Vw-{SqN(Qycxvt6^KZHdk2vjUfi zC-|_zPuy&j0JvlPO-EShxhHZgDq3bwT4z@9h zQ8MMn;6680Nw<(~zbLZrn8u8v712n`>^{>3lod*sFVfe|X$Ut2EMJ+V&Qvr^)Wlg) z1^!E5p32Lt3$xz_(Lw_JbbI7Dp#u+iP?g|1{bV&?h z*{;AOSOdHbDbW=5bi$<_$Ru={2-NelVtCGlCF%X>#f1cdcWbFvB-9W3bw_)5g?@6{ zB;$am!=WiGLiHLLp8}f@X=3`GX{hWh2);6a2X$KT`$cuAiSdd%4)>*RbWoBX&eab! zJmmA<`XKg+@(!q=HCkfRj5@*~3}03-oB0Eawu?Uc^<1tMTgWlrbj((05Er+k!|eeZ zmCw@5PZ)6f{C3CUe~7~mW+>ByIUcE*mw&g zv7=@kXuh@@>b#4JF#tap_N+-O-sphXoXDwCk89F6Qnc+hdtgd^|(o z6+`8yHnPF1RZVEeeBnyR0%Zl@p0rucZfU+-v{AV(kYaz*%7JiX&QLWF{z_EUibiXf z9U5@XwMYU+LKaBc0`qD?+t3I+(Be!f_V8ut69o!T5H{oGN}rb8fC_A7R2o`fm~@+Z zt;Wh;NnWRx$ax+bRU<#C)Kd*YHAM>N5kVO4b1_Bl4a#y|MEwAS*5yE&<;?UBV3wcd zmYJz*!pMTf9QUpPu{UJ)KH$cphRW`6waPQpcTni%!@WoLMTDb%DZ(QxFYmw(&gwrZ z6~GWnsa%N89h#p}Cx1SJ$)S5Vq|i3VKv^1z>;Q@*PZ|yBSqjk~XshZYstjrlkDLp&Unt{F9k|{}9D8Cl zQ8DBPgP3-hVi`N~&v83ae+o;dZP5VoaCpFmRxLxe1pEY-*#P-kt+%A~9Tt+IUq$fF z_Jk;D`sMdCliuqCW>zvQbD#41SiE>71eI>MF>=!}fB3Tx08#d-YUHaetPDjd@JI!fz}yTwoKF zEtlsI2?19-e&j-J5&{+odU%tBgzR4y_zbN58%Y@{r_?AoWwFgA6j@cdTv6TP^1DoR zeUx7_jEOP~(*pXgW-EkLY1SUO;4^H*dV7P?Ke-`=-V~2%F#5MEqc(cR-^rQiGlcJD zx~FNBrs1Dx?I+gL`xJX~LLT*GLnVGOvxdSLTbmk=5UjZpdppFzn)1B#GM!(_1odSrG9#!i1v`WO>H`8GR#KLx_0 zwFd1vi068ST1)I#`F;}@A&G|mAWb!;qA+wqn~^(lLrYBFF#DFcv7oi#seFA4ApRp%h8tj2%gGP|6 z?bkgj?6sLb9%C9o&;Tp}F&~Ko9ig@0mNX)Gc!~>)( zpja)jLybPm5p$I02fkknl=Dpl9bHmDHE(Q;*!qnFo5*wK)6Dm(cd{x?OsQwTqN=Z+ zA@A}5@E2nH{oQjP@^BEB5}$|e-9_aaMihycjALGT*)n*TcbcUY5scQ&ymbRS;GCdJ zP&3{}nAgk9$cVi3mKHU{hUP>-cUNa349ydSPpMr;E3&*;?y%?*d)nG7Eb=m$SV;${VZiKIxs@fj7k?btW5~m)B zPU_9YvtKQ^Rdfnj^W{1hAc<&0+Y-(R{x>fq zFH*r#SR~C_m6*HhEBmPLl)DiJ6clbqM=dFgVaq;8!Cln|!r(UQ@gfS71lTX&Dm#?d zxiSF;=4&bYVd&EnGWAFRYxg#X$`@(vaOJ;Ubgk~4Atj!a)H@R;`n~!f$N_UX2~VJj zrb-iXD3J&-EQI)xG>NOly`?S%vuGR37-C5T38wTk?^)DOc&su}N4;yQV>=iNJ|we9 zQ&FT?169F+)Ve>`4T%TwR};ppABn|Fk3_OlaTjvG<=u2Aj^B&QRAEUFL}TbB;1~Lf z{5~U##B}lkfR64Klxlr z6x9b-=Ln?n4FHXBWc-vjZaQ$5LXy{KOQkNK7fv~!U(BqmAKW3(ANqYJj<>QW?j%ZP z3|L|^lzAtx_Jgn~@4Noestx&R%q4b_I`tVGOwggfBTV`blM%e#{wL$=`>F(fu<7uq z27I}rVY)k}I`WWl)5=*(&}~TbvwJ+Q8`6xVy{dQg*lS6=876&Tii3odd*|WZ2d!)l z9%TNB0}~=s5$|qBc)VfEwr~P1l#_JADJfAu|Q?X2qs>kt$_zD;AG(O8ND@?J3&wPT9E~=^(g87_g9+mE~mmQ=c}- zo;n00Z~HuN23s_*{K{>}r+OZJf3#oN)oS*9v_uFCavA<<&s~vMkmuB39L`9EGN&+v z7p|YR`d@iyy+>TAW_G6<6G&eDJ7t1LRh3d)V7v^1=y4cl8St=~jW*N1S*Jzs5yO)l zqq32qW9wVp?rthaBi3z^lQ>?;)iYnAW_j{^!Rv>R(33nf^4)8LOAbOyBCT{Gs73^2 z!Xcxu3I4tWIvCw?8aK;SJAi~;Q+Y>eQr=>60Zm;|;=+JLp;+E`*5EW zIWcPT#!0%@9w2Gw94V#r-fGS=;FkVy9JZBp;s3|jIm8OX0Nwf8wr$(Sdu`jcZQHhO z+qP}nR=+k~bn!2mOinVhn`GuBXZ7UP;qb}UrF``ofzODdgRzKM#OsGbe;CRY8FtVm zoL-=)Rf=W9Kf4G$y09cUTzch->w6OgZ$p=n+P%=T zc~d?VOq!E;gg4Wx>{fG^RfL7%Owe0i$2yK*_c=#NXz<8^3_OO_CJ!&}zCH<+B{kG- zZL4kytE@dlsK6vyqu;(7B39=x3dk=ATCG z%)F}Mi=ysm31>0_o}eCF-;$O?m4;OiIm$ZwKTJpBkKuf(UCaR)n_HZ7Il_J}AnNPo zVLw`f8TV$Dzf*-O(urL()G5{ZpIV&W`8%d1N>hA#S)Vfbc$KVc6dpknZl_q<#2e_} z6*bJvuxg;#MaZjk+`)eZbLtXL+}?J6MYkVT2u&yOY0lf`ba{0=PhT;cJ=QxTJe-Xz%8RICZwYM*`zL%B#h_5AMwtoYLdx51kq!GM1g(oVxoZ+}|=_ z`@eJB&%A|N8#}9i8m!syt@1h3gntzn2vmA7qGn>@KX^R8f#0nvMmdV8XrK2y*C9Iy z=5bRwEVU3kk!g1uAMkBq`m`QK5@sfnlIW2nz1iqLt@IC%X5lYjW}>`!0RxB6wH}5a zl{GPwU!srKwbr`M(y>~;w;ua>>qReCiTf3hC&nHX#1q|YV9OP2FFj3h^(|8G%xz5O zcN-0Hl2MU#bLk$$u5+;6D2!K%A2r5g6O()A=kZLPw`WZ+NmaQJa}y2x;TUfkQ@V7T-58RZUoRkg~eUu42xZ zm-G^Z@I18CbRG~TFEb}KD4m2^8m3@zzry-n^zeKSIR3H}!J{$eYf^YI<{oGT#4xVa zr0UUjrTN@Vr+~rz_u9;h9YK(L4k zw)1+pwsBZK={7OmHQyYo^h=URrZhao%C%^8wP z4KYCOD~Z)HOw4?e@F>t}GE@pk+aTK2|olaP$ ze3Oy7|Ef*R%J03v0GT}!RrWl<0Aoe{xV1A&WI*Zaw@8{+_O-^KZ5*=Ka6GOqnm`V5 zoP&4S0OMMaoFS3 za?CqiSx5;o{kxcaTf|-ybX%BtJ#;zBom`on{F>~{6mR^9?qbqWbNr^_#Mga;Ts;cF zWp>1eWkH$rY}1G}8WgM_3bqT8-XaFQV0TPwdnqhAVflQKg0E#L*3kX2evFpPJe=lE ziqRVlK!|yja_9eqOxCgUQ+Z=SSJT}UTB<^F!n!I=aAs(ZsWQsKD5h*Ykbel@zE_yZ zsO+QPl|`Jw6FcxIedmns^-|t8DiS%7gN#6xG7wVr{N+r0B;aqMFE8~qFg5k%peDP1 zzs(g{oT(1tPIQY*O^8NFqu+6^i5wrlAJ3Io#wH>n_(yWD>n#`BmqQBvv2N!G^d>$S zWf;O5gnfhcf$Wp7*_C>9^e<*+4j5c*!-i0PJ_a3V$2-tjrst%$08#gAg5{MP8fofP zcMT2HW+sC^e{hgA50f7I0eW!d9vyKtwImNYUd~QDM{k)Q_2nq;sE;_j7~6B! z{$h9WY0Kh#tO3f}T=yk5~M>O)1#oSXrmWKehbhV$~W2wJRJ&AK(en^2v(bS%|P{xMy1h z!`cxiBBiHq4#7^um})v6YWKWF0|OY;63A7Nb%)k67ipE5+&s%VN6c^YjUtYSw*8dJ z)%B?0*Wm;9O%@;OFD{O?Dnv|)Qbz%CKS(Frl8TBZv$e>y0P}JvAqd||@n^vBI}uE+i~c5tY7GoOEe#>D%7M_)F)}xmQ(B^x`e=x45scrP zE*7z(>Sn8@|Kgydf@!ME8$jR zs=t!BFs4kOx~_MpVti^c&`^Nq#tX(PDS(_s)TSY+zJ<$Sddv`mVgqpx)x3mIf&oNX z)a!SK?{{9m-cbct2&?WXE^cs*Pg=GDVRR>UY_|zoHsLH}G~}CU@YOU4VN*ByVk8Z$ zJd4*OCqfxX+?D1xIH9*O$Jza|CxwVgq|oNRlF;d9riUjBAlG&UiB1oNvlUQ`c}Qp-;S z4WozBKhEs+V-w)Cjp$xvuR8QTwGO6js?#M$cI;~6!jbn-^0{Z;`=40tmFNRegqZ== z1)5GV4mz!};@u=W!0L(PE$pOqr$igwlK`m@4KV|(idJXWv#)p>stP@pR09wd2S;CmXlg>9!!KGG`6nhrYDNCK6lG`fpF!+YilH!ljW`VFr zl&FZWjV0G{zO1ZiB?y7UdAIYHqrX>#AMJ4VWzm+$KJ0fIcBb$u8F&gCQ#gcJ#Wk)h zuEXj6eaAUNx+XT)Q_hU;gTE4Rlx^1TslF^=Za1db;2m99SC?lchro7~J@CN}p_Q$H zG7tIna_|1{Ukd6U`B$is12=)oC+LfUsi9p{nM8K1Xsof@P&RD?|aWSLvcF(1J8g|jWaeH4U)i|CgMZ})^*VddQyN(TCb=S?=d@E$P6 z0Tol`#jy&pdM#8aYD@7pYv4apw7RB21Gsff5qz+~(uMzs< zLiGImS>8w%9ZsOym33}(S!sQm3}hLRVD#gLk#DzR?K%l>V#!hCV4u@Vh4ypB9T?t?OtD4F zdz9LqdRl?k+H$~37>jp?ttl%s54>Nk!`VaQjTRnDy&FpHb87eu-7vT5=ZskN!7jMu z5hWu#EFDJ5y{?9B_SXGeQ>yb?{YUAJ>6kW#5F39ZGPsxj_F=;`E6FAWzX44)Lr_xY z#CiSf#ul4|4w)GnX-(H*PG+o8T-Kx)MS7stHrbmGXbWHLJ?&SFBy(G-~Ax#1yc*;yfj$?;I8#j-!Z>8r^)|j#7|c z5ZQpUP(mb!PDMYX3WmU|4U5^|X}y8FH1vI$vP=3H@t3rTzJj%PqW#6pO?p35gEf&V z*s73)-0REGcvKNxceqE1B)1`$8`nN7*b#I`Ii})i({6?%D)GVHLxc0|YzGXUw)~~N zB6bxFz#H5=GBF-CaoO+j>#Oc-Y9gluf0%t@E62{-y^0ZTV!=x2X<|9WP^@M@CWd)n zF$Y3ASs1=I7{z+5ra%>tEj%wR&cPYTFrD=j@vpat8{+-?XnqDm_aRJb5#u2MY?4FM zdcPO3gYV*Cob5H!yP0nsSLs;Uqr&T?@JX}fs*tC zqDR&wNS6DoieuInKY|BW>rH5GIX@?kkmTcEV}K>v@N2`^8Lpz_oOMdl&|EiIa0vZB znv^U0Xvb$C1OEf&B#lTfySc1gK}wNPO4O`?xYAtr@J6~l#6&?Q1hVbQbax3EL1 z)p~)5;h|CuhwyMD^YNMwhR9BDk0F`Lhg?7vsEF)ex%03cV;XZM)st_9wi9_GfAJ>C z&vgX}92q}Wn6f08RZfQ2GaxCgbG!QT3esV9a~tECNS(AyK7s_17Vc=q?ZOmILE>BD z@eX6*X#7A@Ou6;+L#_>k!g~%%G(G8q(zG)`w(fNwIh73&TJ_R)qX;FLl=AvA6bVfA z=JkM>Eiaa!gX6Imbt+~vPfyIDZmy169ez>nfN;v;O0C#qSA{5 zOL5j-u`lB1plpTqRNn+q{`pyrT&u#}_KuW2;)+UCS>tUo(*xBaiAIW{GkyH)I|~@YD)BirrE< z+332*U?8Sig(dGp3Oz@SW{EWF0fILhudk%R14iRD9eOU5c7U8p8=ZLE6&sm%2po8* z*+-vW;RxTx{C#1yS&>C2UpUA^8180}jAjZ0n?S-#c#Npt9av942-s`@5gc!zf7A~M zK8!pD-LgfdO)lgybj%wHh}Dufq;}Ra;=shuZ!OORTvpb7j%uIgxZ!RXDuiFl z8^s*K&;_*tE#GcxKfoW-9r=1Dnzy|@AS2FJ8_UlFBK%$dDu&9` z&6z`a2G z+xGu*JjNX=b_a4vJpkSDD2|(C8-I~_SB_WGdRw40XtcB|q(sUDZYgb(v-YT%`=ed* z7`F5rOZCVAuK?Akb4nPXcN>PjMJs!&D}W|o1(R6#zWroG6o{=Jk{%=k18r(88Bfm0 z>|DHAr?@HS8BJI|k5&~(;@0drXG|)1x7bOmWon8f81Aha=?Y$wW&W=jV}1 zc0Hgv4zD8aPr}EHKgF0gCGUqfL^ECI9wm^BX&@AN)ZjA*MDA2qQaf7$1PW;HF8AGt zoTarD4`>yFG+$NjLUs{+(HI<|&nsWSX^rxL!dUx2j5acuOe-af&CBvff&&~tMJMnY z+UOoAp5xjo1?=$e_iF-fhcuy^?1Sqn`?K25nAQMsXM7Z1-rE#-3027B*z7pcPY_%avWrRd48XxqToH6eUht+>> z1XX!dlE|8S2=4A&>t@NscJ$Y3& z=(OJW-LSs61J$}ymRA)+X8&Y8JWqKBw6;mYGrBT|9&QktBq^CX*k@KHPQB*|oA~oh zNo9&Mvb7!cObS}BUaL@&$y2%8O0Sq*_39rm{7yi-C)LT(P*<`k9NnZ?BUoz3;C37% z6`^>0+TJ2}GTds5Y9O?26p}8@<_}ozhm05#UIaM-@N2_kOnX~IKZ*(_Xr8oEE$}HS z5G3cVx+JJ-p1iSu@=k`n9PHuHc@UM;7MUI0?U9j$cmwCO2B4Xu80j z)IPUEukV_0{JjbowOD7Xob#+F$9Uh-X4C1>q>78d*>r&)sH%vu7?$7)AZF!yJ=fKZlZxCsJ%5s|qmqyPQX^?e3?b(9TtO%TPrx9@u zo}rV?3gZ>7D0lSsHUocLLSBRpJHGC)fCtC-Os3BWNVu=V4vGw( z5%S~w+gcnr<^^n(to;qfv@?&tK-qU5xXT%rFiDzeAQtiot2%>76?-M9-fBWR;b9R!u zM6SWxz%wjz#c#68(t63$jZAw~VyaA>c-&=r9apQ4NTz2PLvQW z{Jy?!PCg6sEvHbuQ&LRVT;3nSwhSHd7qw`!W_xE!_6&He1cl(g{Ds2H=a|MkwW#`* zDVZs4INT;>Ow3|(HBCk*V@?@9ur5J8;a zMUbZ2aszXq)ov~PI!RcQ4hK9l)royX-_xt8@6Q%-4w&tdjTg>@IvVOCwUi>dYA@Z| z&`EjrTVoUK4#PM+^;a?z8LfaU*#yjv6Lyv}r)IL-F_syl!X7eMW;#pxawLXcCSfa^ zy^$$%U0aXzWSsmu$qqYQNeBp0lD|H-Spx|a0Kq_;tyUYYy8o^Jw?=PGUK^iKRS;8B zPG5l^)(edGc55v@?=K6mqYOjWtnCC2FLVm)6_lwXe`!dJm3Qi2l4En@77Qk~*1Bm( zdFmGDFQ=t6uxAe4`DY0-DC*c&(QL<8CnV^XvU?7O`K+K#G-SEm&JWp@R*fVv4k2w< z$8ngtQFld+&%KqDn|XK0d;JQ<>eXN%hn{nXynn~lvCi~)JX34N-SN zzH`toTqaO8$R}7Jpix4AR1udilq$m4^@^)5H!F4_5SCR$b>?2n@EOtR`r3rN69aKo zxQ^nflG$35Af9ZNFhWj%tMuizKEre>c6zgq%ZK<~;65x51?7UlfEqX+oCk;>!B4Nx zfv!-BBw5e+wW@s$v}C4xTk4UJhyu(9B4#w8Gh{%P4@L(VKq(7L8LX{lyOq*@sJ3xY zc#2M*bC}(^OWL%Krt<^&&Jp6w$)6KY#R^@rpZfnowMYy*^;o+i>g*ijWp_o9*bfDz zA?BX(CAe{qe3m|tCthzGtHl=HQ?x}Uk!Jy-`SWXWq|8i)Jznu41g-m{?vX$8ws}{4 zu6xOzLl|13_u!b{F+PtPTK3WtnCaA5T;%POWCY70(%j0ROK5uzSJI`)v_W{z9>CYE2(_nT z?53(Dbsv8Jos_1&*#r8UfRzup&&i03ZGEL-BIJViKu{h@A7B2h3oU{$7R7$Pa>_uE zXbaVYH6`wyw=G~LCw_p4!0KhkJ-V*(bVNeX5s@d7`%I@z;c6;fo~KXWd&fS+Q5B35 zl=!Vt-RjSHjSx?vQHc^uos=|W9_jL>NJp{XF2z5rN3lN~*$Q!D& z1@O%h-URIT2uf=W_g6JYX{fmv4wydwEI5);eQ18|6qA=D<5NT>o)DM08*6Oe9s|lF za4H=(2q+0T&aK_t$iC}3t_DZ1e?9l`>A1uSkSL&S0z}&|P+9&n{ei9g!-VkJ-MsJ9 z5H@JJD26sSo>0ACM4Ii2fxcg@TNihpNa)VrW4K`UR^oTj;j~*G=C2*-2<^F5mUi4O z4SuC=n!>>-=>aeFapwOdHV>_NvQ%olis4<7P5-BvkIs(iYrC!btxLXGiA9AoX#rYq8%I2o66-TWjunM~X%h@BiTlM++9VQ5yiMpUGGQ|1a;hVOtn{p+YK|PRD=21d`%Opq zn^EZuC-l6yXlN$f#w^cf`gLk^RqQHh0vF?4z;4~nOGI0E%bi}DIr<*%zbXrj%VeF- z%zQ%^$xTCV{I9cks^qn;1H>;3Q=h0jyY^rkN?xBhZCU+gte~L~k1@_S=QjB+*^|#Ks4sM-X(;wm z@2*<=?`}ab(~%&O`KA*hZNXCBaRh)YRJ5TH?J7Vk5D2`3easR*q2wmk8qn4+#e?i* zMM1qL=Y&)@iBVF;_`1>RU!Ck2s*^PRxQ7j%S<0r4e|I7w?6hUo%XP%h?GRARwPa`J z?QAtd4i_iJu0@F0SZLipbRW}7zK|)j!o|FmkeuDy&iAX|DHF@1WI6vM9D)MHuK~D+ z#9Yx7M+|3-2tiQY4?b*)voH`>La&=MauOewB@y9+t`53=QLux$TP5P+CmhooO+!-) zA9HAFjUvx&F>Z~PxsWJC+V`Qo?0?OfM?II1;|VDYUgPZc7jND(IpL3>RZZ)Z)U_5k zp}@SCZ;V`+U)_o~5y1fah%O@LUD-7A4dCn{Ky%QG9f^PWm8z+ycy9!g=3QrK(#Z-9l~MM{{^EF z-&`|i)JkrjpW_9D-l!8VNBHVSnp9T7m*I3PdUUt8SRCWz=AZm^?6b*|7O%M&Gm!AB zIvN*U_Esj(GxzXSF?dZsiB%hjKcf%!&EYv$6_@)3dwV6+#FyyF{6|I|q+mzoW!r^d zPhSNIzI8rb8j6{ihcT_DeUIBL{LY3TQ56@ziyd0#xsEWQ+A%)3^2hWcV?#gVn>kA3 zwkqZwf;e6WTtf$%Jl6st)*Mnioovhsj^XvcmXr*klOcBIItP}J#luo@!O4sKQ5{ex z)vnq8_p}9^@5MfhjCw@bYMxO7q{Y+O{JwM*$WsN}dpJge zB%Mk?v@caFBZN6V-K@qrHzQ~t5NIzC_kQAlwKRpa<3orz)<$9CCv?L1-%tSO$xoMa z3`ymj8*j|ra~0mlq2+~Vk=HltN{6>139sEq4KnvVir6USI_fMI_DHjSn%J+KAv=M}@NjHO(;Q&)@V<|fAVD(81H_vAw-t#@X6+c?2 zz{g60@+++f*XTXj8 zVTj2*W*Jq)`r|ktY7h(%ZDQRD+<5HpA&)wQhogNpO(!~VfO5epF8 zq=-2)@LWWSdfA`bla)MYLjTAvTAqDX6Nhf;GasIaK?f_?eDM?>jwjmu2^QgulA~mL z;R}9vl#B#|-&CX1e5l#3{4BZjcTp#zgvTdS(c&#R9x$1X4O|N0R^0`U(2Tf+`cp$W zS-v{+oTT4OaDu?u3?*a z{lez;Wo_nSq3YgfoOP5eES?JCCeS�qOTRQJZ6WNR_6oFNqlvm!P2YOO+0{QlC+) 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

9poCecF7h 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 **Hint:** _Try to remember where **Middle C** is on the piano - this is the most **important note**!_ diff --git a/music/src/BeginnerCourse/02-ChordOfCMajor.abc b/music/src/BeginnerCourse/02-ChordOfCMajor.abc index 6b81ea6c..a7b9c512 100644 --- a/music/src/BeginnerCourse/02-ChordOfCMajor.abc +++ b/music/src/BeginnerCourse/02-ChordOfCMajor.abc @@ -12,8 +12,8 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] | CCCC | EEEE | GGGG | EEEE | C4 -[V: LH1] | z4 | z4 | z4 | z4 | z4 +[V: RH1] CCCC | EEEE | GGGG | EEEE | C4 +[V: LH1] z4 | z4 | z4 | z4 | z4 [V: RH1] | CCCC | EEEE | GGGG | EEEE | C4 [V: LH1] | z4 | z4 | z4 | z4 | z4 [V: RH1] | [C4E4G4] | diff --git a/music/src/BeginnerCourse/02-ChordOfCMajor.md b/music/src/BeginnerCourse/02-ChordOfCMajor.md index 547b57a0..5b8a9698 100644 --- a/music/src/BeginnerCourse/02-ChordOfCMajor.md +++ b/music/src/BeginnerCourse/02-ChordOfCMajor.md @@ -2,4 +2,4 @@ The **Chord of C Major** piece, introduces you to the chord of **C Major** which Use your **thumb** for **C**, your **middle finger** for **E** and your **little finger** for **G**. -**Hint:** _If you don't know the names of the notes on the score then turn on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._ +> **Hint:** _If you don't know the names of the notes on the score then turn on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._ diff --git a/music/src/BeginnerCourse/03-UpAndDown.abc b/music/src/BeginnerCourse/03-UpAndDown.abc index 9ea8b055..55c81a82 100644 --- a/music/src/BeginnerCourse/03-UpAndDown.abc +++ b/music/src/BeginnerCourse/03-UpAndDown.abc @@ -12,10 +12,10 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % +[V: RH1] CDEF | G2 G2 | GFED | C2C2 | z4 +[V: LH1] z4 | z4 | z4 | z4 | z4 [V: RH1] | CDEF | G2 G2 | GFED | C2C2 | z4 [V: LH1] | z4 | z4 | z4 | z4 | z4 -[V: RH1] | CDEF | G2 G2 | GFED | C2C2 | z4 -[V: LH1] | z4 | z4 | z4 | z4 | z4 -[V: RH1] | CDEF | GFED | C2C2 | z4 -[V: LH1] | z4 | z4 | z4 | z4 +[V: RH1] | CDEF | GFED | C2C2 | z4 | +[V: LH1] | z4 | z4 | z4 | z4 | % diff --git a/music/src/BeginnerCourse/03-UpAndDown.md b/music/src/BeginnerCourse/03-UpAndDown.md index b51bdea4..0208782a 100644 --- a/music/src/BeginnerCourse/03-UpAndDown.md +++ b/music/src/BeginnerCourse/03-UpAndDown.md @@ -2,4 +2,4 @@ Use your **thumb** for **C**, your **index finger** for **D**, . . . , all the way up to your **little finger** for **G**. Make sure you keep using the correct finger for each note. -**Hint:** _If you don't know the notes on the piano then **label the piano keys** using the PianoBooster **Note Chart**._ +> **Hint:** _If you don't know the notes on the piano then **label the piano keys** using the PianoBooster **Note Chart**._ diff --git a/music/src/BeginnerCourse/03-UpAndDown.mma b/music/src/BeginnerCourse/03-UpAndDown.mma index 0b15827d..fdcf77ce 100644 --- a/music/src/BeginnerCourse/03-UpAndDown.mma +++ b/music/src/BeginnerCourse/03-UpAndDown.mma @@ -79,6 +79,6 @@ Groove Second C {1c++;} C C Am:5 Am:5 {4c++;4d++;4e++;4f++;} G:8 G:8 Am:5 Am:5 {4g++;4f++;4e++;4d++;} - C {1+2c++;} + C {1+2c++~;} C z! z! z! diff --git a/music/src/BeginnerCourse/04-ClairDeLaLune.abc b/music/src/BeginnerCourse/04-ClairDeLaLune.abc index 3c8260ea..012581f6 100644 --- a/music/src/BeginnerCourse/04-ClairDeLaLune.abc +++ b/music/src/BeginnerCourse/04-ClairDeLaLune.abc @@ -13,7 +13,11 @@ V: LH1 clef=bass %%MIDI gchordoff % [V: RH1] CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | [V: RH1] CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | [V: RH1] DDDD | E2E2 | EEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | [V: RH1] CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | % diff --git a/music/src/BeginnerCourse/04-ClairDeLaLune.md b/music/src/BeginnerCourse/04-ClairDeLaLune.md index cf017653..52f6e39a 100644 --- a/music/src/BeginnerCourse/04-ClairDeLaLune.md +++ b/music/src/BeginnerCourse/04-ClairDeLaLune.md @@ -1,3 +1,3 @@ This is a simplified version of **Clair De La Lune** that uses just three notes **C D** and **E** from your right hand. First find **middle C** and always use your **thumb** for this note, then for **D** use your **first finger** and for **E** use **middle finger**. -**Hint:** _Remember the fingering: Use your **thumb** for **middle C**, your **first finger** for **D** and **middle finger** for **E**._ +> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, your **first finger** for **D** and **middle finger** for **E**._ diff --git a/music/src/BeginnerCourse/05-ChordOfFMajor.abc b/music/src/BeginnerCourse/05-ChordOfFMajor.abc index d7937de2..e4a2235a 100644 --- a/music/src/BeginnerCourse/05-ChordOfFMajor.abc +++ b/music/src/BeginnerCourse/05-ChordOfFMajor.abc @@ -12,8 +12,8 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] | z4 | z4 | z4 | z4 | z4 -[V: LH1] | F,F,F,F, | A,A,A,A, | CCCC | A,A,A,A, | F,4 +[V: RH1] z4 | z4 | z4 | z4 | z4 +[V: LH1] F,F,F,F, | A,A,A,A, | CCCC | A,A,A,A, | F,4 [V: RH1] | z4 | z4 | z4 | z4 | z4 [V: LH1] | F,F,F,F, | A,A,A,A, | CCCC | A,A,A,A, | F,4 [V: RH1] | z4 | diff --git a/music/src/BeginnerCourse/05-ChordOfFMajor.md b/music/src/BeginnerCourse/05-ChordOfFMajor.md index 21fb884d..be2ad13b 100644 --- a/music/src/BeginnerCourse/05-ChordOfFMajor.md +++ b/music/src/BeginnerCourse/05-ChordOfFMajor.md @@ -2,4 +2,4 @@ Now we are going to play using your **left hand** the **F major chord**. The thr Use your **little finger** on the left hand for **F**, your **middle finger** for **A** and your **thumb** for **C**. -**Hint:** _If you don't know the names of the notes on the score then turn on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._ +> **Hint:** _If you don't know the names of the notes on the score then turn on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._ diff --git a/music/src/BeginnerCourse/06-DownAndUp.abc b/music/src/BeginnerCourse/06-DownAndUp.abc index 51e119ef..45d447e3 100644 --- a/music/src/BeginnerCourse/06-DownAndUp.abc +++ b/music/src/BeginnerCourse/06-DownAndUp.abc @@ -12,10 +12,10 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] | z4 | z4 | z4 | z4 | z4 -[V: LH1] | CB,A,G, | F,2 F,2 | F,G,A,B, | C2 C2 | z4 -[V: RH1] | z4 | z4 | z4 | z4 | z4 -[V: LH1] | CB,A,G, | F,2 F,2 | F,G,A,B, | C2 C2 | z4 -[V: RH1] | z4 | z4 | z4 | z4 -[V: LH1] | CB,A,G, | F,G,A,B, | C2 C2 | z4 +[V: RH1] z4 | z4 | z4 | z4 | z4 +[V: LH1] CB,A,G, | F,2 F,2 | F,G,A,B, | C2 C2 | z4 +[V: RH1] | z4 | z4 | z4 | z4 | z4 +[V: LH1] | CB,A,G, | F,2 F,2 | F,G,A,B, | C2 C2 | z4 +[V: RH1] | z4 | z4 | z4 | z4 | +[V: LH1] | CB,A,G, | F,G,A,B, | C2 C2 | z4 | % diff --git a/music/src/BeginnerCourse/06-DownAndUp.md b/music/src/BeginnerCourse/06-DownAndUp.md index 9efcd539..b569e102 100644 --- a/music/src/BeginnerCourse/06-DownAndUp.md +++ b/music/src/BeginnerCourse/06-DownAndUp.md @@ -2,4 +2,4 @@ Use your **thumb** for **C**, your **index finger** for **B**, . . . , all the way down to your **little finger** for **F**. -**Hint:** _Make sure you use **every finger** on your **left hand** when playing this piece._ +> **Hint:** _Make sure you use **every finger** on your **left hand** when playing this piece._ diff --git a/music/src/BeginnerCourse/06-DownAndUp.mma b/music/src/BeginnerCourse/06-DownAndUp.mma index 60edf212..2515f201 100644 --- a/music/src/BeginnerCourse/06-DownAndUp.mma +++ b/music/src/BeginnerCourse/06-DownAndUp.mma @@ -79,7 +79,7 @@ Groove Second C {1c++;} C C Am:5 Am:5 {4c++;4b+;4a+;4g+;} F:8 F:8 Am:5 Am:5 {4f+;4g+;4a+;4b+;} - C {1+2c++;} + C {1+2c++~;} C z! z! z! diff --git a/music/src/BeginnerCourse/Introduction.md b/music/src/BeginnerCourse/Introduction.md new file mode 100644 index 00000000..0f939bff --- /dev/null +++ b/music/src/BeginnerCourse/Introduction.md @@ -0,0 +1,3 @@ +# Piano Booster Beginner Music Course +This is the beginner piano music course for the **Piano Booster** +open source teaching system. diff --git a/music/src/BoosterMusic/01-ClairDeLaLune.abc b/music/src/BoosterMusic/01-ClairDeLaLune.abc index 3c8260ea..73223d65 100644 --- a/music/src/BoosterMusic/01-ClairDeLaLune.abc +++ b/music/src/BoosterMusic/01-ClairDeLaLune.abc @@ -13,7 +13,11 @@ V: LH1 clef=bass %%MIDI gchordoff % [V: RH1] CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | [V: RH1] CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | [V: RH1] DDDD | E2E2 | EEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | [V: RH1] CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | % diff --git a/music/src/BoosterMusic/01-ClairDeLaLune.md b/music/src/BoosterMusic/01-ClairDeLaLune.md index 1ceb1ebe..8e6e28d0 100644 --- a/music/src/BoosterMusic/01-ClairDeLaLune.md +++ b/music/src/BoosterMusic/01-ClairDeLaLune.md @@ -1,3 +1,3 @@ This is a simplified version of **Clair De La Lune** that uses only the three notes **C D** and **E** from your right hand. First find **middle C** and always use your **thumb** for this note, then for **D** use your **first finger** and for **E** use **middle finger**. -**Hint:** _If you are a complete beginner try the pieces from the **Beginner Course** first._ +> **Hint:** _If you are a complete beginner try the pieces from the **Beginner Course** first._ diff --git a/music/src/BoosterMusic/02-LavendersBlue.abc b/music/src/BoosterMusic/02-LavendersBlue.abc index 2c65817b..e34dded5 100644 --- a/music/src/BoosterMusic/02-LavendersBlue.abc +++ b/music/src/BoosterMusic/02-LavendersBlue.abc @@ -14,5 +14,7 @@ V: LH1 clef=bass %%MIDI gchordoff % [V: RH1] |: C G G | G F/E/D/C/ | C A A | A3 | +[V: LH1] |: z3 | z3 | z3 | z3 | [V: RH1] C G G | G F/E/D/C/ | F E D | C3 :| +[V: LH1] z3 | z3 | z3 | z3 :| % diff --git a/music/src/BoosterMusic/02-LavendersBlue.md b/music/src/BoosterMusic/02-LavendersBlue.md index e4d02b13..a193b137 100644 --- a/music/src/BoosterMusic/02-LavendersBlue.md +++ b/music/src/BoosterMusic/02-LavendersBlue.md @@ -1,3 +1,3 @@ **Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note. -**Hint:** _To help find the notes ensure **Show Note Names** are turned on from **Setup Preferences** menu._ +> **Hint:** _To help find the notes ensure **Show Note Names** are turned on from **Setup Preferences** menu._ diff --git a/music/src/BoosterMusic/03-SkipToMyLoo.md b/music/src/BoosterMusic/03-SkipToMyLoo.md deleted file mode 100644 index 76ca2600..00000000 --- a/music/src/BoosterMusic/03-SkipToMyLoo.md +++ /dev/null @@ -1,5 +0,0 @@ -For **Skip To My Loo** start with both thumbs on **middle C** and then use one finger for each white note on the piano. So for the first two notes which are **E** you should use the **middle finger** of your right hand. - -This piece introduces the use of **both hands** as the melody goes across **middle C**. - -**Hint:** _For the notes in the **treble clef** you always use your **right hand** and for the **base clef** your **left hand**. Make sure you always keep using the correct finger for each note._ diff --git a/music/src/BoosterMusic/03-SkipToMyLoo.abc b/music/src/BoosterMusic/03-SkipToMyLou.abc similarity index 96% rename from music/src/BoosterMusic/03-SkipToMyLoo.abc rename to music/src/BoosterMusic/03-SkipToMyLou.abc index 9baa3885..5477dcd9 100644 --- a/music/src/BoosterMusic/03-SkipToMyLoo.abc +++ b/music/src/BoosterMusic/03-SkipToMyLou.abc @@ -1,6 +1,6 @@ X: 1 -T:Skip to My Loo +T:Skip to My Lou M:4/4 L:1/4 K:Cmaj diff --git a/music/src/BoosterMusic/03-SkipToMyLou.md b/music/src/BoosterMusic/03-SkipToMyLou.md new file mode 100644 index 00000000..6a8b2b52 --- /dev/null +++ b/music/src/BoosterMusic/03-SkipToMyLou.md @@ -0,0 +1,5 @@ +For **Skip To My Lou** start with both thumbs on **middle C** and then use one finger for each white note on the piano. So for the first two notes which are **E** you should use the **middle finger** of your right hand. + +This piece introduces the use of **both hands** as the melody goes across **middle C**. + +> **Hint:** _For the notes in the **treble clef** you always use your **right hand** and for the **base clef** your **left hand**. Make sure you always keep using the correct finger for each note._ diff --git a/music/src/BoosterMusic/03-SkipToMyLoo.mma b/music/src/BoosterMusic/03-SkipToMyLou.mma similarity index 90% rename from music/src/BoosterMusic/03-SkipToMyLoo.mma rename to music/src/BoosterMusic/03-SkipToMyLou.mma index 59ed3e63..98520701 100644 --- a/music/src/BoosterMusic/03-SkipToMyLoo.mma +++ b/music/src/BoosterMusic/03-SkipToMyLou.mma @@ -2,7 +2,7 @@ // For more information see: https://github.com/captnfab/PianoBooster // Creative Commons license -MidiTName Skip to My Loo +MidiTName Skip to My Lou @@ -38,7 +38,7 @@ Groove GuitarBallad //Groove Main-A -MIDIinc file=03-SkipToMyLoo.solo.mid Solo-Right=4 Solo-Left=3 Volume=120 +MIDIinc file=03-SkipToMyLou.solo.mid Solo-Right=4 Solo-Left=3 Volume=120 Groove GuitarBallad 1 C 2 C diff --git a/music/src/BoosterMusic/04-FrereJacques.md b/music/src/BoosterMusic/04-FrereJacques.md index 4218f7e2..8c1566ed 100644 --- a/music/src/BoosterMusic/04-FrereJacques.md +++ b/music/src/BoosterMusic/04-FrereJacques.md @@ -1,3 +1,3 @@ For **Frere Jacques** introduces the use of playing both hands together with a very simple left hand part. First practice the **left hand** and **right hand** parts separately. Then when ready reduce the **speed to 70%** and try **both hands** together. Again start with **both thumbs** on **Middle C**. -**Hint:** _Practice the **left hand** and **right hand** parts separately._ +> **Hint:** _Practice the **left hand** and **right hand** parts separately._ diff --git a/music/src/BoosterMusic/05-ScarboroughFair.abc b/music/src/BoosterMusic/05-ScarboroughFair.abc index 76f2496d..ea44586d 100644 --- a/music/src/BoosterMusic/05-ScarboroughFair.abc +++ b/music/src/BoosterMusic/05-ScarboroughFair.abc @@ -4,7 +4,6 @@ M: 3/4 L: 1/4 Q:1/4=30 K:C -V:1 V: RH1 clef=treble %%MIDI channel 4 %%MIDI program 1 4 @@ -14,12 +13,12 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] |: D2D | A2A | E3/2F/E | D3 | zAc | -[V: LH1] |: z3 | z3 | z3 | z3 | z3 | -[V: RH1] d2c | ABG | A3- | Azd | d2d | -[V: LH1] z3 | z3 | z3 | z3 | z3 | -[V: RH1] c2A | AGF | E/C/-C2 |-C3 | -[V: LH1] z3 | z3 | z3 | z3 | -[V: RH1] D2A | G2F | EDC | D3- | D3 :| -[V: LH1] z3 | z3 | z3 | z3 | z3 :| +[V: RH1] |: D2D | A2A | E3/2F/E | D3 | zAc | +[V: LH1] |: z3 | z3 | z3 | z3 | z3 | +[V: RH1] d2c | ABG | A3- | Azd | d2d | +[V: LH1] z3 | z3 | z3 | z3 | z3 | +[V: RH1] c2A | AGF | E/C/-C2 |-C3 | +[V: LH1] z3 | z3 | z3 | z3 | +[V: RH1] D2A | G2F | EDC | D3- | D3 :| +[V: LH1] z3 | z3 | z3 | z3 | z3 :| % diff --git a/music/src/BoosterMusic/05-ScarboroughFair.md b/music/src/BoosterMusic/05-ScarboroughFair.md index 2892a2a5..73195053 100644 --- a/music/src/BoosterMusic/05-ScarboroughFair.md +++ b/music/src/BoosterMusic/05-ScarboroughFair.md @@ -1,3 +1,3 @@ **Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand). -**Hint:** _Don't think about what fingers to use, just use the fingering that **comes naturally to you**._ +> **Hint:** _Don't think about what fingers to use, just use the fingering that **comes naturally to you**._ diff --git a/music/src/BoosterMusic/06-Greensleeves.abc b/music/src/BoosterMusic/06-Greensleeves.abc index 4b53e305..51a01c79 100644 --- a/music/src/BoosterMusic/06-Greensleeves.abc +++ b/music/src/BoosterMusic/06-Greensleeves.abc @@ -1,6 +1,6 @@ X:1 -T:Green Sleeves +T:Greensleeves M:3/4 L:1/4 Q: "Allegro" 1/4 = 130 % tempo @@ -31,7 +31,7 @@ w: Green-sleeves* was all my joy,__ Green*-sleeves was w: my de-light, Green-sleeves, was my heart of gold,_ And [V: LH1] B,,3 | ^D,3 | G,3 | D,3 | D,3 | F,3 | [V: RH1] "Em"GFE | "B7"^D^CD | "Em"E3 |[1 E2 E :|2 E3 |] -w: who but my la_dy Green-sleeves. +w: who but my la_dy Green-sleeves. * * [V: LH1] E,3 | F,3 | E,3 |[1 B,,3 :|2 B,,3|] % diff --git a/music/src/BoosterMusic/06-Greensleeves.md b/music/src/BoosterMusic/06-Greensleeves.md index f72f1791..ef7eace0 100644 --- a/music/src/BoosterMusic/06-Greensleeves.md +++ b/music/src/BoosterMusic/06-Greensleeves.md @@ -1,3 +1,3 @@ -**Green Sleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part. +**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part. -**Hint:** _You can show **Courtesy Accidentals** from the PianoBooster setup/preferences menu. But remember to **turn them off** when you get more skilled._ +> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster setup/preferences menu. But remember to **turn them off** when you get more skilled._ diff --git a/music/src/BoosterMusic/06-Greensleeves.mma b/music/src/BoosterMusic/06-Greensleeves.mma index 8659ddf1..c0b52352 100644 --- a/music/src/BoosterMusic/06-Greensleeves.mma +++ b/music/src/BoosterMusic/06-Greensleeves.mma @@ -1,7 +1,7 @@ // Musical MIDI Accompaniment file for the Piano Booster project // For more information see: https://github.com/captnfab/PianoBooster // Creative Commons license -MidiTName Green Sleeves +MidiTName Greensleeves //KeySig E Minor KeySig G Major diff --git a/music/src/BoosterMusic/07-AmazingGrace.abc b/music/src/BoosterMusic/07-AmazingGrace.abc index ea1a6632..cd69d530 100644 --- a/music/src/BoosterMusic/07-AmazingGrace.abc +++ b/music/src/BoosterMusic/07-AmazingGrace.abc @@ -4,12 +4,12 @@ Q: "English Waltz " 87 C: Traditional M: 3/4 % time signature L: 1/4 % default length -V: 1 clef=treble +V: 1 clef=treble %%MIDI channel 4 %%MIDI program 1 4 %%MIDI gchordoff % -V: 2 clef=bass +V: 2 clef=bass %%MIDI channel 3 %%MIDI program 1 3 %%MIDI gchordoff @@ -17,17 +17,17 @@ V: 2 clef=bass K: F % key signature % V: 1 -z2 C/F/ |: F2 A/F/ | A2 G | F2 D | -C2 C/F/ | F2 A/G/ | A2 c | c3 | --c2 A/c/ | c2 A/F/ | A2 G | F2 D | -C2 C/F/ | F2 A/F/ | A2 G |[1 F3 | --F2 z | z3 | z3 | z3 | -z2 C/F/ :|2 F3 | -F2 |] +z2 C/F/ |: F2 A/F/ | A2 G | F2 D | +C2 C/F/ | F2 A/G/ | A2 c | (c3 | +c2) A/c/ | c2 A/F/ | A2 G | F2 D | +C2 C/F/ | F2 A/F/ | A2 G |[1 (F3 | +F2) z | z3 | z3 | z3 | +z2 C/F/ :|2 (F3 | F2) |] % V: 2 -z3 |: F,,3 | F,3 | B,,3 | -F,3 | F,,3 | F,3 | C,3 | --C,3 | F,,3 | F,3 | B,,3 | -F,,3 | F,3 | C,3 |[1 F,,3 | --F,,3 | B,,3 | C,3 | F,3 | -F,,3 :|2 F,,3 | -F,,2 |] +z3 |: F,,3 | F,3 | B,,3 | +F,3 | F,,3 | F,3 | (C,3 | +C,3) | F,,3 | F,3 | B,,3 | +F,,3 | F,3 | C,3 |[1 (F,,3 | +F,,3) | B,,3 | C,3 | F,3 | +F,,3 :|2 (F,,3 | F,,2) |] diff --git a/music/src/BoosterMusic/07-AmazingGrace.md b/music/src/BoosterMusic/07-AmazingGrace.md index 745771fe..382defb1 100644 --- a/music/src/BoosterMusic/07-AmazingGrace.md +++ b/music/src/BoosterMusic/07-AmazingGrace.md @@ -1,3 +1,3 @@ **Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time. -**Hint:** _Reduce the speed to 70% when trying both hands for the first time._ +> **Hint:** _Reduce the speed to 70% when trying both hands for the first time._ diff --git a/music/src/BoosterMusic/07-AmazingGracePs.abc b/music/src/BoosterMusic/07-AmazingGracePs.abc new file mode 100644 index 00000000..3fe4f39f --- /dev/null +++ b/music/src/BoosterMusic/07-AmazingGracePs.abc @@ -0,0 +1,34 @@ +X: 1 +T: Amazing Grace +Q: "English Waltz " 87 +C: Traditional +M: 3/4 % time signature +L: 1/4 % default length +%%staves {RH LH} +V: RH clef=treble +%%MIDI channel 4 +%%MIDI program 1 4 % Klavier +%%MIDI gchordoff +% +V: LH clef=bass +%%MIDI channel 3 +%%MIDI program 1 3 % Klavier +%%MIDI gchordoff +% +K: F % key signature +% +[V: RH] z2 +1+C/+3+F/ |: "F"F2 A/F/ | A2 G | +w: A_ma-zing_ grace, how +[V: LH] z3 |: +1+F,,3 | +5+F,3 | +% +[V: RH] "Bb"F2 +2+D | "F"C2 C/+2+F/ | +1+F2 A/G/ | A2 c | "C7"(c3 | +w: sweet the sound that_ saved a_ wretch like me! +[V: LH] +3+B,,3 | +5+F,3 | +1+F,,3 | +5+F,3 | +4+(C,3 | +% +[V: RH] c2) A/c/ | "F"c2 A/F/ | "F7"+5+A2 G | "Bb"F2 +2+D | +w: _ I_ once was_ lost, but now I'm +[V: LH] C,3) | +1+F,,3 | +5+F,3 | +3+B,,3 | +% +[V: RH] "F"C2 C/+3+F/ | F2 A/F/ | "C7"A2 G |[1 "F"(F3 | F2) +1+C/+3+F/ :|2 "F"(F3 | F2) |] +w: found, Was_ blind, but_ now I see._ * * * * +[V: LH] +1+F,,3 | +5+F,3 | +3+C,3 |[1 +1+(F,,3 | F,,3) :|2 +1+(F,,3 | F,,2) |] diff --git a/music/src/BoosterMusic/Introduction.md b/music/src/BoosterMusic/Introduction.md new file mode 100644 index 00000000..0640ba02 --- /dev/null +++ b/music/src/BoosterMusic/Introduction.md @@ -0,0 +1,4 @@ +# Piano Booster Music Course +This is the starter music course for the **Piano Booster** +open source teaching system. If you are complete beginner please see +the Beginner Music Course. diff --git a/music/src/Makefile b/music/src/Makefile deleted file mode 100644 index 37151cf2..00000000 --- a/music/src/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -dirs:= BeginnerCourse BoosterMusic -output:= ../../doc/courses -ABCs:=$(foreach dir, $(dirs), $(wildcard $(dir)/??-*.abc)) -MMAs:=$(sort $(foreach dir, $(dirs), $(wildcard $(dir)/??-*.mma))) -MIDs:=$(foreach mma, $(MMAs:.mma=.mid), $(output)/$(mma)) -SOLs:=$(foreach abc, $(ABCs:.abc=.solo.mid), $(abc)) -SVGs:=$(foreach abc, $(ABCs:.abc=.svg), $(output)/$(abc)) -MDs=:$(ABCs:.abc=_en.md) - -all: $(output)/README.html - -%.html: %.md - markdown $< > $@ - -$(output)/README.md: $(SVGs) $(MIDs) - cat music.md.start > $@ - echo "" >> $@ - sh -c '$(foreach mma, $(MMAs), \ - echo "## $(basename $(notdir $(mma)))"; \ - echo ""; \ - echo "![score]($(basename $(mma)).svg)"; \ - echo ""; \ - [ -f "$(basename $(mma))_en.md" ] && cat "$(basename $(mma))_en.md" || true ; \ - echo ""; \ - echo "[midi file]($(basename $(mma)).mid)" ; \ - echo ""; \ - )' >> "$@" - cat music.md.end >> $@ - -$(output)/%.svg: %.abc - $(foreach dir, $(dirs), mkdir -p $(output)/$(dir);) - abcm2ps -g -s 0.9 -c "$<" -O "$(output)/$(basename $<).svg" - mv -f "$(output)/$(basename $<)001.svg" "$(output)/$(basename $<).svg" - -%.solo.mid: %.abc - abc2midi "$<" -o "$@" -RS - -$(output)/%.mid: %.mma $(SOLs) - $(foreach dir, $(dirs), mkdir -p $(output)/$(dir);) - sh -c 'cd $(dir $<); mma "$(notdir $<)" -o -f "../$@"' - -clean: - rm -f $(SOLs) $(wildcard $(output)/*/*.svg) - -cleanall: clean - rm -fr $(output) diff --git a/music/src/makemusic.py b/music/src/makemusic.py new file mode 100755 index 00000000..50b78cb0 --- /dev/null +++ b/music/src/makemusic.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python3 + +# Python script to build the music zip file +# ensure that `po4a po4a-booster-music.cfg` is run first which generates the translations +from __future__ import absolute_import +from __future__ import print_function +import os +import shutil +import sys + +info_pages = "InfoPages" +music_release = "4" +build_dir = "build/" +temp_dir = build_dir + "temp/" +zip_file_name = "BoosterMusicBooks" +build_zip_dir = build_dir + zip_file_name + music_release + '/' +build_web_dir = build_dir + "MusicWeb/" +build_translations_dir = build_dir + "translations/" + + +def find_files_in_dir(dir_name, extension): + song_names = [] + ext_len = len(extension) + for file in os.listdir(dir_name): + if file.endswith(extension): + song_names.append(file[:-ext_len]) + song_names.sort() + return song_names + + +def make_dir(output_dir): + if not os.path.exists(output_dir): + os.makedirs(output_dir) + + +def rm_tree(tree_dir): + if os.path.isdir(tree_dir): + shutil.rmtree(tree_dir) + + +def rm_file(file_name): + if os.path.isfile(file_name): + os.remove(file_name) + + +def execute_command(cmd): + print(cmd) + if os.system(cmd) != 0: + sys.exit("Error in: " + cmd) + + +def create_midi_files(src_dir, book_name, song, temp_mma_dir): + src_path_name = src_dir + '/' + song + execute_command("abc2midi \"{0}.abc\" -o \"{1}.solo.mid\" -RS".format(src_path_name, temp_mma_dir + song)) + os.system("cp \"{0}.mma\" \"{1}\"".format(src_path_name, temp_mma_dir)) + execute_command("cd \"{0}\";mma \"{1}.mma\" -f \"{2}.mid\"".format(temp_mma_dir, song, song)) + os.system("cp \"{0}.mid\" \"{1}\"".format(temp_mma_dir + song, build_zip_dir + book_name)) + + +def create_info_pages(src_dir, book_name, song): + src_path_name = src_dir + '/' + song + info_output_dir = build_zip_dir + book_name + '/' + info_pages + execute_command("pandoc -r markdown -w html \"{0}.md\" -o \"{1}/en/{2}.html\"" + .format(src_path_name, info_output_dir, song)) + + translations_dir = build_translations_dir + src_dir + if not os.path.isdir(translations_dir): + sys.exit("Error no languages in '{0}'\nEnsure that `po4a po4a-booster-music.cfg` has been run first" + .format(translations_dir)) + + for language in os.listdir(translations_dir): + print("language " + language) + make_dir(info_output_dir + '/' + language) + + execute_command("pandoc -r markdown -w html \"{0}/{1}/{3}.md\" -o \"{2}/{1}/{3}.html\"" + .format(translations_dir, language, info_output_dir, song)) + + +def fix_svg_bug(svg_name): + search_key = "style=\"font:" + + svg_in = open(svg_name + "001.svg", 'r') + svg_out = open(svg_name + "fixed.svg", 'w') + while True: + svg_line: str = svg_in.readline() + if not svg_line: + break + start = svg_line.find(search_key) + if start >= 0: + end = svg_line.find('"', start + len(search_key)) + old_text = svg_line[start:end + 1] + new_text = "" + if "italic" in old_text: + new_text += 'font-style="italic" ' + if "bold" in old_text: + new_text += 'font-weight="bold" ' + if "Times" in old_text: + new_text += 'font-family="Times" ' + if "serif" in old_text: + new_text += 'font-family="serif" ' + if "Helvetica" in old_text: + new_text += 'font-family="Helvetica" ' + px_end = old_text.find('px') + if px_end >= 0: + px_start = px_end - 1 + while old_text[px_start].isnumeric() or old_text[px_start] == '.': + px_start -= 1 + font_size = old_text[px_start + 1:px_end] + new_text += f'font-size="{font_size}px" ' + #print("SVG BUG FIX: replacing '{0}' with '{1}'".format(old_text, new_text)) + svg_line = svg_line.replace(old_text, new_text) + svg_out.write(svg_line) + + svg_in.close() + svg_out.close() + + +def create_book_markdown(src_dir, book_name, song): + src_path_name = src_dir + '/' + song + ps_name = src_path_name + if os.path.isfile(ps_name + "Ps.abc"): + ps_name += "Ps" + print("ps_name " + ps_name) + + make_dir(build_web_dir + src_dir) + web_svg_path_name = build_web_dir + src_dir + "/" + song + + web_md_path_name = build_web_dir + book_name + ".md" + + execute_command("abcm2ps -i -g -c \"{0}.abc\" -O \"{1}.svg\"".format(ps_name, web_svg_path_name)) + + fix_svg_bug(web_svg_path_name) + + title_needed = not os.path.isfile(web_md_path_name) + out_file = open(web_md_path_name, 'a') + if out_file == 0: + sys.exit("Open Error: " + web_md_path_name) + + if title_needed: + intro_file = open(src_dir + "/Introduction.md", "r") + out_file.write(intro_file.read()) + + in_file = open(src_path_name + ".md", "r") + if in_file == 0: + sys.exit("Open Error: " + src_path_name) + + md_text = "\n![{0}]({1}fixed.svg)\n\n".format(song, src_path_name) + md_text += in_file.read() + in_file.close() + out_file.write(md_text) + out_file.close() + + +def create_pandoc_pdf(web_dir, book_name): + output_dir = build_zip_dir + book_name + execute_command( + "cd {0};pandoc -r markdown '{2}.md' -V geometry:\"top=1.5cm, bottom=1.5cm, left=2cm, right=2cm\" -fmarkdown-implicit_figures -o '../../{1}/{2}.pdf'" + .format(web_dir, output_dir, book_name)) + + + + +def process_songs(src_dir, book_name, all_song_names): + temp_mma_dir = temp_dir + 'mma/' + src_dir + '/' + make_dir(temp_mma_dir) + make_dir(build_zip_dir + book_name + '/' + info_pages + "/en") + + os.system("cp \"{0}/Booster44Lib.mma\" \"{1}\"".format(src_dir, temp_mma_dir)) + + song_names = [] + for song in all_song_names: + if not song.endswith("Ps"): + song_names.append(song) + + for song in song_names: + create_midi_files(src_dir, book_name, song, temp_mma_dir) + create_info_pages(src_dir, book_name, song) + create_book_markdown(src_dir, book_name, song) + + create_pandoc_pdf(build_web_dir, book_name) + + +def process_book(src_dir, book_name): + song_names = find_files_in_dir(src_dir, ".abc") + print(song_names) + process_songs(src_dir, book_name, song_names) + + +def create_zip_file(): + rm_file("{0}/{1}.zip".format(build_dir, zip_file_name)) + execute_command("cd {0};zip -r {1}.zip \"{2}\" ".format(build_dir, zip_file_name, zip_file_name + music_release)) + + +def update_translations(): + rm_file("{0}/{1}.zip".format(build_dir, zip_file_name)) + execute_command("po4a po4a-booster-music.cfg") + if not os.path.isdir(build_translations_dir): + sys.exit("Error no languages in '{0}'\nEnsure that `po4a po4a-booster-music.cfg` has been run first" + .format(build_translations_dir)) + + +def run_main(argv): + rm_tree(build_web_dir) + + update_translations() + process_book("BeginnerCourse", "Beginner Course") + process_book("BoosterMusic", "Booster Music") + create_zip_file() + + +if __name__ == "__main__": + run_main(sys.argv) diff --git a/music/src/music.md.end b/music/src/music.md.end deleted file mode 100644 index 8e5cb1f5..00000000 --- a/music/src/music.md.end +++ /dev/null @@ -1,2 +0,0 @@ -All the music on this page is available [here](https://github.com/captnfab/PianoBooster/raw/master/music/BoosterMusicBooks.zip). -This free sheet music can be used for beginner piano lessons with _PianoBooster_. diff --git a/music/src/music.md.start b/music/src/music.md.start deleted file mode 100644 index 651129a2..00000000 --- a/music/src/music.md.start +++ /dev/null @@ -1,50 +0,0 @@ -# Piano Booster Music - -These pieces of music have been created to work with _PianoBooster_ and -have the creative commons copyright. -All the music is available [here](https://github.com/captnfab/PianoBooster/raw/master/music/BoosterMusicBooks.zip). - -_Please add to the music on this page - everyone can help._ For more information see this -[forum post](http://piano-booster.2625608.n2.nabble.com/Creating-music-for-PianoBooster-using-MMA-Everyone-can-help-td4167350.html). -The piano parts for were created using the [ABC Plus music](http://abcplus.sourceforge.net/) system, -and the accompaniment was created with the [Musical MIDI Accompaniment (MMA)](http://www.mellowood.ca/mma/). - -# Beginners Piano Course - -## Find middle C - -Here it is. Right in the middle. - -## Start with your thumb on Middle C - -Press it four times. Wait for four beats then press it again. - -## Next play E - -Two white notes to the right of C is a note called E. Press it four times. - -## Jump over F to get to G - -Jump over F to get to G. - -## The first five white notes - -We will just play the first five notes. Up and down. One note for each finger. (This is the start of the C major scale) - -## The C cord - -These three notes make a cord of C. Press all the notes together, use your thumb, middle finger and little finger to press all three notes at the same time. Any three note cord is called a triad??????. - -## An Arpeggio for the C cord - -When you play the notes in a cord one after the other it is called an arpeggio. Play the three notes one at a time, up and down. - -## The scale of C Major - -All the white notes up to the next c. There are eight notes in a scale. Play scale up and down. - -## Our first tune - -We are ready to play our first tune. - -# Piano Booster Course diff --git a/music/src/po4a-booster-music.cfg b/music/src/po4a-booster-music.cfg new file mode 100644 index 00000000..e446d067 --- /dev/null +++ b/music/src/po4a-booster-music.cfg @@ -0,0 +1,28 @@ +# po4a configuration file + +[po4a_langs] cs fr ru uk +# dl pl es not completed yet + +#[po_directory] translations/ +[po4a_paths] translations/BoosterMusic_blank.pot $lang:translations/BoosterMusic_$lang.po + +[options] --master-charset UTF-8 +[type: text] BeginnerCourse/01-StartWithMiddleC.md $lang:build/translations/BeginnerCourse/$lang/01-StartWithMiddleC.md +[type: text] BeginnerCourse/02-ChordOfCMajor.md $lang:build/translations/BeginnerCourse/$lang/02-ChordOfCMajor.md +[type: text] BeginnerCourse/03-UpAndDown.md $lang:build/translations/BeginnerCourse/$lang/03-UpAndDown.md +[type: text] BeginnerCourse/04-ClairDeLaLune.md $lang:build/translations/BeginnerCourse/$lang/04-ClairDeLaLune.md +[type: text] BeginnerCourse/05-ChordOfFMajor.md $lang:build/translations/BeginnerCourse/$lang/05-ChordOfFMajor.md +[type: text] BeginnerCourse/06-DownAndUp.md $lang:build/translations/BeginnerCourse/$lang/06-DownAndUp.md + +[type: text] BoosterMusic/01-ClairDeLaLune.md $lang:build/translations/BoosterMusic/$lang/01-ClairDeLaLune.md +[type: text] BoosterMusic/02-LavendersBlue.md $lang:build/translations/BoosterMusic/$lang/02-LavendersBlue.md +[type: text] BoosterMusic/03-SkipToMyLou.md $lang:build/translations/BoosterMusic/$lang/03-SkipToMyLou.md +[type: text] BoosterMusic/04-FrereJacques.md $lang:build/translations/BoosterMusic/$lang/04-FrereJacques.md +[type: text] BoosterMusic/05-ScarboroughFair.md $lang:build/translations/BoosterMusic/$lang/05-ScarboroughFair.md +[type: text] BoosterMusic/06-Greensleeves.md $lang:build/translations/BoosterMusic/$lang/06-Greensleeves.md +[type: text] BoosterMusic/07-AmazingGrace.md $lang:build/translations/BoosterMusic/$lang/07-AmazingGrace.md + +# Run the following command once to create the blank translation files +# po4a-gettextize -f text -m BeginnerCourse/01-StartWithMiddleC.md -m BeginnerCourse/02-ChordOfCMajor.md -m BeginnerCourse/03-UpAndDown.md -m BeginnerCourse/04-ClairDeLaLune.md -m BeginnerCourse/05-ChordOfFMajor.md -m BeginnerCourse/06-DownAndUp.md -m BoosterMusic/01-ClairDeLaLune.md -m BoosterMusic/02-LavendersBlue.md -m BoosterMusic/03-SkipToMyLou.md -m BoosterMusic/04-FrereJacques.md -m BoosterMusic/05-ScarboroughFair.md -m BoosterMusic/06-Greensleeves.md -m BoosterMusic/07-AmazingGrace.md -p translations/BoosterMusic_blank.pot + + diff --git a/music/src/translations/.gitignore b/music/src/translations/.gitignore new file mode 100644 index 00000000..cd1f2c94 --- /dev/null +++ b/music/src/translations/.gitignore @@ -0,0 +1 @@ +*.mo diff --git a/music/src/translations/BoosterMusic_blank.pot b/music/src/translations/BoosterMusic_blank.pot new file mode 100644 index 00000000..b5036f28 --- /dev/null +++ b/music/src/translations/BoosterMusic_blank.pot @@ -0,0 +1,261 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "" +"**Start With Middle C** is an extremely easy piece. Just find **middle C** " +"on the piano and then play that note four times using your **thumb** on your " +"**right hand**. The first half of the piece has **middle C** in the **Treble " +"Clef**, then for the second half of the piece the same **middle C** note is " +"shown the **Bass Clef**. Play this using your **thumb** on your **left " +"hand**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "" +"**Up And Down** uses all the fingers of your right hand to play the first " +"five notes of the **scale of C major**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "" +"**Down And Up** is mirror version of the Up And Down piece we played earlier " +"but this version uses your **left hand**. These are the top five notes of " +"the scale of C major. Again try to use all your fingers.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "" +"**Lavender's Blue** is a simple tune in the right hand only that uses the " +"first six notes of the scale of C Major. For the lowest five notes **C D E " +"F** and **G** use all the fingers or your right hand - one for each " +"note. (With your **thumb** on **C** and your **little finger** on " +"**G**). Then for **A** just stretch your **little finger** to reach that " +"note.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts " +"separately._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "" +"**Scarborough Fair** spans a range of eight notes and so you will have to " +"move fingers up the piano. Use the fingering that you feel comfortable with " +"but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "" +"**Greensleeves** introduces the key of **G major** which has **one Sharp - " +"F#**. Normally the sharp symbol is not shown when **F#** is played (but " +"turning on **Courtesy Accidentals** from the Piano Booster setup/preferences " +"menu will show all accidentals in the key signature). The melody is in the " +"right hand with a simple left hand part.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "" +"**Amazing Grace** introduces the key of **F major** which has a **single " +"Flat - Bb**. Again the flat symbol is not normally shown on the score when " +"playing Bb. Practice both hands separately at first and then when ready " +"reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" diff --git a/music/src/translations/BoosterMusic_cs.po b/music/src/translations/BoosterMusic_cs.po new file mode 100644 index 00000000..cf114003 --- /dev/null +++ b/music/src/translations/BoosterMusic_cs.po @@ -0,0 +1,288 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-02 13:11+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "**Začnutí jednočárkovaným C** je velice snadný úkol. Prostě na klavíru najděte **jednočárkované C**, a potom notu čtyřikrát zahrajte pomocí svého **palce** na **pravé ruce**. První polovina kusu má **jednočárkované C** v **houslovém klíči**, pak pro druhou polovinu kusu je ta samá nota **jednočárkovaného C** ukázána v **basovém klíči**. Hrajte pomocí **palce** na **levé ruce**.\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" +"> **Hint:** _Pokuste se zapamatovat si, kde je **jednočárkované C** na " +"klavíru -- je to ta **nejdůležitější nota**!_" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" +"Skladba **Chord of C Major**, poprvé představí akord **C dur**, který má tři " +"noty **jednočárkované C**, **E** a **G**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" +"Použíjte **palec** pro **C**, **prostředníček** pro **E** a **malíček** pro " +"**G**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" +"> **Tip:** _Pokud nerozeznáte noty zkuste zapnout **Ukázat názvy not** v " +"menu** nastavení**._" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "**Up And Down** využívá všechny prsty vaší pravé ruky pro hraní **tóniny C dur**.\n" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" +"Použíjte **palec** pro **C**, **ukazováček** pro **D**, . . . , a tak dále " +"až k **malíčku** pro **G**. Nejdůležitější je použít vždy správny prst pro " +"tu či onu notu." + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" +"> **Tip:** _Pokud nevíte, kde se jednotlivé noty na klavíru nacházejí " +"**označte si jednotlivé klávesy** pomocí PianoBooster **Tónové stupnice**._" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Jedná se o zjednodušenou verzi **Clair De La Lune**, která používá tři noty " +"**C D** a **E** z vaší pravé ruky. Nejprve zahrajte **jednočárkované C** a " +"vždy pro tuto notu použijte **palec**, potom pro **D** použijte **první prst " +"(ukazováček)** a pro **E** použijte **prostředníček**." + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" +"> **Rada:** _Zapamatujte si prstoklad: Použijte **palec** pro " +"**jednočárkované C**, **ukazováček** pro **D** a **prostředníček** for **E**." +"_" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" +"Teď se pokuste zahrát **levou rukou** **akord F dur**. Tři noty v akordu " +"zahrané současně se nazývají trojzvuk. F dur má stejnou podobu jako C dur, " +"kterou jste hráli dříve pouze se hraje na jinou část klavíru." + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" +"Použíjte **malíček** na vaší levé ruce pro **F**, **prostředníček** pro " +"**A** a **palec** pro **C**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "" +"**Down And Up** je zrcadlová verze skladby Up And Down, kterou jste hráli dříve. Tato verze se ale hraje **levou rukou**. Hraje se všech pět not na stupnici C dur. Opět nezapomeňte použít všechny prsty vaší ruky.\n" +"\n" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" +"Použíjte **palec** pro **C**, **ukazováček** pro **B**, . . . , a tak dále " +"až k **malíčku** pro **F**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" +"> **Tip:** _Nejduležitější je při hraní této melodie použít **všechny " +"prsty** na vaší **levé ruce**._" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Toto je zjednodušená verze **Clair De La Lune**, která využívá pouze tři " +"noty**C D** and **E**, které budete hrát pouze pravou rukou. První najděte " +"**jednočárkované C**, které vždy hrajte **palcem**pravé ruky, pro**D** " +"použíjte**ukazováček** a pro**E** **prostředníček**." + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" +"> **Tip:** _Pokud jste úplný začátečník zkuste první**Začátečnický kurz**_" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "**Lavender's Blue** je jednoduchá melodie, na kterou vám stačí pouze prsty pravé ruky. Hraje se na durové (major) stupnici C. Pro pět nejnižších not **C D E F** a **G** použíjte prsty vaší pravé ruky - jeden na každou notu. (Začínáte **palcem** na **C** a končíte **malíčkem** na **G**). Pro následné **A** natáhněte a opět použíjte **malíček**.\n" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" +"> **Tip:** _Pro pomoc s nalezením správných not použíjte **Ukázat názvy " +"not**, které lze zvolit v **Nastavení**._" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" +"For **Skip To My Lou** začíná oběmi palci na **jednočárkovaném C** a poté " +"využívá jeden prst na každou bílou klávesu klavíru. Takže na první dvě noty, " +"které jsou **E** by jste měli použít **prostředníček** vaší pravé ruky." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" +"Tato skladba využívá **obě ruce** tím, že melodie jde přes **jednočárkované " +"C**." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" +"> **Tip:** _Pro noty zapsané v **houslovém klíči** vždy použíte **pravou " +"ruku**. Naopak pro noty zapsané v **basovém klíči** použíjte **levou ruku**. " +"Nejdůležitější je používat správné prsty pro správné klávesy klavíru._" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" +"**Frere Jacques** využíva obě ruce najednou s tím, že melodie levé ruky je " +"velice snadná. První se pokuste naučit hrát **levou rukou** a až poté " +"**pravou**. První zkoušejte hrát pouze jednou rukou. Až to zvládnete zkuste " +"snížit **rychlost na 70%** a zkuste hrát **oběmi rucemi** najednou. Opět " +"začněte **oběmi palci** na **jednočárkovaném C**." + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "> **Tip:** _Trénujte **levou** a **pravou ruku** zvlášť._" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "**Scarborough Fair** je melodie, která se hraje na 8 notách takže budete muset hýbat prsty po klavíru. Hrajte noty tak jak vám to bude přirozené ale nezapomeňte použít **všechny prsty** (vaší pravé ruky).\n" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" +"> **Tip:** _Nepřemýšlejte o tom jaké prsty použít, prostě použíte to co vám " +"je **nejvíce přirozené**._" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" +"> **Tip:** _V nastavení Piano Boosteru můžete zapnout **Pomáhající " +"posuvky**. Ovšem nezapomeňte je **vypnout** až je nebudete potřebovat._" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "**Amazing Grace** se hraje v tónině **F dur**, která má **jednu béčkovou notu - hes (Bb)**. Posuvky se normálně nezobrazují ale jak již bylo řečeno lze tuto funkci zapnout v nastavení. První trénujte každou ruku zvlášť a až budete připraveni zkuste snížit rychlost na 70% a hrát oběmi rucemi současně.\n" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" +"> **Tip:** _Když se budete poprvé pokoušt hrát oběmi rucemi najednou snižte " +"rychlost na 70%._" diff --git a/music/src/translations/BoosterMusic_de.po b/music/src/translations/BoosterMusic_de.po new file mode 100644 index 00000000..68b3d5d4 --- /dev/null +++ b/music/src/translations/BoosterMusic_de.po @@ -0,0 +1,240 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-04 16:00+0100\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Dies ist eine vereinfachte Version von **Clair De La Lune**, die nur die " +"drei Noten **C D** und **E** der rechten Hand verwendet. Finde zuerst das " +"**mittlere C** und verwende ausschließlich deinen **Daumen** für diese Note, " +"für das **D** verwende deinen **Zeigefinger** und für das **E** den " +"**Mittelfinger**." + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" +"> **Hinweis:**_ Solltest du ein kompletter Anfänger sein, versuche die " +"Stücke aus dem **Anfängerkurs** zuerst._" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "**Lavender's Blue** ist ein einfaches Stück für die rechte Hand, welches die ersten sechs Noten der C-Dur-Tonleiter verwendet. Verwende für die unteren fünf Noten **C D E F** und **G** alle Finger deiner rechten Hand - ein Finger pro Note. (Mit deinem **Daumen** auf dem **C** und deinem **kleinen Finger** auf dem **G**). Für das **A** bewegst du deinen **kleinen Finger** um es zu erreichen.\n" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" +"> **Tipp:** _Um die Noten zu finden, stelle sicher, dass **Notennamen " +"anzeigen** in den **Einstellungen** aktiviert ist._" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" diff --git a/music/src/translations/BoosterMusic_es.po b/music/src/translations/BoosterMusic_es.po new file mode 100644 index 00000000..c7e5754e --- /dev/null +++ b/music/src/translations/BoosterMusic_es.po @@ -0,0 +1,247 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-04 16:04+0100\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "**Comienza con Do Medio** es una pieza extremadamente fácil. Solo encuentra la **Do Medio**en el piano y luego toca esa nota cuatro veces con el **pulgar **de tu** mano derecha**. La primera mitad de la pieza tiene **Do Medio **en la **Clave de Sol**, luego, para la segunda mitad de la pieza, la misma nota **Do medio**se muestra la **Clave de Fa**. Juega esto usando tu **pulgar **de tu **mano izquierda**. \n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" +"> **Consejo:** _Trate de recordar dónde está **Do Medio**en el piano. ¡Esta " +"es la **nota más importante**!_" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" +"La pieza **Acorde de Do Mayor** te presenta el acorde de **Do Mayor** el " +"cual tiene tres notas **Do medio**, **Mi** y **Fa**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" +"Usa tu **pulgar** para **Do**, tu **dedo medio** para **Mi** y tu **dedo " +"meñique** para **Fa**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" +"> **Consejo:** _Si no conoce los nombres de las notas en la puntuación, " +"active **Mostrar nombres de notas** desde el menú de PianoBooster " +"**Configuración / Preferencias**._" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" +"Para **Frere Jacques **introduce el uso de jugar ambas manos juntas con una " +"parte muy simple de la mano izquierda. Primero practique las **partes de la " +"mano izquierda **y **la mano derecha **por separado. Luego, cuando esté " +"listo, reduzca la **velocidad al 70% **e intente **ambas manos **juntas. De " +"nuevo comienza con** los dos pulgares** en **el Do central **." + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "" +"> **Consejo: **_Practique las **partes de la mano izquierda y **la mano " +"derecha **por separado._" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" diff --git a/music/src/translations/BoosterMusic_fr.po b/music/src/translations/BoosterMusic_fr.po new file mode 100644 index 00000000..24e861a5 --- /dev/null +++ b/music/src/translations/BoosterMusic_fr.po @@ -0,0 +1,297 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-04 16:19+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "**Start With Middle C** est une pièce extrêmement facile. Il suffit de trouver le **do moyen** sur le piano et de jouer cette note quatre fois en utilisant le **pouce** de votre **main droite**. La première moitié de la pièce comporte un **Do central** en **clef de Sol**, puis pour la deuxième moitié de la pièce, la même note de **Do central** est indiquée en **clef de Fa**. Jouez cette note en utilisant le **pouce** de votre **main gauche**.\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" +"> **Astuce :** _essayez de vous rappeler où se trouve le **Do moyen** sur le " +"piano - c'est la **note la plus importante**!_" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" +"La pièce ** Accord de Do majeur**, vous introduit à l'accord de **Do " +"majeur** qui possède trois notes **Do central**, **Mi** et **Sol**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" +"Utilisez votre **pouce** pour le **Do**, votre **majeur** pour le **Mi** et " +"votre **auriculaire** pour le **Sol**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" +"> **Astuce :** _Si vous ne connaissez pas les noms des notes de la " +"partition, alors activez l'option **Afficher le nom des notes** dans le menu " +"**Paramétrage/Préférences** de PianoBooster._" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "**Up And Down** utilise tous les doigts de votre main droite pour jouer les cinq premières notes de la **gamme de Do majeur**.\n" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" +"Utilisez votre **pouce** pour le **Do**, votre **index finger** pour le " +"**Ré**, . . . , jusqu'à votre **auriculaire** pour le **Sol**. Assurez-vous " +"de toujours utiliser le bon doigt pour chaque note." + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" +"> **Astuce :** _ si vous ne connaissez pas les notes du piano, alors " +"**étiquetez les touches du piano** à l'aide du **tableau de notes** de " +"PianoBooster._" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Il s'agit d'une version simplifiée de ** Au clair de la lune** qui utilise " +"seulement trois notes **Do, Ré** et **Mi** de votre main droite. Trouvez " +"d'abord le **Do central** et utilisez toujours votre **pouce** pour cette " +"note, puis pour le **Ré** utilisez votre **premier doigt** et pour le **Mi** " +"utilisez le **majeur**." + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" +"> **Astuce :** _souvenez vous du doigté : utilisez votre **pouce** pour le " +"**Do central**, votre **premier doigt** pour le **Ré** et le **majeur** pour " +"le **Mi**._" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" +"Nous allons maintenant jouer de la **main gauche** l'**accord en Fa " +"majeur**. Les trois notes d'un accord sont appelées une triade et cet accord " +"a la même forme que l'accord de Do majeur que nous avons joué précédemment " +"mais sur une partie différente du piano." + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" +"Utilisez votre **petit doigt** de la main gauche pour **le Fa**, votre " +"**majeur** pour le **La** et votre **pouce** puor le **Do**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "**Down And Up** est une version miroir du morceau Up And Down que nous avons joué plus tôt, mais cette version utilise votre **main gauche**. Ce sont les cinq premières notes de la gamme de Do majeur. Essayez à nouveau d'utiliser tous vos doigts.\n" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" +"Utilisez votre **pouce** pour le **Do**, votre **index** pour le " +"**Si**, . . . , jusqu'à votre **auriculaire** pour le **Fa**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" +"> **Astuce :** _ assurez-vous d'utiliser **tous les doigts** de votre **main " +"gauche** lorsque vous jouez ce morceau._" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Ceci est une version simplifée dez **Clair De La Lune** qui utilise " +"seulement les trois notes **C D** et **E** depuis votre main droite. Tout " +"d'abord trouver ** C milieu** et utilisez toujours votre**pouce** pour cette " +"note, puis pour **D** utilisez votre **premier doigt** et pour **E** " +"utilisez **votre doigt du milieu**." + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" +"> **Astuce :** _Si vous êtres un débutant complet commencez par essayer les " +"morceaux du **cours débutant** d'abord._" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "**Lavande Bleue** est une musique simple, à jouer à la main droite, qui utilise seulement les premières notes de la gamme C majeur. Pour les cinq notes les plus basses **C D E F** et **G** utilisez tous les doigts de votre main droite - un pour chaque note (avec votre **pouce** sur **C** et votre **petit doigt** sur **G**). Puis pour **A** il suffit d'étendre votre **petit doigt** afin d'atteindre cette note.\n" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" +"> **Astuce :** _pour vous aider à trouver les notes, assurez-vous que " +"**montrer les noms des notes** est activé, dans le menu **Préférences " +"paramètres**._" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" +"Pour **Skip To My Lou** commencez avec les deux pouces sur **C du milieu** " +"puis utilisez un doigt pour chaque note sur le piano. Ainsi les deux " +"premières notes étant **E** you should use the **doigts majeurs** de votre " +"main droite." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" +"Cette pièce introduit l'usage des **deux mains** parce que la mélodie se " +"joue à travers la **gamme C**." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" +"> **Astuce :** _concernant les notes de la **clé de sol** vous devriez " +"utiliser votre **main droite** et pour la **clé de base** votre **main " +"gauche**. Assurez vous de toujours garder le doigt adéquat pour chaque note._" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" +"Pour **Frère Jacques** commencez à jouer à deux mains simultanées avec une " +"partie très facile à la main droite. D'abord entraînez-vous **main gauche** " +"et **main droite**séparément. Puis lorsque vous serez prêt réduisez la " +"**vitesse à 70%** et essayez **à deux mains** simultanées. Ensuite démarrez " +"avec les **deux pouces** sur les **C du milieu**." + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "" +"> **Astuce :** _entraînez-vous aux parties **main gauche** puis **main " +"droite** séparément._" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "**Scarborough Fair** couvre une gamme de huit notes et vous devrez donc déplacer vos doigts vers le haut du piano. Utilisez les doigts avec lesquels vous vous sentez à l'aise, mais assurez-vous que vous **utilisez tous vos doigts** (de votre main droite).\n" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" +"> **Hint:** _Ne pensez pas aux doigts à utiliser, utilisez simplement le " +"doigté qui ** vous vient naturellement**._" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "**Greensleeves** introduit la tonalité de **sol majeur** qui possède **un dièse - fa#**. Normalement, le symbole de dièse n'est pas affiché lorsque **fa#** est joué (mais en activant **altérations de précaution** dans le menu Piano Booster Paramétrages/Préférences vous pourrez voir tous les accidents dans la tonalité). La mélodie est à la main droite avec une partie simple à la main gauche.\n" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" +"> **Astuce :** _vous pouvez afficher les **altérations de précaution** " +"depuis le menu Paramétrages/Préférences de Pianobooster. Mais souvenez-vous " +"de **les enlever** lorsque vous serez plus compétent._" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "**Amazing Grace** introduit la tonalité de **Fa majeur** qui a un **seul Bémol - Sib**. Là encore, le symbole du bémol n'apparaît pas normalement sur la partition lorsque l'on joue le Si bémol. Pratiquez les deux mains séparément au début, puis lorsque vous êtes prêt, réduisez la vitesse à 70% lorsque vous essayez les deux mains pour la première fois..\n" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" +"> **Astuce :** _réduisez la vitesse à 70% lorsque vous essayez les deux " +"mains pour la première fois._" diff --git a/music/src/translations/BoosterMusic_pl.po b/music/src/translations/BoosterMusic_pl.po new file mode 100644 index 00000000..c9bbab20 --- /dev/null +++ b/music/src/translations/BoosterMusic_pl.po @@ -0,0 +1,255 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-04 16:14+0100\n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" +"**Akord C-Dur** część ta przedstawi Ci akord **C-Dur** który składa się z " +"trzech nut: **Środkowe C **. **E** oraz **G**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" +"Użyj **kciuka** dla **C**, **środkowego palca** dla **E** oraz **małego " +"palca** dla **G**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" +"> **Podpowiedź: **_Jeżeli nie znasz nazwy nut włącz **Pokaż nazwy nut** w " +"menu **Ustawienia/Właściwości**._" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"To jest uproszczona wersja **\"Clair De La Lune\" ** która składa się tylko " +"z trzech nut ** C D **oraz **E** granych prawą ręką. Najpierw znajdź " +"**średnie C** używaj zawsze **kciuka ** by grać tą nutę, wtedy dla **D** " +"użyj **palca wskazującego ** a dla **E** użyj **palca środkowego**." + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" +"> **Podpowiedź:**_Jeżeli jesteś zupełnie początkujący spróbuj ukończyć " +"najpierw elementy z **Kursu dla początkujących.**_" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "**Lavender's Blue **jest prostą melodią na prawą rękę, która używa sześć pierwszych nut skali C-Dur. Dla najniższych pięciu nut **C D E F** oraz **G** użyj wszystkich palców prawej ręki - jeden dla każdej nuty. (Z **kciukiem ** na ** C** i **małym palcem** na ** G**). Następnie dla **A** wyciągnij Twój **mały palec** żeby dosięgnąć tej nuty. \n" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" +"Dla **Przejdź do My Lou ** zacznij z kciukami na **środkowym C** i wtedy " +"użyj dla każdej białej nuty jednego palca. Dla dwóch pierwszych nut **E** " +"powinieneś użyć **środkowego palca** prawej ręki." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" +"Ten utwór wprowadza użycie **obu rąk** gdy melodia przechodzi przez " +"**środkowe C**." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" +"> **Podpowiedź:** _ Dla nut z **klucza wiolinowego** zawsze używaj **prawej " +"ręki**, a dla nut z **klucza basowego** używaj **lewej ręki**. Upewnij się, " +"że zawsze używasz odpowiedniego palca dla każdej nuty._" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "**Scarborough Fair** obejmuje zakres ośmiu nut, więc będziesz musiał przesuwać palce po klawiszach. Używaj palcowania które jest dla Ciebie wygodne dla upewnij się że używasz **wszystkich palców** (prawej dłoni).\n" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" +"> **Podpowiedź:** _Nie myśl o tym których palców używać, po prostu użyj " +"palcowania które **przychodzi Ci naturalnie**._" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" diff --git a/music/src/translations/BoosterMusic_ru.po b/music/src/translations/BoosterMusic_ru.po new file mode 100644 index 00000000..8809c33f --- /dev/null +++ b/music/src/translations/BoosterMusic_ru.po @@ -0,0 +1,291 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-04 16:14+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "**Start With Middle C/Начните с C в середине** - чрезвычайно лёгкая вещь. Просто найдите **C в середине** на пианино и затем сыграйте эту ноту четыре раза, используя **большой палец** **на правой руке**. Первая половина пьесы имеет **C в середине** в **скрипичном ключе**, затем для второй половины пьесы та же самая нота **С в середине** показана в **басовом ключе**. Играйте, используя **большой палец** на **левой руке**.\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" +"> **Подсказка:** _Попробуйте вспомнить, где **C в середине** находится на " +"пианино - это самая **важная нота**!_" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" +"Пьеса **Chord of C Major/Аккорд До мажор**, представляет вам аккорд **C (До) " +"мажор**, который имеет три ноты: **C в середине**, **E** и **G**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" +"Используйте свой **большой палец** для **C**, свой **средний палец** для " +"**E** и свой **мизинец** для **G**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" +"> **Подсказка:** _Если вы не знаете названий нот на партитуре, то включите " +"**Показывать названия нот** в меню PianoBooster **Настройка -> " +"Предпочтения**._" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "**Up And Down/Вверх и вниз** использует все пальцы правой руки для воспроизведения первых пяти нот **тоники C (До) мажор**.\n" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" +"Используйте ваш **большой палец** для **C**, ваш **указательный палец** для " +"**D**, . . ., вплоть до вашего **мизинца** для **G**. Убедитесь, что вы " +"продолжаете использовать правильный палец для каждой ноты." + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" +"> **Подсказка:** _Если вы не знаете ноты на пианино, **маркируйте клавиши " +"пианино**, используя **Диаграмму нот** PianoBooster._" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Это упрощённая версия **Clair De La Lune/В свете луны**, в которой " +"используются только три ноты **C D** и **E** правой руки. Сначала найдите " +"**C в середине** и всегда используйте **большой палец** для этой ноты, затем " +"для **D** используйте **указательный палец** и для **E** - **средний палец**." + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" +"> **Подсказка:** _Запомните аппликатуру: используйте **большой палец** для " +"**C в середине**, свой **указательный палец** для **D** и **средний палец** " +"для **E**._" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" +"Теперь мы будем играть **Chord of F Major/Аккорд Ля мажор**, используя вашу " +"**левую руку**. Три ноты аккорда называются триадой, и этот аккорд имеет ту " +"же форму, что и аккорд C (До) мажор, который мы играли раньше, но на другой " +"части пианино." + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" +"Используйте свой **мизинец** на левой руке для **F**, свой **средний палец** " +"для **A** и свой **большой палец** для **C**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "Используйте свой **мизинец** на левой руке для **F**, свой **средний палец** для **A** и свой **большой палец** для **C**.\n" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" +"Используйте **большой палец** для **C**, ваш **указательный палец** для " +"**B**, . . . , вплоть до вашего **мизинца** для **F**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" +"> **Подсказка:** _Убедитесь, что вы используете **каждый палец** на **левой " +"руке** при игре этой пьесы._" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Это упрощённая версия **Clair De La Lune/В свете луны**, в которой " +"используются только три ноты **C D** и **E** правой руки. Сначала найдите " +"**C в середине** и всегда используйте **большой палец** для этой ноты, затем " +"для **D** используйте **указательный палец** и для **E** - **средний палец**." + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" +"> **Подсказка:** _Если вы новичок, то попробуйте сначала **Beginner Course/" +"Курс для начинающих**._" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "**Lavender's Blue/Лавандовый синий** - простая мелодия для правой руки, в которой используются первые шесть нот тоники C (До) мажор. Для пяти самых низких нот **C D E F** и **G** используйте все пальцы или правую руку - по одному пальцу для каждой ноты. (С вашим **большим пальцем** на **C** и вашим **мизинцем** на **G**). Тогда для **A** просто вытяните **мизинец**, чтобы достать эту ноту.\n" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" +"> **Подсказка:** _Чтобы легче найти ноты, убедитесь, что в меню " +"**Настройка** включено **Показывать названия нот**._" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" +"Для **Skip To My Lou/Перехожу к моей любви** начните с обоих больших пальцев " +"на **C в середине**, а затем используйте один палец для каждой белой ноты на " +"пианино. Таким образом, для первых двух нот, которые **E**, вы должны " +"использовать **средний палец** правой руки." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" +"Эта пьеса вводит использование **обеих рук**, поскольку мелодия пересекает " +"**C в середине**." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" +"> **Подсказка:** _Для нот в **скрипичном ключе** вы всегда используете " +"**правую руку**, а для **басового ключа** - **левую руку**. Убедитесь, что " +"вы всегда продолжаете использовать правильный палец для каждой ноты._" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" +"Для **Frere Jacques/Брат Жак** вводится игра двумя руками одновременно с " +"очень простой партией для левой руки. Сначала попрактикуйтесь в партиях для " +"**левой руки** и **правой руки**. Затем, когда будете готовы, уменьшите " +"**скорость до 70%** и попробуйте **обе руки** вместе. Снова начните с обоих " +"**больших пальцев** на **C в середине**." + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "> **Подсказка:** _Практикуйте **левую** и **правую** партии отдельно._" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "**Scarborough Fair/Ярмарка в Скарборо** охватывает диапазон из восьми нот, поэтому вам придётся двигать пальцами вверх по пианино. Используйте аппликатуру, которая вам удобна, но убедитесь, что вы **используете все свои пальцы** (правой руки).\n" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" +"> **Подсказка:** _Не думайте о том, какие пальцы использовать, просто " +"используйте аппликатуру **естественно**._" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "**Greensleeves/В зелёных рукавах** вводит ключ **G (Си) мажор**, который имеет **один диез - F#**. Обычно символ диеза не отображается при воспроизведении **F#** (но включение **Прощать случайные ошибки** в меню Piano Booster Настройка -> Предпочтения покажет альтерацию на клавиатуре). Мелодия для правой руки с простой левой партией.\n" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" +"> **Подсказка:** _Вы можете видеть **Прощать случайные ошибки** в меню " +"Piano Booster Настройка -> Предпочтения. Но не забудьте **выключить их**, " +"когда вы станете более опытным._" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "**Amazing Grace/Великая благодать** вводит ключ **F (Ля) мажор**, который имеет **один бемоль - Bb**. Снова символ бемоля обычно не отображается на партитуре при игре Bb. Сначала тренируйте обе руки по отдельности, а затем, когда будете готовы, уменьшите скорость до 70% при первой попытке играть обеими руками.\n" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" +"> **Подсказка:** _Уменьшите скорость до 70% при первой попытке играть обеими " +"руками._" diff --git a/music/src/translations/BoosterMusic_uk.po b/music/src/translations/BoosterMusic_uk.po new file mode 100644 index 00000000..de524c63 --- /dev/null +++ b/music/src/translations/BoosterMusic_uk.po @@ -0,0 +1,293 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: 2020-10-04 16:15+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "**Start With Middle C** is an extremely easy piece. Just find **middle C** on the piano and then play that note four times using your **thumb** on your **right hand**. The first half of the piece has **middle C** in the **Treble Clef**, then for the second half of the piece the same **middle C** note is shown the **Bass Clef**. Play this using your **thumb** on your **left hand**.\n" +msgstr "**Почнімо з середнього до** — надзвичайно простий твір. Просто знайдіть **середнє до** на піаніно, а потім зіграйте цю ноту чотири рази за допомогою вашого **великого пальця** на **правій руці**. У перша половині твору **середнє до** грають у **скрипковому ключі**, а у другій половині ту саму ноту **середнього до** грають у **басовому ключі**. Цю ноту слід грати **великим пальцем** вашої **лівої руки**.\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" +"> **Підказка:** _Постарайтеся згадати, де знаходиться **середньої до** на " +"піаніно -- це **найважливіша нота**!_" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" +"Твір **Акорд до-мажор** знайомить вас із акордом **до-мажор**, який " +"складається з трьох нот: **середньої до**, **мі** та **соль**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" +"Скористайтеся **великим пальцем** для **до**, **середнім пальцем** для " +"**мі** та **мізинцем** для **соль**." + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" +"> **Підказка:** _Якщо ви не знаєте розташування клавіш нот, позначте пункт " +"**Показувати назви нот** у меню **Параметри/Налаштування** PianoBooster._" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "**Up And Down** uses all the fingers of your right hand to play the first five notes of the **scale of C major**.\n" +msgstr "**У вгору і вниз** ви маєте скористатися усіма пальцями на вашій правій руці для перших п'яти нот у **гамі до-мажор**.\n" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" +"Скористайтеся **великим пальцем** для **до**, **вказівним пальцем** слід " +"грати **ре**, . . . , і так далі, аж до вашого **мізинця** для **соль**. " +"Переконайтеся, що для кожної ноти ви використовуйте відповідний палець." + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" +"> **Підказка:** _Якщо ви не знаєте розташування нот на клавіатурі піаніно, " +"попросіть програму **додати мітки клавіш** за допомогою **Діаграми нот** " +"PianoBooster._" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Це спрощена версія **У світлі місяця**, у якій використано три ноти **до " +"ре** та **мі** для вашої правої руки. Спочатку знайдіть **середню до** і " +"завжди використовуйте для цієї ноти ваш **великий палець**, далі, для **ре** " +"використовуйте ваш **вказівний палець**, а для **мі** — **середній палець**." + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" +"> **Підказка:** _Запам'ятайте розкладку за пальцями: **великий палець** для " +"**середньої до**, **вказівний палець** для **ре** і **середній палець** для " +"**мі**._" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" +"Тепер ми зіграємо **лівою рукою** **акорд фа-мажор**. Три ноти акорду " +"називають тріадою. Цей акорд має ту саму форму, що і акорд до-мажор, який ми " +"грали раніше на іншій частині клавіатури піаніно." + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" +"Використовуйте **мізинець** на лівій руці для **фа**, **середнім пальцем** " +"для **ля** і **великим пальцем** для **до**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "**Down And Up** is mirror version of the Up And Down piece we played earlier but this version uses your **left hand**. These are the top five notes of the scale of C major. Again try to use all your fingers.\n" +msgstr "**Вниз і вгору** є дзеркальною версією «Вгору і вниз», яку грають **лівою рукою**. Це верхні п'ять нот гами до-мажор. Знову ж таки, намагайтеся використовувати усі ваші пальці.\n" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" +"Скористайтеся **великим пальцем** для **до**, **вказівним пальцем** слід " +"грати **сі**, . . . , і так далі, аж до вашого **мізинця** для **фа**." + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" +"> **Підказка:** _Користуйтеся **усіма пальцями** на вашій **лівій руці**, " +"коли гратимете цей твір._" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" +"Це спрощена версія **У світлі місяця**, у якій використано три ноти **до " +"ре** та **мі** для вашої правої руки. Спочатку знайдіть **середню до** і " +"завжди використовуйте для цієї ноти ваш **великий палець**, далі, для **ре** " +"використовуйте ваш **вказівний палець**, а для **мі** — **середній палець**." + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" +"> **Підказка:** _Якщо граєте вперше, спробуйте спочатку твори із **Курсу для " +"початківців**._" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" +msgstr "**Лавандовий синій** — проста мелодія для правої руки, у якій використовують перші шість нот у гамі до-мажор. Для п'яти нижніх нот, **до, ре, мі, фа** та **соль** скористайтеся усіма пальцями на вашій правій руці — по одному на ноту. (**Великий палець** для **до**, а **мізинець** для **соль**). Далі, щоб зіграти **ля**, потягніться до відповідної клавіші **мізинцем**.\n" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" +"> **Підказка:** _Якщо ви не знаєте розташування клавіш нот, позначте пункт " +"**Показувати назви нот** у меню **Параметри/Налаштування** PianoBooster._" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" +"**Skip To My Lou** слід починати, розташувавши обидва великі пальці на " +"**середньому до**, а потім використовувати відповідний палець для кожної " +"білої ноти піаніно. Отже, для перших двох нот, якими є **мі**, вам слід " +"скористатися **середнім пальцем** правої руки." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" +"У цьому творі використовують гру **обома руками**, оскільки мелодія " +"переходить через **середнє до**." + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" +"> **Підказка:** _Для нот у **скрипковому ключі** слід завжди використовувати " +"**праву руку**, а для нот у **басовому ключі** — **ліву руку**. " +"Переконайтеся, що ви завжди використовуєте відповідний палець для кожної " +"ноти._" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" +"**Брат Жак** навчає грі обома руками і містить дуже просту партію для лівої " +"руки. Спочатку повправляйтеся грі **лівою рукою** і **правою рукою** окремо. " +"Далі, коли будете готові, зменшіть **швидкість до 70%** і спробуйте грати " +"**обома руками** разом. Знову ж таки, розпочніть із **обома великим " +"пальцями** на **середній до**." + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts separately._" +msgstr "" +"> **Підказка:** _Спочатку повправляйтеся грі **лівою рукою** і **правою " +"рукою** окремо._" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "**Scarborough Fair** spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "**Ярмарка у Скарборо** використовує вісім нот, тому вам доведеться пересувати пальці клавіатурою. Скористайтеся найзручнішим для вас способом пересування пальців, але намагайтеся **використовувати усі пальці** (вашої правої руки).\n" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" +"> **Підказка:** _Просто натискайте клавіші тими пальцями, якими вам **зручно " +"це робити**._" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" +msgstr "**У Зелених рукавах** використано клавішу **соль-мажор**, яка є клавішею **одинарного дієза — фа-дієз**. Зазвичай, символ дієза не пишуть, якщо грають **фа-дієз** (але якщо увімкнути **Врахування альтерації** у меню налаштувань Piano Booster, програма показуватиме альтерацію на клавіатурі). Мелодію грає права рука — партія лівої руки є дуже простою.\n" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" +"> **Підказка:** _Ви можете увімкнути **Врахування альтерації** у меню " +"налаштувань Piano Booster. Втім, не забудьте **вимкнути альтерацію**, коли " +"набудете певного досвіду._" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "**Amazing Grace** introduces the key of **F major** which has a **single Flat - Bb**. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "**Чудова ласка** навчає вас грі клавішею **фа-мажор**, яка є клавішею **одинарного бемоля — сі-бемоль**. Знову ж таки, символ бемоль, зазвичай, не буде показано у нотному записі, коли ви граєте сі-бемоль. Спочатку попрактикуйтеся грі руками окремо, а потім зменшіть швидкість до 70% і спробуйте грати обома руками.\n" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" +"> **Підказка:** _Зменшіть швидкість до 70%, коли вперше намагатиметеся грати " +"обома руками._" diff --git a/music/src/translations/BoosterMusic_zh.pot b/music/src/translations/BoosterMusic_zh.pot new file mode 100644 index 00000000..b5036f28 --- /dev/null +++ b/music/src/translations/BoosterMusic_zh.pot @@ -0,0 +1,261 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "" +"**Start With Middle C** is an extremely easy piece. Just find **middle C** " +"on the piano and then play that note four times using your **thumb** on your " +"**right hand**. The first half of the piece has **middle C** in the **Treble " +"Clef**, then for the second half of the piece the same **middle C** note is " +"shown the **Bass Clef**. Play this using your **thumb** on your **left " +"hand**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "" +"**Up And Down** uses all the fingers of your right hand to play the first " +"five notes of the **scale of C major**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "" +"**Down And Up** is mirror version of the Up And Down piece we played earlier " +"but this version uses your **left hand**. These are the top five notes of " +"the scale of C major. Again try to use all your fingers.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "" +"**Lavender's Blue** is a simple tune in the right hand only that uses the " +"first six notes of the scale of C Major. For the lowest five notes **C D E " +"F** and **G** use all the fingers or your right hand - one for each " +"note. (With your **thumb** on **C** and your **little finger** on " +"**G**). Then for **A** just stretch your **little finger** to reach that " +"note.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts " +"separately._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "" +"**Scarborough Fair** spans a range of eight notes and so you will have to " +"move fingers up the piano. Use the fingering that you feel comfortable with " +"but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "" +"**Greensleeves** introduces the key of **G major** which has **one Sharp - " +"F#**. Normally the sharp symbol is not shown when **F#** is played (but " +"turning on **Courtesy Accidentals** from the Piano Booster setup/preferences " +"menu will show all accidentals in the key signature). The melody is in the " +"right hand with a simple left hand part.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "" +"**Amazing Grace** introduces the key of **F major** which has a **single " +"Flat - Bb**. Again the flat symbol is not normally shown on the score when " +"playing Bb. Practice both hands separately at first and then when ready " +"reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e74e4aa9..5387a5a4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -323,3 +323,5 @@ if(DEBUG_LOG_TIMING) ADD_DEFINITIONS(-DPB_LOG_TIMING) endif() +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../music/BoosterMusicBooks.zip ${CMAKE_CURRENT_BINARY_DIR}/ COPYONLY) + diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index 6bfbbf30..80b213c4 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -724,10 +724,11 @@ void QtWindow::loadTutorHtml(const QString & name) QTextStream out(&file); out.setCodec("UTF-8"); - QString htmlheader = ""; - - QString text = htmlheader + out.readAll(); - m_tutorWindow->setHtml(text.toUtf8().data()); + QString htmlStart = ""; + QString htmlBody = out.readAll(); + QString htmlEnd = ""; + QString htmlText = htmlStart + htmlBody + htmlEnd; + m_tutorWindow->setHtml(htmlText.toUtf8().data()); // TODO get this working again on small screens //_tutorWindow->setFixedHeight(130); diff --git a/src/Settings.cpp b/src/Settings.cpp index fdc08b95..da718367 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -274,34 +274,32 @@ void CSettings::updateTutorPage() QFileInfo fileInfo(getCurrentSongLongFileName()); const char* EXTN = ".html"; - QString fileBase = fileInfo.absolutePath() + "/InfoPages/" + fileInfo.completeBaseName() + "_"; - QString locale = selectedLangauge(); if (m_tutorPagesEnabled) { + QString locale = selectedLangauge(); + + QString tutorFilePath = fileInfo.absolutePath() + "/InfoPages/" + locale + "/"; QFileInfo tutorFile; - tutorFile.setFile(fileBase + locale + EXTN); + tutorFile.setFile(tutorFilePath + fileInfo.completeBaseName() + EXTN); if (tutorFile.exists()) { m_mainWindow->loadTutorHtml(tutorFile.absoluteFilePath()); return; } - int n = locale.indexOf("_"); - if (n > 0) + tutorFilePath = fileInfo.absolutePath() + "/InfoPages/en/"; + tutorFile.setFile(tutorFilePath + fileInfo.completeBaseName() + EXTN); + + if (tutorFile.exists()) { - locale = locale.left(n); - tutorFile.setFile(fileBase + locale + EXTN); - if (tutorFile.exists()) - { - m_mainWindow->loadTutorHtml(tutorFile.absoluteFilePath()); - return; - } + m_mainWindow->loadTutorHtml(tutorFile.absoluteFilePath()); + return; } - locale = "en"; - tutorFile.setFile(fileBase + locale + EXTN); + // The previous location of the tutor pages English only + tutorFile.setFile(fileInfo.absolutePath() + "/InfoPages/" + fileInfo.completeBaseName() + "_en" + EXTN); if (tutorFile.exists()) { m_mainWindow->loadTutorHtml(tutorFile.absoluteFilePath()); @@ -416,18 +414,14 @@ void CSettings::unzipBoosterMusicBooks() if (value("PianoBooster/MusicRelease", 0).toInt() < MUSIC_RELEASE) { - QString resourceDir = QApplication::applicationDirPath() + "/../music/"; - - ppLogTrace("unzipBoosterMusicBooks resourceDir1 %s", qPrintable(resourceDir)); + QString musicSrcDir = QApplication::applicationDirPath() + "/"; - if (!QFile::exists(resourceDir + ZIPFILENAME)) - resourceDir = QApplication::applicationDirPath() + "/../../music/"; - ppLogTrace("unzipBoosterMusicBooks resourceDir2 %s", qPrintable(resourceDir)); + ppLogTrace("unzipBoosterMusicBooks resourceDir1 %s", qPrintable(musicSrcDir)); - if (!QFile::exists(resourceDir + ZIPFILENAME)) + if (!QFile::exists(musicSrcDir + ZIPFILENAME)) { #if defined (Q_OS_LINUX) || defined (Q_OS_UNIX) - resourceDir=Util::dataDir()+"/music/"; + musicSrcDir=Util::dataDir()+"/music/"; #endif #ifdef Q_OS_DARWIN resourceDir = QApplication::applicationDirPath() + "/../Resources/music/"; @@ -435,9 +429,9 @@ void CSettings::unzipBoosterMusicBooks() } ppLogInfo(qPrintable("applicationDirPath=" + QApplication::applicationDirPath())); - ppLogTrace("resourceDir %s", qPrintable(resourceDir)); + ppLogTrace("resourceDir %s", qPrintable(musicSrcDir)); - QFileInfo zipFile(resourceDir + ZIPFILENAME); + QFileInfo zipFile(musicSrcDir + ZIPFILENAME); QDir destMusicDir; diff --git a/src/Settings.h b/src/Settings.h index ff64a9bc..851afc5c 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -152,6 +152,10 @@ class CSettings : public QSettings QString locale = value("General/lang","").toString(); if (locale.isEmpty()) { locale = QLocale::system().bcp47Name(); + int n = locale.indexOf("_"); + if ((n > 0)) { + locale = locale.left(n); + } } return locale; } diff --git a/src/version.txt b/src/version.txt index d324ff89..41738a07 100644 --- a/src/version.txt +++ b/src/version.txt @@ -1,2 +1,2 @@ #define PB_VERSION "0.7.4-RC1" -#define MUSIC_RELEASE 3 +#define MUSIC_RELEASE 4 diff --git a/tools/conv_html_to_ts.pl b/tools/conv_html_to_ts.pl deleted file mode 100755 index 5bd81adb..00000000 --- a/tools/conv_html_to_ts.pl +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/perl - -# This script generates music_blank.ts -# License: same with Pianobooster -# Author: DanSoft - -use strict; - -if (!defined($ARGV[0])){ - print("use $0 \n"); - exit; -} - -my $folderBooks=$ARGV[0]; - - -open (FILE, "> music_blank.ts"); -print FILE " - - - - QtWindow -"; - - -opendir DIR_FOLDER, $folderBooks or die $!; -while(my $folder = readdir DIR_FOLDER) { - next if (-f $folder or $folder eq ".." or $folder eq "."); - - my $folderHtml = $folderBooks."/".$folder."/InfoPages/"; - - opendir DIR, $folderHtml or die $!; - while(my $fname = readdir DIR) { - next unless ($fname=~/(en\.html)$/); - print $fname."\n"; - my $text = readFile($folderHtml."/".$fname); - print FILE " \n"; - print FILE " $text\n"; - print FILE " \n"; - print FILE " \n"; - } - closedir DIR; -} -closedir DIR_FOLDER; - - -print FILE "\n"; -print FILE "\n"; -close FILE; - - - -sub readFile { - my $filename = shift; - - my $text=""; - - open (FILE2,"< $filename"); - $text.=$_ while(); - close FILE2; - - $text=~s//>/gm; - $text=~s/’/'/gm; - $text=~s/…/. . ./gm; - - return $text; -} diff --git a/tools/make_music.sh b/tools/make_music.sh deleted file mode 100755 index 7215332f..00000000 --- a/tools/make_music.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh - -# This script creates BoosterMusicBooks.zip and generates music_blank.ts -# License: same with Pianobooster -# Author: Alexey Loginov - -if [ ! -f "/usr/bin/markdown" ] -then - echo "Program '/usr/bin/markdown' was not found. Please install 'discount' package." - exit 0 -fi - -if [ ! -f "/usr/bin/zip" ] -then - echo "Program '/usr/bin/zip' was not found. Please install 'zip' package." - exit 0 -fi - -pushd ../ - -echo "Determining MUSIC_RELEASE..." -version=`cat src/version.txt|grep 'MUSIC_RELEASE'|cut -d " " --fields=3` -echo "Done for determining MUSIC_RELEASE" -echo "MUSIC_RELEASE=$version" - -echo "Preparing temporary directory..." -rm -rf music/BoosterMusicBooks$version -echo "Done for preparing temporary directory" - -echo "Creating subdirectories in temporary directory..." -mkdir -p music/BoosterMusicBooks$version/BeginnerCourse/InfoPages -mkdir -p music/BoosterMusicBooks$version/BoosterMusic/InfoPages -echo "Done for creating subdirectories in temporary directory" - -echo "Copying MIDI files..." -cp -f doc/courses/BeginnerCourse/*.mid music/BoosterMusicBooks$version/BeginnerCourse/ -cp -f doc/courses/BoosterMusic/*.mid music/BoosterMusicBooks$version/BoosterMusic/ -echo "Done for copying MIDI files" - -echo "Generating HTML files from MD files..." -for file in `find ./music/src -name ??-*.md` -do - file_html=`echo $file|sed "s|_en.md|_en.html|g"|sed "s|./music/src|music/BoosterMusicBooks$version|g"|sed "s|/0|/InfoPages/0|g"` - markdown $file > $file_html - awk 'NR>1{printf "\n"} {printf $0}' $file_html > "$file_html"_tmp - mv -f "$file_html"_tmp $file_html - sed -i 's|

Hint:|

Hint:|g' $file_html - printf "" >> $file_html - printf "" >> $file_html - sed -i '1s/^//' $file_html - sed -i "s|’|'|g" $file_html - sed -i "s|…|. . .|g" $file_html -done -echo "Done for generating HTML files from MD files" - -echo "Renaming directories..." -mv -f "music/BoosterMusicBooks$version/BeginnerCourse" "music/BoosterMusicBooks$version/Beginner Course" -mv -f "music/BoosterMusicBooks$version/BoosterMusic" "music/BoosterMusicBooks$version/Booster Music" -echo "Done for renaming directories" - -echo "Creating ZIP file..." -pushd music -rm -f BoosterMusicBooks.zip -zip -r BoosterMusicBooks.zip BoosterMusicBooks$version -popd -echo "Done for creating ZIP file" - -popd - -echo "Generating music_blank.ts by conv_html_to_ts.pl..." -./conv_html_to_ts.pl ../music/BoosterMusicBooks$version -mv music_blank.ts ../translations/ -echo "Done for generating music_blank.ts by conv_html_to_ts.pl" - -echo "Deleting temporary directory..." -rm -rf ../music/BoosterMusicBooks$version -echo "Done for deleting temporary directory" From 65e5598ebf3e90b9b87b2bef59e2eff3a991cb95 Mon Sep 17 00:00:00 2001 From: pianobooster Date: Sun, 4 Oct 2020 23:43:42 +0200 Subject: [PATCH 62/84] Added translation using Weblate (Chinese (Simplified)) --- .../src/translations/BoosterMusic_zh_Hans.po | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 music/src/translations/BoosterMusic_zh_Hans.po diff --git a/music/src/translations/BoosterMusic_zh_Hans.po b/music/src/translations/BoosterMusic_zh_Hans.po new file mode 100644 index 00000000..854f53e0 --- /dev/null +++ b/music/src/translations/BoosterMusic_zh_Hans.po @@ -0,0 +1,260 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2020-09-28 20:58+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:2 +#, no-wrap +msgid "" +"**Start With Middle C** is an extremely easy piece. Just find **middle C** " +"on the piano and then play that note four times using your **thumb** on your " +"**right hand**. The first half of the piece has **middle C** in the **Treble " +"Clef**, then for the second half of the piece the same **middle C** note is " +"shown the **Bass Clef**. Play this using your **thumb** on your **left " +"hand**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/01-StartWithMiddleC.md:3 +msgid "" +"> **Hint:** _Try to remember where **Middle C** is on the piano - this is " +"the most **important note**!_" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:2 +msgid "" +"The **Chord of C Major** piece, introduces you to the chord of **C Major** " +"which has three notes **Middle C**, **E** and **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:4 +msgid "" +"Use your **thumb** for **C**, your **middle finger** for **E** and your " +"**little finger** for **G**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/02-ChordOfCMajor.md:5 BeginnerCourse/05-ChordOfFMajor.md:5 +msgid "" +"> **Hint:** _If you don't know the names of the notes on the score then turn " +"on **Show Note Names** from the PianoBooster **Setup/Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:2 +#, no-wrap +msgid "" +"**Up And Down** uses all the fingers of your right hand to play the first " +"five notes of the **scale of C major**.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **D**, . . . , all " +"the way up to your **little finger** for **G**. Make sure you keep using the " +"correct finger for each note." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/03-UpAndDown.md:5 +msgid "" +"> **Hint:** _If you don't know the notes on the piano then **label the piano " +"keys** using the PianoBooster **Note Chart**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses just three " +"notes **C D** and **E** from your right hand. First find **middle C** and " +"always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/04-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _Remember the fingering: Use your **thumb** for **middle C**, " +"your **first finger** for **D** and **middle finger** for **E**._" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:2 +msgid "" +"Now we are going to play using your **left hand** the **F major chord**. The " +"three notes of a chord are called a triad and this chord has the same shape " +"as the C major chord we played earlier but played on a different part of the " +"piano." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/05-ChordOfFMajor.md:4 +msgid "" +"Use your **little finger** on the left hand for **F**, your **middle " +"finger** for **A** and your **thumb** for **C**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:2 +#, no-wrap +msgid "" +"**Down And Up** is mirror version of the Up And Down piece we played earlier " +"but this version uses your **left hand**. These are the top five notes of " +"the scale of C major. Again try to use all your fingers.\n" +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:4 +msgid "" +"Use your **thumb** for **C**, your **index finger** for **B**, . . . , all " +"the way down to your **little finger** for **F**." +msgstr "" + +#. type: Plain text +#: BeginnerCourse/06-DownAndUp.md:5 +msgid "" +"> **Hint:** _Make sure you use **every finger** on your **left hand** when " +"playing this piece._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:2 +msgid "" +"This is a simplified version of **Clair De La Lune** that uses only the " +"three notes **C D** and **E** from your right hand. First find **middle C** " +"and always use your **thumb** for this note, then for **D** use your **first " +"finger** and for **E** use **middle finger**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/01-ClairDeLaLune.md:3 +msgid "" +"> **Hint:** _If you are a complete beginner try the pieces from the " +"**Beginner Course** first._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:2 +#, no-wrap +msgid "" +"**Lavender's Blue** is a simple tune in the right hand only that uses the " +"first six notes of the scale of C Major. For the lowest five notes **C D E " +"F** and **G** use all the fingers or your right hand - one for each " +"note. (With your **thumb** on **C** and your **little finger** on " +"**G**). Then for **A** just stretch your **little finger** to reach that " +"note.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/02-LavendersBlue.md:3 +msgid "" +"> **Hint:** _To help find the notes ensure **Show Note Names** are turned on " +"from **Setup Preferences** menu._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:2 +msgid "" +"For **Skip To My Lou** start with both thumbs on **middle C** and then use " +"one finger for each white note on the piano. So for the first two notes " +"which are **E** you should use the **middle finger** of your right hand." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:4 +msgid "" +"This piece introduces the use of **both hands** as the melody goes across " +"**middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/03-SkipToMyLou.md:5 +msgid "" +"> **Hint:** _For the notes in the **treble clef** you always use your " +"**right hand** and for the **base clef** your **left hand**. Make sure you " +"always keep using the correct finger for each note._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:2 +msgid "" +"For **Frere Jacques** introduces the use of playing both hands together with " +"a very simple left hand part. First practice the **left hand** and **right " +"hand** parts separately. Then when ready reduce the **speed to 70%** and try " +"**both hands** together. Again start with **both thumbs** on **Middle C**." +msgstr "" + +#. type: Plain text +#: BoosterMusic/04-FrereJacques.md:3 +msgid "" +"> **Hint:** _Practice the **left hand** and **right hand** parts " +"separately._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:2 +#, no-wrap +msgid "" +"**Scarborough Fair** spans a range of eight notes and so you will have to " +"move fingers up the piano. Use the fingering that you feel comfortable with " +"but ensure that you **use all your fingers** (of your right hand).\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/05-ScarboroughFair.md:3 +msgid "" +"> **Hint:** _Don't think about what fingers to use, just use the fingering " +"that **comes naturally to you**._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:2 +#, no-wrap +msgid "" +"**Greensleeves** introduces the key of **G major** which has **one Sharp - " +"F#**. Normally the sharp symbol is not shown when **F#** is played (but " +"turning on **Courtesy Accidentals** from the Piano Booster setup/preferences " +"menu will show all accidentals in the key signature). The melody is in the " +"right hand with a simple left hand part.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/06-Greensleeves.md:3 +msgid "" +"> **Hint:** _You can show **Courtesy Accidentals** from the PianoBooster " +"setup/preferences menu. But remember to **turn them off** when you get more " +"skilled._" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:2 +#, no-wrap +msgid "" +"**Amazing Grace** introduces the key of **F major** which has a **single " +"Flat - Bb**. Again the flat symbol is not normally shown on the score when " +"playing Bb. Practice both hands separately at first and then when ready " +"reduce the speed to 70% when trying both hands for the first time.\n" +msgstr "" + +#. type: Plain text +#: BoosterMusic/07-AmazingGrace.md:3 +msgid "" +"> **Hint:** _Reduce the speed to 70% when trying both hands for the first " +"time._" +msgstr "" From cf012eab9391b903d09eb5907659edc85cb8c72f Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Mon, 5 Oct 2020 12:35:09 +0000 Subject: [PATCH 63/84] Translated using Weblate (French) Currently translated at 100.0% (30 of 30 strings) Translation: PianoBooster/BoosterMusic Translate-URL: https://hosted.weblate.org/projects/pianobooster/boostermusic/fr/ --- music/src/translations/BoosterMusic_fr.po | 54 ++++++++++++++--------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/music/src/translations/BoosterMusic_fr.po b/music/src/translations/BoosterMusic_fr.po index 24e861a5..727fb520 100644 --- a/music/src/translations/BoosterMusic_fr.po +++ b/music/src/translations/BoosterMusic_fr.po @@ -7,14 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2020-09-28 20:58+0100\n" -"PO-Revision-Date: 2020-10-04 16:19+0100\n" -"Last-Translator: \n" -"Language-Team: \n" +"PO-Revision-Date: 2020-10-06 13:26+0000\n" +"Last-Translator: Olivier Humbert \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.3-dev\n" #. type: Plain text #: BeginnerCourse/01-StartWithMiddleC.md:2 @@ -130,7 +132,7 @@ msgid "" "finger** for **A** and your **thumb** for **C**." msgstr "" "Utilisez votre **petit doigt** de la main gauche pour **le Fa**, votre " -"**majeur** pour le **La** et votre **pouce** puor le **Do**." +"**majeur** pour le **La** et votre **pouce** pour le **Do**." #. type: Plain text #: BeginnerCourse/06-DownAndUp.md:2 @@ -164,10 +166,10 @@ msgid "" "and always use your **thumb** for this note, then for **D** use your **first " "finger** and for **E** use **middle finger**." msgstr "" -"Ceci est une version simplifée dez **Clair De La Lune** qui utilise " -"seulement les trois notes **C D** et **E** depuis votre main droite. Tout " -"d'abord trouver ** C milieu** et utilisez toujours votre**pouce** pour cette " -"note, puis pour **D** utilisez votre **premier doigt** et pour **E** " +"Ceci est une version simplifiée dez **Clair De La Lune** qui utilise " +"seulement les trois notes **Do, Ré** et **Mi** depuis votre main droite. " +"Tout d'abord trouver **Do milieu** et utilisez toujours votre**pouce** pour " +"cette note, puis pour **Ré** utilisez votre **premier doigt** et pour **Mi** " "utilisez **votre doigt du milieu**." #. type: Plain text @@ -176,14 +178,20 @@ msgid "" "> **Hint:** _If you are a complete beginner try the pieces from the " "**Beginner Course** first._" msgstr "" -"> **Astuce :** _Si vous êtres un débutant complet commencez par essayer les " +"> **Astuce :** _si vous êtres un débutant complet commencez par essayer les " "morceaux du **cours débutant** d'abord._" #. type: Plain text #: BoosterMusic/02-LavendersBlue.md:2 #, no-wrap msgid "**Lavender's Blue** is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes **C D E F** and **G** use all the fingers or your right hand - one for each note. (With your **thumb** on **C** and your **little finger** on **G**). Then for **A** just stretch your **little finger** to reach that note.\n" -msgstr "**Lavande Bleue** est une musique simple, à jouer à la main droite, qui utilise seulement les premières notes de la gamme C majeur. Pour les cinq notes les plus basses **C D E F** et **G** utilisez tous les doigts de votre main droite - un pour chaque note (avec votre **pouce** sur **C** et votre **petit doigt** sur **G**). Puis pour **A** il suffit d'étendre votre **petit doigt** afin d'atteindre cette note.\n" +msgstr "" +"**Lavande Bleue** est une musique simple, à jouer à la main droite, qui " +"utilise seulement les premières notes de la gamme Do majeur. Pour les cinq " +"notes les plus basses **Do, Ré, Mi** et **Fa** utilisez tous les doigts de " +"votre main droite - un pour chaque note (avec votre **pouce** sur **Do** et " +"votre **petit doigt** sur **Fa**). Puis pour **La** il suffit d'étendre " +"votre **petit doigt** afin d'atteindre cette note.\n" #. type: Plain text #: BoosterMusic/02-LavendersBlue.md:3 @@ -202,10 +210,10 @@ msgid "" "one finger for each white note on the piano. So for the first two notes " "which are **E** you should use the **middle finger** of your right hand." msgstr "" -"Pour **Skip To My Lou** commencez avec les deux pouces sur **C du milieu** " +"Pour **Skip To My Lou** commencez avec les deux pouces sur **Do du milieu** " "puis utilisez un doigt pour chaque note sur le piano. Ainsi les deux " -"premières notes étant **E** you should use the **doigts majeurs** de votre " -"main droite." +"premières notes étant **Mi** vous devriez utiliser le **doigt majeur** de " +"votre main droite." #. type: Plain text #: BoosterMusic/03-SkipToMyLou.md:4 @@ -214,7 +222,7 @@ msgid "" "**middle C**." msgstr "" "Cette pièce introduit l'usage des **deux mains** parce que la mélodie se " -"joue à travers la **gamme C**." +"joue à travers le **Do milieu**." #. type: Plain text #: BoosterMusic/03-SkipToMyLou.md:5 @@ -237,9 +245,9 @@ msgid "" msgstr "" "Pour **Frère Jacques** commencez à jouer à deux mains simultanées avec une " "partie très facile à la main droite. D'abord entraînez-vous **main gauche** " -"et **main droite**séparément. Puis lorsque vous serez prêt réduisez la " -"**vitesse à 70%** et essayez **à deux mains** simultanées. Ensuite démarrez " -"avec les **deux pouces** sur les **C du milieu**." +"et **main droite**séparément. Puis lorsque vous serez prêt réduisez la **" +"vitesse à 70%** et essayez **à deux mains** simultanées. Ensuite démarrez " +"avec les **deux pouces** sur les **Do du milieu**." #. type: Plain text #: BoosterMusic/04-FrereJacques.md:3 @@ -261,14 +269,20 @@ msgid "" "> **Hint:** _Don't think about what fingers to use, just use the fingering " "that **comes naturally to you**._" msgstr "" -"> **Hint:** _Ne pensez pas aux doigts à utiliser, utilisez simplement le " +"> **Astuce :** _Ne pensez pas aux doigts à utiliser, utilisez simplement le " "doigté qui ** vous vient naturellement**._" #. type: Plain text #: BoosterMusic/06-Greensleeves.md:2 #, no-wrap msgid "**Greensleeves** introduces the key of **G major** which has **one Sharp - F#**. Normally the sharp symbol is not shown when **F#** is played (but turning on **Courtesy Accidentals** from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.\n" -msgstr "**Greensleeves** introduit la tonalité de **sol majeur** qui possède **un dièse - fa#**. Normalement, le symbole de dièse n'est pas affiché lorsque **fa#** est joué (mais en activant **altérations de précaution** dans le menu Piano Booster Paramétrages/Préférences vous pourrez voir tous les accidents dans la tonalité). La mélodie est à la main droite avec une partie simple à la main gauche.\n" +msgstr "" +"**Greensleeves** introduit la tonalité de **Sol majeur** qui possède **un " +"dièse - Fa#**. Normalement, le symbole de dièse n'est pas affiché lorsque " +"**Fa#** est joué (mais en activant **altérations de précaution** dans le " +"menu Piano Booster Paramétrages/Préférences vous pourrez voir tous les " +"accidents dans la tonalité). La mélodie est à la main droite avec une partie " +"simple à la main gauche.\n" #. type: Plain text #: BoosterMusic/06-Greensleeves.md:3 From 030533f595ac7365a7c4f56ef47c864f6805ec8e Mon Sep 17 00:00:00 2001 From: louis-barman Date: Tue, 6 Oct 2020 22:25:01 +0100 Subject: [PATCH 64/84] Added Norwegian and Chinese languages to the BoosterMusic. --- .../{BoosterMusic_zh.pot => BoosterMusic_nb.po} | 0 .../{BoosterMusic_zh_Hans.po => BoosterMusic_zh.po} | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) rename music/src/translations/{BoosterMusic_zh.pot => BoosterMusic_nb.po} (100%) rename music/src/translations/{BoosterMusic_zh_Hans.po => BoosterMusic_zh.po} (98%) diff --git a/music/src/translations/BoosterMusic_zh.pot b/music/src/translations/BoosterMusic_nb.po similarity index 100% rename from music/src/translations/BoosterMusic_zh.pot rename to music/src/translations/BoosterMusic_nb.po diff --git a/music/src/translations/BoosterMusic_zh_Hans.po b/music/src/translations/BoosterMusic_zh.po similarity index 98% rename from music/src/translations/BoosterMusic_zh_Hans.po rename to music/src/translations/BoosterMusic_zh.po index 854f53e0..b5036f28 100644 --- a/music/src/translations/BoosterMusic_zh_Hans.po +++ b/music/src/translations/BoosterMusic_zh.po @@ -3,16 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2020-09-28 20:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: zh_Hans\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: Plain text From 1d97a27770cd4ce810e7f4248379b2f36f1c79aa Mon Sep 17 00:00:00 2001 From: Sylphystia Date: Sun, 25 Oct 2020 18:54:20 +0000 Subject: [PATCH 65/84] Translated using Weblate (Italian) Currently translated at 54.2% (204 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/it/ --- translations/pianobooster_it.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pianobooster_it.ts b/translations/pianobooster_it.ts index 47cc3f76..a0d9dd4f 100644 --- a/translations/pianobooster_it.ts +++ b/translations/pianobooster_it.ts @@ -6,7 +6,7 @@ None - Nessuno + Nessuno From 7bf661a852e480b61e7b33a9cc2ba3088d6d5e3e Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 14 Nov 2020 22:45:17 +0000 Subject: [PATCH 66/84] Renamed version.h and some changes required for GitHub Actions Thanks to @winder for GitHub Action changes --- .gitignore | 5 +++++ src/CMakeLists.txt | 24 +++++++++++------------- src/Draw.h | 4 ++++ src/GuiMidiSetupDialog.cpp | 2 ++ src/GuiPreferencesDialog.cpp | 2 +- src/QtMain.cpp | 6 +++++- src/QtWindow.cpp | 2 +- src/Settings.cpp | 6 +++--- src/TrackList.h | 1 - src/{version.txt => version.h} | 0 10 files changed, 32 insertions(+), 20 deletions(-) rename src/{version.txt => version.h} (100%) diff --git a/.gitignore b/.gitignore index 7605cb23..742d8810 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,8 @@ /debug*/ /release*/ CMakeLists.txt.user* +CMakeCache.txt +CMakeFiles/ +Makefile +cmake_install.cmake +install_manifest.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5387a5a4..021117e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,6 @@ # Cmake File for Piano Booster -if(WIN32) - option(USE_FTGL "build with ftgl" OFF) -else() - option(USE_FTGL "build with ftgl" ON) -endif() +option(USE_FTGL "build with ftgl" ON) option(WITH_INTERNAL_FLUIDSYNTH "build with an internal FluidSynth sound generator" ON) option(USE_JACK "build with Jack (Only required for BSD Unix)" OFF) option(USE_SYSTEM_FONT "build with system font" OFF) @@ -107,7 +103,8 @@ if(WITH_INTERNAL_FLUIDSYNTH) if(NOT FLUIDSYNTH_FOUND) MESSAGE(FATAL_ERROR "FLUIDSYNTH was not found") endif(NOT FLUIDSYNTH_FOUND) - LINK_LIBRARIES(fluidsynth) + INCLUDE_DIRECTORIES(${FLUIDSYNTH_INCLUDE_DIRS}) + SET(FLUIDSYNTH_LIBRARY ${FLUIDSYNTH_LIBRARIES}) else() FIND_PACKAGE( fluidsynth REQUIRED ) endif() @@ -152,7 +149,6 @@ else() MESSAGE(FATAL_ERROR "rtmidi not found (Try building with option USE_BUNDLED_RTMIDI=ON)") endif(NOT RTMIDI_FOUND) include_directories(${RTMIDI_INCLUDE_DIRS}) - link_directories(${RTMIDI_LIBRARY_DIRS}) endif() # with SET() command you can change variables or define new ones @@ -248,11 +244,11 @@ if(APPLE) endif(APPLE) -if(UNIX) +if(UNIX AND NOT APPLE) ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} ${PIANOBOOSTER_MOC_SRCS} ${PIANOBOOSTER_RC_SRCS} ${PIANOBOOSTER_UI_HDRS} ${PIANOBOOSTER_RCS} ) -endif(UNIX) +endif(UNIX AND NOT APPLE) if(WIN32) ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} @@ -266,12 +262,14 @@ qt5_use_modules(pianobooster Core Gui Widgets LinguistTools OpenGL Xml) if(${CMAKE_VERSION} VERSION_LESS "3.13.0") message("Please consider to switch to CMake 3.13.0") else() - target_link_directories(pianobooster PUBLIC ${FTGL_LIBRARY_DIRS} ${JACK_LIBRARY_DIRS}) + target_link_directories(pianobooster PUBLIC ${FTGL_LIBRARY_DIRS} ${JACK_LIBRARY_DIRS} ${FLUIDSYNTH_LIBRARY_DIRS}) endif() -target_link_libraries (pianobooster Qt5::Widgets Qt5::Xml Qt5::OpenGL ${OPENGL_LIBRARIES} ${FTGL_LIBRARY} ${RTMIDI_LIBRARIES} ${JACK_LIBRARY}) +target_link_libraries (pianobooster Qt5::Widgets Qt5::Xml Qt5::OpenGL ${OPENGL_LIBRARIES} ${FTGL_LIBRARY} ${RTMIDI_LIBRARIES} ${JACK_LIBRARY} ${FLUIDSYNTH_LIBRARY} ${RTMIDI_LIBRARY}) -INSTALL( FILES ../pianobooster.desktop DESTINATION share/applications ) -INSTALL(TARGETS pianobooster RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +if(NOT APPLE) + INSTALL( FILES ../pianobooster.desktop DESTINATION share/applications ) + INSTALL(TARGETS pianobooster RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif(NOT APPLE) if(NOT NO_DOCS) INSTALL( FILES ../README.md DESTINATION share/doc/pianobooster/ ) diff --git a/src/Draw.h b/src/Draw.h index fd327802..73eec49b 100644 --- a/src/Draw.h +++ b/src/Draw.h @@ -28,6 +28,10 @@ #ifndef __DRAW_H__ #define __DRAW_H__ +#ifdef _WIN32 + #include +#endif + #ifdef __APPLE__ #include #include diff --git a/src/GuiMidiSetupDialog.cpp b/src/GuiMidiSetupDialog.cpp index f617c458..fd783f3e 100644 --- a/src/GuiMidiSetupDialog.cpp +++ b/src/GuiMidiSetupDialog.cpp @@ -61,7 +61,9 @@ void GuiMidiSetupDialog::init(CSong* song, CSettings* settings) refreshMidiInputCombo(); refreshMidiOutputCombo(); +#if WITH_INTERNAL_FLUIDSYNTH masterGainSpin->setValue(FLUID_DEFAULT_GAIN); +#endif reverbCheck->setChecked(false); chorusCheck->setChecked(false); diff --git a/src/GuiPreferencesDialog.cpp b/src/GuiPreferencesDialog.cpp index 4d12a714..a70d97b5 100644 --- a/src/GuiPreferencesDialog.cpp +++ b/src/GuiPreferencesDialog.cpp @@ -118,7 +118,7 @@ void GuiPreferencesDialog::initLanguageCombo(){ languageName[0]=languageName[0].toUpper(); - if (languageName.isEmpty() or languageName=="C"){ + if (languageName.isEmpty() || languageName=="C"){ languageName=lang_code; } diff --git a/src/QtMain.cpp b/src/QtMain.cpp index 20d445ba..9a3bfc29 100644 --- a/src/QtMain.cpp +++ b/src/QtMain.cpp @@ -19,6 +19,10 @@ ****************************************************************************/ +#ifdef _WIN32 + #include +#endif + #ifdef __APPLE__ #include #include @@ -30,7 +34,7 @@ #include #include #include "QtWindow.h" -#include "version.txt" +#include "version.h" int main(int argc, char *argv[]){ QCoreApplication::setOrganizationName("PianoBooster"); diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index 80b213c4..b9de6d56 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -26,7 +26,7 @@ #include "GlView.h" #include "QtWindow.h" -#include "version.txt" +#include "version.h" #ifdef __linux__ #ifndef USE_REALTIME_PRIORITY diff --git a/src/Settings.cpp b/src/Settings.cpp index da718367..4c4298b5 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -47,7 +47,7 @@ #include "GuiTopBar.h" #include "GuiSidePanel.h" #include "QtWindow.h" -#include "version.txt" +#include "version.h" #if WITH_INTERNAL_FLUIDSYNTH #include "MidiDeviceFluidSynth.h" @@ -421,10 +421,10 @@ void CSettings::unzipBoosterMusicBooks() if (!QFile::exists(musicSrcDir + ZIPFILENAME)) { #if defined (Q_OS_LINUX) || defined (Q_OS_UNIX) - musicSrcDir=Util::dataDir()+"/music/"; + musicSrcDir=Util::dataDir()+"/music/"; #endif #ifdef Q_OS_DARWIN - resourceDir = QApplication::applicationDirPath() + "/../Resources/music/"; + musicSrcDir = QApplication::applicationDirPath() + "/../Resources/music/"; #endif } diff --git a/src/TrackList.h b/src/TrackList.h index b712b7e1..abae7475 100644 --- a/src/TrackList.h +++ b/src/TrackList.h @@ -133,7 +133,6 @@ class AnalyseItem int m_firstPatch = -1; QVector> m_noteFrequencyByTrack; QVector m_noteCountByTrack; - int m_noteFrequencyByChannel[MAX_MIDI_NOTES]; }; class CTrackListItem diff --git a/src/version.txt b/src/version.h similarity index 100% rename from src/version.txt rename to src/version.h From 0ad569fc83502cfdc67f247721b8b1a582b1fd1e Mon Sep 17 00:00:00 2001 From: Pavel Fric Date: Sun, 15 Nov 2020 17:44:40 +0000 Subject: [PATCH 67/84] Translated using Weblate (Czech) Currently translated at 100.0% (376 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/cs/ --- translations/pianobooster_cs.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/pianobooster_cs.ts b/translations/pianobooster_cs.ts index 0caa3c91..a2286193 100644 --- a/translations/pianobooster_cs.ts +++ b/translations/pianobooster_cs.ts @@ -6,7 +6,7 @@ None - + Žádný @@ -991,7 +991,7 @@ The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - Oprava prodlevy pracuje pouštěním hudby před tím, <br>co hrajete, aby působila proti zpoždění v tvůrci zvuku.<br><br>Budete potřebovat piano <b>s reproduktory</b>, jež jsou <b>zesíleny</b>.<br><br>Zadejte čas v milisekundách pro zpoždění (1000 ms = 1 s)<br>(Pro Microsoft GS Wavetable SW Synth zkuste hodnotu 150)<br>Pokud si nejste jisti, zadejte jako hodnotu nulu. + Oprava prodlevy pracuje pouštěním hudby před tím, <br>co hrajete, aby působila proti zpoždění v tvůrci zvuku.<br><br>Budete potřebovat piano <b>s reproduktory</b>, jež jsou <b>zesíleny</b>.<br><br>Zadejte čas v milisekundách pro zpoždění (1000 ms = 1 s)<br>(Pro Microsoft GS Wavetable SW Synth zkuste hodnotu 150)<br>Pokud si nejste jisti, zadejte jako hodnotu nulu. @@ -1765,7 +1765,7 @@ <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - <p>Na to, abyste mohli slyšet zvuk budete potřebovat <b>Syntezátor zvuku MIDI</b>. Operační systém Windows obsahuje "Microsoft GS Wavetable software synthesizer". Bohužel tento software dosahuje nepřijatelně vysokého zpoždění (prodlevy, latence). Na Linuxu můžete použít + <p>Na to, abyste mohli slyšet zvuk budete potřebovat <b>Syntezátor zvuku MIDI</b>. Operační systém Windows obsahuje "Microsoft GS Wavetable software synthesizer". Bohužel tento software dosahuje nepřijatelně vysokého zpoždění (prodlevy, latence). Na Linuxu můžete použít From e2968b6b94ccfc54524e90779c164b6ba2913045 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Wed, 25 Nov 2020 20:51:38 +0000 Subject: [PATCH 68/84] Removed the unused music translations which have been copied to a new location. The music translations are now located in the music/src/translations/ dir. --- pianobooster.pro | 242 ---- src/CMakeLists.txt | 19 +- src/Draw.cpp | 3 - translations/CMakeLists.txt | 7 +- translations/music_blank.ts | 95 -- translations/music_cs.ts | 131 -- translations/music_de.ts | 95 -- translations/music_es.ts | 101 -- translations/music_fr.ts | 131 -- translations/music_pl.ts | 107 -- translations/music_ru.ts | 133 -- translations/music_uk.ts | 131 -- translations/pianobooster_pt_BR.ts | 1962 ---------------------------- 13 files changed, 7 insertions(+), 3150 deletions(-) delete mode 100644 pianobooster.pro delete mode 100644 translations/music_blank.ts delete mode 100644 translations/music_cs.ts delete mode 100644 translations/music_de.ts delete mode 100644 translations/music_es.ts delete mode 100644 translations/music_fr.ts delete mode 100644 translations/music_pl.ts delete mode 100644 translations/music_ru.ts delete mode 100644 translations/music_uk.ts delete mode 100644 translations/pianobooster_pt_BR.ts diff --git a/pianobooster.pro b/pianobooster.pro deleted file mode 100644 index 80574374..00000000 --- a/pianobooster.pro +++ /dev/null @@ -1,242 +0,0 @@ -CONFIG += release -#CONFIG += console - -CONFIG += link_pkgconfig - -# default -isEmpty(USE_FTGL): USE_FTGL="ON" -isEmpty(NO_DOCS): NO_DOCS="OFF" -isEmpty(NO_LICENSE): NO_LICENSE="OFF" -isEmpty(NO_CHANGELOG): NO_CHANGELOG="OFF" -isEmpty(WITH_MAN): WITH_MAN="OFF" -isEmpty(NO_LANGS): NO_LANGS="OFF" - -# install all languages always - -TRANSLATIONS = $$files(translations/*.ts) - -CONFIG(debug, debug|release): DEFINES += IS_DEBUG - -HEADERS = src/QtWindow.h \ - src/GlView.h \ - src/GuiTopBar.h \ - src/GuiSidePanel.h \ - src/GuiMidiSetupDialog.h \ - src/GuiKeyboardSetupDialog.h \ - src/GuiPreferencesDialog.h \ - src/GuiSongDetailsDialog.h \ - src/GuiLoopingPopup.h \ - src/Settings.h \ - src/Draw.h \ - src/TrackList.h - -FORMS = src/GuiTopBar.ui \ - src/GuiSidePanel.ui \ - src/GuiMidiSetupDialog.ui \ - src/GuiKeyboardSetupDialog.ui \ - src/GuiPreferencesDialog.ui \ - src/GuiSongDetailsDialog.ui \ - src/GuiLoopingPopup.ui - -RESOURCES = src/application.qrc - -SOURCES = src/QtMain.cpp \ - src/QtWindow.cpp \ - src/GuiTopBar.cpp \ - src/GuiSidePanel.cpp \ - src/GuiMidiSetupDialog.cpp \ - src/GuiKeyboardSetupDialog.cpp \ - src/GuiPreferencesDialog.cpp \ - src/GuiSongDetailsDialog.cpp \ - src/GuiLoopingPopup.cpp \ - src/GlView.cpp \ - src/MidiFile.cpp \ - src/MidiTrack.cpp \ - src/Song.cpp \ - src/Conductor.cpp \ - src/Util.cpp \ - src/Chord.cpp \ - src/Tempo.cpp \ - src/MidiDevice.cpp \ - src/MidiDeviceRt.cpp \ - src/StavePosition.cpp \ - src/Score.cpp \ - src/Cfg.cpp \ - src/Piano.cpp \ - src/Draw.cpp \ - src/Scroll.cpp \ - src/Notation.cpp \ - src/TrackList.cpp \ - src/Rating.cpp \ - src/Bar.cpp \ - src/Settings.cpp \ - src/Merge.cpp - -contains(USE_BUNDLED_RTMIDI, ON){ - message(building using bundled rtmidi) - DEFINES += USE_BUNDLED_RTMIDI - INCLUDEPATH += src/3rdparty - SOURCES += src/3rdparty/rtmidi/RtMidi.cpp -}else{ - message(building using system rtmidi) - PKGCONFIG += rtmidi -} - -contains(USE_FTGL, ON){ - message(building using ftgl) - PKGCONFIG += ftgl -}else{ - message(building without ftgl) - DEFINES += NO_USE_FTGL -} - -contains(NO_LANGS, ON){ - message(building without languages) - DEFINES += NO_LANGS -} - -isEmpty(DATA_DIR){ - DATA_DIR=share/games/pianobooster -} -message("DATA_DIR:" $$DATA_DIR) -DEFINES += DATA_DIR="\\\""$$DATA_DIR"\\\"" - -RC_FILE = src/pianobooster.rc - -OBJECTS_DIR = tmp - -win32 { - DEFINES += __WINDOWS_MM__ _WIN32 - LIBS += libwinmm -} - -unix { - DEFINES += __LINUX_ALSA__ - LIBS += -lpthread -lGL -lasound -} - - -contains (EXPERIMENTAL_USE_FLUIDSYNTH, ON) { - message("building using fluidsynth") - DEFINES += EXPERIMENTAL_USE_FLUIDSYNTH - - SOURCES += src/MidiDeviceFluidSynth.cpp - !isEmpty(FLUIDSYNTH_INPLACE_DIR) { - !exists( $${FLUIDSYNTH_INPLACE_DIR}/include/fluidsynth.h ) { - error( "No $${FLUIDSYNTH_INPLACE_DIR}/include/fluidsynth.h file found" ) - } - message(fluidsynth FLUIDSYNTH_INPLACE_DIR = $${FLUIDSYNTH_INPLACE_DIR}) - INCLUDEPATH += $${FLUIDSYNTH_INPLACE_DIR}/include/ - win32:LIBS += $${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.dll.a - unix:LIBS += $${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.a - }else{ - PKGCONFIG += fluidsynth - } -} - -QT += xml opengl widgets - -# enable the console window -#QT+=testlib - -isEmpty(QMAKE_LRELEASE) { - win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe - else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease - unix { - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt5 } - } else { - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease } - } -} - -!win32 { - system($${QMAKE_LRELEASE} $${_PRO_FILE_} 2> /dev/null) -} -win32 { - system($$[QT_INSTALL_BINS]\\lrelease.exe $${_PRO_FILE_}) -} - -isEmpty( PREFIX ) { PREFIX = /usr } -message("PREFIX:" $$PREFIX) -DEFINES += PREFIX="\\\""$$PREFIX"\\\"" - -unix { - target.path = $$PREFIX/bin - - contains(NO_DOCS, OFF){ - message(building with docs) - docs.path = $$PREFIX/share/doc/pianobooster - docs.files = README.md doc/faq.md - INSTALLS += docs - } - - contains(NO_LICENSE, OFF){ - message(building with license) - license.path = $$PREFIX/share/licenses/pianobooster - license.files = license.txt - INSTALLS += license - } - - contains(NO_CHANGELOG, OFF){ - message(building with changelog) - changelog.path = $$PREFIX/share/doc/pianobooster - changelog.files = Changelog.txt - INSTALLS += changelog - } - - contains(WITH_MAN, ON){ - message(building with man) - man.path = $$PREFIX/share/man/man6/ - man.files = pianobooster.6 - INSTALLS += man - } - - !contains(USE_SYSTEM_FONT, ON){ - message(building using system font) - font.path = $$PREFIX/$$DATA_DIR/fonts - font.files = src/fonts/DejaVuSans.ttf - INSTALLS += font - } - - !isEmpty(USE_FONT){ - message(building with specified font) - myfont.path = $$PREFIX/$$DATA_DIR/fonts - myfont.files = $$USE_FONT - INSTALLS += myfont - DEFINES += USE_FONT=$$USE_FONT - } - - contains(NO_LANGS, OFF){ - updateqm.input = TRANSLATIONS - updateqm.output = translations/${QMAKE_FILE_BASE}.qm - updateqm.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm translations/${QMAKE_FILE_BASE}.qm - updateqm.CONFIG += no_link target_predeps - QMAKE_EXTRA_COMPILERS += updateqm - - data_langs.path = $$PREFIX/$$DATA_DIR/translations - data_langs.files = translations/*.qm translations/langs.json - INSTALLS += data_langs - - data_langs_fix.path = $$PREFIX/$$DATA_DIR/translations/ - data_langs_fix.extra = rm ${INSTALL_ROOT}$$PREFIX/$$DATA_DIR/translations/music_blank.qm \ - ${INSTALL_ROOT}$$PREFIX/$$DATA_DIR/translations/pianobooster_blank.qm - INSTALLS += data_langs_fix - } - - desktop.path = $$PREFIX/share/applications - desktop.files = pianobooster.desktop - - icon32.path = $$PREFIX/share/icons/hicolor/32x32/apps - icon32.files = icons/hicolor/32x32/pianobooster.png - - icon48.path = $$PREFIX/share/icons/hicolor/48x48/apps - icon48.files = icons/hicolor/48x48/pianobooster.png - - icon64.path = $$PREFIX/share/icons/hicolor/64x64/apps - icon64.files = icons/hicolor/64x64/pianobooster.png - - music.path = $$PREFIX/$$DATA_DIR/music - music.files = music/BoosterMusicBooks.zip - - INSTALLS += target desktop icon32 icon48 icon64 music -} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 021117e2..e510d60e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,13 +1,13 @@ # Cmake File for Piano Booster -option(USE_FTGL "build with ftgl" ON) -option(WITH_INTERNAL_FLUIDSYNTH "build with an internal FluidSynth sound generator" ON) -option(USE_JACK "build with Jack (Only required for BSD Unix)" OFF) -option(USE_SYSTEM_FONT "build with system font" OFF) +option(WITH_INTERNAL_FLUIDSYNTH "Build with an internal FluidSynth sound generator" ON) +option(USE_FTGL "Build with ftgl for notes localization" ON) +option(USE_SYSTEM_FONT "Build with system font" OFF) +option(USE_JACK "Build with Jack (Only required for BSD Unix)" OFF) if(${CMAKE_SYSTEM} MATCHES "Linux") - option(USE_BUNDLED_RTMIDI "build with bundled rtmidi (for older distributions only)" OFF) + option(USE_BUNDLED_RTMIDI "Build with bundled rtmidi (for older distributions only)" OFF) else() - option(USE_BUNDLED_RTMIDI "build with bundled rtmidi" ON) + option(USE_BUNDLED_RTMIDI "Build with bundled rtmidi" ON) endif() cmake_minimum_required(VERSION 2.4) @@ -28,9 +28,6 @@ cmake_policy(SET CMP0043 NEW) # enable warnings add_compile_options(-Wall) -if(USE_FONT) - add_compile_options("-DUSE_FONT=\"${USE_FONT}\"") -endif() add_compile_options("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") @@ -300,10 +297,6 @@ if(WIN32) INSTALL( FILES ../music/BoosterMusicBooks.zip DESTINATION . ) endif(WIN32) -if(USE_FONT) - INSTALL ( FILES ${USE_FONT} DESTINATION ${DATA_DIR}/fonts) -endif(USE_FONT) - if(NOT USE_SYSTEM_FONT) configure_file(fonts/DejaVuSans.ttf ${CMAKE_CURRENT_BINARY_DIR}/fonts/DejaVuSans.ttf COPYONLY) INSTALL ( FILES fonts/DejaVuSans.ttf DESTINATION ${DATA_DIR}/fonts/) diff --git a/src/Draw.cpp b/src/Draw.cpp index 1ce177ac..09fc2a24 100644 --- a/src/Draw.cpp +++ b/src/Draw.cpp @@ -45,9 +45,6 @@ CDraw::CDraw(CSettings* settings) #ifndef NO_USE_FTGL QStringList listPathFonts; -#if defined(USE_FONT) - listPathFonts.append(USE_FONT); -#endif listPathFonts.append(Util::dataDir()+"/fonts/DejaVuSans.ttf"); listPathFonts.append(QApplication::applicationDirPath() + "/fonts/DejaVuSans.ttf"); listPathFonts.append(QApplication::applicationDirPath() + "/../Resources/fonts/DejaVuSans.ttf"); diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt index b10d0eed..d35d705a 100644 --- a/translations/CMakeLists.txt +++ b/translations/CMakeLists.txt @@ -17,20 +17,15 @@ SET( TRANSLATIONS_FILES pianobooster_sv.ts pianobooster_uk.ts pianobooster_zh.ts - music_ru.ts - music_uk.ts ) if(INSTALL_ALL_LANGS) -file (GLOB TRANSLATIONS_FILES "*.ts") +file (GLOB TRANSLATIONS_FILES "*.ts") endif() get_filename_component(full_path_blank_ts ${CMAKE_CURRENT_SOURCE_DIR}/pianobooster_blank.ts ABSOLUTE) list(REMOVE_ITEM TRANSLATIONS_FILES ${full_path_blank_ts}) -get_filename_component(full_path_blank_ts ${CMAKE_CURRENT_SOURCE_DIR}/music_blank.ts ABSOLUTE) -list(REMOVE_ITEM TRANSLATIONS_FILES ${full_path_blank_ts}) - FIND_PACKAGE(Qt5 REQUIRED COMPONENTS LinguistTools) QT5_ADD_TRANSLATION(QM_FILES ${TRANSLATIONS_FILES}) diff --git a/translations/music_blank.ts b/translations/music_blank.ts deleted file mode 100644 index 159f1fe5..00000000 --- a/translations/music_blank.ts +++ /dev/null @@ -1,95 +0,0 @@ - - - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - - - - diff --git a/translations/music_cs.ts b/translations/music_cs.ts deleted file mode 100644 index 0f669deb..00000000 --- a/translations/music_cs.ts +++ /dev/null @@ -1,131 +0,0 @@ - - - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Toto je zjednodušená verze <strong>Clair De La Lune</strong>, která využívá pouze tři noty<strong>C D</strong> and <strong>E</strong>, které budete hrát pouze pravou rukou. První najděte <strong>jednočárkované C</strong>, které vždy hrajte <strong>palcem</strong>pravé ruky, pro<strong>D</strong> použíjte<strong>ukazováček</strong> a pro<strong>E</strong> <strong>prostředníček</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Pokud jste úplný začátečník zkuste první<strong>Začátečnický kurz</strong></em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> je jednoduchá melodie, na kterou vám stačí pouze prsty pravé ruky. Hraje se na durové (major) stupnici C. Pro pět nejnižších not <strong>C D E F</strong> a <strong>G</strong> použíjte prsty vaší pravé ruky - jeden na každou notu. (Začínáte <strong>palcem</strong> na <strong>C</strong> a končíte <strong>malíčkem</strong> na <strong>G</strong>). Pro následné <strong>A</strong> natáhněte a opět použíjte <strong>malíček</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Pro pomoc s nalezením správných not použíjte <strong>Ukázat názvy not</strong>, které lze zvolit v <strong>Nastavení</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> začíná oběmi palci na <strong>jednočárkovaném C</strong> a poté využívá jeden prst na každou bílou klávesu klavíru. Takže na první dvě noty, které jsou <strong>E</strong> by jste měli použít <strong>prostředníček</strong> vaší pravé ruky.</p> - -<p>Tato skladba využívá <strong>obě ruce</strong> tím, že melodie jde přes <strong>jednočárkované C</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Pro noty zapsané v <strong>houslovém klíči</strong> vždy použíte <strong>pravou ruku</strong>. Naopak pro noty zapsané v <strong>basovém klíči</strong> použíjte <strong>levou ruku</strong>. Nejdůležitější je používat správné prsty pro správné klávesy klavíru.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Frere Jacques</strong> využíva obě ruce najednou s tím, že melodie levé ruky je velice snadná. První se pokuste naučit hrát <strong>levou rukou</strong> a až poté <strong>pravou</strong>. První zkoušejte hrát pouze jednou rukou. Až to zvládnete zkuste snížit <strong>rychlost na 70%</strong> a zkuste hrát <strong>oběmi rucemi</strong> najednou. Opět začněte <strong>oběmi palci</strong> na <strong>jednočárkovaném C</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Trénujte <strong>levou</strong> a <strong>pravou ruku</strong> zvlášť.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> je melodie, která se hraje na 8 notách takže budete muset hýbat prsty po klavíru. Hrajte noty tak jak vám to bude přirozené ale nezapomeňte použít <strong>všechny prsty</strong> (vaší pravé ruky).</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Nepřemýšlejte o tom jaké prsty použít, prostě použíte to co vám je <strong>nejvíce přirozené</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> se hraje v tónině <strong>G dur</strong>, která obsahuje i <strong>fis - F#</strong>. Normálně se při hraní <strong>F#</strong> křížky neukazují (pokud ale zapnete <strong>Pomáhající posuvky</strong> z nastavení, aplikace vám bude všechny posuvky v dané tónině ukazovat). Melodie se hraje pravou rukou s tím, že levá ruka má taky svou jednoduchou část.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>V nastavení Piano Boosteru můžete zapnout <strong>Pomáhající posuvky</strong>. Ovšem nezapomeňte je <strong>vypnout</strong> až je nebudete potřebovat.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> se hraje v tónině <strong>F dur</strong>, která má <strong>jednu béčkovou notu - hes (Bb)</strong>. Posuvky se normálně nezobrazují ale jak již bylo řečeno lze tuto funkci zapnout v nastavení. První trénujte každou ruku zvlášť a až budete připraveni zkuste snížit rychlost na 70% a hrát oběmi rucemi současně.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Když se budete poprvé pokoušt hrát oběmi rucemi najednou snižte rychlost na 70%.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Začnutí jednočárkovaným C</strong> je velice snadný úkol. Prostě na klavíru najděte <strong>jednočárkované C</strong>, a potom notu čtyřikrát zahrajte pomocí svého <strong>palce</strong> na <strong>pravé ruce</strong>. První polovina kusu má <strong>jednočárkované C</strong> v <strong>houslovém klíči</strong>, pak pro druhou polovinu kusu je ta samá nota <strong>jednočárkovaného C</strong> ukázána v <strong>basovém klíči</strong>. Hrajte pomocí <strong>palce</strong> na <strong>levé ruce</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Pokuste se zapamatovat si, kde je <strong>jednočárkované C</strong> na klavíru -- je to ta <strong>nejdůležitější nota</strong>!</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Skladba <strong>Chord of C Major</strong>, poprvé představí akord <strong>C dur</strong>, který má tři noty <strong>jednočárkované C</strong>, <strong>E</strong> a <strong>G</strong>.</p> - -<p>Použíjte <strong>palec</strong> pro <strong>C</strong>, <strong>prostředníček</strong> pro <strong>E</strong> a <strong>malíček</strong> pro <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Pokud nerozeznáte noty zkuste zapnout <strong>Ukázat názvy not</strong> v menu<strong> nastavení</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> využívá všechny prsty vaší pravé ruky pro hraní <strong>tóniny C dur</strong>.</p> - -<p>Použíjte <strong>palec</strong> pro <strong>C</strong>, <strong>ukazováček</strong> pro <strong>D</strong>, . . . , a tak dále až k <strong>malíčku</strong> pro <strong>G</strong>. Nejdůležitější je použít vždy správny prst pro tu či onu notu.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Pokud nevíte, kde se jednotlivé noty na klavíru nacházejí <strong>označte si jednotlivé klávesy</strong> pomocí PianoBooster <strong>Tónové stupnice</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Jedná se o zjednodušenou verzi <strong>Clair De La Lune</strong>, která používá tři noty <strong>C D</strong> a <strong>E</strong> z vaší pravé ruky. Nejprve zahrajte <strong>jednočárkované C</strong> a vždy pro tuto notu použijte <strong>palec</strong>, potom pro <strong>D</strong> použijte <strong>první prst (ukazováček)</strong> a pro <strong>E</strong> použijte <strong>prostředníček</strong>.</p> - -<font color="#ff0000"><p><strong>Rada:</strong> <em>Zapamatujte si prstoklad: Použijte <strong>palec</strong> pro <strong>jednočárkované C</strong>, <strong>ukazováček</strong> pro <strong>D</strong> a <strong>prostředníček</strong> for <strong>E</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Teď se pokuste zahrát <strong>levou rukou</strong> <strong>akord F dur</strong>. Tři noty v akordu zahrané současně se nazývají trojzvuk. F dur má stejnou podobu jako C dur, kterou jste hráli dříve pouze se hraje na jinou část klavíru.</p> - -<p>Použíjte <strong>malíček</strong> na vaší levé ruce pro <strong>F</strong>, <strong>prostředníček</strong> pro <strong>A</strong> a <strong>palec</strong> pro <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Pokud nerozeznáte noty zkuste zapnout <strong>Ukázat názvy not</strong> v menu<strong> nastavení</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> je zrcadlová verze skladby Up And Down, kterou jste hráli dříve. Tato verze se ale hraje <strong>levou rukou</strong>. Hraje se všech pět not na stupnici C dur. Opět nezapomeňte použít všechny prsty vaší ruky.</p> - -<p>Použíjte <strong>palec</strong> pro <strong>C</strong>, <strong>ukazováček</strong> pro <strong>B</strong>, . . . , a tak dále až k <strong>malíčku</strong> pro <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Tip:</strong> <em>Nejduležitější je při hraní této melodie použít <strong>všechny prsty</strong> na vaší <strong>levé ruce</strong>.</em></p></font></body> - - - diff --git a/translations/music_de.ts b/translations/music_de.ts deleted file mode 100644 index eeb7d98c..00000000 --- a/translations/music_de.ts +++ /dev/null @@ -1,95 +0,0 @@ - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Dies ist eine vereinfachte Version von <strong>Clair De La Lune</strong>, die nur die drei Noten <strong>C D</strong> und <strong>E</strong> der rechten Hand verwendet. Finde zuerst das <strong>mittlere C</strong> und verwende ausschließlich deinen <strong>Daumen</strong> für diese Note, für das <strong>D</strong> verwende deinen <strong>Zeigefinger</strong> und für das <strong>E</strong> den <strong>Mittelfinger</strong>.</p> -<font color="#ff0000"><p><strong>Hinweis:</strong><em> Solltest du ein kompletter Anfänger sein, versuche die Stücke aus dem <strong>Anfängerkurs</strong> zuerst.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> ist ein einfaches Stück für die rechte Hand, welches die ersten sechs Noten der C-Dur-Tonleiter verwendet. Verwende für die unteren fünf Noten <strong>C D E F</strong> und <strong>G</strong> alle Finger deiner rechten Hand - ein Finger pro Note. (Mit deinem <strong>Daumen</strong> auf dem <strong>C</strong> und deinem <strong>kleinen Finger</strong> auf dem <strong>G</strong>). Für das <strong>A</strong> bewegst du deinen <strong>kleinen Finger</strong> um es zu erreichen.</p> -<font color="#ff0000"><p><strong>Tipp:</strong> <em>Um die Noten zu finden, stelle sicher, dass <strong>Notennamen anzeigen</strong> in den <strong>Einstellungen</strong> aktiviert ist.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - - - - \ No newline at end of file diff --git a/translations/music_es.ts b/translations/music_es.ts deleted file mode 100644 index f7960f92..00000000 --- a/translations/music_es.ts +++ /dev/null @@ -1,101 +0,0 @@ - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Para <strong>Frere Jacques </strong>introduce el uso de jugar ambas manos juntas con una parte muy simple de la mano izquierda. Primero practique las <strong>partes de la mano izquierda </strong>y <strong>la mano derecha </strong>por separado. Luego, cuando esté listo, reduzca la <strong>velocidad al 70% </strong>e intente <strong>ambas manos </strong>juntas. De nuevo comienza con<strong> los dos pulgares</strong> en <strong>el Do central </strong>.</p> - -<font color="#ff0000"><p><strong>Consejo: </strong><em>Practique las <strong>partes de la mano izquierda y <strong>la mano derecha </strong>por separado.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Comienza con Do Medio</strong> es una pieza extremadamente fácil. Solo encuentra la <strong>Do Medio</strong>en el piano y luego toca esa nota cuatro veces con el <strong>pulgar </strong>de tu<strong> mano derecha</strong>. La primera mitad de la pieza tiene <strong>Do Medio </strong>en la <strong>Clave de Sol</strong>, luego, para la segunda mitad de la pieza, la misma nota <strong>Do medio</strong>se muestra la <strong>Clave de Fa</strong>. Juega esto usando tu <strong>pulgar </strong>de tu <strong>mano izquierda</strong>. </p> - -<font color="#ff0000"><p><strong>Consejo:</strong> <em>Trate de recordar dónde está <strong>Do Medio</strong>en el piano. ¡Esta es la <strong>nota más importante</strong>!</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>La pieza <strong>Acorde de Do Mayor</strong> te presenta el acorde de <strong>Do Mayor</strong> el cual tiene tres notas <strong>Do medio</strong>, <strong>Mi</strong> y <strong>Fa</strong>.</p> - -<p>Usa tu <strong>pulgar</strong> para <strong>Do</strong>, tu <strong>dedo medio</strong> para <strong>Mi</strong> y tu <strong>dedo meñique</strong> para <strong>Fa</strong>.</p> - -<font color="#ff0000"><p><strong>Consejo:</strong> <em>Si no conoce los nombres de las notas en la puntuación, active <strong>Mostrar nombres de notas</strong> desde el menú de PianoBooster <strong>Configuración / Preferencias</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - - - - \ No newline at end of file diff --git a/translations/music_fr.ts b/translations/music_fr.ts deleted file mode 100644 index b77ea1c5..00000000 --- a/translations/music_fr.ts +++ /dev/null @@ -1,131 +0,0 @@ - - - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Ceci est une version simplifée dez <strong>Clair De La Lune</strong> qui utilise seulement les trois notes <strong>C D</strong> et <strong>E</strong> depuis votre main droite. Tout d'abord trouver <strong> C milieu</strong> et utilisez toujours votre<strong>pouce</strong> pour cette note, puis pour <strong>D</strong> utilisez votre <strong>premier doigt</strong> et pour <strong>E</strong> utilisez <strong>votre doigt du milieu</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>Si vous êtres un débutant complet commencez par essayer les morceaux du <strong>cours débutant</strong> d'abord.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavande Bleue</strong> est une musique simple, à jouer à la main droite, qui utilise seulement les premières notes de la gamme C majeur. Pour les cinq notes les plus basses <strong>C D E F</strong> et <strong>G</strong> utilisez tous les doigts de votre main droite - un pour chaque note (avec votre <strong>pouce</strong> sur <strong>C</strong> et votre <strong>petit doigt</strong> sur <strong>G</strong>). Puis pour <strong>A</strong> il suffit d'étendre votre <strong>petit doigt</strong> afin d'atteindre cette note.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>pour vous aider à trouver les notes, assurez-vous que <strong>montrer les noms des notes</strong> est activé, dans le menu <strong>Préférences paramètres</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Pour <strong>Skip To My Loo</strong> commencez avec les deux pouces sur <strong>C du milieu</strong> puis utilisez un doigt pour chaque note sur le piano. Ainsi les deux premières notes étant <strong>E</strong> you should use the <strong>doigts majeurs</strong> de votre main droite.</p> - -<p>Cette pièce introduit l'usage des <strong>deux mains</strong> parce que la mélodie se joue à travers la <strong>gamme C</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>concernant les notes de la <strong>clé de sol</strong> vous devriez utiliser votre <strong>main droite</strong> et pour la <strong>clé de base</strong> votre <strong>main gauche</strong>. Assurez vous de toujours garder le doigt adéquat pour chaque note.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Pour <strong>Frère Jacques</strong> commencez à jouer à deux mains simultanées avec une partie très facile à la main droite. D'abord entraînez-vous <strong>main gauche</strong> et <strong>main droite</strong>séparément. Puis lorsque vous serez prêt réduisez la <strong>vitesse à 70%</strong> et essayez <strong>à deux mains</strong> simultanées. Ensuite démarrez avec les <strong>deux pouces</strong> sur les <strong>C du milieu</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>entraînez-vous aux parties <strong>main gauche</strong> puis <strong>main droite</strong> séparément.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> couvre une gamme de huit notes et vous devrez donc déplacer vos doigts vers le haut du piano. Utilisez les doigts avec lesquels vous vous sentez à l'aise, mais assurez-vous que vous <strong>utilisez tous vos doigts</strong> (de votre main droite).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Ne pensez pas aux doigts à utiliser, utilisez simplement le doigté qui <strong> vous vient naturellement</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduit la tonalité de <strong>sol majeur</strong> qui possède <strong>un dièse - fa#</strong>. Normalement, le symbole de dièse n'est pas affiché lorsque <strong>fa#</strong> est joué (mais en activant <strong>altérations de précaution</strong> dans le menu Piano Booster Paramétrages/Préférences vous pourrez voir tous les accidents dans la tonalité). La mélodie est à la main droite avec une partie simple à la main gauche.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>vous pouvez afficher les <strong>altérations de précaution</strong> depuis le menu Paramétrages/Préférences de Pianobooster. Mais souvenez-vous de <strong>les enlever</strong> lorsque vous serez plus compétent.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduit la tonalité de <strong>Fa majeur</strong> qui a un <strong>seul Bémol - Sib</strong>. Là encore, le symbole du bémol n'apparaît pas normalement sur la partition lorsque l'on joue le Si bémol. Pratiquez les deux mains séparément au début, puis lorsque vous êtes prêt, réduisez la vitesse à 70% lorsque vous essayez les deux mains pour la première fois..</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>réduisez la vitesse à 70% lorsque vous essayez les deux mains pour la première fois.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> est une pièce extrêmement facile. Il suffit de trouver le <strong>do moyen</strong> sur le piano et de jouer cette note quatre fois en utilisant le <strong>pouce</strong> de votre <strong>main droite</strong>. La première moitié de la pièce comporte un <strong>Do central</strong> en <strong>clef de Sol</strong>, puis pour la deuxième moitié de la pièce, la même note de <strong>Do central</strong> est indiquée en <strong>clef de Fa</strong>. Jouez cette note en utilisant le <strong>pouce</strong> de votre <strong>main gauche</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>essayez de vous rappeler où se trouve le <strong>Do moyen</strong> sur le piano - c'est la <strong>note la plus importante</strong>!</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>La pièce <strong> Accord de Do majeur</strong>, vous introduit à l'accord de <strong>Do majeur</strong> qui possède trois notes <strong>Do central</strong>, <strong>Mi</strong> et <strong>Sol</strong>.</p> - -<p>Utilisez votre <strong>pouce</strong> pour le <strong>Do</strong>, votre <strong>majeur</strong> pour le <strong>Mi</strong> et votre <strong>auriculaire</strong> pour le <strong>Sol</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>Si vous ne connaissez pas les noms des notes de la partition, alors activez l'option <strong>Afficher le nom des notes</strong> dans le menu <strong>Paramétrage/Préférences</strong> de PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> utilise tous les doigts de votre main droite pour jouer les cinq premières notes de la <strong>gamme de Do majeur</strong>.</p> - -<p>Utilisez votre <strong>pouce</strong> pour le <strong>Do</strong>, votre <strong>index finger</strong> pour le <strong>Ré</strong>, . . . , jusqu'à votre <strong>auriculaire</strong> pour le <strong>Sol</strong>. Assurez-vous de toujours utiliser le bon doigt pour chaque note.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em> si vous ne connaissez pas les notes du piano, alors <strong>étiquetez les touches du piano</strong> à l'aide du <strong>tableau de notes</strong> de PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Il s'agit d'une version simplifiée de <strong> Au clair de la lune</strong> qui utilise seulement trois notes <strong>Do, Ré</strong> et <strong>Mi</strong> de votre main droite. Trouvez d'abord le <strong>Do central</strong> et utilisez toujours votre <strong>pouce</strong> pour cette note, puis pour le <strong>Ré</strong> utilisez votre <strong>premier doigt</strong> et pour le <strong>Mi</strong> utilisez le <strong>majeur</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em>souvenez vous du doigté : utilisez votre <strong>pouce</strong> pour le <strong>Do central</strong>, votre <strong>premier doigt</strong> pour le <strong>Ré</strong> et le <strong>majeur</strong> pour le <strong>Mi</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Nous allons maintenant jouer de la <strong>main gauche</strong> l'<strong>accord en Fa majeur</strong>. Les trois notes d'un accord sont appelées une triade et cet accord a la même forme que l'accord de Do majeur que nous avons joué précédemment mais sur une partie différente du piano.</p> - -<p>Utilisez votre <strong>petit doigt</strong> de la main gauche pour <strong>le Fa</strong>, votre <strong>majeur</strong> pour le <strong>La</strong> et votre <strong>pouce</strong> puor le <strong>Do</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce : </strong> <em>si vous ne connaissez pas les noms des notes de la partition, activez l'option <strong>Afficher le nom des notes</strong> dans le menu <strong>Paramètre/Préférences</strong> de PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> est une version miroir du morceau Up And Down que nous avons joué plus tôt, mais cette version utilise votre <strong>main gauche</strong>. Ce sont les cinq premières notes de la gamme de Do majeur. Essayez à nouveau d'utiliser tous vos doigts.</p> - -<p>Utilisez votre <strong>pouce</strong> pour le <strong>Do</strong>, votre <strong>index</strong> pour le <strong>Si</strong>, . . . , jusqu'à votre <strong>auriculaire</strong> pour le <strong>Fa</strong>.</p> - -<font color="#ff0000"><p><strong>Astuce :</strong> <em> assurez-vous d'utiliser <strong>tous les doigts</strong> de votre <strong>main gauche</strong> lorsque vous jouez ce morceau.</em></p></font></body> - - - diff --git a/translations/music_pl.ts b/translations/music_pl.ts deleted file mode 100644 index 71d4888c..00000000 --- a/translations/music_pl.ts +++ /dev/null @@ -1,107 +0,0 @@ - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>To jest uproszczona wersja <strong>"Clair De La Lune" </strong> która składa się tylko z trzech nut <strong> C D </strong>oraz <strong>E</strong> granych prawą ręką. Najpierw znajdź <strong>średnie C</strong> używaj zawsze <strong>kciuka </strong> by grać tą nutę, wtedy dla <strong>D</strong> użyj <strong>palca wskazującego </strong> a dla <strong>E</strong> użyj <strong>palca środkowego</strong>. </p> - -<font color="#ff0000"><p><strong>Podpowiedź:</strong><em>Jeżeli jesteś zupełnie początkujący spróbuj ukończyć najpierw elementy z <strong>Kursu dla początkujących.</strong></em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue </strong>jest prostą melodią na prawą rękę, która używa sześć pierwszych nut skali C-Dur. Dla najniższych pięciu nut <strong>C D E F</strong> oraz <strong>G</strong> użyj wszystkich palców prawej ręki - jeden dla każdej nuty. (Z <strong>kciukiem </strong> na <strong> C</strong> i <strong>małym palcem</strong> na <strong> G</strong>). Następnie dla <strong>A</strong> wyciągnij Twój <strong>mały palec</strong> żeby dosięgnąć tej nuty. </p> - -<font color="#ff0000"><p><strong>Podpowiedź: </strong><em> Żeby pomóc znaleźć nuty upewnij się, że opcja <strong>Pokaż nazwy nut</strong> jest włączona w menu <strong>Ustawienia </strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Dla <strong>Przejdź do My Loo </strong> zacznij z kciukami na <strong>środkowym C</strong> i wtedy użyj dla każdej białej nuty jednego palca. Dla dwóch pierwszych nut <strong>E</strong> powinieneś użyć <strong>środkowego palca</strong> prawej ręki. </p> - -<p>Ten utwór wprowadza użycie <strong>obu rąk</strong> gdy melodia przechodzi przez <strong>środkowe C</strong>.</p> - -<font color="#ff0000"><p><strong>Podpowiedź:</strong> <em> Dla nut z <strong>klucza wiolinowego</strong> zawsze używaj <strong>prawej ręki</strong>, a dla nut z <strong>klucza basowego</strong> używaj <strong>lewej ręki</strong>. Upewnij się, że zawsze używasz odpowiedniego palca dla każdej nuty.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> obejmuje zakres ośmiu nut, więc będziesz musiał przesuwać palce po klawiszach. Używaj palcowania które jest dla Ciebie wygodne dla upewnij się że używasz <strong>wszystkich palców</strong> (prawej dłoni).</p> - -<font color="#ff0000"><p><strong>Podpowiedź:</strong> <em>Nie myśl o tym których palców używać, po prostu użyj palcowania które <strong>przychodzi Ci naturalnie</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Akord C-Dur</strong> część ta przedstawi Ci akord <strong>C-Dur</strong> który składa się z trzech nut: <strong>Środkowe C </strong>. <strong>E</strong> oraz <strong>G</strong>.</p> - -<p>Użyj <strong>kciuka</strong> dla <strong>C</strong>, <strong>środkowego palca</strong> dla <strong>E</strong> oraz <strong>małego palca</strong> dla <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Podpowiedź: </strong><em>Jeżeli nie znasz nazwy nut włącz <strong>Pokaż nazwy nut</strong> w menu <strong>Ustawienia/Właściwości</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - - - - \ No newline at end of file diff --git a/translations/music_ru.ts b/translations/music_ru.ts deleted file mode 100644 index 4b99c4eb..00000000 --- a/translations/music_ru.ts +++ /dev/null @@ -1,133 +0,0 @@ - - - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Это упрощённая версия <strong>Clair De La Lune/В свете луны</strong>, в которой используются только три ноты <strong>C D</strong> и <strong>E</strong> правой руки. Сначала найдите <strong>C в середине</strong> и всегда используйте <strong>большой палец</strong> для этой ноты, затем для <strong>D</strong> используйте <strong>указательный палец</strong> и для <strong>E</strong> - <strong>средний палец</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы новичок, то попробуйте сначала <strong>Beginner Course/Курс для начинающих</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue/Лавандовый синий</strong> - простая мелодия для правой руки, в которой используются первые шесть нот тоники C (До) мажор. Для пяти самых низких нот <strong>C D E F</strong> и <strong>G</strong> используйте все пальцы или правую руку - по одному пальцу для каждой ноты. (С вашим <strong>большим пальцем</strong> на <strong>C</strong> и вашим <strong>мизинцем</strong> на <strong>G</strong>). Тогда для <strong>A</strong> просто вытяните <strong>мизинец</strong>, чтобы достать эту ноту.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Чтобы легче найти ноты, убедитесь, что в меню <strong>Настройка</strong> включено <strong>Показывать названия нот</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Для <strong>Skip To My Loo/Перехожу к моей любви</strong> начните с обоих больших пальцев на <strong>C в середине</strong>, а затем используйте один палец для каждой белой ноты на пианино. Таким образом, для первых двух нот, которые <strong>E</strong>, вы должны использовать <strong>средний палец</strong> правой руки.</p> - -<p>Эта пьеса вводит использование <strong>обеих рук</strong>, поскольку мелодия пересекает <strong>C в середине</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Для нот в <strong>скрипичном ключе</strong> вы всегда используете <strong>правую руку</strong>, а для <strong>басового ключа</strong> - <strong>левую руку</strong>. Убедитесь, что вы всегда продолжаете использовать правильный палец для каждой ноты.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Для <strong>Frere Jacques/Брат Жак</strong> вводится игра двумя руками одновременно с очень простой партией для левой руки. Сначала попрактикуйтесь в партиях для <strong>левой руки</strong> и <strong>правой руки</strong>. Затем, когда будете готовы, уменьшите <strong>скорость до 70%</strong> и попробуйте <strong>обе руки</strong> вместе. Снова начните с обоих <strong>больших пальцев</strong> на <strong>C в середине</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Практикуйте <strong>левую</strong> и <strong>правую</strong> партии отдельно.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair/Ярмарка в Скарборо</strong> охватывает диапазон из восьми нот, поэтому вам придётся двигать пальцами вверх по пианино. Используйте аппликатуру, которая вам удобна, но убедитесь, что вы <strong>используете все свои пальцы</strong> (правой руки).</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Не думайте о том, какие пальцы использовать, просто используйте аппликатуру <strong>естественно</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves/В зелёных рукавах</strong> вводит ключ <strong>G (Си) мажор</strong>, который имеет <strong>один диез - F#</strong>. Обычно символ диеза не отображается при воспроизведении <strong>F#</strong> (но включение <strong>Прощать случайные ошибки</strong> в меню Piano Booster Настройка -> Предпочтения покажет альтерацию на клавиатуре). Мелодия для правой руки с простой левой партией.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Вы можете видеть <strong>Прощать случайные ошибки</strong> в меню Piano Booster Настройка -> Предпочтения. Но не забудьте <strong>выключить их</strong>, когда вы станете более опытным.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace/Великая благодать</strong> вводит ключ <strong>F (Ля) мажор</strong>, который имеет <strong>один бемоль - Bb</strong>. Снова символ бемоля обычно не отображается на партитуре при игре Bb. Сначала тренируйте обе руки по отдельности, а затем, когда будете готовы, уменьшите скорость до 70% при первой попытке играть обеими руками.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Уменьшите скорость до 70% при первой попытке играть обеими руками.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C/Начните с C в середине</strong> - чрезвычайно лёгкая вещь. Просто найдите <strong>C в середине</strong> на пианино и затем сыграйте эту ноту четыре раза, используя <strong>большой палец</strong> <strong>на правой руке</strong>. Первая половина пьесы имеет <strong>C в середине</strong> в <strong>скрипичном ключе</strong>, затем для второй половины пьесы та же самая нота <strong>С в середине</strong> показана в <strong>басовом ключе</strong>. Играйте, используя <strong>большой палец</strong> на <strong>левой руке</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Попробуйте вспомнить, где <strong>C в середине</strong> находится на пианино - это самая <strong>важная нота</strong>!</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Пьеса <strong>Chord of C Major/Аккорд До мажор</strong>, представляет вам аккорд -<strong>C (До) мажор</strong>, который имеет три ноты: <strong>C в середине</strong>, <strong>E</strong> и <strong>G</strong>.</p> - -<p>Используйте свой <strong>большой палец</strong> для <strong>C</strong>, свой <strong>средний палец</strong> для <strong>E</strong> и свой <strong>мизинец</strong> для <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете названий нот на партитуре, то включите <strong>Показывать названия нот</strong> в меню PianoBooster <strong>Настройка -> Предпочтения</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Up And Down/Вверх и вниз</strong> использует все пальцы правой руки для воспроизведения первых пяти нот <strong>тоники C (До) мажор</strong>.</p> - -<p>Используйте ваш <strong>большой палец</strong> для <strong>C</strong>, ваш <strong>указательный палец</strong> для <strong>D</strong>, . . ., вплоть до вашего <strong>мизинца</strong> для <strong>G</strong>. Убедитесь, что вы продолжаете использовать правильный палец для каждой ноты.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете ноты на пианино, <strong>маркируйте клавиши пианино</strong>, используя <strong>Диаграмму нот</strong> PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Это упрощённая версия <strong>Clair De La Lune/В свете луны</strong>, в которой используются только три ноты <strong>C D</strong> и <strong>E</strong> правой руки. Сначала найдите <strong>C в середине</strong> и всегда используйте <strong>большой палец</strong> для этой ноты, затем для <strong>D</strong> используйте <strong>указательный палец</strong> и для <strong>E</strong> - <strong>средний палец</strong> -</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Запомните аппликатуру: используйте <strong>большой палец</strong> для <strong>C в середине</strong>, свой <strong>указательный палец</strong> для <strong>D</strong> и <strong>средний палец</strong> для <strong>E</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Теперь мы будем играть <strong>Chord of F Major/Аккорд Ля мажор</strong>, используя вашу <strong>левую руку</strong>. Три ноты аккорда называются триадой, и этот аккорд имеет ту же форму, что и аккорд C (До) мажор, который мы играли раньше, но на другой части пианино.</p> - -<p>Используйте свой <strong>мизинец</strong> на левой руке для <strong>F</strong>, свой <strong>средний палец</strong> для <strong>A</strong> и свой <strong>большой палец</strong> для <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Если вы не знаете названий нот на партитуре, то включите <strong>Показывать названия нот</strong> в меню PianoBooster <strong>Настройка -> Предпочтения</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Down And Up/Вниз и вверх</strong> - зеркальная версия пьесы Up And Down/Вниз и вверх, которую мы играли ранее, но в этой версии используется ваша <strong>левая рука</strong>. Это первые пять нот тоники C (До) мажор. Снова попробуйте использовать все свои пальцы.</p> - -<p>Используйте <strong>большой палец</strong> для <strong>C</strong>, ваш <strong>указательный палец</strong> для <strong>B</strong>, . . . , вплоть до вашего <strong>мизинца</strong> для <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Подсказка:</strong> <em>Убедитесь, что вы используете <strong>каждый палец</strong> на <strong>левой руке</strong> при игре этой пьесы.</em></p></font></body> - - - diff --git a/translations/music_uk.ts b/translations/music_uk.ts deleted file mode 100644 index 77d9e61f..00000000 --- a/translations/music_uk.ts +++ /dev/null @@ -1,131 +0,0 @@ - - - - - QtWindow - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses only the three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you are a complete beginner try the pieces from the <strong>Beginner Course</strong> first.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Це спрощена версія <strong>У світлі місяця</strong>, у якій використано три ноти <strong>до ре</strong> та <strong>мі</strong> для вашої правої руки. Спочатку знайдіть <strong>середню до</strong> і завжди використовуйте для цієї ноти ваш <strong>великий палець</strong>, далі, для <strong>ре</strong> використовуйте ваш <strong>вказівний палець</strong>, а для <strong>мі</strong> — <strong>середній палець</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо граєте вперше, спробуйте спочатку твори із <strong>Курсу для початківців</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Lavender's Blue</strong> is a simple tune in the right hand only that uses the first six notes of the scale of C Major. For the lowest five notes <strong>C D E F</strong> and <strong>G</strong> use all the fingers or your right hand - one for each note. (With your <strong>thumb</strong> on <strong>C</strong> and your <strong>little finger</strong> on <strong>G</strong>). Then for <strong>A</strong> just stretch your <strong>little finger</strong> to reach that note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>To help find the notes ensure <strong>Show Note Names</strong> are turned on from <strong>Setup Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Лавандовий синій</strong> — проста мелодія для правої руки, у якій використовують перші шість нот у гамі до-мажор. Для п'яти нижніх нот, <strong>до, ре, мі, фа</strong> та <strong>соль</strong> скористайтеся усіма пальцями на вашій правій руці — по одному на ноту. (<strong>Великий палець</strong> для <strong>до</strong>, а <strong>мізинець</strong> для <strong>соль</strong>). Далі, щоб зіграти <strong>ля</strong>, потягніться до відповідної клавіші <strong>мізинцем</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Skip To My Loo</strong> start with both thumbs on <strong>middle C</strong> and then use one finger for each white note on the piano. So for the first two notes which are <strong>E</strong> you should use the <strong>middle finger</strong> of your right hand.</p> - -<p>This piece introduces the use of <strong>both hands</strong> as the melody goes across <strong>middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>For the notes in the <strong>treble clef</strong> you always use your <strong>right hand</strong> and for the <strong>base clef</strong> your <strong>left hand</strong>. Make sure you always keep using the correct finger for each note.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Skip To My Loo</strong> слід починати, розташувавши обидва великі пальці на <strong>середньому до</strong>, а потім використовувати відповідний палець для кожної білої ноти піаніно. Отже, для перших двох нот, якими є <strong>мі</strong>, вам слід скористатися <strong>середнім пальцем</strong> правої руки.</p> - -<p> У цьому творі використовують гру <strong>обома руками</strong>, оскільки мелодія переходить через <strong>середнє до</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Для нот у <strong>скрипковому ключі</strong> слід завжди використовувати <strong>праву руку</strong>, а для нот у <strong>басовому ключі</strong> — <strong>ліву руку</strong>. Переконайтеся, що ви завжди використовуєте відповідний палець для кожної ноти.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>For <strong>Frere Jacques</strong> introduces the use of playing both hands together with a very simple left hand part. First practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately. Then when ready reduce the <strong>speed to 70%</strong> and try <strong>both hands</strong> together. Again start with <strong>both thumbs</strong> on <strong>Middle C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Practice the <strong>left hand</strong> and <strong>right hand</strong> parts separately.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Брат Жак</strong> навчає грі обома руками і містить дуже просту партію для лівої руки. Спочатку повправляйтеся грі <strong>лівою рукою</strong> і <strong>правою рукою</strong> окремо. Далі, коли будете готові, зменшіть <strong>швидкість до 70%</strong> і спробуйте грати <strong>обома руками</strong> разом. Знову ж таки, розпочніть із <strong>обома великим пальцями</strong> на <strong>середній до</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Спочатку повправляйтеся грі <strong>лівою рукою</strong> і <strong>правою рукою</strong> окремо.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Scarborough Fair</strong> spans a range of eight notes and so you will have to move fingers up the piano. Use the fingering that you feel comfortable with but ensure that you <strong>use all your fingers</strong> (of your right hand).</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Don't think about what fingers to use, just use the fingering that <strong>comes naturally to you</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Ярмарка у Скарборо</strong> використовує вісім нот, тому вам доведеться пересувати пальці клавіатурою. Скористайтеся найзручнішим для вас способом пересування пальців, але намагайтеся <strong>використовувати усі пальці</strong> (вашої правої руки).</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Просто натискайте клавіші тими пальцями, якими вам <strong>зручно це робити</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Green Sleeves</strong> introduces the key of <strong>G major</strong> which has <strong>one Sharp - F#</strong>. Normally the sharp symbol is not shown when <strong>F#</strong> is played (but turning on <strong>Courtesy Accidentals</strong> from the Piano Booster setup/preferences menu will show all accidentals in the key signature). The melody is in the right hand with a simple left hand part.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>You can show <strong>Courtesy Accidentals</strong> from the PianoBooster setup/preferences menu. But remember to <strong>turn them off</strong> when you get more skilled.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>У Зелених рукавах</strong> використано клавішу <strong>соль-мажор</strong>, яка є клавішею <strong>одинарного дієза — фа-дієз</strong>. Зазвичай, символ дієза не пишуть, якщо грають <strong>фа-дієз</strong> (але якщо увімкнути <strong>Врахування альтерації</strong> у меню налаштувань Piano Booster, програма показуватиме альтерацію на клавіатурі). Мелодію грає права рука — партія лівої руки є дуже простою.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Ви можете увімкнути <strong>Врахування альтерації</strong> у меню налаштувань Piano Booster. Втім, не забудьте <strong>вимкнути альтерацію</strong>, коли набудете певного досвіду.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Amazing Grace</strong> introduces the key of <strong>F major</strong> which has a <strong>single Flat - Bb</strong>. Again the flat symbol is not normally shown on the score when playing Bb. Practice both hands separately at first and then when ready reduce the speed to 70% when trying both hands for the first time.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Reduce the speed to 70% when trying both hands for the first time.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Чудова ласка</strong> навчає вас грі клавішею <strong>фа-мажор</strong>, яка є клавішею <strong>одинарного бемоля — сі-бемоль</strong>. Знову ж таки, символ бемоль, зазвичай, не буде показано у нотному записі, коли ви граєте сі-бемоль. Спочатку попрактикуйтеся грі руками окремо, а потім зменшіть швидкість до 70% і спробуйте грати обома руками.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Зменшіть швидкість до 70%, коли вперше намагатиметеся грати обома руками.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Start With Middle C</strong> is an extremely easy piece. Just find <strong>middle C</strong> on the piano and then play that note four times using your <strong>thumb</strong> on your <strong>right hand</strong>. The first half of the piece has <strong>middle C</strong> in the <strong>Treble Clef</strong>, then for the second half of the piece the same <strong>middle C</strong> note is shown the <strong>Bass Clef</strong>. Play this using your <strong>thumb</strong> on your <strong>left hand</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Try to remember where <strong>Middle C</strong> is on the piano - this is the most <strong>important note</strong>!</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Почнімо з середнього до</strong> — надзвичайно простий твір. Просто знайдіть <strong>середнє до</strong> на піаніно, а потім зіграйте цю ноту чотири рази за допомогою вашого <strong>великого пальця</strong> на <strong>правій руці</strong>. У перша половині твору <strong>середнє до</strong> грають у <strong>скрипковому ключі</strong>, а у другій половині ту саму ноту <strong>середнього до</strong> грають у <strong>басовому ключі</strong>. Цю ноту слід грати <strong>великим пальцем</strong> вашої <strong>лівої руки</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Постарайтеся згадати, де знаходиться <strong>середньої до</strong> на піаніно -- це <strong>найважливіша нота</strong>!</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>The <strong>Chord of C Major</strong> piece, introduces you to the chord of <strong>C Major</strong> which has three notes <strong>Middle C</strong>, <strong>E</strong> and <strong>G</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>middle finger</strong> for <strong>E</strong> and your <strong>little finger</strong> for <strong>G</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Твір <strong>Акорд до-мажор</strong> знайомить вас із акордом <strong>до-мажор</strong>, який складається з трьох нот: <strong>середньої до</strong>, <strong>мі</strong> та <strong>соль</strong>.</p> - -<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>середнім пальцем</strong> для <strong>мі</strong> та <strong>мізинцем</strong> для <strong>соль</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Up And Down</strong> uses all the fingers of your right hand to play the first five notes of the <strong>scale of C major</strong>.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>D</strong>, . . . , all the way up to your <strong>little finger</strong> for <strong>G</strong>. Make sure you keep using the correct finger for each note.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the notes on the piano then <strong>label the piano keys</strong> using the PianoBooster <strong>Note Chart</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>У вгору і вниз</strong> ви маєте скористатися усіма пальцями на вашій правій руці для перших п'яти нот у <strong>гамі до-мажор</strong>.</p> - -<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>вказівним пальцем</strong> слід грати <strong>ре</strong>, . . . , і так далі, аж до вашого <strong>мізинця</strong> для <strong>соль</strong>. Переконайтеся, що для кожної ноти ви використовуйте відповідний палець.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування нот на клавіатурі піаніно, попросіть програму <strong>додати мітки клавіш</strong> за допомогою <strong>Діаграми нот</strong> PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>This is a simplified version of <strong>Clair De La Lune</strong> that uses just three notes <strong>C D</strong> and <strong>E</strong> from your right hand. First find <strong>middle C</strong> and always use your <strong>thumb</strong> for this note, then for <strong>D</strong> use your <strong>first finger</strong> and for <strong>E</strong> use <strong>middle finger</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Remember the fingering: Use your <strong>thumb</strong> for <strong>middle C</strong>, your <strong>first finger</strong> for <strong>D</strong> and <strong>middle finger</strong> for <strong>E</strong>.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Це спрощена версія <strong>У світлі місяця</strong>, у якій використано три ноти <strong>до ре</strong> та <strong>мі</strong> для вашої правої руки. Спочатку знайдіть <strong>середню до</strong> і завжди використовуйте для цієї ноти ваш <strong>великий палець</strong>, далі, для <strong>ре</strong> використовуйте ваш <strong>вказівний палець</strong>, а для <strong>мі</strong> — <strong>середній палець</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Запам'ятайте розкладку за пальцями: <strong>великий палець</strong> для <strong>середньої до</strong>, <strong>вказівний палець</strong> для <strong>ре</strong> і <strong>середній палець</strong> для <strong>мі</strong>.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p>Now we are going to play using your <strong>left hand</strong> the <strong>F major chord</strong>. The three notes of a chord are called a triad and this chord has the same shape as the C major chord we played earlier but played on a different part of the piano.</p> - -<p>Use your <strong>little finger</strong> on the left hand for <strong>F</strong>, your <strong>middle finger</strong> for <strong>A</strong> and your <strong>thumb</strong> for <strong>C</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>If you don't know the names of the notes on the score then turn on <strong>Show Note Names</strong> from the PianoBooster <strong>Setup/Preferences</strong> menu.</em></p></font></body> - <body bgcolor="#FFFFC0"><p>Тепер ми зіграємо <strong>лівою рукою</strong> <strong>акорд фа-мажор</strong>. Три ноти акорду називають тріадою. Цей акорд має ту саму форму, що і акорд до-мажор, який ми грали раніше на іншій частині клавіатури піаніно.</p> - -<p>Використовуйте <strong>мізинець</strong> на лівій руці для <strong>фа</strong>, <strong>середнім пальцем</strong> для <strong>ля</strong> і <strong>великим пальцем</strong> для <strong>до</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Якщо ви не знаєте розташування клавіш нот, позначте пункт <strong>Показувати назви нот</strong> у меню <strong>Параметри/Налаштування</strong> PianoBooster.</em></p></font></body> - - - <body bgcolor="#FFFFC0"><p><strong>Down And Up</strong> is mirror version of the Up And Down piece we played earlier but this version uses your <strong>left hand</strong>. These are the top five notes of the scale of C major. Again try to use all your fingers.</p> - -<p>Use your <strong>thumb</strong> for <strong>C</strong>, your <strong>index finger</strong> for <strong>B</strong>, . . . , all the way down to your <strong>little finger</strong> for <strong>F</strong>.</p> - -<font color="#ff0000"><p><strong>Hint:</strong> <em>Make sure you use <strong>every finger</strong> on your <strong>left hand</strong> when playing this piece.</em></p></font></body> - <body bgcolor="#FFFFC0"><p><strong>Вниз і вгору</strong> є дзеркальною версією «Вгору і вниз», яку грають <strong>лівою рукою</strong>. Це верхні п'ять нот гами до-мажор. Знову ж таки, намагайтеся використовувати усі ваші пальці.</p> - -<p>Скористайтеся <strong>великим пальцем</strong> для <strong>до</strong>, <strong>вказівним пальцем</strong> слід грати <strong>сі</strong>, . . . , і так далі, аж до вашого <strong>мізинця</strong> для <strong>фа</strong>.</p> - -<font color="#ff0000"><p><strong>Підказка:</strong> <em>Користуйтеся <strong>усіма пальцями</strong> на вашій <strong>лівій руці</strong>, коли гратимете цей твір.</em></p></font></body> - - - diff --git a/translations/pianobooster_pt_BR.ts b/translations/pianobooster_pt_BR.ts deleted file mode 100644 index e1d3dc09..00000000 --- a/translations/pianobooster_pt_BR.ts +++ /dev/null @@ -1,1962 +0,0 @@ - - - - - CConductor - - - None - Nenhum - - - - CDraw - - - C - C - - - - D - D - - - - E - E - - - - F - F - - - - G - G - - - - A - A - - - - B - B - - - - CGLView - - - Accuracy: - Exatidão: - - - - Song: - Canção: - - - - Bar: - - - - - CSettings - - - space - Espaço - - - - ERROR NO SOUND: To fix this use menu Setup/Midi Setup ... - ERRO SEM SOM: Para corrigir isso use o menu Configurações / Configurações Midi ... - - - - ERROR NO MIDI FILE: To fix this use menu File/Open ... - ERRO NENHUM ARQUIVO MIDI: Para corrigir isso use o menu Arquivo / Abrir ... - - - - CTrackList - - - (None) - (nenhum) - - - - Grand Piano - Piano de cauda - - - - Bright Piano - - - - - Electric Grand - - - - - Honky-tonk Piano - Piano Honky-tonk - - - - Electric Piano 1 - Piano Elétrico 1 - - - - Electric Piano 2 - Piano Elétrico 2 - - - - Harpsichord - Cravo - - - - Clavi - - - - - Celesta - - - - - Glockenspiel - Xilofone - - - - Music Box - Caixa de Música - - - - Vibraphone - Vibrafone - - - - Marimba - - - - - Xylophone - Xilofone - - - - Tubular Bells - Tubular bells - - - - Dulcimer - - - - - Drawbar Organ - Orgão Drawbar - - - - Percussive Organ - Órgão Percussivo - - - - Rock Organ - Órgão de Rock - - - - Church Organ - Órgão de igreja - - - - Reed Organ - Harmônio Elétrico - - - - Accordion - Acordeão - - - - Harmonica - Gaita - - - - Tango Accordion - Acordeão de tango - - - - Acoustic Guitar (nylon) - Violão Aústico (nylon) - - - - Acoustic Guitar (steel) - Violão Aústico (aço) - - - - Electric Guitar (jazz) - Violão Elétrico (jazz) - - - - Electric Guitar (clean) - Violão Elétrico (clean) - - - - Electric Guitar (muted) - Violão Elétrico (mudo) - - - - Overdriven Guitar - Gitarra Overdriven - - - - Distortion Guitar - Gitarra Distorcida - - - - Guitar harmonics - Guitarra harmônica - - - - Acoustic Bass - Baixolão - - - - Electric Bass (finger) - - - - - Electric Bass (pick) - - - - - Fretless Bass - Baixo Fretless - - - - Slap Bass 1 - - - - - Slap Bass 2 - - - - - Synth Bass 1 - - - - - Synth Bass 2 - - - - - Violin - Violino - - - - Viola - - - - - Cello - Violoncelo - - - - Contrabass - Contrabaixo - - - - Tremolo Strings - - - - - Pizzicato Strings - - - - - Orchestral Harp - - - - - Timpani - Tímpano - - - - String Ensemble 1 - - - - - String Ensemble 2 - - - - - SynthStrings 1 - - - - - SynthStrings 2 - - - - - Choir Aahs - Coral Aahs - - - - Voice Oohs - Vozes Oohs - - - - Synth Voice - - - - - Orchestra Hit - - - - - Trumpet - Trompete - - - - Trombone - - - - - Tuba - - - - - Muted Trumpet - Muted Trompete - - - - French Horn - Trompa francesa - - - - Brass Section - Peça de Metal - - - - SynthBrass 1 - - - - - SynthBrass 2 - - - - - Soprano Sax - Sax Soprano - - - - Alto Sax - - - - - Tenor Sax - Sax Tenor - - - - Baritone Sax - Barítono Sax - - - - Oboe - Oboé - - - - English Horn - Corne Inglês - - - - Bassoon - Fagote - - - - Clarinet - Clarinete - - - - Piccolo - Flautim - - - - Flute - Flauta Transversal - - - - Recorder - Flauta Doce - - - - Pan Flute - Flauta de Pã - - - - Blown Bottle - Sopro de Garrafa - - - - Shakuhachi - - - - - Whistle - Apito - - - - Ocarina - - - - - Lead 1 (square) - Lead 1 (quadrado) - - - - Lead 2 (sawtooth) - Lead 2 (dente de serra) - - - - Lead 3 (calliope) - - - - - Lead 4 (chiff) - - - - - Lead 5 (charang) - - - - - Lead 6 (voice) - Lead 6 (voz) - - - - Lead 7 (fifths) - Lead 7 (quintas) - - - - Lead 8 (bass + lead) - - - - - Pad 1 (new age) - - - - - Pad 2 (warm) - - - - - Pad 3 (polysynth) - - - - - Pad 4 (choir) - Pad 4 (coro) - - - - Pad 5 (bowed) - - - - - Pad 6 (metallic) - Pad 6 (metalico) - - - - Pad 7 (halo) - - - - - Pad 8 (sweep) - - - - - FX 1 (rain) - - - - - FX 2 (soundtrack) - - - - - FX 3 (crystal) - - - - - FX 4 (atmosphere) - - - - - FX 5 (brightness) - - - - - FX 6 (goblins) - - - - - FX 7 (echoes) - - - - - FX 8 (sci-fi) - - - - - Sitar - - - - - Banjo - - - - - Shamisen - Sangen - - - - Koto - - - - - Kalimba - Quissange - - - - Bag pipe - SoproTubos - - - - Fiddle - - - - - Shanai - - - - - Tinkle Bell - - - - - Agogo - - - - - Steel Drums - Tambor de aço - - - - Woodblock - - - - - Taiko Drum - - - - - Melodic Tom - - - - - Synth Drum - - - - - Reverse Cymbal - - - - - Guitar Fret Noise - - - - - Breath Noise - Ruído de Respiração - - - - Seashore - - - - - Bird Tweet - Canto de Aves - - - - Telephone Ring - - - - - Helicopter - Helicoptero - - - - Applause - Aplausos - - - - Gunshot - - - - - GuiKeyboardSetupDialog - - - Piano Keyboard Settings - - - - - Dialog - Diálogo - - - - Setup Your Piano Keyboard - Configurar as teclas do seu teclado - - - - Right Notes - - - - - - sound: - Som: - - - - - volume: - volume: - - - - - Test - Teste - - - - Wrong Notes - - - - - Keyboard Note Range - - - - - Lowest Note: - - - - - - The note number between 0 and 127 - - - - - Highest Note: - - - - - Reset - Redefinir - - - - None - Nenhum - - - - Choose the right and wrong sound for your playing. - Escolha os sons de certo e errado para o seu jogo. - - - - You can use the PC keyboard instead of a MIDI keyboard; 'x' is middle C. - Você pode utilizar o teclado do PC como um teclado MIDI; 'x' é C central. - - - - Your keyboard range is <b>octaves %1</b> and <b>semitones %2</b>; 60 is middle C. - O alcance do seu teclado é de <b>%1 oitavas</b> e de <b>%2 semitons</b>; 60 é o C central. - - - - Oops, you have <b>0 notes</b> on your keyboard! - - - - - GuiLoopingPopup - - - Continuous Looping - - - - - Repeat End Bar: - - - - - Repeat Bar is disabled - - - - - Form - Formulário - - - - Repeat Bars: - - - - - End bar - Barra Final - - - - GuiMidiSettingsDialog - - - MIDI input && output - - - - - Select the MIDI devices - - - - - Midi Input Device: - - - - - Midi Output Device: - - - - - Settings - Configurações - - - - Master Gain: - - - - - Buffer Size: - - - - - Audio Driver: - - - - - Sample Rate: - Taxa de Amostragem: - - - - Sound Font - - - - - Load - - - - - Clear - - - - - Reverb - Reverberação - - - - Chorus - Coro - - - - Buffer Count: - - - - - Latency Fix - - - - - Latency - - - - - 0 (msec) - - - - - GuiMidiSetupDialog - - - None (PC Keyboard) - - - - - - - None - Nenhum - - - - Note: the Microsoft GS Wavetable Synth introduces an unwanted delay! - - - - - Midi Output Device: - - - - - %1 mSec - - - - - Enter a value for the latency fix in milliseconds - - - - - The latency fix works by running the music ahead of what you<br>are playing to counteract the delay within the sound generator.<br><br>You will need a piano <b>with speakers</b> that are <b>turned up</b>.<br><br>Enter the time in milliseconds for the delay (1000 mSec = 1 sec)<br>(For the Microsoft GS Wavetable SW Synth try a value of 150)<br>If you are not sure enter a value of zero. - - - - - Open SoundFont File for fluidsynth - - - - - SoundFont Files (*.sf2 *.sf3) - - - - - Midi Setup - - - - - No Sound Output Device selected; Choose a Midi Output Device - - - - - - The use of Midi Through is not recommended! - - - - - If you don't have a MIDI keyboard you can use the PC keyboard; 'X' is middle C. - - - - - Midi Input Device: - - - - - (Try a latency fix of 150msc) - - - - - GuiPreferencesDialog - - - Dialog - Diálogo - - - - Score Settings - - - - - Timing Markers - - - - - Follow stop point: - - - - - Show Note Names - - - - - Courtesy Accidentals - - - - - Follow Through Errors - - - - - Show color coded notes on the score - - - - - Color Coded Notes - - - - - Music Course - - - - - Show Tutor Help Pages - - - - - Language - Linguagem - - - - Language: - Linguagem: - - - - Preferences - Preferências - - - - Automatic (Recommended) - - - - - On the Beat - - - - - After the Beat - - - - - System Language - - - - - GuiSidePanel - - - Form - Formulário - - - - Book: - - - - - Song: - Canção: - - - - Skill - - - - - Listen - - - - - Play Along - - - - - Hands - - - - - Right - Direita - - - - Both - Ambos - - - - Left - Esquerda - - - - Adjust the volume of your piano - - - - - Repeat song - - - - - Rhythm Tapping with: - - - - - Parts - Partes - - - - Adjust the volume of the selected part - - - - - Mute the currently selected part - - - - - Rhythm Tap - - - - - Follow You - - - - - Mute your part when playing - - - - - - Drums - - - - - - Melody - - - - - Set as Right Hand Part - - - - - Set as Left Hand Part - - - - - Reset Both Parts - - - - - GuiSongDetailsDialog - - - - No channel assigned - - - - - Dialog - Diálogo - - - - - Song Details - - - - - MIDI Channels for left and right hand piano parts: - - - - - Right Hand MIDI Channel: - - - - - Left Hand MIDI Channel: - - - - - The left and right hand channels must be different - - - - - Both left and right hand channels must be none to disable this feature - - - - - Set the MIDI Channels to be used for left and right hand piano parts: - - - - - the left hand piano part is using MIDI Channels 1 - - - - - the right hand piano part is using MIDI Channels 1 - - - - - GuiTopBar - - - Form - Formulário - - - - Start playing music from the start - - - - - - Start and stop playing music - - - - - Speed: - Velocidade: - - - - Key: - Chave: - - - - Transpose: - Transpor: - - - - Start Bar: - - - - - Save this Bar Number - - - - - - Major - maior - - - - - Minor - menor - - - - Gb - - - - - Db - - - - - Ab - Lá ♭ - - - - - Eb - Mi ♭ - - - - - Bb - Si ♭ - - - - - C - C - - - - - F# - fá# - - - - - F - F - - - - - G - G - - - - - D - D - - - - - A - A - - - - - E - E - - - - - B - B - - - - G# - sol# - - - - C# - dó# - - - - D# - ré# - - - - Playing music from the beginning - - - - - QMessageBox - - - - Midi File Error - - - - - Cannot open "%1" - - - - - Midi file "%1" is corrupted - - - - - OpenGL support - - - - - This system does not support OpenGL which is needed to run Piano Booster. - - - - - QObject - - - L - L - - - - R - R - - - - Drums - - - - - Unknown - Desconhecido - - - - QtWindow - - - Piano Booster - Piano Booster - - - - - - PianoBooster Midi File Error - - - - - Cannot open "%1" - - - - - "%1" is not a Midi File - - - - - "%1" is not a valid Midi file - - - - - &Open... - &Abrir... - - - - Ctrl+O - Ctrl+O - - - - Open an existing file - Abre um arquivo existente - - - - E&xit - - - - - Ctrl+Q - Ctrl+Q - - - - Exit the application - Sair do programa - - - - &About - &Sobre - - - - Show the application's About box - - - - - &PC Shortcut Keys - - - - - The PC Keyboard shortcut keys - - - - - &Midi Setup ... - - - - - Ctrl+S - Ctrl+S - - - - Setup the Midi input and output - - - - - Piano &Keyboard Setting ... - - - - - Ctrl+K - Ctrl+K - - - - Change the piano keyboard settings - - - - - &Fullscreen - Tela C&heia - - - - Fullscreen mode - - - - - F11 - F11 - - - - &Show the Side Panel - - - - - Show the Left Side Panel - - - - - F12 - F12 - - - - Show Piano &Keyboard - - - - - Show Piano Keyboard Widget - - - - - &Preferences ... - &Preferências ... - - - - Settings - Configurações - - - - Ctrl+P - - - - - Song &Details ... - - - - - Song Settings - - - - - Ctrl+D - - - - - Shift+F1 - - - - - Alt+F1 - - - - - &File - &Arquivo - - - - &View - &Exibir - - - - &Song - &Canção - - - - Set&up - - - - - - &Help - &Ajuda - - - - - Piano Booster Help - - - - - &Website - - - - - Piano Booster Website - - - - - &%1 %2 - &%1 %2 - - - - <h3>Getting Started</h3> - - - - - <p>You need a <b>MIDI Piano Keyboard </b> and a <b>MIDI interface</b> for the PC. If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'X' is middle C.</p> - - - - - <p>To hear the music you will need a <b>General Midi sound synthesizer</b>. The "Microsoft GS Wavetable software synthesizer" that comes with Windows can be used but it introduces an unacceptable delay (latency). In Linux you can use - - - - - or - - - - - <p>PianoBooster works best with MIDI files that have separate left and right piano parts using MIDI channels 3 and 4. - - - - - <h3>Setting Up</h3> - - - - - <p>First use the <i>Setup/Midi Setup</i> menu and in the dialog box select the MIDI input and MIDI output interfaces that match your hardware. - - - - - Next use <i>File/Open</i> to open the MIDI file ".mid" or a karaoke ".kar" file. Now select whether you want to just <i>listen</i> to the music or <i>play along</i> on the piano keyboard by setting the <i>skill</i> level on the side panel. Finally when you are ready click the <i>play icon</i> (or press the <i>space bar</i>) to roll the music. - - - - - <h3>Hints on Playing the Piano</h3><p>For hints on how to play the piano see: - - - - - Piano Hints - - - - - <h3>More Information</h3><p>For more help please visit the PianoBooster - - - - - website - - - - - the PianoBooster - - - - - FAQ - - - - - and the - - - - - user forum - - - - - About Piano Booster - - - - - <b>PianoBooster - Version %1</b> <br><br> - - - - - <b>Boost</b> your <b>Piano</b> playing skills!<br><br> - - - - - Copyright(c) L. J. Barman, 2008-2020; All rights reserved.<br> - - - - - Copyright(c) Fabien Givors, 2018-2019; All rights reserved.<br> - - - - - This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br> - - - - - This program also contains RtMIDI: realtime MIDI i/o C++ classes<br> - - - - - Copyright(c) Gary P. Scavone, 2003-2019; All rights reserved. - - - - - space - Espaço - - - - PC Keyboard ShortCuts - - - - - <h2><center>Keyboard shortcuts</center></h2><p>The following PC keyboard shortcuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' > - - - - - <tr><th>Action</th><th>Key</th></tr> - - - - - Choose the right hand - - - - - Choose both hands - - - - - Choose the left Hand - - - - - Play from start toggle - - - - - Play Pause Toggle - - - - - - Increase the speed by 5% - - - - - Change to the Next Song - - - - - Change to the Previous Song - - - - - Change to the Next Book - - - - - Change to the Previous Book - - - - - <tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br> - - - - - Open Midi File - Abrir Arquivo MIDI - - - - Midi Files - Arquivos MIDI - - - From b6460488949ab6195fdfc0226cc92003f3a86505 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Wed, 25 Nov 2020 21:17:20 +0000 Subject: [PATCH 69/84] Updated the piano booster BUILD README faq markdown docs. --- BUILD.md | 99 ++++++++++--------- README.md | 187 +++++++++++------------------------- doc/faq.md | 277 +++++------------------------------------------------ 3 files changed, 131 insertions(+), 432 deletions(-) diff --git a/BUILD.md b/BUILD.md index 4c2dd6cd..52b4aef4 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,90 +1,99 @@ -# Linux and BSD Unix +# Build instructions for Linux and BSD Unix -Ensure that the build required packages are installed. Full list of them you can find [here](pkgs). +Ensure that the following packages are installed: +`build-essential`, `cmake`, `pkg-config`, `libftgl-dev`, `qtbase5-dev`, `qttools5-dev`, `librtmidi-dev` , `libfluidsynth-dev`, `fluid-soundfont-gm` -Then type: -`cmake .` -or +To generate a project makefile using CMake, create a build folder +and then run CMake from it: +``` +$ mkdir build +$ cd build +$ cmake .. +``` -`cmake . -DCMAKE_INSTALL_PREFIX="/usr"` +To compile the PianoBooster source code type: -`make` +`make -j$(nproc)` -Finally as root type: +The pianobooster binary executable is now in a new build subdirectory. Piano Booster is designed to run in place so you can type `build/pianobooster` to start running the program. -`make install -C build` +(Optional) If you wish to install PianoBooster as root type: -(The pianobooster binary executable is now in the "build" subdirectory.) +`make install` -To build a debug version create a dir called "debug" and change to that dir and then type: +There is no make uninstall command but the files that have been installed are listed in a file called `install_manifest.txt` which can then be used to manually delete the installed files. -`cmake -DCMAKE_BUILD_TYPE=Debug .` +To build a debug version create a directory called "debug" and change to that dir and then type: -(Alternatively you can use qmake followed by make.) +`cmake -DCMAKE_BUILD_TYPE=Debug ..` -See [DEB](pkgs/deb) for more details. -See [RPM](pkgs/rpm/pianobooster.spec) for more details. +# Build instructions for macOS -See [ARCH](pkgs/arch/PKGBUILD) for more details. +Install the latest Xcode (from Apple Developer Connection, free registration required). -See [TGZ](pkgs/slack) for more details. +Install CMake and QT libraries via Homebrew: -# macOS +`$ brew install cmake qt5 ftgl pkg-config fluid-synth` -Install latest Xcode (from Apple Developer Connection, free registration required). +To generate the project makefile first create a `build` directory +and then from that directory type: -Install CMake and QT libraries via Homebrew: +`cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt)"` -`$ brew install cmake qt5 ftgl jack` +To compile the PianoBooster source code type: + +`make` -Generate XCode project file via CMake: +To copy the language translations into the build directory type: -`$ cmake -G Xcode . -DCMAKE_PREFIX_PATH=$(brew --prefix qt)` +`make install-translations` -Open the project file in XCode, set whatever options you like (universal or single architecture, -debug or release etc.) and compile. -To make a self contained application bundle use QT's macdeployqt tool (included in QT 4.5.0). +To make a self contained application bundle use QT's macdeployqt tool (included in QT). -# Windows +`$(brew --prefix qt)/bin/macdeployqt build/pianobooster.app -dmg` -To compile in Windows install the Open Source version of Qt and CMake and optionally Geany. -When installing Qt select the option to download and install the MinGW compiler. Open the -Qt Command Prompt and then change to the "PianoBooster" directory and then type the -command below: -`"C:\Program Files\CMake 2.6\bin\cmake.exe" -G "MinGW Makefiles" .` + +# Build instructions for Windows + +To compile in Windows install the Open Source version of Qt and CMake. +When installing Qt select the option to download and install the MinGW compiler. Open the Qt Command Prompt and change to the "PianoBooster" source code directory and then create a `build` directory and then from that directory type: + +`cmake.exe -G "MinGW Makefiles" ..` Once this is completed type: `make` -Or alternatively you can install QtCreator and then open the pianobooster.pro. +Or alternatively you can install QtCreator and then open the `CMakeLists.txt`. # Build options -**USE_FTGL**: link with ftgl; enabled by default; disabling notes localization. +Using `cmake` without any flags defaults to the recommended build options. +However the following build options below can be changed by using the `-D` flag to `cmake`. + +**WITH_INTERNAL_FLUIDSYNTH:** build with an internal FluidSynth sound generator [Default:ON] -**NO_DOCS**: do not install documents; disabled by default. +**USE_BUNDLED_RTMIDI:** Build with bundled rtmidi (for older distributions only) [Default: OFF] -**NO_LICENSE**: do not install license; disabled by default. +**USE_FTGL:** Build with ftgl for notes localization [Default:ON] -**NO_CHANGELOG**: do not install changelog; disabled by default. +**USE_SYSTEM_FONT:** Build with system font [Default: OFF] -**WITH_MAN**: install man page; disabled by default. +**USE_JACK:** Build with Jack. The use of JACK is not required other than for BSD Unix. [Default: OFF] -**INSTALL_ALL_LANGS**: install all languages; disabled by default for cmake and always enabled for qmake. +**DATA_DIR**: Build with specified data directory; [Default:"share/games/pianobooster"] -**USE_BUNDLED_RTMIDI**: build with bundled (not system) rtmidi. This is only required -for older distributions that do not include the system rtmidi; disabled by default. +**NO_LANGS**: Do not install languages; [Default: OFF] -**USE_SYSTEM_FONT**: do not use and do not install bundled font, use system font instead; enabled by default. +**NO_DOCS**: Do not install documents [Default: OFF] -**USE_FONT**: build with specified font; null by default. +**NO_LICENSE**: Do not install license [Default: OFF]. -**DATA_DIR**: build with specified data directory; "share/games/pianobooster" is default. +**NO_CHANGELOG**: Do not install changelog [Default: OFF]. -**NO_LANGS**: do not install languages; disabled by default. +**WITH_MAN**: Install man page [Default: OFF]. diff --git a/README.md b/README.md index ed1931d5..c0abbc09 100644 --- a/README.md +++ b/README.md @@ -1,103 +1,63 @@ ![logo](logo/Logotype_horizontal.png) -INTRODUCTION -============ -Piano Booster is a MIDI file player that displays the musical notes AND teaches you how to -play the piano. You can play along to any track in the midi file and PianoBooster will -follow YOUR playing. PianoBooster makes sight reading fun! - -Piano Booster is a free (Open Source) program available from: - -Original work by Louis J. Barman can be found here: - -A huge thanks to him and to all the contributers. - -WINDOWS -======= - -To run Piano Booster you need a MIDI Piano Keyboard and a MIDI interface for the PC. (If you -don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'x' is -middle C - but a MIDI piano is recommend). - -To hear the music you will need a General Midi compatible sound synthesizer. Unfortunately -the "Microsoft GS Wavetable software synthesizer" that comes with Windows XP introduces an -unacceptable delay (latency) between pressing a note and hearing the sound. For this reason -the use of "Microsoft GS Wavetable software synthesizer" is not recommend. Please see the -forum for possible solutions. - - -macOS -===== - -To run Piano Booster you need a MIDI Piano Keyboard and a MIDI-USB interface if the keyboard -does not have a USB interface. (If you don't have a MIDI keyboard you can still try out -PianoBooster using the computer's keyboard, 'x' is middle C). - -To hear music from the computer you will need a General Midi compatible sound synthesizer. -While there are many possible choices for the Mac (Timidity, FluidSynth or an external MIDI -Synth), the easiest way is to use SimpleSynth, which can be obtained for free (MIT license) -from: - -This must be started before Pianobooster, and also allows to load custom Soundfonts. - -Double Click on the DMG file containing PianoBooster, then just drag the pianobooster.app -file wherever you wish (/Application folder is suggested). - -[pianobooster-mac-0.6.5-alpha1.dmg](https://github.com/chrisballinger/PianoBooster/releases/tag/v0.6.5-alpha1) (not official) - -LINUX and BSD UNIX -================== - -To run Piano Booster you need a MIDI Piano Keyboard and a MIDI interface for the PC. (If you -don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'x' is -middle C - but a MIDI piano is recommend). - -To hear music from the computer you will need a General Midi compatible sound synthesizer. - -On Linux to start fluidsynth type the following on a terminal window. - -``` -fluidsynth -g 1.0 -a alsa -o midi.alsa_seq.id=fs2 /usr/share/sounds/sf2/FluidR3_GM.sf2 -``` -An alternatively you can used TiMidity by type the following on a terminal window. - -``` -timidity -iA -B2,8 -Os -EFreverb=0 -``` - -MIDI FILES -========== +# INTRODUCTION -To run PianoBooster you will need some Midi files preferably with right and left piano -parts on channels 4 and 3. Some high quality demo MIDI files that are compatible with -PianoBooster are available in doc/courses/*/ directories. - -INSTRUCTIONS -============ - -The MIDI input device is used to connect your piano keyboard to the PC. First ensure that your -piano keyboard is connected up to the PC using a MIDI USB adaptor (or through a PC sound card). -Once the Piano Booster application starts up you must first setup the midi input and midi -output interface from the Setup menu. Next open a midi file ".mid" or a karaoke ".kar" file -using File/Open from the Piano Booster menu. Now choose the skill level, if you want to -just listen to the midi music - select 'listen', to play along with a midi keyboard with -the music following your playing - select 'follow you'. Finally click on the Play icon to +Piano Booster is a MIDI file player that displays the musical notes AND teaches you how to +play the piano. +The difference between playing along to a CD or a standard MIDI file +is that Piano Booster listens and reacts to what you are playing on a +MIDI piano keyboard. +You can play along to any track in the MIDI file and PianoBooster will +follow your playing. Piano Booster makes learning to sight read fun! + +Piano Booster is a free (Open Source) program, available from: + +# FEATURES + +* The musical accompaniment follows your playing, if you stop then so does the music. +* Play a single hand and Piano Booster will play the other hand in time with you. +* Change the speed of playback to match your playing ability. +* Transpose +/- 12 semitones without stopping the play back. +* Plays any standard MIDI or KAR file. +* Play along to any instrument in the MIDI file. +* Adjust the volume of the current part or the volume of your piano part. +* Measures the accuracy of your playing. +* Timing markers show if you are playing ahead or behind the beat. +* A different instrument sound is used for the right and wrong notes that you play on the piano. + + +# GETTING STARTED + +Binary executable version of Piano Booster are available for Windows, MacOS and Linux, which can be downloaded from the [Piano Booster website](). Piano booster now includes a built in version of the FluidSynth sound generator. In order for FluidSynth to work and to hear sound a `.sf2` (sound font) file is required which must be loaded using the MIDI Setup/Fluidsynth menu of Piano Booster. A recommended General Midi (GM) sound font file is the `FluidR3_GM.sf2` + +To play along with Piano Booster you will need a MIDI Piano Keyboard. +If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'x' is middle C - but a MIDI piano is highly recommended. +After connecting the MIDI keyboard you need to setup the midi input device using +the Piano Booster MIDI setup menu. + +Piano Booster now comes with a music teaching course called Booster Music. +The MIDI files for this course are in a folder called `BoosterMusicBooks` located in the `Music` folder on your PC. +The Booster Music teaching course is also available on the [Piano Booster website](). +Use the File/Open from the Piano Booster menu to load the MIDI file ".mid" or a karaoke ".kar" file. + +Finally choose the skill level, if you want to +just listen to the MIDI music - select 'listen', to play along with a MIDI keyboard with +the music following your playing - select 'follow you' and then click on the Play icon to start. -It is recommended that you shut down all other programs while running Piano Booster so that -the scrolling notes move smoothly across the screen. - -TRANSLATIONS -============ +# TRANSLATIONS PianoBooster isn't translated in your language? Help us, and we will gladly ship new translations with it. -LICENSE -======= +Please see the [Web-based continuous localisation](https://hosted.weblate.org/projects/pianobooster/) (Weblate) to contribute to the language translations. +The translation required for the Piano Booster app are located [here](https://hosted.weblate.org/projects/pianobooster/pianobooster/) and the translation for the Booster Music course are located [here](https://hosted.weblate.org/projects/pianobooster/boostermusic/). + -Piano Booster is fully copyrighted by the author and all rights are reserved. +# LICENSE + +Piano Booster is fully copyrighted by the authors and all rights are reserved. PianoBooster is free software (Open Source software): you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -112,63 +72,26 @@ The Piano Booster Documentation and Music are released under the Creative Common [PianoBooster License](license.txt) -SOURCE CODE -=========== - -Download and uncompress the archive file below and then follow the instructions in -the *BUILD.md* file. - -[PianoBooster releases](https://github.com/captnfab/PianoBooster/releases) +# SOURCE CODE As part of GNU General Public License the source code for PianoBooster is available from the GitHub site . See the [BUILD.md](BUILD.md) for instructions on how to build the source code. -DEBUGGING -========= - -To get a backtrace, build Piano Booster with DEBUG option - -type: - -`cmake -DCMAKE_BUILD_TYPE=Debug .` - -type: - -`gdb ./pianobooster` - -then: - -`run` - -then: - -`bt` - -DOCUMENTATION -============= - -[Documentation](doc/README.md) - -[Changelog](Changelog.txt) -BUGTRACKER -========== +# BUGTRACKER [Issues](https://github.com/captnfab/PianoBooster/issues) -CONTRIBUTING -============ +# CONTRIBUTING -PianoBooster is community developing project since 2018. You're welcome with patches: +PianoBooster is community developing project. You're welcome with patches: [Pull Requests](https://github.com/captnfab/PianoBooster/pulls) We have many [issues](https://github.com/captnfab/PianoBooster/issues) always. -We are looking for musicians to make music for pianobooster. It can be educational courses or other melodies: [music sources](music/src). For more information look at [README.md](doc/courses/README.md) and [faq.md](doc/faq.md). +We are looking for musicians to make music for pianobooster. It can be educational courses or other melodies: [music sources](music/src). -PLATFORMS -========= -We support Linux, BSD Unix and Windows platforms. We do not have macOS developers at the moment. +Thanks to everyone who has already made contributions to the Piano Booster project. diff --git a/doc/faq.md b/doc/faq.md index 0bb7dc35..934fa8a4 100644 --- a/doc/faq.md +++ b/doc/faq.md @@ -1,269 +1,36 @@ # Frequently Asked Questions ## Where are the music files? +Piano Booster now comes with it's own MIDI music course called `Booster Music`. The first time you run Piano Booster a music folder called `BoosterMusicBooks` is created in your `Music` folder on your PC. The Booster Music course is also available on the Piano Booster website. Also many other MIDI files that work with Piano Booster can be found by searching the web. -Piano Booster uses MIDI music files (.mid) or karaoke files (.kar) to play music. +## There is no sound, what is wrong? +First insure that you have installed the latest version of Piano Booster that includes the integrated FluidSynth sound generator. To check this open the Piano Booster MIDI setup dialogue window and confirm there is a FluidSynth tab shown. You also need to ensure that there is a SoundFont file loaded, the recommended sound font is called `FluidR3_GM.sf2`. -See [this thread](http://piano-booster.2625608.n2.nabble.com/Pieces-of-music-that-I-have-enjoyed-playing-please-add-to-this-list-td1600345.html) -on the forum which list useful source of midi files on the net. -Please add to this list if you find any pieces of music that you enjoy playing. +## How do I connect a MIDI piano keyboard? +First plug the MIDI keyboard into your PC, for older MIDI keyboards that do not use USB MIDI you will need to use a MIDI adaptor. +After connecting the MIDI keyboard open the Piano Booster MIDI setup menu and +then select the MIDI input interface that matches your keyboard. -## Community Favorites MIDI +## Does PianoBooster work with Jack? +JACK is not required for Piano Booster to work correctly since Piano Booster can already talk directly to a MIDI sound generator and a MIDI keyboard. JACK is mainly used in advanced music studio setups where there are multiple different sound sources inputs and outputs that need connecting together. JACK is also required on BSD Unix. Piano Booster is not normally compiled with support for JACK so if you really want to use JACK you will need to recompile PianoBooster from the source code. -Google search: Taylor's Traditional Tune Book, and download the "English Tunes". They are only single melody to play with quite good MIDI arrangements. Barry is quite fond of key changes which make it quite challenging. Especially "I Saw Three Ships." +## Will Piano Booster work with a real piano? +No, it will only work with a MIDI piano keyboard. As this is technically very difficult there are no plans to add this feature. -[Bach collection](https://www.mutopiaproject.org/cgibin/make-table.cgi?collection=bachgb&preview=1) and others from repository of sheet music - [Mutopia Project](https://www.mutopiaproject.org/) -[Miracle Piano Tutor](http://piano-booster.2625608.n2.nabble.com/attachment/4582249/0/teachmid.tar.gz) +## How do I start start a sound generator on Linux? +If you don't have a version of PianoBooster that includes the integrated FluidSynth (recommended) you can start FluidSynth manually. First install the FluidSynth `fluidsynth` and the GM sound font `fluid-soundfont-gm` packages and then run the following command line: -## CC and MIDI: What Songs are Legal to Share +``` +fluidsynth -g 1.0 -a alsa -o midi.alsa_seq.id=fs2 /usr/share/sounds/sf2/FluidR3_GM.sf2 -Piano Booster will only distribute MIDI files submitted to the project under the Creative Commons (CC) License. +``` +An alternatively you can used TiMidity by typing the following in a terminal window: -MIDI files created by hand constitute "original work". Original work can be released under the CC license. (see [forum discussion](http://piano-booster.2625608.n2.nabble.com/Creating-music-for-PianoBooster-using-MMA-Everyone-can-help-td4167350.html#a4167350)) - -MIDI files copied from existing works, (either digital copies, format-shifted copies, or 'recording' the playback output of works) are subject to the copyright laws under which the original works were released. - -... (other cases? please add relevant links, discussion) - -## Making MIDI - -Although MIDI files can be generated in several ways, this guide covers a method that also produces sheet music and accompaniment. -The general process: write "abc notation" of music (ABC file); convert ABC file to Solo MIDI and Sheet Music; write accompaniment "hints" (MMA file); convert solo MIDI and MMA file to final MIDI (ready to practice playing). - -### ABC Notation - -The ABCPlus notation describes the notes to be played by the right and left hands in plain text ascii-character file. - -[Wiki](http://en.wikipedia.org/wiki/Abc_notation) - -[Site](http://abcnotation.com/) - -[The ABC Plus Project](http://abcplus.sourceforge.net/) - -[Examples](http://abcnotation.com/examples) - -### ABC to MIDI Conversion - -#### Generating MIDI file - -The ABC file is converted to a MIDI file using the abc2midi tool. This creates a MIDI file with right and left hand parts. - -#### Generating sheet music - -The ABC file can also be converted to a sheet music image with the abc2mtex tool. - -### Auto-generated Accompaniment - -The MMA software can greatly simplify creating accompanying "background" music. - -[Musical MIDI Accompaniment](http://www.mellowood.ca/mma/) - -## Open a MIDI File - -Select File -> Open from PianoBooster main menu and then choose the .mid file or the .kar file. If you put all your MIDI files in adjacent directories then each directory will appear as books that can be accessed using the -book drop down list- and then each MIDI file can be accessed from the song drop down list. - -## Listen to the MIDI music - -When learning a new piece of music it is recommended that you first listen to the piece of music to hear how it should sound. Set the /skill level to listen/ and then click the /play stop button icon/. To stop the music click the /play/stop button again. To play the music from the beginning click on the /play from start button/. - -## Play along with the MIDI music - -Piano Booster has been specially designed so that you can play along with the MIDI music using a piano keyboard. Ensure that MIDI input is correctly set up. You can choose which hand to play select 'right', 'both' or 'left' from the hands selection. If you choose to play just a single part then Piano Booster will automatically play the other part for you. There are two different ways of playing along the 'follow you' mode and the 'play along' mode. When learning a new piece of music the follow you mode makes it much easier but you should progress to the 'play along' method as this ensure that you play with the correct timing. - -## Playing the piano with the music 'following your' playing - -Select the 'follow you' option and choose which hand you want play and then click the play button to start the accompaniment playing. -The music will start playing and at the same time you should playing along to the notes shown on the screen. - -## Connecting MIDI Hardware - -While Piano Booster can take input from the computer keyboard, it is recommended to use a MIDI capable keyboard or piano. This section assumes you are using a keyboard or piano with either a USB MIDI port or MIDI input/output ports with a MIDI/USB adapter. - -MIDI or Musical Instrument Digital Interface allows electronic musical equipment to communicate with each other. MIDI works like a pipeline; data (the music notes) "flows" in one direction. Every MIDI device port is labeled as either IN/input or OUT/output. The Output of the first device goes to an Input of the next device. - -If your keyboard has a USB MIDI port, then a standard USB cable to the computer will provide both input from keys and output to the keyboard speakers (if there are speakers). - -If the keyboard as MIDI IN/OUT ports, then the OUTPUT port of keyboard must be connected the INPUT of the USB MIDI adapter. To hear the Piano booster output on the keyboard speakers, the OUTPUT of the USB adapter must be connected to the INPUT port on the keyboard. - -## How do I hear the sound on Linux, BSD Unix? - -To hear the sound Piano Booster needs a MIDI sound generator, -there are two different General Midi sound generators available on Linux, 'fluidsynth' and 'timidity'. - -It's recommends to use 'fluidsynth' for BSD Unix. - -To install fluidsynth you must install the following packages 'fluidsynth' 'fluid-soundfont-gm' and -'fluid-soundfont-gs' using your favourite package manager - -or - -Arch Linux: 'fluidsynth' 'soundfont-fluid'. -BSD Unix: 'fluidsynth' 'fluid-soundfont'. - -To start the fluidsynth sound generator copy and paste the following command line (one very long command line). - -Using ALSA: - -`fluidsynth -i -s -g 0.4 -C 0 -R 0 -r 44100 -c 6 -z 128 -l -a alsa -o audio.alsa.device=plughw:0 -o midi.alsa_seq.id=fs /usr/share/sounds/sf2/FluidR3_GM.sf2 /usr/share/sounds/sf2/FluidR3_GS.sf2` - -Using JACK: - -`fluidsynth -i -s -g 0.4 -C 0 -R 0 -r 44100 -c 6 -z 128 -l -a jack -o midi.alsa_seq.id=fs -j /usr/share/sounds/sf2/FluidR3_GM.sf2 /usr/share/sounds/sf2/FluidR3_GS.sf2` - -BSD Unix does not have ALSA, so you should use JACK: - -`fluidsynth -i -s -g 0.4 -C 0 -R 0 -r 44100 -c 6 -z 128 -l -a jack -j /usr/local/share/sounds/sf2/FluidR3_GM.sf2 /usr/local/share/sounds/sf2/FluidR3_GS.sf2` - -*Note:* Path `/usr/share/sounds/sf2` is Debian, Ubuntu, OpenSuse, Slackware, etc. For Alt Linux, Arch Linux, CentOS, Fedora, Mageia, OpenMandriva, ROSA, etc. you must use path `/usr/share/soundfonts` instead. BSD Unix uses `/usr/local/share/sounds/sf2`. - -*Note:* JACK in BSD Unix cannot be started realtime by user, but it starts realtime by default, user does not have permissions. Disabling realtime helps. How to disable realtime or allow user to use realtime please ask your favorite BSD Unix forum. - -If you have a fast machine then you can leave out the flags `-C 0 -R 0 -r 22050` which turns off the reverb, chorus and reduce the sample rate. - -The flags `-c 6 -z 128` control the latency try `-c 5 -z 128` for less latency, -but at the risk of audio drop outs. - -The flags `-o audio.alsa.device=plughw:0` bypasses the Pulse Audio layer -which caused a lot of latency delay but unfortunately these flags may also -bypass the desktop volume controls. - -Flag `-i`: don't read commands from the shell. Flag `-s`: start FluidSynth as a server process. Flag `-g 1`: set the master gain = 1. - -Flag `-a alsa` or `-a jack`: the name of the audio driver to use. - -Flag `-j`: attempt to connect the jack outputs to the physical ports. - -Flag `-l`: don't connect to LASH server. - -For more information on running fluidsynth with low latency see -[this page](https://github.com/FluidSynth/fluidsynth/wiki/LowLatency). - -On PianoBooster set the Setup/Midi Setup/Midi Output Device: to `FLUID Synth (fs):0` - -If you get problems with unsteady playback or the audio cutting out then try closing all other programs, -turning off your wireless network and unplug any network cable. - -If you get an error, make sure to have snd-seq-midi kernel module loaded in your -system (sudo modprobe snd-seq-midi). - -You might prefer to use qsynth as GUI interface to fluidsynth for easy setting -of Reverbs, chorus effects, etc. - -Using 'timidity': [wrapper script and desktop file](https://github.com/captnfab/PianoBooster/tree/master/tools/timidity). - -Using 'fluidsynth': [wrapper script and desktop file](https://github.com/captnfab/PianoBooster/tree/master/tools/fluidsynth). - -## How do I hear the sound on Arch Linux? - -Timidity in Arch Linux does not work out of box. -To use Freepats (freepats-general-midi package) with TiMidity, add the following lines to /etc/timidity++/timidity.cfg: - -`soundfont /usr/share/soundfonts/freepats-general-midi.sf2` - -[Arch Linux Wiki](https://wiki.archlinux.org/index.php/Timidity) - -Potentially needs to disable pulseaudio to use ALSA. - -JACK can be used by jack or jack2. jack has better debug logs than jack2 to see errors, but they work equally. -But JACK does not work out of box, needs to configure it. - -run: - -`sudo sed -i "s|# End of file|@audio - rtprio 99|g" /etc/security/limits.conf` - -run: - -`sudo usermod -a -G audio exton`, where exton is user - -log out and log in - -stop pulseaudio: - -`systemctl --user stop pulseaudio.socket` - -run script: - -`pianobooster-fluidsynth` - -start pulseaudio after: - -`systemctl --user start pulseaudio.socket` - -*Note:* Fluidsynth works without JACK with ALSA out of box even without conflicts with pulseaudio. - -## How do I hear the sound on Mac? - -While there are many possible choices General Midi sound generators for the Mac -(Timidity, FluidSynth or an external MIDI Synth), the easiest way is to use -SimpleSynth, which can be obtained for free (MIT license) frome [here](http://notahat.com/simplesynth). - -This must be started before Pianobooster, and also allows to load custom Soundfonts. - -## How to use Fluidsynth with JACK - -Just enable `use_jack="1"` in /usr/bin/pianobooster-fluidsynth. If `use_jack="0"`, then JACK is disabled. - -## Why is there a delay between pressing the note and hearing the sound? - -The delay between pressing the note and hearing the sound is called the latency. -Unfortunately some sound generators introduce a latency delay between receiving -the command to play a note and producing the audible sound. This unwanted delay -can make it extremely difficult to play along with the music. - -The MS GM Wavetable Synthesizer that comes with Windows also suffers from this -problem as it introduces a noticeable delay of 150 milliseconds (0.15 seconds). - -## My sound generator has high latency, what can I do? - -The first thing to do is to turn up the speakers on your piano keyboard -(provided that you are using a piano keyboard that has it's own sound generator) -so that you can hear what you are playing without a delay. -Then aim to use the **'Play Along'** mode as much as possible. - -To use the **'Follow You'** mode you will need set the latency value (see the next question) -or alternately use a realtime sound generator with low latency (recommended, For Linux, BSD Unix see -[fluidsynth Low Latency page](https://github.com/FluidSynth/fluidsynth/wiki/LowLatency). +``` +timidity -iA -B2,8 -Os -EFreverb=0 +``` ## What is the latency fix? - -The Latency fix aims to counteract the latency delay of the sound generator by -deliberately running the musical accompaniment several milliseconds ahead of -what you are playing on the piano to try and cancel out this delay within the -sound generator. - -The latency value is entered from the 'settings/Midi setup' page. -If you are using the MS GM Wavetable Synthesizer then try entering a value for the delay of 150 mSec. - -Whenever you set a value for the latency then the instrument sound -for your piano is automatically set to 'None' to mute -the delayed sound of your playing through the sound generator. -Remember to turn up the volume of the speakers on your piano. -If your piano does not have it's own speakers or you are still -using the PC keyboard then this fix will not work, sorry. - -Unfortunately when you stop playing using the **'Follow You'** mode -then the music will stop in the wrong place (because the music -was deliberately being run ahead of your playing). -The use of the latency fix is less than ideal and so the **best** -solution is to change to different realtime sound generator that has a low latency delay. - -Optional workaround: Try using a real time kernel. - -## What value should I use for the latency fix? - -To work out the value of the delay first enable the timing markers from the preferences menu. -(These are the white crosses that are drawn over the notes that show *when* you pressed the note). -Then using the **'Play Along'** mode look at the timing markers to see -if you are playing ahead or behind the notes. -If you are playing consistently behind the beat then try increasing -the latency value by say 100 milliseconds. -Conversely if the timing markers show you are playing ahead of the beat -then try decreasing the latency slightly. - -It is always best to use a value that shows you are -playing *slightly ahead of the beat* rather than behind the beat. -(This is because Piano Booster in **'Follow You'** mode will slow down -the music if you are playing behind the beat.) - -To disable the latency fix enter a value of zero. +The latency fix is no longer required since Piano Booster on Windows now includes the integrated FluidSynth sound generator which works in real-time and has low latency. +Previously on windows the latency fix was required when using the MS GM Wavetable Synthesizer sound generator which has very high latency. From b26484bd970f4780701e758c956efffd79a5ef25 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Wed, 25 Nov 2020 21:29:32 +0000 Subject: [PATCH 70/84] Changed the URL from captnfab to pianobooster ahead of the repo transfer. --- README.md | 10 +++++----- doc/courses/README.html | 4 ++-- doc/courses/README.md | 4 ++-- music/src/BeginnerCourse/01-StartWithMiddleC.mma | 2 +- music/src/BeginnerCourse/02-ChordOfCMajor.mma | 2 +- music/src/BeginnerCourse/04-ClairDeLaLune.mma | 2 +- music/src/BeginnerCourse/05-ChordOfFMajor.mma | 2 +- music/src/BeginnerCourse/06-DownAndUp.mma | 2 +- music/src/BeginnerCourse/Booster44Lib.mma | 2 +- music/src/BoosterMusic/03-SkipToMyLou.mma | 2 +- pianobooster.6 | 12 ++++++------ src/QtMain.cpp | 2 +- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index c0abbc09..bba70d9c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # INTRODUCTION Piano Booster is a MIDI file player that displays the musical notes AND teaches you how to -play the piano. +play the piano. The difference between playing along to a CD or a standard MIDI file is that Piano Booster listens and reacts to what you are playing on a MIDI piano keyboard. @@ -75,21 +75,21 @@ The Piano Booster Documentation and Music are released under the Creative Common # SOURCE CODE As part of GNU General Public License the source code for PianoBooster is available from -the GitHub site . See the [BUILD.md](BUILD.md) for +the GitHub site . See the [BUILD.md](BUILD.md) for instructions on how to build the source code. # BUGTRACKER -[Issues](https://github.com/captnfab/PianoBooster/issues) +[Issues](https://github.com/pianobooster/PianoBooster/issues) # CONTRIBUTING PianoBooster is community developing project. You're welcome with patches: -[Pull Requests](https://github.com/captnfab/PianoBooster/pulls) +[Pull Requests](https://github.com/pianobooster/PianoBooster/pulls) -We have many [issues](https://github.com/captnfab/PianoBooster/issues) always. +We have many [issues](https://github.com/pianobooster/PianoBooster/issues) always. We are looking for musicians to make music for pianobooster. It can be educational courses or other melodies: [music sources](music/src). diff --git a/doc/courses/README.html b/doc/courses/README.html index 3b9521ad..c42369ce 100644 --- a/doc/courses/README.html +++ b/doc/courses/README.html @@ -2,7 +2,7 @@

Piano Booster Music

These pieces of music have been created to work with PianoBooster and have the creative commons copyright. -All the music is available here.

+All the music is available here.

Please add to the music on this page - everyone can help. For more information see this forum post. @@ -189,5 +189,5 @@

07-AmazingGrace

midi file

-

All the music on this page is available here. +

All the music on this page is available here. This free sheet music can be used for beginner piano lessons with PianoBooster.

diff --git a/doc/courses/README.md b/doc/courses/README.md index 21eb852b..c7037c9e 100644 --- a/doc/courses/README.md +++ b/doc/courses/README.md @@ -2,7 +2,7 @@ These pieces of music have been created to work with _PianoBooster_ and have the creative commons copyright. -All the music is available [here](https://github.com/captnfab/PianoBooster/raw/master/music/BoosterMusicBooks.zip). +All the music is available [here](https://github.com/pianobooster/PianoBooster/raw/master/music/BoosterMusicBooks.zip). _Please add to the music on this page - everyone can help._ For more information see this [forum post](http://piano-booster.2625608.n2.nabble.com/Creating-music-for-PianoBooster-using-MMA-Everyone-can-help-td4167350.html). @@ -189,5 +189,5 @@ For **Frere Jacques** introduces the use of playing both hands together with a v [midi file](BoosterMusic/07-AmazingGrace.mid) -All the music on this page is available [here](https://github.com/captnfab/PianoBooster/raw/master/music/BoosterMusicBooks.zip). +All the music on this page is available [here](https://github.com/pianobooster/PianoBooster/raw/master/music/BoosterMusicBooks.zip). This free sheet music can be used for beginner piano lessons with _PianoBooster_. diff --git a/music/src/BeginnerCourse/01-StartWithMiddleC.mma b/music/src/BeginnerCourse/01-StartWithMiddleC.mma index 4ddd5297..81db76fe 100644 --- a/music/src/BeginnerCourse/01-StartWithMiddleC.mma +++ b/music/src/BeginnerCourse/01-StartWithMiddleC.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license MidiTName Start With Middle C diff --git a/music/src/BeginnerCourse/02-ChordOfCMajor.mma b/music/src/BeginnerCourse/02-ChordOfCMajor.mma index f300579e..f21c2873 100644 --- a/music/src/BeginnerCourse/02-ChordOfCMajor.mma +++ b/music/src/BeginnerCourse/02-ChordOfCMajor.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license MidiTName Chord of C Major diff --git a/music/src/BeginnerCourse/04-ClairDeLaLune.mma b/music/src/BeginnerCourse/04-ClairDeLaLune.mma index 28758e16..d766d91c 100644 --- a/music/src/BeginnerCourse/04-ClairDeLaLune.mma +++ b/music/src/BeginnerCourse/04-ClairDeLaLune.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license MidiTName Clair De La Lune diff --git a/music/src/BeginnerCourse/05-ChordOfFMajor.mma b/music/src/BeginnerCourse/05-ChordOfFMajor.mma index be63a728..fad232e9 100644 --- a/music/src/BeginnerCourse/05-ChordOfFMajor.mma +++ b/music/src/BeginnerCourse/05-ChordOfFMajor.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license MidiTName Chord of F Major diff --git a/music/src/BeginnerCourse/06-DownAndUp.mma b/music/src/BeginnerCourse/06-DownAndUp.mma index 2515f201..c0bf30b8 100644 --- a/music/src/BeginnerCourse/06-DownAndUp.mma +++ b/music/src/BeginnerCourse/06-DownAndUp.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license MidiTName Down And Up diff --git a/music/src/BeginnerCourse/Booster44Lib.mma b/music/src/BeginnerCourse/Booster44Lib.mma index 2cd464b2..92a7d37b 100644 --- a/music/src/BeginnerCourse/Booster44Lib.mma +++ b/music/src/BeginnerCourse/Booster44Lib.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license SeqClear diff --git a/music/src/BoosterMusic/03-SkipToMyLou.mma b/music/src/BoosterMusic/03-SkipToMyLou.mma index 98520701..3ede96a8 100644 --- a/music/src/BoosterMusic/03-SkipToMyLou.mma +++ b/music/src/BoosterMusic/03-SkipToMyLou.mma @@ -1,5 +1,5 @@ // Musical MIDI Accompaniment file for the Piano Booster project -// For more information see: https://github.com/captnfab/PianoBooster +// For more information see: https://github.com/pianobooster/PianoBooster // Creative Commons license MidiTName Skip to My Lou diff --git a/pianobooster.6 b/pianobooster.6 index dfed8b5d..5ead6f5d 100644 --- a/pianobooster.6 +++ b/pianobooster.6 @@ -1,15 +1,15 @@ .\" (c) 2011 Miriam Ruiz -.\" +.\" .\" This document is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. -.\" +.\" .\" This package is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. -.\" +.\" .\" You should have received a copy of the GNU General Public License .\" along with this package; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -17,7 +17,7 @@ .SH "NAME" pianobooster \- learn the piano just by playing a game .SH "DESCRIPTION" -Piano Booster is piano teaching software that can provide piano lessons for beginners as well as for advanced players. It can be used for teaching music theory and is useful for piano practice and learning piano technique. +Piano Booster is piano teaching software that can provide piano lessons for beginners as well as for advanced players. It can be used for teaching music theory and is useful for piano practice and learning piano technique. .SH "SYNOPSIS" .B pianobooster [\fIflags\fR] [\fImidifile\fR] @@ -50,7 +50,7 @@ Display the note length .BI \-\-Xtick\-rate= RATE " (EXPERIMENTAL)" Adjust the tick rate in mSec, the default being 4 (12 windows) .SH "USAGE" -Piano Booster is a fun way of playing along with a musical accompaniment and at the same time learning the basics of reading musical notation. The difference between playing along to a CD or a standard midi file is that Piano Booster listens and follows what you are playing on a midi piano keyboard. +Piano Booster is a fun way of playing along with a musical accompaniment and at the same time learning the basics of reading musical notation. The difference between playing along to a CD or a standard midi file is that Piano Booster listens and follows what you are playing on a midi piano keyboard. The program has been designed to allow you to play along on a midi piano keyboard with the scrolling notes shown on the screen. The notes you press on the keyboard appear as colored lines on the musical stave, the color of which depends whether you have pressed the right or wrong note. @@ -82,6 +82,6 @@ Timing markers show whether you are playing ahead or behind of the beat. They ap .br - A different instrument sound is used for the right and wrong notes that you play. .SH "SEE ALSO" -You can find more about the game on its homepage: https://github.com/captnfab/PianoBooster +You can find more about the game on its homepage: http://pianobooster.sourceforge.net .SH "AUTHOR" The game was originally written by Louis James Barman , . This manual page was written by Miriam Ruiz for the Debian project, but can be used by others. diff --git a/src/QtMain.cpp b/src/QtMain.cpp index 9a3bfc29..fb7b48db 100644 --- a/src/QtMain.cpp +++ b/src/QtMain.cpp @@ -38,7 +38,7 @@ int main(int argc, char *argv[]){ QCoreApplication::setOrganizationName("PianoBooster"); - QCoreApplication::setOrganizationDomain("https://github.com/captnfab/PianoBooster"); + QCoreApplication::setOrganizationDomain("https://github.com/pianobooster/PianoBooster"); QCoreApplication::setApplicationName("Piano Booster"); QCoreApplication::setApplicationVersion(PB_VERSION); From 8ba476030832198b7e0110baa03ce35fca0264b0 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Fri, 27 Nov 2020 18:14:02 +0000 Subject: [PATCH 71/84] Added the message THE URL HAS CHANGED to the readme file. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index bba70d9c..d8974e08 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +# == THE URL HAS CHANGED == + +This Piano Booster repository has now been transferred to @pianobooster as the new owner. + +Please update all your bookmarks and [update](https://docs.github.com/en/free-pro-team@latest/github/using-git/changing-a-remotes-url) any existing local clones to point to the new repository URL https://github.com/pianobooster/PianoBooster + ![logo](logo/Logotype_horizontal.png) From 0dd4a79822e0992a32a8d1d8bb076e7f12b45db2 Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 6 Oct 2020 01:33:49 -0400 Subject: [PATCH 72/84] Add build automation. --- .github/workflows/build.yml | 138 ++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 10 +++ 2 files changed, 148 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..7590e834 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,138 @@ +name: Build + +on: [push, pull_request] + +jobs: + linux-build: + runs-on: ubuntu-18.04 + steps: + - name: Checkout + uses: actions/checkout@v2.0.0 + - name: Install dependencies + run: sudo apt-get install build-essential cmake pkg-config libftgl-dev qtbase5-dev qttools5-dev librtmidi-dev fluid-soundfont-gm libfluidsynth-dev + - name: Install linuxdeploy + run: | + wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage + chmod +x linuxdeploy*.AppImage + - name: Build + run: | + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=/usr + make -j$(nproc) + make install DESTDIR=AppDir + # Package + export QT_SELECT=5 + export QML_SOURCES_PATHS="${GITHUB_WORKSPACE}"/src + # initialize AppDir, bundle shared libraries for PianoBooster, use Qt plugin to bundle additional resources, and build AppImage, all in one single command + ../linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage + find . + echo "Done!" + mv *AppImage ../PianoBooster-x86_64.AppImage + ls -lh ../PianoBooster-x86_64.AppImage + - name: Upload Linux Build + uses: actions/upload-artifact@v2 + with: + name: linux-build + path: PianoBooster-x86_64.AppImage + + macos-build: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2.0.0 + - name: Install dependencies + run: | + brew update || brew update + brew upgrade + brew install cmake qt5 ftgl jack pkg-config fluid-synth + - name: Build + run: | + mkdir build + cd build + cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt)" + make + make install-translations + $(brew --prefix qt)/bin/macdeployqt build/pianobooster.app -dmg + find . + echo "Done!" + mv build/*dmg ../PianoBooster.dmg + ls -lh ../PianoBooster.dmg + - name: Upload Mac Build + uses: actions/upload-artifact@v2 + with: + name: mac-build + path: PianoBooster.dmg + +# windows-build: +# runs-on: windows-latest +# steps: +# - name: Checkout +# uses: actions/checkout@v2.0.0 +# - name: Install dependencies +# uses: lukka/run-vcpkg@v4 +# with: +# vcpkgDirectory: ${{ github.workspace }}/vcpkg +# vcpkgArguments: fluidsynth qt5-base qt5-tools freetype ftgl +# vcpkgGitUrl: 'https://github.com/microsoft/vcpkg.git' +# vcpkgGitCommitId: '56fffbe49dfb4dd8fae0940f272c5fd2b86be991' +# vcpkgTriplet: x64-windows +# - name: +# run: | +# mkdir build +# cd build +# cmake .. -DWITH_INTERNAL_FLUIDSYNTH=OFF -DCMAKE_TOOLCHAIN_FILE="${GITHUB_WORKSPACE}"/vcpkg/scripts/buildsystems/vcpkg.cmake +# cmake --build . +# find . +# shell: bash +# + + deploy: + runs-on: ubuntu-latest + needs: [macos-build, linux-build] + steps: + - name: Download linux build + uses: actions/download-artifact@v2 + with: + name: linux-build + - name: Download mac build + uses: actions/download-artifact@v2 + with: + name: mac-build + - name: Publish snapshot build + #if: contains(github.ref, 'develop') + run: | + find . + ls -la + - name: Linux Snapshot Release + uses: WebFreak001/deploy-nightly@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # automatically provided by github actions + with: + # find out this value by opening https://api.github.com/repos///releases in your browser and copy the full "upload_url" value including the {?name,label} part + upload_url: https://uploads.github.com/repos/winder/PianoBooster/releases/32197618/assets{?name,label} + release_id: 32197618 # same as above (id can just be taken out the upload_url, it's used to find old releases) + asset_path: PianoBooster-x86_64.AppImage # path to archive to upload + asset_name: PianoBooster-x86_64-$$.AppImage # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash + asset_content_type: application/dmg # required by GitHub API + max_releases: 30 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted + - name: Mac Snapshot Release + uses: WebFreak001/deploy-nightly@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # automatically provided by github actions + with: + # find out this value by opening https://api.github.com/repos///releases in your browser and copy the full "upload_url" value including the {?name,label} part + upload_url: https://uploads.github.com/repos/winder/PianoBooster/releases/32197618/assets{?name,label} + release_id: 32197618 # same as above (id can just be taken out the upload_url, it's used to find old releases) + asset_path: PianoBooster.dmg # path to archive to upload + asset_name: PianoBooster_$$.dmg # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash + asset_content_type: application/dmg # required by GitHub API + max_releases: 30 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted +# - name: Create release +# if: contains(github.ref, 'master') +# run: | +# find . +# ls -la + + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e510d60e..233498b0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -47,6 +47,7 @@ MESSAGE("CMAKE_INSTALL_BINDIR: " ${CMAKE_INSTALL_BINDIR}) FIND_PACKAGE( OpenGL REQUIRED ) if(NOT WIN32) + # the `pkg_check_modules` function is created with this call include(FindPkgConfig) FIND_PACKAGE( PkgConfig REQUIRED ) endif() @@ -97,6 +98,7 @@ endif(${CMAKE_SYSTEM} MATCHES "Darwin") if(WITH_INTERNAL_FLUIDSYNTH) if(NOT WIN32) pkg_check_modules(FLUIDSYNTH fluidsynth) + if(NOT FLUIDSYNTH_FOUND) MESSAGE(FATAL_ERROR "FLUIDSYNTH was not found") endif(NOT FLUIDSYNTH_FOUND) @@ -245,7 +247,11 @@ if(UNIX AND NOT APPLE) ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} ${PIANOBOOSTER_MOC_SRCS} ${PIANOBOOSTER_RC_SRCS} ${PIANOBOOSTER_UI_HDRS} ${PIANOBOOSTER_RCS} ) +<<<<<<< HEAD endif(UNIX AND NOT APPLE) +======= + endif(UNIX AND NOT APPLE) +>>>>>>> Add build automation. if(WIN32) ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} @@ -263,6 +269,10 @@ else() endif() target_link_libraries (pianobooster Qt5::Widgets Qt5::Xml Qt5::OpenGL ${OPENGL_LIBRARIES} ${FTGL_LIBRARY} ${RTMIDI_LIBRARIES} ${JACK_LIBRARY} ${FLUIDSYNTH_LIBRARY} ${RTMIDI_LIBRARY}) +<<<<<<< HEAD +======= +# Apple didn't like this. +>>>>>>> Add build automation. if(NOT APPLE) INSTALL( FILES ../pianobooster.desktop DESTINATION share/applications ) INSTALL(TARGETS pianobooster RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) From 04715fbf6ed149d5b32d363a6c06ec6a5bac352b Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 6 Oct 2020 01:38:18 -0400 Subject: [PATCH 73/84] Make AppImage executable. --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7590e834..1c5b877a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,7 @@ jobs: ../linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage find . echo "Done!" + chmod +x *AppImage mv *AppImage ../PianoBooster-x86_64.AppImage ls -lh ../PianoBooster-x86_64.AppImage - name: Upload Linux Build From f677645c7f4ea84ed5e61590ad327d279f8706cc Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 6 Oct 2020 02:09:25 -0400 Subject: [PATCH 74/84] Attempt to use a matrix for uploading artifacts --- .github/workflows/build.yml | 53 +++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1c5b877a..41a9d94e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -92,44 +92,45 @@ jobs: deploy: runs-on: ubuntu-latest needs: [macos-build, linux-build] + strategy: + matrix: + env: + - { + ARTIFACT: linux-build, + ASSET_PATH: PianoBooster-x86_64.AppImage, + ASSET_NAME: PianoBooster-x86_64-$$.AppImage, + ASSET_CONTENT_TYPE: application/appimage + } + - { + ARTIFACT: mac-build, + ASSET_PATH: PianoBooster.dmg, + ASSET_NAME: PianoBooster_$$.dmg, + ASSET_CONTENT_TYPE: application/dmg + } + env: ${{ matrix.env }} steps: - - name: Download linux build + - name: Download build uses: actions/download-artifact@v2 with: - name: linux-build - - name: Download mac build - uses: actions/download-artifact@v2 - with: - name: mac-build + name: ${ARTIFACT} - name: Publish snapshot build #if: contains(github.ref, 'develop') run: | find . ls -la - - name: Linux Snapshot Release + set + - name: Snapshot Release uses: WebFreak001/deploy-nightly@v1.0.1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # automatically provided by github actions + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - # find out this value by opening https://api.github.com/repos///releases in your browser and copy the full "upload_url" value including the {?name,label} part upload_url: https://uploads.github.com/repos/winder/PianoBooster/releases/32197618/assets{?name,label} - release_id: 32197618 # same as above (id can just be taken out the upload_url, it's used to find old releases) - asset_path: PianoBooster-x86_64.AppImage # path to archive to upload - asset_name: PianoBooster-x86_64-$$.AppImage # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash - asset_content_type: application/dmg # required by GitHub API - max_releases: 30 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted - - name: Mac Snapshot Release - uses: WebFreak001/deploy-nightly@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # automatically provided by github actions - with: - # find out this value by opening https://api.github.com/repos///releases in your browser and copy the full "upload_url" value including the {?name,label} part - upload_url: https://uploads.github.com/repos/winder/PianoBooster/releases/32197618/assets{?name,label} - release_id: 32197618 # same as above (id can just be taken out the upload_url, it's used to find old releases) - asset_path: PianoBooster.dmg # path to archive to upload - asset_name: PianoBooster_$$.dmg # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash - asset_content_type: application/dmg # required by GitHub API - max_releases: 30 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted + release_id: 32197618 + asset_path: ${ASSET_PATH} + asset_name: ${ASSET_NAME} + asset_content_type: ${ASSET_CONTENT_TYPE} + max_releases: 30 + # - name: Create release # if: contains(github.ref, 'master') # run: | From 04655ac676b6c4e3cdf6cd93899aead8b689376f Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 6 Oct 2020 02:20:58 -0400 Subject: [PATCH 75/84] Switch these to get more information. --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 41a9d94e..375b2f09 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -109,16 +109,16 @@ jobs: } env: ${{ matrix.env }} steps: - - name: Download build - uses: actions/download-artifact@v2 - with: - name: ${ARTIFACT} - name: Publish snapshot build #if: contains(github.ref, 'develop') run: | find . ls -la set + - name: Download build + uses: actions/download-artifact@v2 + with: + name: ${ARTIFACT} - name: Snapshot Release uses: WebFreak001/deploy-nightly@v1.0.1 env: From 4a268918a15ed6951df30ad736b81d7c080c9811 Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 6 Oct 2020 02:23:04 -0400 Subject: [PATCH 76/84] This looks like the correct notation --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 375b2f09..9af5387c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -118,7 +118,7 @@ jobs: - name: Download build uses: actions/download-artifact@v2 with: - name: ${ARTIFACT} + name: ${{ env.ARTIFACT }} - name: Snapshot Release uses: WebFreak001/deploy-nightly@v1.0.1 env: @@ -126,9 +126,9 @@ jobs: with: upload_url: https://uploads.github.com/repos/winder/PianoBooster/releases/32197618/assets{?name,label} release_id: 32197618 - asset_path: ${ASSET_PATH} - asset_name: ${ASSET_NAME} - asset_content_type: ${ASSET_CONTENT_TYPE} + asset_path: ${{ env.ASSET_PATH }} + asset_name: ${{ env.ASSET_NAME }} + asset_content_type: ${{ env.ASSET_CONTENT_TYPE }} max_releases: 30 # - name: Create release From 98a3148b1a543ad4afee348f36d7dd6c3c9dabb0 Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 6 Oct 2020 09:26:06 -0400 Subject: [PATCH 77/84] Fix indent --- src/CMakeLists.txt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 233498b0..47fe406a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -247,11 +247,7 @@ if(UNIX AND NOT APPLE) ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} ${PIANOBOOSTER_MOC_SRCS} ${PIANOBOOSTER_RC_SRCS} ${PIANOBOOSTER_UI_HDRS} ${PIANOBOOSTER_RCS} ) -<<<<<<< HEAD endif(UNIX AND NOT APPLE) -======= - endif(UNIX AND NOT APPLE) ->>>>>>> Add build automation. if(WIN32) ADD_EXECUTABLE( pianobooster ${PIANOBOOSTER_SRCS} @@ -269,10 +265,6 @@ else() endif() target_link_libraries (pianobooster Qt5::Widgets Qt5::Xml Qt5::OpenGL ${OPENGL_LIBRARIES} ${FTGL_LIBRARY} ${RTMIDI_LIBRARIES} ${JACK_LIBRARY} ${FLUIDSYNTH_LIBRARY} ${RTMIDI_LIBRARY}) -<<<<<<< HEAD -======= -# Apple didn't like this. ->>>>>>> Add build automation. if(NOT APPLE) INSTALL( FILES ../pianobooster.desktop DESTINATION share/applications ) INSTALL(TARGETS pianobooster RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) From 91b616bc9b00477e0bf9d6e403c79064885bd287 Mon Sep 17 00:00:00 2001 From: Will Winder Date: Mon, 12 Oct 2020 12:07:00 -0400 Subject: [PATCH 78/84] Add apt-get update --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9af5387c..d98484c7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: - name: Checkout uses: actions/checkout@v2.0.0 - name: Install dependencies - run: sudo apt-get install build-essential cmake pkg-config libftgl-dev qtbase5-dev qttools5-dev librtmidi-dev fluid-soundfont-gm libfluidsynth-dev + run: sudo apt-get update && sudo apt-get install build-essential cmake pkg-config libftgl-dev qtbase5-dev qttools5-dev librtmidi-dev fluid-soundfont-gm libfluidsynth-dev - name: Install linuxdeploy run: | wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage From 086c2464b4af381ece8e31bcedea51aeeb8a4662 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 14 Nov 2020 23:53:02 +0000 Subject: [PATCH 79/84] Add a version number to the executable and md5 checksum.txt --- .github/workflows/build.yml | 98 +++++++++++++++---------------------- 1 file changed, 39 insertions(+), 59 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d98484c7..50a76090 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,17 @@ jobs: wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage chmod +x linuxdeploy*.AppImage + - name: Define variables + run: | + pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2` + pb_app_name="PianoBooster-${pb_ver}-x86_64" + echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV + echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV + echo "PB_APP_NAME=${pb_app_name}" + - name: Build + env: + pb_app_name: ${{ env.PB_APP_NAME }} run: | mkdir build cd build @@ -30,13 +40,18 @@ jobs: find . echo "Done!" chmod +x *AppImage - mv *AppImage ../PianoBooster-x86_64.AppImage - ls -lh ../PianoBooster-x86_64.AppImage + mv *AppImage ../${pb_app_name}.AppImage + cd .. + ls -lh ${pb_app_name}.AppImage + md5sum ${pb_app_name}.AppImage >checksum.txt + cat checksum.txt - name: Upload Linux Build uses: actions/upload-artifact@v2 with: - name: linux-build - path: PianoBooster-x86_64.AppImage + name: pianobooster-${{ env.PB_VERSION }}-linux + path: | + ${{ env.PB_APP_NAME }}.AppImage + checksum.txt macos-build: runs-on: macos-latest @@ -47,8 +62,17 @@ jobs: run: | brew update || brew update brew upgrade - brew install cmake qt5 ftgl jack pkg-config fluid-synth + brew install cmake qt5 ftgl pkg-config fluid-synth + - name: Define variables + run: | + pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2` + pb_app_name="PianoBooster-${pb_ver}" + echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV + echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV + echo "PB_APP_NAME=${pb_app_name}" - name: Build + env: + pb_app_name: ${{ env.PB_APP_NAME }} run: | mkdir build cd build @@ -58,13 +82,19 @@ jobs: $(brew --prefix qt)/bin/macdeployqt build/pianobooster.app -dmg find . echo "Done!" - mv build/*dmg ../PianoBooster.dmg - ls -lh ../PianoBooster.dmg + mv build/*dmg ../${pb_app_name}.dmg + cd .. + ls -lh ${pb_app_name}.dmg + md5 -r ${pb_app_name}.dmg > checksum.txt + cat checksum.txt - name: Upload Mac Build uses: actions/upload-artifact@v2 with: - name: mac-build - path: PianoBooster.dmg + name: pianobooster-${{ env.PB_VERSION }}-macos + path: | + ${{ env.PB_APP_NAME }}.dmg + checksum.txt + # windows-build: # runs-on: windows-latest @@ -88,53 +118,3 @@ jobs: # find . # shell: bash # - - deploy: - runs-on: ubuntu-latest - needs: [macos-build, linux-build] - strategy: - matrix: - env: - - { - ARTIFACT: linux-build, - ASSET_PATH: PianoBooster-x86_64.AppImage, - ASSET_NAME: PianoBooster-x86_64-$$.AppImage, - ASSET_CONTENT_TYPE: application/appimage - } - - { - ARTIFACT: mac-build, - ASSET_PATH: PianoBooster.dmg, - ASSET_NAME: PianoBooster_$$.dmg, - ASSET_CONTENT_TYPE: application/dmg - } - env: ${{ matrix.env }} - steps: - - name: Publish snapshot build - #if: contains(github.ref, 'develop') - run: | - find . - ls -la - set - - name: Download build - uses: actions/download-artifact@v2 - with: - name: ${{ env.ARTIFACT }} - - name: Snapshot Release - uses: WebFreak001/deploy-nightly@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: https://uploads.github.com/repos/winder/PianoBooster/releases/32197618/assets{?name,label} - release_id: 32197618 - asset_path: ${{ env.ASSET_PATH }} - asset_name: ${{ env.ASSET_NAME }} - asset_content_type: ${{ env.ASSET_CONTENT_TYPE }} - max_releases: 30 - -# - name: Create release -# if: contains(github.ref, 'master') -# run: | -# find . -# ls -la - - From 64970ec86408980bb3830f0880f35f2d2b8dfab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=EB=82=98=EC=97=B0?= Date: Mon, 30 Nov 2020 13:11:58 +0000 Subject: [PATCH 80/84] Translated using Weblate (Korean) Currently translated at 19.6% (74 of 376 strings) Translation: PianoBooster/PianoBooster Translate-URL: https://hosted.weblate.org/projects/pianobooster/pianobooster/ko/ --- translations/pianobooster_ko.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/pianobooster_ko.ts b/translations/pianobooster_ko.ts index 9de2dc72..4d0c425b 100644 --- a/translations/pianobooster_ko.ts +++ b/translations/pianobooster_ko.ts @@ -1895,22 +1895,22 @@ Choose the right hand - + 오른손을 선택하세요 Choose both hands - + 양손을 선택하세요 Choose the left Hand - + 왼손을 선택하세요 Play from start toggle - + 시작점에서 연주 From 006811cc746893951d10ee877fb6a6dcaa53ef38 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Wed, 9 Dec 2020 16:53:14 +0000 Subject: [PATCH 81/84] Updated the formating of the abc music files. --- music/BoosterMusicBooks.zip | Bin 472364 -> 535869 bytes .../BeginnerCourse/01-StartWithMiddleC.abc | 2 +- music/src/BeginnerCourse/02-ChordOfCMajor.abc | 10 +++---- music/src/BeginnerCourse/03-UpAndDown.abc | 10 +++---- music/src/BeginnerCourse/04-ClairDeLaLune.abc | 14 +++++----- music/src/BeginnerCourse/05-ChordOfFMajor.abc | 10 +++---- music/src/BeginnerCourse/06-DownAndUp.abc | 10 +++---- music/src/BeginnerCourse/Introduction.md | 6 +++++ music/src/BoosterMusic/01-ClairDeLaLune.abc | 14 +++++----- music/src/BoosterMusic/02-LavendersBlue.abc | 7 ++--- music/src/BoosterMusic/05-ScarboroughFair.abc | 14 +++++----- music/src/BoosterMusic/Introduction.md | 6 +++++ music/src/README.md | 25 ++++++++++++++++++ music/src/makemusic.py | 9 +++---- 14 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 music/src/README.md diff --git a/music/BoosterMusicBooks.zip b/music/BoosterMusicBooks.zip index 48c0149c3d230fc7686ff60dab0b559c264b4f0e..36ce313469fdc2edf82fc7426ce09fb823b72c10 100644 GIT binary patch delta 476695 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≶vGq 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

AxZpv$ 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�qOTRe^HxbdPtR~tuKig z5|^N$^GlTuw^E-`t2}A*6va%4k~8z#t>kgltXh5Ho{m~zZM#YjKfHc}dgXhzI zM;OPa?8q=i&+(Si3(XPo%eX;IF*RUlbV()9oGPdz@)~_+rqo}Mh7+!y9QO8f>`G5K zK$Lyg#k6r`Tye1Jf9nov^)Xs=0n~)pA0YUD{K_Y?&d=n~?pHlyI&1h)rNr!EbG(>f zobQUPU|f^z2#Y(_)VMEVii+~xsD9f#B@c!|8Y>CP)E+JI*A>!eIm7ci(mPoJSF=2? zWD}u55W70ue>auTro=?zZG#Hp{iy-T>Gfg3a1%i_p*I-Tf7-eS-+p`H5ilN))>sAk zl+$>4kTtp5|4y^jAd%|fotaF~_>*?i37zI=p8!TLF4BaBuGcO5(5zr^qAt+}`$ zc&4Gowb(fdz&65677y8jn63U^{N>H-T?hmXerXv44keD%b;>OiI*2YA6Kfal8c%S_ z-6{0g13ES3pVfM{V3n>A=j)BiF$K|D;ix6ijC44qe;!x!RW!Lj@RwNz5gXk=6Y;wBXxLh z5Ct)%4zILKVxfFZNRLcurC`#0ZqE^iFigBkXiq9InZqOv!T`GAlyIx!fUGkWg>3M= zJ&pw^e>DE*Ztf3j*))-M;}?vMI zO|@!HgTgX4)Tv+CoCAGiv+%BihdPjF&T87?8HTPb-|baf!6_#js#bQc90`_4f3iZs zMb_SmHdyNCF6$%Rf6bH7(V}Yu_Wg8y9dv<#VU3$0^vT6c(soviKzci*kpzc#$3<~o z>*dWNkQ8e=G!z4USeaU->29D5$&_+M1BX^dkbvUJ^?-_NP1J(iYq`!e~3(EXF9M$o?#4LaO?dDxC)+cTsZTHisew-!u~>xim^i2Ixy*FReOGI=$S~sxnExWTk^!b-mX~XFbVyn^=e^$01QLTG@ z%D8skry&q1p7?my+nY81t={f=XwN zX8fSP_<|ZzqQqdTm($xHCK^yz2v^g=OOMm3yVzkis~5CM>Lj4LvD$7zmVi&q@qxaB z<>y0^f6+vx@G z;Z3HxR*wBnkA5Mxc}{en&V&98*QFUuT@lRh?ua zB!)JV%g<#HSONKk-4tsw-T-RRJObDj7lpsLQt#PV5Z`mH%v#pdzSe};`^Ic>-e=&+ zQ2F~vW>@Y#h|IO-f9m|EZ44l&KKQ6<-u9+o0E!=WgM477A%4~=CbkVFwLYwey^CHuA;3ebXu4cT+Qx;&RMc6heabU%CqGe-mnsKzjCZ1kfmHp8?3~ z>*s$&Ff%JnyF z6O01Q3tGbgf2$`OQXV2$7eO}2xN;0OhfkP39#VUjBYBu3B}&#+HC}=x!wxvwY4~gL ziLF=iXu-Bah{>~E^OQ8!cu}v#hz7VR~)RIf3kKCn(kUjU#uj@k=wEAtU<}@ zBI*!e@$W|y9Vyb4mP3UH?$PsEP%Ms^O(BjMss1Fx76yI1)TL4O*-cRT_8N7!(dE6i7giWL{W5Et ze$3^7ht;|r0uF9MtF9?L!*Vvky3ldbbcDxcTZjqxWK?hGUUqzlAF!n`o7mXh=QUo% zVZUH}EY2^NIu%-wpj$W(0EA>AQsQYHVj2+0f7wP_m)$q^{;LKd`GwL&SJ`Ja_fQ~? zZWZtD_ufzv(UQ5)Yy;+=7p4@%g>C&>69XRC=3KFT90AMm{ zK@qxR!$7>Nz}-Y|h^}Ke)?j zp~EaVttxb*Zm8tK3Xe`L;rc+Ijz>pX*LYh}hn5m^HZOxhbA!<>2L ziZh5Vr&YF_w`eFe5C8iEHzplH8KYV0HjwwgqwQdCogMpA#l0nnz>+=aFou=SoY;mj zEG0b@G*}&6j4a9d?`CDJzNu{Jc6NwZyzxfl`S_Tb_kR7=u5)%0t^l>FtBh+M$+ihuWDT-eI8Y7K~OztQzz^smB<5Pu<9mSjMz zfhDa#R!TS7HXmfOUWehYtY7T)P%|2X$m0e@IQ%zvyH8k?(W>k2ES`OQY1X{L5M{24 z^*NA!toQ?d{M41M?f{(|QsSUMfBX~j&9It`qh9>4)%NV-Y$LqUwB-ozFm?Z&L(`?) zKC^0)>{|}&TfXoX6QMCs9?7}2o_PS7;!mnIXJg<73>~IUdGEIpI-Lta@U9aT+nQT(klUm`)A%{oe|tAtI?fA6lnGMs-@QV z|4t%M<87S<#e?7pf8xV1w5PC)%4(*YRT>-yt9-$DEw-s+CRqat<6py^@F+*e$8fu| z3mSc{^jSJR3G2MpMR@DTF(vRH9r;-LFUZTowo^I<;kvLP4R=r}V*GmyB=qpPjS~wVWNdXBfhtc|Iu%P>49ANcL<4k0s zEjE>fA*Wfs1yX&DwJ9_0+w8FxTyyHM%nz`iIc9lQd0 z4jbbr7S-w$%Me4=2wu!)>HQpE4_|%5NBbno9SMW4f2$v#;g={XgPzHAzQ{GXr=2v5 zMrZJAShh=g5!gfiDMh3F2!r%;=VOY360!RRe*T(giBY$D_&C?PM~HlKO`>HSQRV>Z zL-WzRSDDOsNjyI25;OC9?HU>_*VG1K%YYnM!Wq8I`c5(hZSf3{I)n~14g$5?_Ykc* zOk?a$f90w9fdz8cHs&yA8C$o+qwDOab?tQcID&BoF;!iRGKnM5Y25eK1X9sOUcfIr z54Sa5R6YjJm?I7-a^nMw*>Nm2d2LsNKDa%S4DzY|vRpl5T(KsS!hJv=0uY0jzQ>$8 z4t)b|8#>qU6cK!8vB}usIqRGGc$jNW)^OhCe_yH)9ru1(H;~jNsP)gXpE3|MDmMcL z*@9YYAOGUJcYO@>%xw4Qj(|wUsk*aFy*DOCn?sOGXWwN(vG$!VlY7-nwP?D>o~0B5 zv(K&<_=^YdpORE^cup9XKm+Xst>tT3bQXiJ*N)4k8}mNK-rH_7bhpR0Smrx{^4TbNbUQgLZ({;0_3HhwA&Mhz+CF;ST{b16fe|Oe8v;zv->>Edye_8Av z?F!rf#uwHhmeeBC!2&DA&cpCQ><%v%381=t0PmnaJBmqwS)KAK zPBkj7QQ$fvSroan#ozHNb3kn^DyditnXI5_wI_1pbk%<%8S zZp*z_okH^>7BgGxeOKd1^Zxu_DiA~~6`B$q%Jw2ng9%N1R_UGge|5%;x0MM}T?mC7 z2`9mOd4h4!B*rG~z^iZvK~Kf}{M6>LydG(ZqyqVzvNP^IR8*u(XmY0?^)-|sI+0bC zOKL+m65<|FXJg;ckJ1=N3;bb7Wmw)^(0;Mxk(83`xQ=hFlMCwA{=UD=5sIcIi**Y9 zt?mWbPa?0Nh%fC*elhYAf3@x5BV{Tb6+T zl)m^}%o?D;wq{55VjqaRbKP=cJt+Sw0p8JFMiJu~Ux8fH-YGvqf<~bg2S@9hd;(RC z(zElW+2==%vP;)j>KwZ*xM=Uu@n`pdpetwu^~7_BXs9g2f1{^qYRbDFe2y@QS8vlx zBxkUT`7yBo?v$!A05AQXkZciEZixI&MqZO9swEyY$!8*|M~9q^yA%UoR?kJuc-kiF zTTmi!oUm^Vq@O_gc0+7n=LSDZww?PD89WR_kS5mO?o#04Ub*JV$`)(zw)pAOHzuQ# zCeg;PhP=Bs(gtM-?qf5H-f_f5C*<7R{tvO9r6H5rHFMbx3pA7Lk!mTjgyM)>1C&~ z=^Y-KlHTxp?ax4;(0M+Ro%QvJ{NKK?24yRb+#5Nse~|vM@^11J{K(-<|Dr|)MVk~H zSlb-RuZAuOe5)pCh@}TNit>JJ$IoX(z-GuXjVC+%qhj3Npr?5nKh)>u+%jG3T#pKl zGo8UO%A4uEDASBmFcI6ln9=!J@J5^h)}bs(?s}JfBnb|*^O0H>=aO$!7y)Ro5O|8> zz@nqae@d2d1wQT`a<8NI?qyBj7GJMFuFXRxDqa7XQ@P<3hj_rdC{boeSPhq~4AQB5 z+7aKJb$-RS!po58rsowKhFtT;&5bbu#PtNwoJQ+CoRWM({L0%7q?3q$;n0!gQ@9a< z@5)d|p=;}S+8zG}0Nz(s9p=jnTiO?r5rJ*se?~#Y6XULPFVsPufT@<^gvk&4Tza=@ z+Vt@xC{=56Pw>M;NM}x%RD&hiUQ^rz_XTJJre-_4*c48cm?;K)EiLGWy2i4mJst^t zoAW%!7>6}gbqIgN?cOPMM0t=K=n`p%59j9lhyXNDSu+uwt^eFa4ic@AUWJeOpv ze^vU+z;*x_BU(Hxx*te*)EKFCg#%_2mbM%+vfcSKgX=wkSm@*DY zJjwIt&j73>bv7%H3{vNIc@Jf>54qPK-G3&^&rg9f^JTx!jj%@svh!4^WBt0QdaHYX zNT?8he*G;3_HYAgPs@4PwRoXZnTJ8Re`m$(Mw)zv4fky!`zO1ziR*o7*K;1HnT!Dg zb4{Rw^(hJlIn&#{GXmMMh@$|!aFe-DSU zDC%q;brE0jtUQ%ZTrBG-AI|FBa*Q+sa?^76>M@2E6hrQ!bon=ithCjHM3KrMYhR*l z?ad$ln4Bt!Ff$ljS$bZ8O}v6oT9cRHCM(TjE7B3%ltNR@o_bM~r>$!1(q-jLxA)cZ z@LpWkLfgtCum0G=($fgCD0mm}e-1o0T9t>+I;`!pAbM+xW;g^qjjq8ZKRl~rc}xvr zw>+w3_{JswuAa;Eu+Mw2)RIyT1OLw`sdya~YO~%RuVX@!2z^6}8NoBsaFc7(mEM3Q zeNZhcRzrT)5y;h-a0HMO6z3T>LBUcj_k^>B0Y>hRXUDq{0}x)|#buH#e`UMGaS(?V z*peId+BWGbkd@Bu6Dizon;iMc4jY{l^ z_t@aW4JFMTn7_T&ENN1%O zvOg4$W5Hb@EyE_mTvv{4f1cAgJk4QOugDVS7AH89a=~7BQoZd={<2YGlYe=v=yZW; zb-d>!f}Sl?oJw3bPizV66ye$P1!_E1vq{Ot5GfyQM)W;Sf-%kcZD+h07ZVT8C@bnc zU9R7ICBD}U_SPJPgo`Ps=6v9|dR2Dyj;ji7kDoIN8_bn%*N_1tf3BaPU%ZQN^X;WS z0m=cDm>mqJEGgPOu@b9}($rxTLIFm--O{4MEqA-1G9%^c&XY=I^{IFG{J~@k1extG z59q1C!Rp7Z|G^qwpZ%t42iEoDk zSQ~UPA`2??bZ1ubf3*WAH*{A}`et&ZR^XKuJ{onuCNCo@245*&qi+}SBo^naliJ=R zjR1miFg*?=ICrn>j|p63*kb&4$kf8S5xy^9PmHE#LW@j~Jz+a(6KOZBTd43ls{%5f zA4iiqoO`4OdtO0m$o!?-g#$|EZn0iIa_~FUypDQ;G4p!1f9mQhn3fL=D!w>U8W@fn zKKWCtkNkrOKk^*@rW$r;VyXQL_e&~=R(I3wdA_n`DZwXBnZchL!bTrw$nni5y8B@Q z{--3gV}wFd^jiJQO6jOoX(C(`X%Mz@EKv1Kc(_r1*B@`7A^VR{X2SZBa&_h;546OR z5AU8US)Rhye@v_%F%=oJs3RH&5n#;W28dIBGQo!e59U3}XOIu5qQfMK_b+}`J0rs* zVT7+s1i~h@rEkIL><`Rlh-;v|4pG`AX)2CZt2E|Dx;)OsJ9wbB2t@3I_T=IBAp;+8 z7{`{nmZxSAE`zqV!emQLdeY~vE(QXsE;ovG;`9#Ae_Y9bR=x=S#R{Ok^2UEmD9*MK z5y#z1ef+j)w`m+Cl2(2mfHAdMWd>`{Z3+8hAD(xC9A=|SaV-GFQMx8inP&Cg1>{;K zxM#qq+;WnJ;@??Gy7I4L{kcD~o++a_#5?jG#* ztEeoX3Av-)aH1R$81{B;x;rZ!AnPb4Ny5&|=qHN#jGy#53(xa=yjD$wty3w|tzney zVn2W11Ed2T$D(Uij7y+J32R!V@Nttg5xv=7O&hlsvOCMw3Y_d$U40IcuPf5a{ zSz~rW{3;huK$T+G7j*lx?h9c5x?NeIe-6_|C2XFo=;EbLVF>WG>5-8uM*erfEnUm- zARCSQY07hDfDd4P;g?rW-92>nxrD7(z2IwUy%4(_XI#q9O<5VCSkj!=(>{Y@T$wHr z1m8ZO2Ys$f82rie7UTPy-DywGD`W$eSGJB%HAA0s_c3vQC!|@K!w$It)Xb&-eMFOJbHqHJe=>|8InH(o-Remw@ZtADZqvRjhy@x$vv9rtw3zoT zi&Z)#0Iky-PQXK=2CdB8;xCeqwk=b9PGpYPNKT4W3~sj=#t9pr#WPXGNyJ=nwAG}p z=n`TJ+fg+q<^_i;Vd|BOEQEfIFCaM;ULrPhQ1?14Y721%G&0)pi4UGTe=kdo{f_09 zA_T4Hkeg*}Id`IhB>NOz_i-fn3uSwvhE_%EUApcqZnlX)d|c}sQ4?2`TJfLSAa{H( ze(?d!R%#@r$-HV>yJ|-0Q5O5p6k?RNx5-3a%nP@|jmGZz4>%W*iq7O;DNJb^7DSk^ ztKz{JqaHP%#wLnTig1(;e{(!K7ULBUrq&)?#c?k;>k%yA#UA4r$6xihXBU*QK3)|v z0)>zN8_e@jb6DCfJ)2lx-vYVOAF6?=L9|4XpH}7q_wTh;?EP263GJT5WX7vL(q}k3 z+MasAo{Zw927h^0N@Z3vQ9CzW{O+q*d6Ig8^2g@H8@(YgS12vzf4R~D$hkQ6WzJ<> zMGx>`z_Tx@_^0S1f zy8c|L_EoKT5$)quU|(yl@%|HF##oO$)H=U2hEbQjRpr`RBv^e&fq!bI{_3wzIho+Dl)dmuDjS+#dxu|>7Jg|!}sZZveh#xf3c^e2;^+({Lt2!hcXjn z#_z_ApZ;fzNNLCAhE+BBoa#ZEc(rY8iS_1h8cebg2HYn-UFA>3O}$pW)l*Wf(b+}Elfi#w3~UE@BwkAV~OQ3!%~g0hZqSt*NpbDg?1s%cu7ABuS{_>XBe$@AMN((=pPBqFg_< z*P_H}m1ya%g}3aznbCKBl2W<)6}h}70vlQZZEa3?bV6Bn$F_|J8E{F`_YL$I03op_ z5Zl+XZS$DC3o!v?=C1M}7;0x)hs#YdTlr>c;*~(rB>XNFv<_0K>Hd&F zoMP`6DIfyIp#g8!D!I(~s}aZI&nLZM_LN|c`nOgtRp}hg#0ZBDE8Y<|9JvMn=zB|h zaP195K)E>b$WoE!7Il>Os=~|b$JfpvuQ>gEY@lRq0A~+8z>ifwUp{)OyiHZpF(w-> z$^nxje>q~)h=V}lK{=I57}0?6k-7u?lakF*@N_Wkk)}=qy`y2WwJiyrQU5}Sof05% z;BFhIQTb)HD#}O!wc1<->4e{R>k}~A7P#o%MAshRvwS~^ZUGnMr3kJ^xbQQSvMOd2uvukgGNt9Wo6*6*bh*ee;D7>;L| z#6S)JNHCqwYQ5wGlx)pYGAD^evr)M?ZUU3VAFHqgRG+RIQHhWzbix@xvri;@si|Q= z$n&ZZ^8S5Y!8ZC@N4~=0lt2Eg;8439f7NX6XAJtr`eA_Yw{0t58xH!N(dZ9L-jsD9 z(Q4)rDT+ML3*ES2@l^V0pOgA# zh3z1#>*Nc~j*V+N*?hVP@s=`yJiGPs3==(8@tbwbnC?W?S3rg%b=Y(3zgGCUI^K`C z4bg*MEU#)E@gXgyYdlJdOH?P&e}dCGQ~>mb>kpDrDqwut=*!|ga=rtNHoX)xC1B&P zy}U}AQ|wf%i8{X{7eQuny(Wlji4yWF_wZ6Y6!G=v$QOeYQTvVQMEeco3X5(wz&!RK zTur;h9?17^4YEZviD~PD?QtNt%G0ZO0ZT>_D^}$wsSL_GhvvV~W3kuXe@J={#CMFp z+8oUm%j%*+BxL&~=3T~~VwX?MxK7X&_aL(RjB_^(15XrWED41amy3x|T z#Pbf*V#ZtGQ=g_+&hm$>=Fl6dRZ2uCG4mn`@Oke`D6O9H$6D;+E5iTcj;rSo5ykDJ z4(3)$ke3rSS~GMTuPBiQK7Qdt9SaTH@dDr2zv5w_K|iG?iFXEwf4O?P?OW3e%G!dF zN2Rfeu$rH~(@a@)!g{)bP=C#s8NH+k!y@%s?n`vcU*H>Sa*%alTAtZjFKze zhXYZ>XB2L6iVb#&fBU8IRYG+x>o_pLQydYl=lrqL5y1B+amRAEL^2r%(swY-hg|eV z6{o5AkMI_g#A0iBHSIKnvk33>d84RmGTJA(w<4mcK-T!n(2;{D1vCytt3+-(lR`HY z&XoKG-tH988Ok`wq6A6+tf}+{_S(rGE#{3qYEuzWTJZkTe@?o`%-Vo@m9*`@wDvM^ zV49)SGBbQG6v;tXA*|F!U=13|cj-j4Z8Pa)_vQ6rqlX*BdRIWefsFT45X4<;f3 z0%@r#`vx@gS8s^I1OLtys_;5}nn`-wM^1&azx7{ye|!ivdu>a?V0MR>3;w$};7O~T z(Iceu-&oO?ALeL@stXnboqoysLJKkBjXOX8dKSAHH^bVwrYDUS7k@*;C%dPe4;y-o zzOk=xq3&}!2?C2j{?t+6hLG|_7-XG+i45RElhmkaK3u^HXJ9VdBkQ*vN1(|PFVO1n zIk6BCyUq?C7?y>KC^6GC(N1NNh$iT$6* z#ccl*xtNLh{~;GMajlneSLuevo$%Z)@Zh1$j4JuF@>iGNc$%ec%g%#{WI0| z?+%0-pIy%l$q*bJSznz*>7N{*o`#bXBs>LSacuzFh{Emy@Bq}NO9dcRN^?^q2cTwV ze}?A)6@W5_clK1v1eE3hgc3kEVwD3YfcD>fr_YCRbTwdLboEsOzM-wY4q&;XGb8|) zBd3OzO5z2zP`J_gBcJO!z;^?MWJP4PF@Z!Y={e_>00m;b!jN zTi(@~$q{h%BL$Gx>TKt@XJYK=>SESx=jvhz%%;J>wf;LSGqpH@u?Oee0NCZvfAMea z@54H>w0qr^MVH#|1N!Df@$XKdoZrQKACo|OrZ3s?qTb8dJ)!#}d)eVm+p1mHHJ_Cn9^Y3RA=Du`-`s$%Xxr{DNupO3!O0|@|NR3k6r=S2Bc zJ9)li`IFK?dDhLyt!ayE`0~q3e{bliYFgv>e9AM)3cSv#$=1pKLq&vOXln%hHMsje zo36h8OQZ~^m=u>RuVftWgU{s+0y^*EevPKXqw~}Fiy$YWn}gmrJq4-1uLn-w3sWB4 zm4-1kdz;gjjjA`=w4RuBxdiY`~5G?9=+(a~*Y6ZO#3&_|PNE z?B_SGKoyjA9c}$9X>v?$egw#*)appr{H<#GOZ=lw3-1Y`Mdyq@-}@V~oxr$4+iyANaYf0xkxr~U5-dFL-9 zr*E3%T1L=R^%V_36;9T_At|YWoagCFpx)6Qpj%_tYzyZ6VQm;79pgrj?v4%sTn!!H zpK~1Ycdo+G5hz{cFZ?&89Z>r4@1OQG0NF$zBDTN8sogNBzT!Lkp>Lb=FLnb^y7KS8 zYXGvAK16tbiLbrze>2|5hrM&&u8F<#oyF(9@E_jDi!Yt8t;~=Q-ii(W|2`1%9sXT* z@Y`f83eto$P@z)IE0ZK(N`*@DReRD4Unn3iUf-G6TaNnt`O`rP$ysNqstT@x^%D(oiUrG3F2R1T`QM(@t03 zWT5KlR|_FVn|*e^bJaOrY+fbY=hoE*(D5~djA_Jze-wBbgbg4N`0I)k@QZ4Hg3 zQyl3gpl)&&ealxfYG8!r(nb5+mlGA7iC_M}oZ{;@<0D?Cw;>TWeD;dA_3BRYV6k6L zTEG;~e=2Pj?X6@Fd7~)yvB8h?0^RK2cLLW}%G6w>Z@8V$Z^^z(_>gS{D%K33a1UV~ zu6xY7^~*%Dh|REKbHGt7_(DX@+dmy>SmsVn$n(LT;!A+?*`x3jR13x(bc@K2?5m`4 zyEH-KTUm3~Sm+%VJ=VgzhcSA(c#%{j%{|oY~}DGS2N3^NPBUVZnL4Z04qS$zmlA*O(e=mm|&Bk%)$`6VyY>t z6>G;yP#twKMMWV&dP9=2p&_uEI>G^@O^fJg?pJ2yMaj|8q7Uj*(3;QJcBt*b_BX*v zKI=mK3xEDFmwy{BzQ~J-jh`eZnoRA?8_eZlQ`1;f2PH>F16Yc$}W(XnZGkw~4BfDo5C&rRUq zmU#9y2%aaEV(XKsCTk!mG86oQ*7`B2dZw7cyno?=Cy+(X%zg&Ga0L%mkFbM|Aj2t_ zpooqx{h50`L{k3dc^2jOJo39lM@g3%NQeE>`hx8n?}BOX39ur>&)ykk`e+ zQRU?5pAfho{q^H*+-MFwy9hF%xaV;O$g9tNo+H-N{=X)qt%FHC1v*>>TW2v{(|>W;s|yTtDAAGEHkR6M zSg{Vq)wkI2?P{}t8!&l)j8WL{&;@?@c>cn{}7iAO%M1S9hK==*v zI@FV4%hu#&xFxkM^h>L}Ty}U*GT>Pgl_)M7*!fORAR30Q@Y|!a@nZQ;%vqh6m1mY3Lt7K_XXV1;GuCgozVt%90v52t@aX}P`q2=-mZhu#)!isgX5UZk^ zCSm89pqp#Q0{65p=XxdM*!(rhv%x>rF6jH#)#%XFJbHIN5;2Qgok;KLvY#e}?Qj_~ z*Viy!lQ3m|$>Xx&ls3(btD~@c^4Qi}yI9ac1bMA5v;Er_1mr>njDQC$*UP{^jVf#C z?>5y~Ip2|R8VN~c&wpz*DQzNBKis4f7%=gnv?ux~WvN^jJ{CEc07PS2BH~58s%E z(sE5e@}o;G*S*Ih1qimo57E^ya?Hu{AfR`JBm~<9hkt3Whem#i%I~6vg`CFmr25+H z(eBNgrm+xneOl8c_>)8$|#YC7ms zco54FrRb5pwcDMgi7ZGsQmUYb;a|)3w(BND`=mF#FjlTmUZAKFc)=_+Zm7%PFwC0} zPLRiNq5)&rO+m6i=6U;koE!MN`-5THU$qhtNqYVF_~K zcYm*BA8t@+Q*QwVEo9BxjxOLhasoa{CN4Jm6zDCkEYRoH0CkFLQ`>0{69M&wWg1Yp z_bK2I5AkG$0U`%6JR8_>zOa6^8`!nCmTWh@6B6c-mGU_?#B_70QW)Bn-J}&Y_cww( z{AMlXvL7FR+*W!s+$7H(wDcc1Jwdd941Z2_@2sLTY`|lx5Kp+zi&nw@%pPI&15ML; z)BHwzmQ8jx*ARK|*P`MtUTTXTqMh_7V-v4>UHgtvm{+91Y!ibTXK$_7AuTg>V&pyt zuQ-KPmG5vvoqNvSU)3BvB zC-7?vtEKfjNZ_2moVJDhyi3G<1%hV-Sw2T=A$xBi3SJ#ckb82|1aWZYf0#e{c>M#M zn&rI!T7X{(y>D^)Air|~!}k99M}I+{@cV(mM50tnuGY?yH5JNb1eV%WH9&s%Sy+e; zi+%O|@|Dcc)1li!F72q5Lz!;hytky}k~;1C$PCOjjgin8?W3e;B>HX@VMuo^z5g%y zFf5#mQ7)zh^eY`<<0PK0g+~TB#jPSYKMjfS#ramb$Z!8@(sKfC+cek)(SNUig-x*} zNj5sMNS&;gR_4q~XHqC0JzJ|J#S;#DJ!>!nrG%^K4un4CU^Mz%xlsdctCHBYbUddE1=n%)W7xLimeeEH^5N4A zQcajFC0#^$N}@+=fe^?%})hDgBY_zK|a)j7gtgG2j+a!2bvb9h==N!`(xAl4y4 zWVygk-9x5c+eoodmWM@X`3pKs{`w1OY1j zZK>zk6{M3^7`!v_0dq9G46Tf zh)aaH#`nP*gMT+-Za5r+WgAG9FTHam z{7%sy_*zz4VLaO*fc!*Al_)kkP2kv^)|FpdK#rv7h|TS2eDhD6Xbb4+axT+BR8vnj z%j>7d7IOMA>VXlC8TK#{KfNEpE6?)8(Hxx&A7Z1|K@B~uMc>L@M998y+f)2UI=frx zAM(fE9RiM4B!9K<2ORfD!Nto&z!5!I!C%!jZNG`3W#mV*d~i4K?u!!>Zl zKUe9sfk4x^&1a2eA7r;a4>Up z3M;w$FKTRWh?H2li&r>oh$G#R)zYg**O|J*wtq}Eig73+OPUMq7}We`TB40mK;X(& zzpaGVBtshNE%UV0))hJ5AhRT!#krEKO{$72E`*A#)nu_Q_WX&6&@K z&xuHD4<3Mw4NX0_>!OGB&J#{UdLMi(V-_Q2wIlc%v$XS4-tn)0+$={6&>_0vWV5Um zAAbw_=Q~0_nEwqBRYGsc+dybCU6Hon797V)I>T4{m5&<*VYCe(ynGjvbCSz2rhAqr ztw-pLj|_CZ4KE@W;&L(citvKNbcw;!9B_dMwh}`GAgV^+BNTFssGp?UZ?a`ms}O}EP4sH7yck4a(h z;?;-xaV}dgwN2uERC9VXgwue^hCF0Hq6$`Pc6BKL=^W zK)NTBp4O$Cz?&7;AU5EGGML!}(|=zzp+g>(&Z*V{99kAgOfR2Qd@CdiuccH(N90&~ zZy`%k^!tF4KCKBNFOK+v$7;r|dLytfM77XhhvU<)R-~tTM?Xfos%Ryy zu_H#)WAM{Rg5@2}Q+dxy*M9`#F|lVy&W9VM78E*`n?@!6*pKmtCh{pInz{BAR!D;@ z%vbB$Ufx1FSUclyh{#j@2vgr6xP3OU1eJj`*_4QOW+ea2f(J6kZH5JRd7x3-MwcyR z&kmPnf6I9i_A9Xl$qPXzI%Bu8Ps@^RsQQWom{Pbj?hW{ugJNqNU4KqVGc|1ulyud_ zK?yz3Fj@L9*ESHO!pCx=#a`iR`tvM!vFNnAoOUU%G3HcvY#Jqs%cV`CT_ z+K9-EP&fsA*3+kI6b<*Id6lf@aFq5O0|ym;N$ipDPXGr0 zyDan}fVHd@tFi-3^nSF-QO(vD6wG+&8&76v81a2#Akn>&r|G z7(0(+^hu0L7C)+fyx<)5k%R}W8l0M&+jL)e>;R7Be@NgTnRY#9hYRiTL_ZkD5NlL? zosIY&kJ|ol=6{y38#R~#-WYLxLt__$VYDdND+>Q|NOTnnL%+;*T~`=2{%0~212`IZ zWsh4IX!JKr{}u4gNv;`j+jPA3H00v)e7avY@sDl|NZ5mPuKadT9C3%)R(KQDcxMjGCU6!a;u;I`)C_=gHbsyW7LMX{+2Q5% znc4w^;eZ(C<@1CI82@cnFt|f_YUP0B+!Mpw#Qn0^$8cS~vvtw*m=y8@(by)(RY(H_ z&M~B*RGDf)i5&wlYmP`j`#V{56bBq*qcfCDfg-YJ7T_kp2}eq4SY&ByIw%&o=b0We zkx|DGJb&P2y@R(F&uA_=Ax(q{PhIYzvZD^iD&Q*aBWXU6J)lhQ{HX7T^jWZ@@B!pJ zBfJI>9Jj9XEQOi%>p~&dmW*Psk5WIfxYOFxM zhQB|f{dI_|%JZ7*$Wbr{>;5hIfT$3xIO$_v3V+K8VRuSfq7dpp3-)#&wMw^f#tlVo z`p983c)njGDU!qJBHlEomHKd}Z)8Kr`pEi7fr0?*NPw)xMHyCw3k$*YE2S?E`QHio zJHfoW8vJKBZ%3>)=fdPPT6j>L9-QK5y^(;0C2t^pyB?SFpd9|7QD4{Hq)q+8y22ju zYJV|p8}?)(PCBB4K{gw;5@sG9oCG|bTrdp#OjPo}m04Sw{eu+4HYhqOx>zy`)k3#L zVfcb<;c@AYNotNh`{ysA#?;WekAQHX9j;dt(5HD7A+KIY*@=b4MvE>GX}g1gX7fWa zw-$iK+tO78OO^TN%-!o=+hghkC3Qy3SbsmrOtGQ;h~kQVa=K&TL)f!mqO=n%AEk*3B7AHwV7NpnqlY^7RENF02xU2PW|cNxb!bCcF;T z2VZHuJxJ~3-qL6tJL44(YZ-JyuOsI+G~rs=0W4q_wIwdwUTL12qN78Prl`MrG=C2h zz|#aT9L$r`njVPNp~!uV$S2D*A;m1r+Hx;#4_T!vy|*X0Mhioe-uNbqR4Iv=c7kZJ zO|+LDD)W_S^(#WxF9>cx97pVXok*`nBXTFyeH4F9^Cyo;C z1x5b?X%yMC#aD3bMD-o}CIV#n7Jp6L>=BqcmO(~#=iWanMg`9SzZY;=AI2dVy66H* z(BPE1s!Pu7PUeM#@>7h_(%R&2Z!ru3_2@B9E7+@BsEz}DaT?oy^?=#Xd_(!vW$i2c zUB%L2j_nE$SVYl&BLso0B1exzH*;LwDwqeeNi zD5SWxXfjt%cI9+mHaKh(50;ZuVXfhS=> zuOe3Jg@ogk6qnz4e;897e!6IXX++6+9lHzS?#g%CO|xl@>*a*#sL027ju9!+k1F## zm3dzJL`yL%m5ZaM41W_6L1N4 zTm435?ZOHZM$v4_3O-_b-k(DJVwUZI8f4HTh|Ze7#e7VJTFw?|FNo#|xg`DfH4_2Y zlNce0dUbina)G%6f(p78X8@-9EGk7x1D~ge2RvCHb8o`$^007N$4Yqip@ewTee=ByNx~G6A~gJccOS`bPOEJa|;uV&JVy$A7M(;m6w!$(ggCQ^i`0#}ZSS z&t{p-|<6@Ba3pcd5@EtJZ12y`RjdP3rUEZN8;; zcQm}^Ga!84{90gYykc3==Vw>+5GE*_KMR2q$HW^u7jjX<86iGV@cu?C-S~c@*C*Bs z7)>X~$A3{hfQ33pSU1pj;VstUsIw#Rje{QTpMPZ$SP1Foc)0 zmVbz!I($cYS9mjbDy!Vb&m>S7WW`pxQC2I#6S3)^u}MW+);!pN9x=Xn70>|y2;dfE z@FXz(a00>Nd{_cJ8u$Q=GP-J-#4eg@c;jJ%3cQk5i|MaT3TMnUGyHuj7 za}Z{KNNVS*Std7#*RgC58Be^l$67#3TYtKFrkB*l)CzM~lwRfO(1&Mk5o<{h!lmA1 zfTI#Go$S&yQ{&y!fI((j^DabO>a|&K&UF77KC(_AIgYohupFo>o_cR0=>ko*t%IXq za5qFRdf@eJ)O(=G-uKNSG*vBtev+UZsN{<>6%7u`XPDi+L=%8>3AK$boMU5Ap?{H| z2iQ|olY`qL%rnkq!=_y1%8`|1KDewx@uX~vs28x0n&`MUMHQ_sT!Cgh$Rs;}7BV;a z$yA&}xy~eBZPTnPmc-lbzvokBY!)e1y*e>Wh7q?|!b@`mALn~7skyY6d+&)2SU(wn zUZwSPu^!Z<^-nNcuzye_Exlux<9`KPeyudR8v1)e&ciF7b(oWOe31rT#gBeF$zvFK zfq#tIje=<90Z^jn#U$CPV(8=umO#QD=H)ffzQljth70dzMi^+RuwD41|ixWqG z)4D#4%-_M2j(P+c|HcE@hq?;Y6(+vlnoNj@>%w-2oV6*}LoFSMaO>?Z0)OqMZq`Ll!~{}Q0wugX{HL@e{}`) zTO%ir4Pl`_Jh&i-{743fv41T}#R$p`78rZpgcy8z^l5OWJLvM!!!xCy{E%NQqeX%` z?a&vEnWePSU98?q?pMTw$Uyk8meqx}Q=uU#u(ME80O;j7`lS^TQ;ddHXQ)62JrdJu zPOW|Z5CwhL)-)peLkZd6AfEi++w6iGU9KkTy))R)Iu5$l^FXecY=0n*gfZ|1nRGE_ zPsjO(MtBvb)$tbnxsTUoaeqQ&1@`k4g*l#wNGXnqKfBOjPBYXZ?h{h|J0$p=2Jh2{ z)8)RegsB^I4@x=w_y%Bwvc#GpQS5<`Ld{E_zD)RbMJ126*!Wk@j_5Ce8Pp_J6W5KJ1CF%*ruSE$5Z&a7 zvZto!#udRUs74i%O1`Z$9?=Fv%pxM-?nmuqU|oI7UoyFs!@A#veF;Od{o;tfXq=W+ zx%W_wu-(H*ZM$9GIfnZMMs3*!%fESW->|RidY0&;1crkoP2g8q6SN03(P?i>xtoup z=>rB4k;PHuW`8{U?zEVj>FZH)YzNZllHl;h!`ZP5s+5pIXZh3Q*`C4yZaDslMUZqx z%s?gk7h8SOHI@{v9(1q>t>@Hwj$!Oo1JBA_zwfZrVc%oF*|v~0sw`JdfoY~pga*OC zD~7~qmf|pO>GaK&N>UodK^Fh*R>L;Qo;L|gUkP+e-GAfPcfA*PvHO`4K{Wgu7>z=a z&Xka(?1)`;l?A(@mgKtzFI9Zq&bl+3*+pkOYl+gzm)NXiZj!uSZIAiIaIlS^9bt-W z&#x&i^$ewBO02680=8|Ls9B1#5;^?9LUNVI{4)jXRdx$ASR@YB7AbX-+EG%&`;GQg z^uk-kfPdIx?wiE1(p)&#bQH=Ih?xW2e%y7PcW8{JO@ux*WKY=iImX%qT5u5_G#Q(= zZNU7ke%Fa+0wjPQg_Ida3MIPjfk`aYJv4s*@QxK%{AyLRo0Fb9n@va8qkGJ zwoXr4noI#2rfY_5EzGt#(5&(djljIWT@8T<(|-vStlj%s*FAc{tB3l$JB4!ngAt>2 z+kO_YwoFxpbN#l}C^gv~EAKZ?u$2zOgWTKwvzZyZCrg5wb2bWCKAZ3jeFKF;3XKO3 z8QxONs(+=vBxZcN=rvmdn?4y8J=$L=@g1kzf~wYugaFpRVY9hj|heaDc!;EtRi@eOQ#Y^ib4*8~i)5*$gi8)xkK;!58_xwsks@aqT+Qw<{ zRT%r2h8_rVw(#^})2x$Fr|byN9j#m0(tnAXp`4_EPt3|C2E7&qJ_riYT+zPfZg8HU z`8`0)G}8pqG;Z22UWVMi#5ZNI5Js@R-jszy1>;&Bp*8^3x5bu z2Td`;F*XnO0^%sYX8Dt0v~2$}Woy+jDikQU;UDKQOMEh7y)PlxeY$DyGFR=f7Yw9V zs7*C0=xFi%&>9-V9WP{{&TbqSH=yydmI2@IG>f=h#!^HTu*=q%jCg3|SsvUCQlsmJ zA@4{fAh)ie0hOrYu#@1l7rcXU9e+mnUf0kw-6=A9dY}kpb!jFCP9Hg;cTI&a9%8e9 z>55{f`7db zK+gMeZvB^|3g3AU>|x9HoY~r9`>G^XzMSSx#?eYqlRH2X7UznP6?s(s$$!7B$K_UA z&+897y%`1%l%`pRL|bidg3ogFo0_%c2BN;QY>U>jDzlj7djnjZP`gQN>9xhZt)#0;OmS z9(R`6fX?@dT5==Ou`w6z$$$3T#25rpI%DcwAlXrd#Cqb+UkfSJ@M?92UZCTvtS&D` zMd(_5zF04>#vicuL{<110~Jhx(#fW>1M#1Oj-$pZu%S%yz;34Gzp!CUtb2U6Ir>9B zo7G1bGCy;DxD4PU$H>5F+fZGk+ty}uN7JVgw11AxuF4QD@4aFfiGMH>TZH&ir$&(I ziga;L!%AMWcEc4pC1aI*WFC7hB|s;Jy~aCYI){>t>X@^L1&9u($@_689e4;b=d{)5 zQ7pZD6l)-+-x`M5bMsCVyn$7Dh=1;?WG)l|>l0$P9| z(Nj{`F)!6kN`C_cqX#$@Mw>#2I{lfoNq=`i>`#O?G2ywfJf8?;ncu%_-cADn{Dc{B zAg!gy%}rgUBOD1rbbK5X*})$40{rt;Dt+!OJ=TvbSAdR_u%Q<%QKd7X3uvex7BN+$Htr z(uV=?jcy8Rzj%_MN|o9S;`BVIUYqfaXS%{pe=V4tecfhYR|y|Tw0g001xMJck8~rF zbG;=;OQmMdv;+^PTC2Idnh_&3sVx8IH^QZbFn?^68g8oULld4A2^zJ(Y3xMy8!NGL zNg1SqR}#rUBEGSN3H+>86^4~1($xnG?9Vt6d7N}*?gr*CCM!sky~Z5bY0a05ZD?cS zBXmOknRCEoM}@Ucldu#&J}kA<+TCw|7b4~bp<&fzDGE2GYy(P-%O}2&{@}^JlSgGM z?SG|LN%v$Ftt^()&)5H4@ebu}K0bWr0Cz!94a{-7IUDoWP6c}$aMnvm(cp$#8=h;& zl0_&>3gbLc*oORmv*f*5WvTQV5O5q2^9x$f-L!YT5eYT>93{fwkx?lVx5+MD3rokI z+D@X@EvlVbBA({1(}&;SCxLO#AXMV-{eLlODXdmB*nZes)9HC4k{1&y&G=dnDL$&m zBIP)&$PE{`F)zm)Zirusi=b#oN)Z5nVhU|v@3!nSf>XcqT=W{S?;TaN2v2)%n8w`x zyo^x=L_+iz@@&f)ptOr?V9(Hf$b>A`m4T}zuv<7|=eSpNZF9NTFsYTO5yPns>3<2U z)>;3Qo(hi2(w&`d!I1FTg+jh7@Rouuo#&7rDmUtiAoIxxO|Y_XBa`?nB^5OdeU>XyfkC zxF4W#cc*c8x1RpyzL`vNUow+aQnvQ4y(+0>)t`0j9N_^aWnUisZCINrNP2omk~JFv zUbjB9S3Z$&Z4z!)^8|wiiEfzQ^?EoBOs!JZT1CZ~%Q0b%N#OIMPV<*e(|`ADOBJ(c zk50r?TlBQaQSf6pZuWSduMI*%VR`jHR8c{h$D6V+9$fs%nWIzW6})$ZzNRp`NDz&m zQzNaTK>9G(oZ)+yMG0C0DeU;v!Qati*I~)@yQ)EP(_%fd7}2p_tyB}5b2K> zWT$Q&!Vpl75nQh>S84+IG|uK?l)p^(X@d{(=+cvg(QsqR_$C0f_!w2eU2VtOeRyTx zf>K=Z>Fw*Q{I} zG!-0S(&D5lGoot)EPorOh`T6d)w)<}J@C(Dy#lLq@#k+D%e7G_*=`&Qs9N&jn( zRHu8>&$igL`c$VnqYnEpLHqn_ zbTsLuigL--Ax2+W1TzhSd%Hes40+>1iIsyn9}|O~DLW(t1$}9=9kq9gb<38w4DKsWS007 z3vGcZ1*4y}lCj4I0Ri%p4w;9LleEnd<^34^0`=~ekw}@RX{pWLlv%bzV`xw>W%E4h zq4oJEv7OgWsDH!6uL7U7yqf@p^o+^lIH%d_NH&~b1$dlJGl%kd<}#3LXMC{P$2ueX z{GFIyk}0EO;qxEg9$t$IE@C%cZ;)Z(ES_KXjP3YIJg)}o>H3~tOZtn-%0sIZUTzf2 zXN^Tk6AX4~*v#SK!`x3j=s%?U5PDMF>?nod5FqafpMS|*w}ev!S_1c{7A~fCweM1i zR1Ub9C+t!T*bs0!ZaPBNNEzo3V(Z<^M~TTl=Cx}?Y=w;<&lWf*O0Txu1oKj}pEy2rMz0BbiOvv_kO*E{Zn*U4r}-JU$_vxUS0gHYZR~Q=&~nyneMU zGWOvux_=*Em_uHcM}O6FY1*cS7pIL?T$0IL7b(Z?IH=Xu{!uEkSL15-#b0g;_;f*yW zTsy4uWpYSe@`d0bb5qDHThU6LHMS5{wUSN_eZ21}Y}Pjb#oF<_!Hh=2RQNgLBLiDY zW`8p~%rkGoSr4C0S>op(ft8$=2NNc6{2PrCk!`5!^7^Pw&Ym8CZB1<77BYv&e!jnX=r zN}$>JuG=#-nr)yf{U%q0(bZa8qvKD&Z+{qW9BD$|FBXcl&EJ{r@6n%RN8%mHCAyJXXn5jK@F%|}U|%cC;7@Bxa>=G^pHRd7}0 zEsKlfW+m;^>_8~`AE+)<_)g{rZLN}{^%&zh|$G20V}A;GD(bKlZ!6ERGQnPC1@snD{hG^<8qH4bW}4Fq@nCIH$58KD(ypBEr`j7chkwwRBhmEU zuNdQwR4_R%EEU{e$a>tEI~`IdqUZ| z5$V1;+rRD*&$JOZtmUGLfPAgZqUj${rlx~w+tZ`uTEK4AukVl{2Fb= zu0Fk4cGe1|{BLv*f4DfT+<(U3wq$LIL-p;mino`y)W(9F{4I{GeHh&uRw_=9zJL5I zr&8(n6*g%dw$^kG{7S2XcsG3@d~lk`&2tWqXSnJI&*ei5DQ^LAb30hjY_R@Xu-Ear z)zVCS!0G0HVinTKCBjy^Vie#vZuPm%Lo#WgI$I zYY!=Se~#sze!ru@JAati8g4bHGr|E3tg1H7M-qD3eR=Uu2xJNhKWJYH$9ZfqmqNSk zD6}3#EyLAflL>0u`W`QBK~#l0yVS`TcaaZFAbt|uGE$zF9_$_Y)_IliPJl0+rFAPB z@)ll5G=ZCVIYs3wEGYS&Y(4~d20e=L&<%-E4&!)^S<5$g_kXx#-|5E;>i z6Us*=nZ}G=W%oLgWuxF>ibNp5G^JVc$#K6P$0z?d6fm1u*T@JdE@L_JbAXTWq4~)a zK|-*G7oAsa+YL>ZV4r9PUhe-H4B^{#Z#eI-4BRWi<8Ce_f9af26l~oa;@RQOLsL$e zUZV84?W~#MRDU6mVIlJjF;xOqGfjU{D;sj(K&}=$1I|b?X+pN?oPBe?5B=Vu+`1?l z+yEzgxYCha)vk*2+j9GqP7XVMAqHo^{~i&AZ5WW-cSK2D<%N{)bR6}$LbPBj@7&f_ z3DdMPjxVHWFe-?OT9d1Yx}Wm{U%>>?3OUp|A;4 z?T|@?OVk>gvvt1y%ho!;w{{WGFvU24LCRGKGH*@M&n$q$y_zm7;H><6m4!oSCx5Sk z$mr5X)8>0wvTK^@Dz@mNOd?m1Z(Jk7eaS1?IkihqQTB|+Fu+de@-<4S`MadSW`^V? zdwp$7#(!GTpq!!^Ju6U|&=jMiJ2S0D1TOREG1m~67&S&0FZCDsU_5c~clukx?^SJ8 z1*XDDD7tO6^UMg~B-t#cETPFxX}=SVy$&D-j!~{+&f`*6?2;N6o1DHC>_IXV`G^_k zDSU0hKtN0!RU^6xNVzW7)5c=Tw&h1t5iZm=u76Rii4cz_O*BsBS7ty{97hu4CH#n5 zG;4sJ|1-k;ZB*yBz^Fv$_ZB*Hk76Ku=h*HV*%zQqizukyU6Ypc62yonk(v^B7=Df) zz0KaiAV+a+tEkNd;KVf4a->}#PGLSMc7}5=Kb7X5J0vrHycTAnE)d?&vygWQcKjmp zGJkEWT)VHM@Q+dD`1m{xCc0f2h^cd(PrC!=rt0hnAu+VP&aVNRjl+nt)KiS#jR5Kq z(|2fV$jD5Feudl-BgO^2x+j%4cCodZ#8f<`JM8Q&9CgC%;n6#Bw6T2`cPyHhl2^H_ z{$O)lmQT1RKibp@Iee|P<}eUM$Lc{V!G95{OqQOeygXXG6Jtrxd(%Gc>3h}Ny@41M zkBG4-`dg|GNRqov$YI1%jmMzhqJ?$7^b<<%$ZFEnEL2e13--{%tsj&A9Q?O7#xU>h zwtI#>@tQ2+0v3}n)jVv&lSWcC8-oN^cY^i>g>XGRj&lO?3HwT;7#|zmUVX;uXMZWR zRvbEJGLP})S~2lpl?P)cA$E#MP}khsdIj3&dQ~Lk`b^#Q*09M4WJ)%z-K;lK=gTLt zm2wizvWf`0k{HFr^O=e2cvr6$%$W|o(6s4L?0Wl%=}Sf}ZA@|sQSO3&FgqR&t z4B}Ak9mC^b$Lt<37;11!l%ORb-G3YcZh;7M8A$=?98{^QPU!K>tf+U`KoZ`+xWs{zR7B zI2PSvi1khcUPjT`K}!ppri$g!Ijw7D5aQS#aV={`fd5AlE#!*!&cZtMLxe^Pi+XmG zAsyL*P0*?g2gZO$HhG9EK{~8bNd}OpmK=5x(_+rZ>acO8E!Mq!wN3K(x^*S;_}3Ff z#SJ;S&N9j{A64b!a#_}Us()|(&DLt&ZFpWur$LQ7yrmPEEX_m-hj&c+;tu=fs`q4< zQfL!pKTB`x6{rY5Ouq0QHpl(WXb=F@DVMFK0XcLQ=&1~Ocxj878!-sjFi?HDeO0z$ z*%Y=4-tBId_%SwlUdnJ_)t?Ur1KMc3!Mgdd2dD51JoNX4dAqC-#ec)7&k313s+M*<(cTA2^0H#ekztE$bn2h!Q6opt$|D#=POoaD2;zPBwgWI zD(@nufYgQYz!1gCa(^)9&%JgMnQR}g_rZl?VXlx^q$^$m{q8=!GRWX?TkK9)@c3gL zjqk31!^+c9uCThXdqy-m9;|ThCG=Wu6^DNMsx#q}+Sq1O+<5Vub5UbboG)RJHt1o7 z%rOGUf{`?sq0v?=jQ&_i@2J!r9Z*b_pJvW#_FcKU8qN6;Yk#xEx}$_2i)^7fbhO(~ zoW-(*2ZPMB2})&&t6D1#TtEt>J<384HP-hyZl82t%YV>N=XP*x$neUrXWmZxry{{> zQV-1m9^iW_q6w9rpbdXhHwv=L`Ds{xR1)vxC|50L`VUj_YmBis_fM8_4weopxYBFq z>hA0{|A>H1ihmsyn{~W+stFbLA}7np__=%Sfc_z7Z;~{e<=uN%GWngViyQ9jeQ_jR z%&ZTG%z}?Q92x-SeNpKl!;RoVT)ktQmSWfznkKoHV&sT zC@H#Ry(OE&v*bv8tbIkDTeCJ$Nynz3??;?BV!aV6SAUv*?XyJTPyC_`v}OAKV1h3t zsT$#6=9`=cHKm`@@}TYgPP?S+sMpMEAk{_F4o8bHwg)0asKwe^Zn9v7lwU6Q3`M5>MP#slVDlvCmaGgCY9A)%BK z`c=MMC2F3{>t%4_A(9PfYSVsLa6lGDWu|60^^Y`&uR7%Acrr4-hl1wg^`O~WI(62^Or(z6xEN)e&u7CEgE@EC_4jg+cn1SLezIZe+T-ATT zNyo{fzz4zXT-E>-qt$!a=pwo$rg z|NhN+zG;+4AAyiIdthA|%KTniR1>T!=V%7&XV;=9E!xTW zn1Asp+k^4bNZ`t2hYhN3AcNFW34_Ow1Vl`llcYHAA=1c?q^(XZQ@SsDwC_{|tSxR305F{Eh=53Dadc*Sd#NWOjo>rsy3rfHhG7YubIC+C6I}}zogCZgiPf&)VCKlt7S+-9+RQl7Ec~W6MvwR z^OB<~THTNE*@PqxLQ%|+(#&t9f;)O=6drA1mWZ&qud^99g^CMB9?1?2?&z=KJyMSr ze)9fkg>>9!y5yPR+rZn`s$(4BmY+lggBb#^hXpFU?wA8HY;m_nhJTEQ}J6I~d;g^jaT%d@R-kY0t)b440&YqwNQx;eTPuRK043AXue-0W#yy&{8o+FP`U z*U>5IzoGN_iWomP=|r-(*_SO4!y{-UAtcu6S`_9l*q`v)$GJY%**^P!G^W8gt8v#t zt_Ul>--4;N*|>EaegvOkd4KOHHuB@IytRr-ybp5s5Xafou_q~o;zn#h-lj6s+zJitlB zp+{RFjv{rCZkC@*;T#c%w7}uJ_?C>G+~9gVUv&E#GlQ6M-+#hPbg#Ojl`R9#Jop`5&Ss=oBgPBj_rz|Li55QZr#riA8rZ!x zR3^2>rm~@za1c6lxrgd49>iDRi9wdURpcBrXBNP7E(%su(^&pWfjY+_+~S*(6mh68 zxL9s`+d;S+lkcGMh1Xzx#KVWHL{#Q(i`;O}=mv{hbi4PoR)3vB5eXh+g$E9EWZg7r zWPL~Q*mI`N0!VO0g-LXAR=T3VTwU8uZY8V;Y>kAeeRZDGVQ)6f0vz28>=`K#&7SzH zcNIIt5@WGf%sv*%x!lutq8)c)aJS~LZG-I8eSHO3R9)Nk(B0jglF|(#-QC?SARR*p z2uKSEU){XY&WoEYty6gk9DzDF()MgzxrN*ASGt8&MlVoa+L859_isAQ z@=MsTs)jR=*ti*>3V&mbu8xYTNzyW~RJKO-Lt;Hw?DF$;1wi$kRX6wxPubS=ETvV@ z2VzP(*Kt_9xhPVf%Thw#Up(28Z)?{0ep!bQ^^&aAOwF zT%znlUlLM}JP({_`3>X&L1&PQNJ-5!d+R(G_`MzRQgt-T+M@G00F%opQ;ir7d~ z;@$TSM%MpzwRS74VaJ{4x4mTTY%Sac63!!QL+0tgkssy90PUTG1 z>uf4(1dksCT&RglOJPR_r@Kf>o!o2W9wVtH6!@>=XU^bh?82z_G7q_U1X+MEpV0c2 zLn^za*m>qx5r$NaXvQ!N52a)Kz>huta8|*=PW5qx#}EDL>oWFvn~pgsaYd0(nOpW* zXw4c!U7yl>!gW$oG19yr!PUIEdc!Wp^sD*$ok?4hMTW(ioV$t_8#8(GLX8|u$opAh zholOS!|PZ0Sv}Vbywm|mZ{ZYymGW{wN|~6{sWiSYWyDIcaQKYAFt!~b3g~9WjZOW; zeRG!AAZ7#U9(Ko;C^^o6rp$_XPphuN z!Qw|_>n*mf3)?EDbn|n&vQJWQN%f=yxsll$sxQ4mxwPPXpp2}}_2{YifCExS?mTY( z9o8aJ+FGLvTTkVDY)~Z^R^#gyLqe3kLQNh-D6Tj=r(G^0meUFae&Ctsy^Tc(8|;J? z39=Q4dibHChx>)TeNhLfE}6R#h2>a`nRyDVK>j~3UvN`=?8XNbFL zWXsOjiu$r&>L|BoeEUME27&QWxtp*h;k{njW)`0)ePMZmn0Wj&bcvMkQy>eG^mUT? zD>73lb>FC|`oU=7`d);*U z4EeY^0>s}vA$NEc0dIUknQonj?SnW@Ij+58-OzW4x9{EUmfyVQb5?Fm=KnrFiSuJ3 zhGP_=r-uh_*#67wBB&!ywM>EcLw#qg(iU*k3F1)RgbD@+)OLKHZ#~*Flp2++CfxXm z0&nVz(W%{|znU5&VWh??X6fkH5@~9|=XRNPdh1g0wF~lCgAK7E~zX zMHn(tz8J_cO8cl`lP~34?VaPeJQiw ze{41vp0q)9fqW?HPe_5Yt2nJPIN|ld@QB5_UwMZDY`})Zw$Fls_1uM?$SmJr?^#Ar z;@NgZTsl@x!sfjjig2q2aMB=-j3tZVn`n`hbRB1Nl< z#6{Z0kNS*!K@FBpw1jIiEf8+rlZBR~91)0Ay}TO4oX|Q--R&**gECx~8eQMq?X8)U zX^eJMYB#*tbK9`)sfrsWY-SwJf*Uaw?&|m`wIov3V}3A?`W(WJ;Y6xEFSCZYt3Cnf zH&G)epsphbv^A?#vM`?$ZxisCl&S9c%H-PP{8}RH#vw^eP=3yy{jxChQu!%v7rVF_ zjL?%v@JT{;scs`{I5Y5_Rb36l0C`V|ZP{4rI@uU9TYTumA?)M*0WCnFeF(;otJw=&6lEHa!yKgct~2)K)zeLZ{wS3uZq)X0yKkSqC%oV z5<^0Qfl-MeX^D}6A&H?OA!}rc!#zuPu){Cd-P~)d0f2mY5`E@7jdF_OcBa+6AI6rK zyE8y|>&eN_khe8=lx^_eKE8Cm@!$-|NJ$J%OaMhiCWJ?&Yy&Z_!|t>`2bG1<{8;e% zB8ni#p*QOE65wN{#zUkfrxwtChd0=H%?dFG1YYmof(A%=`tFGW4)K?}8H1Rp;4q|vyNz z>7-G#_C(Z%irA~Luns}?i(JD=5wDJG?Kf7GZxf2+dxZ|ls<5*lwBnhVNANd8p`OQ- z0Oi$=uMp%3oMCN4HN|0`2fXheBe^s`qPtY>DV+z+_aRY>!b+7uLYriAwwD9^YjadUT+MsR zh1e2(hO!YXQg|MAqRAoQiSaatfK2RS9cZGPUBiZ1r}O-^KAOgL8}2&0^KF57`OK0ve4 z_^iYH|IN*3J+RUb2`_%F2@Qkt*p_++WV(j((t_p^qm?NFvi;|AQfBX_p3OrH!*b7X_qHhf&58rC%=d6sjaWq#Ny=mEYs#Z@Y07Eo1bkyf&ljX9=q!+mPMlWIw zo+x5wr=75zXs;V(QwO)CFS40LUH5G#bvNYdF{fek7&-d4NjJ8i2~t9oP}`0#@>plx zf~oPszXzi4IrPi_m?<@P{6RF%q-7Z}VP64fNK9oy@5xEj)%PRR!mla+>1B_>Yqg1M>WE;B=7M^{uL+-^?OXr_8KPn@Psk*)3 zk>_#tmmNgr;7MB5fhd>nR`-gJUbRj1?JHGsEJ+b#?7g&j^QPR^W_6^&piBYCPDS(@kVT^eu?8pzUhOl(Y*VFWzy(plBEOV*dA zn(g~O$9KHkyZFswe_O^0vR{&rA@{v`nGrH*RA7ceXsG4v~}-Byc@?l2>;c z)vH5e&YWd$LKVctNWNw<0fFM3v0sxRPF4!yh^WPoo~>V4ZszbyQ)lt$r(%m zt~#Ky#+d)sM`N#Eze?mY*{qRA9#5-wvdkL66f|IT0-78rId#S$Ny6+G&#V&E6%Q}y z`sz)fc zENW=UKegsVt?dj8`{D7}EQ)cmtwPyyz-F3~>8Qbd8%_LmWsKr=Eb zz~-f1xL78=0Z+9FUa;#=1={YTw)1CG$MEF}(XmNoP=uobyok28C{aF=mn`oHX5%)H zfsz{fMwQwJgb>vaH*tRZeLAC@jZ7o7MyAq*0nCRs0!8!)dTSh;$>E z_=MCg(Sau+iwu<%9jMf!?mLUyJt4rW(4E}XW=pt^1~uqKn9zXt6A}-_ul$oD9PBOc z_kHxT_pc;Jt;XKf@+thJGK9PAo{(CU=vi!VB+9?&bC{~Kbv)qd6JjQ_oKTwQ4D^ad zYAJhGPe`ukC2U;BK{_Q)naGBZ4eA#-93m(BeIoqSM)0Kk0Wh{_8}&A}_qFVRf+$2^>}LA~wIt zn?O;q$vAUg{5y)9d|^M$25RXehm{5oUvgEbO{3;>qzZ0pW)pfijD(qd1Z#MfPuZSm z<{5+(_#~{?hU&l!wjE>24{VHa2kwB$Jw11$RV4rH!my7j=cQgnZ`!+(Fq$XE5prNc zMJi>tn*=OQGB2J4m8#tKL9-jk8hAls3rJ#po%uq4PuvS8O)(2j2CXh#O$N5+rM z75|nsVngci1D>1~^%x3tfBG5=ld#1HjLv|VnS<9WF?Jx}Z3Id}B!VW6b)!cCzZC2=g>H^jjJo7t~jwy(UI7v(nS4pi3wu< z0~M)zWga_(ti0=I-JSBS3p@$ib3?vMa3hVB9^=Ym+mLnh=PiMD>-Aa-A_9wZ%^ot{ z{lQIVpDw3>fd&AJy)MTyYg#qNWRin;;g#U4%Fua4+laL3LB}pVe`iB|J7Fvlz>d@U zmt&|JcPiRW<71Yqg-~fR{)EOPE8KNEMq(Md9A(-QYdM+BK?H@ZL6h?Aui^F6Ya*15 z6z6>ODoeZP%h-moA83c=2H#ABisZt|*9Nr0u0+V{2a8EJfQ@=ry=)vZaY2Iyrdk|ES7xPopQl8WI_k9^FP*0*la zJ?H#t-aOPD!ph?2ra?U+vx~mb>@&*O9Ack#* zZv3gKIgp_Qkn63VP;|_`$oQP#3)=kD%KY305qInno*&%jk63%^;14{Z5`)(Em1Vx; z5xo{Z8f;RM%iP|YjV}wRTJ`h-`JfQq^tjl@43&IfmaoF0j8GgM#>X8lNka56Tz7w6 zq4e{UW|3VK|BcRWNyywd7WsIFuakj6O`@07<|WWBWhaP4Zq?^D1x?n%)mW+E><8ZT zoVy1;341IKesNLpHO^L?5RFW{LCb=9@^{#CEl=Z}GkzTRj}xSA(Az6RsA@AkQBafS zHPt^bPC%bLwMN&H!kkC1B0ny z*e#aHD)a^G+-+70w5U-)q>ayx@qckGKBhus|GdV6k+#)s}$kKWpf8A>h-ke&>ju6Y5&y=_yx_o16AGRn)Cw;D?_aAI30XM4w0 z&;(Kt#K|JJK)bkHLM(#|Ux;-XgqYsfo!l4{G;98J;5 zI!}O%m8AFFf)Kl;Quf)%<8@j?VRsUn;oC+Q`;1{rZ>B!)4}!+W{yrc5WvgDh$5Ik_ zWNxltLX(}W=z#*+g`DRQ!RqEJSjK~)$8W&k(kmEAZ7Q!HWAKCgujJoV?zM=*V^r&_GMHG8-?$Pqs8IS=Lbvd42=zb~V$l%RkdkdvtIhuoB z0pD(I7V2BRrw1<=4<(UiG)s$np?>rN>xdVEmPa>766~1aNxZ*nD#xR1?qeZjs`;fp zW2GOJGi7;(y}X-VM{*J2-zr>l;9bKPf+-jbiMz=KS9UU*8ILfwG8Dv}J{w`icL}w$ z%SsE(rB$0L@<9 z+NXqh$n?;7F!fN8eu{;%E439FhhVjGl{26Z@2A=3GhRvbM{3hp-=;}4LA|Kk2j@0|`E*}t{3MN9mt3|56>4>JQXW$|Yt}!iOg>lV~rSj?7H?!6^>l&1=R?B9C89ufv zlYtFMb7Wo(OZ0xF)+O6AleN8Z=O7B}GDeE&CFWhwaIGS5#!D={qe&ElT%A;mY%8ts z!o$p-y^vx}BymPVvE}Nk?ZvBApHr2e`}-Z=2gW)FwimiF0;3W#(n7ETBV<)|5Ep>} zWjQElYybcN57;Pru0k-c;fjs~0JIPS034v45h!ZV?i?H*(DjM8(XW@AClUYxdIJgo zxPRN#o^vJA!V!5w0Q~A`gVkM`K(9INmd^M!$)VHEhNrJft5$PFmN3<6=Hn`7c$$nF z9uGmms7gwdc(!=v2pm20!B?VD9z%X)D6|Yw`aAeL2((3C{j$VR#lTHusP?|S#`VlA zf#zeNz`9|Xfx!8t24DjQ3U<+>##MmF`OLu6w7(?7F6~o=fr5b-oknR!ifrP7@AlyC z*eQ{dzK`qic+E3L0T7?hahKkDtsVG5FCGPsbJMTrK;GV_Q~sWqz|17oPoLCkJXGrt zl~}sb&wD(UZYpjGTf-vOjf7mwXN&Mu#{~s}DX<9kzF417)93un1hDiQ{I4LcN!=H7 zs<6C0NLs`q;r83b)8x5RcW}|>f#cf{(epDf?7IiXJcR7f(I<+vep8`$>IXtPrp;nH zm`r`8Jhg^W2DgBNz;nZmU2jh7L*sKDEZ=N&JFUf*d>RleGwF`7T@cz}?0E{1Y{m{) zXfv^L`;5-=3qs?_h| zIrl0^2UQ+_JRxBv=xP|Wg&J9R8vE)iFDbshQJl~GI8iE61&(n?u0)$J=wu%3ELbs z9yg|R$b&$)f*c<$bpDc3+sYK_ER@mRnySMt|5`~Ne^c;t9E~4h*7l~CZ&Q*Xu*E7t zh~S{E)p}`k$!gX<+nLKDjxH#n-8ndWji7sp&dYE($%_qY(b#wvp#!fPk_d!h5-gdriQM8$_%y1dhu&O4_>UxHfij7T2 zq*-5Ef9W$xB!nG?T}z2P2~TMf1L`O@+3A{?NDHSGi3G0jRv?zDzgFLpndxWlPLu6i%FIZsUl22chD z#H3zgY=}yx47wI*upDQGmf8bjsvz4OqTW@%+~yrQ89V%JQ_`={YcJuG-(QNg5P@1o z|DmLwnT@AsI_J1JTxOK@18R~!x{vi`uXc2KFzrkQTY)}(UW{TDg`3k>Uz??4U;o)# zVSjatUjER|jMsunQVw%@;-&nviXUUBZbb3Y)g$7x>LuCzWMmBNC1cHiw6lsHbw4wx zs7uyXKQGFM=(Sv+W(U~R+cFoMy%gjwa#AvJdVWL8Shn%*NmxQdMiocV44y!t<-YW` z|2wrC*~0c!`pl&-TfSwyb19fl&US`L9G%@(ww!q#g(GlALGNEGMhgUv>BSv)mI}E< zeT1|lw4zXTN@zRG7hgw828Qcr(`W*69jCte&HLrTIQUl-K)XHLbB-&|e-d(u-H`Z} zQF;!=PiBB9BP)F{Wnep1RZLD_%u>-o4c*a&yTLL3rPTVfyzpyt!pkq%xx%yASxHYf zj(U_Brq2C47m07YN(>j~>r?rB)_0rR$gCEvqM=F-00;YAJm-Le2H-^H>5lMFdYE99 zIr9^{!aXQ|c@H49ct{gEi(`}XvFn8zqHtSGOeGc@!-9XpkqvKn7P}d1dpoN($3<^T zo-g+vMOPulAyNOCnx`NlnLrR$v>ai%GcRgRnkSsXl-_}CsJTE(aLg_TZA}^X!x+88SGf8#EixIl3m|(xE!tCzqte$_KtgfqwRx%VqGUi z4R$meH)G`jD(tK*{N*2zmA1_?sc&i%2DzNjoiAgS_6S9n7A?CCHPl;P3j!5+JSa^^49r z2qJr9W*~HQnRj`CekKc{F1&}+Hc>Z^e>Pv#+np}x`SXCWFnn(jq6Xaq(bs8t@$t^*>||+gq4z!dLtiH8ii&fM;*<*MMDR0W}l+Tr^8Ct zr)@poyd)drCr!KM5O6Y>nf_dP!*K0|?Z3yB2)FOOewgAi{uWBAk&74@lU3k~!5r2o z$17aI@&rceOC*rf@=DAJraNcRpk;!hFuVY?gVY;JwMVnsM&U!!EmbDh+jdAp+`Pg) z?62K5&N!X018ivwICH*w8l5nXINiN_%q!e~E44$roK7du&7YepO~aXfjPEk0XW?FI z&EMrkoq{>yffAgbJS%3GA%mV{mi`7^ z;p5E*58<8D7S&Rdil88ma7zQwsM4m9E=eK>655Yrm5UIL;JA3h=!;_Hr_z_MyDAtnHa~U?}k85r8t*@%;DC{+#mO%FOVhhbNEUj5?+6+*9;uc9b z!>)8&|5^?#px3pLO?*+6(Hc^lC6?#T)|X?&rQHM`$O*G5a!? z63cdl@{lWYd!+J?I zAK(A{V#yq0hATgP`l3Hn<`YJAy|ucj{fA+e9^iERdkwFFVuX`;T@pz1WV1Yse9%1BIh=}Y5X@2Qjz`nhml0&c;i{)WHJ3!-bg$R z)w@vZ9~CVi2?%|KY2ju(1X4y}XOTrVI%ADc=1K{-|BS6mU&wUzipam^K=)^Hu8eI) z&_@mX#iYS9wfN6$HNElC9iJdm5$9dqE^1`UJI_7$LZ_oKtB&HJD&Bu z1*iZ}HrmnwXl-_D=*79~LZlN3Yv$kR^l+41l z3KtsGQcCAOdktjLx9;Is13@B@)T|2zULWFZn0!ChLIFbz+0NvUyZAhTcvK_{c5iKD}Dh3?arIPH$9@iQ5Y-tu9*1RTOj^#bT*p z=U7Q;l@N^#5N|HXl~$+In(N>9E?Fr~?fv}5AQzEYdwC>`X*kQz9_aMbvT$xEK=3M_ zKgz9OarD`U$8@kad*wTY_dbwU6-x+$T#cV^(VGGtZoI0-CthuMzZ;*}NVPc?TcO8S zRWtX`F6c?uQh4fAL}Y%MsAQ>q^GaS{A-~49na;*FsLJge-lniUc zpbnR~q(^$c4u+LRdijfS^@M(nMW*m19g{=MatfPg>HF@yI>zJ)bxnoJ^kad@+a;o@ zwh{dTs$cP>RlaLK2j)%|Vp9ij!{mR%k2${^!Sc1e9eyYO0%&nMk9D()?z{Ls_aj^- zWh!OIk@e9Bp+t$a5N!wr2vZtPnv+Xwzt_7mQ<=7fwT(f){#pCBLY^d+;KitUA@Du# z?Ch;|_^!<6Q7w$SC)#!{$qq{PJ`ZoeXyW%FTwFYmX66PEIQHY*gwo}JomY!2I-MUm zR7;nlGp{fq|qGxId5%qH6&uFqjTsC z{nCVF+QLAeR}Me6*W(RieJ?eG{+!`BCmCU47&D@4l$$%O&#OoYcltt3+;_xA;n{4% z>=Ai6$qAEBJFqT#3+Ju2*vr!h>zBO6Hd2aMAu$mgth=zqnt;CB#3Zys(MA4pgS?0> zT@@4{F;w4oiFNOaYl@ z6nGQ>#?1iq@XSQr-236hZ|i~l3_6rO6vB6JyV}fx_{qMu;UMGsds)RI;sTfC zUOv%P;%64u<`*1(7)KQ${d1>MN+-?47nlp{IaNR?e^f{*vuE%#Ey7U_&~?QtA66SN zs87$O+K5pVDP!FD3QrAN%t(~qK7&2aENS}|4IliV1;=^9Q-#<{v8$-uqGmHMTo-m@1;_LM(aF}mQH9M62lNe9{W%^H$$m#r>3LIo92?TyF!{XAh0Wv2M(&CV%3#TF+er zdA>A{0wKSNnC`Uz?Jvw+%#h*%J*(1I+(Fd#iX#)KdzeIGupS5juR1UrwRKHT+^8#0 zMok&Qhr3DkB)NmI_ap(5)J`ilUOGMRmZ@|<3Nf4IS|A%Ed-Ozs-*!p6^1|HhpPPn_ z%gHvnlcr=jp1Iyx*Sl6Dm}N<(37hj}J?k^bA>pIWlt|;c==ugeBiuOX5A^?t%O`^` z|4yde7*+umcIX}75a<~AXiWzRAHvDP{a(92#T>%HLt^|on^vTU&bITMVR0M3WA zY5m7=`2XkGG@St_q6rML9!ufmvu~kc1@Pz)xzx7xr8M=}47QzftK}Os45|?%N!C6L z>B*I4y-B4p0EuB}xg&H4A)3N$g{une-5mH!H~Pzplab)3$7{Q`G%B?gTs0WSoK9B2 zOmm185 zKhO!p4Y|mD9*N09`9={*sEN(mnM2)m5>`GRu@f7BvNFH zW;&ZU4)~s!iu7{*$(2ea35?08=BGVox6OG=ZIM2dZ{`wz?F}+9l^D`TVGxym_|CUE z;Macpp6jX0i7@6nICpLNR!Hwyve28Gpr=Q=iI=J;asxGlY>DLZCPCn2aBuNS;HF)Q zy+iNyh2aT-KWXd*17vx{K8bKZh4G5-u#KV{Iq<{GK=E1lPsAUQFP#}t#MEpQ7|@G) zVN*2ul@!H`M@JR%#Vnc2;y4Otv+0x$zmARaxm?PoWy(hMEq3r-aCIk+!UWazCczu4 zE%AbSYK8t28}sJ%q?hL$46oLw8Zn+czE?onlKRcP1k9K+_Zm`{2(^8 z`VQp&)Pm_8tW+l->^A-0K0#+ZIlrIa%Lld`dxOmvHMwq2uVl4@ncnb*RlI;rsA6?R zO5Hi(Epsc$eOg-nVwdPW&5&XY%y^v~ihoJ(4%0WQL7c($R|c4|D7gEsb-1Zj*}wNpJzvz_+eAE7zoDoI zbK$nN`+9}F!}vRw=A5}zphteIIgP(HpN<6*&?IJ4k$%Bvq# z!1)2xZjCn7-qD=n^13e?r;}n8uhKsEn8WVNQjLpwF==W)kK(gnND@W$?=*+m(+OT) z3D;Y*wIkkhO(%=z@_ZIi8SHq}khX~7aG=lQ*^-CrHBjvpb0kRNz@i(SD;Tx?=A_;_ z7)?16{E(7vHl$6=a?zbA+0uk86|}=pKVVtyc@gk@?`H0Y+b4(VT{S6XcAMyVXutQP{AY$V-n~g)C4ue_}*pJr$fhvr=&% zNo#i-QBl6G4X;Tnl29&S!gipTE{R9^%$y;Sr!y6_A+C8s9k#uDiD+?z3zHS?D>Iy& z2f~_4vTn>jttFotJej_5SM)?)?0E;Ynqh&TB$2y>g{kvel!+w8 zwRT`h*vYmVi2L@ozE`8)1*bs0xp(XMy}t_Q0@pC|TlbWYPG#Bg4hy;9+akG<8$MJ1 zxXq3I92$^alZX*v#n7czSvv`L*Syi);Nj%4AAL5zc-x%OTznwFik9RJ?e_f;Xbf#h zs{g&!iP6pX#Zfd;7XQYJZ}8c{Mhrb36u!`qELqWj=G5c^Ji5$PweFr^hIUeMARnKa8wmH~oPa8aC_Fcgz7#=Cfj2U^fgnJh zCNR#MMg=XCZrR(FjJTdGXx>XnZ_fBU8yJgFL5G%t zo(E4`<^ov)Pb(LoZ{CKc+$n7hkC?&;uZoofSY)NcOTlinu2ga9;9!2bT6FN^IM zfo@2>BwH0G(K}j}L>%WT?Ev$JDD9Tk7y2%pfDiZ$$X!>^o_&cr?eWdlnyb3X+G;p- zpTnBN8mGE9`CKWY`8DgCG${eHDw9lfk0d(ZyXr%{!wf&v<#ztew|6$ntZhblcQ(f& z4%Z>4JWyOv#Z0M8c`pe$`Sa!_k86`tDTBXTehGzi_5&6BOHN}bCT(E{%uq3fZl3pSILP`Ij`|a?5Ovpj~ z)y#@y;mCS#@*~NM5a6^(X!j9`rUCR0sK2 zm+o=vXglJxU|cg8C;dn=ALbt%$**jWYzl+|OIpPG695hBhk$rw$Gz9c(BLRNoc~7Y zL;o{<pJo8U(Gb!56y_wkL|qgc(YA?Cp6foC(!>aA_CqA*e%Ut*nQp) zXkg-W{)dQbwEy;<_@0$(MhvtDwo@1$0O0x0B>rnQRS^7zp#gcJ{}W>*Ou`rmR+0_= zsLAmNlPCOu0Wv{6nyT)VFk}2uBK8pBgz-1)uMe+1iVI(H6CnWt1CRjjN34tD511Vc zc>F(W6*0xHB`6x}CMf5BDzTb^1W|ki-*{?+36K4sYQNW!g$Yjt6!7wY4yJ#UDP#&Vh=K~9?eUazueF%HKj2qU`Ta{P1j;WAJ816We{^we4ck>1 z4Ewbg6Mr;c)S^DXdMN*z6Yf({tzw;dfiah0%;WlXM*oHRug?g-hDA-+bLKTDjtU+J z(gO2=bBgM(+P&wj@N!ys0_GI`mwX%SdrYDr^!;S~$LV{Nn2k599~gxO9`VQO(QzL# zZBqYJeMIo?2`U)#75sYaJtF=CX6e^l^ScoKIRGF6P#i8iGm?wj!_M=OoL)vxr+6@} z#lI%Cy9XFZ6bl*}Gy(I_l|Qw1Uo@q(;G#hxzGr_3`$_vx>5^(_x4(7)`Tv@Xu}S{| z?jS(_dqQrY1M?@4{}pD3{8+}lqapEHxq;v=p!}-~XOw?o2T>o7#(fw1=)ozDss9S= zLx+Ae{oSYFT51mW2B#PV_vG;a*wg(7OZ@jle9ykX0A{yf_!U6~B4hlgHy%Ca*IeK| zi6Q~`^!KAB_w$nnOe*6)i%zF{{Dsd)D1h`56yWJ2i~+|3MwAR1>z9&0!+bw;J-To8 z5$yRIEJ$S&jtaCl2X~MAGsO3}|6Yv$=XR_0@E*ticc # Piano Booster Beginner Music Course + This is the beginner piano music course for the **Piano Booster** open source teaching system. diff --git a/music/src/BoosterMusic/01-ClairDeLaLune.abc b/music/src/BoosterMusic/01-ClairDeLaLune.abc index 73223d65..55a00351 100644 --- a/music/src/BoosterMusic/01-ClairDeLaLune.abc +++ b/music/src/BoosterMusic/01-ClairDeLaLune.abc @@ -12,12 +12,10 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] CCCD | E2D2 | CEDD | C4 | -[V: LH1] z4 | z4 | z4 | z4 | -[V: RH1] CCCD | E2D2 | CEDD | C4 | -[V: LH1] z4 | z4 | z4 | z4 | -[V: RH1] DDDD | E2E2 | EEDD | C4 | -[V: LH1] z4 | z4 | z4 | z4 | -[V: RH1] CCCD | E2D2 | CEDD | C4 | -[V: LH1] z4 | z4 | z4 | z4 | +[V: RH1] CCCD | E2D2 | CEDD | C4 | CCCD | E2D2 | +[V: LH1] z4 | z4 | z4 | z4 | z4 | z4 | +[V: RH1] CEDD | C4 | DDDD | E2E2 | +[V: LH1] z4 | z4 | z4 | z4 | +[V: RH1] EEDD | C4 | CCCD | E2D2 | CEDD | C4 | +[V: LH1] z4 | z4 | z4 | z4 | z4 | z4 | % diff --git a/music/src/BoosterMusic/02-LavendersBlue.abc b/music/src/BoosterMusic/02-LavendersBlue.abc index e34dded5..f8e0818e 100644 --- a/music/src/BoosterMusic/02-LavendersBlue.abc +++ b/music/src/BoosterMusic/02-LavendersBlue.abc @@ -13,8 +13,5 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] |: C G G | G F/E/D/C/ | C A A | A3 | -[V: LH1] |: z3 | z3 | z3 | z3 | -[V: RH1] C G G | G F/E/D/C/ | F E D | C3 :| -[V: LH1] z3 | z3 | z3 | z3 :| -% +[V: RH1] |: C G G | G F/E/D/C/ | C A A | A3 | C G G | G F/E/D/C/ | F E D | C3 :| +[V: LH1] |: z3 | z3 | z3 | z3 | z3 | z3 | z3 | z3 :| diff --git a/music/src/BoosterMusic/05-ScarboroughFair.abc b/music/src/BoosterMusic/05-ScarboroughFair.abc index ea44586d..d898a0ac 100644 --- a/music/src/BoosterMusic/05-ScarboroughFair.abc +++ b/music/src/BoosterMusic/05-ScarboroughFair.abc @@ -13,12 +13,10 @@ V: LH1 clef=bass %%MIDI program 1 3 %%MIDI gchordoff % -[V: RH1] |: D2D | A2A | E3/2F/E | D3 | zAc | -[V: LH1] |: z3 | z3 | z3 | z3 | z3 | -[V: RH1] d2c | ABG | A3- | Azd | d2d | -[V: LH1] z3 | z3 | z3 | z3 | z3 | -[V: RH1] c2A | AGF | E/C/-C2 |-C3 | -[V: LH1] z3 | z3 | z3 | z3 | -[V: RH1] D2A | G2F | EDC | D3- | D3 :| -[V: LH1] z3 | z3 | z3 | z3 | z3 :| +[V: RH1] |: D2D | A2A | E3/2F/E | D3 | zAc | d2c | ABG | +[V: LH1] |: z3 | z3 | z3 | z3 | z3 | z3 | z3 | +[V: RH1] A3- | Azd | d2d | c2A | AGF | +[V: LH1] z3 | z3 | z3 | z3 | z3 | +[V: RH1] E/C/-C2 |-C3 | D2A | G2F | EDC | D3- | D3 :| +[V: LH1] z3 | z3 | z3 | z3 | z3 | z3 | z3 :| % diff --git a/music/src/BoosterMusic/Introduction.md b/music/src/BoosterMusic/Introduction.md index 0640ba02..75e863ba 100644 --- a/music/src/BoosterMusic/Introduction.md +++ b/music/src/BoosterMusic/Introduction.md @@ -1,4 +1,10 @@ +--- +pagetitle: 'Booster Music PianoBooster' +--- +
# Piano Booster Music Course +
+ This is the starter music course for the **Piano Booster** open source teaching system. If you are complete beginner please see the Beginner Music Course. diff --git a/music/src/README.md b/music/src/README.md new file mode 100644 index 00000000..73baaeba --- /dev/null +++ b/music/src/README.md @@ -0,0 +1,25 @@ +# Piano Booster Music + +These pieces of music have been created to work with **PianoBooster** and +have the creative commons copyright. + +_Please add to the music on this page - everyone can help._ For more information see this +[forum post](http://piano-booster.2625608.n2.nabble.com/Creating-music-for-PianoBooster-using-MMA-Everyone-can-help-td4167350.html). + +The piano parts for **PianoBooster** were created using the [ABC Plus music](http://abcplus.sourceforge.net/) system, +and the accompaniment was created with the [Musical MIDI Accompaniment (MMA)](http://www.mellowood.ca/mma/). + +The music in these directories has already been built to generate the MIDI files and PDF sheet music that work with **PianoBooster**. +Please see the [BoosterMusicBooks.zip](../BoosterMusicBooks.zip) zip file. + + +## Creating the MIDI files and PDF sheet music + +Only if you are contributing new pieces of music +or the translations have been updated will you need to run the script `makemusic.py`. + +Ensure that the following packages are installed: +`python3`, `abcm2ps`, `abcmidi`, `mma`, `pandoc`, `po4a`, `zip` + +To create an updated `BoosterMusicBooks.zip` file run the script `makemusic.py`. +This script has only been tested to work on Linux OS. diff --git a/music/src/makemusic.py b/music/src/makemusic.py index 50b78cb0..267b7f33 100755 --- a/music/src/makemusic.py +++ b/music/src/makemusic.py @@ -127,7 +127,7 @@ def create_book_markdown(src_dir, book_name, song): web_md_path_name = build_web_dir + book_name + ".md" - execute_command("abcm2ps -i -g -c \"{0}.abc\" -O \"{1}.svg\"".format(ps_name, web_svg_path_name)) + execute_command("abcm2ps -i -g \"{0}.abc\" -O \"{1}.svg\"".format(ps_name, web_svg_path_name)) fix_svg_bug(web_svg_path_name) @@ -144,7 +144,7 @@ def create_book_markdown(src_dir, book_name, song): if in_file == 0: sys.exit("Open Error: " + src_path_name) - md_text = "\n![{0}]({1}fixed.svg)\n\n".format(song, src_path_name) + md_text = "\n![]({0}fixed.svg)\n\n".format(src_path_name) md_text += in_file.read() in_file.close() out_file.write(md_text) @@ -154,12 +154,10 @@ def create_book_markdown(src_dir, book_name, song): def create_pandoc_pdf(web_dir, book_name): output_dir = build_zip_dir + book_name execute_command( - "cd {0};pandoc -r markdown '{2}.md' -V geometry:\"top=1.5cm, bottom=1.5cm, left=2cm, right=2cm\" -fmarkdown-implicit_figures -o '../../{1}/{2}.pdf'" + "cd {0};pandoc --from=markdown+raw_html+yaml_metadata_block '{2}.md' -V geometry:\"top=1.5cm, bottom=1.5cm, left=2cm, right=2cm\" -o '../../{1}/{2}.pdf'" .format(web_dir, output_dir, book_name)) - - def process_songs(src_dir, book_name, all_song_names): temp_mma_dir = temp_dir + 'mma/' + src_dir + '/' make_dir(temp_mma_dir) @@ -187,6 +185,7 @@ def process_book(src_dir, book_name): def create_zip_file(): + os.system(f'cp "../../doc/images/pianobooster-note-chart.pdf" "{build_dir}/{zip_file_name + music_release}/"') rm_file("{0}/{1}.zip".format(build_dir, zip_file_name)) execute_command("cd {0};zip -r {1}.zip \"{2}\" ".format(build_dir, zip_file_name, zip_file_name + music_release)) From 0156e0e6201a52ce5163a4792168d24f98e5029d Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sat, 12 Dec 2020 20:07:02 +0000 Subject: [PATCH 82/84] Updated the URL to point to the new pianobooster.org website. --- BUILD.md | 5 +++-- Changelog.txt | 2 +- README.md | 37 +++++++++++++++++++++---------------- doc/README.md | 7 +++---- pianobooster.6 | 2 +- pkgs/win32/pianobooster.nsi | 9 +++++++-- src/QtWindow.cpp | 10 +++++----- src/Util.cpp | 6 ++++-- src/version.h | 2 +- 9 files changed, 46 insertions(+), 34 deletions(-) diff --git a/BUILD.md b/BUILD.md index 52b4aef4..e3cf1a91 100644 --- a/BUILD.md +++ b/BUILD.md @@ -17,7 +17,8 @@ To compile the PianoBooster source code type: `make -j$(nproc)` -The pianobooster binary executable is now in a new build subdirectory. Piano Booster is designed to run in place so you can type `build/pianobooster` to start running the program. +The pianobooster binary executable is now in a new build subdirectory. +PianoBooster is designed to run in place so you can type `build/pianobooster` to start running the program. (Optional) If you wish to install PianoBooster as root type: @@ -74,7 +75,7 @@ Or alternatively you can install QtCreator and then open the `CMakeLists.txt`. # Build options Using `cmake` without any flags defaults to the recommended build options. -However the following build options below can be changed by using the `-D` flag to `cmake`. +However the following build options below can be changed by using the `-D` flag to `cmake`. **WITH_INTERNAL_FLUIDSYNTH:** build with an internal FluidSynth sound generator [Default:ON] diff --git a/Changelog.txt b/Changelog.txt index ad4ff8d3..2848f93a 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,4 @@ -0.7.4-RC1 (28 May 2020) +1.0.0-RC1 (12 Dec 2020) - Integrated fluidsynth as a build option. - Changes necessary for building an AppImage. - Added to the manual language selection. diff --git a/README.md b/README.md index d8974e08..d5e45632 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # == THE URL HAS CHANGED == -This Piano Booster repository has now been transferred to @pianobooster as the new owner. +This **PianoBooster** repository has now been transferred to @pianobooster as the new owner. Please update all your bookmarks and [update](https://docs.github.com/en/free-pro-team@latest/github/using-git/changing-a-remotes-url) any existing local clones to point to the new repository URL https://github.com/pianobooster/PianoBooster @@ -9,15 +9,15 @@ Please update all your bookmarks and [update](https://docs.github.com/en/free-pr # INTRODUCTION -Piano Booster is a MIDI file player that displays the musical notes AND teaches you how to +**PianoBooster** is a MIDI file player that displays the musical notes AND teaches you how to play the piano. The difference between playing along to a CD or a standard MIDI file is that Piano Booster listens and reacts to what you are playing on a MIDI piano keyboard. -You can play along to any track in the MIDI file and PianoBooster will +You can play along to any track in the MIDI file and Piano Booster will follow your playing. Piano Booster makes learning to sight read fun! -Piano Booster is a free (Open Source) program, available from: +Piano Booster is a free (Open Source) program, available from: # FEATURES @@ -35,16 +35,19 @@ Piano Booster is a free (Open Source) program, available from: ). Piano booster now includes a built in version of the FluidSynth sound generator. In order for FluidSynth to work and to hear sound a `.sf2` (sound font) file is required which must be loaded using the MIDI Setup/Fluidsynth menu of Piano Booster. A recommended General Midi (GM) sound font file is the `FluidR3_GM.sf2` +Binary executable version of **PianoBooster** are available for Windows, MacOS and Linux, which can be downloaded from the [Piano Booster website](). +Piano Booster now includes a built in version of the FluidSynth sound generator. +In order for FluidSynth to work and to hear sound a `.sf2` (sound font) file is required which must be loaded using the MIDI Setup/Fluidsynth menu of Piano Booster. +A recommended General Midi (GM) sound font file is the `FluidR3_GM.sf2` -To play along with Piano Booster you will need a MIDI Piano Keyboard. -If you don't have a MIDI keyboard you can still try out PianoBooster using the PC keyboard, 'x' is middle C - but a MIDI piano is highly recommended. +To play along with **PianoBooster** you will need a MIDI Piano Keyboard. +If you don't have a MIDI keyboard you can still try out Piano Booster using the PC keyboard, 'x' is middle C - but a MIDI piano is highly recommended. After connecting the MIDI keyboard you need to setup the midi input device using the Piano Booster MIDI setup menu. -Piano Booster now comes with a music teaching course called Booster Music. +**PianoBooster** now comes with a music teaching course called Booster Music. The MIDI files for this course are in a folder called `BoosterMusicBooks` located in the `Music` folder on your PC. -The Booster Music teaching course is also available on the [Piano Booster website](). +The Booster Music teaching course is also available on the [Piano Booster website](). Use the File/Open from the Piano Booster menu to load the MIDI file ".mid" or a karaoke ".kar" file. Finally choose the skill level, if you want to @@ -54,7 +57,7 @@ start. # TRANSLATIONS -PianoBooster isn't translated in your language? Help us, and we will gladly ship +**PianoBooster** isn't translated in your language? Help us, and we will gladly ship new translations with it. Please see the [Web-based continuous localisation](https://hosted.weblate.org/projects/pianobooster/) (Weblate) to contribute to the language translations. @@ -63,27 +66,29 @@ The translation required for the Piano Booster app are located [here](https://ho # LICENSE -Piano Booster is fully copyrighted by the authors and all rights are reserved. +**PianoBooster** is fully copyrighted by the authors and all rights are reserved. -PianoBooster is free software (Open Source software): you can redistribute it and/or modify +**PianoBooster** is free software (Open Source software): you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -PianoBooster is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +**PianoBooster** is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in the file "gplv3.txt" or from the web site or [gplv3.txt](gplv3.txt). -The Piano Booster Documentation and Music are released under the Creative Commons License (CC-BY). +The **PianoBooster** documentation and music are released under the Creative Commons License (CC-BY). [PianoBooster License](license.txt) # SOURCE CODE -As part of GNU General Public License the source code for PianoBooster is available from +As part of GNU General Public License the source code for **PianoBooster** is available from the GitHub site . See the [BUILD.md](BUILD.md) for instructions on how to build the source code. +This source code URL has recently changed so please update all your bookmarks and change any existing local clones to point to the new repository URL. + # BUGTRACKER @@ -91,7 +96,7 @@ instructions on how to build the source code. # CONTRIBUTING -PianoBooster is community developing project. You're welcome with patches: +**PianoBooster** is community developing project. You're welcome with patches: [Pull Requests](https://github.com/pianobooster/PianoBooster/pulls) diff --git a/doc/README.md b/doc/README.md index 7bb14be4..50371c21 100644 --- a/doc/README.md +++ b/doc/README.md @@ -13,10 +13,9 @@ - [Piano Booster Music](courses/README.md) External links: -- [Original project](http://pianobooster.sourceforge.net) -- [Original source tree](http://sourceforge.net/projects/pianobooster/) -- [Original User Forum](http://piano-booster.2625608.n2.nabble.com/Piano-Booster-Users-f1591936.html) -- [Original Development Forum](http://piano-booster.2625608.n2.nabble.com/Piano-Booster-Development-f2625691.html) +- [Web site](https://www.pianobooster.org) +- [User Forum](http://piano-booster.2625608.n2.nabble.com/Piano-Booster-Users-f1591936.html) +- [Development Forum](http://piano-booster.2625608.n2.nabble.com/Piano-Booster-Development-f2625691.html) ## Presentation diff --git a/pianobooster.6 b/pianobooster.6 index 5ead6f5d..f3cc5fde 100644 --- a/pianobooster.6 +++ b/pianobooster.6 @@ -82,6 +82,6 @@ Timing markers show whether you are playing ahead or behind of the beat. They ap .br - A different instrument sound is used for the right and wrong notes that you play. .SH "SEE ALSO" -You can find more about the game on its homepage: http://pianobooster.sourceforge.net +You can find more about the game on its homepage: https://www.pianobooster.org .SH "AUTHOR" The game was originally written by Louis James Barman , . This manual page was written by Miriam Ruiz for the Debian project, but can be used by others. diff --git a/pkgs/win32/pianobooster.nsi b/pkgs/win32/pianobooster.nsi index 7b00ce93..fa5aaf16 100644 --- a/pkgs/win32/pianobooster.nsi +++ b/pkgs/win32/pianobooster.nsi @@ -170,8 +170,13 @@ Section "Install Section" CreateDirectory $INSTDIR\translations SetOutPath $INSTDIR\translations - File "${PB_BUILT_DIR}\translations\*.*" + File "${PB_BUILT_DIR}\translations\*.qm" + File "${PB_BUILT_DIR}\translations\langs.json" + CreateDirectory $INSTDIR\fonts + SetOutPath $INSTDIR\fonts + File "${PB_BUILT_DIR}\fonts\*.ttf" + CreateDirectory $INSTDIR\doc SetOutPath $INSTDIR\doc File license.txt @@ -180,7 +185,7 @@ Section "Install Section" CreateDirectory "$DOCUMENTS\My Music" SetOutPath "$DOCUMENTS\My Music" ; Temporary fix - File /r "${PB_BUILT_DIR}\BoosterMusicBooks\BoosterMusicBooks3" + File /r "${PB_BUILT_DIR}\BoosterMusicBooks\BoosterMusicBooks4" SetOutPath $INSTDIR diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index b9de6d56..c6361d2d 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -517,7 +517,7 @@ void QtWindow::setCurrentFile(const QString &fileName) void QtWindow::website() { - QDesktopServices::openUrl(QUrl("http://pianobooster.sourceforge.net/")); + QDesktopServices::openUrl(QUrl("https://www.pianobooster.org/")); } void QtWindow::help() @@ -546,11 +546,11 @@ void QtWindow::help() "you are ready click the play icon (or press the space bar) to roll the music.") + tr("

Hints on Playing the Piano

" "
" + + "" + tr("Piano Hints") + "

" + tr("

More Information

" "

For more help please visit the PianoBooster ") + - "" + tr("website") + ", " + - tr("the PianoBooster") + " " + tr("FAQ") + " " + + "" + tr("website") + ", " + + tr("the PianoBooster") + " " + tr("FAQ") + " " + tr("and the") + " " +tr("user forum") +"." ); @@ -565,7 +565,7 @@ void QtWindow::about() msgBox.setText( tr("PianoBooster - Version %1

").arg(PB_VERSION) + tr("Boost your Piano playing skills!

") + - "http://pianobooster.sourceforge.net/

" + + "https://www.pianobooster.org/

" + tr("Copyright(c) L. J. Barman, 2008-2020; All rights reserved.
") + tr("Copyright(c) Fabien Givors, 2018-2019; All rights reserved.
") + "
" + diff --git a/src/Util.cpp b/src/Util.cpp index 5cad15fb..f1f3c9bb 100644 --- a/src/Util.cpp +++ b/src/Util.cpp @@ -32,8 +32,6 @@ #include "Util.h" #include "Cfg.h" -static QTime s_realtime; - static FILE * logInfoFile = nullptr; static FILE * logErrorFile = nullptr; @@ -190,6 +188,10 @@ void ppLogError(const char *msg, ...) flushLogs(); } +#ifdef DEBUG_LOG_TIMING +static QTime s_realtime; +#endif + void ppTiming(const char *msg, ...) { #ifdef DEBUG_LOG_TIMING diff --git a/src/version.h b/src/version.h index 41738a07..49434574 100644 --- a/src/version.h +++ b/src/version.h @@ -1,2 +1,2 @@ -#define PB_VERSION "0.7.4-RC1" +#define PB_VERSION "1.0.0-RC1" #define MUSIC_RELEASE 4 From c145a6dc1bf296a189154d0885c6c5b69b9b0c08 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sun, 13 Dec 2020 09:49:33 +0000 Subject: [PATCH 83/84] Workaround for the macOS actions thanks to @winder --- .github/workflows/build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50a76090..d76b265c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,13 +54,16 @@ jobs: checksum.txt macos-build: - runs-on: macos-latest + runs-on: macos-10.15 steps: - name: Checkout uses: actions/checkout@v2.0.0 - name: Install dependencies run: | brew update || brew update + brew uninstall openssl@1.0.2t + rm -rf /usr/local/etc/openssl + rm -rf /usr/local/etc/openssl@1.1 brew upgrade brew install cmake qt5 ftgl pkg-config fluid-synth - name: Define variables From 88cb14b030cb02995b7b4af2b57e842d80ed6a14 Mon Sep 17 00:00:00 2001 From: louis-barman Date: Sun, 13 Dec 2020 12:50:39 +0000 Subject: [PATCH 84/84] Changed the version number for release v1.0.0 --- Changelog.txt | 2 +- src/version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 2848f93a..d971af5e 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,4 @@ -1.0.0-RC1 (12 Dec 2020) +1.0.0 (13 Dec 2020) - Integrated fluidsynth as a build option. - Changes necessary for building an AppImage. - Added to the manual language selection. diff --git a/src/version.h b/src/version.h index 49434574..f3bb8b3c 100644 --- a/src/version.h +++ b/src/version.h @@ -1,2 +1,2 @@ -#define PB_VERSION "1.0.0-RC1" +#define PB_VERSION "1.0.0" #define MUSIC_RELEASE 4

For hints on how to play the piano see: ") + - "" + tr("Piano Hints") + "

JE6*8nDxm$(t-zpJA7CA&1D0 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 m9Q?vi+=$2be|x delta 413171 zcmZ^}1ymf{)-_7wPH=a3cXtRH+}$ArcWB(*-Q9z`ySux)LkRkE&iTK4&-ecKdUSP< zG54B#&9(NdUEMXRbB(C-3=ct31`He)|6NPqy6vo)it3JeIC!+&FN5dVyRYYnVOIR$`#;DD#( zA^})am;lh=DLx-iD6s!0`VXVt{~8Pw?5{MTx7tvDP4O3acAE$I8;ri!`#bla{Pp+u zJO6-7kN=J2ddm3+T>JH3knj2GACUe<{XcU?ymb5x{v+Dd_Wu@*@R#V_Z&->%e?(iQ zVe24`{;f<6l(p6diDAjDPj2*$fO|1^8QKXIo_V zUn=eYqcY_f9QxmlZDxi5{3G?Rf+hYg;Qy>U&R?xfS%C!nr#a0WPyoAs)RjU1OC1~x zfb1W2{otV827eO%{-?4OJJ|o0)|>(h@c2hp`l*u)>z}ZploH5P$B*)>Tg9!NdHoFj|6b~2mae+W)A;9>$NsS=A!f`W9i?WNJ)VC-z{T7 z0oeRAO&;pMl7gWD)c%2W&;kFkSaUBr!0(@W-%-o_sQ*m6|MzO71YiR2|5Hc_CP4I` zC=F{R{N(ga?LMYx z*lr{vOJW$l^kZ&)XQ@ zGY+MB$kQWP%xzsvk97+_ad4jIE37)A@CIAHMn~={3rDOhWKLtuxkUd12lOM(?YowV zo>7(PO<~1vo%?&gW1t6Nbh-qrJob~)Ag&oYkGr8T;mmi^KiOXD~XX>n>JEO zf?{S#fzjR2%oMaq%9ITp0N&sJdBypce>8Cc*8lZS$_zX-#Q&U1|LZhh#{U;71|P8c z56PPFUv8Ns1T_5v2NVCxE$765t$*MN(tkxWkO5-;fqTgR1(Q$!2tfbdB?QhU%Q^nI zh7;_ceen(He|t8M3ZVFpzu4D>Q;z;b3P7jCj)Bpnczl6I|DP)U?2{!@G=RT1&lDLt zfb@U-nL!6A`X`gA!Q<`1AASYoKYTmn|HW@kVFX+OkpEm6zKzOnk6nD?+V54oa<8 zzK4@McP*TKCWC7+chW~D=$b&N(80zWe7_r|mB-d2o|Q)HxLMbY5vhw+2?7x&~#RkNaj;me&u=bj7mZxkd z&@=s6%Fa+}PU;4{cfXppJNPzUF^{>U{EP;$Z>=w)fea7^qbX}anNwPXJ4@1hxczu8 z@Y7q*t7+C#T@~91{1A8FVFtOF65oMvh2WxaIh8;0o^&=M6gv@M;SWcbzJK0~e{wS5 zbvzmdUAXaSdH|jdF@Ca?$i*5F__7=N65(*PWD&@81i%&lEC)B4meeLB_6fzdAJ+4L zhf9FO&KcI!5dTtS-DH!>C@$Zi&#T*rGA*DNGm|qoNJDj*2}4i<)qw~Kmvj)hmaErs zLt#VYl~WFSkYg?}x!!^M(3RyWH9JcVO9vwbfA}+8?e@Dyuo`&ND~4c8rdCElNlp4R zqQclYGf98kOq$Pyf?aIEkLOdw-RvlyU5Q9+SY+2jx;hvAQtv>4P}%52cjgZsJCYB0 z##Q(XMEEAX>;)dtZp=<@e{_u9E5Y5^U=Vy7BNnOmtc29bTN)0D6hSrsCNTR>7ic?g zhYbsj4pX9^^!qYI1!SaG7Bv;b>Ei;q%ND=mQR8 zuOVGZA&iAXtOk7lf!gtzzWwR#OhWy|$1U%MXY?&R)t33J^)eakACw+@edYt9poso3 zkP|8)Y28^6v%6$(qn-qixrQjhK<%b1_<_Zoy%`^+?zKpAGDC#@4`4o087XTjc%wW8 zN?fk&2CbTU`sy9%arckDBEK1zP!reUJep9b$~*qVdd6YuM~RSb8PH(jVl=Q;G`eet zaPj?t?Ur_bP`>3YuWi3&TVITrtKc9ts(q*3*l8Xb6*bWihKe6Ki7Dvpa!^78xihRE zVgsC+?LOKpEec?IG(c<+hjN>*W(c%N6ArWJ4ptyxxP{!z@yc4sV2{mb6U~Sasq=6$ z{m^!XYW&+qtojZcWMPCWd(^a6ec#o36Bi+h#FC9;z8zjg(2matWCI=;sQbEiXF>H$EUm45 z5|QuG_Cz0)b>Z)=#S-Q}y+DRZ6M=2cs-=8vDA9TgZ}_4=_KG1Tf-r^9GzuJdgdeA! zTBjnztNOIRqwgQ_8`~2 zep5{DB5~%1#sOBvJ_&dql}}F)sA_qJ*J>(Z6f##3bH$YyXfIp$8-Lc{P@ux1Rf2M? za}cWZsc*KBxK4WD*Pz>4>3@THy<*6n4@_GC4eK19;o8>N;6&vW<~&CplyqJZR(b!@ zQ(LF?3Wo_BtQCT5Q#%j=S2=HY=Rwvp)oF362!O2u$j4~=V9BmR{m zAF)L(Oe1d<%cbJ3FQy|uWcMo&9e&Ut3*SZpEPBD>g z0xCw^Q*v~8TfnQt$jzLj=*!;C?2j>8R*|I?6uqE8d-s^%RHG8q>83|%f*hXgz-;?> z#ku>QTSXwgAo>%I{qDhqo37Osr-OmH9MWyk-md^(Tx_!{4*Mgt1R)~nbipm5!T`qU z)%ZkOpf4C;^&wBzChF63`fd4Fj9%6|@MJTI|3VJ>WZ@8=UM?~-?<7$NKI_w6Vqt0) z@+{{{P?qHYi?Gyp) z1PdOUi%XU(595*#> zq-_Q3W0CfAJ3@LTeGNt%iyQTAk?#RKT+zwj-{lHi>j4O6^AHIRUs=hc=wuY_!tewR zj|cpu56TZq$ciY43q$P{q@moqqANalQaH4*xp4v6g$WH2zfS$?mmcXR(#n_K$* z10Ik?jlhq<4!noTyyJu>oMBar1Gj*e>)bjb+kO?pv>gjJbU&A z)IM!OLq}g$hI6qsilfIS%P8LAveI5@CiHU_AGGG^4h`bGQTIixw8x4gel_EwCne!} zQgn2J#f#=-S%Bkl5;^SYt(Ojc6b@PUF6skS-3fC@3ZSlBtL+8|K9#;e{cliomR(|{6 zXS0$G?L9o;s!+6GI^Q~~k4XV7z!a~9(Nd7?(ha95#o>ez4DCSHHf#cWp&EBtxG%{l zsGV~{!0RC*xlr@IeOGjFnq!2uTo{D&U!8Y+CJo+KXBDauhixdS?+Jf`8JHh_kdxtn zm+7wFF~}3{t-_O>ON7Iv$bcN%h7`FXs5S6=Cpp$?wgs^@Eh;o(UO@_Aru^o;?W{{kDj8$cbuUZjnq$!1(uWU2}uViWpX6KoB!|>;fdWMW~F{ z47!(<07%p4sMwitqd?#+eD(3weQ;spl}E#D-SzkE_(dxz$Rl~QRC~T0y@;5D(Xpu) z&ba^t-!MPMC)LACFe=jh@3ylb)u6n5tW(oqSMPQK?akTW68KZy%#=Nbt{jWZiY1weoqOF34@u09=vp@h*H9OS7yG`^+{>J&C|#uJ;QM@7R=fe3d&6m6duCoQb7Nhv zf1f#R3O;U_&Hzc6bE6OsqsjGinqfsJ4dtWDwr0Y}Fb!8?q9nSMhk*uuCDClwXlNtn ztTC`b97th20C)s$)O^_w8htJD>vB+coqHJY^8JkJS6tk|v9)t#GguO7GlZ5ZO$0y2 zs=-HgC2)DZH*_FJcoDx$v#$4-Gz{2EAfH>jT}Y7qAbt}P7KW#E3@qkVVuOL9J~IzI zJL2>X&0_mRyKKH^cR z@Gs@w;Y`Z%1paaC4Yj0tWZC{`@&v-6c!OTTtbqBpmGc36LoG(Fdr4m{>Yh;V3E7lr#=J*cyh zJG$6NjOGB<#l1LhOAIy0Dq&I!(uBEK?cx!=p)BG#6eT8^44*H4SG_|msJ>#?N__aU z^|@e5J5yWghX2<5F@C@&t$TMaTfQd`NuzWo{zL-!SwT&?=IVBUM?C2)u6UtxsQlXU z@RatNj`1y}_5j(M)AXYW&d%l7-|06@XvW!n42vG`IQp$J&tP@;%bGL>m+v zA)L@?8GREP?r8j!MY(jyGo6kQL3ySPKBJWodla|%Rz(-wj1dOMA~PZ4NEwfWWZZRn zY<0b;T7FC1R8Nsi`;ULSELPJZ&zN?&p&kL!>YrE=sJhaG%ALL{+bPGMW*6_ZiL`8H z%x;f|v~DB28d$px>9x-g6@a3$9<-@q?^;@?_|d|+6a?nW;+-AI+2>5?ud1<{ONmjnrf z8<+m!+oJ@X{P0V>W^udSyjLi+^eQuvHiB_t=4|&ZTO=TRxUSKd$I>dC*QD~2o$`YM z`ynuNEN5Ryo+9EjM*I5QAnp70S|FpOw{NW;g0KkH6$H z%ihfJJV^fX&1JOOgd-dlWcUR>-d1|TjT`dNiAw(x*lPw*(8a5{WO{i$fiyB1>`mO5Tlw7B$Fa_G+G-q@K{6+BP(#4642Jy`Qx65`Dyl{plY5Mz82VVWuVD^*d zWbT!`nVRywEpv2D+t@xvW?LF5mtdAVuh7q&P5`q+C?LbsiP6mxYvFY{EQ zBDT%K1YR0dfuRM6hU3@YW*gg%oPi^9u%$l1#|1~Z^M(G7E*e|P_G_ArKPD$> zrA>1zft~I!nN|!s*;(RBK>MkWp6ba-BhLHHOVvxjgXx~IL0-j!03T6S9B}gD(VK%}aB&DQWYHm&|bC zCZs(7DI_X0jIdZQ8Tz+jGnakfkYAp<5CSf<@fCHYH?vyl3D6bIDwTz_wV(WI*THws z*yZM(S3=^Z6U9j4hH@XbOf(n^+pwmR@d^xo5NXc(siMKv!G9oiBSpu%hKoH`OU(4` z8dYSZcT*`G{eXwH`AN8GV4Wn0H%ffQRy6z*gE>pQT&--x$kZh z0{um#!vs4TD6{bT9X+h@NCpq(CS(|JYUmWP@jI$PKL?=BF+dGc+^+W$6&?OQMIE_+ zYhV4&+zBJG9;{>m*_Q;3#}$yP`9qbXrV4dm_*P2_sX2ZRylM{^VZpk#+TP9s?*|6T zcd)~AB;0pdd|6{qMfSQDA%6f<0||Y)==L*HK|z=e_z-iIdxxi6v3wgaqn81*C7o5#ZM@&xuMVpiIOvDu zRY?1_L_;q>W^wiE-CUD-_7hH%`SUY*@ss`GZP+(K_ymZe=L%cc7LSwu$)K?Ijk%EO zVT8{W7_TukHUwK*?2tser$ZJSN(-w>0L~rC^aTY4TqM^IO*jdZ4AxE8&CTFhM1cI# zMOp>!isG=*aky>bXlPiI7}Y`fK7Fuk{*`V0ba-kVetA53UhcJe-3ISBqh+4~i(TDb z-ksXaTzplEEe8xIMa!MU4efpWACvxpo_`M3z0*{=v;>y5tUg9KFdJSRmn-wE(XTPQ{S8HBl$YUbwGi0WW0WAZsbU z&^i*n#A3cIrTwgALcB9jO^7b~V1AJye|~5Vd`AYMB^9%sIc7lwbvy_;!h_q*M%@$N zr5qRu2u%*zJp&_73So&05nY4|P{R;YogS{65N#jn_arb#2YVY4^}!GszHK%QfgT6@ zwNU~*ljMV=Z3qFZ&%2rWW82jY&pt|SQ#ud7L6%=ubo8J3^KOEj`FCEPH%JyE%CVQ2+0Vb5-YfSALp7^s zgla|Gw)UTv+eAZSj4;VaQzVBdHOgG`7$xMQ<;eBJWMC;-FmlSg$`&uRcqGX*!Zm_@ zv&i)1?2Rt}o@5B|=#Xk1Pzw~BUTR7f?o5~6=bLK*MkP+3S~Ex=9~{!(ah#pCJ!!b% zG|pj{M9VK;ki6rn6^t1SM=fg2yGcp}%2)YEQ9CFVAm4sl2r+0;dh1`360BVI8*%VF zOLT1CLMhSB6s%)XyG84pWM(;O$X%P35{1HQQZheW+emYpeMErxg$3;6Ystz%?N123 zh6p(i?RaE3&>ld%q5JslVw<(Ku3}}ut{z*fZnt+GyKRe77A#{%iNv#oMK|DuuDo(W}wm)X?ftt!ia{0(gceEFMW2GQ6KFDM~Y;=O19Z8$G+<%n~|WJ z)|T1|Oq!ag zsAvW`KgmJ)@tR2apS0e1rrnLZpT$aIn6T+=*h-0knvvta$0~dT(VX>)4`~RgWXDHN z#}`w>(g93wQspYypdG;%JSYW!>2JT_6OmjYI+Ih7(_ za>+S<2P+qBs<+Fp7gg&@AD2vCjGE627cFr~bP>P$IvX=^bP6}Me03_wNMpc&3PRUO zJS7*6A&-~fcTK}U@c6EJz`BU2y~kFVf2pl}zez6A*B70%lHPqs@>2wO2f_x5xfZ}o za?jQA1&p07OC~j(tR%rKwOr4zk<);^7@XI@Qy~RL7Jv@~Wv9WczXBw-fC-(HD-a^6 zehn-LX7tyV8aI8tZ~}M}I}1Alim+FcKt73Bs1-PfTgrOcVpBTDfqi#@GH8esL|Y-! zM=>HCLUX~DRnt7^GxA8?>}}T|QV1d?SMYMdglZj7_aSI3~%m}p7kzO`_@gg~sUXLT}z>x8# z#^V3E(?-F2uz=Kf;Y7HE?@n3!%hTl}OWIz8pXpdY!#Wz(@ec8jb%Iz&JZGVSpdHGi zX}Si^L5B2c8KEqtQLcfUhGmN6N1UNCC7tbP*~mAb>Zb1P@jYs$|C*R23^+D9C8oHo zY~?}$;;7}=Da_rgs2cTw!y&Tnn+KSaBjPiBL0U4&bWv6V8JV6BZXjeXD4VfVFmy;r zu#?cZkYAX#vseI?vWj~Cmz#8$o%aIIH_`xR41IZY%j}L*`n3x4s^`w#l9@%0fJf|4 z(Un+W-~}Zkaoqkz=ErF0j2NBV_?#3h@_`%e0jBeb_#SE8&MF|W#umFfafxi?XG8={ zL_^|ur1{yIh&1y_#>QerP=gtaNUW?jz}2$5zW64-e&u_C+}PbniP>#n@K@HA}t28cP6BUCz=u8$LgDl@!7(|L$Ra=4fyXAS4}2bH?6EYc7FP5EGrfs#rx)FJ0|bXLgJCI zmfsgrk6z8z4OMatX%*Tl#Y$V_Li4Ii{C>+SCm0CDPLB5bA4u!6dQ)9B86>+pNeOBI zMQBEkRvpfK&En%Q_nvG^)@ky}x;8+J%d-`eIUkg}OHR3jr{VgH*2d}5j;Jxw_T696KIZ!!OpT%RwAy?@S z7q7NA`>SZUzq%J!VrY4M9~blq4L#`tw%2KQf>;qOJb(60ykg1>%F=zpv0ir<89wt$ zg;}K!xUeLq?i-7y1Ew z19#ZYA(U+R7V=G)QjA30OHFc(aAjx?Nc*pcC&goQ>OMs)-qO|uWiyP+HE5d%+LpM5 z>J>~n{GOaZ@2aQ~_XqFaI9_uGZ$V?jyl3cI9lkmmqm#=-N36HAT#XxC4F2%!hvJUZ zM74#=7+*MFNTjS4T{$6Bv%Wk8630l$@&;T4MHSm(e?z?ybs%k@j5p1wT@W0V?O>(L z+6%f3l@4Txb5Jv>Y87jQIZoRPUrZB66RvQnD=Y!lsa?)|UGKE?G>^$6uXV}ChrDIR z#_7g6)L`|ki=vXJP1GJXv1Gp&aN;qQO~}+*u41i8ZH(3+KJ`yn+4jNOT3ACV@P z4d?pZ=8V0v+K4^Hg01wmiOFis2|sm?8*W{eylt8KS)(;sl2Woah@OOEk!t-y)Lb>R z0m8Vpd%1VBBVFg*`H0BtLO&n7rL?~OYWkdqb6tu*3Abmzf=Fre= zi_TI1Vi?P6Xa7oslbVYj(1dWNgQ8u*8*xx9ZX-}K1mSqNBgPFF<0bLBd1@a}*>=t^ ze#aw5*!|L=z#VSU-AM74?fureeQ2ilg@cvtC)FBWYzx_O(*kaqe|ip2|5YC?N>+)l zbwfefRKmuW7v1H{!HJ5ajnpW?%VePdAJ5LCjP=kP<=SuA5SYz-Kn68bg%){Ym0bIv zkDnj4Fn4fTU?*0NZOmowCQ`0rUz7wo{4+n7(~XyK-w8`gqr)O~+4Lu+F=b+O$m#-# zS!K!8aZm=?nOV2M24xLPGS$;V6&zyb1W0EQ7#%+4PhSVwJ)fGgv6#ztjXET#~}%F&j50TF`}W`&UrymSPNb2W-zedFQMbqRx8p(h1yxPE|mwgkU=ke@!FmO*3hSGe_c>M9^V|$U1 z_5!SP87O<{bRVZvIJ${|MMKBU6WnwNr}jIyA38jT-v}c%WXQ_C5E95nfLnG9iY}*k zn~w_#EWe?14^tX5xPzBfq7e@+CO}WaCPqrNplOXuwb(eLyt~Q2BfY1v8zmW57@Dh~ zIF?(W(Fl;s8KPsGDcpCXkrH`$`3lkI+@>L`&{k!t}w{Cts#!2@8Ns3!#P zwFYa8muxu7`-Ga8?1}+9VTp6dys_lFB269MM#qrRLqiWIIH>_l|5OQw_SWjq8(TQE23$|lz89kgGDANAo!&p@C@>vn3`VCZaU((1rM=whf}QdB@v+G1jmUtCs} zUs{x3+MsW5YF1oa+VAeRjp>1xn&ek(?$l4?*3ZxKF~NQyt%y*`g@wVn$&VciBkKcz zIHmB;#mU|BpS>5C)Mn4h&?KLV;(1#2?GyJ4fTHOWfNWs&IUNeZ%F93h=>z=AL}Bd^ z+%QjZ@DR}F5Oq9ZmSKx51_FW=bHHaTm@8oGCWZS`{(gG-#58m3SI(GL=QZ#cQ}8B5>20W(W=?&tZAB{}=NRx~Rre9K zG@xz<4dM6ERAcxHn53!O$J8li)>Cm|$ofT=-U)l#y;G$hz`EQws~1?DH@iFRveu!1 zkH4k?$(yBm=miI1azJZ#Xqek!B17FByv7n%w5*vgOWy1MB4-cM!aZB|+w8-Ttvb`M zq@?9=juH1;rK6W_VRYbe;OmDs73O0_n!t}EJS{{MLxRE%%Ho5iqjYWuGPOfPd_E*=i+UyYm%vAzm4IIMF3SDCTrQ512 zBpFP#0wYzZEcoVr!cess-Hmxt#*GX#;pQU(Z72GQ47TNHbL_3Ww+d?4h4K-VFs&th zL(lM+{N`Q#zMs;!?)O|e9#8aaFX-RNRDQE8|Bi;h%CACEh>(2(WX@ymD}q*q0I zo9!r?mM=Uh!rDnR zjskEY5af;HzC9P6m!_A3r)PlD@eDDshqML#8mMMh)<(#KwaEU?PWeI^XD@qYqAc} zvsPw-{Iy1`57smP!ft4PeQV#q&=Rz$x36=Yxdec|c? zqm}iC8!^QmHg^cCH@GG7$S&|=_AE1ZYW6Rk{iJvZV^b(V*)lhTsqE;}Krl$#t(bCw zHN`h%(Lb?Oq&)n%VkP^$VE9Ok1$PA4|J*V?Malm2tga)6c}6kH8y^CK6?cnh&zHL< zc!Jg@zEsc%lR%oI)RO61$OsjN2T-$}dYSCuPgTaA>a=M5OpOJ418Zpf-^6nGnhU5( zzQ~}65X9Wj9@bgQl(JjV0cb4^&j`(5fre7Gd6-kh-64p|$MguuRci~!^77q~t$4BG z`et*#wGhGIj&n7NTDAicHdVV8MuY@xzI>g;WK@c!(PG^ej!*tgQI@SKaET;>or9Vp zwryGZE&ZJMYY+voW%sc^i-;IQ${3SW-&SflD2`N+RtFMNR@D%iM`RygaL012UNf(I_EN^L#R1?F+K!1s z)okKzPxd8qH5ok)1l5{yl~$0SFW6H);=V`EQ#Rt>Ajeyo8O?4_q?~SO8`AT+xfkbW zjwp8C#tbJNkFNf6e|HE)VnlaO6mWf;(iYX|2*=tn?txJt$e$V4K9%=JAtzj?hpj!t zD;{ppYBO`2aHxh`(D%5vaBTKqKiz!aHLH@5Wg_%=RYO*P^{@Yf)zovv?beWe>*?Po$Q3GfU@?tl@c}c8OegG42zoD5s z$d9U;Vt5dGwZN4!j-=YnrN#9bCzh&3-RD#yNPG}%rF-BCV+lxs|I0ntts+N-25sQ&_4F& zqpfT>82uHMG^-$7M^=WN8yOfdhN>yk^qbsxa-`UX)xit|>tVF?w?sg`Q5d{g+5HOI zrH=rQj4_hgVU7Ai9l3Q!?(7nqph||AUPYrFpX*5DS8?JRhxN2H5gYm^u_3LVUDrS< zA*eGCd1y?uE-YX{qI(NAEQx=a3lXmUvsApL95~T=D3U7;9$&R%0|1!v*|SfO>n}OI zd7jHh?08}!cK`9kQiwDS3!Sc@|K>~a%se&@?MS67;aX>p@WT(Wc47)d^k0J9TUY?4 z{7(ES7K#|iH~Vb^LlaQuj!khUMsA8UKKn`1n9<&ZzEP}ULPUTe_()0GCE$lHmc;O@ zAKbmWzV?m#IvUE4Fv+0js*|kpQp&7$ z*laUNt>>znyzr9S$de+Nt^SbVOpmtMVM}gE#h27fb-_NaMAYQI^i_6^kQ3iL#cHFv zbW5|`l9Buz`JAhBZ+ToXje1teTm|_Y8hh#+59T@5mQ!-u1$jrc zYZcGE73&3ClOmA!30>i$@`y*eb4$y>LiNeGO>*hTXfK0jT*F`Rr~QF;1)C>yK(h~r zBYoAc0$s`v;i-fK0E>QDK-_fw`U!y&IRyWm(JoOce|tQ{-51@T61WjHbgJcfhzoA8UXNYv9jFCu7iAsRwXHJzNL96uWMw zZdO;a7q5acN312Dj(2$h?S_+4Exh+rN4+PVz&U2i<&8<4E={qJ;>aPol7ISBD*8Qf zxY8Af!$8#OZ(FP?_$k!nkNX>7Jfzj1XR9Q*smPJy4BB;@e)LxKT{20rUcK%}!d98TG?ID++Ffd_3 zn)FiEHCqUmoXNvUGNy>wMq@91o0^nsSk#OsW^Ez>FC%CfC7QQ@@vw7iTY_@k%C|C5}j6u7D%S z*afXMny-VG`HWIF0BSYkRH}+!G3xI08a3Q8DhWaw)wYmKfftMy$sA~F zsJq|YH3`&Y`9#9fQ2FInUhPwO%|Qih!GAa1%>H03wtnv{Acsg18w*04kED#txd zbM&@o!4Is|I%b8LcQJTpeJ>nYWHFEY#)g_)Pp>Ru&Q~m9j-p-M_;X!9^@@C(EaKWa zTbM~erM)usik=BxBT^ZA*TO1tc7hRM-|=hRdKgBNbvHzh2aYynubpJ((&;Qv%);t{ z**D|yQ-JZMdpe?v$Jj0=-CW_BjJ+D`9S)wGG~h9y?g&Xi?<~%H zoFk612G1a}P@S37H__e-`=n5ddgrjbxB(N}og zPcQpiWF^HCIv^0~G_1#-w24`)Tje!uO5aA9NVfKr+(yZQE8jn$cp%i)f8(nv;4sg>NJjt$S?wgU{YWDaDOS4j{xxgJz4RzXx;a$my z!D~;!;g}9#=8n1#et<xj_C;MgzO-U*sRERI~n zPlrwQv|DLp3Ic&PQirUGQo-aHkbNuswc{~9du%fsb!KFG`35ic+16dnWWkj%tCoV3 za0Nc;g5|rJax|ZQLd*!zyKEYWUq}9q~KOF~P|n zLidyIzA1l?pU|GJN+X9BNma{5KpCGd=8>UdMcs_zK&Po>LTsZ+Hf6jzrCy>^fFsJY zV!h9@I6HB4#3U9t>pOy-l|MBLAH-XR@XE2O=q}JuSf}`Xa`zNS9I1~b3a)PGpNvQC zO4ARov0}1d8ejI63XERQc^&zhXrAgPlT!tgxF|`4N}A8tTn+cA9tJ@>|FOcexOOy2 zR#Ay}-8WiRZ?su1p!b#%St%A02kN}lIG(YtUyxf8dVkz)yvmqM14WgL3+&mlp+k_S zY3G%ep)EU(yi*Xc=!8HJCI*A;cd+`#qRs|iziHitB5DG9cN*LYEk7t&$8!Kn31t4WHkrDT~wrL zm{%(KMW!sOj;(J_Lv!(KFfKUQlLJwEy%E;m9dp-Q)~JF8eWbl^BVrG=l2?LRIk?eH z45j7}OdRtsvrR3ACpxyjK6fL<-<+-X7eWvdd=dz!2JqrAc$f*i|!n(F7sri`wDXl{di5-KgyqF@ z{pElcX#Y`;_bhNJ$IKlEw270QwcP?hwrHa}egABkI;L-(MF8)#`NkPi?Mrj(B{19C z5iq=$?I zt18PE)3*b9(WlOmeAN+cco0)wKmpJC%%CdjSrA7}4$%o>=!GEP(Zm=h$+gub_}Dpc z%WYzqV}o^wFzXk=Rj)}mBPI&Frj0YTAx81Aki0ulB%i1$kRqjhVHDO=_5rRrzIUe`2iq1p{ftRIj_K_JRmaKDK;YtP9LaH z%%C*5iO3BlL;BJDUT4}=Mp55mw(8a@W5FHSNR`cZ%>Bsy=zZ$7+IDGw_S+ALBpC^I z62O%OcWwQuoZt)nO!SR(=DHSX1Ox>^xb$<(`YTQ(oHj&395>Fmm%$ktYDwU*i#{Iw zET`%(U!-%_+(qL80Rjvhe^WM6YSb-wY*(n~wbYS(Rhsp=%=%{FZ3(3r&KtKdu|IKl zPOXpWY@13Gx_sN{^70K%URVlHbMuL|SrC+fhJgo##J<6N&-2$FXXR=N>+#_!iH!{i z#ZuUf-+>y}GQaSZ;zAl12?Vy~x4Sg(qqc)UaH@4^Xzql-`hzmCF90YA|th$U|18bJ|f=@yX; zF5Wu9sv6NXZ4{^7kD067b^K|{1I|c&kPm__HLPcRX4l%4tn@BmDC1WF(WC5S_d;sk zsp?W?WkQnH(nQXd6@WW1fyktiYEZ1B6kR@cmJdrm2b|Z;k|64$cCbRlh3*3|K^dqC zxZ+G)?Runy)E9)}<=L(camT~s71$=Szy*Ej%5yQe(7chw4UgtGlLWX(61SKG+K%(~ zl?APEYAj|yg>7Nf;xhedcleuSVnNhqT9mJShJv&;y z8u$(yfc{0_OVw@$*NYn7_zgetUvW;DdPbVq(v2wg{X->IN217>4$b*RFw3)?jfnOv zIT51pRq*cg^!UJ}zT4lZiQHfDH3LA<@rkjiYclEcP%T3WZA_Y6?M6h&#Pd`UWCbv0 zPk)uVH2*&UDL~f0k_~%C+o$dOXbz+AFQHIVQQ5atY=Kgd$PZ6zc8XtjI_z%K8yl(a zoDIZppP-eu8?xHTn7z!l6EqINjKsV;saVJ~p$WnDWfWPhe>c>9&YhuUiA z&~7a#x}lxJ92V>CStNwmQJdz^D8*BH8915s>1~ChtC)K#% zYo3aJyH;L|R+#zVYJYvjw%(NAuzwq3j0EYBs#fHzfETy(oYzbro~ET7qe`@#Cw`s- zGFi@?q(_5f5OJ|EsU#MVm&q2il9pT~lGaB^I2cUVi)m>+ZC;*j!?K*#Xkhl*#zxYv z+PWH7-(yotDa^`N{&*}aNy~J6 zbgW#FEoK|$MQ~e|V0-H29YP6UGb1E{cIKoN~_~$M!ZZun;XE+;^7zHGJ zz}C?$OGKK&h@x0p!wH-MxY~NyNB1Z03wd}83J{$qewMWH&3ncyXz!%tAo{a?ARr>y zQd%=HN3ktHqPB>4zDT(e4`Tfur4W<7ZxtE?*DIH=E`NI>BO!s|Lt>#uazZz$L`}z- zTKElJN|MeZq{OlOtzK&?7#rrayA z*5l1@C2E=F#$1u;THQI44wFw5TeL4Lu{x}K*BH@CRjU?r=1f!MBvY9b)j|bqRuQbE z*1ji9Ie+(|@Vf|qd13L;1bQS{qVR0tL~4$ zGj%B1+WH~rE(4C&J}7m_%0BeZzTLjG>AXOku@LSta29iZXstW|C;@O0c^Fc8C{OaB zYI!(Rc}Nv`Se80i%X~mr0b*~s&V6X}KvVMo9)G&Gr$BL?Iar=K=+S+U>|mvzQ2E-i zC-62{zhEwV^d1&@ON697277t{zW&|4TX6)0gfP)DF+fG~Ap<_6l`M%r&^TeY2VU%W zzxF=Z?|&p~eqz=4F#;T;afEBwqenru?hZ&F-XSkZcgBY94?*wO$Il@XV<;?bpmc5; zyMOG9hipyTI+1yHDa@h5RI~Y*BC)5d^yMj~s`j|1v@jTy4$f4UkK{UA!*)%htI|c> zFbN-R)xoY%wTO)HzA)b*?7L8wo7QTgU^+7;!U0~Fbb_)h({KL&9~=C;eX1q zltg`i(s)`y5@|1LDKOl$?bV}md5V09DJk?}3UV@qybfIum$MNWz>_$<>{nKBkyt!^ zLNKwH9m4KHFFT=R#9@V23cWDtI%F;EbwEEch2D3Cq7QN!b5Q z%Ke*^`!^}~Z&L2xq};zrxqp*#|9>x&axDL1)_{SLgYCb(@0psE(EeHnhis$cuLX1*{&Np0cl_fdFdf0G|0=>tLwNa%J-TyDM`Iy z2?=QgV`JF$a<7^&(?ksM8SXaKN<%aHDt@bB3wiCgfA7t57b?f?_-9>LM}H5pvuT8k zJEIma-XBLuT^_ZiR05rQrFpS4e_qvEFih<>xv43t=gB^yiYel&P zaa*uB<~L8zLojk7cqBUdk~x@9iI@-Ry*A~(pZm*FkCoQ2vxs#8x^+0ppwk`thmMp& z4~KIil;Ih{LsplCH)$`6D{D0ju1^yBG8L-pqMKAS% z%KZHkMW|6>s?>PD8-;kT%Z?!T$skGHEI2p@3U{6SJrF+gqfuifI?f|qmh}0x;vs#k zv=Vv+aQeu=^t)v%O^3+K(8yDHdG)qwYr&d>5k`i8FvlOR#Bau(iQlxf05FxY^_vL` zqLv(Uj9fD!KYweZ6@S!EH@C?~AEs5mht<^HRB}2w0g%#lmGr3qcRk9kO_NU603}7B zrK1w(OPBckHqh5eg+U^`_5B)UvF&6!Y5eo`o?X0Ft177<(|TfOH>vd5A=;p>ZEU&$ z*p?8Y+OHcAQW*j)wSgI7o3?f3gPMeLM=Q2G_2S5Ha(^jXpD-2xnRKsymKNtXeOBmsIwZHFt>s05FWxNV!LzAiqoBS#KABVe_(=|}Tp zFjDTl<$vn$-IZLa*nSyW4J}>WWD%wiLaH4?cG3@3`=3Cu+tHa1u1|wu3YX4ODP$v# zi(VpD;+{ZS1LN!=p`Sk=8V|VGh9B+s@W^wA<)k&ba!0YnoDy>eB7*TkQhVQ#Y;C@q zRjDW2G+y(-k+(9I*;WG}Tu6tEKjX3Wki193xPN@S11w%EgLyhb%ji=b1k9Lr@9xND zQIeC+$pUUtY!(jY_H!#r^aVtOpVD8m*+y2t;m%lwWSX%qz0Zgp(O;8Ic?!nBvd10A zW)5cmX5t@siNFodaMdD<+=IDwqNXLE2T-Cm=75b=Amz7glUx_%3%Q96jo`=`CWl?9)#%=v~KvHJ6Hz#|EF1G z6GKB|Q+7i(Ru&^uCPoG}0~QlTW_Csf7B&_mVf;{uNiu#!UZT*m_J$V%B6_VSjs9&mnC&%6BF@yA>kXI096@ikhx!H90{9 zlOFoV=U^y)&_@ReOu#2W$attdgP|wZZSUuc@PY|?Mn@Adrj{dl%_%Mbpc*MFCC ze^T#$^|#;q*XpkB&)stR&m`YNOE2TS)^{(TPVdJTuI~Q#@x%+?Hbd6|hTGKn_lmadM>HJMt& zqO?gXu}OAN8a`^adz{m0xbYUSQNkLV7H<{nn!;aQ-bMu~d3X1LKWb$hN;1ahU4Bt1 zLjDt(FHPC)d4hglFrz+4_2S$6meM7Nl=;(s6D)Lyg_CdM395K2MYkKK&Solqr}!}g)NFv?L?TOd&)|P;qxuDJ6!&o;P5Aq_Mu9ik(`QpY`(b) znTD@ws)lO^co01ENYsK4LrS@!i8~@4t|v8}OpKfvBshejjpwOfB;|6s5H!*sXpH+& zCT5`B(us$SRiJVH6Hc-ed*+}>I`y^G<{G`c#{~3QvW|#-kof)KG=I%n{$sh7%7eJt zX+0#(`sWw{^MC-Piq&AMc)@me2WmRYHiCjws7ZI_#4M43a+212pI_mL4!1~+`W{ff z7Z@L}S3eU){5^pAzGN!dGH24zQKM2v;qIfF{3Nq4rL4Wu^8+}wuhh5 z9!PzkU;e&p)Aa`I{eL!mxv4TeU0`%TIJ2ngrQ(T zzn1%21_(`Z0DnZ+f(9$YKd%D)!FQvl7Gp4s6`7F&!4`qf8vK3SJA!gRLcuZ6pWd99 z2nl+)FeY&WI6GbXXyV)?;3)VL*6R8->h8pTE1tyoz>#0rIAfJNecT|;mufgqdq zhKrLG7)ajBM#E}U2&puSd+xENppb1r)R|aFAy0V1B7Z>eO^4QiK(%CbPDXy_{C5@{ z5tuYY5$S39{Mmuf2y!~E1n#ZE1SFiHJc?_dPDx{sB?|o*SV8r$K`P-wLHwy=pIp28 zkWGP81AB;IM@oSLP2wKS1q5Zaur6GLJ8~BvnH(`qVdsy=53BICjryqdFYgqE- z4L*JETUhYj?HxQ0GVKq50_)FRy!Mjj&uf`!@FA@Z@;=DPa zVpBY~wmSq30r#IZfisov#Ea745Eu?q1_mTilL}cJ0ux0p5G}$frUW?VdQy%JUY1>s z3VaM>(<#DzfGX#VaDN`H3s-`h9If*)PHei z{Cl6xdjUXU0BCZ`SEWEK!|G@VQgvAfU0tO%F-XPccffFcWjr!$2%FOKhlz$BBlx(SmVM~xRNu*9IG8D8LFhVNNJP`{HyK>iT&6xQ0oynbZNqhMSrAtqFUf1 zf|g=uDVdio`W0M7s3dn%c4kmAe987`pSo-n8JZtQeWrTBc7#gN?qbApaKosxAq!&S z_wf)tLMrm$LsK?}d&*$Me%pmCOu^If5MH8H!H2x57%?~%(*wR7xT?eMOHp1+QGQsv zZwr_aDLZOP9Z!F``wdfn`F|(DqolpNV59+4O+UXTBwXq$=BmF69}-SBD|dgnA-&n( zd(-B3zi0@Wn>vm^6Zi6QCuJY6$P&5`CbyD8jV**MKT;Q=Ik0Muw#1I)AHzZ1=vIKE zygNyF$)_EPr561LhqEF0Is~6%;Ub%sYdQ#?(0B+WLefo59A&@kNqCT zUfaiSpd^zt5K=$X?6z|#7m0<#0W+t#K+0UpR6wQ*o5EG7T$&M1E^3BxoeL62Nt?O> zIq}Kgi|hkk==b%}1IEb_gX4JJiR7moC2@J%1gAYyS}|3*>DQjW};~XIu(%lPenZ^0eMWBXkhVzwE|Kj%kifR!D z-4xXmTgfFQZ&eX3l*stpF4Wp^nF_!C(AZZF2p8hpl8F)Ay*lJ+H%-<8Zq^D3?A1BG zZqXP(lmq)quz#kBQ6=SGLD;>E_MtinL@x?5y8lO~}4 zf_vnZ!^@1)RpWZ#3bJeM4zgcc;~NMLR>j(iPl5c)GxFv~<4rPHJ#g;;ZW;KV10Pyl#@#1_AQ1^yXpZTTSy3cA+jc_B*@WaYM z35mr{W`E3*HWxba$CQ?dzmF&aSjd+6crX039gH&eTvsy*_E~OgrU>b@)+0jSv{sgk2*FeyAROJnpt`bH% znXV}FSCmv5H74~fx@ex9HXQ-gsdUln^Gbb z6R)x&!h#x@k30GsDR*#-?^q;6+m#k5XOe?3maBYiIMwW zSbv;2w34)7!~npGq?m(10%5z^+*+pkXU5&!eR6aCSqiW5@j40zaz4R3j!=mSfO6Mn zBK24@{T}3md*0+NK}uCZh(YGoF&W>V1`wy-^i}a&eHKEFF6NYbd*FygysCW`Dh)2~ z2*9N#Ox_B@X}h?n8U%ZJ7a^5{FfcfHkbg)}mc`Iq@mc~9-JDYiNv?1Fp>V$=i*Vi1 z5+F6WPC#?Q&;n<|Ou0C1z>Z-Z(0M$W9K)i*t*0~g5X(gRye;l?*SsscUDf8h`GO!s zcay}UdDHwCP*I$ZK$1`LqAf*-3e2BnA94*<<@*%=wpNVGg}d^H+=3^6!IhVx$A5*= zzZHqegdcvEm7y2HBfW&#d2hteRcL(G!Q!xxz6hpO$x7euJPPO)5bs(3a9;^5T%JlI z8X*k`=_+8JT?zYOKcb;Zj8XTZv%pOqN(|6oG(FPksiTW`FUFT9XkU0veTuiDW#{r$ z0s$@a_@%nPcu+sv!dZ^olWJ`^V1KrJ1*!L^8cdJH0Nq=2WoOUo(RvbnMremo(Pn7x zG4wLHHdD;u)p8qsto==2Q1vGF?wpV>&@M6$fYi#Hk1GUgI95+;w3vfcqv#ztdR9rFjpM}$6;H>6^~|&yQO5*DM(xrWRDaXEWL%A7ga2kh zWp=}G?l!-~vY{M&t$oEvZlD(&nwO>fA7w%QH+gID5X`e6xB>@uN_l9U&$gx`8sBM} zT4Uh7yU02qrzeyT#PmXmb<00}+^ZEP#?Vs&QpNgUC+!n)tkl$_+>~%=snA?IZZ-xS z8;OeJsdYF&624XjZ+}Xl0VhJ$xLBX8qJq0*@05QKQ%?=<*E`q-iRC)~>97wH&w4nF zM01Ng?I)D#WbY@OcCil<$@Ttq{zim~9dI`xIP)@Z&TFKdtkOyo z!q0t@8W!2If{9!RFAkwRj4jGY=VN*Z9w6~NC?hKsh~?TEN`F={`J}8^K8-C(!?0T( zos)r;URVW2By_Y3=UN)(N{aja5vu38d`TCy>OV?29b7^=GHG*N3{OMacBEo|9iM=j zlv>ftqB~V)r)yj#Ni?&XNOuCNc42dq72!m>$)u;N9rs3FJGaX0DYrNMRV(3*46T%dd}Bin9ADK@9|8V`-*MvEq^mO%YG$;M$YzLr9-aG59zqa zn3gIDw!&){_TPwSV!|-^Q(Nd@3HEg556JjIv#?Kq9@0Pn6dp#;;F#u;^}ck2b{E!! z-#9dSfqt4adINORYLjV4d}3=_Jvb7#G6V`7?TK=oml9RUxk5uYczo-tOdy_dn14vHlA%nDxI522a}# z62Oe!a)-oi=LZT~6iSdUEa^C|g{58tlBdI101A&0+VSyL$Zi0B4xZRq3(*}un#+K^ z<7H>l2ePVyYHy>F44|4BNh}63GVaKlq($8YlifGfBBsq-im`*gCj?r-aN*=8cOC!( z0)M=tp@12gv3u*3Tx7D|`q>L$2P7B(gm4ynA%3e+Lo|iQ6-qiFzZfNcZNF~u2x`s9 z&`5BGRH7pV)iEK>tO00W2IQ&y7{;kMEI(+049Jx_C)FE6+-mF_L)cNZX3Wa$8zUK+ zOl_&$Ai1Sso4@1$xcQ~MYVGn-G9UGyj4+Nq7OC) zQvVC7{tG0S_1{SFzeIvr|Ha}S>;EwltO}`|EQVBb0rZUsL&*+imW`RX?2dq{9p@fo z*oCS9hd2xkI!OA$Ko0{)ehM=PlSY&l7&%t%UUx~EJ3mB%$8aGzWw}F^m5#Cf<$w3Z zvOe$PHf_sFcYpn&tLEmS=JK+-U0aDz1%Xh18#s5j?7*;-uwO|O>IGgK2d#w)YYqxv zPLTx40Rb#8&nO@gn3TdUVeMVyyJT1mP}jbGS>CnwQQoyWN@Nf%Vh;u`Fpr$=g``fb zDJMN|=YqX|!8tU#X;&6CnYBnG(Vr`4PN!#BpkXLS0Ry&dJV7Nz0Nco#Zc2l5TUmX8gd2eh0XX;IeiykrPw zJD|B0z*P@->41JS!n5Y@Rgd^$fXr$H-C~H{a_GzLkL!*Azi+@DnDffT8h?*U&%;zF zXlg7nH8fR~o>Hf%I_X-MQx&`1sAJ8xIf%8UyE67%Pqs3psZM2ObZyPY)yKIe;2Mo< zrgH_tH7;Afcm=~Xxnpv==JAZ@^;<_DzYcy~?24#!h_;dH%E&dvrBQC3<{9$?xpVra zu6AwpiuNPaXY!{0cFpJ6|9>mxE9PEWAAX&ftYP#D@+0?)pI*j$h;PFF4>%Lrf`x4lnklcL!Je54z~qZ zw+xd7+H?sAbK1$gwb#|fFpS)3jM3L}#`5?VqQ=b)*X8QC_1SIK4V!kH?m)N&@Hg~DW8!zXs$70x$# zTif!gjy3nSGHUdoCGE!(B$?t`!etbl^eakQC#-=q4Leq|tbgf-ih}|l&!~B77PTau zqUz_<e37v?@)&rN{QRgfD$8Q>Bl{;IyPEeln>?; zVff=c+|JJh3x6{;1^D=iwv9~$#Z3|;Y>wb@%4t_AZY!bFsuBI#&p0xYeP|JxdRjA} z7z^ePqhUOi=JNy{c^p8f#FJvwNQqo6{-HS_Uwu$P! z;2e%*EZkK+yF@dvaGNP~@sQTt`HN2sr=7zsTJSp|7#PC0k8S}(dj@9T*JdMeP%rY|8l7w2_do}wR0%V!sJ?|3QL zm%nQZ=PfQn6#mSnaJ!8g(cPHAJ&eZR+*ootw|_fTtO=c;(KP_PoCoa4bf!Gdg0)Mv z^tu=PAWM4;J4%7_co$@=iB$cGmIlCpj-uxKU{;4<(noL);9Dco{PTRLjaM^1#u{n* z@nSs+l?vT#qp zCx5u+#BXpPC(rJ@eH6B3&;6P?Fu$v}ubydjd3IY;w|cA!wQ%U(o%M26l8>h2r5wL( zv`xdCp9M1Q9rDE;;*(l1<61Ys+pL(b905!d!`Qz%RZHGzQQvLxLY>OVtG%i=C*^kb zCo~YqCttVL?s~mZMbBdH5}G6!=o%z;eL0e@A` zfnDFRY=zkEX|;jx_WQU4#O*_R!}IMe3I`MBqiPnyI+FL}t%2jtA$}B~eC$`A1%D}o zKA81uL{K`9tlqhN!om#+yn?}v5VE6$>wuxynmTd&^Cl_dqmGeL+wD`vnby-oYg%|m=TvYyg_;# zVtS-Pdty-|m=Qyq5hEZnLnJbz2|rR;&Z!~lt!OQJY$tm3M|yl{`8Y6YVPdp=$mxH6 zC1Ii-tL1>Ly60LoL|HYGnI^??_u`K7<3D=G?z#`j{Wf>HPhVap+ti+^l7Ab|Cr`9u z&%_jzG?+43a1z=+$pdT&FIJw2508@}8-A4);<*&J#`)2q6-Nrzuq}DEqRwG< zG2LlK!kuk~!9hqV#wYw;WJ5Kj=}PJARFe*X zPW>TAFMJ73psZ=rC5*1~QF^x1nDvJG5i7e1Gd+`uk+HD>2O~QZyD7V|DSth^0W$-ufg!6Y zqaiCZy%9Y#!+#ZjW99f)_!~1LG#mPqhKOl2#4F4IKV`X6cFKoq`qAfK`+HSMG zT3dGfR8UK*Fl&Pcp-&P;(#_OGUt^Yyu?ToTFt!U1FCn444Y%jM_eT5YBtcjqtRli~ z&#y=HTTS-d*RS{c5q~Q2IgM|-_f4qn=SgpM*Sj;Z#OJuTJWQ><{i^kL)z0?~t0$Ce zXVg%PLJd5yOZwo!;ED2=ap2HCZF%;gU|Q- z;lr-C`};e~<%{m8Pv#pQy7&0!A6t9g-rhmI;MaQpEaDDQ#eX`CO252NEV=)9{#>GZ z7&E_bLpMmfA8B;!AZ3&nqlc8Cmg=LHmZ9oM7@x?y4O6HOQ&@_qDKc7lsNl7$G8?Ee z&r{wcj!_$Ry)QXHsX9bz&Zh{Q;@&Tx%Kt~kP_@H$`l7fE#XiOjdraypm|f#StJ9?u zu?20>Pn-jWYk%LaN>!3wJd(6y%`V|BkMT+n3p0^g6q0_Un^<;TVkQ!S@4JGETD1I6 zs?Y`!&p%V0$0?jf3A*hsA3mk`P$Y~$?Y5Fzdf7Cjx)g6WZ>WZX>#veq@~2CQ?pL)6 zlT#)Xsh+JPOt`m~(}$;c?qjv7m$=wi71t`B-N@a76n}0qwYp%LHd}(-Qm4Go?^Om{ z#XX)>FDX!QoVy{q90kTQdFrmLy9cW7PG5EIpcO1rgYk@|`gwuny4NLDf=^ z5n?%;+gajvV?##z{^0q@{`6-m?TbUAB`yhVZ!e(SVPjo+hQ5F`{jT9ISIWiX3@FtT zL~*}Uj(^F#{u@q5HSbfOtRymiC#mgh-m0C9^)f?@gMehU$n`@}p)7~1Nuto3N0`ek zM11F2!L6G`6AoisVDZx_-isGGHb;K$8OE(o!|O|({e}h>Ml+ALw9CuHq-m3PamT@3);r@ z!wj>yr~wrV8CjLxegKVh8v;IGB&3>bp??lC@(LiCslh;lbhzO_h|}+Qd#be?uyL&y z`yLb|JbxB&@tFXi#M3!kl5EtpgZE7W1Euc9wGFv_=H0HtP&-aC3>09nb_-%;k4q4E z8EMP#09fo_J7#rmU~of6^AXn87op&9M*GO?Fe9Mx)&|zf*?{~I#N*fnqjdrEVSi+B zBuCZ944^?4Lj6(9DbY+Ld1bBxZlFTdTB|;I>ko_Zf9%xnzyc_`F}U#T#-UW?sn@zt zF}@h;`^2*j`b383R6&7MnZp0%^4qJ0L}I~27l1OD0u6DP10IxzffsBnD1Rv<)E=@g zWW9%w__YzxQA>maY2%!*nYuu#8LB|wy)%_oPyB|4Js6$)gM9kE zU~TKqK$9i^2q}IrSf&O{d<-(3Z>g9BhJZAFLl4URUg9_*G7bHH`c7BhIhV?{&S9=)-KZjs8C6}$<;(10Zoz-S z>HXP6F-il*Vxm`+P-1U6YcHnr+L4<$9fTPXEQ0&Nj1++=aWzg&oIrn@B9o&&Hxz_h zC`$~;a9SS&avRLC3Iu9ug9*tjVxYYlUC=sZAC(}^2yB8CG1^zp#_N1f0C)%*3Moe{ zaD{-9Eo%%bzaRom`Uc;RES(ObFJONiNR{1Ws*dmh69T_hX%rgKjdFmT+86-ZA2r@k zg9=SD=0X9DMy@-@4vAr23CbIdAqWb*9f2P%5|99v-6+xL4uhlbeRj~tzteFcz28m; z(PJ;Mxq!e0iqWAVebkupn=Aslr<6l zO7p?bT6b%^v8w@5K(vc1 z0{l5U7lcyV4BUav`3#&PmuogINHr`7?ZpgSlT$A4nPm2qR zLWAVx`E~mX=TRtVjfmhGK4Qzk^gKyxrB0j}>v$+K7|cPG#3OT9QAd{H-rY+0@iL{T z12Gr%)2(c+tdEOZ5ctle&SA{7tm~E2+^ftm)Ko8o!NzF&6Rk)LJcfUPb`=J0(_kkm zL-$lfQ6QUByy3~`oB33%T#Jx-o!{R)qF60KKN#$)>tVEbFc_b(p-`qFQuZ^p5no|= zHv1f$pM6M|&*ll2+#5*ePv%lEGlewyUU6s#`}3)DU1Cw6*Yl|u_;@s)T6i>~2izN@ zb%2Y1Uq7;=Wmu7WJR5()(`&SrD83HZl&x7Vk?~7mGpj>7VbGp&K*bUlQp5N)a0$2~ zoEa%Zq^)X*;g@CznPp^>n`)YP$49op(LB(iQarq(t!+<+eUE~)*vS?qk76+%muBvV zLB{Q2^%9c~XuFgaX*Ua359LKz2KPlBESLaHyQ3DHu6ZOi$6tTy`!Q%G_ap2JtUGZA z&?s^;+$c$xDzGuAzS)K>E9VrIwOWOq3n#CS!sY2P$=becncG;yZd$Q^IjqeXg&xd5 zsooE!12d_IK-B{AWD@l;2B^pR*_Uu|E?i2aCa_K}uE&K_;9(&6G&4 zfMp_Vxwy~GOOJmz6`&+~9Va$0i6!o@Hl&S8ygjEYFZ$Fkl) zk3D_1gT;eq_RPM!kSTHm>_6UMl%;_V)Cy6(W&_2+Qx#PcJXq+oJgg)n`bcc6}KHEaBqdzy@4Ci9AA8G(-@h-I2$rAdcG$s$YrKcLRG>A z4;kqckQ_&ek_}e9a#b8YWOxRwQLaU3Zo)LKu&yMPIYbnIc{V&w#T9f>+67k^vKA{k z?TV{uDM8$9m0@~~u|+NB<&9S`bLMZTHT9fSt#5y23sqhqtutUvV^dJPZ6M<&xc#Kz zT!GB7dkc5{#k{`s8%DIBb8c?SY>*aaDGt#^Fu&c-RJ&~7=4kxv4JB>+1|J=0!TP~F z)a}sE5562iJL30@bQ(EgoJn}EW6jkDsx8AhO?!qr75nyaQYb^DK;JFJy7~g!hrggh{Yg9XrV%jc^w5E&*hLw=)UiN=+=ct+YM_Jq zVXoQL4|?MGF`OjYhC$$Hz@Y19rVV42%)g*+OdS$Dx0Y+cDQFb$ zW(|YUzL#G85_X!9gqcgoY6DrCm1~SSX()(D%hAWiGW6wBt7({rh3Un^?de+UN31tw5`R;Av)HJE59a`--F|#M)tLHXy3- zd+E4sjpDLWUzoV-V-PEZ8r@tvb(k`cGcsLfzb~l9{R&Z-N)W{jjJT<61pwcEoc@ih z^c%eaaI9x0Gbck&qc&>kYs3r6PFv6yMM|;;@uI2jzEt`R#{Q9t)AfoyPjx3PwS7;O7b zp?|Q0IvAio7;RAH^VHa8|T#?|DBe}4-NI6Xz5H;ukNNFuQ4)fXU)VgWE1O9L<% z>u*`ojl*V(T2g)jFW#Pi^!>y(@I3vk&%{oFG)Id>9VbQmNaC~Im$)jEN+dSAG@FBwJ{Iep@&?Xtg`YnrW#oV41hcL{L-hG8 zU1-UJfleZop8e8G=g_`tEzyjAmJib}B@CejG7E=)%(~adJqP@syorCK0J15~A@<5w z5P|2kI%-NOe5{+MplNVz2#UGP9T8^r1&Qqr;LI8AVw&;|{-mWOE=Ibka^#H@((21| za_G;g^9BgSnE(duGlNel0TNpCB|nV1rDv5!wov*20bdl6z)Ra0&7$k{(g z_7MnNr~)p#6lubM50%S1=iE$XK79*xK1it(*J0kgO>sIF%w&Hfa^CUaHwZU(){Fsb zr)IK;k{@_XGG|pdBipR(jv|p}WP?Mo#t@fjb4IbLlsp~4R|n97I6GGV*qpbo9-ehvo#rahTxowwm84(%DVaLyuz4NX`VD)x>*HFI z@x>TA8K)E`04jeMsd)hTdTRXd(_+LJ92A{-*~P98egI8j1n6E#ytqP)D|tChq_SLM zT4dZZn@uK(FHyNI#=EnNsqRht=99_?5?W-u4Xid9k`GNLl*5au_OLiMkUvB7spju_ zH1o}+G=y9mjP=`G=2AG1u`R&|u`Sts)*DELe^0=S&8L5kADl~3!*4K_pYl+#$!Xmz zh|-XO-168!9^u$zIPNwbQ-AJ2&M&4)*vcHQv#!97ZH|9hx6BVc1fdl z@zIF5oRohG;W#1H*d~?I(Nkp?^D-;_kH}dy&25V54kf%?o@^I**2j5%R~({*Qv|~6 zDrfs}1fAT!-meR@cc-S&%sZjoKO^%;cQVhe(M4>3^}o%M;etOe!7zA+Qz)T=3zSxO5fepp&~y<7cUHtk)^u{1O71iW+~2?4?V5B0#`E7S%odFqZ58aSO2V_I z6Dp<+86>v=G1JMRxLFeH%jj7V&M#!UH1MobK?vC~EB z@T`BxubiyNceboaYm40L(nofz$T2jm$aX7mtjJ7%?|UHnZ}jER-+QWsM$3W>$H|gl zmSsh@T58M??*IG0*JmQMV^um}%9?KaQ)6A?;CXhp_lqHKTFwxj-4_Yj`z|Rxby|*S z^FFEUuYYd)KI!bQU-+wE4ypOSop;)c{k?zH;r)cGJ z90G=q(>7tv>^UHF(gOk){OFL7VO|&RH6>c;QV4RzA=pP_8c3LLw?>{Bm%=}!#72K~ zEvTW-4F*Tg>+GPvHpl{M1SLn0z?NbYkXP1_csCF@)56<0TChA#*F}Q1EBT|)$mK^GyF?O!l^CJzip0@hz=p4|z;QT>Y{Vzi=&t70sj zGk)LO$HC7sU+(62Ca&F$h=9uK%y>|xO4?k$;=3q_v@{MjVpj) zc!>B)Z7&XyN4l7Pc=BC?Omn&>2Pc0k!Inj1l5~cqNeN7R7|_HLZwhC+X7@WLxe}v( z0S^#igb-0WbMfdnuJtceVv>7y-9HU^Z|0`%Q^RT1i!rg$LVAOu-7ZA-rA8O7PMld{ zAqGZ~sk%pA06H(>q6xguVg3gKN!Jq5D(Z>S+ld{_X!fk_q3Z6pyd+jt1A~899J;OW zi|Tom4ifmi}sBFn)wDYRkzfs&H zSece-v5Dee?)h7%H+Iu59%@8$W)@8FBM=}l&80GLQ!k)H1Tbdv(3 z)N~dO-~7-#C;M3=&rRm`kAHusI|bPa?_c9MyCZ^HPUH<1ekrgyKem5{+FpYN!GVW| z$>yHo&yBw%`3SN#us1+=gdx4t^eHjGZ_8^M1{x&_fMeHk2=l319I)Zj3{H=6BC~=E z>5j;a?H$9^zaleAYV3|s8M_DSiD|@-Cw*?=8oxf|v5(0MW}^*XA%%Z&2H(&Vy9N@m z3`QUAPmNrahxjtyEnU5u@@IJWi}+#dVrNu5jj+apK$))l9Q`tTDc@Lyp1eV>J*dCt zJ%F2D_Zd5{`_R9rZ2TZ+$lm^CaMragR%)^C14F^p`J*hL|0X{r zv=u~Xp`c&&zjf8^6C24cj@3YBpMG!x5}_14UuD`Pu}Oai7iVh3?>!u5I${-eBdtU? zD3cxPj*G-#27p@50LSL)fnY?KI3n0cVqBYFu+8>=GBM8xYbAd%*`$qleT+(15)+ES zH75x#Tb){>*5rQbvE>ntDb}wC8O>Ixr3I47X@HYPRlOiTT2`Um5QuKT0a)Z5oyGTMIWt$n#NH5Q>h<<(mT0^K*Y)HiV`%L8nmkZpvH4BbsjC zK33RUB}l+yAqIHKtXv1Qn8kzJnKMY<19n>mcU4_m7bWt;xnP4VePUyVG9TQ7f*0!JSiH(fgt7OA|)%(TSLg}MZn zD1e-tyos)f@w3!mWPh%uPVwoc*zHzk##O;$Ug#vOFWe6S9E zp9S@xhF(x!ByThkaf_kvQefrVV_rhWE8jl638hyRs(0TI*FdJ zt$s30J$oXaK$*GHtBGOoELRI?hy-ty!$2AS8PF_(8vVt8sPjSaEP@XGMcSE50&7EG z@T`A8=9{Fk`8V2c<5uc%zNf;m0aa-XM{et?3!3IBpjX8RXhDBJ&n3;mxMT7}7f zY+2m(h{|gVUm4HbIWI}B*xY?I7nb=9+@P;m6iOfn_x6Dm-l7PBcvS2W)PXGHRmRE!?(mPEAE6FB-}t)tY||HVTFGvWaAWQI(s4Anz^j1nCnQE^?ddVBfZ@!|EQ(*2FtxE~$PDFX$W zWutwBi^n=i-^b;i%iyd^LX16vq49f_6gH_Nz9^{ZRM8Ckjivo0_guHTI+bC#>bduS zyd2keu^zWN6Sk33;F#P3H$4m3tVOt`mP}n0-q&C*Z-;lM$LIae8VsmJF3fnyOHn;!|;v>vCWh60uBweq9tv1LHjV$h;5~i74{OXcQR+6e$N3IY?t7 zCYlmq$pRQnfsAC4b>n<|36hAL1)jun-Y;RkMLK-~_C1cWIXv7s#8`X5UuFBzr}L=W zbGSTn$lZ77Ponrw!+H!TgLg!_1NL3fYIl^ngO~2Wc7`CL1Gsp1L*&sT7}3Lj|Jb6_ z-GGQ}pGJCQ^Dc-Fh#of}J;03~SwKBpoLUeiI$RXS5HZZ1qz{A%jTlivd<2PF1S*vf z)j~bixk`}sAwCYMs$a88h+;xM_D@+KSXW$3nJ_A=0aHaiD9c);=2AZ1W*si_%pdVpq*+ZC_ zLn-Y(wYG4nSFE&qSlc}^+kMuXJ+DuHd_utiovongk5@>(L-ZMT2m2YDHX1ei04fhI z+tKTG;M+0WcI4Zk<*f|9SuQ8^n+cXK=v7DDRVTKc6t}}|5BQy=m*X#gcRw$S1u;t} zZ^H@+=FjkP3Q>zVADWT)WO%um^68?A1KLfcc>&HX@9A3Y13 ze(+)1XL#f4M)qFe{ogtA%9oTY5S^J5(5>drs=={~ll_A4uS3E9$C63xt-=sv5|mSG zl_-b7c4l}u9K_7N0~p&Dgrt*ftR&;BM@V$WwMbzWRFBeto*YVlW9ivVYkutw*DwyV z+dY;ZR#gYemiq_P@W)@{h0P19`4Y~pG0GsW(3<3xi^)c)cE&W*Gi55027)W)1qEnP zELwQ(vbd?4C^=*cKw8DiL%!>+LKlRse)=Xg=mcoq|DtWF|1&ONa= zTZt${_scVeIfBZ6zP-nL3||q%F6gx#x{OWI9C=(Eq9vLdl?kh(l(MBqw9^ZwZNJE3 z#Z@AA799SZ{Izk>V}AuRpKE$!g^o|Dv}AoPPz7)X?QTX0u{a?;R{V+c^;bKbIvELV z_?qq*?Hd0jBGgR2#CyScSypC0cxyZVJaW@0_TzP7Fkb%@f$fn2igg*a z?iD-(710EzPgfXFk7rHfWOi6xn4&JnnhC4FxTZA~FgDWfv4?@*d+vlbR5boZ=}^|L zy16OqA|kbas_C&#&y^x@>3)~J_EEK1Q=|EdkFQ#39*XN%Z@;EhxbthO(PTBcR*r0q z>y6Q=vu;y6R~bK5XDxY3XxajLwRe2Zgyy1DWo9L5xgQ(XatD1V6{=Y4 z!;Pj&B#X9>|4dV4Zgp3jstIjs$#K-}|A(D_3f887UB5ihY1_7K+qP}nHr{FDowjY; zwr$(o->UBFsEAro{f`~HcOCS44(=zfRAl5qj*)l%u7N^*aXqunPw;nf+nrky?HMeJ zl$?9BVZo^0#@S)bjB>hOqoG=?XSjdj51WSrTgtnJ_oJ!bR4!{h^%b{UimvhMI;>lg zSR%K7XFPd~7ZgLHB_wSzik4V;ve+c$H)F`roRpSmd$Rbuia@A}$gqk~r6p{2v8#%d zsfyfXc@W#&XHx=Ic_iDsSw#u0im-Nh>P1;j%eXi3Gb4Kw8We;=0q&K-uL_J?7_?5lAi70GFUZC-^in6Hknl zgJRpmJ7U81+&Ha~zpJ#MtZrjTJCTpY{9ymkEz`Jqw+PFI7eCP&m! zUt+4^obVU%+3lK2Jq4s5yRHR289K%2Ny+g^j$#y1LRxJ+j^!1SBeM-NR5Y^_YpMq% zvkTLtcs?h|hjf4Ee!fvn8A`?IX(gI&2Wb!XapoOT!{T^Nh4jCbX55ti~{W6WbsS+kXNuEtnN(L?#B*TVO zo|vrq{YjHUWU1A#c^?gk5VdWO9`&upA+-lD&Ldi0glG;a)&57VbDf`mIe9+>f_N@7 zgZ3)69ljOcjmJxW_9ukDx7mRToj3b+a{U^3KS6|v)Us(y1Trx(ngJn*2|??op!b0P zf)nxHu_uou6!2tX=5a(8@3O(GX|bl|&@a<^JV_V#gu^a)O7eCo-0a8oee)Vv)=PuO zDF_rGL6|_h`CK44&oM!N-P-#@R9+&32(U6RtVSU%8Y+?m7t^;6&7Cuvj zvnsNq9V}Q#gb__R+oH!nW@vI?xRx60xI}fkTut6n$6hD>x^6*{87;hD|9G=n3tptN zWD1r6Ry4W>jhteV1`c-^bQlOAd4pmGOwB;^s5(u-ZQ+F5^mT)OXm=K!4%fh(BxCsY zN-G?$$mYy|mkE&xszqi+B9ma^y0U9Mbt3!Q?JSGLBw4;b$3d5q#!VwlA4y8Jkg9qG ze;S*e88J+`zuot*IxADc;9wo2WPBc-U9L8=w-;p+rWnzpW}VLE5^bklr41Dzi5hQ( z8Ig0F2nq5}ydzkDm4-+1u(rcS51Wa z0U+;t-FCg+fqWIB)G!Je;9;DEfJZwa$dUMAK}m;Cr8`Key@joanz^{=y2amK*|Sm{ z(;z+YaiO{$Sqnr5*M3-*d?UePfy4xhK;|;$A*mlNH7xai*GBIC4>84qONfy@q$-V( zco`ks_q@k6^ZRnXwQ(#ZFmlN+W%JeD$`1>3w(zz;)E>Rn-)iYa_xTsy%;GvQb{4PFE%j# zJlowxiUQStvd0jhCtNuO-d`2^J-s$N)?WKy!S|Wpr7kS#-;gikzO>@^$A+AiU1?NL zF@$P3CC|lkbF1RYcuo0f&WNdoF@!B7|A61f>mU8($PIo6XFa(|LZunqch|b|;XUh? z@boa((wg3%ezPokdi5t0$OVz%8V*u|v^CmbDSttKM&-H?s>y0+fCS4Xh140=0`mnB zGHXrN0SD|w1Ao_!Jn#6;qrOwRSUqj2GOVhG z2&3SCx%IdzcaFk1DsK?mE!Ne&-7wPglCzTAFZywSXl!2pkpd!-MWS_zfjnMN6-x84 zH(ypqeQB+mUGDI6M%@n}owTa{>6S~J!!moI{c`4yK#nuaus*EskLYK+S;o1oG36YU=_G%heY7t(o&GFKxyDaf%av z{x_NL|Bpu!Gnp{4Fc}(hu$h|tD~OoMl!MjK)Qs80n8}oxh1rOS!;G1Mk%67%zuJ?* z!SR0=NzB3i|FcM94$l9fzk-wD-$fF0u>2SLD>D9De?{2qsrpib_xxywVw!CbNdO>y z;?vCC07p^_qr~8!#<5*^{lvtw3QZD!=Ja~qP#bk|psIS}Bv0v#zo!s2oUoTM4 zm)BmM-cRSYpNHLA|F<8hk1On7S>CR5sq>GY$LCJ`-GNqz;mgmsRs7zs!_~E(uV;Jz z-;BpJ{hHqIw~v_P%iP`-`c?cl_pgW3+G3yg=gZdQ9*1gv-{0@c+@4K~-xvCSt;yfI zJMW*{)m8jomr(aMKhKm)cy*XtjuBMp9zVJKkxTws|5H!a92s)Dx!h4_+xm+%@&OnGEVbvy^y$b>BYfmFd3z@j3~Y_oN4O(t4y4ofKZh1dwr-VUAtm zh9rVNb&yN$Q3^k}z_gUT-iD1nr86`OolkzgYbCpcQB(eU>T*1KS-iy`GshRlxJE+T zZ*p6Tr=`grH@AwGsSPOQdezAX=G64x2^x1P_vq22{PVulg{+RtMWa3)BYuhr2NBVHp8Xq7 zwX7VDCb>lJGDJUX0n$=B@z~r7njna#*Q7jwk&%A@i{u@@@(k;OmzZ|VP5z>P3lYCR zEmlpY@SgHq@pa$wE-OU6(!&^nhLJ4MZI&(o_jE9kuv6YIAVQmeP4ieLNka{q+MscG zI*~3FxNUk9bSlgvMZIP3U(GHFbOP-6rKfRZCzy@S2|V7tjW%%l0k{gY75E!*GJcuT zUW#Bq#>2_Pk6W7iqtxT~iyCz~4fghpp0tiA?x)Bq@L8$*{_*MW@EhS>b|JLVsC3~% zeW?k1J&$HB<}-kQ(9vbrxkiWGcxLa0;n^|duqGBr_wY%n8lB%0aeac?j%&dbH8x3T z)LhTY@Y8S26M4PQ>dfjXU)Rc$W_V<`&hoA)a|K|OSo~2>Iyt)&x-@f7zP=F-2z$=O z9&o~%uy56-I%YzDN9t4o>4bZ*xQ4o(kydV^H!Iw=AR&o=0$zlTq36s4OM^HC7j<>& z*B6FzK4GKFM3_B_)cj%2=OKu{5u@6!eR_amJQz$8b#m&5VBoohNnf7!$7G@6YaM=% z@WXBr&Sb9p_BS|YB=HAdOe?BeE&h6qHIm8n1rdzG8Yiz#WKBCVqW&Ug_2QIBOfLxo zv)0hVPy-2nJx+n}WTDs*@{UoYMZF*YHR|p9mBbj_!;)fIWI5#fC3xQ{>;W+WVwM4g zw4co(^X>HGQaKHu8{?pTso7F4F#EEd5v;{mswNyGa?1BW05)d^2nqNzHUTGLet$(T z@(4?H=YV9ui02PXVjx+9;xMl)QSf=#PliODgHZB+v~+?2TSIL0xbIKE!_v6o{{2|` z*(`X%fSCsprD+(xRLHdLP)`I(OML=vLi&2b5>vv^)I?lIdY``JASkGOLtzkFGd&f( z%i7?bhR0mO=g>e>EZ(FnWdDQ0lwp6sdQe5KwpZUd1btV(=#}1%4j0?rbeMaFS5@v9 zH{x=C(^^wSk4J;$AM>vMJxMof2wDsJg0!c#7bYZrydgzQoE#U2%d?u0K2M61{ich9 zS<>x&5-|d8z)zQJV#lX}`mz8?9^W>%HxWo&Pqw?O^uk0*hn$q9H^l0@64s?VK{Cfy zB&q_fIe-$)yUkD-EdbmX3=P@DYmDRNK7+Y`Fx{wE@Ar>(ycy~Sm!bih7_~B8i%!n2+Nr|u6jk0*%B#;wlxP4Y?z!n!%?YXPqrmC^a~^s zIfk<;5SNzzyFba6LHp+{L(s@mvVee(3KPNkB`p;OB`)BDInnT-awxVYQI6AAra8CxU7%T#75joP8 zQWV7Yw^9JIN{#T~zTk~$HATq+W;AC^|v-30)^T%P?Xj@@?$7+!= za=A@+qa1+_8&j{2|DXp(TaW3*TA+@tU5@L`G_srUZkXZKb30vCbaD!r5)4LY>d5>Z z+nWhhR5H;KW^>62@i?8r2C_f@B9Jj#W2!3z56MVR5*rcxyWNCf20zWyNER-CeO%D{ z9vUDMvACe9rlh~nA2XYdLyWfSEf`IYRb>*Chl+ZJ|qKkAz&c#TX^+oChnGf&&W+R{GwW^XuTworr!+{vjF?tc%crkFp@I3(GItJ4cuXC1 zo2wMge5!FalK8M^?IIHc^r-C~iMIpx8sjUMXw=mzrB{)0w$W0@3gyXv(l%GOHK3jR zG*9dF)cuBvRBOv3{XvA1V)!g}ml9*Rd>1Z6%JE%{^FE&#EIHZGKub8HYJ{WM4nHHvvE76h@otGJ(8_LF% zq`hHLxXPeD>i{LYS0LM(EXuB=@Fa38+pB;rWznutvb?yI5=a|w&R($Tlq#;St@L(D z6E3h5GJ08=kt$k$t|8Sd#Z$-r=H1kYXj*S3*$+v_5NEMuEnc@vk&@P5C9kZyo|>6z zX>58YS+MawYM6m*nxKK=O9L54#ce0~!)?eCtFv&|Uc~2T+!B8MR(`u*af`G-SKv4m z5=PJMLR_oO=|X+Y-l#?S#9STfQaov0ze87_^5)@g(sI{-SK4Ccp0O4%jyGOCL>M}0 zH|->CPbvaQEafEppzX+#winsb}Eluwl-nZ^Sx9zVcB>nlC zY1f*M?gaIJIo@MKQJN0WdlCAFt7a`png;WA%AU0E4m1}jz@iD#PW7aZ=#Go;1+dblL4efP;Ou}l5&gYeQN_gU^J)?m~|re zQvsxKn(kmUivOyPm<`&to&H%EHt(BzP5>O7;{yg;H|<;d&Bm+?K|YuX5Ohof%rtNV zgK6Y{W->^Rp9~oP3PL_l1x)H3+HQM?S*x+ttO!A=pA87inhX%s!K~AKZ^ReL1q?o8 zGU)t(=S!HVHb>d^)V^I{b^}#P$~0wZO&~gnP|ga2B_Vg_!$EfFd+QUQbr%i>DRFbCilAN9O;TUmc+R$FHI-}}4 zIO#a>mZZ0yOW7hj^qv0akj*0%5~7pwJvPmq(xa-GbL*Lln#5U6SZ`AgN@a`IM`kB~ zHj$%zlkR9ug$A7w8Vb(MNNt4%-4TrBqBKTiC?vMF=yjDlk(kLjlJ00mmWTIPoe>Te zO?qP(*_Fxk(36soynm!vnc1?9z)BLHqb&&eP)L+~TR$=1RqZ zocXC_Cjk?yhK5O486j$F4kd(`nFiF*q@#oY?Qabwgm{U1qXqFIDJY}*5;X2XP=6q1 zMi2wTKRZKD$wL04wNt_8)9>y7G6`_(MR7vRjw!B5CmLG~Uc&n*&>4=$031AjvwxQh zA;o*WWT3*SCH%rn1A~2qADJQa0ZTDRuI_bTWv4F^1_XZw8@#6XOfU^8vXquex0B8UlgrCC&*tehTPF6~%+2FqRXO%rL!NWNmiIXQ+iQXm=MwUvJ;$Se8t0O7)T4^r z#iNECrehVk#h=AL{AU?+MkxGtY=Dsvc=VJw9hD8vf}bm`2utNt2p)cDJpU#;L*AMBTAP&IJ_-r++q{ z45GW@@~sOg_^L2fn3-RHFz^=%ADsn1gA7p8EtPcpp+FM&PfU%u_E;EP6sfIK;&XJ4 zjx`!4WqZkJsb~#qOf*}&+7&NWyBHQGWk=c*MZ&yTxVF29Sft!SiD_XcWxnNnr;)f; z@{~4I79}QE&M^tWdv8M#^WdnpD4eTx2+}b%FmU(-$|#Y#M|H%1qs9@GlJ>!IsLuXa zTTIKCpxnVRc{@^xCN<|0#>`2ij-6-bU|yS{xx_#_fLhLkR;Yu^7k=*t*pgV2Ij4-o&>CC3iyX!7S zf{v)3achc7g&h_(DNTHbX-HC$H5?T)rm2H^0q1hYfBH5_jTdEpXKWp*IVLtS!!92AE80(1+tqR{O zK5G@K7E;n+ElD7@?xz%zCf({;s#n3eqIL!|$+bWRf<(@2|Fx1VL!L7cYDY*m$!eO- z;;8|DHn|N}Xz=06q<>s;y*zsli$f#e5bLg~CGgq2L z&4GW(|2#{``EP=DIsdCcy9vGjf`muha|RAwIYNsRHvmN|YNW${6c_mbz{y0d01%mu zt}g{#Qn&*AeO|(&%jpIm_iTbLc)eJSfQ++a+um5ILa60d>N@~!Rk`Fm)f-`|h#uR2 zXdzGgF=s;pE`k%KBeAn`ntBg#fdejRt)f?C9X>juMX^>9{2av60vdb3W5Q~@6ZTbS zAXM3M!DT%&TbS2>sQ6j~=8l|owUqP@k%|T=wnJnbc7hp7%+H>Bb$m5y#C#{mM7-sT zvy=@Ayr*OW*HB8NhlG><0-f8=YafJvnU@H7sXxWG(QcWogg)yjr)7AVYigX3#o4{M zy|(Y1f_T2YUw>9s4{rW~;Jc~o_13EYJ3yF|<=@=h|3!4&|C<3}&VTbAkMn;4 zQ~xgk;o=lXjpSvl(b-RYvmQ$V8V4Cn^DwkUrd4Y)Q_F&4NDG2Jx_Af@m?)Zm2AC-b znTF{+xJn`dGOvWLwuG>Rc5_QRO}nj|?j0NTMsL0k3rvSz)Yj5ZzFGI2*Q`hXS?`@& z@19rjDanyPWu^KmG8zj+zia6Vg9N{Ke~QlLK*Z#t8J&1$BeBR{NEN{q>5;v;B@2s3 z@R|H960I?ndDaV^aUAqd&zyUIjZNga!19-5mpT~a(J_;d$8#lHt8v&o&gK9EfBNHK zao$4QZFH=JR76Y)PVe#u#XQ1_y>`~_aqxR6s0Q}l%LXOk;$mZ>AlXTF)PCFFE{8qc zR8Kt%JGfWNz;RrI-WvhfVn7=R(59}cLQ)!-)MltONVUh+>Zw|yx~H{&*12uiz00KCv|~a5rV{6!Sju`3i`iQTR%Xo^fR7 zCAmcM6)Zk6`U;t!(PS5YKDq>MoZYs;zYfCs?g7Gn2tngM-3tVMo@(Ox6RrCFh}-Qiy|6DaK$e8Npu61;khkVXuWv#M0l9_6)4Pf$bhJ)$CFA46^#f z{RRk&aQg*>zgFN?9%Oofp(k`ryr0f(+mea3X{kd-8?EVTmT9{_gF}5~x?UkwEk=Guv+oyqyv>KLf|$ll2*Ll29JHE<}UKQA$0AW6qd^31~; zH2K1!dTXMzSy~&fm?Jtp|%}+ zap~!saf)lRqqXRDXU52*kX6{C;fo$>4(4J;PnV3Ys)m+ov9h)(^n}YB!YGX_L&@b_ z!?;;C&Ol!)xmYX7y0OR_QEn*-%}(C4*;Q61Guj&XaY^hX1Jd>uYq&b-K&6 zc*atwo}+Xzii{G9UA6KdM0#7fH_>HvII%y`99jHj=qdhfG%P8tX_nxANkMvxXRY-HT(Q|G)jw%P^*t7hzt3Jnj)~PS@9M6Z-so;(GvG4|O8*wtGqFZ&gOqt; zk&29C`zX4S3u|_`W^%HyE}ESVecA8DNkaS=9olemEp90aOq#UDC&V$yEnwmqG^J9s zQ*K%Rk}8I}3{6~h@tkd4A;mhjUG=G~)HU~iA(`!O`tju&eLJ0JSz!3e;xZd1KM7cQ zF`iC2geol$J??td!Eslbn!_=jmLsCP`eU>Rq4p-D;26FoTTDF#`eRIGD5ILO=#L~R z`<>sw`&Y_HLupD)!KMdosagF+WYu@)%jog~O(@E)B1v(SsFUT1(eV4Kl&q+63T_;K zv?sh-iKlB$aA!g8MLrgI=X$LY^Wu-5DOV)M;0DAnuvAkK5~Lywl@E^6y+O|*@3FN^%8pQqP9 zdQ)951Vgp&OpPL20X?HD;%cuyr`%M3zPe#EtX66JciL?8>Y!m=P1mMT6E_JdbF%x$ z3)hHglsujp6gfR{dl0R`0&Nh6CUv;pBh>-C1+GE(s$0MR@?YWXy5bn!9^h?0<8dW( zOPv5{GK-dA(?yyrnJ05P8RCR+WwgaYR7BM4W$CH&PFjL)RQXC&g-#XuT3W(?u1%?W zrLHRSmzKcaDOeW7tZvYKuV;7o;sm}@zj^)(y=TrJK|MvaXVxEKJ;jqQp*0KcE-`)u zx%~nFCJsS3P!I|Scx8Jq=v&b0Pi=vU?oT0D-FE<9?u5^)1imnF#soQi|JX7Fm|+H( zQGEs=c_WgXfiiwTEq@RLEFi>x5CfS}7;q1Jpx57!t7(7Dm6;)fXQUhwc{P&L67yn< zR1=LT=BG-t84X75LslxUj9R}S`!@tgJSB)*;^*T=j;4+!s`ocXWMeT)AE1g%p{GTy z0(vKMc)oKa^#?z1?W9xtc~+XLXx;CH>KwJLs8baxGPGj#qigjCl6=E|&6*EWx2SfN zG(}A_%GD*+nu^_Y9b8nb%p+dm-@m}zfRczK0V?8$t!it~lPuQP=Z{Z`s$okZPks3;iUn3?{x#P{K zsWeK~dx$m#lS74aT1hv5`NjYC7gC3&MKwx4;_SB%#M)x3+0Hjr#iZw@nL&9Trlo(; z!pRoR$;NHArwy!G`N9k*t=@pk(R%kU^?p!MS1Rb7?Tppg9i68M7J~`3-QQbyW zn})YJektjkg`%pFTCcF|@}4iNptSZ9-knB0E0c0N)k$DqvBBzpRrxzF8{PQ$5!H2I z)EapsODT8lMQ=#;aT0muU+xc>);BTpZ>$mfzd@WB{#VUY|G|*|gCYM1L;eqj{2vVY zKN#|VFy#NgV8~4WPvdqBhAf<>%*HItMjXcM9A+$xoa|M1~MZ9)BgbJF)}d!J4%m*;lDuXX-m$Ub}R1W>N}=xNA=wE z*dRhsB0=YAifW3y9zsW+0T?Fq%JZ_W9Xne>B9Xq*!kexhI>FW~-oriZ+9&+bPdoMc z>-@Tc+I>#q-|l`9Zux)RUfTEQOK$X#!dSaYy}shF+WUQfqxFPx@9g?_`@J69_m(^z z^Y^UW9oN2H&c5RJ_*v`!d`*7S6Z}42-uC{!e01JUeC7V+lzgZB*;-TC$VeMA-aI7YZtoG%_Kls~;rIFsRJ#Luw^kz-LJ>qt1G z$-hR8nTrsAn-F17+}3M~+F3up{BxjIK4L{=cfh%0*3z zg;5*4JY3%nI3l-j^YzDOZ>?AE^BQ75yL%3|-d$E|vsw7$OD7z9GI#w4qQDK^d1%nc zdxr10M^XIlI1;xT$w+P~w%alV>N_ff^I13CgvTA}s9n05a;aE|>P(VPFW|Q`48p=ok zQvBO|?`v*TEO5(IpZBezRg8YXUE`XV66guc&xKADL90+IEf;V!kB`3Z`wNu|&<6Z} zO0!m~}juIGub}uPJ+^D-GVI%2TPD{pw$art+cUfH0qF(NV ze3!JuB`{3ZID;#WxbI3ukL$Ed+>%~)Lc!1~#k9psFEjImJK zol!GID|ojPkj><(-NeYu_u+@%!jb0uH-Ch>p=Wh=+u7WVX<-xETt{3<)G^`03dEhu{pV@K+92}bM77BYv zg2y#LB|OAgVv@4V-L5@N+BuJZQQzNrIV*}STnS@5Z2#R~H{Y>`O5j4tp#cL7!4Ka6 z#>_J=TMdkh;KXBJ2SkHdq2aWBUOZNyCKoW!n(3hCV}of@EfU8H-_| z!1|~;rOJC^N=MWHJPwVgBHk(jYgbJ^^(E>z0Uw8Ht@6EyLWfd}WImZE26F&VVtsFo zvgHt^dn>>_;vuF zBaRFai_y!;$0iBZupamTw0>DgSfcJf02C=#eUhZK21<6&$sjR$0VFtuMhQ}kI5okT zLR(YneFPGsH6df-G6LmKO=~xu9x(@Gr3I@2p!}HlO4#@_X2-Yi5$1Cg#Fbk4p{jsR z2CPg%4vbCMa#9q317`TbGa5C}p(74V1&Bxd;X{KM0hd4-+c1prmqLWicw&hA;%MT7 zi14_C91WF%9Ye36l?|2q+Hth?wSjSBE)NJmugA&^@G#fq)miq6@(xV*=EB`KI&z+v zi7?7or%WW6HKEfP{}lcU6_|<9e{l4~VI{=?^fQ=AEE05oRA3;@P|PLz>TttAq9QK= zU)G~ru@XxG08W%Cz+uo(UIB4+mloqqOaj7FW>C02euEKrevh#5f5_9$zvbz^@A&iN zf0LxSzu?7ie#nUnxxU~-2WEZ^6>Z@ z46345k5Q}3j@=R&OeqC`nFv?FL)n1m=8e@rD<+hV5S?NMcOz{U#jQhKlf3z3Q#EF-7OiyVfOl(@3tQ<)Qg)zxll5tV+NI8}|p*t16k8yo}j zvJZCGacuC9`D`WNUJ|Wg-K(3=#0NG>4(kae0)_-{Z!HzgzGIETLie$ii0WUpsTf#Y zim`j6;3-7|*Vng(_K6eS*;;54-M_>Vr+HKBDY$Ds0%u5aV4#$BmI;HrT)v|;&O?UC` z0V#0_#T>{DE3FH}#D$oyr6%akSKO3`tVrbJiOGhG{ide!gbtnjpxk|!bke#@$h%_U ztZ~UDps^N9XZif?PtgV2rb{5$Tx>iR8Ozpxgm;7an!I!867y8U@zci^7>w?TZp{J8 znwD7ffvwB)zNV9H37hIIS$8U@KBQVfk16R1-L)X2UT;!W8>zKJIbn|}@{}aG{!%CNrlAmtzF`xCKt=1a-05fH>p<-EK?SA zT|k45A?g|~H9Xbz-`oFO90b_0Fax|)Wd=5>-(z`Y&tP$kuAU_CO@$hclEa^sad*a_ zD)o|%dY$gbgEZ3`MK<^62Oa)YZ^em!B+r1=lRVWCYkn=nBFB}!!`l~A| zS8tYylN!C8%TcFsXz}(H*8g5DSB^mkPW|`tBl7P|Gg88I^Ue*mCfh4TSvHKxA6HQQ zIiTZ?*dVkq-R2B&LF%wVvBr zcGCIpUfPk*G;RAOw~^WdM4d-}BS#czD)1#NRR!9SzUtfQ_0*jS9~~XqQdgby)m?!+ zRQ7w9QuYyzUX|UX92ELK!7`8mlA_S&mlO6LWDn2mdzVlS0q*L1M)(x{x}9L*Kf1xd zjjADo%4>?Dhv;RxVT0Tn)DQ+m2;jVeEta7iWeJr-fJEw%#NFK1j&q8CZtq$#(t`IsB%P~_iwH>4=IBv_dj>XIB+Y-k<%dqfvH5aK?Je79kFzT+-9t+#5ts*xg zs@qD}Jr^Sy*A>_r_^RxGG}o1OdAiFnFbA5h(j2k6uF@ydat3b8u$|l$c5CsK9i+Z* z8YaFf+XV94Nu9MF*YjGK(jI2_s_X=(6?O#b%hO=J?!r&1?C~`hE#XO6qON$Ui)zl8 z84GCFtI;h~?Z{eoZF!gm3Q3&AKfZPTyQ;k2%_c2ow(%+{iH^m8tSPkO?0U#>V4@Gm z50*H`*;lpVSk_$}4~hl+iB*KrYy^ep&~*R>yG)n_#8j36FrJE<0nz!uAo1XzuhsDC z*zt_bf`FKkmVhQ9g`Y9AKs>>U)8mujGT@)!1X1V!j0cbqcv;5{S|^ccaMu-l_IX-4 z9@1){#+!)7C|6}cprtfX9{}JN+DSU%fTbHTipnxX1cL)qN|4Z5hJq}j z;U`XEpgiqfeVAxq3|ua!YrP1-qTw-D28x)tTYvk#9(QVEW2& zMt9ABC*c25yu^-_XjDGUBlA02KbUw$sNEWB$0OLJ-}iv&=9Xci)?5Rb7O8?|o@$om zJF1zxJO-8}Kv}En7 z2%$ytl6+UO=gCujR&kVHUn;5|I@Las({-4|`jUJG)ijiYrkhd)*ea$@ivFA;EI2Of zTO6vcq3T0AKy4%GQyii$Pl%BW-_JvTvF=0^q8{ZHrVg6xyLxc2x-con1^^cW!Ob9E z?T8b|36+kk>Hs+UpWa-7s`oJ>$7t7Ob_%HQ?$-kC=G7e;7 zcv=r+qIgstOGI-@I2MU!i~kwq!~C_5$|E1+gXZ7krwRvw>K3M+${AQS1I*YFX{XmQ zR2-bO$V$kfc&3MzOcKa5)3InDP>_`iMRUylc{LqVmXV1;^Q?#f6mOR`GpeiDBHNo0 zHSLi#GRhHhaC{bK(AW8A`@j@`&4r~E)dN%6Hq$|~SmPEDT(VpEar0O&@cK--Qrs4q zn_Tmm`SwMYz@x3!O!))*^hw6tY^$U%^4hqqR!_N5${QQwN1JJz>_uh{5d#apk*9@} zp8nGJTJlGUl_PfNGuK6d+@6?L!e2f@*r;ieiYn@@q%tH@->4gsilbY9Kpz#&Q7!GA z1iYv&&yeB2ABij%P->hNRlXL%A}Ow*BWS8>(0VD5ZaqQHS1M@lk}8_IdENXfb#0}f zzJq%^sRso!Sk-&$}Mk|D0W91uby) z$95#B_FP>Q41dKHI9-x|Bc0`2XKZg#)DLL)WE24N83z0M{R3k1_x=N)+aC}6f1WU8 zWcYW%1q}by_{je;pp#mn30_qwq2ih}oNuWKKOQuRh&2F$^XS&vpgF}W0CNP-7`XRo zw!0DX&HKr!4`hT3*YVz31wuWm%2*b9qr!zdMR(fRAZu!{g(S;=+ngr}=?xq-4TXJ; z*V2C&91P&=zoB<^pB*r&SS$Yxy%VUb0gefq=#JiZ%|i5Gy!DoK%xvLZ|6%$UdY9^~ zto<+aPAt^X1(}Ib1biVqHh=NgC~n!2^};(^1`jTo5(F@bT$uwf>C|~2q{w(V!Gju# zoS?hhE6KCkdBQb+c60!;Om3Qdtb5CDTKD+0Gp=$4!*bza#B_)!%hlsIY){xNsLk=peCX6%lU;on4DF)}j!e+k}It3j$HucG$6>h9qO<^>%x9Ztoo z9HOCCNpBI^IjV~Y4*3f9)s6SSz!UtbXjVq&Bsq2L(t4GBM$cx{fjnHAqE z1r-Yi3GM8)vmOEs6B7vo4IBN+{C0Z$C7kJ2&i-_ErGGJ0H(MO<14rvOdL!Nng1d@> zQZa@qDF9nkh{|+?)^g;&>C>tj%x;5rH|D+R2iuB@SqqtNe}jKDhQ{j)UW*LBW5DY# zTnpRP)}U*{UTN;F0lYbhrHO29_POS_ zG5}W>T$O@rG`bGCG9%ZZe8s{&IMd*KrR$cXYj9itx-R+x_!;jzL{~p~1=TshXSS*V z{+YaOmRrwXf6skI_ZjIseN%70)_TSF8Ov(`zplT&i!lrG@`u-q$a^5C;dUJ!BxLB% zSnSn!AV;DCx)TYxQ;GUmXonK}g%81ES@meimH$G;N%3g%hDc8cm*Vn-H1G9>Kh zNgfKuSwc$|STf}77hy6a8!gzT^V?bCP8NY4Nf1@lI-xKj^3H`OC0Gpyy7ooHy zD=k>7^P8JuSCk2C^9Z0y5H=)k6(~X#IYbpmYzrtNOE4mfIU-9zq>4zS$XJUNs4OXB znwtK$#K$gB1~XYwn<}y$E6^P)@|}+hfSQmX{~Z_lKavBBRm3*SvZ%@uE6Osg#-uj? z6%Ob{e{T5Wy^u^I8>WR|$BA6K7R`n{-GsL%;Xj(s30VV7G z%(fuIs-9%Jp!WIbbU(S1FIut$)ZVY6qFr=w?Xi7ol;LY&sTZbb$CCb8e3 zf9&d?MRlO@5RO0I!{c+4xG-McMUJm?QOCmH-ljOh?hqcUhJKyUswr$d|Ne_`)WSTGfDns-U_-`j-;`VD!4QpvX_Nc=5y z9FL-g9G@g$de64f@2rb~^Ac|T@tZLJhO>}|U`!&mNT_y=q&){+^NqyPv7CZ=4^s&b z{QWMM)?t^u#>a6&@s!-RmS`kFGOik2X1jK#E&qJ8BA@ILomwX@(rG!_+3{p>e|tKf zDx?`_OwY+A;RQ3&XUP*M*)W{OuJJ0}N+jO4kG`=1SEmGQvW=+P2;Q3Lqw?-S zxYFGTcn&jqI8Nf_bCwMjQ=bJg+cux*Ti70K`&GB&!$a}3&vLzZwpQ2W^_A2LWAhY# zTHl(NqFKuP)@Og+7&&e7=rZq{e2n( zHtF*P&M{rLuVLu#T!R_f@UF+|vc? zzP<7u>*#`E)0zQNVZ}=hf&D}!N|~}DKPYrvxncs|Kz6P-OI#L-eIw&ge`=jg`+H#f z4qPwQ{gc~T2kIF|m&ey8$L3KGP2828lS6Kaxhdtgu3HOltFJ{hCwG?!SDhv*uY0Ox zRyy8Ub~+AM$5Uel^dpTUSg~uTHxh;WEMA+iXd^9aE82;lee01@#Z<9T5y5}>d}foN=lXmf&GCIVzOp)_M* zIAftaW8l0Pc>vJ{K+GC>2$6XhQh6v72H45MpejPBD#EZDhTK;He_Cb1*>%uv!n{|3 zU~AAZb0E`o@Grv9KCrKQ*l%bzgYI_#cmv2DP`iWhZ#0O85*FbvX8|};{~RK&?lOo+ zF`Tmo?QM*ooZrRFL9G~i^G4MZ*4yv5hOa*g$bkU9Z-5hocNRf>*UEt;zHfmOY=5AE z6MpCjBsbLRfaJArf07lX?1&{d+Uf{4Go;CZeY&TU75?Z5=yfRc)GykG;X4nXwg;sX ze#wZyZh#PGgb`*8B6dI)Jzx>tuMs`yA=4)!GjQ}Ph2@eSiQQ9Sq(lFUOWDVM0aawI4=7*``twkpN%mRZg~ls#$2P${kFDg zHw?xoGhv?0f9-K>MYDcN+C_evT325$<}EP8?P~|^^!;wPcnkA$>ccPW=@ZqpKN?lS zp@zzOtNMMaM-M>1@sO?mCs|Ff%w@wfjlO;J{8X<+!!LVGKe!iI(bu*5-#8pbhJWX9 znE!*%{Rf}>4?g!FeC|K^+<)-7|KM}~oAEhDrvF)_e;Emw7}?nVd&NY+#LB_U`rpfc zcP;=8Ko-%zKvV?g=wismr|#@?I|CDV5}!Fla87qF4GncJ@5;g13HS2F z{Od+C0G!6k*zui>F{piOJ1_*JMPnceK<&NQf7Jji1l|FVa|>%LH~>uG767gQ85fCG z7XX&5rn0E6S|zUo7d3Ej1f{=+L^U<}l+yt52&xP5AOOu601FuxSpGj&0N1gMQV@kyXb!Poj*nOXs$a83KX$&ss0_eu*>gECS`Yo^ee|ebCy%0cv2Q_kX{$3P6o5xSNY`-ORU|#xv zd#YP&>py>Q((Ah`8&~<8-fvAagRZixvvjk5RS_W=S{p!r3~#^8XREG$8z>{G#-$`H ztQn}f;B$BjiOzI!y~)tw(|QYjmylBw_JHr|8~`;uIRR*Hg{ds<$>16qz0I$qfA7Tk zAS>Oobp+&crhb{1*EY;Gql$;|Nbg&Pb~*(F78asqf$`c``6!+h4k8@37`W& z1Drtsc%^GG{aQY+7JV@`{xJ4R?_FL4I02+%Z*l?qR!;@q(nIXbjMxbTL?uzrt$yal z{)$0VZ2>S-E2q5@`twsj_^YNhf3t%FdixU=5e1~KNUfJ>jnh7|A zn32X$elpB`{W_2Ql%^$DR#zw1EI zFr!kVD^L2Df6#YUMcseSMQv!W0qwdU(I=hcI-7j*)!nAWF6VMX_l-^Te?Rm0ylS#E z*MoC$1GoL8fcdQM`M>o*|Ax~BXbMZ}>BvO?_>Uad5=eS0$Nx>~1`UWwf;PB1GP#QA zd*B1M$;tw-UwKtz1NQo2B>^xa^NyeNhU)8I9!58Sa}s)MOwh>!Fq`Ku@h7AMXk6R< zgWX5-!+rqBApI5N0XUWTe=E2}17KF(i%1=y`C&f*4T;MRBhw|?NY2hYF%H%BIgU;RO! z9d2^B@WX$$qPMOi3V95y%+~bfC+kQ2PeFZDQc5`9Q|L?{dJyZRQRB zx{(n9yuBD49vuKNe>OdNKuT2TXEq~u=dJ&7#?NK_{i^D-U&&9*@76j1!5pwfWE}@M z)A6rO_6CO51-T}JBAD#>q>D}7c3LT6M+*lD62<6xv<{K&a z2KuFf-$;Y6uC?R`pPy|BRfFkO>6v%{5#hB}<7z&K{byV_y^XQ`SsJCuhiNsn=iH4bbCqnmTnh#sw8a}P2sAS89-TdWdj0$e zZ$XsHqS$->TJMnoPKSSYIu_XRAFJvhK31gh8pCaa_?kqK0c!N;|;2ZfZJl zf4Mx&--xMVe|{q&lVsW=66O7znLfAnn!W{iF&`@Z$>q|y1B)<!GwPpwf#q6@a%b^I~|HHT4HYIh@8)_>DWx(69pz z3DXyMgo55)z>f8^$bgYS;d$`76GT1Tk#w^)MbU%re-k4keke$g?Ez59IXIsQ)mm;& zv2YXxszyw5;gRLd@Vds^)xqlT^@Kb6};&=aPQaG9kOSm3B_VwU9CpJP(WW z6`_=&y?d_;4XHBQjn>gi8dSZZPs>MdK%F&W59n>A*71GeW8Y`V@^?-dI(;9b<~H>3 zliB7?f5fhlLv7x@d=y`c2k*{{20f2ImxUH{&{o84N6csid2!X}ytks8B#V#RQYDZ( zYY^)8^XIeP9qs|ah@tC~cr)+q>wf@dzO$==Bf&G5K8Es`l|IVjC_*05ZJwPmbC3y{ zU7y{L1J56^zIkUnJ>=<&;qlq#)kjAY6MB*5f57^u&;{jpa@?Dqf0~TOwkB0+;H>5Q z!MZ2%YTW#L_06Mxo;$%}yoA+16`F3lF4fdr*wMwZc8wR*w*jG~{FATphv^U)dSaGT zzK}X4QaPrRh*NV5ZFHC(X({AUl+v7y?EdyBofeK*aB##7I$x|zx&x^)P<+dkl9l8g zf5>v5;89gyv!Xf$*1QA~z2iWyA}CXZ4*}NB-O68y4Y-op0mB9VQNmxQr#A;?)blfM zLK!e49u7ULR61gak6^(=#%LgTfAk4k|DpVg((22-wbAD_RUu|l5gsw@oWLL}iU1j)zM^RA@%cd$UQ6p8aN@EEC!H)18onn}Eo{Ty&ZvzqQCT<80IXv8G8 zeOkSsICfUF?t#k&A$z5I8Bdn^3bsFWQHrarkt42vk}L|p`QH5U{@{?Qn{Zo#f6frG zyasV%EUq7Z(O%38Q&P&W&{qKXZNj3PLZ??DlKr})E5ruMrYk;wWynz=7cU1NL$3q6 z7^UB%_zvB=hVAh&Eqs!Fz+qm(ePLe&3A+iPA8~~=gxd>U)}5Q7P7`HbW@!kPJ}mWt2XN?XC{WiH!S% zow_fiRs}2SBr_HXc^q4Gsu-q!B1PFRnNdVce2PN#1oeUyZ#4hL;^cKg@s?BfID90n zfi9)dURoV`&(CeU7mMWwwYA@EL5x~Xy_Al_rj)Kcc6ax0>8BU#r^iVJe+!ogp7OP_ z6sdT;TzzWy##s}yU5oQCYi=qV$F-hz<3e0n98WiM>BVHvn*qF4J_NvX0WQ=d=k-@s z(kXF-&HNk@$N?>^;c&8;*ip}4n1lvxZ6rXt&6UYG`<`az{wYlmCV(Vi(|cJL6wE-U z-fq06omq4mJIxwr4+Q&Oe~#3x6|?4tmo26UNVS;i$tnLcO^d7#oV=@7HoT`muuW*r z$g<=qg3Xtpc7&wmGQL_D7EtUGyuai_Qg~oehSGnO-YpS?SJl#@PgW`;d}7>~Rn*Qp zmK2_x@j;A7QG#_9ffbiRejH+aX)K>KM(a~aWlGH%bI8poQ2U^pe=j9=$U;5>@3%Ql zts~}C{!09GHIR(&Q%L78$`i>05bHzR;%+l`JsmkR`)(mGg+`4xQhvW3HjFI|&K>s^ zrI_zP|EQT&f0BR+Gs|Ol9RpQ43n=IE={^ps3}S06?VoAr?I;+23$A)HM9U;- z(*^0Z(sCF^Vu_pHhrovI)GGw%Vvjzu5d;Ak-l3aK+jx4lN3+qaFP4Xk)CRK*BC$^R z0yDuZcxNzidk0~oXq$80FpMgV?w^;4hznYN zNKi&${-n<V77trr3uF)E9jU-u^A4LQNV!xi(>#*luHDFM|D1Tx9l!uS*g-6; zc1^|N2NB&ZWWpf#2L>p280xRDZ4_p6snaxyQ)(k5^gT(qgLR?tT`*{8KbGhkZ*qf2;KKpj1XRJ`8x0D;j2r6^uJOT3hxU zp#+?Rb|$%T7H>JR37tijmgtCIbwsi}9$4pi-9%>Zcsoz zg6T2Yb4+!`L_wh}S;6|3>(H1q^O0?pX_FxnH6pF4KnHV=Ahf#o-rXzzXY;XWXYl7LF(vW+_>^f9UO#>V;33C$jA>oz$37LS#^ z3Y1QGSD1Wxs^Kp$ILXVwnCP99mLE9bwAPCe%lhU(W&8oNj|IxozJIYI5ku=-o+dNz z)uNQtAU+QKgK7RQay;eBUO!iOjJPX1e}!tHoCm>(0@ya{0d`Dmth6>i1m7)mkcz+u zmfSnBQ&WLU?0kCA&r@wQ`%+f^RQqiSUW-ptZaU-IGR0j6`zeAr@p>I|AiDPc?yt#9 zie4x)Ay|T?psw`%fDBuf8kR;S?L@-}J&F4rgXBI;<^hI$#J|XGoNi+)97yB|e_{+@ za>ASHv{q&oW!DiLz14#T`XeC4wO3Rucd`7CP#hwp789c3_Ce;J7e`2@5O~L0S4U{= zCoG#Q|790M7GwaE-UZJ_E~&aokLOVItyml<#nfa60vsWjZ~U9tpAqU=;HqSs=X64j zTaRtig<)J#TW)>=Q{>hO>#5r*e}if4TI%|{_XWs)cK!Uerz(r=l-;m`oe=I{t^-(} zl~H%vRxJF$h`v>s87=^ls&MacLoU&d>v|0ny%3lv3Mw`A!x^X2;`QKab)&C$O& zi!7o_x}~T5{e3{}A^jzduzLa63Klic-8J=ERE7=g(KAU)OCI;qRU&`zf42yqf#dMg zL}zsV%ZT$c{?3DO(@R#k;;DS!R~8FR(KPibwKu?>K!3gbkgVw*6+7ET9pFvIscu!h z4x83Dp%qM5{WN<@W7rO8sJNqCgwx;JdKr4ewqhH^Hk>lAToz}0G85;(J|!sB)CpUM zEK{px)mYKO#RL;aMxd&ie|gu5L6uOU4_(R(F2;M&ztPJ6^BUcwaOF>=Gv_moX{7?= zA?htIFXoZti*PNMGD~y`tShbPh2$4TeMyNJgVTYeH;Id9pW5K?)e+?#-DV&4p%E)= zjykq4jw)D9b!`I!j(7?6?*XB@0Smyjq$g=PAxur=nnRGlJyS-4fAA;h#ASk;mIMm- z>hgmFDw_InIp?3Nvo6T0nkn71Xgcx7Iov|n2EZ!Zie4h064ZB+FEZtsO@2>&8AI+> zNgi4vA-ATUj4vq1h$bE`r=NoxwFQNI;eD6bm9ArM)_PJdZ$YX}fW`q3sd!jn$N|SC z!^DJrT3Bq&{mLUYf3CSnm?Y&znhi=sN3m2Hq;lgmRzOKJAh~|sAmJLf4#oRWAi?Qz z7;>VYGTMYuSdi+B{WsC}XPJ&9>?+kLbN@>%@-WO?rws9Qk*xR`%lkl9>*1VRpx_lX z){CUqI-HZ~rNef=6^3w!+p-pUfI4V6YVEzK!hIL#lm$C(e~|M2IdC4O8OS(COR0Od zo_5qw=d*JW=#EYKvAvIc@EYlnuRj{Nos9==cjz_1S~o26z~#fW5DEVl} zD364^FlJnL{FfJ-hAkzAeTlba^$b8u@K#58uue3E5-8Mdq6uA+^R<<tmV4p?yKEx>YM;I^?h_x|~#rf7y~3r?u=W)X&U)xlrn7h)u7i&m-2EiqA@hVQOVVe<#lZ~&{*lc(Vbi=-XO^-e+=5Mm! zKW~Y6e;K@Hc5X6nKaHKDOw@*4sn2&QdabO;WcI|742;l7b`-2(mj?7##|z#lOR)*` zoVLeeYqzZ{z>AKxh+gg2cPkSTX|^}+wIAw0caMX{*Y(GmaB@VRQ$B4b?5TgPsZdd_ zZLU7cll~n-(ITSFnOlak2;z#{Z=| zMAvbeR1YctGjQ*rS3GD*g=(#o`1q68yN!xbmarM{5OvcO(3o#L$XS%YBcGMx!C=@x zt7)vI#5E_Stn;!tw@!l73?En>#xKsxgB&vJ)V0QYCC>RswO!mEz^N%|Pqw;DIfmuc ze;#LV1}|GWRu~uMu(LKqx5=u`DD}k1mZN0--a!7S9%ILTlqlyJ3&4^AyPcA{8d*Fl zYwWdv#w@P#A=bycPM_T`8-%0TGz#S3TvDAqmlToEex|>8I^4MN0e9J$q@WMx>s;V> zH}CV}6(fUhIQ?S?OqL_o%)w;uwW!saf3l+r z^XA*oOHX{wKR4J0Zce6c(ssT*bO>C$vWJ>3#LhmYX<*zMFbNC9D^yZa7DM`WRtV}3g)S?XMqq2rtCr~*B=@FcY1L*lG?`^4{{G-Y*;(vm}!_MJf-PrkCDigJ|f{ z@HL9X)pQM`zsS9Rx>;iB-^Ef-6AA|lY$6$vL#tQY4y4m-6|IFfk$oN2f8au4)XWHb z!DV5eixczSH@~3@jfzwBbr!E*w23KNd_Xkovm;Bz8Lyu1m8Dw6%OBeLi3?=X9ThXOnX>iH_St!M& z6%38f)0EKp=Wg9_U|4Pi-J$=7bdBSOD`fpu;=S%boPK`!GK^W$W0|b~bR?S0e_7ghLH+`7wGio3weMO5 zMg2I@lJvoT)TeWu`o-UVE>gOu&FVnQ&k{h8IwIK)LzcxGyBcGWcb-<+bVDXaAI*Wz z1_`4Efs~L?`Ug$&JjeI1jhlI0)AY=;C5=IOfI;R)U+dy|CZjX-S2CLh@T1Uk9(7y< z7y4>HJU(wpe~+EsC|HD*-k+kIwh|;I1i!vIQ7mR4D2H_&tfJ>bb3mD4D~n@diN80V;>jt5!EhMlZ}IHmd!wY90^tmDB8pM-e|gpR#EbOBs_GHw`_9FygbIJX z>TQ4I8eSPD&{Uz7IFjV)SP->}qX*1rq_Yr@jA$xY_sg^X4#imqQk+&Yz~^sZA^+Kk zN-c@U1-7E1=jb5|Hlew+a<*;cqJp&60776!C&tYFNqFc_?Y9x^5d+qV<9oW*MT}|> zQt5JPf3cz|%mpF_X66zR$?~(RdP`e!)n0pc>1itHIVU4`*j4(Y8$4TMf;};GtwS>P#Z_6%A6S(zjOBIz-tj2d;rjyO64jYW#dIH5Easyt@lG_R z;K^ro#oHT(K@M^^SUyZ4w!j(HT8bUj3X*+df9iIl=(;DjuLtaQnAN{>5{Xt!Lwy8$ zTH5qP5pH}h@~20bDqM8f-Jf)tsI>gbQYmdShqCgTu@SihWRRp(Grb1LlwxZvqg7Ps+*?stMS9ClR`6{xC+NNnU5Z{ ze@G?3$9Ttppckd@Nc|I)%;<>`Be2O^NpcleuFYUx6A?sTxiP-pWpVVV`xM zphu#sjvx3lt<*6ijq!zQhTNNkw>0y&V?nzIk__rimU)-Zgu+`P=|#KKCLB@@;M)T$ z?x=F&^2->;6^g!VTicQW)Z3e~>(%(`grQ(i26r*v)4J%kr?_e=MFZkGjZB}~}ODy$U3-6Tw3gXIyJ2{P1z4L*iWlF|v zRJayy9q?@iY#6YYFRWt(dlh<_53+MoL}lA z0;9$Fbk?bl})L;FXVuMGWAnJ$b`9(9H#|Z2s&PNLHR=; z$ej-FPE^nlZRQny^u2?Zlmg!mq$=G=V2HFEnMStDNBrXw-&kG_1#E0Pf4k3tvY_xi zjedm@p;_9n55g&M!aW?_HH+NWaMQId*u6!mzsiI-QlBsL$)IxzWe;ajG56B`gs0C3 zXl|14ffROBQDdG5M+K1wcW?E6fY#{jSD~MENnUkNXx#jG5RSqJa%32v+!8RsEFV=t zWZncwy8M)AW4u=VVuIRVe*)m>(YQ;x*s;KK!n^RsVkzz}$gSOeLkKbW^qXFt7_*W& zz})zzGWDR#n7o7wy9(yw#(g*H@OG9GYhyySVvZo`-YHI1cgP*`rb4;Dd^|FqTH=XK zs_#SlFgi-I0DIS1z7`w^Y(;hUbQff^gC((a9tcjlCa_5l4^cJ8e@R56w#9ZFzIv=c z=^Myl@2|a1b*v}>TnsCiMyefqTVxw4{X^)u)6v2*sa!spuQkAAOLahp7A8{*l7-ah zjQlk_C?5oFKB%Th#iq0YyV1UzEIEFZQ+ugsLyuRsV=mXBijlH=(uBfW8ZLJ)->7y5 zz|DAqOc0%14nMRye=m(rvG+-!6=dhs2KqCN~yA0u>ky`#VG;H&jP76E_maZ!c)@vK3}H`O^ko?KuSx1HllvzE*= zifbgPk9WtTzI0(cLvA;(I>45|s6D?TP#E5k5fJ*-k!ApVf1_B^xFw8>k@QmdNjWJI#$XPr>>r$ISLOtj z_FC%pg)_OcPMBmq-bWk1yIkY>tFsUpbk<%mf0MaMl+E??(ka^dhQi8q0wV_;869;b z_#k{mbz26ke;|FUw8Sdwi~pqZjEPkfPoo}@b@j}{Om53CY6#BYCUxFyl&g|{?@8fV znC~q4El9G=Ggvp>bOIq6Vdy~LyW6!G?~!;?FfA+V<1^5;Czp?HnO1a+s>hnnA`x`k zY%@8#&|Aljjem6^5uPU^?HfTB!J`u3?J*GL&;%sce^xYNI1l`W31Tpm*C*IG1di%8 zDOCJ4{*?iTnWyWz;7EZ%dZU3_8%}JxI;vN@LiXsM0MTOb&-V0$iESV?X15fo$#Z5; z58gv;w;fjlB~r?9r+|dWhyElER((yt_(baD>uUZv8a8!DG%3I#U8%%lg-<|m<|*PI zg~I+Ue;|<<%|q0r)7a&Rz@%=%Sxt}JirXby=XTYf#!-})p2#cQA_}c-Q7QcMik!5; z90?lk9&RD#3YfZAK={FY6dt*xtxRqPEt3)5nATVDL$d@DNjjyZf^(kz#qDK^y_`k% z^JU+*y~V+V!p=!PgNkU=_P{&FGyBfnZ22LNfAGwx{VlYh{&~=NRv?Rrj(<%nrDc2T zHDr=z6SL!o@hrBXPl_Uy=9Wpk7I`Aq^|(55 ze==!+Lwzni#@Qauh9*bg_P}2)*_9EWBQAUf-aGPV07(I)5sJku6TpU)_D%manUtku zZtR@a0ESXe+bt6Dr4i3=HAaa8-ct^#z@6uzHZ|NgyWlMEG#B!aAJ2sjw@>mN4d=_m zQzTFMa47wUQ*Up6V5?-L_yQR0H2(6FfB6+pSShUgQAhnlP349X1T_={w{cI5LYQ!2 z5l_~Vp&JO*n0o%86AsfgY9bE;l3qr=k75K!1VZ);2+l)GM1tbcvGabKy#uwnsteKe zBP%yn7rXcPh+xuTCz-OM`9OT|UW`p9(_M(D7$l;uC}W2ox5>ghfY8L4OrLqve?R?; zVV1bUoks0BqLI=oP$z1n2ATL$XO%4CP35Vy4aY7Z5Z#T0iTgt>DbM7BspV*vEW%+RIYhi0r^fim(Dq5cZAgn z>AG=ieflgZgdLg2=;|du$DOyJxQ-4y#?VaU$*>z4uSn-M9a}j0O{T1|H-CQNCaBex z1F6{RMgstTC=xs1jzrT0{(2t6x_8C}Wxf|+umM3;`K0wq(eD5y0b&qqe;*osBUglM zCVI*%@J2cQDZc^g&YV^B+{ngt?btqF@|inp9lNoI5m_124l*!I4w()6$Cto>hgSWd zh%Z}wA6fR~IgtJEt}+(nugvgL>k?#pEIwA@8k|e3mjMMn`{)|hYGg}st}bHW*o^R~ zYU8$pl%uRzM7ORrW$Yfae_d-;gsgT=Z0TSz%JzEWey$Uooe#bG@tb`TzQ){{*Pk&r z@klrKq3vFjH;Q35D!TCsArNe;0nEE%pryT_2+YFBJ&>f0%>Pz6-WZzu|eL)^515 z^O^MPUWeP%M(rZ5a%ehCCAAYYb>j~>DWK9J%1h#;*+nEkq&_$J&?VnRd5w_c=z<5+ z7Jhp#uM%&>z{r!i@qkJ`jeC1Ve6(L5&Rkk}o9*Z~!+y10?({M>o%C_uW+Xz0!y|Uq z5vRR8;@E~^f4c<9ZuWfOg$g-9qtHG1;TMJXi#g^9xWPgjw6NaVw$66^NTkvq_UKY% zQuzrEd_IKKCMGt_{|TJXx>V>td;$woS;yB+yWlbw0Ry@d`Ie|T1d!lq4n;M(tKv?+ zk1!O*bI*imaDE^qLsb`GP?EOqhmaV>}8brCAD=NDH1B+op7d|upx|4``Hy6Z{Qd1C(m&;O*@zHM)c-;5dysmOZ@k6 ziFfkb4mGR^jZvqv>4GJaBBk3`I$3Sko*Ua(=l%4hb117Ac8@#G?v@X~0)1q31J|sgFqmYrHloN9>wwd% zH15&CB@+5lyc&2uv1T0m%B|8&qkPHC$jng@jXv4N;9Y19YIszz#?}z27@by&uP3X* z(e#!xqOml=*1kIXYkD1cLfFo3S3X~fe_o54*Q7@dtaVa7ZUkdja$HFFh`Cip(^Obm zUXU)0dc2987SHNmf!!yo(!eOs?5v|pqp^p%)SPogC_3EdIL!oqd!o2S9pe-OwDETw zSyI<3XB-R*k@yYqcqbDbn*l{y_=piCS+r3NOkQ`Xz8yEbLZ@(XF!eR;PU`Zwe;%9;Zk#HVta9Dpl;o1 zoG_J-hg*f0#jsGHf$>eJb88LoN78@blGr6Z`WVn~on9{9TF1f0X|` z+DPyWL#&9C~%W%-#oc@`vX0C)Ey@nTMfKx_|uqLtDY^`7nhOlSy||y_>!dAFWX1 z?M#Qd2E%}2KRuBt8VjDt*}sL?%DCuI4bIOr!iu$T%+Y zrUkZ*uw8)~zpeq8$R_V*4#bs*<&Wjql2vq!qN-Sf*P^mhfB6_5D!nM{rJ;HtyP3GG zwO{7hyG6rA29D!HH4!~m+qh?lluTZ=64M_^Rxi=&+tv_)V3tVhgFd!Y;i$}oT+k~7 zk*aa7S5_HdC*>f0keHl>lE%F`Xa*> zKBk*Gn&%tHf6UD_T=t6K)YfdocB#xmgM~Swod*q$j8S~=80xQVkne;HgGq5KP}gsG zkWl_i&RMx(D;&f9Bu`Cly=jmpBSxvQDW5c2N+t>i@r9LI!$&)xoZ3C0alf8-}>tl4Va6;XBOL;*k)Vig8; zS{nohIPuuWX1iC<5}sAewuRq|jk0_Mpb+a>>jjIXW{wzwd>MSqi*l9i_< zOTEUlf4alA>hf31bO9#JFFGilF5 z>hf(68+2C{HU(e(%$1-dHz9aTqOmRsr(N79|D@$+K2Z-rN`(+)nARaU&02wcBQ%~y zdwj=>eJZ~QQ-)l2ty$YIbctnsNL5W{(v`6Jra{aYG}iCB$>_Y^@nr7$s7}c_1`6X( zf3Q%+f5`H?6-Za9AFI_q(#>VuIF$2>Xve=Prg zr&pJ7iJF4dBMRBl%NwX9$S>(<+IeoLhQ2p_<7wII_w7|ah>6}-g-I2X6IZSop;Hp) z^+qKOugyqO5!gCEgiXJG0lLFmeKoNXlFBUoxz8z#D5jLZHf`63tLYQ>%-Cd zM+h5${cvM{KqGf8=93aMxj_tnw=`e_5LX=x|k^ zpm9qYAXH_N?`>Sxuti9=T2MY4izt%m+gb3QOu_W*|zma*@>$#iodv?^)6yX(n&Ml@8s?gfROR^^INXn>QfMW+qS= zg&(07PBte^cKq^mZLX1%e<1~A!}@Nl6_-`5l7Fpqa(VK(Db*;c8^mvVO@o2TZvt^Z z1PA#l#|QEyjY;3|>F}G4V1#5(=$*5Asjfu)t$z+ysc|5Ytkk3(izb3>~ndl#(jgulOLe=!RwRS~iAz8Y*e z6xsM-)}`M4Iw$_DHLgx}MfK02c=YIXUFrjVFih$@^cpC&Gum_+tAiUSXxQBPK?t-^ zI3S_+m7k3@`3L8-W|8oxU+<)rO9*Dyrl&1e;LAhwv@oWL)rZy@Q+!C7`JTYVpT(B9 z$D(ab!^pL#-3|JIe=5l27EL!>z3e?%XrtE#tuy~(r&HSgwQRe8w~+PQX&x>d29E+Nwl_D&6F zB{RF-=W%qA@S$s@@oSth0cO*Y6!L9Pt+~9Zu9njyIxqTge}bR-rlkdIn`V3;rSVq^ z6(I@RWF>5iRekK z`#pW2+v=~|<$e3$J%ZQ+ANJuYQtfSF8!)2?Gj-Qj31F17Bhr8)>(5hWw%MP$05L;F zNKZ(cO6G6Jf1CWrTjZy@Z5>XBCRR1;tJK5;Up2i+_(gWCx=mOe-_iu9Jud0p!P@TI zddGw?P5wbYb(WHp{<$7#3HB`eJy03q@O(d76xwrikj=ikqvvquS%zyE_odd4$lJ_; z(7bLXIr|SvlJs@}hKxo?)|o6laB?Dbsjd5Vg7Xbxe-ELptWi2b$u#F}$@@LRksVZ+ zj7wFO9vhF2R!YtyuNS&py)u@U!^A0ZX3khemGH3JUA3^5(OnLG82P1GIx6|*a@65; z=Erl4zw7gx?|ojH;@v}?k>3%@7OH+? za5wOEe{6Y;Q`!2+ZNXhf`|b3P!qneCKHZz4kc5fauV^EQLUFC;*Eeq8sHo%L@0@%JBWMgW> z1f;hH`D1Rm`V5>-JNF=z--eyJWO>GU+kJ(&f2Yg$S4|5>e6YbfyKrCDK)CXr+Dbur zDoGS~eqN^R_>hTbg33#vY>C*JoPuZF1x(G$MTz5C_N}6Jq@s~Ssf4PP4@vQFS7ef( zokt-1!#%X$C&w_nnQ}^GV`;%(dm#)XXlO{1=S4rTWPwwv)A|q-SSFs%;Z%ZOj!tAW ze>;*~d&-TD;=A%_*Y72)zt$}+dXD3EHABY3MP@F#)I;#|y}Y6T8eW~c>vC&rhzh5h zFr7fbHLojX1XCe56p_A^ZWbj4s9%lnjYV|i9}zmC|)9ee@ZnUU1iXj`jC&)OT9-5qOD^bI<-tx+3^i* zz^_NDa_~%BfZ+&h>$Dib6@e%Q?l(p!4}2!es~FxP$+8K6{S0c(r3N#%8lEw)Fpg}g zxYfs~+v2!5FvGw5dacMFHR^9D5QYlul=QX5Y#vd=T%szVV%$%9;hK+fe=}g;e`N0v z#+78pPI|6qR?(H7A0?{SXg)%DRI=4*{V-J35nOu%Kzz^%=8Bq{-BhH_i z7JB-okev!kCWZ-kKU=-OKs4H7Bb8`NXWyESc<>W!Lk4Rv8Ollb*Ee9Lzkxllou(Po zsxgJ+i;9zQdFl50Kki)0(aA9be+CM9n1++zg~Bav0J&^p^J4WSEveS#oHt6G>n6VW zo>Mt>?dwq!jWCD^=guM7e|5v*gHL!_ z=7cESX0t{{>cGP=ZOpQWT(>=hOjk_HHW!Tk2ItJfn~mrzzF4tN*I4zwCvTQ(G6kps zd~Mc2nI()-OnvUTdhe2YUEv#l5y!w6%1ApI;T*EwZcrz;GrdZ0lv*<}!Km!}-y)?> z9&*sp*sGlHdEPLH?q1nAe~Y{^D!>Jr5$0X6XV8?0Ew8#2ou_Pe8E07?M~* zeu|NOX#c?A%ztUwI)COKym7CxxF0=O;O*Zr!uwmy0tY}Y=QWpAeS zn)hZvN!aB%Y7cx4dX8_*$$v{&{0ycx?+wC#VswgG!;(#RU!?ECE?&mm(%VZi3SLGG z1h$yKm+&Bcn99YXn);J5aYCBwAR9h<+FN5zSjSUL62F2Ec5Tarr$0a@PtWd~hJ*-> zJDWFTm#!%dM4Mi(NrZ8Fv#k}{ME2cqsAnHgP+kR#HA3f6kSwI;!+&_Fy{Z(g*8QyF zV{Jd%$~aADX|5HcfjGvzuJwKnX2azSU71Ov7%PIK#4|AIYX9zx zM+khgsj0KPg8ukJdVgtxJYu!<00~X_?Gpyd*D_|kqr=WTCp1|*HT>y-Il{HOoh;svn+APibTsbM}L;! zd}biOco3QFYpWuKK{RPwPJ%Em5ARw-l6O&JH8`UYlYHP=x_^180lKm4aGf`8gj*a; zgD(f&%SmWC(RmYNTi%JbP;@ox_DAlgdFdCmOuE`ZD9#E8gm9C^mvhp8yOs;{mAJPP z^UH6A{v}>3mPs`RepwIb)SJwbN9<+^AsbKpIS~OmXCI_cc~b|?Cu@g7{*FUueOi6n zJ1y}8cJZj9!(R;FMUb-`p&pF@6U4iT-GNUFhN<#$jpbn_%uU8@ z^CmZzt~=&?acj`VF4#BDL%b`4Qj)E`<>1TD>%9kzfCdOI+Vs6`NNk|CyQX$H$HSyRVo z{Dv_XKp>(HeEUEO{VPMRPDJY1B=i!|6=iZ>*0|Ma$;X5EUJNTI_d~+@EC0J1_cSx3 z^{@(bM$wia_NR*p!fs$r+j!Z%TXX!*J8Jg~7k{kKZa1;u5hDF3-mKapMY|tQI*vM| z7f|(!bdvX}tpM<-hn5qF(R+CExqITGYTghT)TY^BI?G$)gbbFJ&T04ZgcM0Ow~Ei) z8k!qAm%eKJY1wwMd~E>fg>Y?YvJ8dKl^rEJA{`ufS0$ZB$h=Gcd2?2iXV|H%ObLQe z=YNbxuP1Zi1MUC;zDWT6r-3owx!DlDf{DNQVs(E?3A;t zG*a`5z53`>a+)UHsqoU+uzOJVd!pBlB>ob&FgLW{XdT1YQf$F#McL9=BA}@)5r3zr zGz{P|W(tMaJs4z!FGgOLqQ@ZFb{eC=m18p##*R?sV4?~NU?HI# z3X#sJh8ml&Z)uj^Oi4m?et3Ur2Y#O5oU;}nn!E8~p#!Ki#2baD0*8}&>VKx&qAnc_ zUW%+m$_YBPA>4KWH%;M@e%DkFcRWVv=oHGOBlUOcr9w1w;TsDhXeP|z(A0T*KGT!d z!>7z&+3QeTOzpj|i^ILr+i@mnSUSnM3Ac#;VIGXncx-a#2V1Gl?c>7)Y@?FDnjzR?F;*h z+ugX3_Xz6b8G-`68$1kPL%_R7`ul_^65*9>D@M4`opAF%=V-bg5tG2^rbpyFmDPeh z(TrIVcP?Ba-TF3Fl%@{Xl>$RTZjo_Z_esE<4LIcn$RIi|sZ2sxSbu_&){ef!PX}m- zm-@Dm`OB%NPy}wEYDwq<#y0dYNrp20l)YzZpvHp-((BY#FZP9!>65Q#H%%dzye z2w-|Ixg;K;wxE$#A+5l$vi9JcWpdeL*^%`$4+I5&UY)LY7u`uj~+i73qGnoF@lo)l|$NPU9Hh&YpRq zh_-nAaM0N9YXz5PWyfcg_Pgd`-LC(qt5!m&K_6XIcel7Nfq$tUT>BlBrgDenbvZk5 zs|xm$HZZs0pw?Vs_Go{6j*!Jc-P0jiUVzCYOo|xU%p1sJ(2fzuaiVB&)JL}M>cM2B zgOfL7W0g3H+E8I}Cffav!W9&=mcS)bK%QUJUhkirYeG>JQ>FadXojO>=K2#lC!`^V zpVCB-DiWzA$A1}E>(Qz;o8_$1XE!ftPsLjO@x7~<@2_>jk+X#h>w7jx^fx2~PpMYI zus^*GpS!K;fNdU$YjF?^An{G_SBk*oCGtpF(cWWO@ z4$eiLhRu0)fcfrC8dYa>G;LQ4y%XmYcU463TM+dzmwz`c^hJI21kdJ;mC{;YYbu-HyB6_{6pH)@J0;XzJ;F=vKfMJ%CVM=zAVgv{&61t{*cgibQ^ zJ-vYHUmx3S0WWgs!obUN>wn>Hv5~RaYW=^-Y4UK}qnA+axD`#TaW)!GW5&0|G-Iai zoUX_=qn9c*0xN&!1^wWf3M}2L7`Di4al(m;8?pK8k!Dh4+&r_SsLU6WMT#Qp&3zMn*MLJj-bq=!witWfY=$$R=@77&T8p5UBp4!Aish z9!bX(giwDVD+pmr3DmP2qVp@Es-wo$nZ5VI^fW{iunDsNJ^znsu9151NY{f=Y8WOJ zX1Xpu9`;)FD-Lg3FC-nT9ewlpW7GE0*<8Bqt1XQ`nm>qRcrsnGqL;)wB8^F<)1)%o zogC`?XwC$rMYuVareP{{Y}-mmb-P7S%pBk8A*_F`+dntf)_CnFSHk}Xarf54Y1)|R ztU=d~C#~@KB57bxfGtMd3f*3>mFDD^oCJ1*59016I~pgd$iN{QQalC<*7d&Rhe(_` zDJJ7PdJyLJ)EuJkv;=9HG$OWXd&8oF6$?8ZZ`TM#@JugCE;BVbhnm1x{09pi&$hgN z47h(&k#~%XZfVJ2&Hej;HGy7!gm(1zIvoJG@-r}RqlK%#pQS8>1;BH`_=Pbap;)`z%6FNQqmTnqIg4`AajZF<`}7sf#)>33qbVXwF^#VagwKoQO9REVGZ^1+lv9^HwO~u z=nNq9i>$O~a-`on;;DSXB)0Sba+|VobRq`rT)w8j=+cycF5`|2Cz$a)BN|0fHUcX8 zzvVE#Vm#I%sHi#tHD^}L$2xd3NSS|1Rs$x@{Yrf6#-xR^WGziDnX4poXw?pjNpkMo zQ)k^h3P0j68S;e`Z$(chy{xQWNPT5~6p_NmeTp!b;jigzvw zG~ZxVsZH>bnXbgik_BbGm!djZ=FyC!sUvIZf;FGYaq7|)oxC7f-8+rM?D{KY@0N)d zU0e5_0gHG#iNE^q8o4YwD7k-KF7>b^+171~VGdb4MyR^9tZk}qumr~ASvm%O{eoBD zL`lOR_;(^2QIT7bDl#!9xs$*ldmM}*Lh1vm=oj&>YU=ImnkW7afW5rAROPNZ*r)J= z_!0O>d*u2tJ4&avHxRda^2|9De_{(?WXC-0#D03J>aJC@iKv2%D1z;hmE#13;hv>9)xixj6 zHpHg*_1~?)J*w=K@2P*s59jzMZm+4Fa?)H;V>5!6(nvWd6zmcj{v2UmJaoGI-uX9P zmy0iX(x$#^5<-oMo2M@1^b1RlviubK9LXC7ho`n}KvS|@OE0py_VoFWZav`c>jqGH zzYs7dAGYsmjNT)P`^=Kysws!ugeMUYF9$SP+FAS!+_fnj0tA2Akt=Ckm;JnahANHx z<*Y{+_E+9L^Mj=%?cR<-M#6CPI;KXG>$W&(L-KxPbdyd=AW*llb&nFC((^T8AUK9& z#X;9?NkuCfRFa=3HkmF={Fa;rIgE~(iRWsezEq0>W>i(xF$b*k)N$|nQU%b)Nrxk_9=B%Q_Uq+pJRG_A z<&|@ow0h<@09w;9q9#Vn}I=yU?k$r7|C5m#T61UXGo+(aI zxOF^CXnlXE0Xv*t4^PfldOd$CRUT7NyaZHQo6a?eNeD+&;ou_SY{Cy|;-64nI8Noe z@tHwISXU!N@;y(7j@}%Yj~d6RF|~-7sAb9QZ@buSllsNguMx#eiC3e0oX_DXaR*tR z{-9u9>#&}Gh%L|92Ay79!snkd@V9VGV2ZCHUyfQ=*uqFjM=ah23P&C7?I-&a@1Z zmkUAUs8#fRbI{kAwOZNd}}6cDCJL@UnNzm`JB!!ll|t2JgB zwx55;Iv4~`Luj%ty1F`b0+4iC744c%v`q{pwm{eXZx?A~+=TOOJFM5as*BwY;}>Bq z;^jU@pKpXFt1&*EFs@bq(jSk&N=LgspZC<|*PPvs71uFSxsblne>SFP=9cZMJv;;F z9dFaVo+2K)_0EzNT4{j`ACQKi#c%R(QqUm4MuBJkOQrQ>?cbp4Ohj%@1s#yc-2X!F zrGlZbAO4%Sk3Is=0e|~FzGQ{ogNpKVp`cJbBtlqHH(Q!aB@+bW27rL5LcS`7ACq@! z5K>%+%6Zf&eA{xBy=%2_JHA!TXbP^*WPpd0)#iH_6x*y6+hrzrpKT_3VVJSwDUw)( z6W42WkEMZv_lOOASl^XpEvV_- z-uZccl1!7LWde*z@ID;}&~c}RSeIi$^YtC!NA#%blGYEhVBRey!qb3a1za#gBDa~j z3dHXrP1lPf`n9ikdxy;Jmzc629Ya>CH~4EeYZb=f-~&{4YPsjs6g3+Gt+-%fm0?9z z9bS@0$<=IR(|>+YCl@KU`Tc_pCU?9gIyTpgQz0>PyKOL*GQeac?_~^`3v*AHV z@*D66rfGYdt6Po7UB)u&zzk$;%ETceNaT>};Vek;2tlf+jXlKF9;BKpJHF5r8-fX`^goWPh$JNy;L$h=#~Rt~wz}y&uq> zUBe3+?-33fky!e%H$V>p(y!9_92r>25B7XecQ+3sFcnnGguRBJUj*D1rUVYi`Zl6G!L-pymw-a!&@HFyq)<%FK(Lc^ zqwOYQ(QGz88(ga&wV$1fuLJMS)&u-olZB#?1&|3#xV@1q&wov7FJq*)G4}E6M8qJpN@ZlnuTSp`LN6I35DD*hDET4zbQq#LD^~ z5P#Y?KG4X;JU!`nX_Mr~vKQ4pUw^^Ja0llK-U{ou1`~~N=>-Gh`Gs+-#2_zQeT1dJ zevjz=J6-ZUroAAZB~n#DY^7C+1JTHN~`T7$|SX_wN%;J)9#Hl13qFdf#j=LTk*4VTo3Bl|8`HH!;YOKc)i z_Aycn!Zv(@&Ca>LNM(ToKSQF2%Yn^c7}lJ=g9ZK8)k9 z8rY^^Pi-B&Z|`eUS*UM49IlU|@~s;ED>8&Re3-keySzpdoX4x)on6Y3u?VN{&oh>XeRx9|m<7Yd5Dq;9l0$~wX>e<1P5VvC*MBVwJ~i+` z?u4j1sF@6<46$n4iye3EL=cP_c43y$fU#PjUhlEzMvG`IlpB%H^u_6ipYGj#bq z^b37@mZj`;+m?k)w8dyXd%1?g7GRV z8tGjxr7iv}b)tGV0f|?@{C^S?8Y*M>X&`_UqNe|isZC-6N_}uI`>pgg_8GwO!r5ZH zE3RfuP=iI6DEqWF;SFnR4XkKn$YY22OKuB4c=5zMj&`@!j3@^=u$wN6S!CpcA+6%Q z-^Zx``jw_cTyY)|&I3s%H?}n?)Un|EnV=ZuCZjKi&eOEM@W9V8(0^qbfZ0A4Q+Vhu zBt9f&4Rn1Vm61Up4#jQxwuVj)iMu?w*w4V(*pRP$I&9j1*3avO;zg`>=Q#TGB25qD zKx|;LJQnlR%S;RZ1h9^2MDF!cZc<*D)*HAd4klLr@LsBym zgXpgnfcG*dN{5uS*DHxP?)SKvHtRN5AVM5cf;G(_ii^R&Tk|CUmrYg-OT?cyF)gjG z4SAW6&kq28#K<>w8E_2g54L$zWQQ%NW@)`|52vrU8TH{ND}Qih;bdP;#>pR|aBo1< z*%y{~Dt{67B%&9}OUZXd9$QCKNvNbE0An@!vm%g{;K8ES0uN3Bw4t*17FUcBpt&4x zAl#GwU`~hG4S0)wbve7UvreXe?<|5vCP3|cV{iS#RfZor9+r>F;%#96q#k-6VTSF| zQ!Qw+W$SK$2Y>ps0|UaJ*4OnTAihr8g8+eu5wmXyQ|1rKYB|#^##L0(W?Z^OZ{CfP zFa52h!|rlTRSMFtk_iaOmBC&WB9p8ru)14|d-QB+n*sLGC^kW%&9N;3QE~OeM@C11 zIjj3IJ{@98Om@CNWCNXxRmsI2ehF884aW;UplAt#Mt@p>t6Nhcg5o*YkP4tEUDKNE zF%P{xffM;0ml)>Y6}fIz&Y6qhWppp#Uhod(QFcKm4r9}qd%^oyt8J|32K*^Sr{pL7 zZRv|3(pG z5?;r%WPeM#W-3kyMOynt`(fP$E}dnolm;KUlGK_#54EuB7Ro)l58v^~U(DYu4-E2x_v?qgfsi4b~JN}}`AaXqmj zj79J$X`|!9jCpOHM)NdXjr-1E5n`)Tw~JD%MSsarVU3W2|9NR_fguyikH6*?cH=^wHeI$ABUv>*|1<|B6gJu4M;g2Q3l#hsJm$%U? zQSqh60s^1d%x~&kvIkks2d|Xl7hU`-oE5o}#3H9uN82lhyCm7TfFd%&4=( z3x7889eE#%1bX*$=;9w4ySyuy{7aXDXNCVyZHz9_Wn@}418DpUh62~e3y7#z`PELppR^C?Ya(Ulcpa<|DTl@JGjH0F5v% zfFomLh#L)xBNJ-@Jky=~w@paJbbwR{?+8Awa+M+~VbD8ujn}(Y$1bHL_(^ z98ND1En6SeNI_wAhAlXgd0jp#@TBULbIm*=RrE!*h#D5vnYDzSj!}sGiV| zYa}e(xD^LUp0SiM;>6}d-V~a60qF=#rt7y*swUjN@^JebkZNqCrA}7)?8wHf%Lr0= zyuG&ziUT~Gl@|jH++10D;x=uoa4^W|HuYb?ofoxt1GS4W1 z>Y{sm&=UPt-aqz-7KPN3*oX!LO0s8Rtmn{PPht&0Nxdqi<(l?=A4k3vXKQ`6)f#|& zXsKXOp$1&^Qn~!Yh*mqj()k92+_GrK$X1K|*H`OO?j@k&FTElC?B%=hvID(7_I@+) zUR5%>&xd7s7h|d6&VL_9<-^v)SsI|`Zv2$jPH7%ijUzlTr5VwWSBymkYxARD;fZo9 zYHI@RbN_iT99slD_wWQ4zX{_=ZSLPCX%@{<&Nnx{JP@)9h!iT$BHm>4&oB|Y^y~}y z#?w00>~G&|KK919Y%6W!MKskW9h4w`rW3QHJf&1j02@Q_PJf`Af$6a;q({+t^kWbH zQ1z$!4XgWS=6%qvwiTsaJKx=*YL$b75|}vH>$F_952}}$qGTSR{@nD(qG_2JKwEs2 zGO%LxWp`aI()IJ#JJ8Q z$pKz)WIp6duUXM1t=uJ#uFa~%N27b*vGQjtaLu>`2|=`I zb4D`(WM!$`&uK~(`49>g#V&h+8{iU;AJ4+J@aTopdd+q?tjV9^DZ{&+e<^*pS(Wlqk8O- z9PY#hM9E{ONPsNBwMQ>#p6!2}?)xPY*fiCLaYV!=JhzOcgyoo-Q8@NSgt*Ld^1yW- z&|Fm;!?kty##OHf?7SJys$%Ru_n`(*0`G57BH}al?1yO$dkIRfdfP=UrcI?yGOB*8 zw}{Cf>3=ZC_@6e9!+H3v$H}DC?*2$)(cg;7SqkTO_b+{T_vgtuus9*3+$uj+z!%1I`!0Dodi~wK0J~@cbA|7bDTBBVpXhME1#(yqGP!Y*!e5kC>lC_QTN*Th&a1u_; z8uKhRvodx@DH+M;J~@XDGk}JFK?u>vFpk(-Gh;(eZ1&f;>s3s)=Go)Rg-$udZNeK@H2wLiLh}KF!r>6^ zeSbHlYpkw+Q)4~^y^w1b7F$qS@6P&IUA;3AWG*ztStDEO-R zuEuM(zH<`7+e)@lqV3ffS3pOnSbs4m)HR;ulMkH1_1gY-qrxvl1WNVV;_4##R=&$k zD$1XkPaL~WK}US(wnn`mC0vlOWcU@feoPY76{62)2eX~dy z`G-RG@>ZrK((?}8n~cVD$Wym>24hL7URu$}uNFAv5KjLNmt%>O=Eh&=67L8`i?wbW z5OTS=nP58So7>MVY;t7O2|ceF3$$3=(WuK*@MhXz~L71{5y6n|saWS>>ZXnK(<_Pl$qMv(X5#YK(}b-zRQh&_DT z#?nD&SX!w%4Xi(q*FbVYlORpFdK1~x=C*KE7;_}YjjZJ0@B?_c@M^?64?^#-I6|Ql zUe^=(Y!_5TOMwL@Rw0NXyyhcNuZ|A;!tSFE`3LTkh<^ao@VxOViiw+c1LD_Su6QEh zBn{0(vMM?8BGTBSQjOCaSQzGA7@ufDDQR;@A$(BnmcF6`I2~ku+wM^r!?N?dY&<;g z1cq)@PLhk6_4WLQlcAym<0G@w56eWv?%k=nDm&=bSKqg%?3AHC=v&10SszFY(J-}@ z^R(N?zkkonXP4*jlwwT_gK~o!^z5P)Xs;R~ndlxf57?;A$YW05sgoSsEX$dA$6r6E z#XO&*-Vim+kLI={sM}T)08d6LGC;&N3Dvdy5Jf?yp}J7l$Pau2H_=XgD65PM^EXyI8(sboV1EUX19965p>lNA#W<1Ho@y1OMCpdB zcH{$~ZP++%4bx7)O5#=J_$N{5g_<8#x3UYCHu8}ivUy#!a2s*pdPkk&R!nRsIea2e zwFYSV)E*>keZyqs#N}_`cTa4i@3)6Y#r}~zu;XXh9)C2c>veY7-6W-3`^Jkm@ z8i*liBS9gU%W`)c6VtxUIL?agnH#9_rSk)5cQSH1_7Wc~)Eu-mdTY+6Enuzyof z)q;{7gahKF8f}5F`p9TNZ6ZLr5Fiz~t++gM58`9R0v-E$Om5 z8(X8+0p5wKU8Hqx=jl|&-3K662G3EBt<_SHy@&h->YKxJVLwWj_>$Mg+o^dmKvZanMS^cZB)E65oMVyJr|_^VRdHeWE~q(h4g8N|eQ+`mtbVh`lwRM# z&Zn=+3(62WN$o?<~%Aq(Y~TRyusN4-R67vXy*F*64O58Rns_ob5K6$Z)G7Br|JI3 zIt0^k8^%#z?Sp2aQEiOrKpmllsWn8*q{G-EwYFG9w;k5=OT~9rzf|g-UWO+D`tc>E zP9ewmevoQo3E~5-cZR@)7k?l7wG`K%N;^|Rby)J|#Hgk}&jSA0uReLY334ZMlNXn` z$RLD)@T2dRpW9EHk#Lq-rrM4O=p|-1i?Fg1UExEW3(7KnOEyo)RD|lLbwlMh3~pVO z85=cVu+KZHr{+CmFPu}P?-6XrM-05%!X@$3{OB|vo^?hJ?B=AZX@4R`l5Q0aRc2*6 zJ)g$`a56r;B@7>GY;8r|4uXBRDu>uO32_v&@yw1Nf#u?ol)If9HviaL5-x$>cq8!< zW^o-UlWx9QQ>4X8jbUQBPyPgH3O1slpE==g3{Q3n=5FWI`N4J^ruHiIhf8l^k@A=} zd>Z z3)wZT3s%G8or5(*OXvU+e5+Oz=JJaelZ&q0_qdB{MR4ue*nb0Mv2f?Ra@w=6k78OT zk`c*G?QR3?;zWi^?Lz5JID*+rw@#cA!YHqQf!T*PoLFsjZ}JJP=5_ZvINkaxwbjCxGyJLj+Ekr z(UiP8#i3pkM=sALak-Dm0H%^GlVr}AI_(4P;x+;2MqF^ zCzi1AYJWf@-UT{s{gUe*8p;2gM z>DD}f9l~(;B5-k?bOA~>6(07AkboZ8LToukEq~Q1TLkgLYJMV}1qxhLK0RNnzs)Tf zZtS>@VxY>e4ISaI$&jxOKYSySBxi7|E(vJ08=~ z3X+o$frvJXN!HD^$B&Fl z8Gq^61J1obC3VNEuz>{EU5_X&f+B}^9k_tuT9e)jrnCDX(UPp>y=avIvuFoEH<@Jq z=VEcmB0Xo-^Io5tLSm3NaS7LDmnY}L_+>TZ>LW=XU|(}D3nA7es%IVn9O*pOUCW^t1Oh^XmkRWfl}VL>=Xka(|R_;|~y<<-Fs6Q%^DdFX|~q4kph3M?J;J zz`*{$s;8J3+5W%PQ=LxE+k2aQINUKc5jIr~Hr&Wtu0^A&Nu##g`3*K(tvT#Jx!`A< zS8sP+rm(eHYiFBpyFskS!;w_aLZz>x0uEl>=$@uvWO)A7*^NCl3AoJAJ@q{?lz;vq z0TB_fvDw~7Gk!|wt$*E2I@or4 z#BYDvjKth(W_5l`r+>Pw5j{CgB~4LJeN;ezrm1ZGeb+gEwHYNl{A`?r9+VD@s4AWt za|2C9X-$91W3dAxLnnFXeJ{ZxCLRFV(l`L7wrl`PXYr968IkK-n}5EIuAyJldF3Z% zvUIPqxzT@&E32-rx30T?7OYLp%&cEkofTEUMVUDzMbz?=&wYmcGWLH~%;22>=>P)a z0P{n`fe&_7eq<+g86R~YNDKg%K^d z^Bb7`0}pY~?-c`n_dh7V^jZK#sg049?GQJ9(Np|_hOT6U?{yb?;mG|IkNn|J z$P+*ChlW55RDZwlhriF5KlF!S44L2XhNgyK3_yRdjX)SP|6O1V+COwAztxs6_V)~{ zKf8F?{_|(Md*-!|y?t`8G{2y{V(q_xKQ)PwKJsyX?BEN(l%Kky7yRnOLt{JG<$9JM zZ>^6u1Wsafaw&M+(zy%M-)6tv->;PasulR{!+zRp41Wo^;qAWI;NS#!rqSL8FnyKd z&B)N;^!byko#>P8@N-=~gZO6u^%@577l6-)++OVNfwT)(xxAZK&5?TmN}+EbgLGG?BnG|j5r4M6@+wuLg}_vd9a+^W4Q;Ds=jRh& z9ZRs~*|_GE({JEWH1~M&>6MGP`0@w9qUB9s{5|NLtyrQUC}r>y#T$K>4vob$ty0F#7n!(%-kTjDw7e1Fd|=d{Q-@7=pf7W1g|Qi+?P81b;P8>0g0k(e`Z-yL_4- zVdwdqb_Xvzl1>ogQKCkc`-KS0AoYr_^syp(|-CA-6qsKEIbiJ%1%gN zT;xCUgvPe1vca+51;=1OU$1D_u*zG0EAg)n&>0Uz@#GEE_H)xGb`D>1cSM)i6@TUn z$9uUc#ciqUN=<#vxgy{hMRnmPhz>2MS8gbjqp5ZYsE$h zpoJw8LlS`}7s$jzc$3_Wz8J9TuYUt`^6a9Q=DqU{+$RoaR{6ipeN^4}&3w+=gs{7L zk_`y?Te5iHMDaAKqncv$S|BA-Rg}cscwJOX@G_{AeB%8S1Z|^lCILs)g4S`K7^K__ zQn~{@fT`4Ef3)Q2TrGrlH=t6X@#ZsvUx|TLnIB(_QZF>7HEvA9`XX!8N`Jj8E;Zb_ zA+gzeTAda5!NHo-C%GF;hn$siuA7$&1b4MFKh`sjyLG&w$e`!q_w#~fU@u(Ar0f_5 zl7R!O1BZG^_#b5q+pGvK%-j6$;W?(Ac2AM3{U0?5HJli>$j~3}_Z%CJ$-n394fb#- z!A=K;H_Enq-yb7j3Z&}q+<(<#+koH~a*aHX&Y=L=qH1j@>?tlSLdf&XI^5L)n;FE(H7GTBX{9%L5$m&3dSedgmlnzTQKGGS~2y$9#yGy4N1a$`v_BUP1;Vy3H|YerPFW4D3Ly=Pd!-wJxo%Di=Zw!CDcj6soR7qh&~K#15lPn$mi5 zB%WztMD@XJPJjROHkBaLKzMxmV}lBK(shzaBe070_AFaChp9Sv%j~A=KPN)3oO?^| zH*yu`voCNH+_(1`%^_$qOK3uZ!lCM=)i0m1={Ul(G%dlk{1M-rz8t#eJmh6#-!5av znrr~^ToQakVAINetz8SsUCSs~;8K{I*V^b|QaZ8AB>O_^9`uc&L&*w$-i5s=C` zogbkKAAjOHPwKgqlPE@td3x;gA75D(4r)fA4~)!K${@!HEzZ>MEdI#b8CPaUrsz+)Jb41Y4URK60|k3{FM<^h87O>JSfDdK8@ zpZ%vBZ&t0YDB|39!?1RIx%)cV@22xuZ>Rq}`W|7TY=W3#D{gyiiJR5mM2x)r*%}t9 zT8j9=+W_7i{GkTYq;&KQo)IM&yc8;rGvV_C#7xvo)RGAV{FD_k4xK?I$nULV+H#O# z@qbv?>@^2)4E_a|gv-)+DK&9B^-PWtWNW*legn~JzwU&<>#y;CY)LV<(0!E0WdA{d z#t_8fF$I^Oyobewz|5HJWO?%#puObW>BgXbdaiuVW(t41yF?neOqB0zOo9K{%>83h zq2B2veSR37TT72WgFj=rXA?){p9HXthJUR*A1RLb+OQo%%|76{z9kMo^i>5{p_?hh z_qkA$>3X2#t?7HpH!~z6RpX_UAOoS9QpxGo!GV1K<`W@1LFyk29#In%lUc~Nd<}ZO z_?2E;rmLZ7E85|&NYyXj`lWT29QPfxmJ4B9c~29$A859 z8)9o;8~kqVkw1|p6WdS3G`21KDx#Uc-jvG=JKQYF+0m9kJd$M8{)KaU+D-&YZh*6vZs88{s_`%S3F`X%1|d+OM&307>l2A z^6#G~t89!SL!g4_xLAq3lmWF`8Gm_)XT9;IQD5--Zgih*si)R=hyIo^XzxxLgGvBV zjAt)3AYXdP@Jq~jQie^B3#w3^YPZ?5WQy3v>{)RNlC>?J+Cv*+NR05e?^3fk-}xf$ z+p|bJT>zX;c6ZRWAH-A07g&oosr*x7m4YV+wZzyp2sx4>yRD~XyR>qv#D8VHsaFmi zW7^Q%url{?mGQ({bVKA*r{wLx3%q=h!5OyN_GSinYOHF)$3B;NSoRj%(N}*!pmqru zjZ>YlRT?oQ0<>b)Xtcjx+dploNbe5nS@M_m4_41ZwWSkNYvV9J?kI|CEONU=uG$&!&_CX5gxP z=q*ac^}PXTC8J8HVcdX3OJQO{AK|Xe7vU=x5%_@BT9T_k2TbKYAL{W&O!)D+R2%5D zBuOehnZVv6q0J@{3^GDW*d@%hd7STnCk9%C3r~Jhx*JphS;440Z(MiJ zLX~IJYES1vahZ?yQ;y@c=Ty;_aZ7_!tLEUyr4jF1Q{GI{Lq}_wwI5Nb9ggAUW>wy3 z7+vA5(jOp6%(RFZctFTHU0{DA)71=~xc6}V@V2zh&QQShPMFiiId`-s#vB|`!S^go z(;fCjv5o#*x96|V(64>8AB`xK0JW$3clzTjG>Jyl)D`F%ioKSnLf|!5Mc%c8Iu^(rN1&RWV{ZeFN3~dNP{4$GK%+j)qPq{gnA>vMP6AV>l1gMkD^`s%L`+l| zn-c&*_pF`O6M9sFu%X-{peO=p6{r5GG|^C3Ug!quOMcEbZx20cCH=>nSoZqA_(bqn z-qXm`-TZalLo|PH#NIQT9}*p#i`vdJ0$t92M=V%7tNgS&j|}hYbS?ES1`=U3+mU6D zMuL6vz{QQ60XBl2_83^G@gy)5gvr{^pdQ4{+YphL98jw)Ac1Jsh1tHHzDFRvDy5+y zTiVSM=9)5*k+=c;R~uNjTvB|p=-fA)0$p2qbzB)u86neG<1RlxM4z=)E z1xl_ifzp3Q_iov6)5|Sk@5*>LASD#Uep}ZNX-~ z0TuU7wc#WVwW5IP%~OD5#jmlP-JACKD4rX>KtzAoYyxmEV;)1R3v3fx^x1O~(=Y$+ ztoeNpocLqNPP4gP=Qu@+A54_QfPo@5EV+ftx9p0%2Al z;fwzFCD(oQf5e%T0KF4Pori)$HP4{X(dZn8L~@q9QI^KSoSg~4xTldWvjPg#)(O-n zT9$telg^!h7&zbaMvke@TQ^344_&+$7|QNN z1(^}9d@;X742grklViVQ`hQZ1*FxtTDP}hh;ju9e*Nyg6aIn%jh4RH9eN5eg?|iLA zF*zAGX?C3{E6`_~UmN$afs789YLLs&2@rqkH$HKD0@9{>haA<$XAWOFKQriLp?w7< zD7;Nw_zL@56RB;uAKAzAGM_40d_x15lTWXjaY&b`M&A4V8=Os}2O)|066~G_eqdxlyo7ib#OR!dMd^(qPuwa`B3gkfwS{zV+VAlR@abzF9MS2RN*#aW zKc>bD(TjAKMWF)B$JsA4Y67){knOe48lWuum+FE!HmweB*1oWV_%$CFmc6tl zJSvb0`u@ZjutWm9IZU|@MBAG`uV{a`W7FIc{8EGL?d#LFz{4k6J;_Nc3Ux;WfTD5P z+?hZ_UB`}-PYAU8IS(&d3PvNYmp@TQDui`R-Q{1W6O%W_quv$d&kZ_ct@QrUKOGL@ z5AipgusY>)v{?HlE#)IaFPsVPQFqa_5}bgDN7#Ma6^f*=wmvZ4^w!dlVefx2V2l^s z*D7&b5~&l$yHqS3pnLf@cq)znc9FHsfI#&OGUlt><#NQq+{md~gShG_*!A~uTJZ!( zgstE~UcA_9V#ZVR71lBQsLu^|CQ`oJqTRqjH)x}3ECo&oqh$fg<3&ISOd#sJ?w56V&%Z!)A{qk38#IF653RO;r;i=d z8(PymN;gE&8$9Ksdot_7+^z(R+VaucU#YyhLi<_$vbunEa`3B>G@b-pSO&IQD5PJV2I(vW}Y4b)huX+Y6dWkaHGz3&lR zJ~iYnVgCG?rTxBhkwkZCnPxD+=ndHuG1TA+o`iV#l*N{%g z*RJ{-a{!iNGe!E{rR#Fn2SjN~!t{%1iNQ=wlr z=)d68pa;)%yPIzcmfW) z6|txBs=nb;t~g5b0f+CUI3uLmJ8xHq&A)L_Kya!9MSnvv|61TXVmn2x=&=@fjBR)k zIg)>8xK=SUbmu3&59fYlRNyq6D0qeP5Npu}&iq+C^)@DG&qE*$6I5aB!c!)>vCsIY zz4~?n@}u?_h+*KkM*GzCM&9Wq{kGXR2SaNTk-Wa2yDlX_F}|%eMBY19%Scm=#XB;Q zP|Tl!5HV^=)O3@kCTIlJ@@GJCvw-pgq z(wK$CT)njTkqV&ur91#~p9gv#RB5CLBo@BOnakQb-o|x|fuzm_F165OMvdxscju*|G!z1_|f=AdN=o;LX2~tj>boq&JKq2@gaUG2 zI+ll;%8?qC78St@`o-~Xz~?R731xpM&D)32R@kuTB%w=Lbz3X>3kox@p3mkjYzL{> ztnRucrJR$g{A|)H%`mBaQv|L8PU7(ww`Ln!h`Fv4wyAtr_GC)hZh_QoB6?9>n1FAI z?NM{FdzYVh!CI$52;rszXm&9d&cqA)iK{vJ(9SIK()ELyfVmy^NmzWDk7j=mii}4> z@=newuT&0)t^->(wsTAK9(B-wv50Eae12G3nuHo(i#5(XXd_a#J;3=~!F1;&jEp6K z0;RFcYBt9+q~j^Vr<25WjpLqaT*1U3ii@1c{cvIAqzrZI6fm9a-=U^~t?MkYaqj`c zD0cQ3*+SA81G`X!xDhN135kCM>hR%hjm?6bl(@aDPu8nYz74d^qH>a+&V(a66yFhL z@<429kPAT=nYAKTGga3{lki~VfW0>#hz2zd-@%Rv(MNqT;#BZOEZfkqY$d7it6_{6 z;46_q&xuZL6MUYkoh)PAiQ9ZwGS1Rf{r*5rAI?Y}DVPW~R=-cR;iiA!WXX)rSLOI& z_O^uR(op-OHO8mR?qIKA>Jva`{Ts=#1YqgSIFVo7{y-{ z7HE{i<4ib517NTUYC6mO{eu^B-)5%38-~^rhZo4N;uNClW{#n515{>v=rr}Rgr_xB zY-18w6whCs8@p0xfMkDj(0zT~842TD4F+cD`Z(cL!X1Alxm3}|KX<6@L0~vkbzvd< z*A^GM?KVr{(}n)%GF@5_hkB_Ed1%fi@32?#B+fcfp1cWgW}rK-n99$B22fe`7u9?A zLNwUV(`5VNTIe>Gx1?6p5mXVB*7bF7RG8-20Ko80%$GBuxX^zwr+bfK^BLRO2Vyfp z+%mh2VwO9Cj=c!ah_BWb=!giBqK5m;f(GOSR;+FkrUTncvmH6a2%-UnWjs6hq)E{i z0~G90Rcg)=bb4e68`Ue=Qmh~@4Oary$qc3-9yHH_0=ZkRWuK~OD~&J^&5(&*l6fzS z12hk*7ZM5R^X-2?k3>NtsrR=>t?8v|0W~nVH>Vf{v9aa{`XyzE-BG^#2OuyjA}A1h z$?ad-#CD6hNaMFzdX;#KiYNx=m;F6Fsz2$4+FHi)Ns)!8^MsX_&q{a?x7nso7oShO z^OfPp9`S3ol4z8W6P$4!k#;48^k}phGzfHevxb{%_>QB~l>U6#(bvqHuI}BoHqLh_=&-syPFmCEQS%6b%IJY{vHTfcpN49Z-_f<}g zs4GE4djsZeu2Iv9vwTpUmdqz87D)3SVNVJ#ADDkYbAV1@=p5VsK;ZBmm~?3~SQ`hY z;nntEOOV#uMClhpv{={D3Y}oXb`!WRjWWyFxDpNyJ#D`bzd>QIGeu;Qt|HsMI{$3kz|XCtAPj`P#zH7wazUYG#2I#|%D$g7 zkmU6N<8ZAjE*~Q&MAoTR>H((+V_T)QSi7SJ?t~y`@#}{RX=QxGs4p)mt3~-P#o7X7 ze@1H2x+PS%oR!8n```?Cu6ZWb@uuBbt@L?!Npe}1fk;ni-@R~x>kqc6$A<9+OSONP zS^{a)7OSwh7<3{}ZH?fXex>K$M3HH0#IDtPKA?6rz7*+&57XPWV>3EN*hpK9#V7owwXXHF>CKmu7bh6l^|Y7v=6-mw zF>Sgu?+N;@kRlY4ptzMM*oljM5xH)%Blg#NhFm+!19UR|lAo4i$+N`ClPbxFsH_!yS)}M0x(*c^d zNH;fm6ts<)I*xpWR@i67MqE}zUXZrB+_t!BJJB>>0>JbM5mwo?Q+UoD?&X$FGv2fP zS(SSDR#c#YRY|Kc$Dv&B>O_BA8&@%UBI3ST_jWadr#+Zf-#uTbMau-*Co0tv$jNN=#i|U zPOK7I^jhW#-OOaxe#H{n0-P40sewjfdkl6W<*QU8`Ik5uV`<_ktL&)qr+$@^XZLPW{{3IH51gn5$a61G}5wAg_NVTKuuNJkhE)ZV=bGjzgeX zWEU9DYj%v6YgBdkvW;h;_&r`7gi%>8z|LK-Vk|g7e-=z6e7$ER#|B(};$hb#*g%%t zYNPC|&$BgTV6bLmj5Y84mjF9A^=`TZ>or+YCT#f6vMQs1$Br4AYw6YoQ^jiXhd4HT zf0J0YDuI81TdYoXb0CH9eaw2m2N92@x7WbJ%_ys=2(6d6eZ#`l6%FwHbvnp=Hgh@9 zO^Bv*r~w%BBDSQsIeERkc)H&Q@geQR?P;+h0~gTTYGo#aND<)KXP}yd(Q; z#l2)JIF{}HR-m*D_`pW*%%X*YUdi#7jP(NZP{o_if%nPbF`14Ac4 z-&`>Z1~W+6XV9#=dd28RdE&m%N;AK=NH7M`zb9DFv7qc4L?;%sE9H+SN`}bSyru&; zqv%#XJ*=y;81x3ZHo6DYZVYBl#Yhp$6D@xb{efiAgw#|zJhS$U*4yu^^VsRgGVWCL zvbK@WASXn|v2Tpo_90x@ptJiraGhU|7Uc6ie%=&4_Xpb%c_|Gh(KG|pM!oOl>?kt) z4$p{7#T_dCn;Y@)LpSs+Z;Xi3JK=Ddbm%5gM)r~(^#qJp3PPHHp@htCcKW&mCA@z? zngUsZ$ny5Ld%l~_TSg_T`Y?}151Ooj@U8&CgL>DeQ|r{jjSx3xK4e@nw+udf{pSRi z)^|t>Vg`9M=}yoG-QiK%S~-%px!4Fip)*_Q(^iZ z$Y4KFeoW^C3%FoIobv(&s=y0G&$54j{ffC9P@gI4My1Y3#eOR)>{&gBmiOaw?t;<3 zsWQbKkG_qkKOp&Nj{7FL{Ud&auCYiIY5NY29>X z7|SsRCUIU~UiX$IVJvDy=Z}`%xXjPvsE9bMWoU1LXCWpZSGVCpF26vU*l!aa_S{u^`rjpox4pU}Bbm&jWEuw* z1zgDZqZ)pfk%$Z%`KU&pCgBoqlLmi8?Dxl^&Mqa1J{|~SxD18_+T|>bu@$iaVSi9D z+B+{;FcK9|RXg%>(xBrGz6pO%Wg)SSm_*=5qqIHna!K(h{6DiU(I|&fLU-X9mvz16h^v1B2pWXj5_b4b zT#A1-1Xy3?EDXM)EO)Vx`_Tq;gGWv69t~6vka}-&hKGZENXP3DM*To+jMnTY2F9A9 zI$o@CP699KUVefIDNaA%j@H94bE@uyEd<_42QSEf+)2diMXPeqT8Ue=}~`l;|aLRW%>PWc7h|7Rk#O2cLB^1npQn~H`HTeX%g#uQaxU@ z8I5UuHFt;RE+&QV0+44>j_oMYCg=WNeZ}l}M#VBR$LR4Y-9dyQcfb*Xv(yTMH?Sta zk+ES?Sn`qSa0|pKo$V$*>hjCv$#S!KwIJ5dgSnn8p+@85EG~b(^(6}y$1QY)w{Ju` zu6)F040RweMP?$;h8Xp(H+NLvRv@yFp9{?PX*k8Tp?=`0BWkPJi$~Qhe~CyOSstA1 z%>2}qfh5=~v^=_SC9LYU!+6Dvq=VlfBc$nkghLe3Ipkf}?@9&3d0588*6WD}!C7EmF>yS`C1>DNJtOIUuL?>%s>>M0V3gOB0 zp_*?uDCBWRm6Jc|xrB({8wRud)G zPLJc;#rHHC@}Z;x{!WuI zP^hM1=oA$GgNb1E3HA@u{FO)y@`1oe{|5&jO$4?Cgy^D2 zUk!z={^g{}9YabT2GZuf5S=~*X<`a4F8Xug9tKaY#A^HJR38OZ- zYj`9CQHD9I{7qUQ{QFycRF_G$kex*f=<7w zu z!0tuet^`@*#I{0K<&cs!lp<{@`SyRl`-OCAz0lbg1;{PRPsM)JC<1*^mafE<-sYbH zI&231*t8Z`nX8kK2k7m^`_y~WdK48AQ3ITOP3)?p2yIN8!1JXW9i7dpE7S}^W!?}9 z5d5%5r3=WKR>D3+QW8!^i$@CqnCGE(Hw989E8Tc3jPXM3} zA6dm;R@y0JAo`o}|K=UOUmeD*8Wmp`53=_akao zt8w}LxH7tqm+>?yewee4wE{!w7RzFG$vjdQ5Xy`b zL$m8oRu>$6yr5lcDaR`MY;tZjl`q{#^<}5O#9fy!RJw{lnMM;0_Tzu7V|Ac5@@O+G0*W~rXA5;En zd&ZOf{mI~$4yAg?8M)}C`K3JCY47-avZf4Gr? zg=Ki;sb1F+_Ss8mHQWDQ4WE1chr)VT!q0+I`S~^?gwya%De}0Aes(AYgMXqMe-O@c zgczeO(m#6dw)CH5vkHX8J1?(t9zI)IEC<&_WL0UIPC0KVHSMIWwKYHv1|4D|>pi*i zuhQe>%XN$%cW-~7#+>>^bzSPP$g+RhoQ1J(%;C@4%q!6BCU-b8#zb34+NWT5p8`|+ z)wopMLDx3XMQkwgfMc;duEYR0^ujd?>03GgS z_70MEBg#%9UP}yWNLGw@@rhvc=;OW$fsxIzm_2ZAkr#hlEbqpP$%P#$dWmaWPc<>A zk;j9AR&EwA#C^U-`1bRn<)ax9=X&Bka~pK@?nn_Ft9C$9`1hL#=f5MU{XMmGp)ReW zpx_hS2mkphZY4aNdA)l6#SxM6B&g7*;cstaFXUuW9_0@w)TBJ;GcROMl6TIKI`m^( z^b9<#G&O&feAHZ@er7MZKC&k~O(3e~p&388*XY7RZOF5p<$f$ei#_$n%jfJ?!+NcB zI<*#`urc$PenJ>lhUZcJuynXkb-T+yqhCE^C83%NrP0*TrVm@!eW&!{!-JZ*eFU~R z#=t|Jc`1X88`Kx{mCbsM77XQ;z*fjZ>Yv0-x0!#RsLrcuTi_tujD3mt?JItqPPP4e z`>1M3kU^n=chRh*$@2)nK!ws>Vm){P*~HAk*K6^%DS?fP8)2kxvgc>kbCixffv4DM z-D%5xvkhN@A(SB2b=O2Jw{o43Lr9$CVcGE723Ux*7qrH%Gr~82)_9i9%h1{hffcN6 zfWm(;nibe#+r`s$mUc6-Z>ZR8p~w@5JtP^pBH#~UHgGe8|6t-r+&C(`Kwy6|57_g8 zn@PI~Z5ZYa`s7j-B=(AS(ojf7ziJViHSlAh8=!V!6$fxYb@_mckiIjQfF{hLS1Q=i zVwV+s32h-`d36W2sy!(5C_#TY`VO#ZJkWp2hTj{>n2cHU-tSk3Wiuzd146qsfQGhR zF4kq!%Tgc|S$mZ*iM!1YN#(vGDBfz8N>geo#he_-mfNT;InE$)a%x;g|BVyJ3q10k zm|WDa_F6hw2VG8ojhncWeAWFN>+U^|V}*#~YZ4=A@EXQz6ZqjdHzIlzO0J3^@8y5a zI}`JlgjwkH{=x`UTNpo7kOxcEipLo7f&nt9;$->IEiT#05OcWS9}h&dNYb z_y?#+wi@Qi&tV+}#Ww@?;ew<7!Y+H<9!@L2HDh`^eMc0*;P>@%tjl2)0SP z{BN3|ic-e!HpCrz72Bp23!EHnCN!FB*l2>^*;fa` zvstO49MZKoJc(uO>oC}A05xJW4XO3$Hk!#;*jg{d3r%TFg+l2PlZZ}>Q{;dAU5Wc~ zVhmVucMz+6X!}*+hFsli+R1mENFl|Nc~HX7&D!yN_iP3(NM9xC3zkwy8>{DDw$~NN zjt*(e{*N`PkaS>n@`{P_&7zqZD|vhKEZUybqRtEyb8Ie*q6|P-z$ZZ`)sk4F-1Ysq z2~G>tLsnvBfT!`9god=$k+XkBt|YNUR{~6{VP~z*FS?0ASYnB5Pp0ECw9Tz#YRWY} zUS-=;(HO58dvj;KbIX<7SC7;v>WmMD0mYKOY0&%O!Dg}b znsn$6vmE?GHYMh`HwyT04jcq+)H#r-PBlf3@H|)RuJF5r2XMCJD4Rt}_5i|B=(|Vl zS_LWJ`ORA8x7bv7$(`n!;8J*Ovzx96aP3w|XAY9xFD5zJb%K9$QLL8TrGndP70~q< z%$=Euvl+wHAtL%1s%RR$!udHCRj@B0#3gO_Ugn}Px=rF#2WLl%K%}u%;Tb;Lt3?9< zdXwa5e!R`gqWwVyX1Igx&nlB%g82xWuVic9IIf&nEsva{!C@et$Iy>^7mVCbt|Kt< zBX@x~Cu~oc%n*Oj#^Thg^EsbkxF429A3dd3Lr`{0p~SFo8>?Fi(oo9y&))-ZmbS@o zb=D`Qj#WM@8a>7ETT#Uh*o7*D;BjD=5H28r1L>(w0LpxMWf=+BU^pfwQ<&AxNm?EBb%n)%$eu7tPR^GL8vH1Yfsl3VA zLsi)?;gQ94LtF5IPCoZ9K)r zlGb?20X%>2d;Ezg)nd#Q%}emp3O%v$`IpO4Mju5iMLbcDz%IG*KIe0HxV)x16Dq^T zsicCw($U#%C=EwBcJ6;1txE^1aMPhUiJ8pV_@zMgg%Gu)!DLS)4$EQhOPd@!HKe_W z-v}Bs|Z*@U}2eC{nf#z$_c6PTwD@m z?Wcd1V9~f*jSqChNG<8gxGFPZoHey1zbr~g&WYnjgCAu2E^i0Lx1btFNQC+X6mJ8p z7&}RjY=-+hm;yx1^X+8>!)zA-ztr-~DdAr_DkWfU$brjtZ2i;aSC|k#W{mzBN=}n*lo^c8Kz(84L=;PP(e%PPG1p5j#+y5?A!0>lk^=RQH}JWwaqfX@JWD5GPjs|oTbTl0HXVXk3)Z8 zw<;KslCjY$+o9Vt0|da=XWxf(&0Y!c@vLjfa=frn;uhVb09i`n`jM1?yYB{DlL%kn zDO0S-{sKcIsS(8w_=;DXZ~7_!piA;yn4zUUK~KY{DJZ42=wVhfO$8Lo4xC~lHJqZ3 z8OARAOBIW0di=&?=;zRruR>Zz9QQ9LP1uI>4?{r78%1|Lh7=?0f%EMh|@ z>!6WxRAy=SV%zQ^F+DTKhVJA66gP`@Q<9(b%0c9c0LO7@r5i%9FwIyJpYt zRRga223UOz6mnW9KU7+gMq1SFf-K)W(LlAZyFon6Nh+(S$kAvNm6YTf(E6^vx>;h= zTd_$O84F7JL91cW{Qf!jJc@tD>_u5+_#?GL(ELfahtW)!-*Tk);01faj1AQpMTnQp zD0aj>8W-Ud(@)+eLa9-K4^-93WnR)3mQ#DCHkbl}muMkW4C^*xBd*0tZ6iDh0uf^6 zZ`N1c4${Zsxb#KpaPr{v9d*dUb1oNgA~BLP7C$~Se>fg(xS_}jPeOll@3nxKGf(mK ziR~6fyAy{?PYo>35nxR|0vu_JX$91Va#{w(+75XDOnDlx56O#U9j0ox#mf*eX<5gD z(Cj*fsIBX+9*=t>Q8YOFurLSzyYogV3LMT_c14Av_$cAyHp%k?OvDd*Gac+8@s4kr z;lQZ$=Ov4~HY~i}fs=pW=^XDxxhUv*S8o#t)j{KDMRq%~t{*>wr5(aKbDb!--wuya zL$F!FbdX z@zRKU?m#ENxl}Mk)#M84R9J4G+@+i&#T>v|f@|T!Nw+hAAQOL=Xq2}PS4}HZ+Sir5hdHT(sSUAG1jiyHs*L!9NBz;DJeEpW2BMd@yj3$>y)X+nwLz2Becvqf5* z>Jq`9uzNY{muu9H-qUD6&pahkCf;uCn93<0NN-~YZK4%?37$V7aY|_ zA790T`!|30kqkNM+pCG0&3tK;I?zIp)E;k-0_?kTnDEr`J@hM@p1WUn`_R~m|44mCh@7AU z4}Dy7=S)H?WbFKQChYJ&JOYGAfH1v|H$ykVx{-gj?;l2-<7~16ah7r)cwVaGl40DK z>4LWL!TO?W{+WzJD1O;{l=F&nm$8W0_`)^^*3R+>x@`nK=6SNYYf4#dsvfpS_O#EH z9Qc5xfX~C@%_vtj1&I%VctCIe#^mc{*-kScMxdzR5lJY+9=9fzC>XRS-<5qR@Dq<( zt%QHoD+9?Nk$rh6NRV%@1cl>?64YTJkz+@gWX!v-z9XGIHKD^FW{uSBR-G}?&H(^% zKr7wLHhzO}CCln8XhO=d*Kz|*v=@mZJDsSR?hs=2fL95#@9F>_)UWhZbnEds$R?o8 z#d;wgP7yfe`r`*EiQ00BZR8bI(OEw4{iT1MDd`aWMf;gGL4{kDH}R-t2~8=q3Jzwk zYg~w7+8$mq%>jtACD1@JF4FhOQ;jl~P4a&w zaF{zE@R{Ya^BZ4bllKw5(Tqi?<|E*!zg%Fp%=vAVJ?nxL;IHQ^t*VC95{Bqb?5huM zcp7-=xTt4}LksL_5+$G`HHnR+rZ>0r^Y?YZujE{M{u8t{>fH>C zEiV2qgHodI7Y-IBXmZ$@I{r|399VyZ*9uv##JWJ8NQZ(6xUDsd z4r5Kt5CP|u80E%M%s461F|!?da)U+9B9u>WX~+QyfW1vi&BX@}#3T#52Nf^MwJN#W2DZQaimz?#btr7M`5#EBdTXm?Vg}7v@{~Y10kMb8O^uM&#)D6T zD5I(x!7Khtb>R0XwXQQOq#Z&t2GWQ_bA2&w~(dOu9dh00kNwP6zle`;rsg2zR+42g0 z1_03tyeAR(LW1Rv^D4lOf7&5z@pZQLEnJCwsXIhoI# zRDTydDX8gs3=gmUN?w2dKL8gW`BKm2td5!ILzTVf2wry3xvB-0Bp@Lt*dGJ~qu%iS zdlkWtC2UcQQG1eY^vsi7iUF+3%qt-Sv8_4|69lD`%VW!zmxolC;Fxb1uL9I1j_BoF z)D_rg&6ZwQcAI_Ke=6dGIuuDqx+KDSDut`o7eD7?5?cC*%fEjS*a zs_&s7nkd~~_92%D|u$rGcuU3YXBNckZrV364!quSTtvO_pmU<^&1oVRe1O9 zRR078{(FaB+Tqz-&VgIutfGY$+q~7Z zn)u9q&yRok4HkNWh(vkIf~kyulA_jgAO?$E@ET!shc4Z=(e%y;@imBlXlc&fA(Ajm zhFDMhv_~t{LxMwnHlU7t?_lUFn_LG8k~g}48t0gjHT0+s|w?a)w&C-wI7|ex(Z4^(kvj2?`VH!EWv&&%d9!DgxI_a1x(E9qY^DU zg#$^duQXo6wLY)-1a@X6%)b(@F0|v|3&;2xyRU zVP5nz5ICHq@0_oaTDN%s7R!2?EV|$AkGclh^bMMe%U0dsXH7~&y%2}@CO>^N)gI_q zhvk2%5lev^m0Xki2gsYHE|<(EkVfISLVJ-)ADIlOrI~xXG8IJ3iR6w* zWD$x~I46+zzfm3fsT6q2BsNBT9w|_pdX7axmiY&8Ea5OZ#}N`c0f!!odd%VhRvLBg^?`C$P^OKEZCZ$-hm~V4j3>X z-^TgY-;Vc=syJ&ESXge&t;)VLChgx;Vcwwuv-A2Rx-qAj3ly)Fce;MQ=!}YsA54Gb zwRX6QlOEnw?=b0*VGS#b$uyo2Q$f5ehP#vyNgoMv^f``4*1cAp(SJA$8EJ+dVy-bS zIi}7YAO;!6%Nf!SlBxb23KjrOg%d?>B{%y63ae7#lGIolXLj_UPP{ zNhywBL6;$wf}G(^jH2t_mp+@Dw0D0>N!{AK$h??4rLJ&UgKuE`fQ$S|vbh19q`BFQ zO3Ud9ap!?)*?qOz*c8y~U+OEyPXhpmTLZB^&Cm|_3Qnu$x%W6N`HwiBKzORCa{5Z> zpv>E7HWC|i5TcbN6?2gq7b{E*wwym`MGbYB2|@XHTH!ZB=ItNI_pJHvEa89RQB;$r z^dRv?gHgv|<>J9cZN6IX$g|wJHTrxoZB(CZvG$f}yoA<-w8X)q5S9ogkRK(KGd+dJ z9Fcn6JcK!8Ym$8Lrr(p(5?+&9RPcsd2y8u!Nk+%9Su3yc2AQa*ED?U(?`uuZr-3E{ zLpaBs(hMXBJCTHaQB-6z$}E4;jRT>{7I+j$ue-^{B_$%X2q(Sha`+D{7eKRyZ7D%u z;(rD8L6ap)LVVLp14<(`%Iw4fjJu4s0d<-#-RlKVRAf#w*tdmvQDqvFy#hib$d7-#z*I1n*Urb2 z+?klM+Xt!~BoS$i0w_!y7!^a# z=&vWX!(QD-JfC_?C56d`#O!H<0h?EWm;A2TMJfDiDYqwrxB1hi-J>#_m{RL{pUvp; z3+i_qj(%A9hTD3?y;A3;@B@5P3PcCjdxortpPZzJ2X(w+mq~LySvEYqt^t-tAbGs~ zR+{b@C82dV*HnKO*h#$PJNE>-K9U^|Q?p48c0QUzqX~#etDO=J%8^!8(&ZulGqE4) z{oGIg6+*TMJ~!3AXNjt4InBaCe(h%NOd{j#wPTIZA4$PsuriCN%TY@aOpMpJrde&I zsL&pM{LuCVkwcW1j(^zkYp@MmhGw$efT75|1cr0hai=Ai*pL@v zQ`ErTX7!`Xgp$F2(#U8juJX;;NG=TXBCl4zR zgLjM#%hG=^U^r|j%n3GJwgob*x7z;!)TpFVg#k$++W7vwtE`lwKM1;$Y0HpOS+^Ld&V>v=QS8pp>#6 zh(~1wWg;O--^?z?_IR=t{SIw%jM}p-CCnJI&l!K!T++mVQ_+@UXeXf_GoOQ1=e6o$ z?*FG9kXuW~^fW>zABbJZ+_nMBJ-TUVYkAE!6!&`)>HUl};jYn1YmsFLv3xE$EtI#o z*w@h|FE>pO*g)|Ri~Jh3gi)rgT~#+_5fRJXNzk`cXGSZJq^}>JCJleTmOUERP_pa$ z{?C7pn)zwhqo+R|hxDjF;LyFODoLZZQX81rnI^h?8AMzbv{5_+KO^m;gdRy}uJz zVyZPg;-P+tqL^w$eqqtdc*yygj2o;W7ek=+lzXyzpiQ|Y=amI79M#TYwsd_le(D4I zYbs=S6#Bkj0< z=2We6Fo+ounT6UkiQ~tB_F5qj`k5h8ixk8Pp+d!WCReVSApN-|!$ZZnclVf^ zv)N%+x_4X|4nxs;APC8Yik6eZQ=mbEMqZEyM54J>7+i`^%z&(onpC#?*qTswlr^TM zUicELk4S7d3;Y-pU$TT5FRwh1CWjkTFk$y_=_1Kk=RLu-skq#tr^#QG2iieHhf*P=jg zY;TrVp;)YF{lq)5Y$E}}XyoitDM3tw?La1Mxf9>8fk$IyE=5F&GKXWU*u#ek7psNH9AF^3Mt0C<`v0ddV# zpkMC5^Ic@W+Y0zmIN`T~ebIQ|$;^M$Lsl|fKnkr4;{49g-Sk8nM>W%bbCccoI;k?Q za#QhS6?xh?&wmzYYj-P3Yj>Q>Jsxaoh5HSc*tPR#(X8ITtR|cHjJKrgNoF=DKw5|i z2rYfRF&t36(mT$G(5s!%q}OwSnf5YwZAX?7>eeUl6TTdaJ_*Dc?5ejr9LVKO)mA35 zN_j9+t@LqS|A*13MZi6OnU~MhOPMYt(NwM@0L~&G#~yqJBv4p7bQ3NZeVpbasE@04 zp7wntL~TLZqiNljc-*`XMza7rjR+})F=u&O_$YstgTp~H<2;g#U&WUSI&D{UwyAmu z13@Hu*iJm?OYO=l+@+y&0ZG!7K3 z!(s>OAuLN=9hS>~%3@Q5a!gx?TzQ@#!kW9baKyc2RSG%SKoiJPMW#vC^v|Nj8!;5w zJ4tR8%ShUW5k$(dr~Te@fOmNx5i=Sqo%3^5+@RBqQ-%_woUW8yRPknz>>m2o_|m@FM}e~u(KAuSevJ=S&CkKkf;q5VmK!9RCD zAeo~MPp>*H;OV1W>=Y)Ztew}lIZ^XHHP@fzM%Hb@ToAv?rwd@1$?{zzvow;qG18Ad zr9RbG6q?fYps(aL80&fsLsHU6(r0{HksEn$n5!e&oi4(j&DmeOaCAG>$?evj1!k!- z9UI;yKVgl3)iGkW0wce_W<Hx(Gg%p z*vHb|q=>>ROE}S9WRx-qF-&<%3tE3c4ExMtEwpNcJ^(? zdJxjd-!_$hDOYWiLdB4QIdR!3Im>e@1ebKvstfd5%{3cV6~}5Ef5+pb+>7J$j0hUC zn1CpMt&N#5o}>dd+86qf^nLWi+!V51`mMCougZc21$By5*nlU_On~6pw2_`6!BZ~g z;hyqHuy|d=_=TbJ(MHxtYR+M*q_OXG(=a%lTfHL))rQFjdYvh*|K7hcp}IfaB{x7( z+EsZd!pZithE{+BuqHlUBw@QJExG;>znX<;Y`b1W>3WJ}ONxHo9rr$>qz|8P}3*x$(sAy|-{`Ur`*XI}5yOFndS=m$K zK)JQ;%h|jApVqdIm8~C_?PT|Mf%kTY&06U?BY*b0s%>SbB;-M=2}m3dsDNU8BQPZ~ z)(;w=stBTSp~cKJ4;4rgLxS^6I|BnK;|v2sbC>M20vG|`mj$%~K7SmPk@_lM!oLyd z3?S(v3?1Lp6M`wQw+TTYNiGZ?56anxJp+J3VC4@uud=s@0l)-C0lWf8B}Eh|1;8lE ziRwWr)%i9k70bp((DipfR9sw5BnFIt7XJ?o5a6E$fFYICq@Qm}!0O$%tT{mA?@oz0XH%i_Eg_HWme_}aJHZ;n*UoB?mW`_nm$fV%4Ac%}sz`qKKd$cg?Q&NA9z&+dF#0n;^$`g~f*(M?W6KcYhpP>F2B8iPY4TG;sCv zOf|0m>gQ_cT>#uCTmP;pb}XtL9>(Depp!->^PWywVeh0GYd0VuYcbD&dp1XKL9wlcz)RzKki?| zKIR6Xm}w~7U7+6{%e~*fw0br$K#o7QKIRX-wLgh~!#Y^$k6x`9fz{Mn0OEW`o*tU< z104*MKfl*4zZWEz=H}#;HXx;MJ)@sHbsuVG>9xP;-#P@=ef&WbKdJAuv1#4qX;5<# zyHkDh&wn@Tzt+DU$^Ok@B#3+y;{qdnQ=`wVqDQkJjb7@H9~P!Br}UqPrk}Jso#Ifm zRRJ$A0PG<>y8SPK->BCws&7KreDtqZSxte!&p(xUy#k`uPy%9RD`Ws>lySUuXvgfb)~Tm~_BrsXw9YJCDylu{#g2{{k+|UkC=~?i9uk zFcZ*uz@NVifaj5)aOs=2QIlW$URUNfa3jFE>>r>8;PW4hFS*GB{QK(2d<~Ep5wff8dN_Yydq&{QF+PNBsNTjAj4L zG@Sjz7~n=;>)ZF66#tzI_*}yrxVPi|nM*pQuRhiXZv?2!!0h2S`9mZsy3;p1Eu6UT z9l+eXxy$?eDf_{PmH6{v`ytj+KsY{>n}7P0%Siq3>5Zs(@z(RGgN(SsLCdtHKx2B&D_5P?-I2ijFyVO)aOB zrr@|~msY;nhqH@2S3LOS1)5T6^5hguFG`$e+sUEO92g50vfVB*&WD%;m5Ey6b@z32|QH1m$?R)2{rZGwa}t#Orn4c$cbc@ujpt>6TFiai60HH3_P zViw1s8~yD|Y0%A*$p$&kT8>T1ibs1=cz=6L=Bw?@e5vX2Pgdc&HO6!50yX+F?S5J0 z^WdUQoTRRX$cZEr>Gc>tu%s6Vw?_kU&hxFwf*jt29Y?DHDU%2h%nPux zF7Agig!1#8CTGBnyb>KpZ+~i=5n#98N+n$V6zCW|n6G_&sA>R9BbEHpYX(s#LAW;7 zf=?X^q%EfE(dmo17qa(&{|O1_Hpa9|w7r@gF)fSoMwJEYg8`t>Sf>n?hCye-IH+yY zbZFZ`mU%fTX$mp$uG$AtN5Xtgu|qEqn`dKJX|>OwS8gG`zy73LVF8$ zP;#c)FwP*o0H|u&*MAnz1~+t)+fr6Cr*~5t$g(;!^pT1Di<~R(0ERnDgUu_trE5Sv z4#fL;bOsM~hHRr`fNRws)&+$lSGJcO6|^5Mh(dB13c%=QjQ053R>P&S5IRj}Cn?BH zig3hOsxGrDlply@FjKpw@cC@%*s|%G4ac7D4;>Gx6iqBxzJKu^uAl9pEyWb&v^K!L z=*M0Xa}Umrm5So>f!vCEiqP)Ui0WdL18iwKgX`^xwnkf(5j={l^0L;`ED*&%(~8X= zHZL|~ru8|gcv>ZF%<0{l$I0X6Vk;)cEta%DAS99vzA$tW8@;iUqxDSm!Je;9MEP!K z?`|anH|U9my$2M-GATX7NLcPxe`7`Xkyit%t?9p z%4I)SW-?9Jmk6)zon!>TzgBje{3w~g$xY)bdn}7($&gumEVymBw~A%8;6Zt}dr21{ zgpXpV-F;sVgn-k<($%#C87KLYJr=${e6qZJ_$E)yD?yK;eCXy(thNR#J=cUd<+=b{ z729#y*?-i$*EYj(a~0(;D$irO$6}d4E8xjnCRx@b+V+K0C%nyw_*#Awi0pMeF+kL_ zoVAjG)HN{2g;&hDv;VwaRf0SAqkz$m7K6dZ!<%sb4%F47f+6U5T|BnYkd z)b7DBF}TkM#Ox4q3p>-#lvCmsZ^?e!H?^=Sv!v-Pgp=rvp%5vXszxGEXGAr6QGWnve9J z#1Kw^cE>rOmt2*xf)Kl8Ty&3=1W~8TbO(|zgyN^8XpxbSaNYa(1oY#8FS-5jG=C9( zhxtnq9}vyTGoY*JElqDOmH$Ku=u;O#!hf_sI=&?G*bN`12GqQ;l=2fUK;R~xdqWhL55hVyq5b69z=#Cu(0`dZ`)hqF?OvT&xe}giUJd_rYQFs8jKgrLzT_9m z2JwJvVXZAM`f5)w{UH}}yS)Qo=0v>A5!Sv9xc+Qe^IU*>HOc#@`4$Qr>U6`7_RDid zA(NB$C3D*;$BpsEF&mBQFy=(8O_XOO-K-gMHr7my?JkkQ&@q@rtnr8Xb$?^c^WqT~ z97{wk&FlHtVd0g9$s?jhCH2l(X#*s7$X76teO{5(ru-X&6VWts1y-hIh}dPV1pqaY zI;zRtbfcL}a6%Y5E#yV{d$WG0i25#?fhYu|=PNmzhV=!u5z?>fS?)u6Nd_q6=vo2d zSDH%(L7+8y&s?~7tM5CluYahl$DJOo?ng8&l)zEA9Kv0@szvMRpE*a{%vhk1!T#Z) zz(>#gS)_hPeZ1f3Lvrl+BSwQLZD)aTqaIpo9GK(lqX;RmKCUmbB!-FQHKB7X#JvJv zow~aF%tAQ)YRfCc{cwKh%g@F&Wpb_sfB|jwP)1TT@6JM2tb9#dsklM_NLLaaOgvHr!Fu*?dwwin?m#e`9|eN8a^HXxH)v$cFf%FH=^TZXdj zllZFZ<82#KguE@w`xzr_z_@@yRU5m{6Qfk-vR%=URaNJVqn$1RS-2O{Zpf@X5r%x& z9_>0AiOE<+H$^YGs(&$s8TLXZK5Q`g5cx4<=(}7t>XZx|6xelMyZUQUkE^|h*OxuK z$*dq3U`CUtHIhF{fp-1hqUf-4_OJNQFD%%Y?$t$4s#C`gtf6wPDC8tFc6w0I*K=zD zk8CP_+%vPE8&-=1$k#|VIjdICHOXmJZ`feo%B~$dz&D)I@_)!V4bvX_Mqfl39AEi` znRhM1V4;rm)r4C_qfo(7aUug1k94x#gOP9QYnZvLDBi(QFQ9N{!YsO;YG&Mpm!ICI zO7v-fFd>^NsM8ECQ#GsG$SDMl+S!3hsNr(8gv zK{ndVx}$nE@qd40ite#4G!aofsBRZj+=}ki|I&2nzBg+s>p*&(Z5+D_)^gKjI%gU# z&JIux;WU*%J4KhYsJijv-UCVb+f+ICpTC`ZZ|i>Jwc?h>4O}AQ3PdnzQL0xqKBm}b zt~SZ_1p|qMQLbD2frgWw!6n$^2=I*iM^y!~j<$_p@XZZZa7)*ZrfNp-iTM|(9HZQMHXCn-qwXOl2MUWA-vmn`g9A)Mw9c$&mz}z`C1#NK4VV>t{XzG9>6qJuP3T>R zj@ZQQN0F$rQi$;IKk6;sVO_5a-z6A$t;^hinUsUDEkLsHlXa!G)rU1Qv{L6E@v(%9eRntBUE`eEQ{8m_onh3M zhXXrylZvb>7-EbI=)$F!Smwo7G#89#0)NQo`(;}SlT&VI$s|Ax0N_4bBJOs@G&J;3 z!!*1#N758mpCY9lwl|T;M*C7fQ&uCF^c4_14J3gxtzo+p`9_NlamK(Tx*ChUBjn)c zU%rz^H4@=4A6>La9H2sMbRW8||AGByuamd*w{~8r^!G~s3aF5`H~)s>rXc4iaDSx< zby?%VrRV1BYiToWH0qqSAWV?hs{pTMTmlrQ&h7!9hsUm}Xyd}b1AU=}wo~^r0)bp> z**vI``%*uwqj!FiA!*AEBv>WH3bjAD)T(Umw4iZziU{Zh%Ax0uqh5XAmJ$Xnw-Es# z5tuxgmLV`!SkbS?^o7HCCaY+JX@8kLe9WA=LU&osaDQR2r^g3P{2roF(+iO^r0elL zorF(Psgha5o#Q7KjU4!~j=kjr`822qQF5P(X36ES+eM6tb?{i_FpN zR$t`G=xoC)j!rnC`X0k=;5u~H2^C$nMc1iH8-}3j_Y*iJMcRsC4Bz&JeSbuckV_IA z`mknUGm<}G1IE)sqE$3!Ej<%--WOz(T?0*M)D6++-4a?jBvFli9PP%1sd4v>#q#14 zdR1QNVrBU{D<{%dZPCfEX_WkJQ-0l zr>Yge)6`!?Rzl3SfL?h#k$;Y}Bh6J>A7NYMLgMJO`ziv3U(TH%izA8Jr}jjyJWcMl zi4+7#|9DRT`)mD}wVd(UC|O4u4BbII-=H72ev5t}&)@&>qLlF|J*+<^^lyZuOg%zj zfGgRmkD9bXFT|-Rm^dJ{1pZ44nElhT9jVOQGrAu0&6i;-IK|Y><$q3@nC#2xYak=DxAW~>RiapOe2eDDn1?GKB;*X!lImz>m$AJRrLr_^Vx4Qwy7 zenmb%zNT?iiyaaS8z#;ILwx0n)@*r~(9xTw(0G<%1Eh)@_b6+?Fl6sxj?l3OPd@nT z3<}3y$2lBVXC%ld?|%o0Z=@?YSZ4FT+A(jjRc_Z*E*&rw-~%Q6pTgM{A)D$Tv|A z!FS(~krZE}($C2Zxve{eRfWqQERdJcnukb`69s<#_}vM<`hRD+6j|ODLgYqG#Greiev#8@Hjhl8#+4*&MEUI+}TV^%ZByooAN zKoAAkQdhaK`+w82guz(`?wg{FoY9}9SEzq9*)K?IX2X=G-Cie<{Ax@D|B8C$C<)82 zDrZ^J$(LX%h@+parf{5xLBPtkLhW$zvi?0f_(*UIL)=yfDkOEP^jOXia>>BUsvrAm zL4*Cgzo2@>$oHyPtW#jOK9ChAF$%vX`(|JG^q&x#;D1!BtZUCGcy#|V7wcifRMLnI)>@LqRJvHsbp5lDr{9ScQ&iDF zDr2;}Eq_VfqcMq$KDFFj+EByQP%N#W)glcQd`j#PGygI~LmEGa6}gs}_AFV+?B*{I zO(3yo7n4HyJyB#L$l(S9{Cr9(aNmY5n7pqCta>KKQqGBQtSf04B$5r0(A9gU?(015 zgU0B+uXlC(JNQ!#5&U3oLWt!1vCr)e+oktXnK|f!C@`b~XdG^->$pJXpkY;h6o&l0#nh4n{JFsC0 zjlecUx(@&LRr20)rV9F2jZ6LX*aDyUI_P!5UTDv5DU5wJih8x`;J(n)0%5^PS5(}G zndO>BZaAMnJM+C{15ZXX;UgGx3rcH^PMj+hm~;+< z3tykC@5$4SXVR<&W63cV7_3yn76@&XT9#*Fe^ja_>TlF_-CkbGw5|!gU9aB++*nsv zq}do^t_zuvTsT?OFXiMY3fTCg8lqy=2i02M;>BrJ0Sc? z{vp0i5*w}CaSp>0;(m_fqXdy)m4_wxQ&eDvMfl`&S~b1K!44p-Sd?$@fOWsFHtCOx z9~P);@~=3?2=>K2L`8R3r!1Nw9!4_|X>GdLP+0&5ZZ$e9{9-Nuac`Lg&-;||f&=Wk1C9Au`_-upgrJ*- zDcEY)eY=*08Ir*Y;-TP)7=`OTKLhQt38vw{s6!aE@ZdPk#J+tiF{8jx)*f^M6;=y)&IS#!d zukhFBX7$XY7#;<@H#-aP1j~R_hAeVD)ZAKgp$A9F$^9yIHiD#8XPj8?SvY}Z;~*Bw zh~!M8TDWyf{B4#ivn(9PANyEgVe*I2Jq%K;jpM1S~*r90H(_`O!_1K%N=ZmCeO z;>Lp~zL3L5d$=4IlWpx==S097#{*Jh^slCwAx?wSNz;%vqK@VK_j7b?J*a-z3k51i znW&l0U)Di|JWY|;Aa)5u=W+`}BQMAh(P!rO1?15Pg>VZ-+i1!Y>vDUkE2kk^Ue4uF zBJG?%Jb!`Vy_Zh4@Dha`wHWDB`HFt{7OZI}IC`y6(iYTJBUtNiKt{0KH2aU37W~6% z2f?A(Y_7YK+mCrO=G6uTs{>=O)gtL8E6&lSk6)DXHd2jI)gXkQnavw!HE}q1# zN)Zf9ik`}xO%AaF}(5-XQeiml^ef>r>9_a}oSgdRLJ%m58H7$63 zv(I6Gq?);yqFUCo7l!E1;bG}*eVa2!u-^Vz**9S(t<9-fQA1)?lD^)i)%Mo2H9yz3 zvwx!5Ug&D!M-K7)7oAV|;CLR!^v#002Y!aaz!)a;9#Brbb-(M8N_E!tGQ=j>5si!{ zW(YE@dK(lOMV7o^K^SjF7C2B5#{dwP2!BmhS)re38(Mvz5cw{HT5+IiYX6hbk}=1S zho3h2nYXg;lD&Uu^qxlKHE+W^{9wMQv48)4g}%mmr}%rwOKiVk&%ps{R4P%X^97Q3 zUM;N9ze}`O7pe&h7v-~jGOihZ4y2^hZcD^%u;47+)s+c#PWxV{b>DfD|MfE}Y!DXy zdy4)MP7{{Ji!Lpjz0;9QEQ`uqsY{P^&-8p$=nbPOKBeG#j^Ejz5>+<*RxI(K{(lj9 zl2Dbe1Sx!Pm*LNb1AuZ3&n4QZ#@EROb4>XvNpxbyDBDH0bolMCFX4{cH7aogUxLnP+qlt4BPc z)97ss4P~wxW*#8*ME@*ed=i@$%~tgSkUPS+K)Xm{ zVaDpZ8EG^+D<3yy6`VZ@XyXq6LTof)mE;FgK=)+>e9Q-tZ$n$L-JOTbD~3m=y^)J| zMmw-Iu%I3DZNKm|O2jL-PLOTWaWhhcZxFe3&d4rcCekh}m3kBi} z52K{LAiL{tFP({K0S82b`A=*YPfAZbDwZbmrr73KUUGab^es9_Ju^wn01A2t0uhMi zJBe{p&8d{J7C_5?PDWYYRN*r)4DWu zG&>#EUVb8lyb|Qa8`ApKP+n+#hDy3SvKj_a!XD@nejar-FcvBcm={p=hdQRJRI%Eu z?Ilh?GWHqSo~C4$#AYTBW?Y1);j`|7^`?y~TRx@e&)p%;I}llU9)Ct$=&HN>@PqC4 zX!0&SAtZ|kgyZJGtA-`Xpfclm(CUyFCiD&6fwmHQ@WA+i9n3ntt_Q^2{17LuLa!P} znY%0E6HOjNH46E$S3j>P{OQI%xX-M$+eUeDYDPY4kkTrdY`T2pvG%wXCKP>W%TizZ zzmw?g=}-rLo64xw%zr2?FGo`!#{kBKsoOv1opvb&HlBfi$-fsZRUhH~>k{nS#s+D) zKaWkWtlXKPD0r_?48}0Nh66)%gNrw@&9!~{i;woiSr;c4!%kUtNhHfxk7Ab*qxMjN zO+f;$X^>4t&;FPW#SF0xIq?KBRpzhUvc)t*Xuuv+ zG|OkW$&P|dY!32gm>8b$A$PV}$!6w%%rW=wr-uIfzj&zUTjfPg&FRU8?q3PqElrpb zJI>)4rGe6^9e;-{s>3wL4QrLh+?Zf=6+7^BJjOIS<{F)QjT(W4HJ2a43+?>j_Kp|4 zHTm*qH(D;TUXmVCJ^gJ_yfi<23S;Zr*K2oRiUbq|jyu?=SnM7nTJlSHP_{8|5TCqg zoDE%-T3#Y2zq@o%&ML8{0~+;C_2(VC1USq%3}}TK%71Ek-=SkA7_+=V5LK#=S!srD zE9tGMW|?agdvT^~8(hg*sYMyNYaO~)ZBA7SqD zL=e)_cz^5{D0R{hsQacVIAob*h1OlMMKY+^MPVCW-p_f^k{PZ5HR}23%c;ANhjRm{qE&Wb26-_IHF2vRleUZPmz)s!6tk6Rca%TBNxUgEdt-> z|M{8wepsyOr6}g7<_p-Xf(zT&UF1=a$A)LGSbq(j`N;R0?g*JjBR#fDeJ}kXI@MX< zA>Ti`JRFGk-#DJS{By@tWS$4m>Fd9kSA z$)Z>d-l9}CWS&Lj4&KK-9_Voo&eEP)qeHWrqSTW_*R~jkzaZoXLf@9b)Z5g7-auPt zY=4|29nkLT2y)^xajn3}wq#lr!X-K5Xp{S`@})yTsv$Lgy)fsiw)08&n012>RU#Jj zcygrGvh-2!fBl1L+F(o;(h;{*8wl@YH(Di@f8H_S*tzB$ksK}5uC=`Xv`x?h+!~xt zM8ru2ido04=s(&|;aP2U>ae@YaAcFU3V(R=-C%9LLDV%306Qe))P?W*r)Cny39hs^ zXl0nWtK_6S_Ouenuy3`pxGk4OP{SKw@e4+Ck*@Onk1WH5*x(kV2lQKLSiSwp&0@51 ztth!{d_VdhxNL1kNZe43xHaL>_bh&5F4z=h4nvjLHMCfedg8)FjXo$&W)5B327jGi zss)wl94jw?&d>;9!_R!h!9nvIU04Pn`w8zd0Z>BlDjpK$I!~ac71T{7u<$|ij;*(C z={F0LED;`jOeoN!<1YiC?d(_9uJaPSuMvuKDQk3JR7zh<{~Hz~_g6`qFN)0lzt7RG z>!CYjR>uz6LP0u!=6NmDXQ*ci%75^v!5iaIwN+Ssa8cNysk$6fSY7s)?gz!R2fEV| z%hop&yV7ZFj^a^>_(It6{Zi`XJ<4JcEnmsYbbH4KzPnNqijf36VlvixcG$gra0b~! z&X@wgqL39nMBv`!6$Ioa00dfRDeDie!KA~AYg;=^xsa*`Jmve|SkALvPJdYNJ`2c7 z^{GJiwShWHzvaAbuEu=9!nr9}!z6}0|6EP#945g!q8CCy@hGBIaO;Cjhmaf8C2|Hd z{6Ju~9Bm|$>(p4`j7p?i=}fY*eU#2&9_dpuit|uVd7gOTw6SW5w@h6RW)cv-3bGSw zwC%3bLoL(TT-T@mOB22*`G4q8Fs6UAzPOH5nwnSMf_-$#P?aUcYX?#nePdKiZ6OC; zeeIb|faS9*9vMa}T&mQTZ(c>z)XQaevx(1a%)xtheB#fsDYI|6TRwVCj1j2tSx%1b zp3xV&{flP=5NaubaE%mJAu6|+a_Q~1pDGIF%e3VnU&4koAD>M=?tdv-1=5XtxGDXK2W%UyHn2cH(sghC zT|&xEHCFg}ldJq`?4=dTXP2={*QUtj*-B!ik%5r|tpF&oL4SOs?3r{0-??M91^ED# zP^zzw>~9u{&4D|tyctcmU5>?Pa3K*U{fb;mBQBE{UB-2uuXUci(0tFP7#;a0@e(=- zh_2LGQ*WB2m~WrhS$`PBcz&T@aLQJ>D77h}1ppnxEoBXFhFugkvOBUgM3m*Ae3yCl zf$aEvxcEWb|9{#lt7j>=Z_Fs3O3MiJG%3Qp_A^d=cJ>c7C|NcOTnMj%6W^AWJEN#K z?uRFB**#s}>b z+W-?EbTET8d>teG$gq80ZzAjvX9aoW6C>!kp&}e}IDb=;s%*ja#=kRrV>fl z;m*Uv2%U6+5OM3@#ep4kWEC$l+RnNCCmV||qjW=lY&7)~H7>7G?`wvQwrwJE{W7F<4p%C)vYv#g$FNnGjR5R8WWCYafA`;VITjyOjOoq z^NPtV!i^!l)ML8epT(PHE8}{%l3aY6u76&|fA&yIu2=rgqj47R)N??B`r{!KIZ&HE z*NWLQs0Vo@*J4bo?PB0mt>CQlU}nymfyh^V+J7E(UNo)50&Pj<0FVbX>0AP)pwhz0tXaT+j?;CRutk*DxSo9bUkcF@+!r} z<^+a~4(>=<_de#um?Qq2iBdls^HItVQ^N*TeqvR6@G`;K3v#4?$No%{_o$+hiyLn@ zEPqFpL3PLAex}&PrIlBs7C})^qen_;w(Z3t{t^8%1YqK4Na#F&^+R}oFbd-PX5lDu z!2zwr%Id0fp(!bHvN|1*`Ln?1=F{LjOtXw9bba{+?ip#=#dAHSgANmA3swh8<2MEB zh+(boNYD!J8tx4rI$)3Kpw`zs3*Jr5>wlO%!6%Qy;aJVX*{OBj4n`)MvO8Yx2kYN7 zGk#})mOqxM@fpIljX>dSK=kz=uf~sWZ)_kxDtV*N+I3(zJ5x`wiXNK^FePd5*4vUz zmB-q{H{M?HHqkWFk6WcICdXzcrD7uf#Y6YtRqz`nIuC{3t*C3q>iZ6$vCx9g)XfqK;h8wm(aQd$g^vtMLeJo zm&tXQ16S&Q#YPU5c^7G6B!5DM4u2OO7H)uz{jlk_3Ay|uNGdi7*L(jhFZYTQdhoqc z5FhVg-azU$n%)}$Y)&Hn9TNa$hgB^;t%3H@C(IiT(P+dHArIh~}psedr((Q(--={#Db3HZrL%KpFKN~tni)A8*IRMp<#HEX_5Yp6XaBAIO&b`!{uC+<7of-H&X$@qkE(nng zaA`e*aILXfEhDGh_jH$0gbZ3gpXXN*$+um4k$j7-SbU+&XI!%_r#HAycnKu%Jliu> zW$U^nxRPuF{CqZ9d45KQ@>U&pwjV_zFDYX@3@$TnGu1S-9%W_>&B; z#wYAJMP<-Y2m6oK;Q| z)sA;y0d~=2ZW-H!?a?mLm$?x)!i#JQAIX8q$-PbM_Zj#HHGFf0r#md@6Lm-nB2p&c zoSE#$7HyqFHaPq4%IZ`8=KAE4pNIc31D%m~^m@1aJAX{0fGqY6KOgTE=!I<4?Lbmt zzcA=Q2YH$~UOMAb)P|+aVq4#UPyeD_PpsC1>I9jR8L73Te84=N&C+P(VSmDx3>WnKABHAn*vO7|RwE`UUV2u|gh%xd-?LHAz6Mtmzm=rUE!L1LspkG#k zXF1-LsDInKC_Q$~K)38YI6GMhq>ScFK41%2Stb&ioF{yC-Z?jJ7#+4k&UP*UJJp1p zKJHD8L!Y)f#>&uRZ4g`graC$tnhHnwr@<_Fk&#Al$WdyCU-J3F@do9xw8$E-X?ESQ zVU?xh7>q=$lSws6RvD1ZMWD{pK!t4mVY~z(n0<9O;0 zpk*2{iJa&7K~iU2%2!@S9D->d52`wH@mq%*Q@xQrKKkGF-6D_y{f*=S+Trq+fUxIS z@qZOKD3S7sCDp-hm!8e!gruf%kfcQ?N87hH=c1j+V7*rt4_)|nH&^MeJO2tn5%t8> zB7RE<`=fh?c?fPAy0eRWoeBV!-gIDmz+^qE>O_nH*7jv?{Qy+5j=WY3p?$-aws{kgvWhd^-Ws=i6AXR3EcUWycO1kS0ylHPcDjPFfGiRj<1^u6oZ3DdH~c!GV1JKv z(|VC6jRL}l2xzl-!F_1d7~<{9ThA;o*5F|CM}A)L{}zClO~ew?#8YQVCVz6;I)Q}WT09XYrujgVr7aE<^yi(t8>h2V=JAIE zPt0C*1~(Hnm#pfzzFEqC{;D=Aqq%(!magJse}!%)%SA#FWm?6)U@yLr*XHBGQ0G8< z7YCr%o9u`+bMu}cth)wTV;mcj#cl>NIq=oWP8HK=OH8C0OC1mHQOZkI=6}1=YNGNb zcKs046C>@@@FITV%#DwB{S!8Dbh6jwewg#A^h+~^8RHm+X- z{(L)B1z&9sMV_-)i8#1=b^^`#Ap3|JFrRsnNl~DeoM|3OfpxkVmWn4d=ta^C1$Cf& zlc=;pUG3r}HfI|}zU4+kWFo~De3*B?Q~Z-#}4;bQNmKA5GSCjvjLHahptO$%pcQ$ z0lC{^7lvY!)sEsu*6C^yCTPLqJvM#|H9>s?phM<|9N8FkP%SVDujh)mF>;=`9tLQX zLx1mh7??X;?**qd?cpfp-B$F_7&LbgV8k8PjRUU2R@*okzsA6RM0$OmK(DYlN7|r^ z&}=G$;<0rMhiso!y))0h5o=h1~(xKgkrdhJCXPDiGR5!UvNaCe!m|A3>6QoHIR1vZ1{C^bs>NIiwmyiUwgB;3(D z;V?>c2t&%}4kwOxZ6=%}uOz*n^L<$4wkA${s@JuO=9=;p-(m}8*WO2^ySW~1;hSTcU#EAA9M5wVzVvA8qVaHr!QV$w zNnVNO(0kySknGLPeTE2_6rRW{qHXSKd&IDEon}_T=sHbA!x#eeAWjX^aZfFPJ(LN* zLIlbo291#G9=$|sf1q?JGcQ#|YJUqUdGvYz#@fE!CsU`n1ULDtXT!R2VdeF>>P^ns zxWES(gw1uUq5?vTL};Ysp^##zspx{#{=CknPhTW|$G1qSZK-a!;H7e7GyG%YYteo! zDf!1KRG)b=f3}!@qbloxCCQ8@qjgJB$>3d}Lt$XEFjmI}NU;V)2E6(K!G9tkUpA!} zlhY7~i*Dh(1^@ZDs?3;`EDbTx-{rkYBvP-FYPzX4V%)vF?%Y1(+qu;@3UVMAr|7^# zNHp^pdU1{dRmy?=dR&TH>EDalh|`1mL{-yaSdCQWmte*yie&TlF0XpX+EILfglcxT0%5*3t_^ zQ?ZWpa>!wG$YB1~!FtK)b+C|9e0tsydX8owCH{wZIB9`a8y`26au|rnRkzkJR)`!O zQ!M95=`oYggpX>IePAfY07yW$zobtUp>O8SFcnHMkP&z=6Dg#9slMq$E);(pfrpqz zY5^m=tdQ7MQcvzo2Eh=qB39D}2z_2y-|3v5sv^xR;PKH;A8WA8OhNTl2RhtfBY_1A zhq4sYpbgbz?yx;#;%x5qWe>HRn$_zD7cA7Rp_yamq|>u=l|a|yzbsKj8{7Kh>!rqj zdXd6D2*h1%4obeBQ(H5PuK|Cnr(vJ*sh{OuAKZ}S&wR#SpktyY`b$2#AUbiGy=a6X zekRG#Wdc+$n;+$6o{oG+#rLi;U~Q6mmx78=Ip5TUSa*^)p#>hr)~tyx~7AnG*wuT3QZkl z{NG9ZIBUbVUBqmtUoz-YYq%(}?31&0VNz$-d(iQ?ys_N7d!_AA;t==?u$Xj7*|qxk z*Og`>D?9cvzKh2%%xQln5F$a5u>3hRPDB=&tXrYKLYMR@#hyZ~XRfh=j*^W!62Vh2Sx}6wrOC^(r2E&MDUC zCDV1tU{CShOdWqURCR$xOmbTPK^%gM5fr{(_zEy|{;-P?M?5xN{ z6$jhWCdPk?x-{H`eOkG2;t>`soOQtUPo0O~(x}}PSe?H%yjE@RpfU^MF<7u8ew$+x%Uh>(>{3lFU&%_4TCdsZrVlm?Te@cvYy-R^`-8 zb7rA8{xXHGuCSw0X47Dp>RHVYOsWzIiBfy%Qf`0v05NyonO+}x4#a&cWo~%oA%l+U zGjRUv>mLi2o~owjZTO7mwq%h?#jNruhivF zm9|#4blF0Y!=CcA8&^E<5N;>p@}3%Nil}aev8{Hrdot&St@eYfL#CeKV>C8u7az;P z#O8nh8fIXhMfkiELVRGg=ts^!MAM`P|{ZJ26a%S(&t?_x{Lg^ zPwULm8X%59(g@@sG@9&vaT_x1Ue(zY^3x?MS+_Aa)p?dK@i>+Ic!vxhP%Yqh!sU1# z`EU{$m>By$RnOM*x#E0{uL+k-w1-KO$nZ{lwWQfmi8nLsY{SN|E2GNR=(V2UCi8v31RNq01l85f<{Lh1 zA?cDZb`6SGDhY{xInXGRx7XN98ZGClz6xgn92f`VZtCj%z^1$gGy^N7oDfOvgH48u zufVietVTzu$ExBM$GjA4(#c)OHspUoWc@}0 zzik^Es=Uy5q#D*r+6VB~Co1@>vvAia zbl}KV-o^)8q=zc+xdL~!@Na)LHlXFNIG?bpR|Jv0^P#EM+r<1>vvYX;KE!~bSLz|` z6w{FmPmlxnO_p=~jRX{4h|}APPQ$J;o7_|rqkl$^x!R!}MS{KlD4@5}dE_7nv&sb%cbzO3LZ6(Uqd4!zigv7`2OH@y^Wz4fI`(`|` zB0Mj{RvY1-@+~a-+VX$-DG5JFU-&jR!+!h^8XWZf^OThL3`u!OdELbO`tCk*M;;_n zTgjV}DfbcYJ?$NW1_c|M9g7b970z8N%8>_+{Y;+yg()EMnt3k5GuIK5v4&s|F?nnD zOe>+urU~NMMexfe>>JBno2TF;{60tf$dPColq{~nnkj3oYzu$iELy8m@9a810=ojl z7QMGo;r7H40pn(mn2EA@rbJ3T^}*yZey+o56{)4B0@00o@qm%6K}+*TTD@63UbYKux# z{k6EKr{zl2V`;of`R`im{aKL_! z*Db}5j8?0KQA>!)8FU^Ez{cR*UeBiOju9T3cYz_?M9hELTI+=Lo})auxIrI>Cz5?C zzm(ea57SlPY=z_e=+Hn2F&pA~ubr}zVf+-8Nf9ugNlXE_gc0r{hEWwus3J$E#At4} z!z`tXI0T32_jS09uzI{1*RGxz!lOW-V94dmUN`rfCA(MalMuq#>Wufz^l-#Ww&tDZ zDZTY_5l4UIdr!ymd#oNiu5#3q#Bj{F|7N!+!zdXG1QVi$lUY!hen22&A~r&>*<)pJ zL-JwHTPd|UBkHxwfhFSlq4~0xtImoQLV&RrTSk&oK_L>-N96~J=kv16${T`p(Q=ht|Yba z4q8z%7}3W+H?G?RvcC2f&nWP!2-tte?Mr{A&6>PiDKzo>M9QRIh2G2Rd$t?zpV++} zcH)1xl5{5We^l&gUP6UR-g%(wk}R3NGu%4;;UK*aSarR9gLC2Dql?g%g_pRE3`|Z| zL{btx=iUQQ>|;~M$}e>-OxV9ACKu|VS!~2!8h-(K=>Y(T{c7?ue7T0C&WKL3W+H#u zjaUZgw5=tZArcXIM_-05=eSs)PFhO(A;qC19uQr82ODJ5dld+3s7EM&9Gzy#Z~0S|J@^1Xz*3Ee>SXCGXDABm>ahLjk#fBV*elJhKZep zjq!hDZkRaOnK}P&nVT*Xm7J+YR+xdE9kc<$_AX(2x3rM1t}gEXI(A6S?cLrGvh(pb z&T^aHc<+9`V8Lii|IJixtgL_hR0qT(PEjvFVQpanjab`cn`2&Jv;!l) zM+zvLQ3HbmAmai9L(^bp)C14=Pi(J>4fjKigX+660gq#H`q=XmVPJ3=OaL4TVCN5o zEn(=N!^Hz~VN!H$0b&9sgZTk^Xo-_+3ImV9v(Jw%Z-Ys^2qLz&IJti@u(LXSCjGz2 zO)0-MA(ww~Ktf4PRZ$6NfBz`P|A*YPxco3=0#n%70E7xK15+dW*FXwjmcuD1BK=bV z3a6f|7^hZT@F7ukY;9_CdB>+6l$xYE)B_+2Y@93v$iGDQZ;woT%&VIe$b$bV)dOgp z#Q)`Y;RE`cHxWqzO<{jM7R9{ys|M_cum|Mg$o!-H(%T&8PX_!=eHCPNsBihL0`Om) zo|uS@%H3UANts>VScsTi9Y~&?y`=Y{%CV1+=@%F z(DLxaZvTCY#a!p$_WUkl|MS`qYh{Z)jg^c2n}h&KPuBwcD|h>DGCO7S+b{+(AsrS; zNwz5A2b&939esZ-;%0M}vz7A`{hJ`CAesT)*VhMTaBKv?;0sk*9#vmo-TV}8A->Lg zjY#)!Lb!~M8KnA83&u@S0fV@8fU0qt}2ZgYAvy529oX!@ z?DIa2H9UW{6)^H}A}4P0YkAdkg(MG(`#^7IYytAMp3);r;TNC0G;-y?#ed>oL-$Wj z2)XI=#y7Gswg7f^2C4s!0{b=}_M`kg|HbbC@FZjvlq5vV{ByJZjYMu?Y-D9?V+3Vr zXat18!GYN}z~nOxh)6-*pLl0n9~Efp3k4OBH#2{_dKLs+=j8SPma)dw|FfpRruNsp zkGs$d#}%OeW zngW0HT=4IUdp7y?!>9bgm;%pheFOWJw|;|v$J@NXzbj6B+Ks;#ES}=u3zyvNRegrH zw0wkFj>50F`gQSNZUW*?+x#`ijKY_|{rTfd;r;>gW61plRO63iPviLeq3i!B935MJ z!4HmUX8$*~diV(cUNHB9FZ-?E^#kl%?Dl^L{d*^v`sbAK=OWGc&AajUl>7xv&B?j0 z3A8dD!=HQq2a&*N@5tb`Wcc20h{1o2kN@{8cjkvm@b%^T4X!0IzB-eX8j=AhFg5() zK%mZ-`nn+RdiOWN`nd*tR(ExC1o4ag*Kq?VkdHkN;cBw58qPgV)WTUjE#9o(i4%Vq zopjrclq9digy&7_(}@hPMdJ3x9N#zJw?ZG(J+Jynofa$K*eBb-rGXH-vSq5Jw6a{& z5ZIp^5El)PS6II99!r%YB@jB@sORx!R*5{3?Hz-Zx)J^Q?keOz`Ch?bW;S%f=6nU{Ck{*(JG9_@I9g1q1pe^Q2z%H^HI+Q3#R(}8!ymZ3#p9iHYj!NVV00LARQsA^E z#FA7EYF^Tn1Hz8CzbzL4CsBVTP4CkFIrfezaF39!Rg(p=$grB8L}iI9Dbyo!laAXV z0$R|K=NOyG6I<%oCM{-*$R)+ltkhD4KSAxM=;!i;wOA7xP(VRdP)zF-?FX%`hC|FJ zcTLm1D9hA;1!%g{bR8L+1q`&V;q3&+&prM1IWq3zryHS6zLkd@|iWaGh zGIG&Ejf&4pnXyEp?4p)SLM1gKy%S_x6_Ooi2EC-YZngYCtdIkvG7|xZfP@jJW3rpZ z(k6%!jo0IkO-#uz(|~rj$ypoKBtk$PNLJ;@>l`pt`z?6dH-`7I=M>PP5?Kw5Q6@v- zrU&beOYz-we%AL<0( z17wP6EV@=px|R*jA$fY;DdO6H@vz}Pt@CBm!mXvWr__O$dPoTvSK{ZJ`mfkXvsh-_ zrK`^CsEZs9jD>%O=mdyvi-D_tU@* z^JAvZoZo+03OwF{}iBHGn88O;s2#&YRpxM03*#Dls`h4F|!PVldlj z?M`LD-wZ{0>~Rf}?M9E^%Wf;)5vt1$Va2mvTkL<4Rm8B#p>l;i%zt6dapQ(5OxvS7 z6%Qwzk1B#SPo`$ZbV-X4(GdE`b4_(fwxR9{Vc*m6W-ZVOj2ZjGXXt+I{*%e@^&ced zz6pDb2({huvh~(@8;yn*_Z=b9W%PTKn(`(rNhdtg^PO5_E~ik%tdI#}B|H>(qtzd_ z_gR0%{sZ0VAvf6tTY>35n_D4%o}`AdbJJDU_|dw{zR&3Oh~fq_cmzl26p+CHr|3A{ zLm1d=L5Eo5V^3|0ux@LPRURAjdj)Q>b4HquOxxJ>Htcd=j$cP7*fGsPkK%Zr?RPaI z5BbPg??L`o*DG)@w9%-GT*9xUQ?08lldyk~t#5Hg>B0s$NJFbr1hpfB%>(UfRdKn>Gj-IRe6MOA-3c3WqBdPx{VvuGh z&Y}4JGn5WCQBI0lW@Z0IF*vEf0~CMp-YAB3E*fhDjlw%V6laEi(;#t@VTEF{Dr^q~ zx8E;f=-prWFo3O&08hic#KWPMJN&4FF*inKh4hXu!F%!ETUiZ%c`R34XH@Q2TTFmH5|21{yF#QO5 z%WJ#$>!4~)(>BO>ub0NF(T3JZkes}uLfJ&gHuYC7yE;@K?E=jhr7`9Cy#F>r zYZ?rlQrwetT5T)aPL9<5_AUNfO}&UNH`f}64kV-5u6wSSz>w@lu-boa{4CUYCw&Vt zq$%tq&z9#xmZ;j|KwjT`(h9ib1GrY2@c2z?N&3lRs*N0foM@0)Mjq@vbiGT(^Va6QSiKkGk2D9-+c?Ba30-rRZYh=?_?nM?{XKMk4 zZMEHEqJlNg1@mNref)pX!5gTNC!N!EIv_(i1q&+FvuBzueW2y@pz+L$dfg;9GI$S; z{c8*0PL}uYEjKDq_@Ez#T#!dz@^t?n!_Ku4&0_a6T-)qj6!Pw@*XMMDN_WhU1Hzu_ zq0~%KAg{pIQ`l#p8EBUc;^dbeTb_$3kDCDs6!s~h0jXWr0JMM7l@{|GmnqxE>KFZ| zy)qjT^B7r~p63&(V?adPyOdii<8Q5HkuZZqP!J|v0tQ3F2A0Z;2ZBO-|WtE7EPil9C>xE(xrs z%;dY{;$_YUviE;g!l_hXgVkiS&gD_%JCY?L$BPU9-$Ag;dtCW0>k6X(WvD` zC28i^y_#wcw(G(_)KPzSy&;wA$YLc9OR~E&!j+vb;l+Q+U$JgzmiXvvuv;JUIBH#n zrzP7^TFFYGZvB=o?Us4Y4_xOYJ!|-*MWu z11J>sxwj!6m3)4ZJhpt?n?n6%s9+EyH{Mv@`W<{?D8=rdXnI>`_zI1P@bjqqk^^Vh zclxlad=r1`)E!L!%U+%IX(&jxnx4FwW;;{mV}9p&ovG>E{ppX&ZsMZysG<=;waHt*aSwEVdClMYS3q z2g1CvClFQ7>Zkw_@+X?1%cx<=UYK6#7p{h(R)=z#NGNkFq#<5U||WUs-8!SP0OH-7{cp;Q^SN&+oP8- zg*F^p?CFRaamBdW6+jO3l9ZfLoyXD!;0J#WRjNLJV2Zmk6Vqxd(-zYQ#Gx)YZOY&B zEZ_BXd2MuVJq@U$;Y#MuB-7{~7u(qDMdwX8!Qkfy?JpJs8B*IFEKg6ZlcyDVI&gW_ z5bGwNB1%P^?SQ=%d_*Ml+*>T}*%ZbTMIDm+ZN~Q^e0Lq7{>{Y08kf2$r8m|1xa5DU zYSZW<1KjjJ4IRtJ+wf^=)-fcPf^-@^1s+0n#kOaql>I}UqJYfdjT6V5*eumjY4q!) zMVsV8Z2uM+@*afec{g~F+N@lr z1GkWg2kyW|P+BazjLiEN1nU+r#WsIj5V?iO1ml6zOUiVA@`4)Ni_rFiXROr(7~@@T z0Bx0|Lf+2xrpMTSRvI}A3Qr1C;BEw=wz6#luWxeI zr99E3tqNj^qfY$`Qz2MenrOagw+LqDY}H*B`}$eg5E4I?TwyS$_3SZiK=OZP4Zfip z1YJJ+!2CPwC}O{SnuI?J+&SL!3KniFVScGOK853jej$9|#ej0lBquEcj0J zjdy*@LZmD7?L}@4!>ds}z+->$omfQVc0V>Rq60TvG-S?bQHh|(fX*o7f8&C$O!XgFlgkQ^1e996D!FieUX_fUtH_7eF`j?I)o6+ zl)E32=5LM#=wUbL@JqF_m4%k}60+4A^yo6X=kynfXaPBko0GjSm1uu$0^&ZW&Rog# zob=g&Rwh8{nsa~!w@U?c>aF0KId6xxadl6V>o>dnYG72<5#9GUocWK%TEayoBIM(- za*kgZ3mRe)^JXavSH^HpxaSVB>7st5ZNWzRZ{eyt-Y#}7L+Z9;cH@AAJSFnZxzdhB zICRXk4(ML`4qnWhsg-|vCJ}_cjgnH)bP+0;-Z6*x7r-dUgYgX8>rZ8LIv<;5D$_u)Q#a;x!EqM5<| z91yGAWF*AxgV{Tnw@pJlE%UttPu1Dy90j`%Of3x;ERo!=Id(C zV2R@1P-%KEAE3#2d;wtE+gq)78%~RI_{AT*qPMO^8;1SOQVEan$FaCk>?##;_$_cT z7+|@QHq*l#AP(!7;LlA9lJXB3+3@!q5eabYmln3Da_}%vGZVWv5y^)#|KJ3+Wz9Uu zr%fm^m&2qEK!kreVU}*FUxTWP`o;v1Tj~s(H|hVXMXCjoG+@;4rYRNa9W`?AHWZXx z*HtqjeP5J9@@jL@yV=asiipC|?jl&+21vwRr4Sm^*zo;aG zhh($%w3?W#W>H-~$xsO+2)(zC!S5obU(lq|!j~M#_#uBV1?va&uIAD?Suyw)a7xNr zH_`u!SaUr02+uqmS_kTaIIP{+fp%;QNZDsCL$rTxWRYEQHBY1&sh8fzu_Y$Z?L2F# z1Zz-;MjS-G_>k_1eT{)T8 z>||lIlWE2zw$4;e`$MHJuP>gcpp(OBF~Erj9N0`G!H$FDud_ChlER(q60b}fY5>f} zjcu_T(=`*i975Px9V!jl0!ws$Zm4p?h(+iX9Swg%T;t_}a_?^T4kU!z;S^|GyO`pd z1u14)MAiCjP{Z&8NQxH4PLqo=%k?!-1-nZDnaD~|*}2V_#Ryav<6>bEaUUT{>-Z)V zpw@W;rL`z`G!vTa?comIiFF0P)24SqXwTkAavTu|Ty( z46lE%)B&pTPo}SDobMb>mplioM27ia^in6`n2sY@lIGCRzUREwrV86+Pi@xtAWWKK z);9Qb8u@)}m%t=wnF1?}BKX}&=25_$kub9Ei|jjfOfqIiT;;U_N$;5Ng21>>Zm#(m zl$bWkqwj_Iu@`nzKv8|DBJ1kr`n!@aphr?4=(h4vi{14Qm)( zSKdsjuPoXtVw(H*Ht#StO3Kx?Z)8~9kU_*LZcN~UYmu9s#6;QdK6R+oyTQzc%o%@+ z(R+l@#rKICU+s}7Ycxg-A^u)y8H@2OJD1s9sg5(*ym_-SES!XTGnrPI{0C{-c14|4 z3yOs=mCSHz%>B&(@trx7RlGKjF_uC%ViNdY`A8p>KZ-P6}@7<@!VPA`qw0+Gkoh_^yJTHZq9E%G-#z zR^regRQZMgcNHm67$+Fb_CGf+8nCM=|IU~_3`d|z^CGZvjJ0)_k0;$HAQcv>k8yfh zNB7-(nY}q|Nya5U;^51f?CC$YsJFQ2(A}|WU5Q@{0I1)J5JHq`^^{1*sDytYxl{|b zTQ_b>H)prC>pQ&z5vu9mLUnQ6%pkl)5cAxoDE-QDksR_x!vOY>h!rrG%*w53@ClC^ zlv1qIK?avgh- z9-fY}BHl(Y`=j2n%{U~OSwmN!uZs}7T}}?~T_ureTq%koV|b?aXxil$_bCz++OxQH z!O#~HbMnC;zY_n`Pl2-A&}$ zU_Y!(1eY%^GHYg)SSRpGKIqAVfUSc+n|a&3=02L-{9>v+{`vdN-gmII()mCt8j3og`nV%_C8} zc_J{p*7>my>CA9bvMR%-ieX*NwyxP52ZX8S@kjCit0Y;7P+ZCJuT2u=Dzn_5yH76U zbaWQhe+8m;x2&waf;o^FZeI2?Fc6Lh*6vL?=Oe7M$@b?n`P>49z$mAdQ-ql1!I20K zE_5c2kTf+LeQg(`7{bw34#lXc`)(bPGNr8%M)lYaSF3=I&GtkJ(xwpwBY>Wavka6} zHD+VD{f=$U-_OY9b1VD7MwqM|0*RXSR-OcOf3EW^bClDl68WCXvXBB0$ypR5-N0l> zJfyw44mZ^dBY$!Bli(au6uQ|WH9gcM)%W9ev&uTNT2FM6>%x&g12ij)2Qg>)V;OQu9)N?}jY`apE^OaRKdY&7`F zv)fVM5_&-B0xU0jS;_E$e#DZYKdE?9e-Ai0qY3LTa`?CVo`Gxtzw2=$JAT}}hyXJV zZ+P%Qce)YwsFLsj4L{#!r!wQ#$~1ugT;xWGm@gb-1nE!1LUH3(+p-a?VK8_&{my`q zG?5d$9nD{yt>d{g#t$4^2>$}hlNb?J(-=In zgi6*hyV4BlVPmX6Jv~x_aOI<=gW_|h#6SmDe85IoZl}3^G{Qh)G9C`*fJ`l_tV-(xxYkRn-M|V`z(xd2hQ!PQMQ-}+?>}ZtKhEwyplVN4e*nv($0YxW zz12o)r&2WJ+7L0Pek3g%7Fxn+6cU3Z*rgVk_nGp3F!V1FMRo#ej-AG_4g_B|yFMwfNo zN~{^PsQOCm4Co24+5CC5z{B5>yh?nZMyCTDEoejzNHC6?f4K`>3LFz1{mU~-K|2{Q z@wX-?170$&2~y%0T#Ik`Fw{?mPrJMIC_P+$u6PNeQhf`Mu4bW+-3C{8e`kk89g_F^WI7Vbm)zC{HKf4w334Bev*e)NtWhoQt(6bCu=* zE{Da#0zrIee|D<{2YX-93Rltex3|@f3Z3y%|cTlNacP_&0O$VkrO z1z$jlf_q9Ti$x$0Ye3Yg4pcf{(%aDo#~mG> zxQ@84iXA5EiZo32!_Lz#o_gxR=z-Pq#Lodecm%}lf8(#|Ux}eY2|foZ&sRcC#(+(W zEIat=MQ_7hNsbN^mqIjE2Hbe0Ez@~;Bj~2YJZ+@iFwI>i;qy>HRmWD3{ux`5>V02c zTL^v6d2B88RFho>PR;mQNmqgvXB&bG^?iS}L|e(B03f{?+Xf>T^e%YHnLIgr(lj^K zq|EHpf8I;(9(FSZzlIb9GkG-0U`_gd!gC(+AS?_xD_sa>kyL^EV$1H$%SmhJ#@+!=VoqcnIs35~$FYu?AiLT?i*tmP}$m*wkQy?UiWiWQg!cdj< zx8PPh_l-QED1MXT*xD>&qfVxUtvs8#ac6uQ0>DdjRDx}Y( zhmrQ>%!EB0YECJ*d@pJg8aL=7`m-$fywO>$D^AFH;ux7GfzfjO<^K40Bt?s2!Z*?; zOAaiUP0-9<=~$?9fpdzR`*YBV*{=7sXryJ0vdwiGXQ6?gk`4F-hFL{QC=n6%Io;-x zf6P$oPAaKO=yU?TXjsX+be<+lGPeA$?c#Q0ixX+*wV%nGkZ!2iS8 zJp&5^a7hAvwr$(CzGvIEZQHhO+qP}nwz2>21~b6~Q+2C4x@lKu2fV8fsFXqpC0(Tt z5_O=LGr+}P``-+yqMPaN6=$znWiVKr;p5X5Xsn&K32b>iR-rEMM2K9>DwopCeSGgaWX|QDwIH!T`53L!Ec0@7tUg5%`!VoM{q0!VeFZee;X{GP@|Bup^=! z#+e64>5w#+Ff{`j0kD@#H3J(Nvi-S;O?h$oAY1!E@}e`qWfA>fKomulsF!~=0~Zg7 zo&1@q-)|W;tq$xku}GJtH3Kq#)c)2w(Nt;XQW*$3x1bIwjCQczrfZCX zf;vHLP{D;$u#Y#bx^|6|;Lnn0A4Q@2(b2#@63055fsWF91uWOV@i~aiH5lkm`~9Y_ zyqIza|L;H+<}{3^>ms)k-U$?-_^-Sx_=BAmrWbU{EkhaNrW8ZxmD8wy<<$pO61m8B z)rL{;JXEqoW;cq~22e0}5*cpAO1}!a@plw>{p+^5Z0+`|FMFUkoAAsas}=?k$2C~9 z%Zp`}k}NFq-63mPuA8}R7Dh08(Lo$CatX|1KoJnXkfABWZtniS6|SHJ#HN49VL z(FrD8T~-stt`}?cN2ya5_7#IF^YrbXI41f%XY7;kqSBPSYFVp)*R+YyOo~nM*?gKA z&H(zvIC6O;gc6N$?9Yo(d>rzc(CU|>SyqF9uG6Y=j5u?0JUzOa_=NO-u7Z@snxn(|og1v(b0-T6Y)mfKKw`Vh5 zuj(IGt*ZJyUBbI%EZ&|7rUY(i8j?{IY2IA!DPvA&*udwC4p~42&U~JM3o>`1q#If7 za@(z#azfAZ)_b6WY3B{}S+U-vkA;}Sp;9N>!}lHA#mvjiq4}>JdlapZsSRlByLs{O ztc9MZ2Z$DbwpS56Vr#^KyiN?B#Jxp*f5drF(8)8`fxs>e5Ve^h*As>j`gc(uEO*Qt zohdgOQfloo?JZMDu|L(-Eu6mKkW6)B$2n$1@ixt+gOr{ZGU0H^fupOTwwrrN{LX4= z-GB@h#%pU4U@8b|cAs+S%EI3$rA~;9SAHh0%q|&!4P&GJb-_UI&*>FF>jUuuPeZXU zfST0q;v~yk0VQE%@OZ$=#w98ac-5koZu~^fVDQY$OG@`qhPkgSy>FqNe;0?ze4*=K zpj{lPZYmpXRFA0Y!4Id)RNs?K)dNXke9lM=QZB>wa{8Ll>;AJdiZo|sfrF8`1k&#K zkk5R7)2(G)U$oD3EceZG%S^3tv!E}7q8my8yqGz{ad7Bg#4x}cwZtyO3Di$3JNp(r zWki)p*$J9r{(jqZ_rxV+@fkgCmZV_dHxch#6u{i0tO#MiQr`0h7Eo}*CrhN6t7E)V z9~{)xtsM=25<{H8EV2^t3HZKuB`eUyq?$c{%8~+uiH~lbr5(revYhxSI@`EnNMS8d z7R+kg{8=7uKz1@;mT3iZ?=~;gowqsg`ob1g94+{A#d6Aoh*Ft!nvPv*LU)x_bB}^i z8^Ah4lG4{F3b0bDoITWHLMfh-A@bS3Wk?8xqBF9HaH{D$?bzf#=@j|7c?K8^{tQ}w zK@<)89VYiY&|t#Slt(x>0}bqCA~n3>1CsXs_PMTuW4$I{Y|H6ok8Hz^40=N)IrT1J zK~x$tFa&lcxtp>u8>H4v(SM9)4P9CzN{cxBm`%a?$IcERjyxG=7N+q_*vmK#id0OY zI!}GIpB{vOSF#u93_;6r%`vUUawwsHVfkOFJ(3J4jA3NvRi2!ok*{9NsSLKo!i z1L)Af7*lNT$&RK#27!@vrzU{PF#5#XLf07PD93bOERG;pEt|hP%hVd)Q)H%kKBxDm zk3k~7NC}$mjv&}Dm*y!56NbblEEvw&5&cQnr?+=Zgm;SKzs|WrqA(elh z-ZL6?WetwPviOee{spf|xniGYBvj@ZCRHYTa7>do%Oah!N(tW~j5o|k0eZ)VZ7uJ=)H z^`X3VJQu^{+BZOpiW<;=&zGim_GO&ex(T9WzLd4iYhVn~quZidgT>?-uo63ru4CN< z1rj?jG50(^zJ-aFM1Ak{{@b#Xr7Oaq(L!xyi#vD;^CXk4cfTf7P0G2{<8G2CN@l6+~SmYJQM69kla|%r9TDSQZnJ-W18nPMH&7@4M>5TS**%Dg>z}QVo8VjI(H9@b zUb#Fyd{VIM@)Lek;+*fQfW*7m_s(m2`=CPPJe*HJ8buwtgNch zabG5Mwi|$dWOS*Swso2|wI$K@seW7l)^CWCL4)Hvez4R71t+YUGf4s5d^fEG_t=1s z!;x8ND=ZHgBA!#XJepfTzpq`p;PhZn(1l%k#em-N2g=9}Z2gs14Vv-$*_iI;`N2EK zUkWsDOU^nogdo|ZIvUZ5i)Z=&$O|Ny#yjAJF*p+A*KPyXUt#I zBoKaj11;~<9>qxmQ24D@^BLaDE_9lSPc*qXOwSpAl>Gq+^}uAHOOcl_Km!y#B)}SQ zd{z%I1nQV&i#ze4M8z<&Z!cr+MN--ykk(3g+r}^=J+dV|cRm1gmt=_kefW615BV3` z{U`uS;g^9x108=MK->WXz8#dYMWVTUlw=z`xoGmf+>&4C|Lc0qKPy?Q{{qh<{uT^O zvlfc-BHYHY%30duLT3dE&sxFr?tA+ z8&`Ew0tF;u0lQIw2KSdeYonb2VqQ#lC0-kqroBiWA2ELu5O4?>ZO6C}FIPt7y15l> zgOEx~2eD&DfLrJ3gN*K6V85%M0OLSrL(p7EzJ00F`^T@V!>8@UzNtMxa$U-PvGNxs znkA!nbB~Qyt1*e+bn}@EqrCA~B9HabAA4kF@*)6A(-r% z45LlX+3I_k?)=QtUH~$Qg zV})70Wz9aNDhaTNO&*gtKeI;XkOZ`hHNKy3MLT~6haPd_k)KbL)d6`swM>m6+!5C+ z1p&OE)&$*G{3qh=S2A^C-IkR;kT0;>dPd#Jps?J&LQ++#^fgh!3lq{io}clIwDbe3 zYMF2UV02Tq%E96$lXcND_~I5B`KRB&Z)RoP92lCXE^CotWdzJ-^AJcMRn<0NqBQ3o zYf5AN_osw>`n9tU-2uBaAlD?+onu1@?KSx9i8)~`pHaM!kYKqsA%)FR`5-ZuHbX(d zw~(LDkG&b+6jF1kW@G?dNg{~(-^s7fs2*93aDSX&=V0;?^WH@n=*t!?v(Z(C3oDoX zLIW5je?hGo!tS2$N@CM-A6YICZpGT4S@FgXc((1ceFeD zeDw9Rh6@=Pw1QkJL-_<6UQW{*u^6!DNNi8#v#4BGLlvl#-}*a{s8rG=_xh+uK{^=(9R~LHf|AJ&bt9nEoMX z6mnhAaDfpBF*NwdH8D#;-8F~5XZyY#Koi?=n|x1g{=({a11W#qf8JkkexM_)M+RPw zZ3b@q6no@fzh(OM>IlWxHZoPeh>f%?`43l!qT_knAe90(segh0^IJx*5P$LssE&9P z|I5MMho#M1;!Dwc$|JSp1@(`1+)m-9{LQI0Gf}L=VOZzMwRt|(6I&-XGSi{5(6k3r z*VOB0)j^<=0q;56zcGOq8@<)u&uxhTr=mGL&FIG%P9H=52QEncrPN=tPsCC z)ig2v#`tHZ@qckZ;ra-J5It3!^Ibj>LFIhgHz{0tC*|zvFAD!~r-~m#Did~M#+m?w ze5?C(^4HAY9uxdmjYcm01RG8>;zECUQ9UicNXD&tPYoi`53gT*e6?;m&hEjrPhg*# zm%o!?o$1!ymh@Eqh z$3#*$`TbRG2?b!HK0X|cupFN1Ri7^$BItQgoE8>_B2fw{HL?FYqP~1o#mGAEbXW7q z>PVd;4u3c1C0hr_gMmC zzh-CUCM1E>8Fff*WF}qS#+0S^hhhC6QpE-2)bT=?{>R0>06BbL@6b3 zU`x`|#Z(E)2nA*RYe|V;+PgTzgzpOqiEOYS!Yb{C-}N_3;7)JO}o zI5EtdngzF1V2G*N-zS2(nyk9zDNk&|oFQAGF%ay-bkRn%qXH)EhAUcu=h2!82ut(N zhgGFnv4dHipkh>E=d--N3w-(Sxp1Ndv0oe0LV^5=+Z*MBih*+fI}6|g5Uf2nyMOIT z7ax*=bCw4Tb4&54ZZ159 zj9vJgZW6!KikH_?026=~hQD@WtbaZ>a}&`d4`OL9x}-ZYkFwY75JWi~J4cU7pOeV` zEbX^CF9|9M9(7aJA(icPg23Wq-WNRqlcRm;UzR#sZ<8k|gfvC>nB&7)B6ghh<>p>*PIWhbX8v%kQk`Z-{Jn1qYEsrCZnVomk#;=^ zb`;g_Vu`hVi{$86kqe)g$?fmV*QM=;|L)M?UO=>48CJy4ZvdJKk|a!caKQ5&82s>NzDr5N1Lj5_@v z&+NqvEIRDWI)%3%G1|x2%X^V80@dTiiI|GC`?HpRCnvZTkl$CE@Ru1&0~jjo(#-p? zU<1j}6JdE71b?$+U)BrM!OVm19@{KJhdc)z{z2;s*VNu2RF_*z10(~qoC24EO9L-| zoVU%US=k#!eV}Mv*mgtraWS40W~t-}wW(sfI`)c4O~?~i7u4Z7+o<9;Sr{q^;Y_q=cTaNCR$r&N zoXfQl{NI-77a2(@A*EP>ce2Bg;uCJuWu2Ux1S(9>JbP;D&PlevtNj<`cxs%HG|IPBQtw{Qa7HG zV0i1o=WiNTj)p|>9N{2` zOV2mrWmunMH$g8l_QIcSbJz^^aW|D01q-~d_V)N6m}ae2E!uZn9W~dEw19N94|bTD zS~X7yN&#h??6~g{_&ypQ=?$lUsMl03RQMDD9-xEKVc{QQPuFY@{ENhKr|H$K8ycK1 zXNr6ieriAZIzE$nokh2hA)c&-mFk~Cw0}5%G7H}COup_L191%xS>3M|rZWs3)1(d+ zIz0kQQ+_d7(ZhvastOTzLqOe7R?MI+ML`Sk(A)QPggZcx?GW+!Z?xPQtT`sD|H~b(=Qx48{P|#L_ zXwz`vRbvY{ZK)qm3Cs6mvZZ%oSppI29d^C1H6?){PHwjL4JvFzQh%Nq1kCmz^S zQKO8+J27WddY{B5!^syz><`Cvr!Hgnt*ruMUs374=;HCIUF_z6Ed7*fWX)|6kfrL; zXd^GQBAQc@O&yn`X~uKJZ6eRNe`11)5zMkr^O-^m17bbM1><5w;?=%ZA2v zhmIq%T$nN-<(_`}O180-&1?F8!o+#oLrxhA7uc{nGt9+*?;EKOvJ|xu4xNd1SW3`Q z-wLXvHAAXn;)2hrO+b3+hb-u`gQG$L%7Gk5X=Hn--5lc|I!y8V%k#XWH~x1UZq~qP z1KcMnSV&OhnRuh%X*4cW82Zjh_+9={gE(*I-Xs%aHrAy>nx&g-a%JfJ*O8dmmDgGQDu^O92zRtd7>8eEobj$~~C8O~4?zYkG=9Lj3#3gV98Cxf_~PwyC@l26A^dt4)?qu!f?m-BbVj-j_( z$MfS%^RCq7B~L=tIbI-Whw-d__9@1a7-2nju6VSZpn1-$YTL8%DAvAMTU(yOO6aF- zYzYJF>PCq2_r>@khc&GqIBY19Bohle2w+8?=YT}d zz|OtvF^bdZ0tPQHe<+xGhYB-`7j39WD{Scr#^=-?6m2W5m(r=^MRrm2q0d*7>PqqS9jndQmig0QIj? z$n^!*3wO(;vr;=WV$J!We)|&XCR|z|eAMwP9pG*5 zBJj6jIp9gLm@P8zztvR^H2w-YQ?#mXnvvF7s9IVPJ9o0)DmI(4=gbR#t%op;In}5_mB)$yxDXgI7|2%_aDS6*aoYjm?zP%*n0_5r20D+gO@fayQrZo(tSjg&oAprJ zqMCRCgV4~lYrM*R;u)tDPFxgFhWd}=28WcFd7cz?7pd*p(<-ATC!F7;RiEr9I+)Sk zJblBUWj8XiL0p}GReUhR^0s$!a$8T2SMn>zQlSL+Re_dDJ`!s?619 z^Ml)vfp(YB5(!R$T6{aPjeQS?s;JtFz10Hco)D_xsBqePJB8yAp-;VaWE%l!)PMHW z&ahm@TPi>>;$0A!XkjBvlqjJb$p{A8b6Vi>``h2!1;j{yl%rp_0Vr-;qy$>;uv(@q z(1tFDp8PC!kLvW5{!-;p)lig#Me3d%rDb}NOob=W&{~vq$7nrtdNf)6697D=Ymw&w z+xhlqy#}8el>N?AwZ)r9G3(2H`H{INgD?o=5?#zQFx@D*tbs=G;-dH=D7<^zOL6}G z;44)fw?Y|zbhsWpl$wl0F)2O0Ei&(mSqV#<+oY}GsXq{1oe+=lX%5tZ+NR8*{_DTw z3Xjm;RQsxC;S)7&<<=%e$-|sgoWVk<{extbWehZ$4yX)v(TFwZ_Z9MVrB4ksjsNM? z-ySd}i@~CCqWT)bh_d)dLBbW_&7AOrq6^t|r|6P@ND70qBg(J|ej&v-0KPtvffM%~ zQD;gqPYRyX%e*tUkRIEu^P%WF>^`d3GLqzixAeZS;%JQZxoWqKRju4@cOX3OuDePB zeq=~%#5u-XJP-8IZEcM!HUgr5Y%apL8O|cO0G~+bc>L$7l}o8R`TUAZ{tD>fI?j&g zQqxQyvPlMEL2?c#tuG5k6$gj{0xvTB4%Y3wPcE&+aX}oHxK{%zf6T38(z_V(`^UNd zWVUOVuui;+agmtZ*;j~vQyU5j8jo5~DBSQT(qUbrptP9PlyoNS=Z&l0J}OfnpgWSCrB z*F#wl8J#PtkCkf9mtj}~AAhV80#DEM$M{G@*LerTfY1&-VH+3yUlp(>bnMuRxsUt% z!!5Gqg`_r*1gm{(@Yy9IWO2vKGJNVg|6H#vy;_z_-F%krOCHY@~SAif9i-Q!q4`~|+ zWxs2dn@o=aEsue?ZBu{_dhpvl-Jo}2d?Z}*YEtltehXU|#DAU6Uu9Z_FEsFdp=DrL z2thiS0j1HiI zO9QYmk7i8O?kYRh4xhz_R!C;%{j*6=x-I$9m5JLz=XV-_`uodUGK8_Iz(TWO?PzWq zK{cn~imjtGFCg+Bc}M>ki;cJgn{NUc{3Ee@CDJwNT*uV_>RD%tn9`S=S_2(_`(J*_ zAn)=sP(&w^GIvO24a%1ScQP5F7gR)=DDLwX0zeae?A_Pel|toiX}o_SJq z@{Lafbzf*r?p1*F469^#Tl-w#+rC8>!PcXK{(~^{jjbbLk14>cV-K^4Cj%H>BEHrFtg> zo-yjLfzmn0y{B`iS2I3-jLGz2Kk1Q@`UiDaOayh*MQfk*l+1JU_ghbww_5`ke`Uo> zitz0t@SsoSSa}-L=GJ={cX?aS@kF60?b4`Ql$2><0eRjY7fol+{`E=7H3m55x151= z^_`OBzdkw^c}4V~?jAZb6i`Ch?}V{fv+0)~c>xwicB0~xM{Nko3T%yR!yy>UQVi># zMKr1+9qS|cT_u}HQpi#W90ITEe}E_Y?RU)-qcKvuA6$IDZluT%eRZFwLcN)n>+~O+ zQ#1k+1liq?14#_(6xE@c8hFo7gPDxt&zP}o1UHO%FyjadfX#W!@eELyxpQ^VoXass zqccZ$4gEsgU){<=-2g2}@_fT1ZZvg$q`#3sV^Eg!(}Sgfb`23wfcLg+fBNpDP?#Xa zP2h!(8y3zi$lQ@I=20!^I0kJi?h_6R3!uj>ouf#O^4SEim#!M#&H#$M-f01{S~(A2 zrmRVwn;HMBzp+e4w2o&4xssBbkZaAKcy?Q6>^S-c1Y0=AMrb4Dz3yzu-guU`7J~D1 z>tm_Q=A4bB@)ptzK5cPUe>@)dG~Xu#nrpS}Mhe%uu#3x-W7&AqZ%vQmh4$3x9Cb}( z197A2W1S8)QsW{dW;17)H)7UTEF0s!CLZIPdpEl*L?_&SjgMYr@J^7a#ZZBL20DX( zJAjgL@$%BW$&3--#s;ob%DgQT(;0{#SeVG;(s1>*`e&Gut|L9xf0NLRk0|=oAJs%s z!_Ih5nP#Q+0+A!S8H{-~u|?}4N&#l9T+dUbKAa40=%)MqtgJ34$q#BeFXKXv4!wq3 z0ghd-$VEBU)JSg-AIqd_l3ZSoqS$L$P=M9OA3@_fn_*ry+?mTSc_&hOmU*KU2LBj4 z@Q0F%E`iml92a6Ee=TEbcct$;+49lrz~C$VTTY(1RrJK(6nH53E5{36mH2$EJz>&} zg(o>+gW_Z`-)pd84tQ=&8Nm)edXv%Qh8_Po;Y#{!G-*~&YAFm_-r#hUQOljryWg;4 zS-(0mbV&8wN-03RZEN?3or>R1cH4#+d4}JOLLBb;Rwve#hRwS#hsVMb_ey{X1uReYGFm#wKxwQnUmJ3F$uj8Z8HHz06o_HQN{=n#(#l0PC@d52>ZyGY5z}A85_01Zw*Q zEZFf0a`=%=e=krl7;(fK_$?i$o50y8x?^)mxXNgt1LUwgs7t%NS}r8(Ges5)QQQUu ztSum~^}yq|&oPLOY;j$OXp{gw-t^nMivdL?b;LuFVSA9Ch=My1RpE*Gh-RPm#O`jD z->>PYMNj=FreW%E)_-8Ddb!Na(9Eu11u;Xz%+}O>e;r9FLs(mcDrpY^A