Member 11287123 Ответов: 4

Я хочу закодировать музыкальные ноты в vb.net. Я не хочу использовать звуковые файлы


Я привык к vb6, поэтому мне нужно научиться программировать в vb.net так что я могу кодировать музыку или звуковые эффекты для хобби.

Что я уже пробовал:

Я попытался использовать свой код vb6, но это не совсем то же самое, что vb.net 2017 год. Мне просто нужен образец, который не использует музыкальные файлы, просто введите значения в коде.

4 Ответов

Рейтинг:
2

RickZeeland

Вероятно, вы можете сделать это с помощью библиотеки Naudio: GitHub - naudio/NAudio: аудио - и MIDI-библиотека для .NET[^]
Я пытался найти ... VB.NET пример для вас, но не смог найти его, большинство примеров находятся в C#.


Maciej Los

5!

Рейтинг:
2

Maciej Los

Если вы интересуетесь нотной грамотой, пожалуйста, прочтите это: В музыкальной нотации .Чистая[^]


Рейтинг:
1

OriginalGriff

Это не так просто! Вы можете посмотреть здесь: Виртуальное пианино на языке Си#[^] - он использует один WAV-файл, который программно изменяется для изменения частоты, что для генерации музыки, вероятно, является лучшим "звуком", чем "чистый" тон.
Код написан на C#, но это довольно очевидно, и онлайн-конвертеры могут помочь вам преобразовать его в VB для .NET

Хотя я бы настоятельно рекомендовал вам полностью отказаться от VB и переключиться на C#. VB6 очень сильно отличается от "современного" VB, и у вас будет много привычек VB6, которые совсем не помогут вам создать "хороший" VB-код. Переход на C# "разорвет связь" с этими вредными привычками и, надеюсь, облегчит ваше долгосрочное кодирование. Опытный программист должен быть в состоянии подобрать C# между днем и неделей (в зависимости от того, насколько вы опытны) - iutr;s teh .NET framework, который требует времени для изучения (и вам это нужно как для "современной" разработки VB, так и для разработки C#).

Здесь есть бесплатная книга: https://www.robmiles.com/c-yellow-book[^] что хорошо его покрывает.


Maciej Los

5!

Рейтинг:
1

raddevus

Вы можете воспроизвести тон на любой частоте с помощью следующих действий:

Dim freq As Integer = Integer.Parse(txtFrequency.Text)
Dim duration As Integer = Integer.Parse(txtDuration.Text)

System.Console.Beep(freq, duration)


Maciej Los

5ed!
Коротко И По Существу!