2016-02-15 4 views
2

Я пишу простой синтезатор.Запись в звуковой файл в netlogo: или как настроить netlogo

Это совокупность моего кода

turtles-own [f] 
    to setup 
    ca 
    file-close 
    file-open "tune.snd" 
    crt 1 [set f 100] 
    reset-ticks 
end 

to go 
    file-write mean [sin(2 * pi * f * ticks)] of turtles 
    tick 
end 

когда я бегу

Repeat 44100 [go] file-close 

и загрузить вывод в звуковой редактор в 44100 герц я получаю одну секунду звука. Пока все хорошо. К сожалению, это означает, что это тон 100 Гц, но вместо этого это одна секунда чего-то гораздо более высокого уровня [более 16 кГц].

Что я делаю неправильно?

+0

Из любопытства, какой звуковой редактор отображает список таких чисел как звуковой файл? –

+0

goldwave занимает много экзотических форматов, включая список с плавающей запятой с разделителями-запятыми. Они называют это ASCII точным моно. –

ответ

2

Прежде всего, это потрясающе!

Проблема простая. sin в NetLogo использует градусы, а не радианы.

+0

sin (2 * pi * f * ticks * 0.0174533) все еще около 1k htz. я делаю это неправильно? –

+0

эмпирически обнаружен ответ: sin (f * ticks/122.5) –