0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 4
|
|
1 | |
Виртуальное пианино27.05.2015, 20:31. Показов 2067. Ответов 3
Метки нет (Все метки)
Может кто-то показать, как пишется виртуальное пианино на Basic с помощью объектно-ориентированного подхода? Хотя бы одну октаву. Я в этом полный ноль, не могу понять, с чего начать даже. Если можете на другом языке показать, прошу. Буду очень благодарен, спасибо.
Добавлено через 10 минут Если можете какую-то обучалку дать, тоже буду рад.
0
|
27.05.2015, 20:31 | |
Ответы с готовыми решениями:
3
Создать объект класса Пианино, используя класс Клавиша. Методы: настроить, играть на пианино, нажимать клавишу Пианино в C++ Пианино Пианино |
Модератор
|
||||||
27.05.2015, 22:07 | 3 | |||||
Сообщение было отмечено Памирыч как решение
Решение
2
|
Кормпилятор
|
|
31.05.2015, 04:09 | 4 |
Ввод - клавиатура? MIDI? Или мышеклик? Вывод - Аудио? Системное MIDI? Диалект тоже вероятно не любой. Если вывод - MIDI, то the trick уже пример привёл. Этих примеров с MIDI синтезом полным полно в интернете, действительно штука несложная. Если вывод - аудио, то тут уже всё не так просто. Пути два: либо семплер, либо генерация звука. Если генерация, то это либо полное моделирование всех физических частей и их взаимодействия, либо упрощённая модель в виде простейших синтезов. В случае семплера нужен микшер минимум на 64 канала, с возможностью менять питч звуков, изменяемым звукогашением в реальном времени и очень желательно, чтобы ресемплинг производился с нелинейной интерполяцией, а микшировалось в повышенной частоте(2x хватит, но лучше 4x). Свой микшер это сложно, но терпимо, интерполяция и доп. абилки - очень сложно, т.к. там уже замешаны алгоритмы синхронизации с таймерами. К тому же фортепиано будет фактически бесполезно, если в систему нельзя будет включить фильтры и ревер. При этом нужно будет учесть педаль сустейна, без которой игра на фортепиано - ничто, для этого полезно бы иметь отдельные каналы звука с преднастроенным ревером(+панорама), чтобы программно его подмешивать. На мастер выходе желательно бы иметь эквалайзер. Можно также эмулировать дамперную педаль, для этого подойдёт EQ. А также гармоники при гашении звука(тут и генерация и семплы, и то и другое в плюс). Но все эти задачи блекнут и меркнут перед необходимостью уложить семплы в диапазон памяти, доступный например на x86 системах(1.5-1.6 Гб), добиться нормального звучания, а также оптимизировать работу инструмента для конечного пользователя. Частично это достигается обработками, правильным распределением диапазонов редакции питча, устранением одинаковых повторяющихся velocity, запасом динамического диапазона сигнала(большая битность), возможностью менять кол-во уровней velocity и корректировать кривую velocity(т.е. со ввода). А если в лоб, то алгоритмы lossless компрессии, а также интеллектуальной дисковой буфферизации. Качественный ревер тоже может серьёзно улучшить звучание. Соединяя все эти подзадачи воедино мы получаем адскую смесь. И ООП вам тут не сильно поможет, это банальная алгоритмизация, а также очень ёмкие знания в области мат. анализа и обработки сигналов. Т.е. к чему всё это. Многие думают, вот мол сейчас нафигарю виртуальных инструментов и зашибу бабла(сделал вывод по тому, что те, кто в теме таких вопросов с "почти нуля" на форумах не задают, очевидна смена специализации и чаще делается это именно по данной причине). Поэтому смысл невелик, коммерческий софт не переплюнете 100%, а точнее будет сильно хуже. Ну или у вас должна быть своя студия с живым фортепиано, чтобы можно было и импульсы с нутров корпуса поснимать и отследить резонансы по спектрам для воссоздания их в коде. Да и просто на хороший, живой звук ориентироваться. 1) Программирование (чтобы быть способным запрограммировать звуковые устройства и форматы) 2) Математический анализ (чтобы анализировать и обрабатывать звуковой сигнал) 3) Обработка сигналов (чтобы понимать как представлен сигнал в электронном виде) 4) Физика звука (чтобы представлять как работает инструмент и моделировать его работу) 5) Звукорежиссура (для понимания состава микширования сигналов и получения различных эффектов) 6) Психоакустика (например для изучения восприятия, уровня звукового давления и его компенсации) 7) Теория музыки (РТ строй, частоты, приёмы игры на инструменте, в т.ч. худож.) Ещё для программы надо написать шкуру, что тащит за собой ещё и 8) Дизайн (макеты интерфейса) 9) Программирование пользовательских графических интерфейсов (GUI) 10) Юзабилити (концепт UI, качество интерфейса) Все эти знания берутся из книг, статей, примеров и собственного опыта(который может повторять суть информации из разных источников). Единого источника не видел, всё разбито по областям. Область наукоёмкая кто бы чего не говорил.
3
|
31.05.2015, 04:09 | |
31.05.2015, 04:09 | |
Помогаю со студенческими работами здесь
4
Простое пианино Имитация пианино Midi-Пианино Зацените пианино:) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |