Crafting Melodies with Arduino Tone() Function and ChatGPT's Collaborative Symphony

Published  July 27, 2023   0
User Avatar Aswinth Raj
Author
Arduino Sings with ChatGPT

Hey there, music lovers! We've got something exciting to share with you! We've already embarked on a fascinating project featuring the piezo buzzers and Arduino tone() Function, where we learned to Play Melody on Piezo Buzzer or Speaker using the Arduino tone () function. Now, we're taking it a step further by experimenting with these enchanting devices to compose unique tones for different songs!

Here's the plan: We'll be teaming up with ChatGPT to craft captivating melodies for various songs. As we're familiar with ChatGPT and its incredible abilities, let's now explore the possibilities of taking it even further. By integrating the Arduino tone function with a piezo buzzer, we'll unlock new realms of creativity with this simple yet powerful combination.

Circuit Diagram

Arduino Tone Buzzer Circuit Diagram

Firstly, we will test if ChatGPT can comprehend the code from our project. Once confirmed, we will then request it to generate codes for other songs, expanding the range of melodies we can create.

Great! ChatGPT has proven its ability to understand the code exceptionally well. Now, we're thrilled to put its talents to the test and ask it to generate the code for the timeless classic "Happy Birthday" song.

#ifndef PITCHES_H
#define PITCHES_H
int HappyBirthday_note[] = {
  NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
  NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
  NOTE_C4, NOTE_C5, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_AS4,
  NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4
};
int HappyBirthday_duration[] = {
  4, 4, 4, 4, 4, 2,
  4, 4, 4, 4, 4, 2,
  4, 4, 4, 4, 4, 4, 4, 4,
  4, 4, 4, 4, 2
};
#endif

Now, we will upload the code and put ChatGPT to the test to see just how proficient it is.

Although it was a close attempt, it didn't quite hit the mark of what we wanted to hear. So, let's give it another shot! How about trying "Jingle Bells" this time? We're excited to see what melodic wonders ChatGPT can come up with for this classic tune!

#ifndef PITCHES_H
#define PITCHES_H
int JingleBells_note[] = {
  NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4,
  NOTE_E4, NOTE_E4, NOTE_E4, NOTE_G4,
  NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,
  NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4,
  NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4
};
int JingleBells_duration[] = {
  200, 200, 400, 200,
  200, 400, 200, 200,
  200, 200, 200, 200,
  200, 400, 200, 200,
  200, 200, 200, 200
};
#endif

Let’s try the same for another classic song “Twinkle Twinkle Little Star

#ifndef PITCHES_H
#define PITCHES_H
int TwinkleStar_note[] = {
  NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4,
  NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4
};
int TwinkleStar_duration[] = {
  4, 4, 4, 4, 4, 4, 2,
  4, 4, 4, 4, 4, 4, 2
};
#endif

Absolutely! Once we confirm that ChatGPT comprehends the code from our project, we'll proceed to ask it for codes to play more famous songs. And to take it up a notch, we'll even try our hand at a more complex song, such as "Bloody Mary" from Wednesday Addams.

#ifndef PITCHES_H
#define PITCHES_H
int BloodyMary_note[] = {
  NOTE_D5, NOTE_FS5, NOTE_A5, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6,
  NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6,
  NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6,
  NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6,
  NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6,
  NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6,
  NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6,
  NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6,
  NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6,
  NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6
};
int BloodyMary_duration[] = {
  8, 8, 4, 4, 8, 8, 8,
  8, 8, 4, 4, 8, 8, 4, 8, 4,
  8, 8, 4, 4, 8, 8, 8, 8, 4,
  8, 8, 4, 4, 8, 8, 4, 8, 4,
  8, 8, 4, 4, 8, 8, 8, 8, 4,
  8, 8, 4, 4, 8, 8, 4, 8, 4,
  8, 8, 4, 4, 8, 8, 8, 8, 4,
  8, 8, 4, 4, 8, 8, 4, 8, 4,
  8, 8, 4, 4, 8, 8, 8, 8, 4,
  8, 8, 4, 4, 8, 8, 4, 8, 4
};
#endif

It is evident that the code generated by ChatGPT for "Bloody Mary" from Wednesday Addams is nowhere close to the original. While the intention behind using AI tools like ChatGPT is to simplify tasks and foster creativity, it's important to acknowledge their limitations.

Indeed, relying entirely on AI-generated code can be risky. Although ChatGPT demonstrates impressive capabilities, it is not perfect and can produce incorrect or unintended results, even with a high level of confidence. Depending on the context, this could lead to unwanted consequences, especially when dealing with critical applications or sensitive tasks.

Conclusion

Our exploration of combining ChatGPT with the Arduino tone() function for music composition has been an exciting journey. While we have witnessed ChatGPT's comprehension of code and its potential for generating melodies, it is important to acknowledge the limitations and the need for human expertise in ensuring accuracy. By embracing the synergy between technology and creativity, we can continue to push the boundaries of musical expression, forging a path where AI tools enhance our artistic endeavors while respecting the irreplaceable role of human ingenuity and judgment.

Have any question realated to this Article?

Ask Our Community Members