Giter Site home page Giter Site logo

balandinodidonato / myomapper Goto Github PK

View Code? Open in Web Editor NEW
47.0 12.0 8.0 176.05 MB

Myo Mapper is an open-source application to map Myo armband data into OSC.

Home Page: http://www.balandinodidonato.com/myomapper

C++ 75.27% C 19.76% Objective-C++ 3.44% Java 1.21% Objective-C 0.33%

myomapper's Introduction

Myo Mapper

Myo Mapper is a free and open source cross-platform application, written using JUCE, to map Myo armband data to OSC messages. Myo Mapper represents a “quick and easy” solution for experimenting without requiring any programming knowledge.

Key Features

  • Easy-calibration to overcome yaw data drift (Nymoen et al. 2015)
  • Scales myo data to facilitate the Myo use in musical applications
  • Feature extraction of moving average, min, max, absolute value, first and second order difference, zero crossing rate, EMG mean absolute value (MAV).

Publications

Conference proceedings

Posters

Acknowledgements

Myo Mapper is a software supported by Embodied AudioVisual Interaction Unit at Goldsmiths, University of London, European Research Council and Integra Lab.

Team:


License

Copyright (c) 2017 - Balandino Di Donato

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

myomapper's People

Contributors

noiizbot 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  avatar  avatar  avatar  avatar  avatar

Watchers

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

myomapper's Issues

GUI enhancement

To remove the Show Orientation, Show Mav and Show Pose buttons and add a Performance View button.

MIDI messages

To reproduce:

  • run Myo connect within MyoPd
  • run Pd and Integra Live

Expected:

  • Pd only receive Myo data

Current:

  • Pd and Integra Live receive Myo data

Myo is gone

Dear MyoMapper/ Myo users!!! Just quick survey to bring Myo Mapper further!

As we all know Thalmic and the beloved Myo is gone. I'd like to know what you think about it.

  1. Will you keep using your Myo/Myo Mapper?
  2. Do you feel the need of a better version of Myo Mapper? If yes, what issues do you think need to be sorted and what should be improved?
  3. What if your only Myo/s will break down?
  4. Will you keep working with a different EMG device? Or will you stop using EMG/ biosignals?
  5. Any other thoughts?

Vibrate Myo

To reproduce

  1. Launch Myo Mapper
  2. Select Myo 1
  3. Launch another Instance of Myo Mapper
  4. Select Myo 2
  5. Open the MyoMapper_Receiver-Sender.pd
  6. Make Myo 1 vibrate
  7. Make Myo 2 vibrate

Expected:

  • Myo 1 vibrates after step 6
  • Myo 2 vibrates after step 7

Current:

  • Myo 1 vibrates
  • Myo 2 doesn't

Menu Bar

To Reproduce:

  1. Launch Myo Mapper
  2. Click Help
  3. Click About Myo Mapper or Online Documentation

Expected:

  • The About Myo Mapper window or Online Documentation window opens;

Current:

  • It opens the second time you go through step n. 2 and 3

Here the code where the Menu Bar Item is selected.

OSC communication output

Hello! I am really new with MyoMapper and programming and my question might seems really amateur. I've tried for a while to solve it on my own before asking.

I am sending MyoMapper output to Osculator where I assign midi that is consequently sent to Ableton.

Shouldn't the Hand Pose have values from -1 to 5?
Osculator only displays 0 & 1.

Thank you!
Screen Shot 2019-03-22 at 11 03 58

unable to export Processing app

It says "Error during export". When trying to run the sketch in the IDE, it says "The function id() does not exist" and the line "if (theEvent.controller().id() == 2) ORx=orX;" is highlighted on the "bang" tab.
Mac OS X 10.9.5, Processing 2.2.1

High cpu usage?

This app is def the easiest way out there of getting usable data out of the myo, good work! Cheers
One issue tho- for me it's using about 70% of a 4.2 GHz 5960X core (HT off) which seems... excessive. Is there any optimization to be done or is this inherent to Processing?

Orientation Accelertation

To reproduce

  • Launch Myo Mapper
  • set Orientation's Acceleration data on

Expected

  • Myo Mapper sends Orientation's Acceleration data via OSC

Actual

  • The data are always 0.

MyoMaxMSP

A connector for Max MSP should be developed.

