✨ChatGPT Music: How to Write Prompts for Chords and Melodies

ChatGPT Music: How to Write Prompts for Chords and Melodies





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 MidiWriter Track ( 

laisser accords = [ 
  {  pitch :  62 65 , , '4' }       
           
      ,  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 chord ) ; 


let melody = [ 
  [ 74 ] , durée : { 72 ] '8' , pitch 74 : '4' // D noire 76 , '8' }      
        
        
        
        
        
        
     durée :  '2'  }   // Si blanche 
] ;

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


let writer = new  MidiWriter . Auteur ([chordTrack, melodyTrack]);

laissez base64String = Ă©crivain. 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 
laissez sopranoTrack altoTrack 
 
  
  

// DĂ©finit la gamme de La mineur en trois octaves 
let aMinorScale                     


let sopranoMelody =  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 pitch aMinorScale index note 
altoTrack altoMelody           durée } ) ) ) ; 
bassTrack . addEvent ( bassMelody . map ( note  =>  new  MidiWriter.NoteEvent ( { pitch :  [ aMinorScale [ note . index ] ] , duration : note . duration } ) ) ) ;

// Combinez toutes les pistes 
laissez l'Ă©crivain sopranoTrack 

// Enregistrez la sortie MIDI dans un fichier 
laissez base64String writer 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

TOP outils de rĂ©fĂ©rencement gratuits qui valent la peine d'ĂȘtre utilisĂ©s en 2023

Les outils de rĂ©fĂ©rencement gratuits qui valent vraiment la peine d'ĂȘtre utilisĂ©s

Changement de domaine en 2023 : tout ce que vous devez savoir

Chatbot Dialogflow : Tutoriel NoCode NLP pour les spĂ©cialistes du marketing | Landbot

Revenu passif : idées pour gagner de l'argent (en dormant)

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

La toolbox du growth hacker 💎 - Outils - Growthhacking.fr | CommunautĂ© française de growth hacking

Comment signer avec une maison de disques ? Voici notre guide ultime pour 2024

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