alto777 / LFSR

Various linear feedback shift register sequencers for VCV Rack
BSD 3-Clause "New" or "Revised" License
18 stars 3 forks source link

Migrate plugin to V1 #7

Closed netboy3 closed 4 years ago

netboy3 commented 4 years ago

Converted modules to VCV Rack v1. I'll have packages for Linux, Mac and Windows posted under the Issues post for migration for users to test the re-built plugin.

alto777 commented 4 years ago

Thank you netboy3. My attention has been elsewhere. This entire branch (so to speak) of my life has been done at "what's the least I need to know in order to..." kind of competence level, especially vexing has been github - I've never used any kind of system like it.

I will learn today what this means, I will review your work and I will try to recover a few more modules I had completed but not added to my own repository, they should be migrated to v1 also, examining your zips will provide clues for that, and of course I will be looking at vcvrack official docs. I have also yet to adjust my development environment for v1, I had no huge trouble getting going with 0.7 so.

I am writing here so I am reminded to stay on this task.

I hope nothing you had to see in my code hurt your eyes too much. Conceptually it's all straight ahead mimicry of example plugins and a bit of learning C++ as I went.

Thanks again.

alto777

netboy3 commented 4 years ago

Great to hear that you have more "surprises" for the community. Your code was fun to work with, especially in Amuse and Psychtone with their custom LEDs/Knobs. I too work on such projects "as time allows" and enjoy giving back to the developers community such as you. If you plan to open the codebase for some other modules, upload them to GitHub and need some assistance, please don't hesitate to reach out.

alto777 commented 4 years ago

Thank you for your rapid and kind response.

You have done a boat load of tedious work! Thank you again.

I think I can get my two new modules going. I understand some of the simpler adjustments, nomenclature &c. But there are new patterns in how the C++ is worked, or how the objects are handled. I never understood very well in the first place but managed to fake all that: I expect the same will obtain with the new version.

One module came though with no changes, TriadexEngine.hpp, my valiant attempt to exploit some of what I thought I was learning about C++, so I am happy to see that it was at least OK. Abstraction rules!

I will remember your kind offer.

a7

alto777 commented 4 years ago

@netboy3 - So far it looks like your work has not changed any logic or functionality. I'm somewhat at sea with github, but the "merge pull request" is very inviting - please confirm my suspicion that it would probably be best/easiest to take your merge, and from there add my new modules (after I do the work I should have done as far as migrating to v1).

I am still working through the differences, and studying the migration guide from the Rack manual. My two modules were ready to go (V0.7) when I dropped the ball.

I am at least now building and testing in the 1.0 environment. Mostly I am afraid of making a huge mess of everything - I know it would all be recoverable, but maybe a real PITA.

new module 1: Euclidean Sequencer (yet another…). I like mine best, of course. I did some research and am confidant that mine produces correct results.

new module 2: Morse Code sequencer. Enter text and get dash/dot gate signals. Borrowed quite a bit of UI code for this one, it may be a bigger migration challenge.

alto

netboy3 commented 4 years ago

@alto777, I agree with your opinion. We already had a bunch of users use the updated codebase and all seems well. When doing an initial migration of a module that is not mine, I try to stick to the original code as much as possible, unless a change is required by the new API, and in that case I'll comment about it in the PR. If you are interested in verifying the pull request before "pushing the big green button", just pull it into your local development. I wrote a short guide on how to do it for one of your users in this issue comment. This will create a new branch on your local development that includes my merged changes, and will allow you to build and test it prior to merging the PR. You can then delete that local branch and be done with it.

Can't wait to see your new modules :smirk:

alto777 commented 4 years ago

@netboy3 I am very happy to say after Phase 1 migration the LFSR package with my new plugins added is compiling with 0 errors and 57 warnings, all "deprecated" or otherwise explainable. (unused variables &c.).

I have not tried to run the newly built plugins. Partly because

is it expected that Phase 1 successful compilation should yield usable modules?

[edit] Hey! both modules are running in Rack V1, still a few issues and not yet tested very thoroughly. I'll take it for now.

and partly because to get it to compile, I had to short circuit a bit of the more involved C++ wherein I was really faking it and have too many good ideas (probably all bad!) about how to work around it to tinker too much.

I'll take my issue to the (a) place where more eyes can help, I understand you are not my personal C++ coach. I do want to say that after just Phase 1 I must reiterate and increase my thanks to you.

I am appalled by how much I must have learned and subsequently forgotten about C++ and the structure and organization of Rack. If I had kept better any notes, well you know.

Of course my trouble would be where I was faking it the hardest and the issue would be my weak apprehension of pointers/addresses in C++ versus "good old" C, where I sorta knew much better what I was doing.

alto777

alto777 commented 4 years ago

well I did press the button after finding only a few small details not worth gumming up progress.

@alto777 alto777 merged commit c9b0fee into alto777:master now

My new stuff is working at Phase 1, more or less, but obvsly is not part of what's in my repo (yet). I am having a bit of trouble with Phase 2 migration, mostly just because something I am very good at is confusing the hell out of myself.

Now to remind myself how to get this into the pipeline headed for Rack users looking at the plugin directory.

netboy3 commented 4 years ago

Congrats! I'm sure lots of folks will be excited to see 1.0 in the Plugin Library. Good luck with the new stuff migration.

alto777 commented 4 years ago

Kudos be yours, @netboy3! There's still the induction process, I hope I can handle any issues that turn up.

I have mostly finished the new stuff, there are a few pesky details but I have been able so far to figure it out - I did benefit from looking at your work closely for some things that the various perl lines don't take care of, so thanks again.

Meanwhile I have been plagued by Rack crashes. I suspect my new stuff (!) but the crashes are oddly not deterministic, which makes diagnosis impossible challenging. I can launch Rack and use my modules, all is well; another time Rack will crash during the launch process - oddly the sample engine is running (I can hear my patch) but the Rack is empty, a dialog box sez it's crashed and soon enough it disappears leaving the crash report (Mac OSX) window. That window nor the log.txt in my Documents/Rack folder shed anything that is light on the matter.

I'll address that after I finish getting the new modules to work at least this well.