Увеличить или уменьшить ноты в соответствии с музыкальной шкалойHtml

Программисты Html
Ответить
Anonymous
 Увеличить или уменьшить ноты в соответствии с музыкальной шкалой

Сообщение Anonymous »

Когда я набираю музыкальную заметку, сделайте в Textarea, и нажимаю кнопку вверх, она идет на то, чтобы сделать#, а шкала «notes_sharps» работает идеально, будь то в верхнем или нижнем регистре (делай или делай). < /p>
Я хочу: < /p>

, если я пишу реф, нажмите на кнопку «Наденьте». ['do', 'reb', 're', 'mib', 'mi', 'fa', 'solb', 'sol', 'lab', 'la', 'sib', 'si'] < /code>
Теперь он читает шкалу "notes_sharps". ρεb, чтобы следовать соответствующим шкалам,
"notes_sharps_gr" и "notes_flats_gr" < /p>
< /li>
< /ol>
Как это программировать? Прошла неделя, и я все еще на этом результате .. заранее спасибо < /p>

Код: Выделить всё

const
textareaId = document.querySelector('#textarea'),
notes_Sharps = ['do','do#','re','re#','mi','fa','fa#','sol','sol#','la','la#','si'],

notes_Flats =  ['do','reb','re','mib','mi','fa','solb','sol','lab','la','sib','si'],
notes_Sharps_Gr =  ['ντο','ντο#','ρε','ρε#','μι','φα','φα#','σολ','σολ#','λα','λα#','σι'],
notes_Flats_Gr =  ['ντο','ρεb','ρε','μιb','μι','φα','σολb','σολ','λαb','λα','σιb','σι'],

notesExchg = {
reb:'do#',
mib:'re#',
solb:'fa#',
lab:'sol#',
sib:'la#'
},

changeNotes = val => notesExchg[val.toLowerCase()] || val;

function stepOn(stepNotes = +1) {
let textarea_regex = textareaId.value.split(/([A-Za-zÉé]+\#?)/);

textareaId.value = textarea_regex.reduce((acc, Nx) => {
if (!Boolean(Nx))
return acc;

let flatToSharp = changeNotes(Nx),
isUpC = Nx[0].toUpperCase() === Nx[0],
noteSearch = notes_Sharps.findIndex(x=>flatToSharp.toLowerCase()===x);

if (noteSearch===-1)
acc += Nx;

else {
let NotesStep = notes_Sharps[(noteSearch + stepNotes + notes_Sharps.length) % notes_Sharps.length];
acc += isUpC ? NotesStep.toUpperCase() : NotesStep;
}
return acc;
}, '')
}< /code>
Up
Down






Подробнее здесь: https://stackoverflow.com/questions/795 ... usic-scale
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»