Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Конвертер частот в ноты


Автор: semiono 23.2.2022, 13:48
Здравствуйте, помогите написать конвертер частот в ноты + центы.
Я не программист, но если бы был готовый код Perl, подправил бы для своих задач.
Мне нужна программа с выводом результата в файл -> output.txt
Тоесть как-то написал списочек, скажем 10 пунктов и получил другой список.
Либо внутри кода, либо из внешнего файла input.txt.
Смысл в том чтобы избежать рутинной работы, скажем 100 строк вручную.
Есть примерно Python код, но он без центов, хотя бы его в Perl переписать!
Я бы потом say >>TXT добавил, хотя всё сам боюсь не справится.
Ещё есть скрипт html, там всё довольно точно, но он тоже "онлайн".
Пример: A4 plus 17 cents, либо A4 +17, формат частот 440.00
Пожалуйста!

Код


import math
 
def freq_to_note(freq):
    notes = ['A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#']
 
    # formula taken from https://en.wikipedia.org/wiki/Piano_key_frequencies
    note_number = 12 * math.log2(freq / 440) + 49  
    note_number = round(note_number)
        
    note = (note_number - 1 ) % len(notes)
    note = notes[note]
    
    octave = (note_number + 8 ) // len(notes)
    
    return note, octave


Можно на Пайтоне, только как центы добавить и вывод списка в файл?
Или к хтмл вывод списка прикрутить как можно? Любые решения!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)