Увеличить или уменьшить ноты в соответствии с музыкальной шкалой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»