GithubHelp home page GithubHelp logo

fourms / audiovideoanalysis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alexarje/audiovideoanalysis

11.0 11.0 2.0 150.68 MB

A standalone application for real-time analysis of audio and video.

Home Page: https://www.uio.no/ritmo/english/research/labs/fourms/downloads/software/AudioVideoAnalysis/

Max 99.74% JavaScript 0.26%

audiovideoanalysis's People

Contributors

aleksati avatar alexarje avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

audiovideoanalysis's Issues

OpenGL render

This would significantly increase the performance of the program so we should try to do most of the processing in GL land.

The [p script-grabber] is not necessary anymore.

Ive done some searching online, but Im pretty sure the newer versions of Max don't need different [jit.grab] specifications for different operating systems. BUT, I'm not entirely sure. Will need to test the v1.0 on different OS`es to be sure.

replace [xray.jit.mean] with OpenGL equivalent

This is the only "old" external that is still being used to calculate the mean values for the motion-and-videogram generating. Because of this, it might suddenly end up being un-supported down the line. Either way, a custom replacement is safer in any case.

For now, I use the [jit.gl.asyncread] to downsample the texture to a matrix going into the [xray.jit.mean] before re-converting it back to a texture for further processing down the line. This readback method, which downsamples and reads the image from the GPU to the CPU for the mean calculations, seems to be a good practice since the CPU is obviously more optimized to handle these kinds of operations. However, these conversion processes (back and forth between the GPU and CPU) introduces more unnecessary processing which can affect the performance of the app.. maybe..

In any case, I think it would be interesting to find a way to do this on the GPU, so effectively replace [xray.jit.mean] with something in [jit.gl.pix], or something. Alternatively, using the same readback method but with some custom jitter method on the CPU.

Detach display from app UI.

This would result in the same "floating" window we have in the VideoAnalysis. I guess this would be a part of issue #9 . It allows the users to freely adjust the window size according to their needs.

WIN and OSX need different grab objects.

According to the reference literature, this is still a thing because of WIN and OSX`es different video engines. This issue is just a note that we need to create two final versions, one with [jit.dx.grab] for the Windows build, and one with [jit.qt/viddll.grab] for the OSX build.

Add camera option in the UI

This could be helpful if you have multiple cameras plugged in. We could also implement a "rescan" feature which updates the options if you plug something in while running the app. Related to issue #5

Add menubar

Add:

  • About section #15
  • Display options
  • Export images #29 #32
  • Help (Report a problem to github page).

optimize app-initialization process

  • Check that everything is correctly initialized.
  • Check that we don't bang something an unnecessary amount of times when initializing the app.
  • App UI (app-window size, display-window size, no-grow flag, correct paths (documentation), etc.)
  • optimize the camera initialization process.

Only have the [jit.window] visible when we use it

We only use it when pressing ESC for fullscreen, so it's not necessary to have it "hanging around".

Optionally, we could do the same window/viewing-implementation as we did in the VideoAnalysis, which in this case would entail having the Spectrogram and Motiongram in the jit.window.

Glitches (empty frames) in mg printing

This happens even when displaying the regular image, so even with no motion averaging or noise reduction happening. Have a feeling its related to issue #18 . An easy fix might be to scale the x-count printing to be slightly slower than the average framerate of the [grab] objects.. or something.. They are about equal now. Will look into this more and try to find a solution.

Annotation 2020-04-13 131321

Add noise-reduction type

Like we have in VideoAnalysis where users can choose between binary and unary noise-reduction.

Re-implement phase difference visualization in spectrogram

I think I took this out of the original to "make room" for red and green values to represent differences in frequency energy. However, it's customary to have phase difference represented in a spectrogram so it's probably best to find a visual way to integrate it.

Add option to save/export images.

I know this is first and foremost a realtime application, but it would be very handy to be able to export your motiongram or spectrogram as image files on your device. This could go in the menubar, for instance.

Retreive spectrogram data from click point

This would be really nice, I think. Practically it means that a user can click on any location in the spectrogram and get the Hz, amplitude, phase, and time(?) of that particular point.

Add optional grid-view of display

In addition to the clickpoint info we now get from the spectrogram, it would be nice to have an option to view the freq and time markers in the display, as mentioned in issue #32 .

In light of this, I think it would be cool, and helpful for the analysis side of the app, to have the possibility to view a grid over the display. A grid that cross-sections the time markers on the x-axis with the frequency of the y-axis. It would also change color based on the color-options.

This could also just be a handy feature to add to the recordings before exporting the images since we cant use the clickpoint feature on an exported image.

jit.matrix still does not export TIFF-images on Windows without "hack"

Experiencing the same TIFF-export issue we experienced when working on VA. Still, with max 8.1.5... However, we made a "hack"(fix) for it which we can just reuse for now.

I`ll leave this issue open because we should continue to check if the Cycling people fix this issue down the line.

Allow for more spectrogram viewing options

This is continuing what was addressed in issue #26 . The spectrogram Y-axis now represents a linear representation of the full sampling size (or half, more specifically, up to 22khz). Therefore, most of the spectrogram "space" in the UI remains blank most of the time, as 10khz is located approximately in the middle of the screen. Although this is totally fine, it's now very user-friendly. It renders a lot of meaningful content almost too small to read.

A few things come to mind as possible solutions here:

  1. Make an option to do logarithmic audio scaling. Maybe also let users choose the logarithmic scale value. like mentioned in issue #37
  2. Crop the spectrogram Y-axis to a smaller fixed size. f.eks from 0 - 15/12000 or something.
  3. Allow users to "zoom in" on the spectrogram in the UI. This zoom would only affect the Y-axis of the spectrogram and would allow you to effectively zoom in to closer inspect certain frequency ranges.

Probably a combination of all of these will be best.

Drag and drop video and/or audio files.

I`m thinking that it would be very cool to be able to drag & drop an audio or video file into the application and get the spectrogram and/or motiongram printed in the display. So if you drop a video it would make a spectrogram of the audio and motiongram of the video. And if only an audio file then only the spectrogram.

This would be especially interesting with regards to issue #23 , where you would then be able to view the relationship between the audio and motion in the video in different ways. Like layered, for instance.

Replace the spectral filter with vectral blur

I think a kind of vectral blurring would be a nice addition to the spectrogram as it can give a more general overview of the frequency distribution. For instance, this kind of blurring can be great when analyzing lots of short and iterated sounds. I will try this for the 2.0 version.

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.