import mido
from pydub import AudioSegment
def midi_to_mp3(midi_path, mp3_path):
# Load MIDI file
midi = mido.MidiFile(midi_path)
# Create an empty list to store notes
notes = []
for track in midi.tracks:
# Iterate through MIDI messages in track
for msg in track:
# Check if message is a note on event
if msg.type == 'note_on':
# Add note (pitch, velocity, time) to notes list
notes.append((msg.note, msg.velocity, msg.time))
tempo = 120
duration = 1000
segments = []
for note in notes:
pitch, velocity, time = note
# Calculate duration of note based on tempo and time
note_duration = int(duration * (mido.tick2second(time, midi.ticks_per_beat, tempo) * 1000))
# Create audio segment for note
segment = AudioSegment.silent(duration=note_duration)
segments.append(segment)
audio = sum(segments)
audio.export(mp3_path, format="mp3")
midi_to_mp3("melody.mid", "output.mp3")
This is the full error message:
C:\Dipika\Study\musicrypt\env\Scripts\python.exe "C:/Program Files/JetBrains/PyCharm 2023.1.3/plugins/python/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 56448 --file C:\Dipika\Study\musicrypt\musicrypt.py
Connected to pydev debugger (build 231.9161.41)
C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\utils.py:198: RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work
warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning)
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\pydevd.py", line 1496, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:\Dipika\Study\musicrypt\musicrypt.py", line 70, in
convert_to_mp3('melody.mid', 'audio.mp3')
File "C:\Dipika\Study\musicrypt\musicrypt.py", line 46, in convert_to_mp3
midi_audio = AudioSegment.from_file(midi_path, format="midi")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\audio_segment.py", line 728, in from_file
info = mediainfo_json(orig_file, read_ahead_limit=read_ahead_limit)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\utils.py", line 274, in mediainfo_json
res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\Admin\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\_pydev_bundle\pydev_monkey.py", line 585, in new_CreateProcess
return getattr(_subprocess, original_name)(app_name, patch_arg_str_win(cmd_line), *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified
python-BaseException
Process finished with exit code 1
Я пытаюсь преобразовать текст в мелодию, используя библиотеку music21, которая, к сожалению, выдает на выходе формат среднего файла. Я не могу воспроизвести этот средний файл ни через один веб-браузер. Вот почему я попытался преобразовать файл Mid с помощью библиотек Mido и pydub. Но каждый раз, когда я запускаю это, моя система выдает ошибку «Система не может найти указанный файл». Мой файл melody.mid находится по тому же пути, что и файл Python.
Я ожидал получить в конце mp3-файл
for track in midi.tracks: # Iterate through MIDI messages in track for msg in track: # Check if message is a note on event if msg.type == 'note_on': # Add note (pitch, velocity, time) to notes list notes.append((msg.note, msg.velocity, msg.time))
tempo = 120 duration = 1000
segments = []
for note in notes: pitch, velocity, time = note # Calculate duration of note based on tempo and time note_duration = int(duration * (mido.tick2second(time, midi.ticks_per_beat, tempo) * 1000)) # Create audio segment for note segment = AudioSegment.silent(duration=note_duration) segments.append(segment)
audio = sum(segments)
audio.export(mp3_path, format="mp3")
midi_to_mp3("melody.mid", "output.mp3")
[/code] [code]This is the full error message:
C:\Dipika\Study\musicrypt\env\Scripts\python.exe "C:/Program Files/JetBrains/PyCharm 2023.1.3/plugins/python/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 56448 --file C:\Dipika\Study\musicrypt\musicrypt.py Connected to pydev debugger (build 231.9161.41) C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning) C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\utils.py:198: RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning) Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\pydevd.py", line 1496, in _exec pydev_imports.execfile(file, globals, locals) # execute the script ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "C:\Dipika\Study\musicrypt\musicrypt.py", line 70, in convert_to_mp3('melody.mid', 'audio.mp3') File "C:\Dipika\Study\musicrypt\musicrypt.py", line 46, in convert_to_mp3 midi_audio = AudioSegment.from_file(midi_path, format="midi") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\audio_segment.py", line 728, in from_file info = mediainfo_json(orig_file, read_ahead_limit=read_ahead_limit) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Dipika\Study\musicrypt\env\Lib\site-packages\pydub\utils.py", line 274, in mediainfo_json res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Admin\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\Admin\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1538, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\JetBrains\PyCharm 2023.1.3\plugins\python\helpers\pydev\_pydev_bundle\pydev_monkey.py", line 585, in new_CreateProcess return getattr(_subprocess, original_name)(app_name, patch_arg_str_win(cmd_line), *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 2] The system cannot find the file specified python-BaseException
Process finished with exit code 1
[/code] Я пытаюсь преобразовать текст в мелодию, используя библиотеку music21, которая, к сожалению, выдает на выходе формат среднего файла. Я не могу воспроизвести этот средний файл ни через один веб-браузер. Вот почему я попытался преобразовать файл Mid с помощью библиотек Mido и pydub. Но каждый раз, когда я запускаю это, моя система выдает ошибку «Система не может найти указанный файл». Мой файл melody.mid находится по тому же пути, что и файл Python. Я ожидал получить в конце mp3-файл
Я пытаюсь использовать Mido с Python 3.5.1. Я успешно установил его (в командной строке написано «mido-1.1.14 успешно установлен»), но когда я попытался импортировать его в Python, он выдал сообщение
Я пытаюсь использовать mido с Python 3.5.1. I have successfully installed it (it says successfully installed mido-1.1.14 in command prompt) but when I tried to import it in python, it gives me the message
Для этой программы я пытаюсь найти атрибуты Midi-файла, такие как частота и продолжительность каждой ноты, и сохранить их в базе данных (Sqlite3).
Мне это удалось. мне удалось выполнить частотную часть, однако мне не удалось заставить работать...
Я хотел бы в реальном времени перевести одну MIDI-последовательность в другую MIDI-последовательность. Я не совсем уверен, но думаю, что это возможно с помощью jack или alsa (еще jack, верно?), например, с этой библиотекой Haskell.
Но предположим,...
Я хочу писать программы на C/C++, которые принимают входные данные с MIDI-устройства.
MIDI-устройство подключается к моему компьютеру с помощью USB-разъема.
Я ищу библиотеку (реализованную на C/C++), которую можно использовать для чтения...