Factor basic note processing into respective processors
This commit is contained in:
		
							parent
							
								
									525be99ee9
								
							
						
					
					
						commit
						1000799d1e
					
				| @ -157,6 +157,7 @@ endif | |||||||
| ifeq ($(strip $(AUDIO_ENABLE)), yes) | ifeq ($(strip $(AUDIO_ENABLE)), yes) | ||||||
|     OPT_DEFS += -DAUDIO_ENABLE |     OPT_DEFS += -DAUDIO_ENABLE | ||||||
| 	SRC += $(QUANTUM_DIR)/process_keycode/process_music.c | 	SRC += $(QUANTUM_DIR)/process_keycode/process_music.c | ||||||
|  | 	SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c | ||||||
| 	SRC += $(QUANTUM_DIR)/audio/audio.c | 	SRC += $(QUANTUM_DIR)/audio/audio.c | ||||||
| 	SRC += $(QUANTUM_DIR)/audio/voices.c | 	SRC += $(QUANTUM_DIR)/audio/voices.c | ||||||
| 	SRC += $(QUANTUM_DIR)/audio/luts.c | 	SRC += $(QUANTUM_DIR)/audio/luts.c | ||||||
|  | |||||||
							
								
								
									
										62
									
								
								quantum/process_keycode/process_audio.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								quantum/process_keycode/process_audio.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,62 @@ | |||||||
|  | #include "process_audio.h" | ||||||
|  | #include "audio.h" | ||||||
|  | 
 | ||||||
|  | static float compute_freq_for_midi_note(uint8_t note) | ||||||
|  | { | ||||||
|  |     // https://en.wikipedia.org/wiki/MIDI_tuning_standard
 | ||||||
|  |     return pow(2.0, (note - 69) / 12.0) * 440.0f; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool process_audio(uint16_t keycode, keyrecord_t *record) { | ||||||
|  | 
 | ||||||
|  |     if (keycode == AU_ON && record->event.pressed) { | ||||||
|  |       audio_on(); | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (keycode == AU_OFF && record->event.pressed) { | ||||||
|  |       audio_off(); | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (keycode == AU_TOG && record->event.pressed) { | ||||||
|  |         if (is_audio_on()) | ||||||
|  |         { | ||||||
|  |             audio_off(); | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |         { | ||||||
|  |             audio_on(); | ||||||
|  |         } | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (keycode == MUV_IN && record->event.pressed) { | ||||||
|  |         voice_iterate(); | ||||||
|  |         music_scale_user(); | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (keycode == MUV_DE && record->event.pressed) { | ||||||
|  |         voice_deiterate(); | ||||||
|  |         music_scale_user(); | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void process_audio_noteon(uint8_t note) { | ||||||
|  |     play_note(compute_freq_for_midi_note(note), 0xF); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void process_audio_noteoff(uint8_t note) { | ||||||
|  |     stop_note(compute_freq_for_midi_note(note)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void process_audio_stop_all_notes(void) { | ||||||
|  |     stop_all_notes(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | __attribute__ ((weak)) | ||||||
|  | void audio_on_user() {} | ||||||
							
								
								
									
										11
									
								
								quantum/process_keycode/process_audio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								quantum/process_keycode/process_audio.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | #ifndef PROCESS_AUDIO_H | ||||||
|  | #define PROCESS_AUDIO_H | ||||||
|  | 
 | ||||||
|  | bool process_audio(uint16_t keycode, keyrecord_t *record); | ||||||
|  | void process_audio_noteon(uint8_t note); | ||||||
|  | void process_audio_noteoff(uint8_t note); | ||||||
|  | void process_audio_stop_all_notes(void); | ||||||
|  | 
 | ||||||
|  | void audio_on_user(void); | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
| @ -1,6 +1,28 @@ | |||||||
| #include "process_midi.h" | #include "process_midi.h" | ||||||
| 
 | 
 | ||||||
| #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) | #ifdef MIDI_ENABLE | ||||||
|  | #include "midi.h" | ||||||
|  | 
 | ||||||
|  | #ifdef MIDI_BASIC | ||||||
|  | 
 | ||||||
|  | void process_midi_basic_noteon(uint8_t note)  | ||||||
|  | { | ||||||
|  |     midi_send_noteon(&midi_device, 0, note, 128); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void process_midi_basic_noteoff(uint8_t note) | ||||||
|  | { | ||||||
|  |     midi_send_noteoff(&midi_device, 0, note, 0); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void process_midi_basic_stop_all_notes(void) | ||||||
|  | { | ||||||
|  |     midi_send_cc(&midi_device, 0, 0x7B, 0); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif // MIDI_BASIC
 | ||||||
|  | 
 | ||||||
|  | #ifdef MIDI_ADVANCED | ||||||
| 
 | 
 | ||||||
| #include "timer.h" | #include "timer.h" | ||||||
| 
 | 
 | ||||||
| @ -165,7 +187,7 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) | |||||||
|         case MI_ALLOFF: |         case MI_ALLOFF: | ||||||
|             if (record->event.pressed) { |             if (record->event.pressed) { | ||||||
|                 midi_send_cc(&midi_device, midi_config.channel, 0x7B, 0); |                 midi_send_cc(&midi_device, midi_config.channel, 0x7B, 0); | ||||||
|                 dprintf("midi off\n"); |                 dprintf("midi all notes off\n"); | ||||||
|             } |             } | ||||||
|             return false; |             return false; | ||||||
|         case MI_SUS: |         case MI_SUS: | ||||||
| @ -212,3 +234,5 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #endif // MIDI_ADVANCED
 | #endif // MIDI_ADVANCED
 | ||||||
|  | 
 | ||||||
|  | #endif // MIDI_ENABLE
 | ||||||
|  | |||||||
| @ -2,8 +2,16 @@ | |||||||
| #define PROCESS_MIDI_H | #define PROCESS_MIDI_H | ||||||
| 
 | 
 | ||||||
| #include "quantum.h" | #include "quantum.h" | ||||||
| #include "midi.h" |  | ||||||
| 
 | 
 | ||||||
|  | #ifdef MIDI_ENABLE | ||||||
|  | 
 | ||||||
|  | #ifdef MIDI_BASIC | ||||||
|  | void process_midi_basic_noteon(uint8_t note); | ||||||
|  | void process_midi_basic_noteoff(uint8_t note); | ||||||
|  | void process_midi_basic_stop_all_notes(void); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #ifdef MIDI_ADVANCED | ||||||
| typedef union { | typedef union { | ||||||
|   uint32_t raw; |   uint32_t raw; | ||||||
|   struct { |   struct { | ||||||
| @ -25,5 +33,8 @@ bool process_midi(uint16_t keycode, keyrecord_t *record); | |||||||
| #define MIDI_TONE_COUNT (MIDI_TONE_MAX - MIDI_TONE_MIN + 1) | #define MIDI_TONE_COUNT (MIDI_TONE_MAX - MIDI_TONE_MIN + 1) | ||||||
| 
 | 
 | ||||||
| uint8_t midi_compute_note(uint16_t keycode); | uint8_t midi_compute_note(uint16_t keycode); | ||||||
|  | #endif // MIDI_ADVANCED
 | ||||||
|  | 
 | ||||||
|  | #endif // MIDI_ENABLE
 | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
| @ -1,5 +1,14 @@ | |||||||
| #include "process_music.h" | #include "process_music.h" | ||||||
| 
 | 
 | ||||||
|  | #ifdef AUDIO_ENABLE | ||||||
|  | #include "process_audio.h" | ||||||
|  | #endif | ||||||
|  | #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) | ||||||
|  | #include "process_midi.h" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) | ||||||
|  | 
 | ||||||
| bool music_activated = false; | bool music_activated = false; | ||||||
| uint8_t music_starting_note = 0x0C; | uint8_t music_starting_note = 0x0C; | ||||||
| int music_offset = 7; | int music_offset = 7; | ||||||
| @ -8,39 +17,42 @@ int music_offset = 7; | |||||||
| static bool music_sequence_recording = false; | static bool music_sequence_recording = false; | ||||||
| static bool music_sequence_recorded = false; | static bool music_sequence_recorded = false; | ||||||
| static bool music_sequence_playing = false; | static bool music_sequence_playing = false; | ||||||
| static float music_sequence[16] = {0}; | static uint8_t music_sequence[16] = {0}; | ||||||
| static uint8_t music_sequence_count = 0; | static uint8_t music_sequence_count = 0; | ||||||
| static uint8_t music_sequence_position = 0; | static uint8_t music_sequence_position = 0; | ||||||
| 
 | 
 | ||||||
| static uint16_t music_sequence_timer = 0; | static uint16_t music_sequence_timer = 0; | ||||||
| static uint16_t music_sequence_interval = 100; | static uint16_t music_sequence_interval = 100; | ||||||
| 
 | 
 | ||||||
|  | static void music_noteon(uint8_t note) { | ||||||
|  |     #ifdef AUDIO_ENABLE | ||||||
|  |     process_audio_noteon(note); | ||||||
|  |     #endif | ||||||
|  |     #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) | ||||||
|  |     process_midi_basic_noteon(note); | ||||||
|  |     #endif | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void music_noteoff(uint8_t note) { | ||||||
|  |     #ifdef AUDIO_ENABLE | ||||||
|  |     process_audio_noteoff(note); | ||||||
|  |     #endif | ||||||
|  |     #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) | ||||||
|  |     process_midi_basic_noteoff(note); | ||||||
|  |     #endif | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void music_all_notes_off(void) { | ||||||
|  |     #ifdef AUDIO_ENABLE | ||||||
|  |     process_audio_stop_all_notes(); | ||||||
|  |     #endif | ||||||
|  |     #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) | ||||||
|  |     process_midi_basic_stop_all_notes(); | ||||||
|  |     #endif | ||||||
|  | } | ||||||
|  | 
 | ||||||
| bool process_music(uint16_t keycode, keyrecord_t *record) { | bool process_music(uint16_t keycode, keyrecord_t *record) { | ||||||
| 
 | 
 | ||||||
| 	#ifdef AUDIO_ENABLE |  | ||||||
|     if (keycode == AU_ON && record->event.pressed) { |  | ||||||
|       audio_on(); |  | ||||||
|       return false; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (keycode == AU_OFF && record->event.pressed) { |  | ||||||
|       audio_off(); |  | ||||||
|       return false; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (keycode == AU_TOG && record->event.pressed) { |  | ||||||
|         if (is_audio_on()) |  | ||||||
|         { |  | ||||||
|             audio_off(); |  | ||||||
|         } |  | ||||||
|         else |  | ||||||
|         { |  | ||||||
|             audio_on(); |  | ||||||
|         } |  | ||||||
|       return false; |  | ||||||
|     } |  | ||||||
| 	#endif // AUDIO_ENABLE
 |  | ||||||
| 
 |  | ||||||
|     if (keycode == MU_ON && record->event.pressed) { |     if (keycode == MU_ON && record->event.pressed) { | ||||||
|         music_on(); |         music_on(); | ||||||
|         return false; |         return false; | ||||||
| @ -63,26 +75,10 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { | |||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 	#ifdef AUDIO_ENABLE |  | ||||||
|     if (keycode == MUV_IN && record->event.pressed) { |  | ||||||
|         voice_iterate(); |  | ||||||
|         music_scale_user(); |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (keycode == MUV_DE && record->event.pressed) { |  | ||||||
|         voice_deiterate(); |  | ||||||
|         music_scale_user(); |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
| 	#endif // AUDIO_ENABLE
 |  | ||||||
| 
 |  | ||||||
|     if (music_activated) { |     if (music_activated) { | ||||||
| 
 | 
 | ||||||
|       if (keycode == KC_LCTL && record->event.pressed) { // Start recording
 |       if (keycode == KC_LCTL && record->event.pressed) { // Start recording
 | ||||||
| 		#ifdef AUDIO_ENABLE |         music_all_notes_off(); | ||||||
|         stop_all_notes(); |  | ||||||
|         #endif |  | ||||||
|         music_sequence_recording = true; |         music_sequence_recording = true; | ||||||
|         music_sequence_recorded = false; |         music_sequence_recorded = false; | ||||||
|         music_sequence_playing = false; |         music_sequence_playing = false; | ||||||
| @ -91,9 +87,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { | |||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       if (keycode == KC_LALT && record->event.pressed) { // Stop recording/playing
 |       if (keycode == KC_LALT && record->event.pressed) { // Stop recording/playing
 | ||||||
|         #ifdef AUDIO_ENABLE |         music_all_notes_off(); | ||||||
|         stop_all_notes(); |  | ||||||
|         #endif |  | ||||||
|         if (music_sequence_recording) { // was recording
 |         if (music_sequence_recording) { // was recording
 | ||||||
|           music_sequence_recorded = true; |           music_sequence_recorded = true; | ||||||
|         } |         } | ||||||
| @ -103,9 +97,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { | |||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       if (keycode == KC_LGUI && record->event.pressed && music_sequence_recorded) { // Start playing
 |       if (keycode == KC_LGUI && record->event.pressed && music_sequence_recorded) { // Start playing
 | ||||||
|         #ifdef AUDIO_ENABLE |         music_all_notes_off(); | ||||||
|         stop_all_notes(); |  | ||||||
|         #endif |  | ||||||
|         music_sequence_recording = false; |         music_sequence_recording = false; | ||||||
|         music_sequence_playing = true; |         music_sequence_playing = true; | ||||||
|         music_sequence_position = 0; |         music_sequence_position = 0; | ||||||
| @ -124,32 +116,27 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { | |||||||
|             music_sequence_interval+=10; |             music_sequence_interval+=10; | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|  | 
 | ||||||
|       #define MUSIC_MODE_GUITAR |       #define MUSIC_MODE_GUITAR | ||||||
| 
 | 
 | ||||||
|       #ifdef AUDIO_ENABLE |  | ||||||
|       #ifdef MUSIC_MODE_CHROMATIC |       #ifdef MUSIC_MODE_CHROMATIC | ||||||
|       float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(music_starting_note + record->event.key.col + music_offset)/12.0+(MATRIX_ROWS - record->event.key.row)); |       uint8_t note = (music_starting_note + record->event.key.col + music_offset - 3)+12*(MATRIX_ROWS - record->event.key.row); | ||||||
|       #elif defined(MUSIC_MODE_GUITAR) |       #elif defined(MUSIC_MODE_GUITAR) | ||||||
|       float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(music_starting_note + record->event.key.col + music_offset)/12.0+(float)(MATRIX_ROWS - record->event.key.row + 7)*5.0/12); |       uint8_t note = (music_starting_note + record->event.key.col + music_offset + 32)+5*(MATRIX_ROWS - record->event.key.row); | ||||||
|       #elif defined(MUSIC_MODE_VIOLIN) |       #elif defined(MUSIC_MODE_VIOLIN) | ||||||
|       float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(music_starting_note + record->event.key.col + music_offset)/12.0+(float)(MATRIX_ROWS - record->event.key.row + 5)*7.0/12); |       uint8_t note = (music_starting_note + record->event.key.col + music_offset + 32)+7*(MATRIX_ROWS - record->event.key.row); | ||||||
|       #else |       #else | ||||||
|       float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(music_starting_note + SCALE[record->event.key.col + music_offset])/12.0+(MATRIX_ROWS - record->event.key.row)); |       uint8_t note = (music_starting_note + SCALE[record->event.key.col + music_offset] - 3)+12*(MATRIX_ROWS - record->event.key.row); | ||||||
|       #endif |       #endif | ||||||
|       #endif // AUDIO_ENABLE
 |  | ||||||
| 
 | 
 | ||||||
|       if (record->event.pressed) { |       if (record->event.pressed) { | ||||||
|       	#ifdef AUDIO_ENABLE |         music_noteon(note); | ||||||
|         play_note(freq, 0xF); |  | ||||||
|         if (music_sequence_recording) { |         if (music_sequence_recording) { | ||||||
|           music_sequence[music_sequence_count] = freq; |           music_sequence[music_sequence_count] = note; | ||||||
|           music_sequence_count++; |           music_sequence_count++; | ||||||
|         } |         } | ||||||
|         #endif |  | ||||||
|       } else { |       } else { | ||||||
|       	#ifdef AUDIO_ENABLE |         music_noteoff(note); | ||||||
|         stop_note(freq); |  | ||||||
|         #endif |  | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through
 |       if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through
 | ||||||
| @ -177,32 +164,26 @@ void music_on(void) { | |||||||
| 
 | 
 | ||||||
| void music_off(void) { | void music_off(void) { | ||||||
|     music_activated = 0; |     music_activated = 0; | ||||||
|     #ifdef AUDIO_ENABLE |     music_all_notes_off(); | ||||||
|     stop_all_notes(); |  | ||||||
|     #endif |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| __attribute__ ((weak)) |  | ||||||
| void music_on_user() {} |  | ||||||
| 
 |  | ||||||
| #ifdef AUDIO_ENABLE |  | ||||||
| __attribute__ ((weak)) |  | ||||||
| void audio_on_user() {} |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| __attribute__ ((weak)) |  | ||||||
| void music_scale_user() {} |  | ||||||
| 
 |  | ||||||
| void matrix_scan_music(void) { | void matrix_scan_music(void) { | ||||||
|   if (music_sequence_playing) { |   if (music_sequence_playing) { | ||||||
|     if ((music_sequence_timer == 0) || (timer_elapsed(music_sequence_timer) > music_sequence_interval)) { |     if ((music_sequence_timer == 0) || (timer_elapsed(music_sequence_timer) > music_sequence_interval)) { | ||||||
|       music_sequence_timer = timer_read(); |       music_sequence_timer = timer_read(); | ||||||
|       #ifdef AUDIO_ENABLE |       uint8_t prev_note = music_sequence[(music_sequence_position - 1 < 0)?(music_sequence_position - 1 + music_sequence_count):(music_sequence_position - 1)]; | ||||||
|       stop_note(music_sequence[(music_sequence_position - 1 < 0)?(music_sequence_position - 1 + music_sequence_count):(music_sequence_position - 1)]); |       uint8_t next_note = music_sequence[music_sequence_position]; | ||||||
|       play_note(music_sequence[music_sequence_position], 0xF); |       music_noteoff(prev_note); | ||||||
|       #endif |       music_noteon(next_note); | ||||||
|       music_sequence_position = (music_sequence_position + 1) % music_sequence_count; |       music_sequence_position = (music_sequence_position + 1) % music_sequence_count; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | __attribute__ ((weak)) | ||||||
|  | void music_on_user() {} | ||||||
|  | 
 | ||||||
|  | __attribute__ ((weak)) | ||||||
|  | void music_scale_user() {} | ||||||
|  | 
 | ||||||
|  | #endif // defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
 | ||||||
| @ -3,6 +3,8 @@ | |||||||
| 
 | 
 | ||||||
| #include "quantum.h" | #include "quantum.h" | ||||||
| 
 | 
 | ||||||
|  | #if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) | ||||||
|  | 
 | ||||||
| bool process_music(uint16_t keycode, keyrecord_t *record); | bool process_music(uint16_t keycode, keyrecord_t *record); | ||||||
| 
 | 
 | ||||||
| bool is_music_on(void); | bool is_music_on(void); | ||||||
| @ -10,7 +12,6 @@ void music_toggle(void); | |||||||
| void music_on(void); | void music_on(void); | ||||||
| void music_off(void); | void music_off(void); | ||||||
| 
 | 
 | ||||||
| void audio_on_user(void); |  | ||||||
| void music_on_user(void); | void music_on_user(void); | ||||||
| void music_scale_user(void); | void music_scale_user(void); | ||||||
| 
 | 
 | ||||||
| @ -24,4 +25,6 @@ void matrix_scan_music(void); | |||||||
|                            0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } |                            0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #endif // defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
 | ||||||
|  | 
 | ||||||
| #endif | #endif | ||||||
| @ -153,6 +153,9 @@ bool process_record_quantum(keyrecord_t *record) { | |||||||
|   #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) |   #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) | ||||||
|     process_midi(keycode, record) && |     process_midi(keycode, record) && | ||||||
|   #endif |   #endif | ||||||
|  |   #ifdef AUDIO_ENABLE | ||||||
|  |     process_audio(keycode, record) && | ||||||
|  |   #endif | ||||||
|   #if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) |   #if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) | ||||||
|     process_music(keycode, record) && |     process_music(keycode, record) && | ||||||
|   #endif |   #endif | ||||||
|  | |||||||
| @ -35,11 +35,16 @@ extern uint32_t default_layer_state; | |||||||
| 
 | 
 | ||||||
| #ifdef MIDI_ENABLE | #ifdef MIDI_ENABLE | ||||||
| 	#include <lufa.h> | 	#include <lufa.h> | ||||||
|  | #ifdef MIDI_ADVANCED | ||||||
| 	#include "process_midi.h" | 	#include "process_midi.h" | ||||||
| #endif | #endif | ||||||
|  | #endif // MIDI_ENABLE
 | ||||||
| 
 | 
 | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|  	#include "audio.h" |  	#include "process_audio.h" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) | ||||||
| 	#include "process_music.h" | 	#include "process_music.h" | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user