| 1 | {{{#!html |
| 2 | <h1 style="text-align: center; color: #f036db; margin: 0"> |
| 3 | Креирање на песната |
| 4 | </h1> |
| 5 | <hr style="margin: 0"> |
| 6 | }}} |
| 7 | |
| 8 | Откога ја имаме песната транскрибирана и имаме селекција на сите "инструменти", следно е да ја составиме самата песна во Sonic Pi. |
| 9 | |
| 10 | {{{#!html |
| 11 | <h1 style="text-align: center; color: #f036db; margin: 0"> |
| 12 | Основа на песната |
| 13 | </h1> |
| 14 | <hr style="margin: 0"> |
| 15 | }}} |
| 16 | |
| 17 | Првично, во Sonic Pi, сетираме кој BPM ќе го користиме со **use_bpm**, заедно со 2 cues (**set**,**get**), кои во Sonic Pi може да ги разбериме како boolean променливи, кои ќе ни помогнат со преградување на одредени делови. |
| 18 | |
| 19 | IMG1 |
| 20 | [[Image(nes-channels.png)]] |
| 21 | |
| 22 | {{{#!html |
| 23 | <h1 style="text-align: center; color: #f036db; margin: 0"> |
| 24 | Инструменти и секции |
| 25 | </h1> |
| 26 | }}} |
| 27 | |
| 28 | {{{#!html |
| 29 | <h3 style="text-align: left; color: #332269; margin: 0"> |
| 30 | Дефинирање на инструментите |
| 31 | </h3> |
| 32 | <hr style="margin: 0"> |
| 33 | }}} |
| 34 | |
| 35 | Инструментите ги составуваме со помош на **def**, што работи слично како function во повеќето програмски јазици, односно ни овозможува на дефинираме кои ноти да се отсвират, за колку долго, и притоа да се повика тој инструмент во "main" функцијата. Исто така ако исти ноти се отсвируваат секој bars, користиме **loop**. |
| 36 | |
| 37 | Пример: |
| 38 | |
| 39 | IMG2 |
| 40 | |
| 41 | {{{#!html |
| 42 | <h3 style="text-align: left; color: #332269; margin: 0"> |
| 43 | Преградување |
| 44 | </h3> |
| 45 | <hr style="margin: 0"> |
| 46 | }}} |
| 47 | |
| 48 | Во песната на почетокот, секој инструмент отсвирува еден по еден после секој bar, што ни дава предизвик да го креираме тоа без пишување дополнителен код за секој инструмент. За таа цел користиме **cues** со (set,get) и **if**. |
| 49 | |
| 50 | Во овај случај, на почетокот на песната правиме **set** на промелнива intro: true; со која притоа во дефиницијата на Section A, ставаме **if** на **get:intro** кое проверува и ако е true, со користење на **at** отсвирува инструментот на даден **beat**. |
| 51 | |
| 52 | IMG3 |
| 53 | |
| 54 | Другото преградување кое го има песната е целосната пауза на Section A пред да почне Section B, пак за тоа користиме **cues**. |
| 55 | |
| 56 | {{{#!html |
| 57 | <h3 style="text-align: left; color: #332269; margin: 0"> |
| 58 | Секции |
| 59 | </h3> |
| 60 | <hr style="margin: 0"> |
| 61 | }}} |
| 62 | |
| 63 | Песната во суштина има 2 секции: |
| 64 | |
| 65 | - **Intro**/**Verses** (Section A) |
| 66 | - **Chorus** (Section B) |
| 67 | |
| 68 | Дополнително имаме и **Section A Extended**, во кој е направен вид на fade out после паузата на Section A, за да не звучи грубо стопирањето на звукот. |
| 69 | |
| 70 | {{{#!html |
| 71 | <h3 style="text-align: left; color: #332269; margin: 0"> |
| 72 | "Main" Функција |
| 73 | </h3> |
| 74 | <hr style="margin: 0"> |
| 75 | }}} |
| 76 | |
| 77 | После дефинирањето на инструментите и секциите, останува уште да се приредуваат и да се сетират потребните cues, при што добиваме финалната песна во Sonic Pi. |
| 78 | |
| 79 | IMG5 |