react-native-pitch-tracker

React Native Pitch Tracker implemented with Tensorflow Lite Model

Usage no npm install needed!

<script type="module">
  import reactNativePitchTracker from 'https://cdn.skypack.dev/react-native-pitch-tracker';
</script>

README

react-native-pitch-tracker

NPM

React Native Pitch Tracker implemented with Tensorflow Lite Model

  • iOS/iPadOS Implementation
  • Android Implementation

Installation

npm install --save react-native-pitch-tracker react-native-permissions

Usage

Prerequisites (iOS/iPadOS)

  • First, Download this(Download Link : Onsets and Frames TFLite) Model.
  • After that, add this file to your XCode Project.
  • Double check that the file is successfully imported to project.
    • Check the .tflite model is in your Project File -> Build Phases -> Copy Bundle Resources
  • Open your project's Info.plist in XCode, and add NSMicrophoneUsageDescription row.
    • Or in other editor, add this row in the plist.
    <key>NSMicrophoneUsageDescription</key>
    <string>YOUR TEXT</string>
    
  • Open your project's Podfile and update with these lines.
target 'YourAwesomeProject' do

  # …

  permissions_path = '../node_modules/react-native-permissions/ios'

  pod 'Permission-Microphone', :path => "#{permissions_path}/Microphone.podspec"

end

Prerequisites (Android)

  • Copy the downloaded file(tflite model) to {ProjDirectory}/android/app/src/main/assets.
  • After that, update the build.gradle
android {

    // …

    aaptOptions {
        noCompress "tflite"
    }
}

Usage in React Native Code

import PitchTracker from "react-native-pitch-tracker";

// ...

// Must do before start()  
PitchTracker.prepare()

// Event Subscription (Add function to parameter)
PitchTracker.noteOn((res) => {
    console.log('Note On: ' + res['midiNum']);
}); // Note On: 60
PitchTracker.noteOff((res) => {
    console.log('Note Off: ' + res['midiNum']);
}); // Note Off: 60

// Start PitchTracker Engine
PitchTracker.start()

// Stop PitchTracker Engine
PitchTracker.stop()

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT