/SciTuner

SciTuner is a guitar tuner written in Swift3

Primary LanguageSwiftMIT LicenseMIT

SciTuner 2.0

Build Status License: MIT Platform Coverage Status

SciTuner is guitar tuner with real-time signal visualization. The application uses digital signal processing algorithm for accurate frequency estimation and wave visualization. SciTuner presents many useful features:

  • Works with guitars, ukuleles, banjos, violins and some other instruments
  • Allows to see a wave form of a sound in real time
  • Suppresses false harmonics in filter mode (on by default)
  • Allows to tune on 5th, 7th and 12th frets for fine tune
  • Makes frequency estimation with precision ±0,1Hz
  • Allows to freeze the wave form and values by button "pause"
  • Works in noisy conditions

Available On Appstore

The previous version of SciTuner 1.1 is available on AppStore. SciTuner 2.0 is coming soon.

FREE Download from Appstore

Screenshots

Screenshots

How It Works

The main controller is TunerViewController. This controller works with three models object Tuner, Processing and Microphone. Processing receives sound data from Microphone through controller and calculates power spectrum by FFT. Spectrum is used for estimation greatest peak position in frequency domain. Because a guitar sound may have many harmonics, it's necessary also detect harmonic order. Artificial Neural Network is used for this purposes by activating an input layer with spectrum powers taken on special frequencies (1/4, 1/3, 1/2, 2/3, 3/4, 1, 3/2, 2, 3, 4) relative to greatest peak.

So the result frequency divided by its harmonic order is used for estimation position of a note on the scale with selected pitch and tuning. This position is showed on display by TuningView and FineTuningView.

Also Processing allows to take preview data with standing wave effect by phase shifting with value of a greatest frequency peak. This wave is showed by SKView and TubeScene.

Screenshots

License

MIT