Moselle: Software Modular Synthesizer

Modular Synth design and releases (Reaktor, SynthEdit, Tassman, etc.)
RELATED
PRODUCTS
Moselle

Post

Aloysius wrote:I really liked that pitch bending in key video. Sounded great.
Thanks Aloysius! The important thing is that the in-key pitch-bending isn't some special feature of Moselle. Instead it shows that by using Moselle's general-purpose abilities, you can do very useful things. One day I thought an in-tune pitch bend would be fun and I wrote a patch that does it in about two minutes. You could add that effect to any Moselle patch you wanted.

Post

Swiss Frank wrote:Hi Filter303:

Many thanks and of course, I love the constructive feedback! I'm desperate for this type of quality feedback! I only hope my answers ultimately help and that you actually find some use for the software!

1) C:\Moselle ... the main reason I did this was to simplify support so that I could tell people what exact directory to look in. I TOTALLY agree with your point and I've heard the same complaint from others, so I'll make the next version able to run from anywhere. So I've got a question for you in turn: Moselle has binaries, "factory" patches, "user" patches, and log and edit-history files. Is it cool with you if those are all sibling directories still? I'm actually a hard-core Unix programmer where we'd put those different things on different file systems, but then installation and support gets far more complex.

2) Moselle currently uses the waveOutOpen() API, which doesn't seem to have a way to specify drivers etc. This is not a good API. It has been totally replaced at least once. Rather than re-write the stand-alone IDE to use the newer APIs, I thought I should prioritize some other projects first (stereo, better performance, DAW integration). But I'm happy to change priorities if you think I need to improve audio selection etc. first.

3) The sample rate etc. is in the file C:\Moselle\config\Interpreter.moselle . It's just an INI-format file you can edit with WordPad or what have you. FreqEval is the sample frequency (44100 or whatever).

The stuttering you hear is a performance issue. Moselle is still a CPU hog. It is an "interpreted" language, meaning basically, slow. I'm working on a "compiler" which will be far faster, once I'm finished stereo support which I'm coding now. My suggestion is first try doubling BufferSamples in this config file, and restart. If it still stutters, change 44100 to 22050, and restart. (This will lose the top octave of human hearing, but I've learned that this is more theoretical than practical; this doesn't really sacrifice enough fidelity that you'd normally notice in the context of real-world sounds.)

By the way, could you share your computer's CPU specs so I can understand where Moselle is and isn't working? If you right-click "My Computer" and select Properties, you should see system info like the following. Here's the critical info, from development system: i7-2600 CPU @ 3.40GHz, Windows 7 Professional Service Pack 1, 32-bit.
Hi!

Apologies for my late reply to your questions.

It's nice to see you are open to suggestions on how to improve your synth. It takes a certain degree of humility for a person and I personally appreciate it big time.

1: The current Moselle folder structure makes sense in my opinion and many commercial products do it in a similar fashion. It's nice that the patches are in inside the Moselle/patch instead of various obscure location. Because the patches are inside the Moselle folder, it's very easy to backup the sounds or copy everything to another computer. I wouldn't change a thing regarding the folder structure.

2 & 3: Thank you for this tip, I didn't even realize that I could change the buffer size. It would be a good idea to take these settings to the GUI also.

My system is i7-2670QM @ 2.20Ghz, Windows 10 Home, 64-bit.

I changed the buffer and lowered the samplerate and I managed to play some patches. Of course some patches use tons of CPU but I guess that's is to be expected from a modular synths. So far I like what I am hearing ;)

It would be best if an ASIO driver could be selected so the user could get better performance (latency + cpu usage?) with their audio interface of choice. The faster you can make it happen the more people will be interested testing your synth. Now I only manage to play it with a very high buffer (2048) so there is quite a bit of latency. With my audio interface that has an ASIO driver I could get much better buffer sizes if ASIO was supported.

I have to say that I can't really agree that the 22050hz samplerate is being sufficient :)

Small feature suggestion regarding selecting patches. +- minus buttons would be great and/or changing the patch from arrow keys. Now the arrow keys will highlight a patch but it doesn't load it.

Oh, btw... some positive feedback that I absolutely must give you: I think it's amazing that you have spent so effort writing good descriptions for the tutorial patches. I see that Moselle could became one very good synthesis learning tool because of this.

I look forward seeing how your project progresses. Keep up the good work!

Post

Thanks for taking the time to check it out, Filter303.

I don't know yet about how to allow driver selection. When I change from waveOut API to WASAPI, maybe I will see how to do this.

The rest of your suggestions I agree to and will put in one of the next two releases. (The next one will be the stereo release.)

And thanks for the positive feedback!

Post

Congratz on whatever it is your doing :) not complaining just letting you know be careful with what pictures you upload on your site if you haven't taken it it could get you into trouble.. You might ask over a picture? That's right

I've seen people get in trouble for it again not complaining just giving you a hint

Post

Thanks AudioTraveler. All the pictures on the site are either 1) my own, 2) other peoples' that I have an email permission for use of, or 3) from WikiCommons and specifically licensed for any use. The WikiCommons ones, when clicked, take you to a page showing their copyright and licensing.

You make a good point though--we don't want anyone stealing our music or or software, so we must be very careful not to steal photos.

Frank

Post

STEREO release is coming along.

Patch-level stereo is working: some crazy chorus, phasers, panning, reverbs etc.

Voice-level stereo is also working: voices panning around on envelopes or per-voice LFOs, etc.

