Перейти к публикации
Форум - ComputerCraft
kotik_prikol

opencomputers OpenPiano

Рекомендованные сообщения

Системные требования:

  • Компьютер с монитором и видеокарта 3-ого уровня
  • Интернет карта чтобы скачать с pastebin

Скачать:
pastebin run Aqt5rgP9 Install  
 

Запуск:
piano

 

95e58eb3c14c.png

post-18637-0-48151200-1486468498_thumb.png

Изменено пользователем kotik_prikol
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чтобы не качать по отдельности библиотеку forms и саму программу, можно зафигачить это в репозиторий.

Тогда надо будет качать отдельно клиент, а потом с него ставить командой hpm install openpiano:D

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
@@kotik_prikol, Неправильно ты, Дядя Федор, пианино настраиваешь. Надо его по логарифмической шкале настраивать, так приятнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что это даст?

 

@@kotik_prikol, Неправильно ты, Дядя Федор, пианино настраиваешь. Надо его по логарифмической шкале настраивать, так приятнее.А

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я придумал можно просто написать установшик.

Чтобы не качать по отдельности библиотеку forms и саму программу, можно зафигачить это в репозиторий.

Тогда надо будет качать отдельно клиент, а потом с него ставить командой hpm install openpiano:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я придумал можно просто написать установшик.

 

Да, тоже можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, тоже можно.

local internet = require("internet")
os.execute("pastebin get JK7hfdmb OpenPiano")
os.execute("pastebin get iKzRve2g lib/forms.lua")
--Вроде так 
Изменено пользователем kotik_prikol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему нельзя просто залить в репозиторий и не париться?

Лень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что это даст?

Это позволит тебе оправдать название «Пианино», т. к. без настройки в соответствии с хроматическим звукорядом даже настоящее пианино превращается в ящик со струнами, клавишами и молоточками.
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Это позволит тебе оправдать название «Пианино», т. к. без настройки в соответствии с хроматическим звукорядом даже настоящее пианино превращается в ящик со струнами, клавишами и молоточками.

Как это сделать?Если не секрет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
local internet = require("internet")

os.execute("pastebin get JK7hfdmb OpenPiano")

os.execute("pastebin get iKzRve2g lib/forms.lua")

--Вроде так

Вообще-то вместо local internet = require internet надо local os = require("os")

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще-то вместо local internet = require internet надо local os = require("os")

 

Точнее ничего не надо.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Конечно же, не секрет.Частоты настройки фортепиано

Правильно я понял что мне надо поменять гц

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Правильно я понял что мне надо поменять гц

Там экспоненциальная зависимость частоты от ноты, вроде.

Можно было бы обойтись одной процедурой ButtononClick для всех клавиш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там экспоненциальная зависимость частоты от ноты, вроде.

Можно было бы обойтись одной процедурой ButtononClick для всех клавиш.

И как это сделать,если только начал писать программы на lua

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И как это сделать,если только начал писать программы на lua

function ButtononClick(self, user)
  computer.beep(self.freq, 0.5)
end

Button1=Form1:addButton(41,7,"До",ButtononClick)
Button1.H=3
Button1.W=13
Button1.freq=264

Button2=Form1:addButton(41,11,"Ре",ButtononClick)
Button2.H=3
Button2.W=13
Button2.freq=297
--и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Правильно я понял что мне надо поменять гц

Именно так.

Там экспоненциальная зависимость частоты от ноты, вроде.

Экспоненциальная. В принципе, всё можно вычислить. Частота каждого полутона увеличивается в корень двенадцатой степени из двух. Учитывая, что каждая октава разделена на 12 полутонов, то полутона любой октавы имеют частоту в два раза большую полутонов предыдущей октавы. Ориентиром служит нота Ля первой октавы, равная 440 Гц. Частоты любых других полутонов легко вычисляются из нее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Именно так.

Экспоненциальная. В принципе, всё можно вычислить. Частота каждого полутона увеличивается в корень двенадцатой степени из двух. Учитывая, что каждая октава разделена на 12 полутонов, то полутона любой октавы имеют частоту в два раза большую полутонов предыдущей октавы. Ориентиром служит нота Ля первой октавы, равная 440 Гц. Частоты любых других полутонов легко вычисляются из нее.

 