Request for v3 for Windows

Hi,

I've been working with an artist who wants to run MyoMapper on a windows machine - and right now the GUI on v2.5.13 isn't displaying correctly on her laptop. Is there any chance you could post a compiled version of v3 for windows? I know you referenced a GUI bug in #48 - so I know you've working on it :-)

For reference, the v2.5.13 GUI looks like this on her machine:
screen shot 2018-08-09 at 4 20 45 pm

MyoMapper not sending pose to ML

When trying to send the Hand Pose to ML the only value I receive is 0 even if the Calibration and Scaling menu shows differently. I also tested to see if this was an issue with main as well and it is.

Saving settings / features / calibration and scaling

Hey ! I love MyoMapper and it's really great but I can't seem to understand if it's possible to save selected features / calibration and scaling settings or I have to manually adjust it every session ?
didn't find anything on the wiki. sorry if I've missed something basic :)

Rescale button

To reproduce

  • Compile Myo Mapper from any branch
  • Open Myo Status window

Expected

  • The reverse butto is proportionated in height with the Calibrate button

Actual

  • The reverse button is less high than the Calibrate button

[Feature request] Saving last settings

Currently every time Myo Mapper is launched the settings are reinitialized (ports, data sent), which it tricky because you need to remember what settings you had last time.
I believe it's a feature request, but if that's a bug let me know!

Thanks for the hard work.

Gui efficiency & Window Focus Bug

Hi, despite Myo being discontinued, it is still a relatively nice and usable option for continued use. I noticed I was getting relatively high CPU usage (>60%) from MyoMapper.

On a local build, I removed the GUI interface showing current pitch yaw and roll values and now average 5-12% CPU usage. Mileage may vary.

The other issue I'm looking for help with is when MyoMapper is unfocused (Ableton or max msp is in the forefront) - eventually Myomapper stops transmitting values. From debugging, the Myo Api is still transmitting values that are processed.

Meanwhile , timerCallback() isn't running and will only update when I refocus on MyoMapper or move any other window.

I'm using Mojave, but pretty sure this issue extended to older OS's.

Menu bar in windows doesn't appear

To reproduce

  • Compile Myo Mapper from Win branch in Windows's IDE

Expected

  • Each window will include the menu bar

Actual

  • The menu bar is not rendered

To create Myo data streaming pannel

To create the Myo data streaming panel following the structure below.

  • orientation
    • quaternion
    • raw
    • scaled
    • velocity (here the user can select the buffer size, to insert a numberBox)
    • orientation (here the user can select the buffer size, to insert a numberBox)
  • acc
    • raw
      • fod
    • scaled
      • fod
        • mavg (here the user can select the buffer size, to insert a numberBox)
  • gyro
    • raw
      • fod
      • zeroCrossingRate (here the user can select the buffer size, to insert a numberBox)
    • scaled
      • abs
      • fod
        • mavg (here the user can select the buffer size, to insert a numberBox)
  • emg
    • scaled
      • raw
      • abs
        • raw
        • min (here the user can select the buffer size, to insert a numberBox)
        • max (here the user can select the buffer size, to insert a numberBox)
        • fob
          • raw
          • mavg (here the user can select the buffer size, to insert a numberBox)
      • mav
        • raw
        • mavg (here the user can select the buffer size, to insert a numberBox)
        • min (here the user can select the buffer size, to insert a numberBox)
        • max (here the user can select the buffer size, to insert a numberBox)
        • fod (here the user can select the buffer size, to insert a numberBox)
          • raw
          • mavg (here the user can select the buffer size, to insert a numberBox)
    • raw
      • mavg
      • zeroCrossingRate (here the user can select the buffer size, to insert a numberBox)
        • mavg (here the user can select the buffer size, to insert a numberBox)
  • pose

OSC messages not received by MyoMapper

Sending out OSC messages to the configured port has no effect on the Myo.
OSC Receiver set to 5425, and the test message is /myo1/vibrate "long"
When (temporarily) monitoring the port the message comes through correctly, but MyoMapper doesn't get it / doesn't send it to the Myo.
MyoMapper is sending out the OSC messages correctly (e.g. /myo1/pose "rest")

Any advice?

Resizing in Windows

To reproduce

  • Compile Myo Mapper from Win branch

Expected

  • Myo Mapper compiles as in Mac release

Actual

  • The windows size is not correct. They are once the user try to resize the window

Video

Shot a second video about the usage of the Myo and Pd.

Bug in Myo Mapper GUI

To reproduce:

  • Compile Myo Mapper 3 for Windows

Expected:

  • Myo Mapper GUI is appears as the macOS version

Current

  • The GUI is very much smaller than the macOS version

New features

To add new simple features, eg: min, max, moving average.

[Bug] Orientation acceleration & velocity mixed up when using two Myo's

I'm sending Left Myo to port 5432 and Right Myo to port 5434. Most data is correct, but when enabling Orientation acceleration & velocity, both Myo's send to both ports.
So myo1/orientation/velocity (1,2,3) keeps flashing between two values, and is affected by the movement of both arms. Same for myo1/orientation/acceleration (1,2,3). For myo2 the values are inverted, but have the same issue (flashing and affect by both arms).
Thanks :)

Missing project.pbxproj file.

If I clone the repository from the terminal using the --recursive -submodules flags once the project is downloaded trying to open the .xcodeproj gives me the following error:

Project /Users/.../MyoMapper/Myo Mapper/Builds/MacOSX/Myo Mapper.xcodeproj cannot be opened because it is missing its project.pbxproj file.

Same behaviour happens if I clone the .zip file directly from the MyoMapper GitHub master page.

Layout changes

To rename Myo Mapper controls

  • reverse -> Flip
  • Myo Status (window title) -> Calibration and rescaling
  • Myo Mapper settings -> Settings
  • changing the layout of the main OSC socket toggle

Show Pose/ Show Orientation Not Showing

To Reproduce:

1. Launch Myo Mapper.
2. Click Show Pose or Show Orientation but do not move the cursor off the button.

Expected:

  • The Orientation or Pose box shows depending on the box clicked.

Current:

  • The toggle box clicked does not display until the cursor is moved off the toggle box.

Difference between Wiki, Feature Window and actual data

Hey Balandino,

I've started reusing the mapper a few months ago. I couldn't help but notice there are a few disparities between the information from the different platforms. I just tested everything out, basing my test on the Features window in the Myo Mapper V3. Everything was runned on macOS High Sierra, with updated myo's and the Myo Mapper V3.1.6.

The followings show up in the Features window but are absent from the wiki :
-emg/raw/mavg
-emg/scaled/abs/fod
-emg/scaled/fod/mavg
-emg/scaled/abs/mavg
-emg/scaled/abs/mav/mavg
-emg/scaled/abs/mav/fod/mavg

The following send no data to the specified address:
-emg/scaled/abs/mav

The followings have data formated then what's specified on the wiki:
-acceleration/raw/fod : from -128 to 127 instead of -16 to 16. Also wrong address in the wiki
-acceleration/scaled/fod : range from -4 to 4 instead of 0 to 1
-acceleration/scaled/fod/mavg : the lowest value actually goes a bit lower than 0
-gyro/raw : maximums reach a bit higher than 2000
-gyro/scaled : maximums reach a bit higher than 2000
-gyro/scaled/abs : maximums reach a bit higher than 2000
-gyro/scaled/fod : range from -2.xx to 1.xx instead of 0 to 1
-gyro/scaled/mavg : the address is wrong on the wiki (aavg instead of mavg)
-emg/raw/zcr : data is always positive
-emg/raw/zcr/mavg : data is always positive
-emg/scaled : some data reach a bit lower than 0
-emg/scaled/abs : some data reach a bit higher than 1
-emg/scaled/abs/max : some data reach a bit higher than 1
-emg/scaled/abs/fod : range is from -4 to 4 (might be good but it's not in the wiki so can't say for sure)
-emg/scaled/abs/mav/fod : range from -2 to 2 instead of 0 to 1

There you have it. It's a bunch of small issues, but until there resolved, I hope this list will reduce the number of people trying to understand what is going on.
At least all the raw data's work fine so that's a good start.

Also, I only tested with 1 myo connected as I saw there were issues with the data control if 2 myos were plugged (so other thread).

Finally, it could be interesting to add a formula or something of the kind in the wiki showing how each set of data is extracted. It could help using the said data. Just a suggestion though.

Cheers, thank for the app again. Despite the problems, it is a very useful tool!

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.