Coder Social home page Coder Social logo

ryanlintott / ssvep_keyboard Goto Github PK

View Code? Open in Web Editor NEW
43.0 3.0 15.0 7.88 MB

The SSVEP Keyboard works with the icibici hardware. Once connected you should be able to look at keys and it will type them for you.

License: MIT License

C# 50.74% ShaderLab 43.19% HLSL 6.07%
ssvep smartphone-bci keyboard flicker eeg unity frequency signal

ssvep_keyboard's People

Contributors

ryanlintott avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ssvep_keyboard's Issues

Better high and low frequency labels

Current "label" is just flickering the bands from their value to zero. Ideally there is a more precise way to label these frequency locations and values.

Use alternative FFT function

Using an alternative FFT function will allow for even more granularity in the results by increasing the window size beyond the limits of Unity's built in function.

Keys flickering at correct Hz

Update the keys so that they are sprites instead of UI objects. This will allow them to flicker properly with 60Hz refresh rate.

Re-arrange UI and hide Low and High buttons

The Low and High Frequency buttons are great for a demo but they are unnecessary for typical use. Re-arrange the UI and hide these buttons under a toggle. Perhaps the bottom section of the screen should show more of the chart instead? Or just more space for flashing keys?

Detect ERP

Detect ERP (Event Related Potential) signals.
This one would take a while as I have to learn a lot more about ERP first.

Add Yes and No keyboard

Create a version of the keyboard with Yes and No keys as an alternative to a full keyboard

Visualise the SSVEP high and low triggers

Setup a visual element to show the difference between the peaks for the high and low frequencies. It should have markings for the trigger threshold and another visual element to show how long it's been within that threshold.

More frequency resolution

I have already decreased the sample rate to try to get more resolution.
This decreased from 44100 to 22050 to 11025 but this is the lower limit.
Instead of altering the sample rate I could instead alter the pitch of the tone we're looking for to spread it out across more frequencies. By increasing the pitch from 1 to 2 I could move the 1kHz tone to 2kHz and therefor the 1,015Hz and 1,020Hz to 2,030Hz and 2,040Hz. As I have up to half the sample rate to work with it would help to spread out these frequencies I'm looking for across more buckets.

Training Mode

Create a new mode where the user can look at various flickering patters so that the app can learn the difference trigger values per person (as they may be different). This mode could also potentially set the delay differently depending on how good the connection is.

Dynamic keyboard

Create a dynamic keyboard that does the following:

  • scales with the screen
  • pinch-zoom to adjust the size of keys (and therefor the size of the gaps)

Global app settings menu

Create a menu so that users can make adjustments to global app settings.
For example: Hz, length of detection time, etc

Adjust FFT function to use larger window

This will only work with Android and iPhone (not mac or PC) but if the output sample rate can be changed to less than 44100 the FFT window size will increase and the bucket size will shrink and be more precise.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.