diff options
author | Simon Gagne <gags2431@usherbrooke.ca> | 2023-03-21 13:16:41 -0400 |
---|---|---|
committer | Simon Gagne <gags2431@usherbrooke.ca> | 2023-03-21 13:16:41 -0400 |
commit | 1a9b75fc21606d8d9ebda3092c65989b3104d775 (patch) | |
tree | cf266a792620b50540d1e1b6281d2861af846b40 | |
parent | 7fa3812f1297c444754f22c3141facecbda92ec7 (diff) |
Merge chart file
-rw-r--r-- | chordNote.cpp | 7 | ||||
-rw-r--r-- | main.cpp | 128 | ||||
-rw-r--r-- | song.cpp | 7 | ||||
-rw-r--r-- | song.h | 9 |
4 files changed, 80 insertions, 71 deletions
diff --git a/chordNote.cpp b/chordNote.cpp index 1fa7549..3f1f795 100644 --- a/chordNote.cpp +++ b/chordNote.cpp @@ -96,8 +96,11 @@ void ChordNote::print(){ // Trim all timings to milliseconds void ChordNote::trim(){ - start = start/1000000; - end = end/1000000; + start = start/1000; + if (end != 0) + { + end = end / 1000; + } } // }}} @@ -85,59 +85,61 @@ int main() cout << repertoire[i].getTitle() << " parsed!" << endl;
}
+ std::vector<ChordNote> song = repertoire[0].expert;
+
string displayString;
// Initialisation du port de communication
//string com;
//cout <<"Entrer le port de communication du Arduino: ";
//cin >> com;
- const int POWERUP_LENGTH = 10000;
+ const int POWERUP_LENGTH = 5000;
const int NB_SQUARES = 50;
- ChordNote note1(0, 5200, 5600);
- ChordNote note2(0, 6000, 0);
- ChordNote note3(0, 6600, 0);
- ChordNote note4(0, 8000, 0);
- ChordNote note5(0, 9000, 9600);
- ChordNote note6(0, 10000, 0);
- ChordNote note7(0, 11500, 12000);
- ChordNote note8(0, 12400, 0);
- ChordNote note9(0, 12600, 0);
- ChordNote note10(0, 13000, 13400);
-
- ChordNote note11(0, 15200, 15600);
- ChordNote note12(0, 16000, 0);
- ChordNote note13(0, 16600, 0);
- ChordNote note14(0, 18000, 0);
- ChordNote note15(0, 19000, 19600);
- ChordNote note16(0, 20000, 0);
- ChordNote note17(0, 21500, 22000);
- ChordNote note18(0, 22400, 0);
- ChordNote note19(0, 22600, 0);
- ChordNote note20(0, 23000, 23400);
-
- ChordNote note21(0, 25200, 25600);
- ChordNote note22(0, 26000, 0);
- ChordNote note23(0, 26600, 0);
- ChordNote note24(0, 28000, 0);
- ChordNote note25(0, 29000, 29600);
-
-
- note2.toggle(0);
- /*note2.change(0);
- note7.change(2);*/
-
- const int NB_NOTES = 25;
- ChordNote song[NB_NOTES] = {note1, note2, note3, note4, note5,
- note6, note7, note8, note9, note10,
- note11, note12, note13, note14, note15,
- note16, note17, note18, note19, note20,
- note21, note22, note23, note24, note25};
-
- const int FRAMERATE = 100;
+ //ChordNote note1(0, 5200, 5600);
+ //ChordNote note2(0, 6000, 0);
+ //ChordNote note3(0, 6600, 0);
+ //ChordNote note4(0, 8000, 0);
+ //ChordNote note5(0, 9000, 9600);
+ //ChordNote note6(0, 10000, 0);
+ //ChordNote note7(0, 11500, 12000);
+ //ChordNote note8(0, 12400, 0);
+ //ChordNote note9(0, 12600, 0);
+ //ChordNote note10(0, 13000, 13400);
+
+ //ChordNote note11(0, 15200, 15600);
+ //ChordNote note12(0, 16000, 0);
+ //ChordNote note13(0, 16600, 0);
+ //ChordNote note14(0, 18000, 0);
+ //ChordNote note15(0, 19000, 19600);
+ //ChordNote note16(0, 20000, 0);
+ //ChordNote note17(0, 21500, 22000);
+ //ChordNote note18(0, 22400, 0);
+ //ChordNote note19(0, 22600, 0);
+ //ChordNote note20(0, 23000, 23400);
+
+ //ChordNote note21(0, 25200, 25600);
+ //ChordNote note22(0, 26000, 0);
+ //ChordNote note23(0, 26600, 0);
+ //ChordNote note24(0, 28000, 0);
+ //ChordNote note25(0, 29000, 29600);
+
+
+ //note2.toggle(0);
+ ///*note2.change(0);
+ //note7.change(2);*/
+
+ //const int NB_NOTES = 25;
+ //ChordNote song[NB_NOTES] = {note1, note2, note3, note4, note5,
+ // note6, note7, note8, note9, note10,
+ // note11, note12, note13, note14, note15,
+ // note16, note17, note18, note19, note20,
+ // note21, note22, note23, note24, note25};
+
+ const int FRAMERATE = 50;
int renderStart = FRAMERATE * (NB_SQUARES);
- for (int i = 0; i < NB_NOTES; i++)
+ for (int i = 0; i < song.size(); i++)
{
song[i].setRenderStart(renderStart);
}
@@ -186,7 +188,7 @@ int main() int lastCorrectHoldTime = 0;
int powerupStartTime = 0;
- int multiplier = 1;
+ int powerupModifier = 1;
std::thread worker(RcvJsonThread);
@@ -195,7 +197,8 @@ int main() auto currentTime = chrono::steady_clock::now();
totalDiff = int(std::chrono::duration_cast <std::chrono::milliseconds>(currentTime - startTime).count());
- if(totalDiff > 30000)//End of song
+ //if(totalDiff > 30000)//End of song
+ if (nextNoteToPlay == song.size())
{
isThreadOver = true;
worker.join();
@@ -210,7 +213,7 @@ int main() //CHECK NOTES INPUT
int nextNoteStart = song[nextNoteToPlay].getStart();
- if (abs(nextNoteStart - diffSinceBeginning) < 25 && nextNoteToPlay < NB_NOTES)
+ if (abs(nextNoteStart - diffSinceBeginning) < 25 && nextNoteToPlay < song.size())
{
bool isNotePlayedCorrectly = ComparePlayedNotes(song[nextNoteToPlay], false); //TODO. DEVRA ETRE A TRUE
if (isNotePlayedCorrectly)
@@ -222,12 +225,7 @@ int main() {
if (notes[i])
{
- multiplier = 1;
- if (IsInPowerup)
- {
- multiplier = 2;
- }
- points += 100 * multiplier;
+ points += 100 * powerupModifier;
}
}
nextNoteToPlay++;
@@ -236,7 +234,7 @@ int main() hasLetGoHold = false;
}
}
- else if (nextNoteStart < diffSinceBeginning && nextNoteToPlay < NB_NOTES)
+ else if (nextNoteStart < diffSinceBeginning && nextNoteToPlay < song.size())
{
nextNoteToPlay++;
NotesCorrectStreak = 0;
@@ -268,12 +266,7 @@ int main() nbHeldNotes++;
}
}
- multiplier = 1;
- if (IsInPowerup)
- {
- multiplier = 2;
- }
- points += ((diffSinceBeginning - lastCorrectHoldTime) * nbHeldNotes) * multiplier;
+ points += ((diffSinceBeginning - lastCorrectHoldTime) * nbHeldNotes) * powerupModifier;
}
lastCorrectHoldTime = diffSinceBeginning;
}
@@ -284,15 +277,17 @@ int main() }
}
- if (IsShaking && LedState == 10)
+ if (!IsInPowerup && IsShaking && LedState == 10)
{
IsInPowerup = true;
powerupStartTime = diffSinceBeginning;
+ powerupModifier = 2;
}
if (IsInPowerup && diffSinceBeginning - powerupStartTime > POWERUP_LENGTH)
{
IsInPowerup = false;
BargraphNeedReset = true;
+ powerupModifier = 1;
}
//Gestion affichage
@@ -384,20 +379,23 @@ int main() string ledStateString = to_string(LedState);
string streakString = to_string(NotesCorrectStreak);
string holdTimeString = to_string(points);
- string multiplierString = to_string(multiplier);
+ string powerupModifierString = to_string(powerupModifier);
displayString += "Timestamp " + timestampString.substr(0, timestampString.find(".")) + " ms\n";
displayString += "Nb LEDs : " + ledStateString.substr(0, ledStateString.find(".")) + "/10\n";
displayString += "Nb notes de suite : " + streakString.substr(0, streakString.find(".")) + "\n";
displayString += "Points : " + holdTimeString.substr(0, holdTimeString.find(".")) + "\n";
if (IsInPowerup)
{
- displayString += "Multiplicateur : x" + multiplierString.substr(0, multiplierString.find(".")) + " --- POWERUP !!!!!\n";
+ displayString += "Multiplicateur : x" + powerupModifierString.substr(0, powerupModifierString.find(".")) + " --- POWERUP !!!!!\n";
}
else
{
- displayString += "Multiplicateur : x" + multiplierString.substr(0, multiplierString.find(".")) + "\n";
+ displayString += "Multiplicateur : x" + powerupModifierString.substr(0, powerupModifierString.find(".")) + "\n";
}
+ string IsShakingString = to_string(IsShaking);
+ displayString += "IsShaking : " + IsShakingString.substr(0, IsShakingString.find(".")) + "\n";
+
cout << displayString;
}
}
@@ -492,6 +490,10 @@ int main() JoyDir = json_recu[JOY_DIR];
IsShaking = json_recu[ACCEL];
+ if (IsShaking)
+ {
+ cout << "SENSIBILITE BEN TROP BASSE" << endl;
+ }
/*if(led_state == 10) //lorsque la dixieme led est allumee
{
@@ -323,8 +323,11 @@ std::string Song::getAudioFile(){ void Song::trim(int difficulty){ // TODO: make this fuction use the difficulty parameter - std::vector<ChordNote>*chords = &expert; - chords->trim(); + //std::vector<ChordNote> *chords = &expert; + for (int i = 0; i < expert.size(); i++) + { + expert[i].trim(); + } } @@ -37,6 +37,11 @@ class Song{ std::string getGenre(); std::string getAudioFile(); + std::vector<ChordNote> easy; + std::vector<ChordNote> medium; + std::vector<ChordNote> hard; + std::vector<ChordNote> expert; + private: const std::string chartFile; std::string title; @@ -49,10 +54,6 @@ class Song{ bool difficulty[4]; // Which difficulties are available int resolution; std::vector<Timestamp> timestamps; - std::vector<ChordNote> easy; - std::vector<ChordNote> medium; - std::vector<ChordNote> hard; - std::vector<ChordNote> expert; }; //#include "song.cpp" |