743746018b31.png

 

 

Так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что вы тут за велосипеды придумываете? Давно уже есть готовый алгоритм для поиска частот нот разных тональностей в стандартной библиотеке note.

Неужели вы не знали?

 

P.S. Прога простенькая. Но раз проги пишут редко в последнее время, то не стану осуждать вручение медали за такой код.

 

P.P.S. Не понимаю, зачем для такой простенькой проги такие требования делать. Я даже для своей игры в змейку сделал такие требования, что в неё можно играть хоть на экранах первого уровня на самых слабых компах. А тут, всего лишь прога для который не нужна красивая графика, а требования сразу экран 3 уровня с видеокартой. Зачем? Я думаю хорошая программа должна быть гибкой и универсальной, подходить всем и нубам и папкам. А ты лишний раз для простой программы завышаешь требования.

Изменено пользователем qwertyMAN

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так?

Не так. На пианино две клавиши Ля никак не могут находиться рядом. Или я не понял вопроса.

Что вы тут за велосипеды придумываете? Давно уже есть готовый алгоритм для поиска частот нот разных тональностей в стандартной библиотеке note. Неужели вы не знали?

Велосипед – понятие, зависящее от контекста. Нет смысла занимать оперативную память подключенной библиотекой, когда частота ноты вычисляется по формуле 440*math.pow(2,offset/12), где offset – смещение полутона относительно ноты Ля первой октавы, положительное – в сторону повышения и отрицательное – с сторону понижения тона

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не так. На пианино две клавиши Ля никак не могут находиться рядом. Или я не понял вопроса.

Он наверное даже в гугле не смог написать "Клавиатура пианино". Он говорил что типо ему лень... и всё такое...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Не так. На пианино две клавиши Ля никак не могут находиться рядом. Или я не понял вопроса.Велосипед – понятие, зависящее от контекста. Нет смысла занимать оперативную память подключенной библиотекой, когда частота ноты вычисляется по формуле 440*math.pow(2,offset/12), где offset – смещение полутона относительно ноты Ля первой октавы, положительное – в сторону повышения и отрицательное – с сторону понижения тона

Во первых, это конечно дело каждого, писать велосипед или нет, но оправдываться заниманием этой мизерной памяти на библиотеку как-то не камильфо. К тому же в библиотеки и другие полезные функции есть.

Во вторых насчёт клавишь клавиатуры. Скорее всего их нет, потому что он тестирует прогу. Пока что он располагает кнопки вертикально. А на скрине где нота другой тональности, она смещена по горизонтали. И что тут плохого? Будет удобненькая таблица, как я понял по скринам. 7 в высоту и не знаю сколько в ширину.

По этому поводу наезды необоснованы. Кнопки в отличии от клавиш можно располагать в любом порядке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Не так. На пианино две клавиши Ля никак не могут находиться рядом. Или я не понял вопроса.

Я нажимаю на кнопки он просто пердит код:http://pastebin.com/iCNA47Ww

Чёрные кнопки не работают https://puu.sh/tTFz1/6d35bd8e1e.png

Изменено пользователем Alex
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я нажимаю на кнопки он просто пердит код:http://pastebin.com/iCNA47Ww

Это от того, что выбранные тобой частоты лежат на три октавы ниже первой. Не всякая звуковая система способна адекватно передать столь низкие звуки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Это от того, что выбранные тобой частоты лежат на три октавы ниже первой. Не всякая звуковая система способна адекватно передать столь низкие звуки.

Ну как бы в OpenComputers ограничения по диапазону частот. Он и не должен их играть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну как бы в OpenComputers ограничения по диапазону частот. Он и не должен их играть.

Ограничения есть, но именно эти частоты воспроизводить должен:

 

Supports frequencies from 20 to 2000Hz, with a duration of up to 5 seconds.

Вопрос лишь в том, насколько адекватным будет воспроизведение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это от того, что выбранные тобой частоты лежат на три октавы ниже первой. Не всякая звуковая система способна адекватно передать столь низкие звуки.

Насяника всё сделали

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×