Page 1 of 1

Chordian - An Omnichord Emulator

Posted: Sun Mar 17, 2024 7:43 pm
by Jan125
Greetings.
It seems I attach myself to obsolete technology, right when it is supposed to be removed with the next major release.
Rest in Peace, DirectSound.

I present to you: Chordian
Image
A musical instrument emulation that is about 85% feature complete, released under CC0.
The program currently has savestates, and a pattern editor.

Sources and binaries are available on the GitHub page.
https://github.com/Jan125/pb.chordian

This project had been in stalled development since 2021, because I wanted to document one of these things before they're all broken.
Development has just recently begun again, out of spite for Suzuki trying to sell the new Omnichord for an eyewatering 1000€.

It has been interesting trying to remake an instrument you don't own, and I've also found some... Interesting design decisions in PureBasic.
SoundVolume, for example, is wrapped to 101 steps, while in DirectSound, you have 10001 steps.
Semaphores as implemented by windows are much more versatile, but their naming conventions are very weird.

I have tested it down to Windows 7, and up to Windows 10.
Wine should also be able to run it.
Of note:
The project will not work as Linux or Mac binaries, or in PureBasic 6.1+, because of its dependency on DirectSound.

I would be thankful for feedback and bug reports.

Re: Chordian - An Omnichord Emulator

Posted: Sun Mar 17, 2024 10:31 pm
by idle
looks interesting. What are the features of direct sound that you're missing? Now's would be the time to ask.
Thanks for sharing your project.

Re: Chordian - An Omnichord Emulator

Posted: Mon Mar 18, 2024 7:34 am
by Mr.L
Very nice project! I have tested your app now for some time - it's fun to play around with it!
A few times the soundsystem broke down, there was no sound anymore and I had to restart the program. (Windows 11, I ran the 'chordian_x64.exe')
Maybe it is possible to make the Window scaleble? I guess with higher resolutions it would be near impossible to read the lables on the knobs?

Re: Chordian - An Omnichord Emulator

Posted: Mon Mar 18, 2024 8:07 am
by Jan125
idle wrote: Sun Mar 17, 2024 10:31 pm looks interesting. What are the features of direct sound that you're missing? Now's would be the time to ask.
Thanks for sharing your project.
Mostly, that I do not have a clue of how to adjust the sound volume for miniaudio or WASAPI.
I may take a look at that in the future, but that'll be something to do after it's feature complete.
Mr.L wrote: Mon Mar 18, 2024 7:34 am Very nice project! I have tested your app now for some time - it's fun to play around with it!
A few times the soundsystem broke down, there was no sound anymore and I had to restart the program. (Windows 11, I ran the 'chordian_x64.exe')
I have not had that happen on my machines, and that includes a tablet from 2015.
What happened, specifically?
Mr.L wrote: Mon Mar 18, 2024 7:34 am Maybe it is possible to make the Window scaleble? I guess with higher resolutions it would be near impossible to read the lables on the knobs?
This is because I made the mindboggling design decision that it should run in an 800x600px window. x)
Should be reminiscent of old virtual instruments.
This has come back to bite me a few times while developing, and I'll have to rewrite the whole interface to allow other resolutions.

Re: Chordian - An Omnichord Emulator

Posted: Mon Mar 18, 2024 3:22 pm
by ebs
I have absolutely no musical talent whatsoever (ask the guy who tried to teach me to play guitar for 3 years :D ), but your Chordian is a lot of fun, a great time waster, and a pretty amazing example of what a talented person can do in PureBasic.

So far, everything seems to work fine on my Core i5 Windows 11 Pro laptop (x64 version).

My suggestion for your next emulator - a Theremin.

Thank you!

Re: Chordian - An Omnichord Emulator

Posted: Mon Mar 18, 2024 4:12 pm
by Mr.L
Jan125 wrote: Mon Mar 18, 2024 8:07 am I have not had that happen on my machines, and that includes a tablet from 2015.
What happened, specifically?
While playing some chords suddenly the sound went off. After restarting the App, the sound was playing again... I have no clue how that did happen and couldn't reproduce it later.
Maybe it's just something wrong with my Laptop :)

Re: Chordian - An Omnichord Emulator

Posted: Mon Mar 18, 2024 8:11 pm
by Jan125
ebs wrote: Mon Mar 18, 2024 3:22 pm I have absolutely no musical talent whatsoever (ask the guy who tried to teach me to play guitar for 3 years :D ), but your Chordian is a lot of fun, a great time waster, and a pretty amazing example of what a talented person can do in PureBasic.
The Omnichord was actually marketed as that.
I merely take credit for my UX philosophy. ;)
ebs wrote: Mon Mar 18, 2024 3:22 pm So far, everything seems to work fine on my Core i5 Windows 11 Pro laptop (x64 version).
Good to hear.
ebs wrote: Mon Mar 18, 2024 3:22 pm My suggestion for your next emulator - a Theremin.
That may be unfeasible.
While the Omnichord may have kobs you could change while playing, a majority of the instruments functions without two hands.
The Theremin, however, requires two hands for meaningfully playing it.
ebs wrote: Mon Mar 18, 2024 3:22 pm Thank you!
No problem.
Mr.L wrote: Mon Mar 18, 2024 4:12 pm While playing some chords suddenly the sound went off. After restarting the App, the sound was playing again... I have no clue how that did happen and couldn't reproduce it later.
Maybe it's just something wrong with my Laptop :)
Please keep me updated if it happens again.

Re: Chordian - An Omnichord Emulator

Posted: Mon Mar 18, 2024 10:28 pm
by ChrisR
Very nice, with a very pleasing look, It's just a bit difficult to read the labels with the 800*600 window size
I did make a few sounds for fun but I'm not a musician to play and enjoy it.

Otherwise, FYI, outside the exe, I was able to compile Chordian with PB v6.04 by renamed:
Base64Encoder() to Base64EncoderBuffer() And Base64Decoder() to Base64DecoderBuffer()

Re: Chordian - An Omnichord Emulator

Posted: Tue Apr 23, 2024 7:20 am
by Jan125
Alright, the program is now mostly feature complete, and just needs the following:
-Import/Export button functionality for the chord editor
-Verification that some functions and the memory section behave accurately
-A complete rewrite because the code has become severe spaghetti - with sauce!

Please enjoy. :)

Re: Chordian - An Omnichord Emulator

Posted: Tue Apr 23, 2024 9:35 pm
by Piero
Jan125 wrote: Tue Apr 23, 2024 7:20 am-A complete rewrite because the code has become severe spaghetti - with sauce!
RACIST! :x 🇮🇹🍕🍝

Re: Chordian - An Omnichord Emulator

Posted: Wed Apr 24, 2024 3:32 pm
by Jan125
Piero wrote: Tue Apr 23, 2024 9:35 pm
Jan125 wrote: Tue Apr 23, 2024 7:20 am-A complete rewrite because the code has become severe spaghetti - with sauce!
RACIST! :x 🇮🇹🍕🍝
I am not exaggerating. :>

The UI/Main thread uses the WinAPI LocalAlloc_() because for some reason, using the AllocateMemory() function from PureBasic causes an invalid memory access and I have no idea why.
This happens in all supported versions.
I assume it is because the synthesizer thread blocks something with MemorySize() and thus prevents proper allocation?
If anyone has a clue, I'll gladly take it, but for now the program works.

Re: Chordian - An Omnichord Emulator

Posted: Thu Jul 03, 2025 12:16 pm
by IceSoft
@Jan125,

is there some news?

Re: Chordian - An Omnichord Emulator

Posted: Wed Jul 16, 2025 10:14 pm
by Kwai chang caine
Splendid work :shock:
A bit later :oops: Thanks for sharing 8)