28 uint16 generateNoteID (
int midiChannel,
int midiNoteNumber)
noexcept
30 jassert (midiChannel > 0 && midiChannel <= 16);
31 jassert (midiNoteNumber >= 0 && midiNoteNumber < 128);
33 return uint16 ((midiChannel << 7) + midiNoteNumber);
45 :
noteID (generateNoteID (midiChannel_, initialNote_)),
71 return frequencyOfA * std::pow (2.0, (pitchInSemitones - 69.0) / 12.0);
75bool MPENote::operator== (
const MPENote& other)
const noexcept
78 return noteID == other.noteID;
81bool MPENote::operator!= (
const MPENote& other)
const noexcept
84 return noteID != other.noteID;
100 void runTest()
override
102 beginTest (
"getFrequencyInHertz");
105 note.initialNote = 60;
106 note.totalPitchbendInSemitones = -0.5;
107 expectEqualsWithinOneCent (note.getFrequencyInHertz(), 254.178);
113 void expectEqualsWithinOneCent (
double frequencyInHertzActual,
114 double frequencyInHertzExpected)
116 double ratio = frequencyInHertzActual / frequencyInHertzExpected;
117 double oneCent = 1.0005946;
118 expect (ratio < oneCent);
119 expect (ratio > 1.0 / oneCent);
123static MPENoteTests MPENoteUnitTests;
#define noexcept
Definition DistrhoDefines.h:72
uint16_t uint16
Definition basics.h:88
Definition juce_MPEValue.h:37
Definition juce_UnitTest.h:70
Definition juce_UnitTestCategories.h:27
Definition carla_juce.cpp:31
unsigned char uint8
Definition juce_MathsFunctions.h:37
KeyState
Definition juce_MPENote.h:44
@ off
Definition juce_MPENote.h:45
uint16 noteID
Definition juce_MPENote.h:98
MPEValue noteOnVelocity
Definition juce_MPENote.h:116
MPEValue timbre
Definition juce_MPENote.h:144
MPEValue pitchbend
Definition juce_MPENote.h:128
uint8 initialNote
Definition juce_MPENote.h:108
MPEValue pressure
Definition juce_MPENote.h:133
MPEValue initialTimbre
Definition juce_MPENote.h:138
double getFrequencyInHertz(double frequencyOfA=440.0) const noexcept
Definition juce_MPENote.cpp:68
double totalPitchbendInSemitones
Definition juce_MPENote.h:164
uint8 midiChannel
Definition juce_MPENote.h:103
KeyState keyState
Definition juce_MPENote.h:169
bool isValid() const noexcept
Definition juce_MPENote.cpp:62
MPENote(int midiChannel, int initialNote, MPEValue velocity, MPEValue pitchbend, MPEValue pressure, MPEValue timbre, KeyState keyState=MPENote::keyDown) noexcept
Definition juce_MPENote.cpp:38
#define const
Definition zconf.h:137