move modifications to MidiPlayer to its child

This commit is contained in:
adrienmalin 2019-01-05 16:55:24 +01:00
parent 0c4bef8ebb
commit f10b1c5ced
3 changed files with 18 additions and 9 deletions

View File

@ -230,7 +230,7 @@ extra_spacing_bottom = 5
font_data = ExtResource( 11 )
_sections_unfolded = [ "Extra Spacing", "Font", "Settings" ]
[node name="Main" type="WorldEnvironment"]
[node name="Main" type="WorldEnvironment" index="0"]
environment = SubResource( 2 )
script = ExtResource( 2 )

View File

@ -3,14 +3,30 @@ extends "midi/MidiPlayer.gd"
const Tetromino = preload("res://Tetrominos/Tetromino.gd")
const LINE_CLEAR_CHANNELS = [2, 6]
const MOVE_CHANNELS = [3]
const MOVE_CHANNELS = [8]
var muted_events = []
func _ready():
mute_channels(MOVE_CHANNELS+LINE_CLEAR_CHANNELS)
func _init_channel( ):
._init_channel()
for channel in max_channel:
self.muted_events.append({})
func resume():
play(position)
func _process_track_event_note_off( channel, event ):
muted_events[channel.number].erase(event.note)
._process_track_event_note_off( channel, event )
func _process_track_event_note_on( channel, event ):
if self.channel_mute[channel.number]:
muted_events[channel.number][event.note] = event
._process_track_event_note_on( channel, event )
func mute_channels(channels):
for channel_id in channels:
channel_mute[channel_id] = true

View File

@ -38,9 +38,6 @@ var audio_stream_players = []
var _used_program_numbers = []
var muted_events = []
var paused_position = 0
signal changed_tempo( tempo )
signal appeared_lyric( lyric )
signal appeared_marker( marker )
@ -180,7 +177,6 @@ func _init_channel( ):
"drum_track": drum_track,
"pan": 0.5,
})
self.muted_events.append({})
"""
@ -278,11 +274,8 @@ func _process_track( ):
match event.type:
SMF.MIDIEventType.note_off:
muted_events[event_chunk.channel_number].erase(event.note)
self._process_track_event_note_off( channel, event )
SMF.MIDIEventType.note_on:
if self.channel_mute[event_chunk.channel_number]:
muted_events[event_chunk.channel_number][event.note] = event
self._process_track_event_note_on( channel, event )
SMF.MIDIEventType.program_change:
channel.program = event.number