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

Multiple Recordings Extension #99

Closed
wants to merge 2 commits into from
Closed

Conversation

bhilburn
Copy link
Contributor

@bhilburn bhilburn commented Oct 2, 2018

This is a first draft of the multiple recordings functionality that we have been discussing in #55 and #69, and that we discussed heavily in the SigMF workshop at GRCon18.

I renamed the volatile canonical extension that we had been discussing to multirecordings, which supports linking multiple recordings for both multi-signal captures and multi-channel receivers. The primary mechanism by which this works is simply a new datatype and one new name/value pair in captures.

Support for the new datatype, recording, in other extensions effectively provides the capability to link recordings for that particular field. As a first draft of this, I modified the antenna extension to show how this might work.

Because I changing the file structure of the primary specification, I also made the changes for compression discussed in #68. Additionally, I made some formatting changes in the markdown to prettify the tables and update the ToC. I apologize for cluttering this PR with those changes, but at this point I just as soon leave them in, here.

Please review and provide input / feedback / suggestions. This is a significant change that we have been discussing for nearly a year at this point.

Tagging the folks that were actively involved in the discussion at GRCon: @n-west @storborg @pwicks86

This commit includes changes to the primary specification necessary for
support multiple recordings, implements the first draft of the
multirecordings extension, adds support for multiple recordings to the
antenna extension, and also makes some formatting changes to the primary
spec.
This was referenced Jul 12, 2019
@bhilburn
Copy link
Contributor Author

This must be addressed for v0.0.2 for long-term support & usage

@bhilburn bhilburn self-assigned this Jul 12, 2019
@bhilburn bhilburn added this to PR in Review in v1.0.0 Release via automation Jul 12, 2019
@bhilburn bhilburn moved this from PR Filed to In Progress in v1.0.0 Release Jul 12, 2019
@bhilburn bhilburn added this to the Release v0.0.2 milestone Jul 12, 2019
@n-west
Copy link
Contributor

n-west commented Feb 26, 2020

Just thinking out loud here of usage scenarios to come back later and identify how they might be handled by this.

  1. Multi-antenna with some sort of synchronzed tuning
  2. Multi-RX chain such as a USRP TwinRX
  3. Distributed receiver (under what situation might you want to link them if at all?)

Does this change at all with the json-ld proposal in #108 and would there be any relation to linked recordings if one of them drops samples such as in #89?

@bhilburn
Copy link
Contributor Author

bhilburn commented May 26, 2021

@jacobagilbert - Per our discussion yesterday, I know you've put a lot of thought into this particular PR. Do you mind outlining a list of the improvements you'd like this PR to cover for us to iterate / come to agreement on, and then drive updating the code in this PR as needed? If so, I will assign to you 🙂

@jacobagilbert jacobagilbert self-assigned this May 27, 2021
Copy link
Member

@jacobagilbert jacobagilbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really essential capability and definitely should be in v1.0.0. Also, there are a ton of formatting things here that could probably be separated into their own PR...but not a big deal.

extensions/multirecordings.sigmf-ext.md Show resolved Hide resolved
extensions/multirecordings.sigmf-ext.md Show resolved Hide resolved
| -------------- | -------- | --------- | ------------ |
| `streams` | false | object | List of SigMF recordings that represent multiple streams.|

The `multirecordings:streams` field in a capture segment object is a JSON array
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this work if there are multiple segments at nonzero offsets? What does that imply for channels other than 'this' channel?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jacobagilbert - I don't think I understand the gap you're pointing out. Can you explain it in a bit more detail for me?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure - I think my question here has to do with this streams object being part of a captures segment, which starts at a user-defined sample (not necessarily 0) and extends until the next segment or EOF. That seems like something that might be a challenge. It also might be well thought out, so this is not to say 'this is a bad idea' -- rather 'is this what was intended'? Or perhaps this should be in global?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed this from my re-write of the extension, and then realized why it was there 😅

This is needed to point from the primary recording down to children. That said, I agree with your comment about it being in captures. The new PR moves this to global.

@jacobagilbert
Copy link
Member

@bhilburn in terms of additions, i think adding an int-type channel field to the global object might be a good idea; its for specific use cases, but I believe very common ones (phase coherent recordings, linking multiple sensor nodes, etc.

@bhilburn
Copy link
Contributor Author

bhilburn commented Jun 3, 2021

@bhilburn in terms of additions, i think adding an int-type channel field to the global object might be a good idea; its for specific use cases, but I believe very common ones (phase coherent recordings, linking multiple sensor nodes, etc.

I like this idea, and agreed.

@bhilburn
Copy link
Contributor Author

This PR is replaced by #151

@bhilburn bhilburn closed this Aug 25, 2021
@bhilburn bhilburn moved this from In Progress to Done in v1.0.0 Release Jan 6, 2022
@jacobagilbert jacobagilbert deleted the multiple-recordings branch January 17, 2023 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants