Synthesix preview release

Synthesix preview release

by Grauw on 31-08-2014, 21:02
Topic: Music
Languages:

Grauw just released a preview version of Synthesix, a synthesizer for MSX sound chips. It lets you play and tweak your MSX sound chips in real-time, using external MIDI controllers and DAW software. It was already demo'ed before on the MSX fair in Nijmegen and on Sander's MSX party, but now everybody can play around with it.

Patches are edited in a modular sound design paradigm. This architecture lets you insert modules which perform various functions into the control chain between your MIDI keyboard and the sound chip. This gives you great and flexible control over the sound that is played.

This preview release is far from finished and mostly there to show the concept in action and let you experiment creating some sounds. Functionality is limited; e.g. you can’t add/remove modules, or load/save patches. However you can re-connect the preset patch at will and already generate some pretty neat effects. Since this is a preview version, questions, suggestions and feedback are really welcome. It would also be nice to see some Youtube videos, so be sure to post them in the Synthesix forum thread too!

The download comes with the manual and source code and is available on Grauw's Bitbucket.

Relevant link: Synthesix preview release

Comments (28)

By edoz

Prophet (2127)

edoz's picture

31-08-2014, 22:20

Wow! how cool!

By Retrofan

Paragon (1214)

Retrofan's picture

01-09-2014, 20:52

Cool project Grauw, well done! Can't wait to use the OPL4 as well in your next release and ofcourse the other sound chips Cool

By MsxKun

Paladin (892)

MsxKun's picture

01-09-2014, 22:12

I have to try it this weekend Big smile
Can't wait to see how it sounds and I wonder how the MIDI behaves.

Any plan for SID? Evil

By o.geerdink

Hero (526)

o.geerdink's picture

02-09-2014, 16:18

Wow can´t wait to try it... probably on sunday!

By FiXato

Scribe (1508)

FiXato's picture

02-09-2014, 16:41

Good to see you actively coding for/on MSX again Grauw Big smile

By Grauw

Enlighted (7961)

Grauw's picture

02-09-2014, 20:43

@MsxKun SID isn’t the highest on my priority list, but eventually…

By Daemos

Paragon (1669)

Daemos's picture

04-09-2014, 13:39

but wait. Don't we allready have the SID midibox? the one chip microcontroller that can control up to 16 SID's via MIDI.

By MsxKun

Paladin (892)

MsxKun's picture

04-09-2014, 18:26

Daemos wrote:

but wait. Don't we allready have the SID midibox? the one chip microcontroller that can control up to 16 SID's via MIDI.

Well, same as we have lots of synths. Korg, Moog, Roland, Yamaha... The fun is to make the MSX do the job.

By Daemos

Paragon (1669)

Daemos's picture

04-09-2014, 19:27

Quote:

Well, same as we have lots of synths. Korg, Moog, Roland, Yamaha... The fun is to make the MSX do the job.

ok fair enough Smile

By MsxKun

Paladin (892)

MsxKun's picture

07-09-2014, 13:40

Finally I'm trying it on my MSX2.

It works and sounds great when i use my MSX's keyboard, but using Music Module for MIDI input it guess messy. Seems like it doesn't process some note off, so the notes stay playing forever. Then, I miss a Panic button to mute everything.

I'll keep playing with it for a while.

By Grauw

Enlighted (7961)

Grauw's picture

07-09-2014, 15:10

Sorry, I forgot to document the panic button: SHIFT-F5 (or All Notes Off MIDI message).

Odd that it misses notes though. Reception from the MIDI interface is quick enough, in fact an overflow error causes the program to halt (intentionally) so you’ll definitely notice if it misses one Smile. I’ve experienced some missed notes myself, but attributed them to some emulator issue. I’ll take a closer look.

Let me know your experiences, suggestions and ideas!

By MsxKun

Paladin (892)

MsxKun's picture

07-09-2014, 21:42

Missing some note on a 3'5mhz Z80 is easy, specially if you also send some data to the VDP.
Probably the only way to totally avoid it would be if the MIDI interface itself had its own buffer.

By Grauw

Enlighted (7961)

Grauw's picture

07-09-2014, 23:04

MIDI data rate is 3125 bytes per second, 52 MIDI bytes per 60Hz interrupt, approx. 1145 cycles per byte… the MSX can handle it with plenty room to spare Smile. Also I really made sure these parts are optimised, custom ISR and all, interrupts are enabled all the time…

But! I just tested with the Philips MIDI and SFG-MIDI, and there’s definitely a bug present with both of them. It’s not just the occasional stuck note, but messages get lost all the time. After bisecting 6 times (aah~~ DVCS Smile)… Aha! I introduced a bug in the MIDI running status processing! Hadn’t discovered it sooner because my development environment does not use running status.

I fixed it, a new version 0.1.1 is available for download.

p.s. When I said earlier that overflow causes an intentional program halt (to ensure that it never happens), I was wrong; I just noticed I implemented this overflow check for MSX-MIDI and SFG-MIDI, but not for Philips MIDI… I’ll have to add that :).

By MsxKun

Paladin (892)

MsxKun's picture

08-09-2014, 15:27

Grauw wrote:

MIDI data rate is 3125 bytes per second, 52 MIDI bytes per 60Hz interrupt, approx. 1145 cycles per byte… the MSX can handle it with plenty room to spare Smile. Also I really made sure these parts are optimised, custom ISR and all, interrupts are enabled all the time…

