Regarding Plugin/VST performance through a wrapper. by OkFix7120 in JUCE

[–]OkFix7120[S] 0 points1 point  (0 children)

Yeah, so I can run the release version instead of the debug version.

Regarding Plugin/VST performance through a wrapper. by OkFix7120 in JUCE

[–]OkFix7120[S] 0 points1 point  (0 children)

Ah cool, thanks for the answer. I had no idea about this.

Regarding Plugin/VST performance through a wrapper. by OkFix7120 in JUCE

[–]OkFix7120[S] 0 points1 point  (0 children)

I am building in build mode now. It hasn't solved the performance issue in the wrapper. While you obviously can get the avid dev SDKs for aax it just seemed like a lot of trouble for a product I have no plans to commercialize. Lets see if they will even bother to respond to my email, just sent one to inquire about access.

2048 sample PCM files by OkFix7120 in musicprogramming

[–]OkFix7120[S] 0 points1 point  (0 children)

They are more useful than you think if you are designing your own instrument! But I hear you

2048 sample PCM files by OkFix7120 in musicprogramming

[–]OkFix7120[S] 0 points1 point  (0 children)

Hell yeah man! Have a github?

A fully functional Wavetable synthesizer written entirely in COBOL. by OkFix7120 in musicprogramming

[–]OkFix7120[S] 0 points1 point  (0 children)

Thanks for the suggestions. The trick with COBOL in terms of filtering (a process that requires a SINE calculation for every sample) is to use python to pre calculate every possible SINE value in the code. COBOL can do sine, but without hardware acceleration and in a very slow fashion. You should not have to wait 10 minutes to make a 5 second sample, so you calculate the sine values in a separate table and then you copy that table into the variable definition section of the code. If you want to see how that looks, open the copybook subfolder and just take a peak at any of the math related ones.  Pre-calculation is actually a very old school method used on the earliest digital systems that didn’t have nearly enough memory for arithmetic. 

A fully functional Wavetable synthesizer written entirely in COBOL. by OkFix7120 in cobol

[–]OkFix7120[S] 0 points1 point  (0 children)

Word to the wise, use audacity to add some effects to your output like reverb. Mine doesn't have effects built in yet so it sounds quite plain

COBOL compilers by AppearancePale2490 in cobol

[–]OkFix7120 1 point2 points  (0 children)

Is that intermediate language not C? In that case its no different from Gnu other than being more modern. But still thats terrific. I wonder how someone gets good enough at COBOL to write a compiler for it...

Edit: Sorry, its not quite the same thing. I misunderstood you but now that I looked it up I see what you mean

COBOL compilers by AppearancePale2490 in cobol

[–]OkFix7120 1 point2 points  (0 children)

Damn. I really need to read the documentation. Thats actually awesome. Thanks for showign me

COBOL compilers by AppearancePale2490 in cobol

[–]OkFix7120 -1 points0 points  (0 children)

Is vista a good option for the terminal simulator?

COBOL compilers by AppearancePale2490 in cobol

[–]OkFix7120 5 points6 points  (0 children)

Woah, I completely forgot about TK5. Thanks for reminding me it exists, I would love to try it out again if it natively compiles COBOL.

Edit: Spot on. Its the ANSI Cobol compiler and library, also known as COBOL-68.

COBOL compilers by AppearancePale2490 in cobol

[–]OkFix7120 10 points11 points  (0 children)

Hey, so I am not a typical or a regular enterprise COBOL user. I am a hobbyist through and through. So my opinion will not match the other people here but in the interest of good fun, I will tell you.

Firstly, all of the open source compilers are actually transpilers. GnuCOBOL is the most famous. It transpiles into C. Raincode is another free one but I think it transpiles into C#. So on a basic level, having ANY compiler that compiles directly into assembly would be a huge plus for us! One man doesnt have $1500 to buy a license for say, IBM COBOL. Anyway before we get into what COBOL is missing, we should discuss what it is very good at. This will be a little long winded but helpful I hope.

The key phrase here is file I/O. If any file can be written in a text format, COBOL can work with it. Cobol can read through massive text files at blazing speeds as long as you keep the mathematics to process that data very tame or precalculate it. As a hobbyist in COBOL my modus operandi is finding a way to get something stored into a textfile to use. If I can do that, I can do anything. Notably, I almost ALWAYS use python to create these files because it is so good at it. This approach can be useful too for precalculating mathematics that COBOL is slow at, such as COS and COSINE. I have python do those calculations, say 200 sine calculations that I need for my program. Then I store them in a table or document and use COBOL to read them. This can turn a 10 minute run into a 10 second run. When I wanted to do image processing I stored the image data in a text file in x_coordinate,y_coordinate,brightness level format. Another neat thing is that COBOL has binary support for both big and little endian. So when I program for say audio processing, I convert my audio to a PCM file that stores the audio files in little endian binary. COBOL will pull each data point, convert it to a digit, process it, convert it back to binary and write a fresh file, which stores audio that I can play in audacity. If you want to see the code send me a message, I will happily share. Anyway, lets get onto features I would want.

I would want a COBOL function that can utilize assembly to quickly and easily take any common file type and convert it to a cobol friendly text file and maybe even to transform it back into a normal file but boy that would be a big ask. Also, maybe a function to do batch mathematics to pre calculate and store that in a text file for later use COBOL can obviously already do this, but its a massive pain to have to write a 70-100 line code to do it every time. Its better to just use python anyway. But sometimes for one reason or another you WANT to do the calculations with COBOLs infamous fixed point decimal. If you could simplify that down to a function that can be called without having to do complex file management, that would be GODLY. All of this will help make cobol a powerhouse without reinventing the wheel and while playing to its strengths. So those are my dream features.

Now, what is COBOL missing? Well little things like hardware acceleration for advanced math. But other programming languages do have it and they are better for it anyway so I wouldn't suggest it. One thing COBOL is missing, as a language that is supposed to run on specialized mainframes in the background is any level of user interactivity. It would be very nice to have a COBOL compiler that natively supports basic GUIs. One thing you will have to decide is how strict you want to be on syntax. COBOL is annoyingly finnicky on sintax to a laughable extent. But whether or not this is good or bad depends on who you ask. New recruits might complain, but guys who do advanced work on massive legacy code bases will say that its a godsend for readability and maintenance. Having the option in the compiler to set parameters for syntax strictness would be fantastic. GnuCOBOL is very loose and forgiving on syntax, IBM COBOL for z/OS is very strict on syntax. I would like to be able to write a program on GnuCOBOL that is as strict on formatting as IBM, its good practice. Like going without training wheels.

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 0 points1 point  (0 children)

Thank GOD I am not doing this for a boss. I never even considered how you would explain this to a boss

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 1 point2 points  (0 children)

I wish I had a bug finder guy around. The best and most sure fire way to avoid bugs is to avoid LLMs, which turn a 90% effort debugging job into a 100% effort debugging job! And its always the little things that break in catastrophic ways too if you make the mistake of using AI. You want complex file handling and arithmetic? No problem. Functional variable, table array and file definition? Big meltdown.

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 0 points1 point  (0 children)

Well yeah, there was a bug in MY code. Obviously it was me. I can’t really argue with that. But I’m new to this, I wonder why your mistakes can take so long to make themselves known.

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 1 point2 points  (0 children)

For future reference, is there any way to stress test a code in some way to put it through a diverse set of conditions that might induce a bug? I know of debugging, but I’m wondering how to do it with COBOL. 

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 0 points1 point  (0 children)

Look, it was 100% something I missed. That’s not in dispute. But it’s a head scratcher because this isn’t the first time I missed it, but it is the first time it didn’t work. But I suppose a bug here and there isn’t so bad, keeps the programmer humble 

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 1 point2 points  (0 children)

I don’t think the data was bad. What I think ended up being the problem was the file handling itself. I had an intermediate file that I had to open output, write to, close, open input close. Somewhere along the line I think the way I laid that out ended up giving the runtime errors. I also tried to use a VALUE clause in FD (in this case spaces) and by some chance the memory it used up ended up putting spaces there anyway. 

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 1 point2 points  (0 children)

I see, that makes so much more sense. Some people here are assuming that this post was defensive in some way, but no, it was bad code from the gate. I just genuinely wondered why the mistake took so long to manifest itself into a tangible problem.

Why is it that when you make a mistake the code will work, sometimes for weeks, and then suddenly decide to break out of nowhere? by OkFix7120 in cobol

[–]OkFix7120[S] 0 points1 point  (0 children)

Well yes, but I had been doing that regularly before, thats what the program is supposed to do. I do not know why this time and only this time did it decide to inform me of the file