Functions now exist for making stereo/multichannel buses from a group of mono's (like a 2-mono-to-1-stereo Y cable); pulling single channels out of a bus (like a 1-stereo-to-2-mono Y cable); summing up a bus's channels into mono (stereo-to-mono converter), and panning around (like a mixer's pan pot: one mono signal is divided between two channels). Except for pan it all works with any number of channels, in theory capable of 5.1 or 7.1 synthesis.

Now I'm just fixing all the stuff I broke while doing this (eg, Oscilloscope display no longer works) then a release will come soon.

Post

Moselle Stand-Alone IDE Alpha release #8 now available--free.

Moselle is a general-purpose synthesizer that works like a modular synthesizer. It supports classic subtractive synthesis, additive, FM and many more paradigms. Instead of being patched with a GUI, though, it has an actual, simple, programming language. This makes it easy to do things that are nearly impossible with competing systems.

For videos see: https://www.youtube.com/channel/UC1GYcx ... =0&sort=dd



This release adds extensive support for stereo (and more generally, multi-channel: 2 or more channel) buses and output:

-- Stereo output is now supported.

-- The Delay module now supports panning and a second output.

-- A set of general-purpose functions to create multichannel buses, break out channels, sum buses to mono, pan in stereo, and so on.

-- Most modules accept multi-channel inputs, in which case they produce multi-channel outputs.

-- Not only audio signals are multi-channel: control signals are too.

This last feature allows you to do things such as: apply a stereo constant to an LFO for its frequency, magically making the LFO stereo. The stereo LFO output, used for vibrato, magically makes the pitch calculations stereo. The oscillator using that pitch calculation then magically goes stereo.



In addition the following changes were made that aren't related to stereo:

-- Added hyperfuntion SumVoices() function that should replace Patch:VoiceOutput

-- Improved many error messages

-- Patch:Output renamed to Patch:Result

-- Delay:OutputWet renamed to Output

-- Oscilloscope works again for displaying full notes (stopped working during a performance optimization in the past)

-- Moselle can now be installed anywhere in the file system.



Find out more, and get the free download, at moselle-synth.com .

Post

Wow! This looks extremely powerful. It does remind me a bit of CSound, although I've also never used CSound really :hihi:. Will have to check this out.

Post

Thanks for your interest Nineofkings. If you try it out I'm available to answer any questions and hear any criticisms and ideas.

The difference I'd describe is that CSound was designed around "what would be easy for the computer to understand" instead of "what would be easy for a musician to read and write." Additionally CSound handles composition, which Moselle doesn't. Finally CSound is decades-old and quite mature while Moselle isn't quite beta quality yet.

I'm about to release alpha-09, maybe within a couple weeks. This will change a lot of details as to how things work but there shouldn't be any real changes after that. Alpha-10 will be a big performance increase, then the first VST integration will be next. That should be beta.

Post

Moselle Stand-Alone IDE Alpha release #9 now available--free.

Moselle is a general-purpose synthesizer that works like a modular synthesizer. It supports classic subtractive synthesis, additive, FM and many more paradigms. Instead of being patched with a GUI, though, it has an actual, simple, programming language. This makes it easy to do things that are nearly impossible with competing systems.

Find out more, and get the free download, at moselle-synth.com .



Changes for this release are as follows.

Overall:
-- performance increase of about 15%
-- now can be installed in any location, not just C:

Adder module:
-- NEW; for additive synthesis, demonstrated with drawbar Hammond Organ simulation with exact pitches for all tone wheels

FMAlgo module:
-- NEW; for FM synthesis, demonstrated with DX-7-like patches

Note module:
-- NEW; provides all MIDI and other per-note inputs to your patch
-- now includes time in seconds and in samples that note has played

Channel module:
-- each patch can now specify default values for each control
-- now has outputs showing position of all keys, allowing them to be used as additional switches

Voice module:
-- split into Note module (source of all MIDI and similar info); Pitch module (pitch calculation), and Voice module (destination of output wave)
-- added default EnvGain envelope, which gets rid of keyclick

Oscillator module:
-- massive reduction in digital noise in Sawtooth, Square, and SawPulse with "averaging" technique
-- old non-averaging ("NA") Sawtooth, Square, and SawPulse renamed SawtoothNA etc.
-- added SinePulse and SawPulse waveforms
-- added outputs DCOffset and AmpFreqAdj useful for waveshaping
-- more accurate Sync flag reduces aliasing tremenously for hard sync

Stored Waveform Oscillator module:
-- variable names now obey standard
-- more accurate Sync flag reduces aliasing tremenously for hard sync
-- now allows control of phase of every harmonic
-- made LFSWO, specialized for LFO use (normalizes output between -1 and 1, etc.)

Envelope module:
-- now can be used at audio frequencies (as oscillator) with far less aliasing
-- several bug fixes

Delay module:
-- now has Stereo output
-- up to 3-4x faster

Sample/Hold module:
-- makes previous output available, allowing smoothing with fades, s-curves, etc.

Example Patches:
-- added several dozen more, now 278 in total
-- edited many for clarity and to demonstrate new features
-- added "challenge" test questions to many
-- added Channel defaults (see above) to many
-- converted to use new features (eg, history instead of 1-sample Delay modules)

Formulas:
-- support string values
-- new history feature gives delays of 1 or more samples, for feedback loops, writing your own filters, etc.
-- fixed some bugs
-- user variables now must be lower-case
-- new SumVoices() meta-function allows patch to access any variable in all playing voices

Oscilloscope Window:
-- supports numeric/string/keyword displays as well as graphs




Find out more, and get the free download, at moselle-synth.com .

Post

Moselle Stand-Alone IDE Alpha release #10 now available--free


Moselle is a general-purpose synthesizer that works like a modular synthesizer. It supports classic subtractive synthesis, additive, FM, Wavetable, and many more paradigms. Instead of being patched with a GUI, though, it has an actual, simple, programming language. This makes it easy to do things that are nearly impossible with competing systems.

Find out more, and get the free download, at Moselle Modular Synthesizer .


Changes for this release are as follows.

Wavetables:
  • a Wavetable Editor that lets you edit a wavetable a bit like a paint program
  • a Wavetable Oscillator that uses the resulting wavetables
  • besides its novel wavetables, also has 100+ inspired by the Ensoniq Transwaves in the Fizmo, MR Series and other models... if you liked those, now you can study them, tweak them, use the results with far higher fidelity and use however you want in your patches
Oscilloscope:
  • now has much cleaner output in the real-time Spectrum Analysis window
  • no longer delays MIDI event processing while it's calculating that Spectrum Analysis
Tutorial Patches:
  • as with all other parts of Moselle, there are dozens of patches letting you see, hear, and play with every feature of the above changes. Now 280+ tutorial patches in total.
Bug Fixes:
  • Moselle is pretty stable but a few bugs were found and fixed!


Find out more, and get the free download, at Moselle Modular Synthesizer .
Image

Post Reply

Return to “Modular Synthesis”