It's not the speed of the byte incoming, is the moment where it comes Smile Usually. Is the BIOS activated? Cause when you use the BIOS you loose a bit the control and it can deactivate interrupts for a moment. But if keep interrupts activated and the BIOS under control, and you send data to VDP in little steps, all should be reasonabily ok. So....

Quote:

But! I just tested with the Philips MIDI and SFG-MIDI, and there’s definitely a bug present with both of them.

... it must be that then Smile

Quote:

I fixed it, a new version 0.1.1 is available for download.

I'll try it around weekend. I need to work on my stuff. I'm sure it works better now, anyway.

By hit9918

Prophet (2844)

hit9918's picture

09-09-2014, 22:19

It is so much fun, the piano emulator, when every keypress makes a new channel going Smile
But there is an issue, when I press the same key again and again C C C C, every time round robin is allocated a new channel. It is like I had banged 4 different C strings, but there should be only one.

By Grauw

Enlighted (7961)

Grauw's picture

09-09-2014, 23:52

hit9918: Glad you’re having fun Smile. In later versions you will be able to select an allocation algorithm, also you will be able to set the polyphony to 1 (monophonic). But for now indeed it is assigning the free notes in round robin so that the envelope release is maximised and doesn’t get cut off. It doesn’t make a distinction between whether you press the same or a different note.

Btw I found a bug: using BS, INS and DEL only change first polyphonic layer in stead of all of them. You can download version 0.1.2 for a fix.

Some tips for playing around:

Tip 1: Connect Sequencer8.value to SCCVoice.wave, it steps through different waves and get a pretty nice effect. I like how it sounds when you press SPACE (modulation) in time with the loudest timbre.

Tip 2: Use Sequencer8 to play arpeggios by linking SCCVoice.note to the last AttenuateAdd.value. Then change the Sequencer8’s length and step values to affect which notes are played, for example set length to 3 or 4 and the first steps to 0, 4, 7 and 12, or link them to controllers. Speed up or slow down the Sequencer8 by changing the MIDIClock.divider, e.g. try setting it to 2.

By WORP3

Paladin (803)

WORP3's picture

10-09-2014, 21:46

@Grauw, did you implement a running status on your midi in handler ? That could be the reason that you are missing notes on some keyboards. Just a thought Wink

By Grauw

Enlighted (7961)

Grauw's picture

10-09-2014, 22:27

I have, but shortly before the preview release I introduced a bug, which got fixed in version 0.1.1 Smile.

By WORP3

Paladin (803)

WORP3's picture

10-09-2014, 23:02

Perfect ! Good to read that you already thought about the running status Wink

By Grauw

Enlighted (7961)

Grauw's picture

11-09-2014, 22:49

By the way, for those who have never heard of modular synthesizers; they look something like this:

Here’s a video of one, some basics

Synthesix is of course a digital system, but its architecture is modular because you can create sounds by connecting building blocks to generate sound control signals with different effects.

By MsxKun

Paladin (892)

MsxKun's picture

14-09-2014, 14:37

I've been playing with it a little bit. The notes seems quite ok now, I can play more than one from MIDI and it works as expected Smile But only tested briefly cause the GUI seems messed. I seems I can't change values as before. Seems to ignore it and, when you try to change AD/AR Reset value, it resets (well, that seems reasonable Tongue ) Sometimes it shows some Exception error, sometimes just hang.

I tried v0.1.2 on my VG8235 with Music Module.

By Daemos

Paragon (1669)

Daemos's picture

24-09-2014, 22:49

So uhm Grauw Wink just curious: do you actually own a modular synth?

Going to play around with synthesix soon. Lets see If I can make some cool sounds with it.

By Grauw

Enlighted (7961)

Grauw's picture

24-09-2014, 23:08

@Daemos No, I wish I did, but it’s quite an expensive hobby Smile.

@MsxKun Very odd, I will check on my NMS8245 with music module.

By Daemos

Paragon (1669)

Daemos's picture

25-09-2014, 14:06

Quote:

No, I wish I did, but it’s quite an expensive hobby

Interested in playing around with a real one for a day?

By Grauw

Enlighted (7961)

Grauw's picture

25-09-2014, 19:45

Of course! Smile

By Daemos

Paragon (1669)

Daemos's picture

25-09-2014, 21:39

Quote:

Of course! Smile

If you happen to be close to the hague one friday, saturday or sunday contact me.

By Grauw

Enlighted (7961)

Grauw's picture

07-10-2014, 21:00

MsxKun wrote:

But only tested briefly cause the GUI seems messed. I seems I can't change values as before. Seems to ignore it and, when you try to change AD/AR Reset value, it resets (well, that seems reasonable Tongue ) Sometimes it shows some Exception error, sometimes just hang.

Hey MsxKun, I tested and reproduced. This happened when you use the BS, INS and DEL keys to modify constant input values on modules with outputs (most of them Smile). It was a last-minute feature and clearly I didn’t test it well enough Smile.

Fixed in 0.1.3, get it here.

By Meits

Scribe (5347)

Meits's picture

01-02-2016, 17:42

Could you compile it so that the older MegaflashROM SCCs (the ones with 512K and a real SCC) can handle it as well? OPF.COM doesn't recognize my MegaflashROM if I want to flash this ROM (other ROMs flash fine, so I guess it's a fawlty error handler in OPF.COM).

My MSX profile