Download the Guru IA app

Android and iOS

Foto de perfil

Ronald

SENT BY THE APP
Estudos Gerais04/19/2025

```python from midiutil import MIDIFile # Cria um novo arqu...

from midiutil import MIDIFile

# Cria um novo arquivo MIDI com 1 faixa
tempo = 65  # BPM
midi = MIDIFile(1)
track = 0
time = 0  # início
midi.addTempo(track, time, tempo)

# Configuração de instrumentos (canal 0)
# 0: Piano, 48: Strings, 115: Woodblock (efeito percussivo)
piano_channel = 0
strings_channel = 1
perc_channel = 9  # canal 10 (9 em zero-index) é padrão para percussão

# Padrão de piano sombrio
piano_notes = [60, 67, 63, 65]  # C - G - Eb - F
for i, note in enumerate(piano_notes):
    midi.addNote(track, piano_channel, note, time + i * 2, 2, 70)

# Cordas em drone (nota longa)
midi.addProgramChange(track, strings_channel, time, 48)  # Strings
midi.addNote(track, strings_channel, 48, 0, 8, 40)  # C grave como drone

# Batidas (kick + percussão)
kick = 36  # Acoustic Bass Drum
snare = 38  # Acoustic Snare

for t in range(0, 8, 2):
    midi.addNote(track, perc_channel, kick, t, 0.5, 100)
    midi.addNote(track, perc_channel, snare, t + 1, 0.5, 80)

# Hi-hats irregulares
hi_hat_times = [0.5, 1.3, 2.7, 3.5, 4.2, 5.8, 6.4, 7.1]
for t in hi_hat_times:
    midi.addNote(track, perc_channel, 42, t, 0.2, 40)  # Closed Hi-hat

# Salva o arquivo
file_path = "/mnt/data/batida_triste_ansiedade.mid"
with open(file_path, "wb") as f:
    midi.writeFile(f)

file_path

O código acima cria um arquivo MIDI chamado batida_triste_ansiedade.mid que contém uma faixa com os seguintes elementos:

  1. Tempo: 65 BPM.
  2. Piano: Um padrão de quatro notas (C, G, Eb, F) tocadas sequencialmente a cada 2 tempos.
  3. Cordas: Um drone (nota longa) na nota C grave, tocado por 8 tempos. O instrumento é definido como "Strings".
  4. Percussão:
    • Um padrão de kick (bombo) e snare (caixa) tocados alternadamente a cada 2 tempos.
    • Hi-hats (chimbal) irregulares tocados em tempos específicos.

O arquivo é salvo no caminho /mnt/data/batida_triste_ansiedade.mid.

Explicação detalhada:

  • MIDIFile(1): Cria um objeto MIDIFile com uma única faixa.
  • midi.addTempo(track, time, tempo): Define o tempo da música para 65 BPM.
  • midi.addProgramChange(track, strings_channel, time, 48): Define o instrumento do canal de cordas para "Strings" (número 48).
  • midi.addNote(track, channel, note, time, duration, volume): Adiciona uma nota ao arquivo MIDI. Os parâmetros são:
    • track: O número da faixa.
    • channel: O canal MIDI (0-15). O canal 9 é reservado para percussão.
    • note: O número da nota MIDI (0-127).
    • time: O tempo em que a nota começa.
    • duration: A duração da nota.
    • volume: O volume da nota (0-127).
  • with open(file_path, "wb") as f:: Abre o arquivo para escrita em modo binário.
  • midi.writeFile(f): Escreve o conteúdo do objeto MIDIFile no arquivo.

Para executar este código:

  1. Certifique-se de ter a biblioteca midiutil instalada. Você pode instalá-la usando o pip: pip install midiutil.
  2. Execute o código em um ambiente Python.
  3. O arquivo MIDI será salvo no caminho especificado (/mnt/data/batida_triste_ansiedade.mid). Note que o caminho /mnt/data/ pode não existir no seu sistema local. Você pode querer mudar isso para um diretório que exista, como por exemplo, "batida_triste_ansiedade.mid" para salvar no diretório atual.
  4. Você pode abrir o arquivo MIDI com um software de reprodução de MIDI para ouvir a música.

Send your questions through the App
Equipe Meu Guru

Do you prefer an expert tutor to solve your activity?

  • Receive your completed work by the deadline
  • Chat with the tutor.
  • 7-day error guarantee