piano-appp

Use your PC beeper as a piano

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
import logo from './logo.svg';
import './App.css';
import { Piano, KeyboardShortcuts, MidiNumbers } from 'react-piano';
import 'react-piano/dist/styles.css';


function App() {
  const firstNote = MidiNumbers.fromNote('a2');
  const lastNote = MidiNumbers.fromNote('f5')
  const keyboardShortcuts = KeyboardShortcuts.create({
    firstNote: firstNote,
    lastNote: lastNote,
    keyboardConfig: KeyboardShortcuts.HOME_ROW,
  });

  return (
    <Piano
      noteRange={{ first: firstNote, last: lastNote }}
      playNote={(midiNumber) => {
        console.log(midiNumber);
        const freq = 880 * (2**((midiNumber - 69)/12));
         fetch('http://dubdub.mit.edu:5000/startfreq/' + freq);
      }}
      stopNote={(midiNumber) => {
        const freq = 880 * (2**((midiNumber - 69)/12));
         fetch('http://dubdub.mit.edu:5000/stopfreq/' + freq);
      }}
      width={1000}
      keyboardShortcuts={keyboardShortcuts}
    />
  );
}

export default App;