{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":315036069,"defaultBranch":"main","name":"digimorse","ownerLogin":"devzendo","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-11-22T12:48:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1219118?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1634763638.256327","currentOid":""},"activityList":{"items":[{"before":"c7aa9b2b3a82251273bb9b8e288b57faf4f44e8d","after":"d22c55fac3c6248c94e52530d7359f1022919eb8","ref":"refs/heads/main","pushedAt":"2024-05-15T19:39:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Current activities.","shortMessageHtmlLink":"Current activities."}},{"before":"bf7d54e70d0a9bea199f435e3724fa6d5b1fc385","after":"c7aa9b2b3a82251273bb9b8e288b57faf4f44e8d","ref":"refs/heads/main","pushedAt":"2024-05-15T19:35:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Use RealFFT to implement the FFT observer.","shortMessageHtmlLink":"Use RealFFT to implement the FFT observer."}},{"before":"01d6ca6a966923874069cfe427f10683d10e0433","after":"bf7d54e70d0a9bea199f435e3724fa6d5b1fc385","ref":"refs/heads/main","pushedAt":"2023-09-07T06:40:41.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Process incoming data by transforming it with rustfft. Output data still needs to be normalised? The data emitted by the FFT is not what I expected - a single peak representing the 600Hz input frequency. Much more study of FFT required.","shortMessageHtmlLink":"Process incoming data by transforming it with rustfft. Output data st…"}},{"before":"8d26d022640ea9a62cb787b93fb857b0c4e703f2","after":"01d6ca6a966923874069cfe427f10683d10e0433","ref":"refs/heads/main","pushedAt":"2023-07-19T17:50:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: FFT set up a sample input waveform.","shortMessageHtmlLink":"WIP: FFT set up a sample input waveform."}},{"before":"41748e035445711eeec0edb55aea759cce4a9e44","after":"8d26d022640ea9a62cb787b93fb857b0c4e703f2","ref":"refs/heads/main","pushedAt":"2023-07-19T17:36:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: FFT observer wrangling.","shortMessageHtmlLink":"WIP: FFT observer wrangling."}},{"before":"8d00a1acb76228bae16afeee10134acd11dea0ae","after":"41748e035445711eeec0edb55aea759cce4a9e44","ref":"refs/heads/main","pushedAt":"2023-07-14T19:28:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: The receiver will emit ObservebleBufferSlices (it doesn't yet, but can accept observers of them). Add the start of an observer that will perform the FFT, and emit that to its listeners.","shortMessageHtmlLink":"WIP: The receiver will emit ObservebleBufferSlices (it doesn't yet, b…"}},{"before":"0934bbb2ab861569ee3f1942b18273c2f8db6fa2","after":"8d00a1acb76228bae16afeee10134acd11dea0ae","ref":"refs/heads/main","pushedAt":"2023-07-14T19:05:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Document wrong assumption.","shortMessageHtmlLink":"Document wrong assumption."}},{"before":"76a4c707e8b2fcadf0d13e6b58199631456e54db","after":"0934bbb2ab861569ee3f1942b18273c2f8db6fa2","ref":"refs/heads/main","pushedAt":"2023-07-08T09:05:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"The range of data emitted moves forward in the buffer as slices are emitted.","shortMessageHtmlLink":"The range of data emitted moves forward in the buffer as slices are e…"}},{"before":"b48920de78eb9b195b7083388d296289d148c113","after":"76a4c707e8b2fcadf0d13e6b58199631456e54db","ref":"refs/heads/main","pushedAt":"2023-07-08T08:53:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Extract utility functions.","shortMessageHtmlLink":"Extract utility functions."}},{"before":"8ac4a1bde714c35eaeb2223506c6ed4096acd19a","after":"b48920de78eb9b195b7083388d296289d148c113","ref":"refs/heads/main","pushedAt":"2023-07-08T08:30:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Rename variable.","shortMessageHtmlLink":"Rename variable."}},{"before":"6835252953773fc12e10e421988d3d9bd6e8fa56","after":"8ac4a1bde714c35eaeb2223506c6ed4096acd19a","ref":"refs/heads/main","pushedAt":"2023-07-08T08:28:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Make the type of data stored in an ObservableBuffer generic, and observe emissions correctly in the tests.","shortMessageHtmlLink":"Make the type of data stored in an ObservableBuffer generic, and obse…"}},{"before":"42e9ef7aa1cb0686c7abe64e336f52712bc61ad9","after":"6835252953773fc12e10e421988d3d9bd6e8fa56","ref":"refs/heads/main","pushedAt":"2023-07-07T17:31:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: Receiver and an observable buffer that'll emit slices of received incoming waveform data.","shortMessageHtmlLink":"WIP: Receiver and an observable buffer that'll emit slices of receive…"}},{"before":"f29700133deb86c2c852d2f55cf547d9992a0f61","after":"42e9ef7aa1cb0686c7abe64e336f52712bc61ad9","ref":"refs/heads/main","pushedAt":"2023-06-08T07:51:23.026Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: Receiver, creating test waveform for demos and test.","shortMessageHtmlLink":"WIP: Receiver, creating test waveform for demos and test."}},{"before":"4b7c512628942157c94e1bd57f0dea394e516f25","after":"f29700133deb86c2c852d2f55cf547d9992a0f61","ref":"refs/heads/main","pushedAt":"2023-06-07T07:44:46.714Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: Receiver, injecting waveform for demos and test.","shortMessageHtmlLink":"WIP: Receiver, injecting waveform for demos and test."}},{"before":"ac6d1fd18c3a49da336c87c0913c16c747bed039","after":"4b7c512628942157c94e1bd57f0dea394e516f25","ref":"refs/heads/main","pushedAt":"2023-05-31T08:05:32.875Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"WIP: Receiver","shortMessageHtmlLink":"WIP: Receiver"}},{"before":"5aa1a4b877803a2bfe84af820e78967f80489676","after":"ac6d1fd18c3a49da336c87c0913c16c747bed039","ref":"refs/heads/main","pushedAt":"2023-05-30T06:51:35.756Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Ignores","shortMessageHtmlLink":"Ignores"}},{"before":"afe39fb04942782a37f1480dcab909530381ad4a","after":"5aa1a4b877803a2bfe84af820e78967f80489676","ref":"refs/heads/main","pushedAt":"2023-05-30T06:49:53.825Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Initialise the indicators on startup.","shortMessageHtmlLink":"Initialise the indicators on startup."}},{"before":"05e652bc29f8e10dadc7779d2ed7e0acd7211c5e","after":"afe39fb04942782a37f1480dcab909530381ad4a","ref":"refs/heads/main","pushedAt":"2023-05-17T07:14:45.809Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"The transmitter now controls the GUI indicators when starting/stopping transmission.","shortMessageHtmlLink":"The transmitter now controls the GUI indicators when starting/stoppin…"}},{"before":"fc46073ac9cf6ee8c535a0497bb4c5c02c838982","after":"05e652bc29f8e10dadc7779d2ed7e0acd7211c5e","ref":"refs/heads/main","pushedAt":"2023-05-10T17:38:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Don't spin on the GUI input channel receive.","shortMessageHtmlLink":"Don't spin on the GUI input channel receive."}},{"before":"8cf214fefee09b33cebff45957a847eb5557ca63","after":"fc46073ac9cf6ee8c535a0497bb4c5c02c838982","ref":"refs/heads/main","pushedAt":"2023-05-10T08:35:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"The GUI input is now just a Sender that can be sent across threads.","shortMessageHtmlLink":"The GUI input is now just a Sender<GUIInputMessage> that can be sent …"}},{"before":"51457726a6a0d8829dff8bd0eec9f86cd5389d94","after":"8cf214fefee09b33cebff45957a847eb5557ca63","ref":"refs/heads/main","pushedAt":"2023-04-26T06:57:36.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Reduce lock scope a little.","shortMessageHtmlLink":"Reduce lock scope a little."}},{"before":"8359f89aaf79f4b5dbe55c3340193667693e059c","after":"51457726a6a0d8829dff8bd0eec9f86cd5389d94","ref":"refs/heads/main","pushedAt":"2023-04-25T07:53:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Send silence if there's no input data; correct/improve the detection of ramp up, with better setting of the silent flag. Still not perfect; there are gaps between adjacent modulations.","shortMessageHtmlLink":"Send silence if there's no input data; correct/improve the detection …"}},{"before":"cf73c843f706d5431b66d771f8c579a94d7801de","after":"8359f89aaf79f4b5dbe55c3340193667693e059c","ref":"refs/heads/main","pushedAt":"2023-04-21T17:40:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Use a VecDeque for modulation queue, as I was using the wrong end when popping, and Vec has O(n) performance for that. Every modulation now starts with a ramp up, which is why it sounds clunky.","shortMessageHtmlLink":"Use a VecDeque for modulation queue, as I was using the wrong end whe…"}},{"before":"30a41b5d4fac70f3ee5a5f0faa38fe035c865bd2","after":"cf73c843f706d5431b66d771f8c579a94d7801de","ref":"refs/heads/main","pushedAt":"2023-04-21T17:22:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Extract the BufferPool to its own module, add tests for it and fix the bugs. The transmitter isn't perfect yet. Increase the number of buffers allocated: this many did not cause buffer pool exhaustion at high keying rates.","shortMessageHtmlLink":"Extract the BufferPool to its own module, add tests for it and fix th…"}},{"before":"3214d7ab01ddeb29a02277e495d477c00754bb19","after":"30a41b5d4fac70f3ee5a5f0faa38fe035c865bd2","ref":"refs/heads/main","pushedAt":"2023-04-19T20:26:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"The BufferPool needs to be accessed by the bus message handling thread (for allocation) and the audio generation callback (for freeing). Extract functions to make borrow reasoning clearer.","shortMessageHtmlLink":"The BufferPool needs to be accessed by the bus message handling threa…"}},{"before":"0d3fb932c9d7718dafd7abbc0b909a82685152f7","after":"3214d7ab01ddeb29a02277e495d477c00754bb19","ref":"refs/heads/main","pushedAt":"2023-04-19T20:06:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Remove unused constant.","shortMessageHtmlLink":"Remove unused constant."}},{"before":"611b47156550db9ad8caf915e27561b49d5b656d","after":"0d3fb932c9d7718dafd7abbc0b909a82685152f7","ref":"refs/heads/main","pushedAt":"2023-04-17T12:20:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Allocate buffers for modulation and transmission from a pool. Enqueue modulated buffers until the final one, then enqueue a CountdownLatch that will be counted down at the end of the final modulated buffer. Yet to free used buffers...","shortMessageHtmlLink":"Allocate buffers for modulation and transmission from a pool. Enqueue…"}},{"before":"c863e683489f422562a982b741eb4da6da7a25a3","after":"611b47156550db9ad8caf915e27561b49d5b656d","ref":"refs/heads/main","pushedAt":"2023-04-03T12:45:39.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Remove old source_encoder_diag and code that's been put in better places.","shortMessageHtmlLink":"Remove old source_encoder_diag and code that's been put in better pla…"}},{"before":"7878dc8e3e9e9164b07df6b97d876d153b4551cb","after":"c863e683489f422562a982b741eb4da6da7a25a3","ref":"refs/heads/main","pushedAt":"2023-04-03T12:00:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"Note to add a ListKeyerDevices mode.","shortMessageHtmlLink":"Note to add a ListKeyerDevices mode."}},{"before":"fd63980396ce7e90a74eefb6dd41ff88a71ea376","after":"7878dc8e3e9e9164b07df6b97d876d153b4551cb","ref":"refs/heads/main","pushedAt":"2023-04-03T11:54:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"devzendo","name":"Matt Gumbley","path":"/devzendo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1219118?s=80&v=4"},"commit":{"message":"The main program can now make use of the null keyer, and null serial I/O trait, if the Arduino keyer has not been configured. Removed some old bus/wiring configuration that is now done in the application. The source encoder diag is now in its own test. Also some clippy fixes.","shortMessageHtmlLink":"The main program can now make use of the null keyer, and null serial …"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESuswdQA","startCursor":null,"endCursor":null}},"title":"Activity · devzendo/digimorse"}