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

FV1emu #58

Open
koswir opened this issue Nov 25, 2023 · 21 comments
Open

FV1emu #58

koswir opened this issue Nov 25, 2023 · 21 comments

Comments

@koswir
Copy link

koswir commented Nov 25, 2023

Hey.
I am a new user of the amazeing S&C firmware.
I have noticed that FV1emu button at the flasher screen.
I was searching your project page and forum but faild to find an answer how to use that and what kind of file I could load.
Sorry if I am missing something obvious.
screen
Thanks!
Koswir

@eh2k
Copy link
Owner

eh2k commented Nov 26, 2023

This allows FV1 ROMs to be loaded as engines.
At the moment I still have a few points on the todo list, and the whole thing is not finished yet.

You can find out what it is in general here:

https://github.com/eh2k/vcvrack-fv1-emu

@eh2k eh2k added the question Further information is requested label Nov 26, 2023
@koswir
Copy link
Author

koswir commented Nov 26, 2023

Impressive list of fx!
Can't wait to try the finished thing!

@koswir
Copy link
Author

koswir commented Jan 30, 2024

@eh2k
Hey, could you provide an approximate timeframe for when it will be possible to load the effects?
I cant wait to try that. :)

@eh2k
Copy link
Owner

eh2k commented Jan 31, 2024

hi @koswir,

here is a webpage from which you can compile and upload SPN files as "S&C Engines".

https://eh2k.github.io/□●/fx.html

I haven't actually followed this for a while. Because I'm not really happy with the execution performance and the "sound". And it's damn time-consuming to test and since the OC has no real audio inputs, it is actually less interesting. (Perhaps the S&C-DSM0 is more interesting here)

However, everything I've done here was really only for experimental purposes. Looking back, I would probably prefer faust effects nowadays (see https://github.com/eh2k/squares-and-circles/blob/main/app/FX/Rev-Dattorro.cpp).

The Web-FX compiler runs on my private web server - i.e. whenever you click on the Compile&Flash button, a server process starts that compiles an ARM thumb executable from the specified SPN file.
Like the TR707 SampleRoms, this is then flashed to a separate memory area on the Teensy and can then be started later as an S&C engine.

You can only compile SPN files that are on github. I will track them and maybe take a closer look if I find the time.
With all the FV1 effects that you can find on github, it's mostly unclear regarding the licence.

If you have any questions or maybe an fv1-fx that you like to share, just post here...

Edit:
I don't really intend to run this publicly in the long term - so I'll probably take it offline again after a while.
However, this only works if you have connected the OC with S&C. I have a few more ideas or todos - maybe more on that later.

@koswir
Copy link
Author

koswir commented Feb 2, 2024

@eh2k
Thank you so much :)
I have tried to flash from here https://mstratman.github.io/fv1-programs/ but I've always got "500" message.
fxloader-screen
Sorry if I am missing something obvious.

@eh2k
Copy link
Owner

eh2k commented Feb 2, 2024

Hi @koswir,

The upper url is a github.io "pages" domain - I handle it like as an invalid website at the moment.

Only direkt "github" urls can be used, like https://github.com/mstratman/fv1-programs/blob/master/public/files/spinsemi/dance_ir_h_l.spn

All files from here should work:

https://github.com/mstratman/fv1-programs/tree/master/public/files

@koswir
Copy link
Author

koswir commented Feb 2, 2024

@eh2k
Thank you! It works great!
Some effects sound very good (eg. slocum-phaser.spn and softclipping_overdrive.spn)
I am going to check them all later and raport here :)

I don't really intend to run this publicly in the long term - so I'll probably take it offline again after a while.

Any way to save or backup a compiled file?

@eh2k
Copy link
Owner

eh2k commented Feb 2, 2024

@koswir,

I cannot guarantee that the flashed effects will still work with the next update. It would generally be better to recompile them, as optimisations / bugfixes may be added later. The same mechanism could also be used for Faust effects or DX7 patches.

If an fx sounds strange or different than on the hardware FV1, it may well be that there is still a bug in the "compiler". Compared to the VCV-FV1emu, I have fixed a few bugs and optimised a few things in the s&c codebase.

As you may have noticed, there is currently no way to delete individual effects - you can only remove all "extras" using the "FormatSD".

But it should not be a big effort to recompile or install everything in one step.

If you (or someone who reads this) would like to help me select good effects, a JSON file with the following content would be the way. Which you could also maintain in a own repo.

I.e. instead of loading individual effects manually one after the other, you could simply enter the URL to the JSON.

As indicated, my concerns are less technically, the point is I don't want effects with an unclear licence to be part of the firmware.

And I am in favour of quality rather than quantity. I would therefore limit the number to a maximum of 8 or 16.

[
    {
        "name": "FX/Reverb-HP-LP",
        "pot0": "Reverb",
        "pot1": "HP",
        "pot2": "LP",
        "url": "https://raw.githubusercontent.com/eh2k/squares-and-circles/main/lib/fv1/spn/dance_ir_h_l.spn"
    },
    {
        "name": "FX/Gated-Reverb",
        "pot0": "PreD",
        "pot1": "G-Time",
        "pot2": "Damp",
        "url": "https://raw.githubusercontent.com/eh2k/squares-and-circles/main/lib/fv1/spn/OEM1_4.spn"
    }
]

@koswir
Copy link
Author

koswir commented Feb 2, 2024

@eh2k

If you (or someone who reads this) would like to help me select good effects, a JSON file with the following content would be the way. Which you could also maintain in a own repo.

I am going to test these effects and pick up the good or at least useable ones.

@koswir
Copy link
Author

koswir commented Feb 4, 2024

@eh2k

As indicated, my concerns are less technically, the point is I don't want effects with an unclear licence to be part of the firmware.

Will you have any doubts about the licenses if I create effects specifically for S&C in SpinCAD-Designer?

@eh2k
Copy link
Owner

eh2k commented Feb 5, 2024

@koswir

I have redesigned the fx-compiler page so you can now load a Json file from local computer and flash several SPN files in one go.

The naming must therefore be done in the JSON file.

Regarding Spin-Cad - I don't know how it is exactly - as far as I know the building blocks were mostly copied from the SpinSemi forums. To me the effects were often just combinations of chorus + reverb + filter. But there were definitely a few interesting ones.

I think you have to use the effects for a while to tell if they are really good. Often together with a sound source (e.g. I like the combination of TR707 samples + Gated-Reverb).

If you experience crashes, please report it. These happen to me from time to time and I haven't figured out what the cause is yet.

@koswir
Copy link
Author

koswir commented Feb 6, 2024

@eh2k
aw great! :)
I have made some fx in the SpinCad today.
https://github.com/koswir/FV1-programs-by-koswir
I had to edit the post cause I had a problem with loading .json but I've solved that already.

@koswir
Copy link
Author

koswir commented Feb 6, 2024

@eh2k
Hey, I have tested these fx I've made and there is some kind of bug I can reproduce.
When I select a knob's modulation for the first time after turning o_c, on one of my fxs, it crashes immediately when selecting a modulation source.
On plugins you have built in it works without a problem and also, if I select a modulation source on one of them then switch to one of my fxs - it works fine.
IMG_4954

@eh2k
Copy link
Owner

eh2k commented Feb 7, 2024

Hi @koswir,
thanks for the crash report.
I was actually able to reproduce the crash.
In my case, the problem occurred with the "Gated-Reverb" when a modulation was set or another engine was loaded in the same slot.

I have just pushed a new commit. It would be great if you could upgrade to the latest version and use it from now on.
I have cherry-picked some changes from my dev branch there. Especially the FV1 engines now only need about half of the RAM - because I reduced the delay buffer to 16 bit.

You would have to transfer or compile the effects again, after that the crash should no longer occur.
Otherwise just post a picture of the crash report with a short step-by-step description.

@koswir
Copy link
Author

koswir commented Feb 9, 2024

@eh2k
Thank you! It works now!

@eh2k eh2k removed the question Further information is requested label Feb 14, 2024
@koswir
Copy link
Author

koswir commented Mar 17, 2024

It took me some time, but I've gone through several effects from the provided link: https://github.com/mstratman/fv1-programs/tree/master/public/files

Since I couldn't check them all, I'll share feedback on the ones I did test.

@eh2k, as you mentioned, it's tricky to identify the authors. Some files have links to topics on the Spin Semiconductor forum, while others include credits (for example, RevRev.spn was made by Malekko).

In my opinion, every S&C user should load them at their own risk.
Therefore, I've chosen not to provide a JSON file with the tested ones. Someone may create it if needed.

The ones that function perfectly are marked in bold. Those without comments haven't been tested.

8_seconds_delay.spn - works

ARPEGGIO.spn
ARPEGGIO_MINOR.spn
ONIAN.spn

RevRev.spn - works (a very, very cool reverser from Malekko)

afx_reverse_delay.spn - loads but no wet signal

aliaser.spn - it loads but I think its kinda broken

bm-pi.spn BM Pi - works great (Distortion, Controls: Gain, Tone)

chorus-dual-rate.spn - works great (Controls: Chorus level, Rate 1, Rate 2)

crusher.spn - works but controls do not work

dattorro.spn - works, (it's a reverb but the one already included is better anyway)

faux-phaser-2.spn - works (Controls: Speed and Width, Time, Level and Feedback)

faux-phaser.spn - works (Controls: Speed and Width, Time, Level and Feedback)

freeverb.spn - kinda works but it's buggy - which is sad because it may be the longest reverb from this base

greenwood-delay.spn

hall_goldmine.spn - loads but is sounds like a dry signal

improved_octave_up.spn - kinda works but sounds weird

interesting-1.spn - works (it's a mixed mod/reverb/delay fx)
POT0 is mostly flange speed
POT1 is reverb time combined with a swept high pass on a parallel delay line
POT2 is the mix level for the flange and delay. Reverb comes through in any case.

interesting-2.spn (overdrive version) - works
POT0 is mostly flange speed
POT1 is reverb time combined with a swept high pass on a parallel delay line
POT2 is the mix level for the flange and delay. Reverb comes through in any case.

lfsr_random.spn - works but it's just a random noise source

modulated-echo.spn - works (Controls: Time, Depth, Level)

multipitch.spn

parametric-eq-7.spn - loads but is sounds like a dry signal

pingpong.spn

pitch-transpose-stereo.spn - works great (a stereo detune/chorus, Controls: L channel Pitch, R channel Pitch, Delay? (I'm not sure does it work))

resonator.spn - works (Controls: Frequency, Resonance (inverted))

rev_pl_1.spn - kinda works but meh

rev_pl_2.spn

rev_pl_3.spn

reverse_delay.spn - loads but no wet signal

sawtooth.spn

shimmer-1.spn - works
but already included revebs are better

shimmer-2.spn - works
but already included revebs are better

shimmer_drAlx.spn - works (but it doesn't sound as described - eg. in the description POT0 = Reverb time (0 to 10 seconds) but in my opinion reverb time is max 2 seconds, Controls: Reverb time, Treble, Shimmer)

slocum-phaser.spn - works great (Controls: Phase rate (manual if fully CCW), Sweep width (or manual), Num of Stages (4,6,8,10))

slowgear-2.spn

slowgear-simple.spn

softclipping_overdrive.spn - works great (Controls: Gain Threshold, Volume, Tone (inverted))

spring_verb.spn

stereo-dual-flange-multi-tap-delay.spn

stereo-ring-modulators-with-chorus.spn - works great (Controls: Blend, Carrier offset, Chorus)

stereo-tremolo.spn

thru-gain.spn

tremolo-shapes-reduced.spn - works (Controls: Wave shape, Depth, Speed)

tremolo-shapes.spn

triple-delay-feedback.spn - works great (Controls: Time 1, Times 2 & 3, Feedback)

up-down-octaver.spn - works (but it's one oct up and two octs up (no down oct as name suggests)

whammy.spn - works (Controls: Whammy, Pitch range: DIVEBOMB, OCTDOWN, FIFTH, OCTAVEUP)

@koswir
Copy link
Author

koswir commented Mar 18, 2024

@eh2k Hej have you disabled the fx compiler?
Seems like it doesn't work :(

@eh2k
Copy link
Owner

eh2k commented Mar 18, 2024

@koswir - thanks for the review. I will also test/listen to the effects and then maybe list them somewhere.
Please try the Fx compiler again - or press CTRL+F5 in the browser to refresh the browser cache.

@koswir
Copy link
Author

koswir commented Mar 19, 2024

@eh2k the plugins I've made with SpinCAD flash without a problem.
For some reason I can not flash a .json from https://github.com/mstratman/fv1-programs/tree/master/public/files
screenfx

[
        {
        "name": "FX/BM Pi",
        "pot0": "Gain",
        "pot1": "Tone",
        "pot2": "",
        "url": "https://github.com/mstratman/fv1-programs/blob/master/public/files/bm-pi.spn"    
    }
]

@eh2k
Copy link
Owner

eh2k commented Mar 20, 2024

@koswir - please try replacing the blank in the name "FX/BM Pi" to "FX/BM-Pi".

@koswir
Copy link
Author

koswir commented Mar 20, 2024

@koswir - please try replacing the blank in the name "FX/BM Pi" to "FX/BM-Pi".

Thank you!

@eh2k btw is there a way to skip a pot if a particular fx uses less than three?
When I leave it blank - s&c creates a knob with a default name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants