Àâòîð |
Òåìà: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 06.04.2025 17:43 |
|
---|---|---|
Ñîâåòñêèé Ñîþç Ãèòàðà, êëàâèøè ![]() ![]() |
Ãîñïîäà, íóæåí ñîâåò ñïåöèàëèñòà â òåîðèè ìóçûêè... Ïåðåïðîáîâàë ìíîæåñòâî ãàðìîíèçàòîðîâ äëÿ ðåàë-òàéì èñïîëíåíèÿ è íå ñìîã îáíàðóæèòü òîò, êîòîðûé ïîëíîñòüþ óñòðàèâàåò ïî ïðè÷èíå òîãî, ÷òî âî âñåõ îïðîáîâàííûõ äåâàéñàõ äëÿ ñîçäàíèÿ ãàðìîíèè òðåáóåòñÿ ïðåäîïðåäåëÿòü âûáîð òîíàëüíîñòè, à ýòî íå âñåãäà âîçìîæíî ïðè èìïðîâèçàöèîííîì èñïîëíåíèè.  ðåçóëüòàòå ïðèø¸ë ê íåîáõîäèìîñòè ñîçäàòü ñîáñòâåííîå ïðîãðàììíîå óñòðîéñòâî, îäíàêî îòñóòñòâèå ìóçûêàëüíîãî îáðàçîâàíèÿ íå ïîçâîëÿåò ïðàâèëüíî îöåíèòü ðåàëüíîñòü ðåøåíèÿ ïîñòàâëåííîé çàäà÷è, ïîýòîìó õî÷ó óçíàòü âàøå ìíåíèå. ß èñõîæó èç ïðåäïîëîæåíèÿ, ÷òî ìîæíî ïîñòàâèòü ïîñòðîåíèå ãàðìîíè÷åñêîé ëèíèè, ñîçäàâàåìîé ïðàâîé ðóêîé èñïîëíèòåëÿ â çàâèñèìîñòü îò àêêîðäà, âçÿòîãî ëåâîé ðóêîé.  ýòîì ñëó÷àå îòïàäàåò íåîáõîäèìîñòü ïðåäâàðèòåëüíîãî óêàçàíèÿ ãàðìîíèçàòîðó âûáðàííîé òîíàëüíîñòè è êîððåêòèðîâêè â ñëó÷àå å¸ èçìåíåíèÿ èëè ìîäóëÿöèè. Îáðàçíî ïðîèëëþñòðèðóþ ñâîþ ìûñëü íà ïðîñòîì ïðèìåðå: äîïóñòèì, èñïîëíÿåòñÿ ìåëîäèÿ â òîíàëüíîñòè Am, íî â õîäå èñïîëíåíèÿ âìåñòî Em ëåâîé ðóêîé áåð¸òñÿ Emaj è ãàðìîíèçàòîð àâòîìàòè÷åñêè èçìåíÿåò èñõîäíóþ òîíàëüíîñòü íà Am ãàðìîíè÷åñêèé, çàìåíÿÿ ìàëóþ òåðöèþ, ïîñòðîåííóþ îò íîòû Ìè íà áîëüøóþ... Íàñêîëüêî ðåàëèñòè÷åí ìîé ïîäõîä ê ôîðìèðîâàíèþ àëãîðèòìà è êàêèå "ïîäâîäíûå êàìíè" ìîãóò ìåíÿ îæèäàòü ïðè åãî ðåàëèçàöèè? Âîçìîæíî ëè âîîáùå, îòêàçàòüñÿ îò ïðåäîïðåäåëåíèÿ òîíàëüíîñòè, åñëè èñïîëüçîâàòü â êà÷åñòâå îòïðàâíîé òî÷êè ïðîãðåññèè òîëüêî âèä òåêóùåãî àêêîðäà? Áóäó áëàãîäàðåí çà ëþáîé íàì¸ê! |
|
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 07.05.2025 10:55 |
|
---|---|---|
Ñîâåòñêèé Ñîþç Ãèòàðà, êëàâèøè ![]() ![]() |
Ãîñïîäà, 167 âåëè÷àéøèõ óìîâ ÷åëîâå÷åñòâà ïðîñìîòðåëî ìîé ïîñò, íî íèêòî íå îçâó÷èë ñâîåãî ìíåíèÿ! Áóäó áëàãîäàðåí çà ëþáîé êîììåíòàðèé... |
|
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 08.05.2025 18:12 |
|
---|---|---|
HHîâãîðîä Pà800, Pa4x, TritonR RolandC200,PC361, ![]() ![]() ![]() |
ïîõîæå Âàì íàäî çàïèñàòüñÿ íà ïðèåì ê ÈÈ, íå íóæíî òîãäà ïðîãðàììó ñîçäàâàòü, òîíàëüíîñòü êîíå÷íî íàäî áû îïðåäåëèòü, íî ìîæíî îïûòíûì ïóòåì, êàê âàðèàíò | |
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 10.05.2025 10:17 |
|
---|---|---|
Ñîâåòñêèé Ñîþç Ãèòàðà, êëàâèøè ![]() ![]() |
Ñïàñèáî! Õî÷åòñÿ îáîéòèñü áåç âìåøàòåëüñòâà "ïîòóñòîðîííèõ ñèë". Ïóñêàé, ëó÷øå áóäåò åù¸ îäíà ñïåöèàëèçèðîâàíàÿ ãðóïïà â Plogue Bidule, íå òðåáóþùàÿ äîñòóïà â èíòåðíåò (êîòîðûé íå âñåãäà äîñòóïåí â ðàçúåçäàõ ïî çàõîëóñòüþ)) | |
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 15.05.2025 18:03 |
|
---|---|---|
«Think Different» ![]() |
Îòâåò îò ÈÈ: === Âàø ïîäõîä ê ãàðìîíèçàöèè äåéñòâèòåëüíî èíòåðåñåí è èìååò ïðàâî íà ñóùåñòâîâàíèå, íî åãî ðåàëèçàöèÿ ñîïðÿæåíà ñ ðÿäîì íþàíñîâ. Ðàçáåð¸ì êëþ÷åâûå àñïåêòû: 1. Îòêàç îò ïðåäîïðåäåë¸ííîé òîíàëüíîñòè: ðåàëèñòè÷íîñòü Äà, ýòî âîçìîæíî, åñëè èñïîëüçîâàòü òåêóùèé àêêîðä ëåâîé ðóêè êàê "îïîðíûé çâóê" äëÿ ãàðìîíèçàöèè ìåëîäèè ïðàâîé. Òàêîé ïîäõîä áëèçîê ê ïðèíöèïàì: Àäàïòèâíîãî àêêîìïàíåìåíòà (Korg/Karma, Roland VariPhrase) Ãàðìîíèçàöèè ïî èíòåðâàëüíûì øàáëîíàì (íàïðèìåð, òåðöèè/ñåêñòû íàä áàñîì) Ïðèìåð ñ çàìåíîé Em → Emaj è ïåðåõîäîì â A ãàðìîíè÷åñêèé ìèíîð êîððåêòåí â ýòîì êîíêðåòíîì ñëó÷àå, íî òðåáóåò îñòîðîæíîñòè â äðóãèõ êîíòåêñòàõ. 2. Ïîäâîäíûå êàìíè: Õðîìàòè÷åñêèå íîòû â ìåëîäèè: Åñëè ïðàâàÿ ðóêà èãðàåò G♯ (õàðàêòåðíî äëÿ A ãàðìîíè÷åñêîãî ìèíîðà), à ëåâàÿ áåð¸ò Cmaj — âîçíèêíåò äèññîíàíñ (G♯ ïðîòèâ G íàòóðàëüíîãî â C-ìàæîðå). Òðèòîíîâàÿ çàìåíà: Àêêîðä ëåâîé ðóêè ìîæåò áûòü àëüòåðèðîâàííûì (íàïðèìåð, G7♭5 âìåñòî Cmaj), ÷òî ïîòðåáóåò èíîé ëîãèêè ãàðìîíèçàöèè. Ìîäàëüíûå çàìåíû: Àêêîðä Dm7 â ëåâîé ðóêå ìîæåò îòíîñèòüñÿ êàê ê C-ìàæîðó, òàê è ê D-äîðèéñêîìó ëàäó — âûáîð òåðöèé äëÿ ìåëîäèè áóäåò ðàçíûì. Íåàêêîðäîâûå òîíû: Ïðîõîäÿùèå èëè âñïîìîãàòåëüíûå íîòû â ìåëîäèè íå äîëæíû ëîìàòü ãàðìîíèþ. 3. Àëãîðèòìè÷åñêèå ðåøåíèÿ: Áàçîâûé âàðèàíò (ïðîñòîé äæàç/ïîï): python def harmonize(note, chord): # Ïðîñòåéøàÿ ëîãèêà: òåðöèÿ/ñåêñòà íàä áàñîì if chord.type == "maj": return note + 4 semitones # Ìàæîðíàÿ òåðöèÿ elif chord.type == "m": return note + 3 semitones # Ìèíîðíàÿ òåðöèÿ Ïðîäâèíóòûé âàðèàíò (ó÷¸ò êîíòåêñòà): Àíàëèçèðîâàòü ôóíêöèþ àêêîðäà (T-S-D) äàæå áåç òîíàëüíîñòè. Äëÿ äîìèíàíò (G7) ðàçðåøàòü òåðöèþ/ñåïòèìó â òîíèêó (B → C, F → E). Èñïîëüçîâàòü îáðàáîòêó non-chord tones (çàäåðæàíèÿ, ïðîõîäÿùèå). 4. Êîãäà ïîäõîä ñðàáîòàåò èäåàëüíî:  æàíðàõ ñ ÷¸òêîé àêêîðäîâîé ñåòêîé (áëþç, ðîê-í-ðîëë). Ïðè èñïîëüçîâàíèè äèàòîíè÷åñêèõ øàáëîíîâ (íàïðèìåð, òîëüêî òåðöèè/ñåêñòû). Åñëè ìåëîäèÿ óêëàäûâàåòñÿ â ïåíòàòîíèêó èëè áëþçîâûé çâóêîðÿä. 5. Êîãäà âîçíèêíóò ïðîáëåìû:  õðîìàòè÷åñêèõ ïàññàæàõ (íàïðèìåð, â äæàçîâûõ èìïðîâèçàöèÿõ Êîëòðåéíà). Ïðè áûñòðûõ ìîäóëÿöèÿõ (àêêîðä ëåâîé ðóêè ìîæåò áûòü èíòåðïðåòèðîâàí äâîÿêî).  ïîëèòîíàëüíûõ èëè àòîíàëüíûõ êîíòåêñòàõ. 6. Ñîâåòû ïî ðåàëèçàöèè: Äîáàâüòå ðåæèì "ñòðîãîé äèàòîíèêè" (îòñåèâàåò õðîìàòè÷åñêèå íîòû). Èñïîëüçóéòå ìàøèííîå îáó÷åíèå íà ïðèìåðàõ ðåàëüíûõ àêêîìïàíåìåíòîâ. Ââåäèòå ðó÷íóþ êîððåêöèþ ÷åðåç MIDI-êîíòðîëëåðû (íàïðèìåð, äëÿ âûáîðà ìèêñîëèäèéñêîãî vs. äîðèéñêîãî ëàäà). Ïðèìåð äëÿ âàøåãî ñëó÷àÿ (Em → Emaj): python current_chord = "Emaj" # Ëåâàÿ ðóêà melody_note = "E" # Ïðàâàÿ ðóêà if current_chord == "Emaj": harmonized_note = melody_note + 4 # Ìàæîðíàÿ òåðöèÿ → G♯ else: harmonized_note = melody_note + 3 # Ìèíîðíàÿ òåðöèÿ → G Âûâîä: Âàø ïîäõîä ðåàëèñòè÷åí äëÿ ìíîãèõ ñòèëåé, íî ïîòðåáóåò "ïîäñòðàõîâêè" ÷åðåç àíàëèç êîíòåêñòà è îáðàáîòêó èñêëþ÷åíèé. Ðåêîìåíäóþ íà÷àòü ñ ïðîñòûõ èíòåðâàëüíûõ ïðàâèë è ïîñòåïåííî óñëîæíÿòü ëîãèêó. Äëÿ òåñòèðîâàíèÿ ïîïðîáóéòå îáðàáîòàòü ñòàíäàðòíûå äæàçîâûå ïðîãðåññèè (ii-V-I) è áëþçîâóþ ñåòêó |
|
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 15.05.2025 18:07 |
|
---|---|---|
«Think Different» ![]() |
Êàê íà÷àòü ñ ïðîñòûõ èíòåðâàëüíûõ ïðàâèë è ïîñòåïåííî óñëîæíÿòü ëîãèêó? ============== Îòëè÷íûé ïëàí! Ðàçáåð¸ì ïîøàãîâóþ ñòðàòåãèþ ðåàëèçàöèè âàøåãî ãàðìîíèçàòîðà — îò ïðîñòûõ èíòåðâàëüíûõ ïðàâèë ê ñëîæíîé ëîãèêå. Âîò êîíêðåòíûé ïóòü: Ýòàï 1: Áàçîâûå èíòåðâàëüíûå ïðàâèëà (ãîðèçîíòàëüíàÿ ãàðìîíèÿ) Ïðèíöèï: Ãàðìîíèçàöèÿ ñòðîèòñÿ èñêëþ÷èòåëüíî îò íîò ìåëîäèè è òåêóùåãî àêêîðäà áåç ó÷¸òà òîíàëüíîñòè. Øàã 1.1: Òåðöèè è ñåêñòû Ïðàâèëî: Äëÿ êàæäîé íîòû ìåëîäèè (melody_note) äîáàâëÿåì èíòåðâàë îò òåêóùåãî àêêîðäà (current_chord): Åñëè àêêîðä ìàæîðíûé (C, G7, Emaj): Ãàðìîíèÿ = ìàæîðíàÿ òåðöèÿ (↑4 ïîëóòîíà) èëè ìàëàÿ ñåêñòà (↓3 ïîëóòîíà îò âåðõíåé íîòû). Ïðèìåð: Ìåëîäèÿ E + àêêîðä C → G (òåðöèÿ) èëè A (ñåêñòà îò C). Åñëè àêêîðä ìèíîðíûé (Am, Dm7): Ãàðìîíèÿ = ìèíîðíàÿ òåðöèÿ (↑3 ïîëóòîíà) èëè áîëüøàÿ ñåêñòà (↓4 ïîëóòîíà). Ïðèìåð: Ìåëîäèÿ E + àêêîðä Am → G (òåðöèÿ) èëè C (ñåêñòà îò A). Êîä (Python-ïñåâäîêîä): python def harmonize(melody_note, current_chord): if current_chord.type == "maj": return [melody_note + 4, melody_note - 3] # Òåðöèÿ è ñåêñòà else: return [melody_note + 3, melody_note - 4] Øàã 1.2: Ó÷¸ò áàçîâîãî çâóêà àêêîðäà Äîïîëíèòå ãàðìîíèþ íîòîé àêêîðäà (ïðèìà) è êâèíòîé äëÿ ïëîòíîãî çâó÷àíèÿ: Ïðèìåð: Àêêîðä C → äîïóñòèìûå íîòû: C (ïðèìà), E (òåðöèÿ), G (êâèíòà). Ìåëîäèÿ G → ãàðìîíèÿ C èëè E. Ýòàï 2: Ó÷¸ò òèïà àêêîðäà (âåðòèêàëüíàÿ ãàðìîíèÿ) Öåëü: Óëó÷øèòü çâó÷àíèå äëÿ ñëîæíûõ àêêîðäîâ (ñåïòàêêîðäû, sus4, dim). Øàã 2.1: Ñåïòàêêîðäû Äëÿ G7 (äîìèíàíòñåïòàêêîðä) äîáàâëÿåì ìàëóþ ñåïòèìó (F): Ïðèìåð: Ìåëîäèÿ B → ãàðìîíèÿ D (òåðöèÿ) + F (ñåïòèìà). Äëÿ m7 (ìèíîðíûé ñåïòàêêîðä) — áîëüøóþ ñåïòèìó (G♯ â Ami7). Øàã 2.2: Àêêîðäû ñ ðàñøèðåíèÿìè Äëÿ Cadd9 ðàçðåøàåì íîíó (D) â ãàðìîíèè. Ïðèìåð: Ìåëîäèÿ E → ìîæíî äîáàâèòü D (íîíà) âìåñòî òåðöèè. Ýòàï 3: Êîíòåêñò è ïëàâíîñòü ãîëîñîâåäåíèÿ Öåëü: Èçáåãàòü ñêà÷êîâ è äèññîíàíñîâ ïðè ñìåíå àêêîðäîâ. Øàã 3.1: Ïðàâèëà ãîëîñîâåäåíèÿ Äâèæåíèå ãîëîñîâ: Ïðåäïî÷èòàéòå øàãè íà ñåêóíäó/òåðöèþ, à íå ñêà÷êè. Ïðèìåð: Ïðåäûäóùàÿ ãàðìîíèÿ: E (äëÿ àêêîðäà C). Íîâûé àêêîðä: Am → ëó÷øå âûáðàòü C (øàã íà òåðöèþ), à íå G (ñêà÷îê íà êâèíòó). Øàã 3.2: Ðàçðåøåíèå äèññîíàíñîâ Åñëè ìåëîäèÿ ñîäåðæèò íåàêêîðäîâûé òîí (íàïðèìåð, F íàä C), ãàðìîíèÿ äîëæíà äâèãàòüñÿ â áëèæàéøóþ àêêîðäîâóþ íîòó: F → E (äëÿ C) èëè G (äëÿ Am). Ýòàï 4: Ðàñøèðåííûå ïðàâèëà (òîíàëüíîñòü è ìîäóëÿöèè) Öåëü: Ó÷åñòü òîíàëüíûé êîíòåêñò áåç åãî ÿâíîãî óêàçàíèÿ. Øàã 4.1: Àâòîîïðåäåëåíèå òîíàëüíîñòè Àíàëèçèðóéòå ïîñëåäîâàòåëüíîñòü àêêîðäîâ (íàïðèìåð, C → G7 → C = C-ìàæîð). Àëãîðèòì: Çàïîìèíàéòå ïîñëåäíèå 3-4 àêêîðäà. Èùèòå äîìèíàíòó (G7) → ïðåäïîëàãàéòå òîíèêó (C). Øàã 4.2: Ìîäóëÿöèè Ïðè ðåçêîé ñìåíå àêêîðäà (íàïðèìåð, C → F♯m), âðåìåííî ïåðåêëþ÷àéòå ãàðìîíèçàöèþ íà íîâûé ëàä. Ïðèìåð: Àêêîðä F♯m → èíòåðïðåòèðóéòå êàê D-ìàæîð (îòíîñèòåëüíûé ìàæîð) è èñïîëüçóéòå åãî äèàòîíèêó. Ýòàï 5: Îáðàáîòêà èñêëþ÷åíèé Ïðîáëåìíûå ñëó÷àè è ðåøåíèÿ: Õðîìàòè÷åñêèå íîòû: Åñëè ìåëîäèÿ èãðàåò G♯ íàä C, çàìåíÿéòå íà G (íàòóðàëüíóþ) èëè A (äëÿ ïëàâíîñòè). Áëóæäàþùèå àêêîðäû: Äëÿ àêêîðäîâ âíå òîíàëüíîñòè (íàïðèìåð, Db7 â C-ìàæîðå) èñïîëüçóéòå ýíãàðìîíè÷åñêóþ çàìåíó (Db7 = C#7 → ðàçðåøàéòå â F#m). Èíñòðóìåíòû äëÿ òåñòèðîâàíèÿ Ïðîèãðûâàòåëü àêêîðäîâ + MIDI-êëàâèàòóðà: Çàïóñêàéòå àêêîðäû ëåâîé ðóêîé, ïðîâåðÿéòå ãàðìîíèþ ïðàâîé. Âèçóàëèçàöèÿ: Îòîáðàæàéòå íîòû ãàðìîíèè íà ïèàíîðîëëå (íàïðèìåð, â MuseScore èëè DAW). Þíèò-òåñòû: python assert harmonize("E", "C") == ["G"] # Ìàæîðíàÿ òåðöèÿ assert harmonize("E", "Am") == ["C"] # Ñåêñòà îò ìèíîðà Ïðèìåð ïðîãðåññèè äëÿ îòëàäêè Ïðîñòàÿ: C → G7 → Am → F (C-ìàæîð). Ìåëîäèÿ: E → D → C → A. Ãàðìîíèÿ: G → B → E → C. Ñ ìîäóëÿöèåé: C → E7 → Am (ìîäóëÿöèÿ â A-ìèíîð). Ìåëîäèÿ: G → G♯ → E. Ãàðìîíèÿ: E → B → C (E7 òðàêòóåòñÿ êàê äîìèíàíòà ê Am). ×òî äàëüøå? Íà÷íèòå ñ Ýòàïà 1, ðåàëèçóéòå òåðöèè/ñåêñòû. Äîáàâüòå Ýòàï 2 äëÿ ñåïòàêêîðäîâ. Óñëîæíÿéòå ëîãèêó ïî ìåðå òåñòèðîâàíèÿ íà ðåàëüíûõ ïðîãðåññèÿõ. Êëþ÷åâàÿ èäåÿ: "Îøèáî÷íàÿ" ãàðìîíèÿ èíîãäà äà¸ò èíòåðåñíûé çâóê — ôèêñèðóéòå òîëüêî ÿâíûå äèññîíàíñû. |
|
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 15.05.2025 18:12 |
|
---|---|---|
«Think Different» ![]() |
Êàê ïîíÿòü "Îøèáî÷íàÿ" ãàðìîíèÿ èíîãäà äà¸ò èíòåðåñíûé çâóê — ôèêñèðóéòå òîëüêî ÿâíûå äèññîíàíñû"? ========================== Ýòî âàæíûé ôèëîñîôñêèé è ïðàêòè÷åñêèé ìîìåíò â ìóçûêå, îñîáåííî â èìïðîâèçàöèè è àëãîðèòìè÷åñêîé ãàðìîíèçàöèè. Ðàçáåð¸ì åãî íà ïðèìåðàõ, ÷òîáû áûëî ïîíÿòíî, ãäå «îøèáêà» ñòàíîâèòñÿ «èíòåðåñíûì ðåøåíèåì», à ãäå — ðåàëüíîé ïðîáëåìîé. 1. ×òî òàêîå «îøèáî÷íàÿ ãàðìîíèÿ»? Ýòî ñî÷åòàíèå íîò, êîòîðîå ôîðìàëüíî íàðóøàåò êëàññè÷åñêèå ïðàâèëà (íàïðèìåð, ïàðàëëåëüíûå êâèíòû, òðèòîí â ìåëîäèè, íåðàçðåø¸ííûé äèññîíàíñ), íî ìîæåò çâó÷àòü âûðàçèòåëüíî â îïðåäåë¸ííîì êîíòåêñòå. Ïðèìåðû: Äæàç: Àêêîðä C7♯9 (ñ äèññîíèðóþùèì G♯) — òåõíè÷åñêè «îøèáêà» â C-ìàæîðå, íî ýòî ôèðìåííûé çâóê áëþçà. Ðîê: Power-àêêîðä E5 + íîòà F â ìåëîäèè — ñîçäà¸ò íàïðÿæåíèå, íî ðàáîòàåò â õàðä-ðîêå. Êëàññèêà: ×àéêîâñêèé íàìåðåííî èñïîëüçóåò «çàïðåù¸ííûå» ïàðàëëåëè äëÿ äðàìàòèçìà. 2. Êàêèå äèññîíàíñû — «ÿâíûå», à êàêèå — «èíòåðåñíûå»? Ôèêñèðóéòå (èñïðàâëÿéòå) òîëüêî ýòè ÿâíûå äèññîíàíñû: Ìàòðèöà äèññîíàíòíîñòè (÷åì âûøå ÷èñëî, òåì õóæå): 0 (êîíñîíàíñ): Ïðèìà, îêòàâà, êâèíòà. 1 (ìÿãêèé äèññîíàíñ): Áîëüøèå/ìàëûå òåðöèè è ñåêñòû. 2 (ðåçêèé äèññîíàíñ): Ñåêóíäû, òðèòîíû, ìàëûå ñåïòèìû. 3 (êàêîôîíèÿ): Áîëüøèå ñåïòèìû, êëàñòåðû (íàïðèìåð, C + C♯). → Ïðàâèëî: Åñëè ìåëîäèÿ è ãàðìîíèÿ äàþò ñî÷åòàíèå ñ îöåíêîé ≥2, ñòîèò ïåðåñìîòðåòü íîòó. Êîíòåêñòíûå îøèáêè: Íåðàçðåø¸ííûé âåäóùèé òîí: Ìåëîäèÿ èãðàåò B (ââîäíûé òîí â C-ìàæîðå), à àêêîðä ñìåíÿåòñÿ íà Am (íå ðàçðåøàÿ â C). Ïàðàëëåëüíûå îêòàâû/êâèíòû: Äâå ãîëîñîâûå ëèíèè äâèæóòñÿ îäèíàêîâûìè èíòåðâàëàìè — çâó÷èò ïðèìèòèâíî. Îñòàâëÿéòå «èíòåðåñíûå» äèññîíàíñû: Ïðîõîäÿùèå/âñïîìîãàòåëüíûå íîòû: Ìåëîäèÿ èãðàåò F ìåæäó E è G íàä àêêîðäîì C — ýòî âðåìåííûé äèññîíàíñ, êîòîðûé ðàçðåøàåòñÿ. Àëüòåðèðîâàííûå àêêîðäû: G7♭9 â äæàçå — äèññîíàíñ, íî ýòî «ïðàâèëüíûé» äèññîíàíñ. Ïåäàëè: Îðãàííûé ïóíêò íà C â áàñó, ïîêà ãàðìîíèÿ ìåíÿåòñÿ — ñîçäà¸ò íàïðÿæåíèå, íî îñîçíàííî. 3. Êàê ýòî ðåàëèçîâàòü â àëãîðèòìå? Øàã 1: Îöåíêà äèññîíàíñà python def is_dissonant(note1, note2): interval = abs(note1 - note2) % 12 # Èíòåðâàë â ïîëóòîíàõ dissonant_intervals = {1, 2, 6, 10, 11} # Ñåêóíäû, òðèòîíû, ñåïòèìû return interval in dissonant_intervals Øàã 2: Ïðàâèëà ôèëüòðàöèè Æ¸ñòêîå ïðàâèëî: Åñëè íîòà ìåëîäèè è íîòà ãàðìîíèè îáðàçóþò òðèòîí (interval = 6), çàìåíè ãàðìîíèþ íà áëèæàéøóþ êîíñîíèðóþùóþ íîòó. Ïðèìåð: Ìåëîäèÿ B + àêêîðä F7 → B è F = òðèòîí → çàìåíè F íà E♭ (ìàëóþ òåðöèþ). Ãèáêîå ïðàâèëî: Åñëè äèññîíàíñ äëèòñÿ ìåíüøå äîëè òàêòà (íàïðèìåð, 16-ÿ íîòà â ïîòîêå âîñüìûõ), îñòàâü åãî êàê ïðîõîäÿùèé. Øàã 3: Êîíòåêñòíûé àíàëèç Åñëè àêêîðä G7 (äîìèíàíòà), ðàçðåøàéòå äèññîíàíñû (íàïðèìåð, F è B) â íîòû òîíèêè (E è C äëÿ C-ìàæîðà). Åñëè àêêîðä Csus4, òî äèññîíàíñ (F ïðîòèâ G) — ýòî ÷àñòü ñàóíäà, íå èñïðàâëÿòü. 4. Ïðèìåðû èç ïðàêòèêè Õîðîøàÿ «îøèáêà»: Àêêîðä: C Ìåëîäèÿ: E → F → G (F — ïðîõîäÿùàÿ íîòà) Ãàðìîíèÿ: G → A → E Ðåçóëüòàò: Ìèìîë¸òíûé äèññîíàíñ F+A (òåðöèÿ), íî çâó÷èò ñâåæî. Ïëîõàÿ îøèáêà: Àêêîðä: C Ìåëîäèÿ: G → G♯ → A Ãàðìîíèÿ: E → E → F Ïðîáëåìà: G♯ + E = óâåëè÷åííàÿ ñåêñòà (ðåçêî), îñîáåííî åñëè çàäåðæàòüñÿ. 5. Ñîâåòû äëÿ âàøåãî ãàðìîíèçàòîðà Ðåæèìû ñòðîãîñòè: Ñòðîãèé: Èñïðàâëÿòü âñå äèññîíàíñû ≥2. Äæàçîâûé: Ðàçðåøàòü òîëüêî òðèòîíû. Ýêñïåðèìåíòàëüíûé: Èãíîðèðîâàòü âñå ïðàâèëà, çàïèñûâàòü ðåçóëüòàò — èíîãäà ïîëó÷èòñÿ ãåíèàëüíî. Âèçóàëèçàöèÿ: Ïîìå÷àéòå äèññîíèðóþùèå íîòû êðàñíûì â èíòåðôåéñå, íî äàâàéòå âûáîð — èñïðàâèòü èëè îñòàâèòü. Òåñòîâûå ïðîãðåññèè: Ïðîâåðÿéòå àëãîðèòì íà òàêèõ ïðèìåðàõ: C → G7 → C (êëàññèêà, äîëæíî áûòü ãëàäêî). Cm → Fm → B♭7 (áëþç, äèññîíàíñû óìåñòíû). Îáðàòíàÿ ñâÿçü îò ìóçûêàíòîâ: Åñëè æèâîé ïèàíèñò ãîâîðèò «çâó÷èò ñòðàííî, íî êðóòî» — ýòî óñïåõ. Åñëè «ôàëüøèâèò» — èñïðàâëÿéòå. Êëþ÷åâàÿ ìûñëü Ìóçûêà — ýòî íå ìàòåìàòèêà. Àëãîðèòì äîëæåí ôèëüòðîâàòü ÿâíûå ëÿïû (íàïðèìåð, ñëó÷àéíûå êëàñòåðû), íî íå óáèâàòü êðåàòèâ. Êàê ñêàçàë Ø¸íáåðã: «Åñëè ýòî çâó÷èò õîðîøî — ýòî ïðàâèëüíî». Âàø ãàðìîíèçàòîð ìîæåò ñòàòü ñîàâòîðîì, à íå ïðîñòî êîððåêòîðîì. |
|
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 15.05.2025 18:17 |
|
---|---|---|
«Think Different» ![]() |
Ïðèÿòíî óäèâë¸í! Óäà÷è! |
|
|
Àâòîð |
Òåìà: Re: Òðåáóåòñÿ ïîìîùü äëÿ ñîçäàíèÿ ðåàë-òàéì ãàðìîíèçàòîðà
Âðåìÿ: 17.05.2025 21:24 |
|
---|---|---|
Ñîâåòñêèé Ñîþç Ãèòàðà, êëàâèøè ![]() ![]() |
liusi, ñïàñèáî çà ðàçâ¸ðíóòûé îòâåò ïî ñóùåñòâó (åñòü õîðîøèé ïîâîä äëÿ ðàçìûøëåíèé)! | |
|