ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π½Π° Π½ΠΎΠΊΠΈΠ° ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΠΎΡ‚Π°ΠΌΠΈ

Π‘Π°ΠΉΡ‚: Benny Benassi: Satisfaction
38*0878**0930994*440390878**093*04030403039078**0930994*440390878**093*040304030
Π’Π΅ΠΌΠΏ 125 Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ

ДискотСка Авария: Новогодняя
2*0281#7**1*#239281#06**0499#78028*19#58**#69#7819*#
Π’Π΅ΠΌΠΏ 125.

Β«ΠœΡƒΡ€ΠΊΠ°Β»
68#6#96886#7969#58#49#4884#4929#0828*#29#2882#4929#2882#4990
948#42#028492#092#1#7**6#1*#79**0868#6#1*#7**6#59#4884#299#0
Π’Π΅ΠΌΠΏ 125 Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ

Queen: The Show Must Go On
6865#6906865#59#48#49#086865#69058#6719*#28799**08818*#2879**0781*#21#2321#7**7864999#
Π’Π΅ΠΌΠΏ 125.

Depeche Mode: Das model
58199*088288#21290868**#590858199*088288#21290868**#590
8299*#2088818886999**#08881888*290818291821999
Π’Π΅ΠΌΠΏ 140.

«Мобила» ΠΈΠ· ΠΊ-Ρ„ Π‘ΡƒΠΌΠ΅Ρ€
38*590958390968565656567909
Π’Π΅ΠΌΠΏ 140.

Π’Π΅ΠΌΠ° ΠΈΠ· ΠΊ/Ρ„. Β«Π‘Ρ€ΠΈΠ³Π°Π΄Π°Β»
588#2*#1#329#28#7**1*#2#3928#5999**#5888#2*#1#3299#188#7**69#784999#5888#2*#1#329#28#7
**1*#2#3928#499**#08858#68#719*#78**599#088588#76#5#49#599#
Π’Π΅ΠΌΠΏ 90

Π’Π’ «Π’Ссна»
688#1*199#28#18#1#196**#44#29*#4828#2#19#19688**#1*199#28#18#1#196**#44#29*#28#1#16**#6
Π’Π΅ΠΌΠΏ 112

Агата ΠšΡ€ΠΈΡΡ‚ΠΈ Β«ΠžΠΏΠΈΡƒΠΌ для Π½ΠΈΠΊΠΎΠ³ΠΎΒ»
58*29*#287**59085829*#287**590858555#545972*058**29*#287**59085829*#287**59058555#5459908
Π’Π΅ΠΌΠΏ 100

Вирус «вСсна»
2*68**#49*28#212968**#29*#2816**#4968#1*22699#**
Π’Π΅ΠΌΠΏ 120

Π“Π΅Π½Π΅Ρ€Π°Π»Ρ‹ пСсчаных ΠΊΠ°Ρ€ΡŒΠ΅Ρ€ΠΎΠ²
245654329684859994886584999388548399928845654329219688218699958816869992884565432968 485999488654354394
Π’Π΅ΠΌΠΏ 180

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

МСлодии для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Nokia. ΠšΠ°Ρ‚ΡΡ‚ всСм модСлям, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ «Π‘ΠΈΠ½Ρ‚Π΅Π·Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ». НуТно всСго лишь Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ввСсти Π² синтСзаторС Π½ΠΈΠΆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠ΅ΠΉ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

Бписок ΠΌΠ°Π». Π‘ΠΊΠΎΡ€ΠΎ, благодаря Π’Π°ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΠΠœΠΠžΠ“Πž большС! (см. Π²Π½ΠΈΠ·Ρƒ страницы)

Benny Benassi: Satisfaction
38*0878**0930994*440390878**093*04030403039078**0930994*440390878**093*040304030
Π’Π΅ΠΌΠΏ 125 Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ

ДискотСка Авария: Новогодняя
2*0281#7**1*#239281#06**0499#78028*19#58**#69#7819*#
Π’Π΅ΠΌΠΏ 125.

Β«ΠœΡƒΡ€ΠΊΠ°Β»
68#6#96886#7969#58#49#4884#4929#0828*#29#2882#4929#2882#4990
948#42#028492#092#1#7**6#1*#79**0868#6#1*#7**6#59#4884#299#0
Π’Π΅ΠΌΠΏ 125 Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ

Queen: The Show Must Go On
6865#6906865#59#48#49#086865#69058#6719*#28799**08818*#2879**0781*#21#2321#7**7864999#
Π’Π΅ΠΌΠΏ 125.

Depeche Mode: Das model
58199*088288#21290868**#590858199*088288#21290868**#590
8299*#2088818886999**#08881888*290818291821999
Π’Π΅ΠΌΠΏ 140.

«Мобила» ΠΈΠ· ΠΊ-Ρ„ Π‘ΡƒΠΌΠ΅Ρ€
38*590958390968565656567909
Π’Π΅ΠΌΠΏ 140.

Π’Π΅ΠΌΠ° ΠΈΠ· ΠΊ/Ρ„. Β«Π‘Ρ€ΠΈΠ³Π°Π΄Π°Β»
588#2*#1#329#28#7**1*#2#3928#5999**#5888#2*#1#3299#188#7**69#784999#5888#2*#1#329#28#7
**1*#2#3928#499**#08858#68#719*#78**599#088588#76#5#49#599#
Π’Π΅ΠΌΠΏ 90

Π’Π’ «Π’Ссна»
688#1*199#28#18#1#196**#44#29*#4828#2#19#19688**#1*199#28#18#1#196**#44#29*#28#1#16**#6
Π’Π΅ΠΌΠΏ 112

Агата ΠšΡ€ΠΈΡΡ‚ΠΈ Β«ΠžΠΏΠΈΡƒΠΌ для Π½ΠΈΠΊΠΎΠ³ΠΎΒ»
58*29*#287**59085829*#287**590858555#545972*058**29*#287**59085829*#287**59058555#5459908
Π’Π΅ΠΌΠΏ 100

Вирус «вСсна»
2*68**#49*28#212968**#29*#2816**#4968#1*22699#**
Π’Π΅ΠΌΠΏ 120

Π“Π΅Π½Π΅Ρ€Π°Π»Ρ‹ пСсчаных ΠΊΠ°Ρ€ΡŒΠ΅Ρ€ΠΎΠ²
245654329684859994886584999388548399928845654329219688218699958816869992884565432968 485999488654354394
Π’Π΅ΠΌΠΏ 180

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

Benny Benassi: Satisfaction
38*0878**0930994*440390878**093*04030403039078**0930994*440390878**093*040304030
Π’Π΅ΠΌΠΏ 125 Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ

ДискотСка Авария: Новогодняя
2*0281#7**1*#239281#06**0499#78028*19#58**#69#7819*#
Π’Π΅ΠΌΠΏ 125.

Β«ΠœΡƒΡ€ΠΊΠ°Β»
68#6#96886#7969#58#49#4884#4929#0828*#29#2882#4929#2882#4990
948#42#028492#092#1#7**6#1*#79**0868#6#1*#7**6#59#4884#299#0
Π’Π΅ΠΌΠΏ 125 Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ

Queen: The Show Must Go On
6865#6906865#59#48#49#086865#69058#6719*#28799**08818*#2879**0781*#21#2321#7**7864999#
Π’Π΅ΠΌΠΏ 125.

Depeche Mode: Das model
58199*088288#21290868**#590858199*088288#21290868**#590
8299*#2088818886999**#08881888*290818291821999
Π’Π΅ΠΌΠΏ 140.

«Мобила» ΠΈΠ· ΠΊ-Ρ„ Π‘ΡƒΠΌΠ΅Ρ€
38*590958390968565656567909
Π’Π΅ΠΌΠΏ 140.

