# Патворена МИДИ-клавијатура

## Садржај:

- Увод
- Укратко...
  - Миди начела
  - Мапе дирки и дефиниције инструмената
  - МИДИ-везе и програмски МИДИ-проводници
- Често постављана питања (ЧПП)
- Преузимање програма
- Инсталација програма из изворног кôда програма
  - Системски захтеви
  - ... за виндоуз кориснике
  - ... за мек ос-икс кориснике
  - За програмске пакере и напредније кориснике
- Захвалнице

## Увод

Програм Патворена МИДИ-клавијатура, или краће, ПМК, је програмски сваралац и пријемник МИДИ-догађаја. Сам програм не ствара било какав звук, већ се користи као побуђивач неког од МИДИ-синтисајзера (било стварних или програмских, унутрашњих или спољашњих). За свирање, у овом програму можете да користите рачунарске тастатуру или миш, или екране осетљиве на додир. ПМК можете да користите и за пријем и приказивање МИДИ-нота које свира неки други инструмент или МИДИ-свирач. Да би сте то омогућили повежите МИДИ-излазни порт другог програма или инструмента на МИДИ-улазни порт програма ПМК.

ПМК проверено ради на ГНУ/Линукс, виндоуз и мек ос-икс рачунарским системима. Можда можете да га изградите и на другим системима, а ако то и урадите, пошаљите писмо аутору преко система е-поште.

У стварању програма, аутор је био инспирисан радом Такашија Ивеја, „Патворена клавијатура“ (енг. „The Virtual Keyboard“ — vkeybd, Takashi Iway), чаробним ‘комадићем’ софтвера који нас је служио годинама. Хвала Такаши!

ПМК је изграђен помоћу КјуТ програмских библиотека издања 5.х одличних особина и ефикасности и програма Драмстик-Рт који омогућава извођење улазно-излазних МИДИ-рутина. Обоје су слободни и платформски независни програми, доступни за ГНУ/Линукс, виндоуз и мек ос-икс оперативне системе.

Алфанумеричко мапирање тастатуре се може извести у графичком окружењу програма, а подешавања се чувају у ИксМЛ датотекама („.xml“ датотеке). Нека мапирања (за шпански, немачки и француски) распореда тастатура приложена уз програм су преведена из оних коришћених у програму „Патворена клавијатура“.

ПМК може да шаље поруке о промени програма и контролера МИДИ-синтисајзеру. Дефиниције за различите стандарде и уређаје су омогућене преко датотека дефиниција инструмената („.ins“ датотеке). Ову врсту датотека је осмислило предузеће Кејквоук, а користи се и у програмима Кју-Трактор, ТСЕ3 и Сонар.

Овај програм је у раном, развојном стадијуму. Погледајте „TODO“ датотеку за додатне информације. Имате сву слободу да се јавите аутору програма и поставите му питање везано за ПМК програм, да пријавите уочене грешке у раду са програмом, као и да затражите увођење нових функционалности и сл. За ову намену, можете користити систем праћења развоја програма на Сорсфорџ страницама програма.

Ауторска права: 2008-2016. — Педро Лопез Кабанилас <plcl НА users.sourceforge.net> и сарадници

Патворена МИДИ-клавијатура је слободан софтвер лиценциран под условима ГНУ Опште Јавне Лиценце издања 3.

## Укратко...

### МИДИ начела

Израз МИДИ (енг. „MIDI“) је скраћеница од енг. „Musical Instrument Digital Interface“ (дигитално сучеље музичких инструмената). МИДИ је прерастао у индустријски стандард за повезивање музичких инструмената, и друге МИДИ-опреме. То је ‘језик’ (протокол) помоћу којег могу да разговарају инструменти међусобно, или са другим електронским уређајима (синтисајзери, програмски синтисајзери и друго). Музички инструменти опремљени МИДИ-везом најчешће поседују два ДИН прикључка означених са „MIDI IN“ и „MIDI OUT“. Може се наћи у употреби и трећи прикључак, означен као „MIDI THRU“ (МИДИ-превоз), који омогућава да се било који МИДИ-догађај примљен на улазу пренесе на излаз у неизмењеном облику. За повезивање једног МИДИ-инструмента (уређаја...) на други користе се МИДИ-провдници (кабло). Повезивање се обавља тако што се МИДИ-излаз уређаја који шаље поруке спаја са МИДИ-улазом уређаја који ће те поруке примати. На интернету се може пронаћи доста упутстава и података на ову тему, а ми Вам препоручујемо интернет адресу са насловом „What is MIDI?“ (Шта је то МИДИ?)

За рачунаре као и за сл. уређаје, одавно постоје физички МИДИ-интерфејси који омогућавају МИДИ-улазе и МИДИ-излазе за повезивање рачунара са спољним МИДИ-инструментима и уређајима. Без обзира да ли поседујете на рачунару ове физичке МИДИ-интерфејсе, рачунар се може користити и за покретање и употребу МИДИ-софтвера (програма), а један такав пример је и наш програм ПМК. Он обезбеђује програмске МИДИ-улазе и МИДИ-излазе (погледајте у менију програма Уреди->МИДИ-везе), а који се, као што можда претпостављате, повезују патвореним (нестварним, виртуелним), програмерским МИДИ-проводницима на МИДИ-улазе или МИДИ-излазе других МИДИ-програма или МИДИ-уређаја спојених на физичке МИДИ-улазе или МИДИ-излазе (о овоме ћемо детаљније говорити касније). Уобичајено, МИДИ-излаз ПМК програма ћете повезивати на МИДИ-улаз неког синтисајзера, а он ће из примљених порука стварати звук. Други, чест пример, је повезивање са МИДИ-монитором, који преводи МИДИ-догађаје у читљив текст. Ово може да помогне у бољем разумевању МИДИ-протокола. Ако користите ГНУ/Линукс оперативни систем, препоручујемо да испробате програме КМидимон или ГМиди-монитор, а на виндоуз систему испробајте МидиОИкс програм.

Програм ПМК не може сам да ствара звук, већ шаље МИДИ-поруке до неког МИДИ-синтисајзера који ствара (генерише) звук који чујемо. Од квалитета тих синтисајзера (и квалитета употребљених звучних фонтова у њима) зависи и квалитет звука који чујемо. Препоручујемо Вам Флуид-синт програмски синтисајзер, а као његово графичко сучеље програм Кју-синт (већ локализован за српски језик). На виндоуз системима можете да употребите и уграђени мајкрософтов „ГС вејвтејбл св-синт“, а на мек ос-икс системима поменути Флуид-синт. У сваком случају, спољашњи стварни МИДИ-синтисајзер је најбоље решење.

### Мапе дирки и дефиниције инструмената

ПМК може да се користи и за промену звука МИДИ-синтисајзера али само онда када му учините доступне дефиниције за звукове синтисајзера. Ове дефиниције су обичне текстуалне датотеке са наставком „.ins“ у називу датотеке. Оне су једноставног облика, а њихов садржај можете прегледавати или уређивати у било ком уреднику обичних тестуалних датотека. Ове дефиниције инструмената користе и други програми, као нпр. Кју-Трактор.

Када по први пут покренете ПМК, ваљало би да припремите програм за употребу. Да би сте то урадили, најпре у менију програма покрените „Уреди->Поставке“. Када се прикаже прозорче поставки, под „Датотека инструмента“, кликом на „Учитај...“ одаберите дефиниције инструмента, а затим , под „Инструмент“, из падајуће листе одаберите одговарајући назив инструмента за претходно одабране дефиниције инструмента. Једна датотека са дефиницијама инструмента („gmgsxg.ins“) долази уз сам програм ПМК и смештена је у његовом директоријуму са подацима (најчешће у директоријуму „/usr/share/vmpk“ на ГНУ/Линукс системима, или, у директоријуму „C:\Program Files\VMPK“ на виндоуз системима). Ова датотека садржи дефиниције инструмента за Џенерал МИДИ, Роланд ГС и Јамаха ИксГ стандарде. Додатне дефиниције инструмената можете пронаћи и на кејквоук ФТП послужитељу.

