Fathom Synth Development Thread

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS
Fathom Synth

Post

Frostline,

Could you try something for me.

(1) If you are using Windows 10 you need to install the Microsoft 2015 Redistributable, please try that and see what effect it has on the note drop problem.

There’s info on the web site here:
https://www.fathomsynth.com/download/

(2) Also, today I was reviewing your notes, is it correct that the second instance of Fathom is an exact copy of the same preset of the first, but the second instance can play twice as many notes?

(3) Also please send me the patch you are using which creates the problem, I realize it probably happens with everything, but I want to test with the same preset to make sure I can get the worst performance for the sake of debugging.

Distorted Horizon,

Are you also using Reaper?

Post

My two cents regarding the issue reported, hope this helps.
Let me know if you need more info:

Tried some random patches with 16 note poly in Flstudio and Renoise, I think the problem with excessive CPU is with the Bezier option in Wavedraw.
As soon as I turn that on in both Wavedraw components in a rebuild patch "Bezier Skip Cycle" CPU goes up to at least 55% ..turn Bezier off in both components and CPU goes back to 14%.
When I load the Jazz Organ Lite or Bezier Skip Cycle CPU usage is between 75 and 85% on my Core i5 6600k.

I also see only 1 CPU ( core 01 ) is used both with FLstudio and Renoise ( multithreaded options on in Renoise and in FLstudio fixed buffersize etc ).
Last edited by RPH on Wed Aug 23, 2017 8:02 pm, edited 1 time in total.

Post

I'm testing this bug today as the first priority,
so your info above might really help.

I'll take a close look at the Bezier to see how it would effect it.

I really wish Reaper had a constant block size setting like FL studio,
it would really fix a lot of problems.

I'm almost positive that I'm going to find out that Reaper is sending me blocks of 1,2,3 samples instead of 512 or 1024.

Then all the real time efficiency is destroyed because my engine is doing everything every sample instead of once per block.

But I'll find out.

Post

FathomSynth wrote:Frostline,

Could you try something for me.