Π’Π΅ΠΌΠ° ΠΈΠ· ΠΊ/Ρ„. Β«Π‘Ρ€ΠΈΠ³Π°Π΄Π°Β»
588#2*#1#329#28#7**1*#2#3928#5999**#5888#2*#1#3299#188#7**69#784999#5888#2*#1#329#28#7
**1*#2#3928#499**#08858#68#719*#78**599#088588#76#5#49#599#
Π’Π΅ΠΌΠΏ 90

Π’Π’ «Π’Ссна»
688#1*199#28#18#1#196**#44#29*#4828#2#19#19688**#1*199#28#18#1#196**#44#29*#28#1#16**#6
Π’Π΅ΠΌΠΏ 112

Агата ΠšΡ€ΠΈΡΡ‚ΠΈ Β«ΠžΠΏΠΈΡƒΠΌ для Π½ΠΈΠΊΠΎΠ³ΠΎΒ»
58*29*#287**59085829*#287**590858555#545972*058**29*#287**59085829*#287**59058555#5459908
Π’Π΅ΠΌΠΏ 100

Вирус «вСсна»
2*68**#49*28#212968**#29*#2816**#4968#1*22699#**
Π’Π΅ΠΌΠΏ 120

Π“Π΅Π½Π΅Ρ€Π°Π»Ρ‹ пСсчаных ΠΊΠ°Ρ€ΡŒΠ΅Ρ€ΠΎΠ²
245654329684859994886584999388548399928845654329219688218699958816869992884565432968 485999488654354394
Π’Π΅ΠΌΠΏ 180

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Забытая ΠΌΡƒΠ·Ρ‹ΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Nokia 3310, PC-Seaker’С ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ MIDI Ρ„Π°ΠΉΠ»ΠΎΠ² (Ρ‡1)

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokiaΠ—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ (RTTL) Π² старых модСлях Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ², ΠΎ воспроизвСдСнии Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ PC-Speaker’а ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎ создании (Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ) MIDI Ρ„Π°ΠΉΠ»ΠΎΠ². ВсС ΠΌΠΎΠΈ мысли я Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° языкС Pascal.

Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ эта Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° скорСС всСго Π½Π΅ прСдставляСт для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΡƒΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ практичСского интСрСса ΠΈ создана Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ скорСС для сСбя, Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒβ€¦ Но Ρ…Π²Π°Ρ‚ΠΈΡ‚ Π»ΠΈΡ€ΠΈΠΊΠΈ, Π½Π°Ρ‡Π½Π΅ΠΌ.

ВСория.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Ρ‰Π΅ помнят, ΠΊΠ°ΠΊ сидя Π½Π° Π³Π°Π»Π΅Ρ€ΠΊΠ΅ Π² школС ΠΈΠ»ΠΈ институтС ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ ΠΈΠ· Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π΅ΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ Π²ΠΈΠ΄Π° β€œ8e,16d,16b4,16a4,16b4,8a4,16a4,16a#4”. Π­Ρ‚ΠΎΡ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ RTTL Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ записи ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ здСсь смысла Π½Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ описаниС ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ доступно Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Π½ΠΎ для дальнСйшСго понимания ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡ‹ рассмотрим. Π˜Ρ‚Π°ΠΊ, возьмСм Ρ‚Π°ΠΊΡƒΡŽ RTTL мСлодию:

Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄

[Π½Π°Π·Π²Π°Π½ΠΈΠ΅:Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ,ΠΎΠΊΡ‚Π°Π²Π°,ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ(BPM):сама мСлодия].

Нам понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

β€œd=4” Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² записи самой ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π½ΠΎΡ‚Ρƒ a β€œΠ»Ρβ€ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ 4, Π½Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ ΠΊΠ°ΠΊ β€œ4a”. Достаточно Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅ просто ΠΊΠ°ΠΊ β€œa”. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Ссли ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ RTTL ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Ρ‹ Π² ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ простоС соотвСтствиС – 1 / Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ RTTL. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, β€œd=4” Π² записи RTTL ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠ³Ρ€Π°Π΅ΠΌ Π½ΠΎΡ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ β€œΠΎΠ΄Π½Π° чСтвСртая”. Если d=6, Ρ‚ΠΎ β€œΠΎΠ΄Π½Π° ΡˆΠ΅ΡΡ‚Π°Ρβ€ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

β€œo=5” ΠžΠΊΡ‚Π°Π²Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Из Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ вспомним, Ρ‡Ρ‚ΠΎ ΠΎΠΊΡ‚Π°Π²Π° – это удвоСнная частота ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π½ΠΎΡ‚Π°ΠΌΠΈ. Π’Π°ΠΊ, Ссли Π½ΠΎΡ‚Π° β€œΠ»Ρβ€ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ частоту 440 Π“Ρ†, Ρ‚ΠΎ Ρ‚Π° ΠΆΠ΅ Π½ΠΎΡ‚Π° β€œΠ»Ρβ€ пятой ΠΎΠΊΡ‚Π°Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ частоту 880 Π“Ρ†. Π ΠΎΠ²Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π² дальнСйшСй записи Π½Π°ΠΌ Π½Π΅Ρ‚ нСобходимости Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΡ‚Ρƒ a β€œΠ»Ρβ€ пятой ΠΎΠΊΡ‚Π°Π²Ρ‹, ΠΊΠ°ΠΊ β€œa5”. Достаточно просто Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅ ΠΊΠ°ΠΊ β€œa” ΠΈ ΠΌΡ‹ сыграСм Π½ΠΎΡ‚Ρƒ β€œΠ»Ρβ€ пятой ΠΎΠΊΡ‚Π°Π²Ρ‹ с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄Π½Π° чСтвСртая. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ получаСтся, Ρ‡Ρ‚ΠΎ Π² нашСм случаС запись β€œa” Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Π° записи β€œ4a5”.

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

β€œb=160”. Π’Π΅ΠΌΠΏ, ΠΈΠ»ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ (BPM). Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ миллисСкунды, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π²ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΡ‚Π°, я воспользовался Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ: ((60000 / b) / d) * 8, Π³Π΄Π΅ b – наш Ρ‚Π΅ΠΌΠΏ, Π° d – Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Ρ‹. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ, я ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒΡΡ ΠΈ сам Π·Π°Π±Ρ‹Π». Но это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ πŸ™‚

Π”Π°Π»ΡŒΡˆΠ΅ начинаСтся сама мСлодия. Из описания слСдуСт, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ записи Π½ΠΎΡ‚ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρ‚Π°ΠΊΠΎΠΉ:

[Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Π° ΠΎΠΊΡ‚Π°Π²Π° Π΄ΠΎΠΏ. Π·Π½Π°ΠΊ].

Π‘ Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ Π½Π° этом Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ, Ссли ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ вопросы, Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ описаниС RTTL Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

PC-Speaker

Для Π½Π°Ρ‡Π°Π»Π°, Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ мСлодию для простоты Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ PC-Speaker. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков программирования для Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π²ΡƒΠΊΠ° Π½Π° спикСр Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ всСго Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° – частота ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π² миллисСкундах. Π’Π°ΠΊ, Π² Virtual Pascal сущСствуСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°

Var
Frequency : Array [ 1..8 * 12 ] of word ;

Procedure InitFreqTable; <ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ частот>
Const
HerzOfFirst = 32.703195258 ;

Begin
tmpReal1 := HerzOfFirst; <Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π½ΠΎΡ‚Ρ‹ C ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹>
tmpReal2 := exp ( ln ( 2.0 ) / 12.0 ) ; <постоянная, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ измСняСтся частота ΠΎΡ‚ Π½ΠΎΡ‚Ρ‹ ΠΊ Π½ΠΎΡ‚Π΅>
for i := 1 to 8 * 12 do <12 Π½ΠΎΡ‚ Π½Π° ΠΎΠΊΡ‚Π°Π²Ρƒ, 8 ΠΎΠΊΡ‚Π°Π²>
begin
Frequency [ i ] := round ( tmpReal1 ) ;
tmpReal1 := tmpReal1 * tmpReal2;
end ;
End

Π’Π°ΠΊΠΈΠΌ Π½Π΅Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΌ способом ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ RTTL ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π½Π° PC-Speaker. ΠŸΠΎΠ»Π½Ρ‹ΠΉ исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ скомпилированная вСрсия, доступны здСсь: rghost.ru/2230394 Π― использовал для компиляции Virtual Pascal, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ Ρ‡Ρ‚ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΈ Π² Free Pascal.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ создании ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° RTTL 2 MIDI Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ создании ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с MIDI Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² частности. Π£Π΄Π°Ρ‡Π½ΠΎΠ³ΠΎ дня!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΈΠ½Ρ‚Π΅Π·Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Nokia Composer Π² 512 Π±Π°ΠΉΡ‚Π°Ρ…

НСмного Π½ΠΎΡΡ‚Π°Π»ΡŒΠ³ΠΈΠΈ Π² нашСм Π½ΠΎΠ²ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ β€” ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Nokia Composer ΠΈ ΡΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ мСлодию.

ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ пользовался ΡΡ‚Π°Ρ€Π΅Π½ΡŒΠΊΠΈΠΌ Nokia, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, модСлями 3310 ΠΈΠ»ΠΈ 3210? Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°ΡΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ‡ΠΈΠ½ΡΡ‚ΡŒ собствСнныС Ρ€ΠΈΠ½Π³Ρ‚ΠΎΠ½Ρ‹ прямо Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. Расставляя Π½ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠ°ΡƒΠ·Ρ‹ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ воспроизвСсти ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ мСлодию ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ! Если Π²Ρ‹ пропустили Ρ‚Ρƒ эпоху, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядСло:

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

НС Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΠΈΠ»ΠΎ? ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ½Π΅, Ρ‚ΠΎΠ³Π΄Π° это казалось Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΡ€ΡƒΡ‚Ρ‹ΠΌ, особСнно для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ увлСкался ΠΌΡƒΠ·Ρ‹ΠΊΠΎΠΉ.

ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Π°Ρ нотация (нотная запись) ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Nokia Composer, извСстны ΠΊΠ°ΠΊ RTTTL (Ring Tone Text Transfer Language). RTTL Π΄ΠΎ сих ΠΏΠΎΡ€ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌΠΈ для воспроизвСдСния монофоничСских ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π½Π° Arduino ΠΈ Π΄Ρ€.

RTTTL позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ голоса, Π½ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±Π΅Π· Π°ΠΊΠΊΠΎΡ€Π΄ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΠΈΡ„ΠΎΠ½ΠΈΠΈ. Однако это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ оказалось ΡƒΠ±ΠΎΠΉΠ½ΠΎΠΉ Ρ„ΠΈΡ‡Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π»Π΅Π³ΠΊΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ попытаСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ RTTTL-ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ Π½Π° JavaScript, Π΄ΠΎΠ±Π°Π²ΠΈΠ² для интСрСса Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄-Π³ΠΎΠ»ΡŒΡ„ΠΈΠ½Π³Π° ΠΈ матСматичСских ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅.

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ RTTTL

Для RTTTL примСняСтся Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°. RTTL-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€” строка, ​​состоящая ΠΈΠ· Ρ‚Ρ€Π΅Ρ… частСй: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ, Π΅Π΅ характСристики, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏ (BPM β€” beats per minute, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ количСство Π΄ΠΎΠ»Π΅ΠΉ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ), ΠΎΠΊΡ‚Π°Π²Π° ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ сам ΠΊΠΎΠ΄ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ. Однако ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ самого Nokia Composer, распарсим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ ΠΈ рассмотрим Ρ‚Π΅ΠΌΠΏ BPM ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. НазваниС ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ ΠΈ Π΅Π΅ слуТСбныС характСристики оставлСны Π·Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

МСлодия β€” это просто ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚ / ΠΏΠ°ΡƒΠ·, раздСлСнная запятыми с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. КаТдая Π½ΠΎΡ‚Π° состоит ΠΈΠ· Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (2 / 4 / 8 / 16 / 32 / 64), высоты (c / d / e / f / g / a / b), ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π·Π½Π°ΠΊΠ° Β«Π΄ΠΈΠ΅Π·Β» (#) ΠΈ количСства ΠΎΠΊΡ‚Π°Π² (ΠΎΡ‚ 1 Π΄ΠΎ 3, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ ΠΎΠΊΡ‚Π°Π²Ρ‹).

Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярныС выраТСния. НовыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ matchAll, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ всСх совпадСний Π² строкС:

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΡ‚Π΅ β€” ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² частоту Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Π²ΠΎΠ»Π½. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ HashMap для всСх сСми Π±ΡƒΠΊΠ², ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π½ΠΎΡ‚Ρ‹. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти Π±ΡƒΠΊΠ²Ρ‹ располоТСны ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ числа. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹-Π½ΠΎΡ‚Ρ‹ ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ числовой ΠΊΠΎΠ΄ символа (ΠΊΠΎΠ΄ ASCII). Для Β«AΒ» это Π±ΡƒΠ΄Π΅Ρ‚ 0x41, Π° для Β«aΒ» β€” 0x61. Для Β«B / bΒ» это Π±ΡƒΠ΄Π΅Ρ‚ 0x42 / 0x62, для Β«C / cΒ» β€” 0x43 / 0x63 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅:

Нам, вСроятно, стоит ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ k&7 Π² качСствС индСкса Π½ΠΎΡ‚Ρ‹ (a=1, c=2,…, g=7). А Ρ‡Ρ‚ΠΎ дальшС? Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ приятный, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ связан с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ. Если Ρƒ нас всСго 7 Π½ΠΎΡ‚, Ρ‚ΠΎ ΠΌΡ‹ считаСм ΠΈΡ… ΠΊΠ°ΠΊ всС 12. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ΅Π· / бСмоль Π½ΠΎΡ‚Ρ‹ Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ спрятаны ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Π½ΠΎΡ‚Π°ΠΌΠΈ:

Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, индСкс Π½ΠΎΡ‚Ρ‹ Π² ΠΎΠΊΡ‚Π°Π²Π΅ увСличиваСтся быстрСС, Ρ‡Π΅ΠΌ ΠΊΠΎΠ΄ Π½ΠΎΡ‚Ρ‹ (k&7). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ увСличиваСтся Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ: расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ E ΠΈ F ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ B ΠΈ C составляСт 1 ΠΏΠΎΠ»ΡƒΡ‚ΠΎΠ½, Π° Π½Π΅ 2, ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½ΠΎΡ‚Π°ΠΌΠΈ.

Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ (k&7) Π½Π° 12/7 (12 ΠΏΠΎΠ»ΡƒΡ‚ΠΎΠ½ΠΎΠ² ΠΈ 7 Π½ΠΎΡ‚):

Если ΠΌΡ‹ посмотрим Π½Π° эти числа Π±Π΅Π· Ρ†ΠΈΡ„Ρ€ послС запятой, ΠΌΡ‹ сразу Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ:

Но Π½Π΅ совсСм… Β«ΠŸΠΎΠ»ΡƒΡ‚ΠΎΠ½ΠΎΠ²ΠΎΠ΅Β» расстояниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ B / C ΠΈ E / F, Π° Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ C / D. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ коэффициСнты (ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‚ΠΎΠ½Ρ‹):

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ значСния 1.8 ΠΈ 1.5 Π½Π΅ подходят: Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡƒΡ‚ΠΎΠ½, Π° Ρƒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” слишком ΠΌΠ½ΠΎΠ³ΠΎ. Π”Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ…, 1.6 ΠΈ 1.7, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π°ΠΌ подходят: 1.7 Π΄Π°Π΅Ρ‚ ΠΌΠ°ΠΆΠΎΡ€Π½ΡƒΡŽ Π³Π°ΠΌΠΌΡƒ G-A-BC-D-EF, Π° 1.6 Π΄Π°Π΅Ρ‚ ΠΌΠ°ΠΆΠΎΡ€Π½ΡƒΡŽ Π³Π°ΠΌΠΌΡƒ A-B-CD-E-F-G. Как Ρ€Π°Π· Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ значСния Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ C Π±Ρ‹Π»ΠΎ Ρ€Π°Π²Π½ΠΎ 0, D Π±Ρ‹Π»ΠΎ 2, E Π±Ρ‹Π»ΠΎ 4, F Π±Ρ‹Π»ΠΎ 5 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° 4 ΠΏΠΎΠ»ΡƒΡ‚ΠΎΠ½Π°, Π½ΠΎ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ 4 сдСлаСт Π½ΠΎΡ‚Ρƒ A Π½ΠΈΠΆΠ΅ Π½ΠΎΡ‚Ρ‹ C, поэтому вмСсто этого ΠΌΡ‹ добавляСм 8 ΠΈ вычисляСм ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 12, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΎΠΊΡ‚Π°Π²Ρƒ:

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π·Π½Π°ΠΊ Β«Π΄ΠΈΠ΅Π·Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ловится Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ m[3] рСгулярного выраТСния. Если ΠΎΠ½ присутствуСт, слСдуСт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΡ‚Ρ‹ Π½Π° 1 ΠΏΠΎΠ»ΡƒΡ‚ΠΎΠ½:

НаконСц, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠΊΡ‚Π°Π²Ρƒ. ΠžΠΊΡ‚Π°Π²Ρ‹ ΡƒΠΆΠ΅ сохранСны Π² Π²ΠΈΠ΄Π΅ чисСл Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ m[5]. Богласно Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, каТдая ΠΎΠΊΡ‚Π°Π²Π° β€” это 12 сСминот, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ число ΠΎΠΊΡ‚Π°Π²Ρ‹ Π½Π° 12 ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π½ΠΎΡ‚Ρ‹:

Clamping

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ количСство ΠΎΠΊΡ‚Π°Π² ΠΊΠ°ΠΊ 10 ΠΈΠ»ΠΈ 1000? Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΠ»ΡŒΡ‚Ρ€Π°Π·Π²ΡƒΠΊΡƒ! Нам слСдуСт Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся Β«clampingΒ». Π’ соврСмСнном JS Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция Math.clamp(x, low, high), которая, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠΊΠ° нСдоступна Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Бамая простая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ стараСмся максимально ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ наш ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ изобрСсти колСсо ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ x=0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ clamping Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ с undefined-значСниями:

Π’Π΅ΠΌΠΏ ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Ρ‹

ΠœΡ‹ рассчитываСм, Ρ‡Ρ‚ΠΎ BPM Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ out play(). Нам остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ, сколько Π½ΠΎΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π»ΠΈΡ‚ΡŒΡΡ Π² сСкундах, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (цСлая / половинная / чСтвСртная /…), которая хранится Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ рСгулярного выраТСния m[1]. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ:

Если ΠΌΡ‹ объСдиним эти Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π² ΠΎΠ΄Π½Ρƒ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ‚Ρ‹, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания Π½ΠΎΡ‚ с Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½ΠΎΡ‚Ρ‹ Π½Π° 50%. Π£ нас Π΅ΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ° m[2], Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ° . ΠΈΠ»ΠΈ undefined. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали Ρ€Π°Π½Π΅Π΅ для Π·Π½Π°ΠΊΠ° Β«Π΄ΠΈΠ΅Π·Β», ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΡ‚Ρ‹. ΠŸΠΎΡ€Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ API WebAudio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‹Π³Ρ€Π°Ρ‚ΡŒ мСлодию.

WEBAUDIO

Нам Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 3 части ΠΈΠ· всСго API WebAudio: аудиоконтСкст, осциллятор для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ ΠΈ gain-Π½ΠΎΠ΄Π° для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π²ΡƒΠΊΠ°. Π― Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ осциллятор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ мСлодия Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π»Π° Ρ‚ΠΎΡ‚ самый уТасный Π·Π²ΠΎΠ½ΠΎΠΊ старых Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ сам ΠΏΠΎ сСбС Π΅Ρ‰Π΅ Π½Π΅ создаст ΠΌΡƒΠ·Ρ‹ΠΊΡƒ, Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ распарсили Π½Π°ΡˆΡƒ RTTTL-мСлодию, ΠΌΡ‹ смоТСм ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ WebAudio, ΠΊΠ°ΠΊΡƒΡŽ Π½ΠΎΡ‚Ρƒ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π°, с ΠΊΠ°ΠΊΠΎΠΉ частотой ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ.

ВсС Π½ΠΎΠ΄Ρ‹ WebAudio ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ setValueAtTime, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ событиС измСнСния значСния (частота ΠΈΠ»ΠΈ усилСниС ΡƒΠ·Π»Π°).

Если Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ€Π°Π½Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρƒ нас ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΊΠΎΠ΄ ASCII для Π½ΠΎΡ‚Ρ‹, сохранСнный ΠΊΠ°ΠΊ k, индСкс Π½ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΊ n, ΠΈ Ρƒ нас Π±Ρ‹Π»Π° duration (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) Π½ΠΎΡ‚Ρ‹ Π² сСкундах. Π’Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΡ‚Ρ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π­Ρ‚ΠΎ всё. Наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° play() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ, записанныС Π² Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ RTTTL. Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с нСбольшими уточнСниями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ использованиС v Π² качСствС ярлыка для setValueAtTime ΠΈΠ»ΠΈ использованиС ΠΎΠ΄Π½ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (C=контСкст, z=осциллятор, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π·Π²ΡƒΠΊ, g=усилСниС, q=bpm, c=clamp):

ΠŸΡ€ΠΈ ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ terser этот ΠΊΠΎΠ΄ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всСго 417 Π±Π°ΠΉΡ‚. Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ Π½ΠΈΠΆΠ΅ поставлСнного ΠΏΠΎΡ€ΠΎΠ³Π° Π² 512 Π±Π°ΠΉΡ‚. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π°ΠΌ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ stop() для прСрывания воспроизвСдСния:

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ всС Π΅Ρ‰Π΅ ΠΎΠΊΠΎΠ»ΠΎ 445 Π±Π°ΠΉΡ‚. Если Π²Ρ‹ вставитС этот ΠΊΠΎΠ΄ Π² консоль Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ смоТСтС воспроизвСсти RTTTL ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ воспроизвСдСниС, Π²Ρ‹Π·Π²Π°Π² JS Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ play() ΠΈ stop().

Π― Π΄ΡƒΠΌΠ°ΡŽ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ нСбольшого UI для нашСго синтСзатора сдСлаСт ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания ΠΌΡƒΠ·Ρ‹ΠΊΠΈ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ приятным. На этом этапС я Π±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ ΠΊΠΎΠ΄-Π³ΠΎΠ»ΡŒΡ„ΠΈΠ½Π³Π΅. МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для RTTTL-ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π±Π΅Π· сохранСния Π±Π°ΠΉΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ HTML ΠΈ CSS ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ скрипт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для воспроизвСдСния.

Π― Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ здСсь ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это довольно скучно. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ Π½Π° github. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΠΌΠΎ-Π²Π΅Ρ€ΡΠΈΡŽ здСсь: https://zserge.com/nokia-composer/.

ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ для синтСзатора ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ nokia

Если ΠΌΡƒΠ·Π° ΠΏΠΎΠΊΠΈΠ½ΡƒΠ»Π° вас ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ совсСм Π½Π΅ хочСтся, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ нСсколько ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… пСсСн ΠΈ Π½Π°ΡΠ»Π°Π΄ΠΈΡ‚Π΅ΡΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ Π·Π²ΡƒΠΊΠΎΠΌ:

НадСюсь, Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ эта ΡΡ‚Π°Ρ‚ΡŒΡ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° новостями Π½Π° Github, Π² Twitter ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· rss.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *