-
Notifications
You must be signed in to change notification settings - Fork 14
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
Various suggestions/feedback #45
Comments
Lots of suggestions! :D I've done some changes to routing to make it more intuitive and to address some of your points:
If you have time, please try out the changes: OctaSine-tmp-2022-04-08-macOS-Intel.zip |
I've done a lot more changes. If you're still interested in trying them out, please tell me, and I'll upload a more recent build. |
Sinehow I completely missed the previous message, sorry about that. Happy to give it a test today or tomorrow. 😃 |
Alright, nice! Here are some fresh builds: OctaSine-tmp-2022-04-28-Windows.zip |
@bryc Alright. After the crash, is there a log file in C:\Users\Alice\AppData\Local\OctaSine\OctaSine\cache\OctaSine.log (replace Alice with your user account name) ? |
Hm, no. I only see this: C:\Users\bryc\AppData\Roaming\OctaSine\OctaSine.json I don't see any OctaSine folder anywhere else in AppData. |
OK! How about when using this build? The log file should now appear in the same folder as OctaSine.json. OctaSine-tmp-2022-05-03-Windows.zip |
Unfortunately not with that build either. It could be that the GUI has to initialize first and its just not hitting that code? It doesn't appear to even create the OctaSine folder or json file. (It must have been saved there previously from an old version). |
OK. The settings file is indeed only saved by the GUI, but the log file should be created when opening the plugin, regardless of the GUI. Could you please try cloning the git repository and running |
What is Cargo? I don't think I have that? Keep in mind I'm just a JS plebian on Windows who uses GitHub Desktop. I don't really have any compilers or IDEs. But if it's something that's portable like MinGW or a quick install like Python I could try. Also, it doesn't seem to work in Savihost either (a free VST host for Windows), might be easier to test it with that. |
Cargo is the Rust package manager! It should be easy to install from https://rustup.rs/ . Have you run commands in a terminal / on the command line previously? OK, there is likely an issue with setting up the graphics. When running the command I mentioned, any error logs should be printed to the terminal, so it would be very helpful :-) What version of Windows are you running? |
I'm running Windows 10 20H2 (10.0.19042.630). I'll give the Cargo thing a shot in a bit. I can use terminals decently, but I just can't compile stuff half the time (requiring every flavor of build environment under the sun, from ruby to cmake to msys1 to msys2, often requiring linux etc, just a pain for a novice) |
Here is what that command is giving me (tail end at least):
I really don't have the space or time to install VS just for this, if I'm reading this right. |
Yes, you’re reading that right. Ok, that’s completely understandable.
… On 5 May 2022, at 04:07, bryc ***@***.***> wrote:
Here is what that command is giving me:
Downloaded 129 crates (6.4 MB) in 4.26s (largest was `winapi` at 1.2 MB)
Compiling cfg-if v1.0.0
Compiling proc-macro2 v1.0.37
Compiling unicode-xid v0.2.3
Compiling autocfg v1.1.0
Compiling syn v1.0.92
Compiling ppv-lite86 v0.2.16
Compiling log v0.4.17
Compiling version_check v0.9.4
Compiling num_cpus v1.13.1
Compiling futures-core v0.3.21
error: linker `link.exe` not found
|
= note: program not found
note: the msvc targets depend on the msvc linker but `link.exe` was not found
note: please ensure that VS 2013, VS 2015, VS 2017, VS 2019 or VS 2022 was installed with the Visual C++ option
error: could not compile `log` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed
I really don't have the space or time to install VS just for this, if I'm reading this right.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.
|
This build fixed a similar issue for someone else: OctaSine-tmp-2022-05-05-Windows.zip |
Great! Thanks. |
Thanks for your feedback! Removing the LFO master targets might have been premature. I might add them back, if I can do it in a way that doesn’t break existing patches. When it comes to your LFO concept, it is really cool, but it won’t be VST2 compatible, unfortunately, since the number of possible combinations of targets will be too great to fit in a 32-bit floating point number between 0.0 and 1.0, which is how parameters are transferred between DAW and plugin with that protocol :-( Great! Be sure to try out the fit and distribute buttons too, they’re very useful. |
@bryc When setting master volume as a LFO target, do you think modulation should be affected too (like with the operator volume parameters)? E.g. audio coming out of an operator modulating another would be affected. I think that probably only post-modulation volume should be affected, but I could implement it either way. |
Hmm, IMO it's probably best that it only affect the output gain, and not affect any global operator modulation amounts. Usually a master volume control acts like a mixer track fader (you have a sound, and you either want it quieter or louder), and people will not expect it to alter the brightness of the sound. That sort of variable control is best achieved with velocity sensitivity on a per-note basis. There's this synth that comes with FL Studio called Wasp XT and it's unique in that changing the "channel volume" knob also lowers the filter (no other synth built into FL acts that way), which trips me up when all I'm trying to do is raise or lower the volume of that particular track. Though as an additional "overall fine modulation" or "brightness" knob, it could potentially be useful. |
Yeah, I agree. |
@bryc I'm working on support for exporting/importing patches and patch banks from the GUI, as well as setting values from text. Would you care to try this build out? :-) OctaSine-tmp-2022-07-31-macOS-Intel.zip |
Seems to work fine. I'd say "Save bank" instead of "Save all" is less ambiguous/confusing. You might consider adding a dropdown menu for these options, as it's more scalable too (could add be used for both patch saving, loading scala tuning files if that becomes important, etc). I appreciate the patch name edit ability as some DAWs neglect the option to modify FXP/FXB patch names so I end up using SaviHost for that. |
Thanks for having a look, and great that it works! Yes, using a dropdown is a good idea. I want to add actions for clearing the current patch and clearing the whole bank too, and they won’t fit well as buttons. |
@bryc I'm working on functionality for displaying a part of the waveform for each operator. Take a look if you want to :-) OctaSine-tmp-2022-08-23-Windows.zip |
Thanks! Oh, that's very nice. Having a spectrum is pretty cool too. I've been working on improving the panning, both for mix and modulation output, fixing a discrepancy between scaling of modulation output and feedback. Would you like to try it out? |
Hmm, I don't really notice much of a difference. I'd like to say it feels like modulation is more pronounced when panning, or the overall stereo image sounds better now, but that could be just placebo. Doesn't sound broken at least. |
Alright, thanks, that’s useful feedback anyway. And I don’t think it’s placebo ;-) |
organ.mp4Also here's a cool organ preset. feel free to add it as a factory patch if you like :) |
Got another (light) suggestion :) I was in the process of porting some FM sounds (or checking to see if porting was possible), from a particular chiptune FM synth part of pixelbox.js/Patatracker: I seemed like a fairly decent match, but there's definitely a difference in the mod matrix. The obvious thing is that in OctaSine, you cannot modulate any operators with the 4th operator, which is possible here. But another thing possible here but not in OctaSine, is that each destination has its own modulation amount, whereas in OctaSine, you are locked to a specific modulation amount which is either on or off for a particular destination. So the bass patch (third and final pic) above cannot be directly translated to OctaSine, but the others are fine. One workaround would be to try to find a center value of sorts that can be applied in all cases like this: So in this, a modulation amount of "11" for the first operator is being applied to all 3 other operators. But I think it would allow for extra flexibility/finer control if this limitation could be eliminated by setting each modulation amount in OctaSine's modulation matrix somehow: It could potentially be a separate mode, to "Unlock the matrix" so to speak, an advanced mode of sorts, while the current scheme may be the more beginner friendly default mode. It would certainly help people like me who may want to bring over different 4-op synth patches that use routings that may not be covered by the current setup. Just a thought. :) |
This might be better suited for Discussions tab (if it were enabled in this Repo).
Playing with OctaSine more, I see a lot of potential, and I have a whole bunch of suggestions/thoughts/ideas. Maybe some are good. Apologies if its overwhelming - I'm not expecting anything. :)
Mode for relative pitches
A way to use "Octave" and "Semitone" instead of "Ratio" and "Free", maybe a lock switch like this:
The benefit would be more traditional pitch adjustments, can allow easier fourth/fifth intervals.
A further 3rd mode for Fixed frequencies (for atonal or percussive sounds) may be useful.
Slight adjustments to FMWhile Mod. Index is exponential, this is actually quite different to any other FM synth. In fact, I've never even come across "Mod Index" - FM is usually achieved strictly through operator amplification or feedback. This is not a bad thing, but I think it has some implications.
In OctaSine I typically find myself setting the Mod. Index and not touching it further (because the non-linearity can be unpredictable). I then would use operator volumes or feedback to finely tune it, but the issue I find is that those parameters do not go far enough.
Some possible ways to improve this:
Allowing Mod. Index to be switched into a linear scale might be all that is needed, perhaps a toggle button to switch between the two like so:
Keep Mod. Index exponential, but allow for higher modulation amount ranges on both operator amplitudes and feedback amount. Perhaps compare the ranges with Piper2 (free Windows FM vst) - the equivalent knobs in this have a more pronounced effect at the maximum values (and personally I think its better that way).
Move the FM destination control to the operator panel.I think it would be better and more intuitive if the FM destinations were right inside the operator panels:
This way, the intended routing combinations are more apparent (at least to me). And you could even show a line/arrow diagram to show the signal flow.
You may also consider allowing multiple destinations (Checkbox instead of Radio buttons), so that for example, operator 4 can affect 3, 2 and 1 all at once. This would allow a few DX21 algorithms currently not possible to become possible.
Also you may want to use your nice waveform box here for the Sine/Noise as it takes up less space. :)
Improve Envelope editor
The envelope editor is a bit of a slog to use IMO, constantly needing to zoom and pan the view. I think it would be better if the need to pan/zoom can be eliminated.
Here is I think a potential improvement:
Other ideas (Low priority)
Ability to quickly disable operatorsSilly ideas
The text was updated successfully, but these errors were encountered: