sounds met TMRPCM pitch control functie

Arduino specifieke Software
Berichten: 3
Geregistreerd: 07 Jun 2022, 10:55

sounds met TMRPCM pitch control functie

Berichtdoor Ebro » 07 Jun 2022, 12:22

Hallo allen,
Eerste berichtje van mij, mijn naam is Ebro de Wit, 50 jaar ben ik met modelbouw bezig, treinen en boten in diverse formaten en aandrijvingen.
Arduino boarden spelen daarbij omdat ik at wil een steeds grotere rol in diverse functie enz.
Dit forum diverse keren bezocht in het verleden om zaken te kunnen begrijpen en toe te kunnen passen.
Ook nu mijn eerste vraagstelling.
Ik wil graag een diesel geluid in toerental (Pitch ) laten veranderen in mijn programma daarbij gebruikmakende van de librarie TMRPCM.
ik heb een sample genomen van youtube en deze beperkt tot 1 omwenteling van een motor in audacity, als ik nu de snelheid kan verhogen is het doel bereikt.
de basis werkt goed en eenvoudig , echter heeft de librarie geen pitchcontrol mogelijkheid.
Op een ander forum staat onderstaande, dit heb ik uitgevoerd:
https://forum.arduino.cc/t/success-getting-tmrpcm-to-change-the-pitch-and-speed-of-sounds/586697

deel code van dit forum:

Just solved that as I needed it to work for my project.

The problem is that this code is trying to modify variables that are global within the tmrpcm library code, but not your program. It works if you put it inside the tmrpcm library.

Create a function in the TMRpcm.cpp file, which contains the code which Lucario448 wrote. I called this ‘changespeed’, so my function declaration was this:

void TMRpcm::changespeed(unsigned int newspeed){
unsigned long newSR = map(newspeed, 0, 1023, 8000, 44100);

if (bitRead(optionByte,6)) *ICRn[tt] = 10 * (800000 / newSR);
else *ICRn[tt] = 10 * (1600000 / newSR);
}

and I put this at line 448, just before the area marked

//***************************************************************************************
//********************** Functions for single track playback ****************************

(though I could probably have put this anywhere in the tmrpcm.cpp file).

Then, I modified the ‘TMRpcm.h’ file accordingly, to add the new function to the list of available functions or the compiler gets confused if you don’t. Again, I added this before the play function (line 31)

void changespeed(unsigned int newspeed);

Now, I can call this function from anywhere in my code whenever I want to change the playback speed, if I want to control if from analog0, I just call tmrpcm.changespeed(analogRead(A0));


Dit moest ik veranderen in de librarie's TMRPCM.CPP en TMRPCM.h
gedaan maar ik hoor geen toon hoogte verschil, schijnbaar doe ik iets verkeerd.
Mijn basis programma is eenvoudig en is een afgeleide van deze
https://www.instructables.com/Playing-Wave-file-using-arduino/
Deze gebruik ik alleen om te testen, want als de pitch control niet gaat werken dan wil ik wat anders.

Wie kan mij op weg helpen dit werkende te maken, of andere voorstellen doen.

groetjes Ebro

Advertisement

Berichten: 3
Geregistreerd: 07 Jun 2022, 10:55

Re: sounds met TMRPCM pitch control functie

Berichtdoor Ebro » 07 Jun 2022, 23:11

Graag deze dubbele post verwijderen.
Intro niet goed gelezen voor plaatsing helaas.
Dit betreft een dubbele posting.
Sorry. Groetjes Ebro

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten