move modifications to MidiPlayer to its child
This commit is contained in:
parent
0c4bef8ebb
commit
f10b1c5ced
@ -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 )
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user