{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":505512859,"defaultBranch":"main","name":"sapphire","ownerLogin":"cosinekitty","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-06-20T16:14:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11699954?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1725911432.0","currentOid":""},"activityList":{"items":[{"before":"d894f8922b5cf2395df2b024f9cdd2e10263e399","after":"8c7c8ff13c4da6171e2e322d6b31079212f83d88","ref":"refs/heads/filter","pushedAt":"2024-09-12T01:37:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Unrolled loops in GravyEngine::process.","shortMessageHtmlLink":"Unrolled loops in GravyEngine::process."}},{"before":"a531808342732c70624fbf79df83a014fc140d4e","after":"d894f8922b5cf2395df2b024f9cdd2e10263e399","ref":"refs/heads/filter","pushedAt":"2024-09-11T20:15:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy engine uses SSE for faster polyphonic operation.","shortMessageHtmlLink":"Gravy engine uses SSE for faster polyphonic operation."}},{"before":"531d634bb3cac7e5ad803de97a7ff9eaa3f6f6a1","after":"a531808342732c70624fbf79df83a014fc140d4e","ref":"refs/heads/filter","pushedAt":"2024-09-11T19:32:43.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Fix linker errors for duplicate symbols. Make my Sin/Cos inline.","shortMessageHtmlLink":"Fix linker errors for duplicate symbols. Make my Sin/Cos inline."}},{"before":"b8434e26f4da8223d2a8eb8d8351ed23881edca7","after":"531d634bb3cac7e5ad803de97a7ff9eaa3f6f6a1","ref":"refs/heads/filter","pushedAt":"2024-09-11T15:57:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Provide BiquadFilter::process(mode, x0) for caller convenience.","shortMessageHtmlLink":"Provide BiquadFilter::process(mode, x0) for caller convenience."}},{"before":"c5070df130d18ee2b579f13f60a739aea7b68d80","after":"b8434e26f4da8223d2a8eb8d8351ed23881edca7","ref":"refs/heads/filter","pushedAt":"2024-09-11T15:39:23.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Updated unit tests for changes in BiquadFilter interface.","shortMessageHtmlLink":"Updated unit tests for changes in BiquadFilter interface."}},{"before":"e84deee431b2e90bdfe2b41ac6de8aadda089c57","after":"c5070df130d18ee2b579f13f60a739aea7b68d80","ref":"refs/heads/filter","pushedAt":"2024-09-11T01:26:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy: starting documentation.","shortMessageHtmlLink":"Gravy: starting documentation."}},{"before":"8244b18492ab9fc08dc899bbd5deb62a36473d59","after":"e84deee431b2e90bdfe2b41ac6de8aadda089c57","ref":"refs/heads/filter","pushedAt":"2024-09-11T00:28:11.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Fixed #69 - no longer rebuild all code when VCV panel locations have changed.","shortMessageHtmlLink":"Fixed #69 - no longer rebuild all code when VCV panel locations have …"}},{"before":"63be1c9d1603b2943c30fa92e59aece62180d6cb","after":"8244b18492ab9fc08dc899bbd5deb62a36473d59","ref":"refs/heads/filter","pushedAt":"2024-09-10T13:06:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy: removed redundant parameter DRIVE. GAIN is enough.\n\nBecause the biquad filter is linear, there is no significant\ndifference between adjusting GAIN or DRIVE. Transients might\nbe different, but overall behavior sounds the same.\n\nTherefore I have removed the pre-filter control DRIVE, leaving\nthe post-filter GAIN.","shortMessageHtmlLink":"Gravy: removed redundant parameter DRIVE. GAIN is enough."}},{"before":"1abb57826a0ef3cfb00f8e7bc2f0c40e24b60c6a","after":"63be1c9d1603b2943c30fa92e59aece62180d6cb","ref":"refs/heads/filter","pushedAt":"2024-09-10T01:06:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy: prototyped support for DRIVE, GAIN, and MIX knobs.","shortMessageHtmlLink":"Gravy: prototyped support for DRIVE, GAIN, and MIX knobs."}},{"before":"55abf41edfbdc84ec6acdfcb920183c85db45f95","after":"1abb57826a0ef3cfb00f8e7bc2f0c40e24b60c6a","ref":"refs/heads/filter","pushedAt":"2024-09-10T00:01:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy: first audio from VCV Rack module!","shortMessageHtmlLink":"Gravy: first audio from VCV Rack module!"}},{"before":"3cf562e1c4df45b4059908a4c12528928b2bd043","after":"55abf41edfbdc84ec6acdfcb920183c85db45f95","ref":"refs/heads/filter","pushedAt":"2024-09-09T20:28:25.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy: updated to use renamed SapphireWidget class.","shortMessageHtmlLink":"Gravy: updated to use renamed SapphireWidget class."}},{"before":"45bfdb03ae7511dc0768eed702b16efad66c9bb9","after":"7b5a12babfc55f94d3f09a696847e8f5b7347c09","ref":"refs/heads/main","pushedAt":"2024-09-09T20:11:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Eliminated fossil class layer for \"reloadable modules\".\n\nI no longer support the idea of reloading an SVG file\nto get updated component locations. It was a fun idea\nat the time, but has not actually been very useful.\n\nIt also turned out to be unhelpful for porting Sapphire\nmodules to 4ms.\n\nSo no more \"reloadable\" widget classes!\nThere is no longer a reason to have a C++ class devoted\nto a development tool that no longer exists.\nI also renamed derived type for widgets to SapphireWidget.","shortMessageHtmlLink":"Eliminated fossil class layer for \"reloadable modules\"."}},{"before":"dddeb87636126ec4e7bca00a9db2f0ca537eca4b","after":"3cf562e1c4df45b4059908a4c12528928b2bd043","ref":"refs/heads/filter","pushedAt":"2024-09-09T19:50:57.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Merge branch 'main' into filter","shortMessageHtmlLink":"Merge branch 'main' into filter"}},{"before":"417879d5ca7a3c6ce04850af6abbff15ba6a18aa","after":null,"ref":"refs/tags/rc2.5.0.1","pushedAt":"2024-09-09T19:50:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"}},{"before":"ccca9e17a75798746feef177fb6fb63325bcd80b","after":"45bfdb03ae7511dc0768eed702b16efad66c9bb9","ref":"refs/heads/main","pushedAt":"2024-09-09T19:33:53.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Merge branch '4ms_static_pos'\n\nBring changes helpful to 4ms over to Sapphire main branch.\nThe big idea here is that component positions are no longer\nstored in my res/*.svg files. Instead, my Python code generator\nnow puts all these coordinates into a C++ data structure built\ninto the Sapphire plugin binary.\n\nThis is helpful for 4ms, who do not have the ability to access\na filesystem to parse the svg files.\n\nIt actually makes my own C++ code simpler overall, and less\nlikely to get broken by people tweaking svg files, while\nstill providing a single source of truth for the panel layout:\nmy Python script.","shortMessageHtmlLink":"Merge branch '4ms_static_pos'"}},{"before":"9211fcbd241b278fb6f24ea777492b3f1f7c2736","after":"dddeb87636126ec4e7bca00a9db2f0ca537eca4b","ref":"refs/heads/filter","pushedAt":"2024-09-09T19:05:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy refactoring: separate layer for a Gravy engine.\n\nI have decided to add a Gravy engine class between the VCV Rack module\nand the Biquad filter. The middle layer's job is to understand stereo\nL/R channels and how the knobs map onto the Biquad filter's inner parameters.\n\nLater it is quite possible I will replace a biquad filter with some\nother filter type. Then the knob mapping might change,\nbut the min/max values will be normalized mostly to the range [0, 1].","shortMessageHtmlLink":"Gravy refactoring: separate layer for a Gravy engine."}},{"before":"b1b3b9082d0e96d77bd4463a3c03cdc544e91cd5","after":"9211fcbd241b278fb6f24ea777492b3f1f7c2736","ref":"refs/heads/filter","pushedAt":"2024-09-09T18:27:41.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Gravy: Comment out contants I'm not using yet, to appease cppcheck.","shortMessageHtmlLink":"Gravy: Comment out contants I'm not using yet, to appease cppcheck."}},{"before":null,"after":"b1b3b9082d0e96d77bd4463a3c03cdc544e91cd5","ref":"refs/heads/filter","pushedAt":"2024-09-08T18:07:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Verify consistent biquad output for lowpass, bandpass, highpass.","shortMessageHtmlLink":"Verify consistent biquad output for lowpass, bandpass, highpass."}},{"before":"2a365f7d846a4f0143bec380ec1a6b902d3e6d76","after":"ccca9e17a75798746feef177fb6fb63325bcd80b","ref":"refs/heads/main","pushedAt":"2024-09-06T20:15:22.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Fixed another broken link in the changelog: Moots.","shortMessageHtmlLink":"Fixed another broken link in the changelog: Moots."}},{"before":"ff179f14ad7d1971afc61b86dd79f1e4bfd859c7","after":"ccca9e17a75798746feef177fb6fb63325bcd80b","ref":"refs/heads/flipvolt","pushedAt":"2024-09-06T20:06:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Fixed another broken link in the changelog: Moots.","shortMessageHtmlLink":"Fixed another broken link in the changelog: Moots."}},{"before":"223d783991135b31d963d0918c1cd50af486f20e","after":"ff179f14ad7d1971afc61b86dd79f1e4bfd859c7","ref":"refs/heads/flipvolt","pushedAt":"2024-09-06T20:05:07.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Fixed broken links in changelog. Markdown links don't work inside html.","shortMessageHtmlLink":"Fixed broken links in changelog. Markdown links don't work inside html."}},{"before":"0342ed5ccd07b07a096dd85ab57b19a34e0717d2","after":"223d783991135b31d963d0918c1cd50af486f20e","ref":"refs/heads/flipvolt","pushedAt":"2024-09-06T19:47:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Link to voltage flipping doc from Frolic, Glee, Pivot, Rotini docs.","shortMessageHtmlLink":"Link to voltage flipping doc from Frolic, Glee, Pivot, Rotini docs."}},{"before":"4b6bc71f4310efb308cf30045bc011520de76f6b","after":"0342ed5ccd07b07a096dd85ab57b19a34e0717d2","ref":"refs/heads/flipvolt","pushedAt":"2024-09-06T19:42:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Documented new voltage-flipping feature.","shortMessageHtmlLink":"Documented new voltage-flipping feature."}},{"before":"02603fcebb033eb879606877298ca48abc92e4f2","after":"4b6bc71f4310efb308cf30045bc011520de76f6b","ref":"refs/heads/flipvolt","pushedAt":"2024-09-06T19:18:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Rotini: added support for voltage-flipping XYZ outputs.","shortMessageHtmlLink":"Rotini: added support for voltage-flipping XYZ outputs."}},{"before":null,"after":"02603fcebb033eb879606877298ca48abc92e4f2","ref":"refs/heads/flipvolt","pushedAt":"2024-09-06T01:30:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Frolic/Glee: allow toggling x, y, z voltage polarity.","shortMessageHtmlLink":"Frolic/Glee: allow toggling x, y, z voltage polarity."}},{"before":"36d1e75792d0d3a9a873e795c15416176942fe14","after":"2a365f7d846a4f0143bec380ec1a6b902d3e6d76","ref":"refs/heads/main","pushedAt":"2024-09-05T19:01:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Documented ramp symbol for Moots buttons.","shortMessageHtmlLink":"Documented ramp symbol for Moots buttons."}},{"before":"e42de86dd75d8fdbb357afb9d85fd24ff25bc3fd","after":"36d1e75792d0d3a9a873e795c15416176942fe14","ref":"refs/heads/main","pushedAt":"2024-09-03T23:22:40.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Moots: refactored for common code to get/set ramping options.","shortMessageHtmlLink":"Moots: refactored for common code to get/set ramping options."}},{"before":"caa0b4bfc3747bf49b0c9b46912897f1e0d60baf","after":"e42de86dd75d8fdbb357afb9d85fd24ff25bc3fd","ref":"refs/heads/main","pushedAt":"2024-09-01T07:48:39.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Mention individual doc link per module.","shortMessageHtmlLink":"Mention individual doc link per module."}},{"before":null,"after":"91c7466e4e3a779a211226407132407e78451b9e","ref":"refs/heads/sam_channels","pushedAt":"2024-09-01T07:38:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Mention channel count slider.","shortMessageHtmlLink":"Mention channel count slider."}},{"before":"6261fbfbf8bf783f623a825484cff8d4f1de32a4","after":"caa0b4bfc3747bf49b0c9b46912897f1e0d60baf","ref":"refs/heads/main","pushedAt":"2024-08-29T18:14:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cosinekitty","name":"Don Cross","path":"/cosinekitty","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11699954?s=80&v=4"},"commit":{"message":"Link each module to its dedicated module page.\n\nI just discovered that it is possible to provide per-module\nhelp links, instead of all of them using a single link for the\nentire plugin's documentation.\n\nAdded each module's individual link so people can go straight\nto the correct documentation from each Sapphire module.","shortMessageHtmlLink":"Link each module to its dedicated module page."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMlQwMTozNzoyNC4wMDAwMDBazwAAAASz1EnR","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMlQwMTozNzoyNC4wMDAwMDBazwAAAASz1EnR","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yOVQxODoxNDoyNi4wMDAwMDBazwAAAASn7UdU"}},"title":"Activity · cosinekitty/sapphire"}