Stepper Motor Music Help

before i get started im 15 and am kind of a rookie to arduino:

so i have been trying to make music with 2 nema bipolar stepper motors and i ran into this code
https://create.arduino.cc/projecthub/iot_lover/arduino-making-music-using-step-motors-a477d5?f=1

i need to use it with a this stepper driver Adafruit Motor/Stepper/Servo Shield for Arduino kit [v1.2] : ID 81 : $19.50 : Adafruit Industries, Unique & fun DIY electronics and kits

i honestly dont know how to do this
my code so far is below

#include <Stepper.h>

#include <AFMotor.h>

#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>

//#include <math.h>
//#include <Phpoc.h>
//#include <PhpocExpansion.h>

Stepper step1(13);
Stepper step2(14);

Stepper steps[2] = {step1, step2};

void stepPlaySetup(int play_id, int vref = 8, int mode = 2, int accel = 10000);

void setup() {
Serial.begin(9600);
while(!Serial)
;

Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
Expansion.begin();

stepPlaySetup(0);
stepPlaySetup(1);
stepPlayTempo(38);

play_marble_machine_song();
}

void loop() {

}

const char melody1a[] PROGMEM = "5E2.67 4B2 4A8 4G8 4A4 4B4 4G8 4A8 5D8 R2.67 4B2 4A8 4G8 4A4 4F#4 4G8 4A8 5D8";
const char melody1b[] PROGMEM = "R2.67 4B2 5D8 5C8 4B4 4A4 4G8 4A8 4E8 R8 4C8 4E8 4B8 3B8 4C8 4D8 5D8 5C8 4B4 4A4 4G8 4A8 5E8";
const char melody1c[] PROGMEM = "R2.67 4B2 4A8 4G8 4A4 4B4 4G8 4A8 5D8 R2.67 4B2 5D8 5C8 4B4 4A4 4G8 4A8 5D8";
const char melody1d[] PROGMEM = "R2.67 4B2.67 4A8 5E8 R8 4B4 4A4 4G8 4F#8 4E8 R8 3B8 4C8 4F#8 4C8 4E8 4G8 4D8 4F#8 4A8 3B8 4B8 4D8 4G8 4A8 5E8";

const char chord1a[] PROGMEM = "3E4 4E2.67 3E8 4E4 3E4 4E2.67 3E8 4E4 3G4 4G2.67 3G8 4G4 3G4 4G2.67 3G8 4G4";
const char chord1b[] PROGMEM = "3D4 4D2.67 3D8 4D4 3D4 4D2.67 3D8 4D4 3C4 4C2.67 3C8 4C4 3D4 4D2.67 3D8 4D4";
const char chord1c[] PROGMEM = "3E4 4E2.67 3E8 4E4 3E4 4E2.67 3E8 4E4 3G4 4G2.67 3G8 4G4 3G4 4G2.67 3G8 4G4";
const char chord1d[] PROGMEM = "3D4 4D2.67 3D8 4D4 3D4 4D2.67 3D8 4D8 3C4 4C2.67 3C8 4C4 3D4 4D2.67 3D8 4D4";

const char* const melody_table[] PROGMEM = { melody1a, melody1b, melody1c, melody1d };
const char* const chord_table[] PROGMEM = { chord1a, chord1b, chord1c, chord1d };

char buffer[110];

int melody[55];
int chord[55];
byte melody_len, chord_len;

void play_marble_machine_song() {
for (byte i = 0; i < 4; i++) {
strcpy_P(buffer, (char*)pgm_read_word(&(melody_table*)));*

  • melody_len = stepPlayEncode(buffer, melody);*
    strcpy_P(buffer, (char*)pgm_read_word(&(chord_table*)));
    chord_len = stepPlayEncode(buffer, chord);
    _
    stepPlayChangeDir();_
    stepPlayHarmony(melody, chord, melody_len, chord_len);
    //stepPlayMelody(melody, melody_len);
    _
    }_
    _
    Serial.println("End!");_
    _
    }_
    _/ Library /_
    int stepPlaySpeed = 1000; // ms per bar
    int stepPlayDirection = +1;
    void stepPlaySetup(int play_id, int vref = 8, int mode = 2, int accel = 10000) {
    steps[play_id].setVrefStop(2);
    steps[play_id].setVrefDrive(vref);
    steps[play_id].setMode(mode);
    steps[play_id].setAccel(accel);
    _
    }_
    void stepPlayTempo(int tempo) {
    _
    stepPlaySpeed = (int)(1000.0 / (tempo / 60.0));_
    _
    }_
    void stepPlayChangeDir() {
    _ stepPlayDirection = -1;_
    _
    }
    _
    int stepPlayEncode(char score, int score_encoded) {
    _
    char note[10];
    _
    * int score_len = 0;
    int score_encoded_id = 0;
    _
    int blankPos = -1;_
    _
    int blankPosNext = 0;_
    _
    while(blankPosNext != -1) {_
    float dur_fp;
    long dur_ms;
    _
    long freq;_
    _
    blankPosNext = blankPos + 1;_
    _
    while(score[blankPosNext] != ' ') {_
    _
    blankPosNext++;_
    _
    if(score[blankPosNext] == 0) {_
    score_len = blankPosNext;
    _
    blankPosNext = -1;_
    _
    break;_
    _
    }_
    _
    }_
    _
    if(blankPosNext >= 0) {_
    _
    int i;_
    _
    for(i = blankPos + 1; i < blankPosNext; i++)_
    _ note[i - (blankPos + 1)] = score;
    note[i - (blankPos + 1)] = 0;
    blankPos = blankPosNext;
    if(note[0] == ' ')
    continue;
    } else {
    int i;_
    for(i = blankPos + 1; i < score_len; i++)
    _ note[i - (blankPos + 1)] = score;
    note[i - (blankPos + 1)] = 0;
    }
    if(note[0] == 'R') { / rest /
    note[0] = '0';_

    dur_fp = atof(note);
    dur_ms = (long)(stepPlaySpeed / dur_fp);
    _ freq = 0;
    } else { / tone /
    int tone = (note[0] - 48) * 12; // octave * 12_

    _ // C C# D D# E F F# G G# A A# B*
    * // 0 1 2 3 4 5 6 7 8 9 10 11*
    * switch(note[1]) {
    case 'C':
    tone += 0;
    break;
    case 'D':
    tone += 2;
    break;
    case 'E':
    tone += 4;
    break;
    case 'F':
    tone += 5;
    break;
    case 'G':
    tone += 7;
    break;
    case 'A':
    tone += 9;
    break;
    case 'B':
    tone += 11;
    break;
    default:_

    Serial.print("encode_score: unknown tone: ");
    _ Serial.println(note);
    return 0;
    }
    if(note[2] == '#') {
    tone++;
    note[0] = '0';
    note[1] = '0';
    note[2] = '0';
    } else if(note[2] == 'b') {
    tone--;
    note[0] = '0';
    note[1] = '0';
    note[2] = '0';
    } else {
    note[0] = '0';
    note[1] = '0';
    }_

    dur_fp = atof(note);
    dur_ms = (long)(stepPlaySpeed / dur_fp);
    _ int octave = tone / 12;
    tone = tone % 12;
    long freqA = 440.0 * pow(2, (octave - 4));
    freq = (int)(freqA * pow(2, (tone - 9) / 12.0));
    }_

    score_encoded[score_encoded_id++] = freq;
    score_encoded[score_encoded_id++] = dur_ms;
    _ }_
    return score_encoded_id;
    _}_
    void stepPlayMelody(int melody, int melody_len) {
    int melody_count = 0;

    * while(melody_count < melody_len) {
    int freq = melody[melody_count++];
    int dur_ms = melody[melody_count++];
    _ if(freq) {
    steps[0].setSpeed(freq);
    steps[0].stepGoto(stepPlayDirection * 1000000);_

    delay(dur_ms);
    _ steps[0].stop(0);
    } else // zero frequency is 'rest'_

    delay(dur_ms);
    _ }
    }
    void stepPlayHarmony(int *melody1, int *melody2, int melody1_len, int melody2_len) {
    int melody[2] = {melody1, melody2};_
    unsigned long melody_start_ms = millis();

    * unsigned long melody_next_ms[2] = { 0, 0 };
    int melody_count[2] = { 0, 0 };
    int melody_len[2] = { melody1_len, melody2_len };
    while((melody_count[0] < melody_len[0] ) || (melody_count[1] < melody_len[1] ) || melody_next_ms[0] || melody_next_ms[1]) {
    _ for(int i = 0; i < 2; i++) {_
    if(melody_next_ms) {
    if(melody_next_ms <= millis()) {
    _ steps.stop(0);
    melody_next_ms = 0;
    }
    } else {_

    if(melody_count < melody_len ) {
    int freq = melody[melody_count];
    int dur_ms = melody[melody_count + 1];
    melody_count += 2;
    _ if(freq) {
    steps.stop(0);
    steps.setSpeed(freq);
    steps.stepGoto(stepPlayDirection * 1000000);
    Serial.print("freq: ");
    Serial.print(freq);_

    Serial.print(", dur_ms: ");
    Serial.println(dur_ms);
    _ }
    melody_next_ms = millis() + dur_ms;
    }
    }
    }
    }
    }*

    if anyone could help me or even be so nice as to do it for me that would be great
    i will check on this topic daily so please post as soon as possible. Thank you_

Please put code tags around the code, the </> button. Much easier to work with then.

And don't forget to tell us what you want your code to do and what it actually does if that's different.

If it doesn't compile yet then post the full error messages you get.

Steve

i am trying to make the steppers play music and i have not tested yet and will do so please look for further updates

sorry about the email change i canot sign into google

i changed my password so im back with my old email