ChatGPT Music : comment écrire des invites pour les accords et les mélodies

ChatGPT Music : comment écrire des invites pour les accords et les mélodies



ChatGPT Music : comment écrire des invites pour les accords et les mélodies

Vous connaissez probablement déjà l'outil ChatGPT d'OpenAI . Dans cet article, nous fournirons un examen approfondi de la façon dont vous pouvez utiliser leur chatbot IA pour générer de la musique.


Des progressions d'accords, des mélodies, des paroles et de la tablature au code MIDI au niveau de la machine, il y a des invites ici pour tout le monde. Nous partagerons des techniques rapides qui fonctionnent et d'autres qui ne fonctionnent pas. Vous obtiendrez également un aperçu général du paysage du texte en musique , afin que vous puissiez explorer des alternatives à la création de musique ChatGPT.



Table des matières

  1. Une brève histoire de l'IA text-to-music

  2. La première vague d'expériences musicales ChatGPT

  3. WavTool : une DAW IA alimentée par GPT-4

  4. Progressions d'accords ChatGPT

  5. ChatGPT guitar tablature

  6. Génération de paroles et d'accords ChatGPT

  7. Mélodies ChatGPT

  8. Utilisation de javascript pour créer des mélodies MIDI avec ChatGPT

Une brève histoire de l'IA text-to-music


En 2022, des services d'imagerie générative comme Dalle-2 , MidJourney et Stable Diffusion ont prouvé que l'intelligence artificielle pouvait créer des images réalistes en quelques secondes. Ensuite, OpenAI a publié ChatGPT, remettant en question nos idées sur l'intelligence humaine (et comment les machines peuvent l'imiter). En tant que musiciens, beaucoup d'entre nous ont commencé à bricoler pour voir ce qui était possible.


OpenAI a précédemment publié un outil de génération MIDI appelé MuseNet en 2019 et un générateur audio appelé Jukebox en 2020. Cependant, l'API MuseNet a été désactivée en décembre 2022, peu de temps après la sortie de ChatGPT. OpenAI n'a rien fait pour publier un nouvel outil de génération de musique depuis lors. Jukebox n'a pas d'interface utilisateur facilement accessible, il n'a donc jamais été largement adopté.


En décembre 2022, AudioCipher a publié la version 3.0. Ce plugin de musique text-to-MIDI ne fonctionne pas sur l'intelligence artificielle, mais offre l'expérience de transformer les mots en musique dans une DAW. L'avantage ici est que vous n'avez pas besoin d'une connexion Internet et que vous contrôlez étroitement la signature de clé, l'automatisation du rythme et les paramètres d'accord. Vous pouvez basculer entre les paramètres de génération de mélodie et d'accord. Ensuite, faites glisser vers un canal MIDI et apportez des modifications à votre piano roll jusqu'à ce que vous obteniez quelque chose que vous aimez.


Audiochiffre v3

Fin janvier 2023, Google a publié un article décrivant un futur générateur de texte en musique nommé MusicLM . Ils l'ont publiée en tant qu'application bêta gratuite en mai 2023. Facebook-Meta a rapidement emboîté le pas et a publié sa propre application de synthèse musicale en juin 2023 appelée MusicGen . Ces applications créent toutes deux des fichiers audio basés sur des descriptions écrites. En conséquence, ils peuvent aider les producteurs de musique basés sur des échantillons, mais sont moins utiles pour les personnes qui préfèrent travailler avec le MIDI.


MusicLM et MusicGen sont plus intrinsèquement musicaux que ChatGPT, car ils ont été formés sur des fichiers audio étiquetés. Il est important de savoir qu'en tant que grand modèle de langage, ChatGPT est formé aux concepts de la théorie musicale, mais n'a pas une compréhension plus approfondie de la composition musicale. Cela signifie qu'il compose de la musique à partir d'une compréhension purement intellectuelle de la musique, plutôt qu'une compréhension innée de celle-ci.


Maintenant que vous avez une idée du terrain, jetons un coup d'œil à certaines des premières expériences avec ChatGPT et voyons comment elles se sont développées depuis.


La première vague d'expériences musicales ChatGPT



La première vague de musique ChatGPT est venue des influenceurs des médias sociaux. Ils publiaient des vidéos meme de rappeurs célèbres utilisant UberDuck pour se faire passer pour la voix. ChatGPT n'était utilisé que pour générer des paroles à ce stade. La technique était principalement pour le plaisir et la parodie - personne ne confondait la musique avec les artistes réels. Voici comment fonctionne la méthode :

  1. Les utilisateurs proposent une invite lyrique pour ChatGPT, comme "écrivez un couplet lyrique dans le style de [artiste] à propos de [sujet]"

  2. Trouvez une section de la sortie des paroles que vous aimez et connectez-la à UberDuck

  3. Exportez l'audio d'Uberduck et importez-le dans votre DAW

  4. Utilisez un plugin autotune pour appliquer une mélodie. Si vous recherchez une option gratuite, essayez GSnap VST de GVST.


Depuis lors, un grand nombre de services de générateur de voix AI ont été lancés, spécifiquement pour les musiciens. Uberduck est toujours le plus populaire pour les voix de célébrités, mais d'autres applications offrent un meilleur support pour ajouter des mélodies aux voix.


Au fil du temps, les gens ont commencé à publier des expériences supplémentaires avec des invites musicales ChatGPT axées sur les accords, les mélodies et la génération MIDI.


Interface ChatGPT
Interface ChatGPT avec invite musicale

WavTool : une DAW IA alimentée par GPT4



Nous avons déjà couvert en profondeur l' AI DAW WavTool , montrant comment les utilisateurs peuvent invoquer son assistant AI pour générer des mélodies MIDI. Cela peut être un raccourci pour les personnes qui ne veulent pas écrire de programmes javascript et créer du MIDI à partir de zéro. Tout ce que vous avez à faire est de taper ce que vous voulez et de laisser le DAW se mettre au travail.


Vous constaterez que des invites vagues comme "créer une mélodie accrocheuse" ont tendance à donner des résultats décevants, comme une gamme de do majeur qui se répète deux fois. Plus vous serez précis dans vos invites, meilleurs seront vos résultats. Voici quelques composants rapides que je recommande d'utiliser (ou de ne pas utiliser) pour améliorer vos résultats :


  • Demandez "une combinaison de noires, croches et doubles croches" lorsque vous demandez une mélodie. Il comprend ces instructions et s'y conformera généralement.

  • Dites-lui quelle échelle ou signature de clé vous voulez qu'il utilise, si cela vous intéresse.

  • Vous pouvez lui demander des progressions d'accords spécifiques en chiffres romains.

  • Évitez de demander une "progression d'accords dans <signature de clé" car cela créera généralement une ligne ascendante d'accords dans cette clé (c'est-à-dire I - ii - iii - IV, etc.).

  • Vous pouvez essayer de demander des progressions d'accords qui correspondent au style d'un genre, comme une progression d'accords jazzy ou une progression punk rock. Attendez-vous à des résultats mitigés.


Si vous ne souhaitez pas vous inscrire à WavTool (20 $/mois), vous pouvez utiliser ChatGPT pour exécuter vos expériences gratuitement. Passons à cela ensuite.


Progressions d'accords ChatGPT


Les progressions d'accords sont l'un des endroits les plus faciles pour démarrer avec les invites musicales ChatGPT. Vous pouvez demander une progression dans une clé particulière et cela fonctionnera assez bien. Au fur et à mesure que vous approfondissez, en demandant des progressions dans le style d'un compositeur ou d'un genre particulier, les fissures commencent à apparaître.


GPT 4.0 nécessite un compte payant, mais il représente également les dernières fonctionnalités de leur modèle le plus puissant, nous avons donc utilisé GPT 4.0 pour ces expériences.


ChatGPT Music Prompt #1 : Écrivez une progression d'accords en [signature de clé].

Résultat (): Nous obtenons une simple progression de quatre accords, y compris les notes de chaque accord et une brève description de la raison pour laquelle il a choisi ces accords. Le format des chiffres romains (I - vi - ii - V) correspond exactement aux accords fournis.


Invite ChatGPT Music pour les progressions d'accords

ChatGPT Music Prompt #2 : Écrivez une progression d'accords complexe en [signature de clé].

Résultat () : Nous avons choisi une signature de clé plus obscure (F# mineur) et ChatGPT n'a eu aucun problème à la gérer. Toutes les notes et les progressions en chiffres romains sont exactes dans le contexte de la clé.


Invite musicale ChatGPT pour les accords complexes

ChatGPT Music Prompt #3 : Écrivez une progression d'accords dans le style de JS Bach.

Résultat (): Nous avons commencé avec un compositeur classique car ChatGPT aurait largement accès à des informations écrites sur son style de composition d'accords. La progression comprenait deux caractéristiques de marque de la musique de Bach - l'utilisation des dominantes secondaires et l'utilisation du chiffre 6 représentant une première inversion. Cela distingue la notation de l'utilisation contemporaine du nombre 6, où elle impliquerait un 6ème accord.

Invite à créer une progression d'accords dans le style de Bach

ChatGPT Music Prompt #4 : Écrivez une progression d'accords de guitare pour un rythme jazzy lofi hip hop.

Résultat ( ✅/❌ ) : nous trouvons ici certaines des premières erreurs dans la sortie de ChatGPT pour les accords.

  • Les trois premiers accords de cette progression ont le son caractéristique du hip hop lofi. Mais la notation en chiffres romains n'a pas de sens. Il serait plus exact de l'appeler un ii-VI en ré majeur.

  • Les deux derniers accords créent un sentiment non résolu qui ne bouclerait pas bien. En tant que genre basé sur des boucles, c'est un problème qui nécessiterait une certaine créativité de la part du musicien pour le faire fonctionner.

  • ChatGPT identifie à tort G# comme le troisième degré de mi mineur. Cela fait le même problème avec le dernier accord, appelant C # mineur le sixième degré de la gamme est C naturel. Par conséquent, les deux derniers accords ne correspondent pas aux trois premiers.


Invite à écrire une progression de guitare jazz lofi

ChatGPT Music Prompt #5 : Écrivez une progression de 8 accords en [signature de clé].

Résultat ( ✅/❌) : Les résultats ici sont techniquement en fa mineur, mais il y a quelques problèmes

  • L'accord final se résout prématurément à la tonique. Normalement, le retour à la tonique se produirait après l'achèvement de la progression de 8 accords. Cela pourrait facilement être résolu en allongeant la longueur de la 7e corde pour deux mesures.

  • La progression passe essentiellement par le cercle des quintes (VII - III - VI - ii - v - i). Bien que cela soit assez courant, cela crée une progression saccadée à moins que vous n'utilisiez des inversions d'accords. Ces inversions ne lui sont pas indiquées.

  • La sortie comporte exclusivement des triades, de sorte que la progression d'accords manque de couleur.

invite à créer une progression de 8 accords

ChatGPT Music Prompt #6 : Écrivez une progression de 8 accords en [signature de clé] en utilisant des inversions pour une harmonie fermée.

Résultat ( ❌) : Ici, nous pouvons vraiment voir les limites de la sortie musicale ChatGPT. D'une part, il comprend la notion d'inversions et d'harmonie fermée. Cela est évident par sa réponse écrite, mais si vous jouez réellement les accords ici, il y a quelques problèmes flagrants.

  • Le deuxième accord (G-Bb-Db) a été écrit sur D naturel à la basse. Cette note n'appartient pas à la clé ou à l'accord et est à peu près aussi laide que vous ne pourriez l'imaginer. C'est un terrible deuxième accord pour une progression en fa mineur.

  • Les quatrième, cinquième et sixième accords de ces progressions contiennent de grands sauts, ce qui viole les instructions de l'invite d'utiliser l'harmonie fermée. ChatGPT a même déclaré son intention d'utiliser des inversions pour créer un mouvement progressif et fluide, mais a violé cette règle dans sa sortie.

Demande de progression d'accords avec harmonie fermée

Voici une capture d'écran du rouleau de piano pour mettre en évidence les problèmes de cette progression. L'accord surligné en rose montre l'accord DG-Bb-Db qui nous a fait ramper la peau. Vous pouvez voir les grands sauts d'accords surlignés en vert, qui ont raté la cible pour une voix douce menant dans les basses.


Capture d'écran de rouleau de piano Logic Pro d'un exemple de progression d'accords

Ceci conclut la section sur la génération de progressions d'accords avec les invites musicales ChatGPT. Comme vous pouvez le voir, il est capable de créer quelque chose , mais plus vous serez précis dans vos demandes, plus il risque de faire des erreurs en raison de son manque de formation aux mathématiques de la composition musicale.


ChatGPT Guitar Tablature



Générer des tablatures de guitare avec ChatGPT est assez simple. Vous demandez simplement ce que vous voulez et il le recrachera au format ASCII. Malheureusement, il a tendance à avoir du mal à obtenir la signature de clé et les accords, même pour les invites les plus simples. Vous pouvez en trouver des exemples dans la vidéo ci-dessus et voir comment il a eu recours à la demande de descriptions écrites d'un solo de guitare pour finalement obtenir les résultats souhaités.


ChatGPT Guitar Tablature Prompt #1 : Écrivez une progression d'accords en tablature de guitare

Résultat ( ❌) : ChatGPT renvoie un arpège en mi mineur et la mineur, mais indique ensuite qu'il s'agit d'une progression d'accords (ce n'est pas le cas) avec les accords GM, DM et CM. Ce n'est rien de tout cela, donc c'est un échec complet.


Chat GPT guitar tablature prompt

ChatGPT Guitar Tablature Prompt #2 : Créez des tablatures de guitare pour une progression d'accords ii7 VI dans FMajor.

Résultat ( ✅) : Cette fois, nous obtenons la bonne réponse, bien que dans un format vertical maladroit. En l'instruisant sur la progression que nous voulions, il semble avoir plus de facilité. Nous obtenons un accord Gm7 sans racine, suivi d'un accord C7 (nous n'avons pas demandé l'extension mais ça va) et d'un accord de fa majeur.


Progression d'accords de tablature de guitare ChatGPT

ChatGPT Guitar Tablature Prompt #3 : Écrivez un solo de guitare metalcore en tablature.

Résultat ( ❌) : Ici, nous avons demandé du metalcore, ce qui implique qu'il devrait être dans une gamme mineure ou diminuée. Au lieu de cela, il nous a donné une gamme majeure rudimentaire. Il a compris qu'on voulait une mélodie, mais c'est à peu près tout. Il a également dit à tort que c'était en mi mineur, mais qu'il contient un fa naturel (corde de sol de 10e frette), de sorte que la signature de la clé est fausse.


Invite de mélodie ChatGPT

Nous avons trouvé d'autres problèmes avec les tablatures de guitare ChatGPT. Par exemple, dans les onglets, le caractère '/' indique une diapositive vers le haut et '\' pour une diapositive vers le bas. ChatGPT a tendance à utiliser le mauvais type de barre oblique et ne semble pas comprendre la signification du symbole.


Génération de paroles et d'accords ChatGPT



En tant que générateur de texte, ChatGPT peut effectuer une génération de paroles d'IA toute la journée. Lorsque vous essayez de combiner les paroles avec des tableaux d'accords, cela fonctionne, mais si vous ajoutez des mélodies, vous commencez à avoir des problèmes. Voici quelques exemples pour illustrer ces limitations.


ChatGPT Lyrics + Chords Prompt #1 : Écrivez les paroles d'une chanson folklorique et ajoutez-y des tableaux d'accords.

Résultat ( ✅) : Les accords sont ajoutés au début de chaque mot et codés par couleur pour le rendre facilement lisible. Nous devons encore écrire notre propre mélodie avec cette invite.


Invite de paroles ChatGPT

ChatGPT Lyrics + Chords Prompt #2 : En utilisant le même tableau, incluez une notation mélodique pour ces accords et paroles

Résultat ( ❌) : ChatGPT a créé un riff de guitare en finger picking arpégé pour la mélodie. Il n'y a aucun lien entre ces arpèges et les paroles.


Invite de paroles et de mélodie ChatGPT

Mélodies ChatGPT



Le prochain sur la liste est la génération de mélodie. Contrairement à la notation d'accords, les mélodies sont un peu plus difficiles à exprimer en clair. Pour cette raison, j'ai commencé par demander à ChatGPT une liste des meilleurs formats à utiliser lors de la génération de mélodies. Voici une liste des options qu'il fournit. Vous pouvez les référencer pour tester vos propres invites musicales :


  1. Notation standard : nommer les notes (par exemple, "CEG") ainsi que leurs durées (par exemple, "noire do, blanche mi, noire sol").

  2. Degrés d'échelle : Nommer une mélodie par rapport à la tonalité dans laquelle elle se trouve en utilisant des degrés d'échelle (par exemple, "Dans la tonalité de do majeur : 1-3-5").

  3. Tablature de guitare : Vous obtiendrez des mélodies telles qu'elles apparaissent sur un manche de guitare, mais le rythme sera absent. Nous avons déjà souligné ses problèmes précédemment.

  4. Piano Roll Notation : Décrivez la mélodie à l'aide des numéros de note MIDI, représentant les valeurs du piano roll de Digital Audio Workstation. Par exemple, un arpège en do majeur serait représenté par 60, 64, 67 . Nous avons utilisé ce format dans la section suivante, en utilisant ChatGPT pour écrire du code javascript et créer des fichiers MIDI. Cela fonctionne étonnamment bien avec les bonnes invites.

  5. Solfège : Décrire des mélodies simples en utilisant le système do-re-mi. Cela manque d'entrée rythmique et vous maintiendra fixé sur une simple gamme diatonique.

  6. Notation alphanumérique de la hauteur : Ce système utilise les lettres AG en combinaison avec les chiffres 0-9 pour représenter les hauteurs, le C4 étant souvent défini comme "do médian". Par exemple, une mélodie peut aller "C4-E4-G4-C5".

  7. Fréquences de hauteur : nommez chaque note de musique comme une fréquence (hz) plutôt que d'utiliser des concepts de notation standard comme les noms de note.


Pour commencer, nous sommes allés avec la notation alphanumérique + rythme.


ChatGPT Melody Prompt #1 : Écrivez une mélodie en <signature de clé> en utilisant la notation de hauteur alphanumérique. Inclure des indicateurs de rythme.

Résultat ( ✅) : La mélodie que nous avons récupérée est une simple mélodie pentatonique en do majeur, avec une combinaison de noires et blanches. Ce n'est pas une mélodie particulièrement intéressante, mais il y a quelques variations, l'arpège tournant sur le sixième degré d'échelle et revenant pas à pas avec le ton de passage du 2e degré d'EDC.


Mélodie ChatGPT avec invite de rythme

ChatGPT Melody Prompt #2 : Utilisez cette progression d'accords et donnez à chaque accord quatre temps. Écrivez une mélodie accrocheuse dans la même signature de clé en utilisant des noires et des croches. Assurez-vous d'indiquer la durée de chaque note de la mélodie. Si la mélodie contient des notes en dehors de l'accord, elle ne doit être utilisée que comme des notes de passage vers une note qui se trouve dans l'accord. Voici la progression : Dm7 - G7 - CM9 - Em7


Résultat ( ❌) : Comme nous l'avons vu précédemment, lorsque les mathématiques musicales deviennent trop complexes, ChatGPT commence à perdre le fil. Il comprend ce que nous voulons qu'il fasse, mais fait rapidement des erreurs.

  • Il appelle F un ton de passage, bien qu'il soit réglé sur l'accord Dm7.

  • Le mi mineur est un ton de passage, mais il ne le qualifie pas comme tel

  • Il fait la même erreur avec la note G, l'appelant une tonalité de passage tout en jouant sur l'accord G7. Ensuite, la note suivante, A, n'est pas étiquetée comme un ton de passage. Cela montre qu'il ne vérifie pas correctement la mélodie par rapport aux accords, car il manque de formation pour le faire efficacement.


Mélodie ChatGPT avec des tonalités de passage

Utilisation de Javascript pour créer de la musique ChatGPT MIDI


La notation note-et-rythme dans les exemples ci-dessus est ennuyeuse à utiliser et pas très pratique. Il est plus efficace d'utiliser un éditeur de code gratuit comme VSCode pour générer des mélodies MIDI. Nous allons explorer comment faire cela ici.


Tout d'abord, vous devrez télécharger Visual Studio Code et installer Node.JS . Les deux sont gratuits. Une fois qu'ils sont installés, vous allez créer un nouveau dossier sur votre ordinateur et utiliser le terminal de VSCode pour y accéder. Enregistrez un fichier simple, disons "testmidi.js" et dans ce fichier, vous pourrez utiliser cette technique.


ChatGPT Visual Studio MIDI Prompt #1 : Veuillez écrire du code javascript pour générer une gamme de do majeur en notation MIDI, en utilisant la bibliothèque MIDIWriter javascript Node.

Résultat (): ChatGPT a eu besoin de quelques cycles de débogage pour bien faire les choses, mais tout ce que j'avais à faire était de lui dire le code d'erreur et finalement il a produit un morceau de code fonctionnel. C'est le code que nous avons partagé ci-dessus.


constMidiWriter =  require ( 'midi-writer-js' ) ;  const fs =  requiert ( 'fs' ) ;  // Crée une nouvelle tracklet track = newMidiWriter.Track(); // Définit la gamme de do majeur (du do médian au do suivant) dans les numéros MIDIletCMajorScale = [60, 62, 64, 65, 67, 69, 71, 72] ; // Boucle sur les notes de la gamme et les ajoute au trackfor(let i = 0; i < CMajorScale.length; i++) { // Ajout d'un événement de note pour chaque note de la gamme, avec une durée de '4' (noire) track.addEvent(newMidiWriter.NoteEvent({hauteur : [CMajorScale[i]], durée : '4'}) ); } // Créer un writerlet writer = newMidiWriter.Writer(track); // Enregistrer la sortie MIDI dans un filelet base64String = writer.dataUri().split(',')[1] ; laissez midiData = Buffer.from(base64String, 'base64'); fs.writeFileSync('C_Major_Scale.mid', midiData);

Nous utilisons un package appelé MidiWriter.js . Collez simplement le code ci-dessus dans votre fichier testmidi.js et lorsque vous exécutez "node testmidi.js" dans votre terminal VSCode, il enregistrera automatiquement le fichier MIDI dans ce dossier. Vous pouvez utiliser ChatGPT pour élaborer et créer des mélodies avec un rythme et un caractère réels. Nous y reviendrons ensuite.


ChatGPT Chord + Melody MIDI Prompt #2 : À l'aide du code javascript que j'ai fourni, créez une progression d'accords ii7 - V7 - IM7, puis écrivez une mélodie par-dessus qui utilise une combinaison de noires et de croches. La mélodie doit correspondre aux accords joués afin qu'ils ne se heurtent pas. Essayez d'utiliser une mélodie fluide et naturelle et donnez également un peu de rythme à la progression d'accords.


Résultat () : Waouh ! ChatGPT a créé une mélodie qui va parfaitement avec la progression d'accords que nous avons fournie. Tout ce que nous avions à faire était de passer à un langage de programmation et les résultats s'amélioraient considérablement.


Voici le code pour que vous puissiez le tester vous-même :


const  MidiWriter  =  require ( 'midi-writer-js' ) ; 
const fs =  requiert ( 'fs' ) ;

// Créer deux nouvelles pistes let chordTrack = new  MidiWriter . Piste (); 
laissez melodyTrack =  new  MidiWriter . Piste ( ) ;

// Définir les accords - Dm7 (DFAC), G7 (GBDF) et Cmaj7 (CEGB) let chords = [ 
  {  pitch :  [ 62 ,  65 ,  69 ,  72 ] ,  duration :  '4'  } ,  // Dm7 noire 
  {  hauteur :  [ 62 ,  65 ,  69 ,  72 ] ,  durée :  '4'  } ,  // Dm7 noire 
  {  hauteur :  [ 67 ,  71 ,  74,  77 ] ,  durée :  '4'  } ,  // Sol7 noire 
  {  hauteur :  [ 67 ,  71 ,  74 ,  77 ] ,  durée :  '4'  } ,  // Sol7 noire 
  {  hauteur :  [ 60 ,  64 ,  67 ,  71 ] ,  durée :  '2'  } ,  // Cmaj7 blanche 
  {  hauteur :  [ 60 , 64 ,  67 ,  71 ] ,  durée :  '2'  }   // Cmaj7 blanche 
] ;

// Ajoute des accords aux 
accords chordTrack . forEach ( accord  =>  { 
  chordTrack . addEvent ( new  MidiWriter . NoteEvent ( accord ) ) ; 
} ) ;

// Définir la mélodie - une mélodie simple qui s'adapte aux accords let melody = [ 
  {  pitch :  [ 74 ] ,  duration :  '8'  } ,  // D croche 
  {  pitch :  [ 72 ] ,  duration :  '8'  } ,  // Do croche 
  {  hauteur :  [ 74 ] ,  durée :  '4'  } ,  // Ré noire 
  {  hauteur :  [ 76 ] , durée :  '8'  } ,  // Mi croche 
  {  hauteur :  [ 77 ] ,  durée :  '8'  } ,  // Fa croche 
  {  hauteur :  [ 76 ] ,  durée :  '4'  } ,  // Mi noire 
  {  hauteur :  [ 72 ] ,  durée :  '2'  } ,  // Do blanche 
  {  hauteur :  [ 71 ] , durée :  '2'  }   // Si blanche 
] ;

// Ajoute une mélodie à la 
mélodie melodyTrack . forEach ( note  =>  { 
  melodyTrack . addEvent ( new  MidiWriter . NoteEvent ( note ) ) ; 
} ) ;

// Crée un écrivain avec les deux pistes let écrivain = new  MidiWriter . Auteur ([chordTrack, melodyTrack]);

// Enregistrer la sortie MIDI dans un fichier let base64String = writer. dataUri (). diviser ( ',' )[ 1 ] ; 
laissez midiData =  Buffer . de ( base64String ,  'base64' ) ; 
fs . writeFileSync ( 'ii7_V7_IM7_Progression_With_Melody.mid' , midiData ) ;


Voici un visuel de ce à quoi ressemble ce fichier MIDI lorsqu'il est importé dans un DAW comme Logic Pro X. Comme vous pouvez le voir, la mélodie a une belle forme et elle a parfaitement fonctionné avec la progression d'accords.


Mélodie Logic Pro générée par ChatGPT

Accord ChatGPT + Mélodie Invite MIDI #3 :


Résultat ( ✅/❌ ) : Ici, nous commençons à nous heurter aux limites des capacités de ChatGPT en tant qu'outil d'IA à usage général. Les chorals de Bach à quatre voix exigent que les mélodies se déplacent dans une combinaison de mouvements parallèles et contraires.


Invite de musique ChatGPT pour le code javascript

Après avoir parcouru cinq autres séries d'instructions, nous avons finalement obtenu une sortie ChatGPT limitée à une seule signature de clé et exportant un fichier MIDI à quatre voix. Il y a une bonne quantité de variations rythmiques, mais cela ressemble plus à Debussy qu'à Bach. Voici une capture d'écran de ce à quoi ressemble ce MIDI final :


Rouleau de piano Logic Pro pour la sortie de musique chatgpt

Voici le code pour que vous puissiez l'essayer vous-même :



const MidiWriter =  require ( 'midi-writer-js' ) ; 
const fs =  requiert ( 'fs' ) ;

// Créer quatre nouvelles pistes 
let sopranoTrack =  new  MidiWriter.Track ( ) ; 
let altoTrack =  new  MidiWriter.Track ( ) ; 
let tenorTrack =  new  MidiWriter.Track ( ) ; 
let bassTrack =  new  MidiWriter.Track ( ) ;

// Définir la gamme de la mineur en trois octaves 
soit aMinorScale =  [ 57 ,  59 ,  60 ,  62 ,  64 ,  65 ,  67 ,  69 ,  71 ,  72 ,  74 ,  76 ,  77 ,  79 ,  81 ,  83 ,  84 ,  86 ,  88 ,  89 ,  91 ] ;

// Définir quatre mélodies en utilisant les index de la gamme 
let sopranoMelody =  [ 
  { index :  20 , duration :  '4'  } , 
  { index :  18 , duration :  '8'  } , 
  { index :  16 , duration :  '8'  } , 
  { index :  14 , duration :  '16'  } , 
  // Le mouvement contraire commence ici 
  { index : 16 , durée :  '16'  } , 
  { index :  18 , durée :  '4'  } , 
  { index :  20 , durée :  '8'  } , 
  { index :  18 , durée :  '8'  } , 
  // Retour au parallèle mouvement 
  { index :  16 , durée :  '4'  } , 
  { index :  14 ,durée :  '8'  } , 
  { index :  12 , durée :  '8'  } , 
  { index :  10 , durée :  '4'  } 
] ; 
let altoMelody =  [ 
  { index :  15 , durée :  '4'  } , 
  { index :  13 , durée :  '8'  } , 
  { index :  11, durée :  '8'  } , 
  { index :  9 , durée :  '16'  } , 
  // Le mouvement contraire commence ici 
  { index :  11 , durée :  '16'  } , 
  { index :  13 , durée :  '4'  } , 
  { index :  15 , durée :  '8'  } , 
  { index :  13 , durée:  '8'  } , 
  // Retour au mouvement parallèle 
  { index :  11 , durée :  '4'  } , 
  { index :  9 , durée :  '8'  } , 
  { index :  7 , durée :  '8'  } , 
  { index :  5 , durée :  '4'  } 
] ; 
let tenorMelody =  [ 
  { index : 10 , durée :  '8'  } , 
  { index :  12 , durée :  '8'  } , 
  { index :  14 , durée :  '4'  } , 
  { index :  12 , durée :  '16'  } , 
  // Début du mouvement contraire ici 
  { index :  10 , durée :  '16'  } , 
  { index :  8 ,durée :  '4'  } , 
  { index :  6 , durée :  '8'  } , 
  { index :  4 , durée :  '8'  } , 
  // Retour au mouvement parallèle 
  { index :  2 , durée :  '4'  } , 
  { index :  0 , durée :  '8'  } , 
  { index :  2 , durée : '8'  } , 
  { index :  4 , durée :  '4'  } 
] ; 
let bassMelody =  [ 
  { index :  5 , durée :  '8'  } , 
  { index :  7 , durée :  '8'  } , 
  { index :  9 , durée :  '4'  } , 
  { index :  7 , durée : '16'  } , 
  // Le mouvement inverse commence ici 
  { index :  5 , durée :  '16'  } , 
  { index :  3 , durée :  '4'  } , 
  { index :  1 , durée :  '8'  } , 
  { index :  3 , durée :  '8'  } , 
  // Retour au mouvement parallèle 
  { index :  1 , durée : '4'  } , 
  { indice :  3 , durée :  '8'  } , 
  { indice :  5 , durée :  '8'  } , 
  { indice :  7 , durée :  '4'  } 
] ;

// Ajoute les mélodies aux pistes 
sopranoTrack . addEvent ( sopranoMelody . map ( note  =>  new  MidiWriter.NoteEvent ( { pitch :  [ aMinorScale [ note . index ] ] , duration : note . duration } ) ) ) ; 
altoTrack . addEvent ( altoMelody . map ( note => new MidiWriter.NoteEvent   ( { pitch :  [ aMinorScale [ note . index ] ] , duration : note . duration } ) ) ) ; 
tenorTrack . addEvent ( tenorMelody . map ( note  =>  new  MidiWriter.NoteEvent ( { pitch :  [ aMinorScale [ note . index ] ] , duration : note .durée } ) ) ) ; 
bassTrack . addEvent ( bassMelody . map ( note  =>  new  MidiWriter.NoteEvent ( { pitch :  [ aMinorScale [ note . index ] ] , duration : note . duration } ) ) ) ;

// Combine toutes les pistes 
let writer =  new  MidiWriter.Writer ( [ sopranoTrack , altoTrack , tenorTrack , bassTrack ] ) ;

// Enregistrez la sortie MIDI dans un fichier 
let base64String = writer . dataUri ( ) . diviser ( ',' ) [ 1 ] ; 
laissez midiData = Buffer . de ( base64String ,  'base64' ) ; 
fs . writeFileSync ( 'Four_Part_Fugue4.mid' , midiData ) ;



C'est aussi loin que nous allons prendre les invites de génération de code MIDI javascript. Vous pouvez brancher n'importe lequel de ces extraits dans GPT4 comme point de départ et demander des variations supplémentaires.


Pour une plongée technique approfondie dans le potentiel musical et les limites de GPT-4, regardez cette vidéo du codeur créatif et compositeur Marc Evanstein :



Si vous souhaitez une expérience texte-MIDI plus simple pour votre flux de travail DAW, assurez-vous de consulter AudioCipher VST .

Commentaires

Posts les plus consultés de ce blog

Comment faire du business sur Amazon ? [GUIDE COMPLET 2022]

100 outils pour lancer sa startup sans argent (mais pas sans talent)

Nomad '✨Maker - TOP✨ Ai GENERATOR

T🌴'artistiK -📗 Books and Publications Spotlight | Lulu

Diagnostiquer et récupérer une messagerie piratée | AVG

115 idées de revenus passifs pour obtenir de l'argent pour travailler pour vous en 2021 - Blog Ippei

6 tunnels de vente indispensables pour vendre sur Internet

ai-collection/README.fr.md at main · ai-collection/ai-collection · GitHub

Meilleurs outils de référencement 🛠 organisée par Saijo George

Stratégie dropshipping : Les 10 leviers marketing pour votre boutique