Share My Creation Modular system

A prototype of a modular system for generating and processing signals in audible range. Oscillator module will generate a basic waveform signal then some calculations can be conducted on these signals via modules/connections, finally the signal goes to speaker and scope for observation.

There are some design chanllenges in this kind of system like modules/connections management (see library and discussion, thanks @William Lancee), and processing order of these modules as they are dependent on each other.
  • Add a module: mouse down on a module on toolbar then drag it to canvas and release mouse to put it
  • Make connection: click one input/output, then click another input/output (drag doesn't work). Repeat this action to remove an already existing connection.
Limitation:
  • One output port can be connected to multiple input ports
  • One input port can be connected to only one output port
  • Loop connection is NOT supported yet: module A's input to B's output then B's input to A's output
Most of time the sound will be terrible but you can mute the sound while observing the waveform/spectrum. It could be an educational tool for signal processing and sound synth.
It supports load and save files, so share your design files if make something interesting.

01.png


Try: java -jar BxModularSystem.jar (Windows, Java 1.8.xxx). I also attached several test files. In holiday now so the app is not even tested by myself, if you are interested and tried, tell me any found bugs, thanks.
 

Attachments

  • BxModularSystem.jar
    405.6 KB · Views: 119
  • kms files.zip
    1.9 KB · Views: 112

emexes

Expert
Licensed User
Does the top-left [file] button/menu mean that sound from a (say) WAV file is possible?

Perhaps on an endless loop, with a (say) 0-10 second pause between each play, and/or with a [play] button on the module's front panel.
 

emexes

Expert
Licensed User
And I'm guessing you have logarithmic scale for spectrum frequency in the pipeline 👍 because most real-life action is in the 150-1500 Hz range which is a small fraction of the linear scale shown. But on the other hand, if this is for student use, then perhaps this and WAV playback is adding more complexity than benefit.
 

kimstudio

Active Member
Licensed User
Longtime User
Does the top-left [file] button/menu mean that sound from a (say) WAV file is possible?

The file button is to load and save the modular system file, like modules with positions, parameters and connections on the canvas.

It is fine to add a new module called “wave” with one output and user can load wave file into it and the wave will play in loop endlessly, and interact with other modules, like effecter modules to be added.
 

kimstudio

Active Member
Licensed User
Longtime User
logarithmic scale
Good point, I did consider whether to use linear or logarithmic scale, sometimes log one is hard to track the frequency relationships and lose resolution on higher part so I used linear scale for spectrum.
 

emexes

Expert
Licensed User
Another module that's probably on your to-do list, but... just in case...

A one-octave (ie 12 keys/semitones) mini piano keyboard. With numeric display of the last note frequency played eg (middle) A = 440 Hz.

Which reminds me: I just found out the other day that the probable reason for an octave being split into 12 increments is that 2^(7/12) is very very close to 3:2 ratio and 2^(5/12) to 4:3 ratio 🙃

edit: or maybe that's just urban myth, but if you've got a better explanation then I am all ears 🎶
 
Last edited:

kimstudio

Active Member
Licensed User
Longtime User
A one-octave (ie 12 keys/semitones) mini piano keyboard. With numeric display of the last note frequency played eg (middle) A = 440 Hz.

minisynth has piano keyboard as it sounds much better than this...

Which reminds me: I just found out the other day that the probable reason for an octave being split into 12 increments is that 2^(7/12) is very very close to 3:2 ratio and 2^(5/12) to 4:3 ratio
😮 new knowledge gained.
 

emexes

Expert
Licensed User
minisynth has piano keyboard as it sounds much better than this...

Assuming that you are making an educational sound synthesiser, I figured that the mini keyboard would output a pure sine wave, perhaps modulated by an Attack-Decay-Sustain-Release envelope, that your students could then try running through various modules and filters eg AddHarmonics, to reproduce - and perhaps even improve upon - minisynth.

Although I am starting to see some stumbling blocks already, if the links between modules are sampled audio 🤔 so maybe you'd be better off to ignore me and my nutjob musings 🤫
 
Top