ПМК (0.2.5 и новија издања) омогућава увоз датотека звучних фонтова („.sf2“ или „.dls“ врсте датотека) као дефиниција инструмената, одабиром ставке у изборнику „Датотека->Увези звучни фонт...“

Измена мапирања дирки програма остварена је уграђеним „Уредником мапа дирки“ (у изборнику погледајте „Уреди->Мапе дирки“). Подразумевана мапа дирки (две и по октаве) је она која се користи за алфанумерички распоред тастатуре (QWERTY), а доступне су и друге датотеке са мапама дирки за ПМК у његовом директоријуму са подацима. Оне су прилагођене другим међународним распоредима за рачунарске тастатуре. Ако већ нису, ускоро ће бити доступне мапе дирки и за познате јуникод распореде српске тастатуре. У „Уреднику мапа дирки“ можете створити и сопствене мапе дирки ако то желите, а које можете сачувати или учитавати по потреби (ИксМЛ врста датотека). Последња употребљена мапа дирки пре затварања програма ће се користити и при поновном покретању програма. Али не само мапа дирки, већ и сва друга подешавања у програму.

### МИДИ-везе и патворени МИДИ-проводници

За повезивање стварних МИДИ-уређаја неопходни су и стварни, физички проводници. С друге стране, рачунарски МИДИ-програми се повезују патвореним, програмским проводницима. Опет, као што можете и претпоставити, за ову намену се користе посебни програми.

На ГНУ/Линукс систему, имате програм АЛСА секвенцер који омогућава повезивање патвореним МИДИ-проводницима. При покретању програма МИДИ-портови се динамички стварају па их може при сваком новом покретању програма бити различит број, а повезивање се обавља преко аконект (aconnect) програма. Поред овог програма који се покреће из терминала (конзола), постоје бројни програми за рад у графичком окружењу, а неки од њих су Кју-Џек-контрол (QJackCtl), Печејџ (Patchage). Већина програма ове намене се користи за контролу и управљање Џек и АЛСА звучним посредницима. Поред ових, МИДИ-веза, ови програми омогућавају и повезивање разних аудио-програма преко патворених аудио-проводника.

Код виндоуз система можете користити програме Миди-јоук, Мејпл, Лупби1 или Сонијев патворени МИДИ-рутер, а на мек ос-икс системима за повезивање патвореним МИДИ-проводницима може да се употреби и програм МИДИ Печ-беј.

## Често постављана питања

### Како да видим 88 дирки?

Од издања ПМК-0.6.0, у поставкама програма можете да подесите приказ од 1 до 121 дирке, као и почетну ноту.

### Зашто нема звука?

ПМК не може сам да ствара звук, већ шаље МИДИ-поруке до неког синтисајзера који ствара звук на основу инструкција из МИДИ-порука. Проверите да ли је покренут неки од синтисајзера. Такође, проверите да ли сте повезали МИДИ-излаз програма на МИДИ-улаз одговарајућег синтисајзера. Уколико користите посебне распореде тастатуре на систему, покушајте да учитате одговарајуће мапе дирки за тај распоред, или користите изворне мапе дирки. Ако и даље нема звука, прочитајте доступну документацију за програм још једном.

### Неке дирке су нечујне?

Одабиром МИДИ-канала број 10 (по МИДИ-стандарду, канал резервисан за „Ударачке инструменте“) на стандардном МИДИ-синтисајзеру, омогућено је свирање преко многих али не свих тастера-дирки. Ово је присутно и код МИДИ-канала за мелодичне инструменте (изузев канала 10), јер се тонови различитих музичких инструмената налазе у различитом звучном (чујном) опсегу фреквенција. Ово је познато у музици као звучни опсег или Теситура.

### Назив МИДИ-програма (patch names) не одговара стварном звуку инструмента?

Неопходно је да учитате одговарајућу „.ins“ датотеку са дефиницијама инструмената, а која мора да у потпуности одговара текућим звучним сетовима или звучним фонтовима у синтисајзеру. Укључена „gmgsxg.ins“ датотека садржи дефиниције инструмента само за инструменте одређене Џенерал МИДИ, Роланд ГС и Јамаха ИксГ стандардима. Уколико звучни сетови или звучни фонтови МИДИ-синтисајзера не одговарају у потпуности овој датотеци, неопходно је учитати другу, одговарајућу, „.ins“ датотеку са дефиницијама инструмената. Уколико је тренутно немате можете је и сами створити.

### Синтакса „.ins“ датотеке са дефиницијама инструмената?

Једно од објашњења ове врсте датотека можете погледати на страницама ТСЕ3 програма.

### Могу ли да се прекодирају дефиниције инструмената из „vkeybd“ програма у „.ins“ датотеке?

Могу. За ову намену, можете да користите програмску скрипту „txt2ins.awk“, а уколико имате инсталиран и „vkeybd“ програм, можете да користите његову алатку „sftovkb“ за стварање „.ins“ датотеке из било које „.sf2“ датотеке звучног фонта. У ПМК програму је доступна опција за увоз назива инструмената из „.sf2“ или „.dls“ датотека.

    $ sftovkb ИМЕ_ДАТОТЕКЕ.sf2 | sort -n -k1,1 -k2,2 > ИМЕ_ДАТОТЕКЕ.txt
    $ awk -f txt2ins.awk ИМЕ_ДАТОТЕКЕ.txt > ИМЕ_ДАТОТЕКЕ.ins

Програмску скрипту „txt2ins.awk“ која долази уз ПМК програм, можете пронаћи у његовом директоријуму са подацима.

## Преузимање

За преузимање су доступне датотеке са изворним кôдом и инсталациони пакети за виндоуз и мек ос-икс системе преко Сорсфорџ страница пројекта.

Доступни су и инсталациони пакети за неке од ГНУ/Линукс дистрибуција:

- ОпенСУСЕ
- Џенту
- Арч линукс
- Дебијан ГНУ/Линукс (старије издање)
- Убунту (старије издање)
- Федора (старије издање)

## Инсталација помоћу изворног кôда програма

Преузмите архиву са изворним кôдом програма са Сорсфорџ страница пројекта. Распакујте архиву изворног кôда у Ваш лични директоријум. Ако већ нисте у емулатору терминала, покрените га и идите у директоријум где сте распаковали архиву изворног кôда.

Следи пример са ГНУ/Линукс система (неопходно је најпре инсталирати одговарајуће развојне библиотеке).

Као обичан корисник, куцајте у емулатору терминала:

    $ cd vmpk-x.y.z

За припрему превођења и инсталације програма можете користити програме Ц-мејк (CMake) или Кју-мејк (Qmake). Кју-мејк се не препоручује осим уколико желите да га испробате и побољшате његов рад. Дакле, препоручујемо употребу Ц-мејк програма.

    $ cmake .
    или
    $ ccmake .
    или
    $ qmake

После ове радње, следи превођење програма:

    $ make

Уколико је превођење програма било успешно, можете га инсталирати куцајући у емулатору терминала:

    $ su
    $ make install

Уколико користите судо систем за добијање администраторских дозвола:

    $ sudo make install

Уколико не можете добити администраторске дозволе за инсталацију, погледајте мало ниже употребу „-DCMAKE_INSTALL_PREFIX“ параметра за програм Ц-мејк.

### Захтеви

Да би сте превели ПМК програм и створили његове инсталационе пакете потребне су вам КјуТ библиотеке издања 5.1 или новијег. Инсталирајте развојне КјуТ библиотеке на вашем систему („*-devel package“), или преузмите цео „КјуТ пакет — издање отвореног изворног кôда“ са адресе qt-project.org/downloads.

За све подржане системе неопходан је и програм Драмстик-Рт. Он користи АЛСА секвенцер на ГНУ/Линукс системима, ВинММ на виндоуз системима и КореМИДИ на мек ос-икс системима. Ово су и природни МИДИ-системи за ове подржане платформе.

Примрема за превођење програма је заснована на Ц-мејк програму.

За само превођење, потребан вам је и ГЦЦ Ц++ преводилац (На виндоуз системима можете користити МинГВ).

Опционо, за стварање инсталационог пакета на виндоуз системима, потребан је програм НСИС.

### За виндоуз кориснике

Инсталација помоћу изворног кôда програма на виндоуз систему подразумева преузимање архива изворног кôда („.bz2“ или „.gz“ датотеке) и њихово распакивање програмом који подржава ове врсте датотека, као што је, нпр. „7-зип“ програм.

За подешавање изворног кôда неопходан је или Кју-мејк (из КјуТ5 програма) или Ц-мејк, а морате подесити и „PATH“ променљиву окружења тако да укључује путање до извршних датотека програма из пакета КјуТ, МинГВ и Ц-мејк. Програм Ц-мејк-ГУИ („CMake-GUI“) је графичко издање програма Ц-мејк за виндоуз системе.

Уколико Вам је неопходан и синтисајзер, погледајте Виртуал МИДИ-синт, или Флуид-синт.

### За мек ос-икс кориснике

Већ спремљен за употребу, програм ПМК (са укљученим КјуТ5 извршним библиотекама) се може преузети са Сорсфорџ страница пројекта. За инсталацију помоћу изворног кôда програма неопходни су Ц-мејк или Кју-мејк, а они ће обезбедити стварање програмског пакета који употребљава системске библиотеке (динамичко повезивање). Може се користити КјуТ5 са адресе „qt-project.org“ или пакет који обезбеђује Хоумбрју пројекат.

Систем за припрему, превођење и инсталацију је подешен за стварање тзв. универзалног извршног програма (икс86+ппс) у програмски пакет. За ову радњу су неопходни, како Еплови развојни алати и програми, тако и КјуТ5 библиотеке.

За превођење уз употребу „Makefiles“ створених Кју-мејк програмом, урадите:

    $ qmake vmpk.pro -spec macx-g++
    $ make
    ... и опционо:
    $ macdeployqt build/vmpk.app

За превођење уз употребу „Makefiles“ створених Ц-мејк програмом, урадите:

    $ cmake -G "Unix Makefiles" .
    $ make

За стварање „Xcode“ датотека пројекта, урадите:

    $ qmake vmpk.pro -spec macx-xcode
    ... или:
    $ cmake -G Xcode .

Уколико Вам је неопходан и синтисајзер, погледајте Флуид-синт, МИДИ Печ-беј...

### Програмски пакери и напредни корисници

При припреми за превођење и код самог превођења можете да користите и нека прилагођења. Постоје два начина да то урадите, а први је употреба преддефинисаних типова за изградњу програма.

    $ cmake . -DCMAKE_BUILD_TYPE=Release

Ц-мејков „Release“ тип ће користити параметре за преводилац: „-O3 -DNDEBUG“. Други преддефинисани типови при изградњи су „Debug“, „RelWithDebInfo“, и „MinSizeRel“.

Други начин је да самостално изаберете параметре за преводиоца.

    $ export CXXFLAGS="-O2 -march=native -mtune=native -DNDEBUG"
    $ cmake .

Не заборавите да у примеру изнад прилагодите „CXXFLAGS“ параметре вашем систему.

Да би сте инсталирали програм на произвољно место (подразумевано је у „/usr/local“), можете користити следећу опцију за Ц-мејк:

    $ cmake . -DCMAKE_INSTALL_PREFIX=/usr

## Захвалнице

У стварању овог програма, поред поменутих, коришћени су и следећи слободни пројекти:

- from Кју-Трактор — Руи Нуно Капела
  Класе података дефиниције инструмената
- Икона и лого — Тереза Кнот

Све најбоље. Хвала вам!