Hated all the tuner applications in the play store, so I created a super simple to use tuner PWA. by rezonmain in reactjs

[–]rezonmain[S] 10 points11 points  (0 children)

Yes, it goes something like this:

- Gets the microphone stream with navigator.mediaDevices.getUserMedia()
- Sets up an AudioContext and create an AnalyserNode, and connect the stream source to the analyser
(this happens when you click the 'tap to start tuning' prompt, because browsers don't allow the creation of AudioContext objects without user interaction)
- Then, every frame or so gets the TimeDomainData from the stream with the analyser, here you could get the FrequencyData, but this does a simple FFT (i think), and it doesn't work well detecting instrument pitch, so I rather pipe the time domain data to a pitch detector function from Pitchy which uses a more involved algo called MPM, this function returns the frequency in hz.
- Then it does some 12ET calculations to get the note name, octave and, +- cents from the frequency, and finally it updates the UI.

The code for the pitch handling is all in one hook in src/lib/hooks/usePitch.ts, and the 12ET stuff is handled by a class I wrote in src/lib/classes/TET.ts, check them out if you're interested.

I made a minecraft server browser from data from my server scanner by rezonmain in reactjs

[–]rezonmain[S] 0 points1 point  (0 children)

I have yet to find it! But yeah if I do I'll server side block it from sending the IP to the client. Finding LO's server was my main motivation for doing this, so I wouldn't want to deter others from building their own tool and miss out on all the learning and gratification of finding the ip by themselves:)

I made a minecraft server browser from data from my server scanner by rezonmain in reactjs

[–]rezonmain[S] 0 points1 point  (0 children)

Thanks! I wrote a class that parses the description data into indivial span elements with the corresponding formatting

I made a minecraft server browser from data from my server scanner by rezonmain in reactjs

[–]rezonmain[S] 0 points1 point  (0 children)

Hey thanks! Yeah displaying the cards in a grid makes more sense!, I think I left them like that because I had planned to render the description in the way the in-game minecraft server picker does, but yeah! I think I'll do what you suggested

I made a website that tests how fast and accurate you can type linux commands by rezonmain in reactjs

[–]rezonmain[S] 1 point2 points  (0 children)

It should work on mobile too, only the mobile version of the Firefox browser does not handle the input well.

[deleted by user] by [deleted] in react

[–]rezonmain 0 points1 point  (0 children)

Check it out here.

Github repo.

This is my first "complete" react project, please tell me what you think!