Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 16, 2017 17:26:28

Lainelir
Зарегистрирован: 2017-08-15
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Убрать буквы из каждого элемента массива.

 [/from mido import Message, MidiFile, MidiTrack
import re
import itertools
y = []
messages = []
mid = MidiFile('Kovet.mid')
for i, track in enumerate(mid.tracks):
    for msg in track:
        y.append(msg)
print(y)] 
>>>[<meta message midi_port port=0 time=0>, <message sysex data=(126,127,9,1) time=0>, <meta message midi_port port=0 time=0>, <meta message time_signature numerator=4 denominator=4 clocks_per_click=24 notated_32nd_notes_per_beat=8 time=0>,.... и т.д.]

Офлайн

#2 Сен. 16, 2017 17:30:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Убрать буквы из каждого элемента массива.

 for i, track in enumerate(mid.tracks):
    for msg in track:
        y.append(msg)
теперь объясните зачем enumerate и зачем нужно i если не используетрся



Офлайн

#3 Сен. 16, 2017 17:49:30

Lainelir
Зарегистрирован: 2017-08-15
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Убрать буквы из каждого элемента массива.

Суть в том что mido из миди файла создает уникальный массив он выглядит примерно так
Как в таком массиве убрать все кроме чисел?

 [/[<meta message midi_port port=0 time=0>, <message sysex data=(126,127,9,1) time=0>, <meta message midi_port port=0 time=0>, <meta message time_signature numerator=4 denominator=4 clocks_per_click=24 notated_32nd_notes_per_beat=8 time=0>, <meta message key_signature key='C' time=0>, <meta message set_tempo tempo=329670 time=0>, <meta message marker text=' 1'  channel=9 note=53 velocity=44 time=92>, <message note_on channel=9 note=53 velocity=0 time=28>, ... ... ... , <message note_on channel=13 note=84 velocity=100 time=45816>, <message note_on channel=13 note=84 velocity=0 time=239>, <message note_on channel=13 note=84 velocity=100 time=22081>, <message note_on channel=13 note=84 velocity=0 time=239>, <meta message end_of_track time=0>]
]

Офлайн

#4 Сен. 18, 2017 16:35:45

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

Убрать буквы из каждого элемента массива.

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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version