Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create spectral branches #10

Open
jonathanjfshaw opened this issue Apr 21, 2020 · 1 comment
Open

Create spectral branches #10

jonathanjfshaw opened this issue Apr 21, 2020 · 1 comment
Labels
good first issue Good for newcomers

Comments

@jonathanjfshaw
Copy link
Contributor

In #9 @bertrandlalo gave me valuable guidance on how best to setup spectral nodes, and we decided one or more branches would be useful to demonstrate how best to work with spectral nodes.

There are 3 kinds of question we have to resolve about this:

  1. What is the purposes of the branch(es)? Is it documentation, is it a test, is it a toy demo, or is it something that is intended to actually be resused directly (not simply copy/pasted) in real production graphs to facilitate development.

  2. What are the best practices in timeflux for branch construction. This especially matters if we're trying to make a truly reusable branch. I created Best practices for reusable branches timeflux#56 to resolve this question.

  3. What are the spectral branches we need? Aspects of the pipeline include dejitter, window, fft/welch, bands, and extracting power or real numbers.

@jonathanjfshaw
Copy link
Contributor Author

My current ideas for the answers to these questions are:

  1. Truly reusable branch components to simplify the implementation of complex tasks in timeflux seems like a good idea to me. They naturally function as documentation, examples and tests too.

  2. As discussed in Best practices for reusable branches timeflux#56 I'm interested in the idea of defining branch graphs as yaml files in in a "graphs" folder. But in order to allow our branch to be parameterizable we will probably need to have a node class for it in spectral.py

  • Welch is great for post-processing the data during analysis after a session, but for real-time decision making of the kind that Timeflux is suitable I'm imagining that you usually want only the most up to date information and for that FFT is fine, so is the more common in timeflux use?
  • Power conversion / real number extraction troubles me. It seems really important, but it' quite esoteric and it's not easy to get information on it via Google. Maybe it should be a branch of its own, even if only that wraps a single apply node, in order to document how best to approach it.
  • I'd love to have a branch that handles dejitter, window, fft, bands and power. I'd like it to have parameters for: rate, window (in time or samples), bands, whether dejitter is needed, and whether power is desired.

@bertrandlalo bertrandlalo added the good first issue Good for newcomers label May 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants