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 ) font_data = ExtResource( 11 )
_sections_unfolded = [ "Extra Spacing", "Font", "Settings" ] _sections_unfolded = [ "Extra Spacing", "Font", "Settings" ]
[node name="Main" type="WorldEnvironment"] [node name="Main" type="WorldEnvironment" index="0"]
environment = SubResource( 2 ) environment = SubResource( 2 )
script = ExtResource( 2 ) script = ExtResource( 2 )

View File

@ -3,14 +3,30 @@ extends "midi/MidiPlayer.gd"
const Tetromino = preload("res://Tetrominos/Tetromino.gd") const Tetromino = preload("res://Tetrominos/Tetromino.gd")
const LINE_CLEAR_CHANNELS = [2, 6] const LINE_CLEAR_CHANNELS = [2, 6]
const MOVE_CHANNELS = [3] const MOVE_CHANNELS = [8]
var muted_events = []
func _ready(): func _ready():
mute_channels(MOVE_CHANNELS+LINE_CLEAR_CHANNELS) mute_channels(MOVE_CHANNELS+LINE_CLEAR_CHANNELS)
func _init_channel( ):
._init_channel()
for channel in max_channel:
self.muted_events.append({})
func resume(): func resume():
play(position) 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): func mute_channels(channels):
for channel_id in channels: for channel_id in channels:
channel_mute[channel_id] = true channel_mute[channel_id] = true

View File

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