(1) If you are using Windows 10 you need to install the Microsoft 2015 Redistributable, please try that and see what effect it has on the note drop problem.
I followed the link and downloaded the VS redistributable. When executed I got
Image
which I assume indicates that the redistributable was already installed? I thought I had installed it when I reinstalled Windows a couple of months ago.
But I selected the repair option just incase, but saw no difference.
FathomSynth wrote: (2) Also, today I was reviewing your notes, is it correct that the second instance of Fathom is an exact copy of the same preset of the first, but the second instance can play twice as many notes?
When I was working with the "Jazz Organ Lite" patch in an otherwise empty project it was an exact copy.
I started a new project, inserted an instance of Fathom, checked to make sure it was the polyphony one (it changes positions in my plugin list, sometimes it the 1st one sometimes the second one) and then copied that track.
I then loaded the factory patch "Jazz Organ Lite" in each instance.
And yes one instance would play more notes when soloed than the other instance. One instance would use all the RT-CPU and the other instance would not use any (or the graph didn't indicate any RT usage at least).
FathomSynth wrote: (3) Also please send me the patch you are using which creates the problem, I realize it probably happens with everything, but I want to test with the same preset to make sure I can get the worst performance for the sake of debugging.
Hopefully I will do this correctly.
I will attach 2 patches I created.
The first is the patch that is simple, yet uses a ton of RT-CPU, but at least today when checked will play most of the 16 notes ( I think it dropped two notes near the end).
A different midi item of 9 notes each three bars long but with note starts offset within a 32nd note to simulate a strum ended with all notes playing usually, sometimes would drop the 1st note.
https://www.dropbox.com/s/a0bi9nkhsh54e ... m.xml?dl=0
This second patch is much more complicated, today it used no RT-CPU (indicated) yet drops notes very rapidly to the point of only playing the last 3 notes out of the 16 notes it was given.
ON the strum midi pattern it usually only ended up playing 3 of the 9 notes.
https://www.dropbox.com/s/uj0iumaszvp9o ... m.xml?dl=0

I am unsure if I am posting the patches correctly. The only items I see in the user folder are these xml files.
I am really appreciative of the hard work and dedication you are putting into getting this working. Thank you.
Win10 x64, Reaper 6.XX x64, i5-3330, 8gb ram, GTX-970, UC-33, Panorama P4, Wharfedale Diamond 8.2 and JVC HA-RX700

Post

TEST RESULTS:

So here are my test results for BUG 0021 "Reaper High CPU" using both Fathom and Omnisphere.

Reaper, Fathom, 1 Track, Jazz Organ, 10 notes stacked, CPU 85%, No lost notes.
Ableton, Fathom, 1 Track, Jazz Organ, 10 notes stacked, CPU 85%, No lost notes.

Reaper, Frost Line Studios, Organ, 10 notes stacked, CPU 43%, No lost notes.
Reaper, Frost Line Studios, Pad1, 10 notes stacked, CPU 86%, No lost notes.

Reaper, Fathom, 4 Tracks, Jaz Organ, 10 Notes, Reaper grinds to a halt!
My core monitor shows Reaper is using only 1 processor core under load,
without making any use of the 11 other idle cores.

Ableton, Fathom, 4 Tracks, Jaz Organ, 10 Notes, Ableton has no problem.
The core monitor shows Ableton is automatically assigning each track to its own processor core under load, and no special setting was necessary to do this.

Reaper, Omnisphere, 4 Tracks, Complex Patch, No problem.
Reaper, Omnisphere, 4 Tracks, 4 Channels per Patch, Reaper grinds to a halt.

Again, the core monitor shows Reaper is maxing out one core and making no attempt to use the idle cores.

From this we can make the following conclusions:

1. Fathom’s performance in Reaper and Ableton is no different.

2. My debugger showed that there is no problem with Reaper's block sizes which are consistent at 442 samples per block.

3. I have to be honest that the test results show that Omnisphere is about four times more efficient than Fathom. This is no surprise since I have not yet done any vector processing in Fathom.

4. Reaper has the same problem with both Fathom and Omnisphere, the only difference is that it takes more tracks with Omnisphere to overload the CPU.

5. Reaper does not use multiple cores under load.

6. If you want to run multiple tracks of Fathom with high polyphony and complex patches, you must have a host with multi-core support.

I will update the web site to warn people of this.

Its interesting to note that the Fathom demo song for the new Video has 45 Fathom tracks, and 20 of them are playing at the same time in the chorus, plus many of the tracks are loaded with oscillators, filters and modulations. The final mix was exported but it is playable in real time in Ableton with no glitches, and Ableton does not have any trouble driving all 20 tracks simultaneously.

Question:

I don’t want to make any false statements about Reaper, which in my experience is otherwise an excellent host. So if someone knows how to enable multiple cores in Reaper, please advise!

Post

FathomSynth wrote:So if someone knows how to enable multiple cores in Reaper, please advise!
Maybe Frostline can try this:

https://forum.cockos.com/showpost.php?s ... ostcount=2

Also, everything I can find about multi core support in Reaper says support should be good / excellent.
Maybe some driver could be problematic. I'll try this in my version of Reaper when I get home.

Post

Again, you save the day!

That worked, HOWEVER!, the right settings are slightly different than what that thread says. So follow these instructions carefully!

Enable Multi-Core Processing in Reaper

The following settings will enable multi-core processing in Reaper, which is necessary to run multiple tracks of Fathom in Reaper.

Fathom’s run-time CPU load is displayed in the CPU bar at the upper right of the interface. If you do not have multi-core processing enabled in Reaper, and the Fathom CPU is in the orange or red, you will only be able to run one track of Fathom. If the CPU bar is near 50% then you will only be able to run two tracks of Fathom, and so on.

My recommended settings here are different then what you will typically find in forums, but these are the settings which I found work.

In Reaper, go to Options, Preferences, Audio, Buffering.

At the top enable the check box “Auto-detect the number of needed audio processing threads”. You can also un-check this box and manually enter the number of core threads you want Reaper to use.

Set “Thread priority” to “Highest (recommended)” and “Behavior” to match the number of core threads on your system. I personally recommend setting this number to match the number above it, listed after “Audio reading/processing threads”.

Enable the check box “Anticipative FX processing – superior multiprocessing and lower interface latencies”.

The next setting is “Render-ahead”. I do not think this setting matters, but with the problem fixed on my system, this number is set to 200 ms.

Enable the check box “Allow live FX-multiprocessing on X CPUs”, and set the number of CPUs in this edit box to match the number of CPU cores listed or selected at the top of the dialog.

Click Apply, OK.

Right click on each plugin track holding Fathom, or any other plugin that you want to include in multi-core processing.

Mouse down over “Track Performance Options”, Check “Allow media buffering”, Check “Allow anticipative FX”, Check “Enable track metering”.

You must do this for all Fathom tracks.

Save your project, Close Reaper, and Relaunch Reaper to make sure that the new settings are loaded.

Now when you run Reaper with multiple Fathom tracks, and if you have a processor core monitor, you will see Reaper employ multiple cores in order to render all the Fathom tracks without slowing down.

Post

Again, you save the day!

That worked, HOWEVER!, the right settings are slightly different than what that thread says. So follow these instructions carefully!

Enable Multi-Core Processing in Reaper

The following settings will enable multi-core processing in Reaper, which is necessary to run multiple tracks of Fathom in Reaper.

Fathom’s run-time CPU load is displayed in the CPU bar at the upper right of the interface. If you do not have multi-core processing enabled in Reaper, and the Fathom CPU is in the orange or red, you will only be able to run one track of Fathom. If the CPU bar is near 50% then you will only be able to run two tracks of Fathom, and so on.

My recommended settings here are different then what you will typically find in forums, but these are the settings which I found work.

In Reaper, go to Options, Preferences, Audio, Buffering.

At the top enable the check box “Auto-detect the number of needed audio processing threads”. You can also un-check this box and manually enter the number of core threads you want Reaper to use.

Set “Thread priority” to “Highest (recommended)” and “Behavior” to match the number of core threads on your system. I personally recommend setting this number to match the number above it, listed after “Audio reading/processing threads”.

Enable the check box “Anticipative FX processing – superior multiprocessing and lower interface latencies”.

The next setting is “Render-ahead”. I do not think this setting matters, but with the problem fixed on my system, this number is set to 200 ms.

Enable the check box “Allow live FX-multiprocessing on X CPUs”, and set the number of CPUs in this edit box to match the number of CPU cores listed or selected at the top of the dialog.

Click Apply, OK.

Right click on each plugin track holding Fathom, or any other plugin that you want to include in multi-core processing.

Mouse down over “Track Performance Options”, Check “Allow media buffering”, Check “Allow anticipative FX”, Check “Enable track metering”.

You must do this for all Fathom tracks.

Save your project, Close Reaper, and Relaunch Reaper to make sure that the new settings are loaded.

Now when you run Reaper with multiple Fathom tracks, and if you have a processor core monitor, you will see Reaper employ multiple cores in order to render all the Fathom tracks without slowing down.

Post

FathomSynth wrote:Again, you save the day!

.........

That worked, HOWEVER!, the right settings are slightly different than what that thread says. So follow these instructions carefully!

.........

Enable the check box “Allow live FX-multiprocessing on X CPUs”, and set the number of CPUs in this edit box to match the number of CPU cores listed or selected at the top of the dialog.

..........

Now when you run Reaper with multiple Fathom tracks, and if you have a processor core monitor, you will see Reaper employ multiple cores in order to render all the Fathom tracks without slowing down.
:party: Sweet, glad to be of help!

It works here as well, I only needed to enable "allow live fx-multiprocessing on X CPUs". Excellent!
BTW, FYI it seems Renoise DAW does this automaticly already.

Post

Coolness.

Quick update, I'm working on the bug:
BUG 0020 Wave Table FM is Flat reported by mik82.

I can recreate it, so it will be fixed in the next release (Edit, Fixed)
Last edited by FathomSynth on Thu Aug 24, 2017 11:18 pm, edited 1 time in total.

Post

I have run across something that I find odd but it maybe by design.

Goal : To have only noise play on F2

So I:

Select basic wave form and turn the volume of the oscillator waveform down to Zero.

Add a keytracking modulator to the noise volume.

Narrow the keytracking range to F2 only.

It works fine untill I play any other key and the go back to F2. At which point there is no sound when I play F2.

If I move the noise volume dven a little in any direction sound comes to F2.

What I have found is that with the waveform volume set at anything other than zero it works perfect except now I have an ever so slight waveform sounfing on sll keys.

I can add a keytracking modulator so that it also only plays on F2 and the volume difference is such that you cant really hear the waveform oscillator.

Is this by design?

Is there a way to get noise without the waveform?
We jumped the fence because it was a fence not be cause the grass was greener.
https://scrubbingmonkeys.bandcamp.com/
https://sites.google.com/view/scrubbing-monkeys

Post

SM, Yes that's a bug for sure.

But I know exactly what is happening.
The sound engine skips an object if its volume is zero, which is by design,
but it should still play the noise oscillator, since many people sometimes need just the noise.

Yes, easy fix, (That will be "BUG 0026", just for reference).

Edit, that's funny I had that cpp file already open now, I just went in and fixed it now,
and tested it with your scenario, so that will be in 1.0.13. :phones:

Edit: Just for info, Noise already has built in Key Tracking, see the two "Note Track" dials
on the Noise Page. The one on the left key tracks the noise frequency
and the one on the far right key tracks the noise filter frequency.

Also, BUG 0020 Wave Table FM is Flat reported by mik82, is now Fixed for 1.0.13.

Also, I will be changing Noise so that it follows the Glide!

Post

FathomSynth wrote:SM, Yes that's a bug for sure.

But I know exactly what is happening.
The sound engine skips an object if its volume is zero, which is by design,
but it should still play the noise oscillator, since many people sometimes need just the noise.

Yes, easy fix, (That will be "BUG 0026", just for reference).

Edit, that's funny I had that cpp file already open now, I just went in and fixed it now,
and tested it with your scenario, so that will be in 1.0.13. :phones:

Edit: Just for info, Noise already has built in Key Tracking, see the two "Note Track" dials
on the Noise Page. The one on the left key tracks the noise frequency
and the one on the far right key tracks the noise filter frequency.

Also, BUG 0020 Wave Table FM is Flat reported by mik82, is now Fixed for 1.0.13.

Also, I will be changing Noise so that it follows the Glide!

Great.

The noise section in Fathom is far and away the best I have seen on anything. You can really dial in just what you want with out external processing.
We jumped the fence because it was a fence not be cause the grass was greener.
https://scrubbingmonkeys.bandcamp.com/
https://sites.google.com/view/scrubbing-monkeys

Post

I got so excited about the potential I thought I would share.

This is ONE instance of Fathom MONO. No other processing at all.

https://soundcloud.com/scrubbing-monkey ... ument-mono

I didnt spent alot of time on the sounds. I was mainly playing with the keyboard tracking modulator. If i were to do this in a real world application, I would use separate instances just for organization. But the idea that you can really send any oscillator to any key is huge. Especially for percussion stuff, basic splits and all kinds of sound FX.

I uploaded the preset to Fathoms product page if any one want to see whats happening. but basically its kick,snare,hh sent to typical GM notes with bass on several keys in the middle and synth on the right. I used the poly version with poly set to one. So it should work on the free mono version as well. The trick obviously on the mono version is that no 2 sounds can happen at the same time.

The two most modest words I have learned this year are "basic waveform"....yeah right, Its almost limitless. And "keyboard tracking" its really a full blown note mapper.
We jumped the fence because it was a fence not be cause the grass was greener.
https://scrubbingmonkeys.bandcamp.com/
https://sites.google.com/view/scrubbing-monkeys

Post

Is this the final synth to rule them all, and for free? :)

Post Reply

Return to “Instruments”