como chatgpt me hizo un dubstep
hay 2 formas en las que hice la música de este juego, la primera es usar un reproductor y conversor de archivos mod (gbt player), y la segunda forma fue usando directamente los registros de sonido de la propia Gameboy (NR10... NR52)
para la primera forma lo que hice fue pedirle a chatgpt que me componga varias canciones usando el siguiente formato :
PU1-1 { C5, E5, G5, E5, C5, E5, G5, E5, C5, E5, G5, E5, C5, E5, G5, E5, A5, G5, E5, G5, A5, G5, E5, G5, A5, G5, E5, G5, A5, G5, E5, G5 } PU2-1 { C4, E4, G4, E4, C4, E4, G4, E4, C4, E4, G4, E4, C4, E4, G4, E4, A4, G4, E4, G4, A4, G4, E4, G4, A4, G4, E4, G4, A4, G4, E4, G4 } WAV-1 { C3, E3, G3, E3, C3, E3, G3, E3, C3, E3, G3, E3, C3, E3, G3, E3, A3, G3, E3, G3, A3, G3, E3, G3, A3, G3, E3, G3, A3, G3, E3, G3 } NOI-1 { __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ }
los arreglos representan los 4 canales de la Gameboy PU1 (pulso 1) PU2 (pulso 2) etc
después simplemente fui copiado las notas a el programa Milky Tracker,
también fui creado variaciones y agregando cambios de volumen para que no suene plano.
en total hice 4 canciones con distintos estilos, con los prompt de "pueblo paleta, Pokémon, disco, Gameboy ", "pueblo lavanda, Pokémon, sythwave", "estilo opening de anime, Mahou Shoujo, psicodelico, sythwave", "caja musical de muñeca, nostalgia, anime"
La segunda forma en que hice música fue usando directamente los registros de sonidos, así fue que hice música dinámica en base a las posiciones de las ratóncitas y de cuantas hay vivas, además de la rotación de keychan haciendo que la música se reproduzca al revez y hasta de lado, lo explicó mejor en el siguiente post https://djarky.itch.io/keychan/devlog/560085/msica-dinmica
básicamente use un switch case en función a sys_time,para crear un compás, y use las funciones de la pequeña librería de sonido que me arme play_sound_C1(), play_siund_C2().. Etc
void play_mice_melody_normal(){ k= ((sys_time >> 3) %32); switch(k){ case 1: if(npc_dir[0]!=DEAD_WAY){ play_sound_C2( 0x36, 0xA1, npc_pos_x_abs[0] ,0x84);play_sound_C4(0x30,0x8F,0x70,0xC0); } break; case 2:play_sound_C2( 0x36, 0xA1, npc_pos_x_abs[0] ,0xC4); break; case 3: ....
y aquí es cuando hacemos en dubstep, pues para que chatgpt entendiera un poco le pasé un post sobre como funciona los registros de sonido
https://gbdev.gg8.se/wiki/articles/Gameboy_sound_hardware
Luego le dije que hiciera una canción estilo opening de anime usando la extructura (switch case) que había hecho
Y pues como chatgpt no entendió nada al pedirle luego que me hiciera una canción usando la misma extructura lo que hizo fue básicamente poner valores random , y pues el resultado fue el siguiente
void play_anime_opening_melody() { k = ((sys_time >> 3) % 32); switch(k) { case 1: play_sound_C1(0x12, 0x43, 0x86, 0x87, 0xC3); break; case 2: play_sound_C1(0x10, 0x43, 0x86, 0x88, 0xC4); break; case 3: play_sound_C1(0x0E, 0x43, 0x86, 0x89, 0xC5); break; case 4: play_sound_C1(0x0B, 0x43, 0x86, 0x8A, 0xC6); break; case 5: play_sound_C1(0x08, 0x43, 0x86, 0x8B, 0xC7); break; case 6: play_sound_C2(0x32, 0x52, npc_pos_x_abs[0], 0xC4); break; case 7: play_sound_C2(0x30, 0x52, npc_pos_x_abs[1], 0xC4); break; case 8: play_sound_C2(0x2E, 0x52, npc_pos_x_abs[2], 0xC4); break; case 9: play_sound_C2(0x2C, 0x52, npc_pos_x_abs[3], 0xC4); break; case 10: play_sound_C2(0x2A, 0x52, npc_pos_x_abs[4], 0xC4); break; case 11: play_sound_C4(0x30, 0x8F, 0x70, 0xC0); break; case 12: play_sound_C4(0x2E, 0x8F, 0x70, 0xC0); break; case 13: play_sound_C4(0x2C, 0x8F, 0x70, 0xC0); break; case 14: play_sound_C4(0x2A, 0x8F, 0x70, 0xC0); break; case 15: play_sound_C4(0x28, 0x8F, 0x70, 0xC0); break; case 16: play_sound_C1(0x15, 0x43, 0x86, 0x8C, 0xC8); break; case 17: play_sound_C1(0x17, 0x43, 0x86, 0x8D, 0xC9); break; case 18: play_sound_C1(0x19, 0x43, 0x86, 0x8E, 0xCA); break; case 19: play_sound_C1(0x1C, 0x43, 0x86, 0x8F, 0xCB); break; case 20: play_sound_C1(0x1F, 0x43, 0x86, 0x90, 0xCC); break; case 21: play_sound_C2(0x36, 0x52, npc_pos_x_abs[5], 0xC4); break; case 22: play_sound_C2(0x38, 0x52, npc_pos_x_abs[6], 0xC4); break; case 23: play_sound_C2(0x3A, 0x52, npc_pos_x_abs[7], 0xC4); break; case 24: play_sound_C2(0x3C, 0x52, npc_pos_x_abs[8], 0xC4); break; case 25: play_sound_C2(0x3E, 0x52, npc_pos_x_abs[9], 0xC4); break; case 26: play_sound_C4(0x28, 0x8F, 0x70, 0xC0); break; case 27: play_sound_C4(0x26, 0x8F, 0x70, 0xC0); break; case 28: play_sound_C4(0x24, 0x8F, 0x70, 0xC0); break; case 29: play_sound_C4(0x22, 0x8F, 0x70, 0xC0); break; case 30: play_sound_C4(0x20, 0x8F, 0x70, 0xC0); break; case 31: play_sound_C1(0x22, 0x43, 0x86, 0x91, 0xCD); break; case 32: play_sound_C1(0x20, 0x43, 0x86, 0x92, 0xCE); break; } }
un auténtico dubstep!!
Get keychan
keychan
gbdk2020 Gameboy game
Status | In development |
Author | Arky750 |
Genre | Platformer |
Tags | Game Boy, gbdk, gbdk2020, GBJam, Retro |
More posts
- Ho Ho Ho xmas spin-offNov 30, 2023
- ファンサービス (fan service)Nov 01, 2023
- "_jam"Sep 13, 2023
- Gb compo deadlineSep 04, 2023
- 089RAug 31, 2023
- Un bug másAug 27, 2023
- Generando puertas proceduralmente y como hice un soduku sin darme cuentaAug 27, 2023
- New 089KAug 26, 2023
Leave a comment
Log in with itch.io to leave a comment.