Jump to content

MIDIbox SID V2 Release + Feedback


TK.
 Share

Recommended Posts

Hi Rutger,

6 voice polyphony is handled internally by each core seperately for multi engine patches.

You are talking about some kind of global polyphonic mode (I call it "super-poly"), in which one core manages the voices of all SIDs connected to master and slaves.

This mode has been requested multiple times, and I'm sure that I will implement it sooner or later. But it won't be part of the first MBSID V2.0 release, as I have to do some evaluations first (and for these evaluations I need a complete firmware).

I especially have to check, if under full load ECAN messages can be broadcasted to all slaves without handshaking - this is a requirement for fast access to oscillator voices. If this doesn't work stable enough, super poly will propably add a latency of 1..2 mS

I think that this currently isn't a big impact on your configuration. You are already able to do a lot of great things with 8 moog filters connected to the audio output of each SID. Just only the availability for a poly mode with seperated filter handling will be available later (maybe end of this year)

Best Regards, Thorsten.

Link to comment
Share on other sites

  • Replies 341
  • Created
  • Last Reply

Top Posters In This Topic

Hi again Thorsten! :O)

I just thought; this super-poly thing you're talking about, is this a mode that would work just like any other oldschool analog synth from the 80's with 8 voices?... I mean, that you can play the 8SID monster polyphonically vith dynamic allocation of up to 8 voices? (meaning each SID is considdered a seperate voice)...

I sure hope this will be possible because that is probably the most useful configuration for me B-) ... I've always dreamt about a SID synth with 8 voices.

And about those 1-2 ms... no big deal really is it?... MIDI itself seem to have some latency between noteon messages. In fact such slight variations are what makes analog synths so special... small timing irregularities etc...

and IF you implement the super-poly mode, PLEASE PLEASE PLEASE also include a UNISON mode for this configuration!!!!!! ... UNISON is the total joy of older KORG synths, and the more "latency" between voices fired off only add to the magic... believe me! ;O) 3OSC - 8voice unison = 24 oscillator unison!!!! WOOOOOW! :OP

BTW. I'm hooked up for the 8SID PCB now, so I'll soon be participating in testing and idears again Thorsten :O)

Link to comment
Share on other sites

If by "UNISON mode" you mean play each of the four SID engines simultaneously from the same note events, then you can do that now in V1, and do it with even less latency in V2, since all PICs receive the same MIDI In. Just configure each SID engine to the same MIDI channel  ;D This actually sounds awesome when using the Multi engine, as you then get 6-note polyphony and can detune or transpose each SID engine to layer/fatten the sound (i.e. four oscs per note).

Link to comment
Share on other sites

Hi Razmo,

yes, super-poly isn't a big deal, but there are about 1000 other features I want to add to the first final release which are also cool, and also easy to implement. Step by step w/o hurry - I'm young, I've the time... ;-)

Full SysEx Implementation is already available for the lead and multi engine.

There is no user-friendly documentation, but as you are a programmer:

The SysEx strings are listed in midibox_sid_sysex_implementation.txt

The SysEx structure in app_defines.inc, search for "Patch Record Structure"

Most important for Sound Diver handling is the capability to divide a 8bit value into two 4bit values, because the sysex data part consists of 1024 nibbles for a 512 byte patch

Best Regards, Thorsten.

Link to comment
Share on other sites

Thorsten: hmm... nibbles... well I'm certain that Sounddiver can decode that, just hope it will not pose too much of a hassle... I assume the reason for the format is 8 bit values right?

With regards to the UNISON feature, just remember that having a bit of "sloppiness" in the triggerings can add a lot of fatness to the sound... maybe it's worth experimenting with a parameter that will offset the voices by a set amount? ...

Another thing (don't know if I've asked this before): Will it be possible to control the oscillators of a single SID independently from three different MIDI channels? ... To me this is very important since NO real synth has this capability that I know of... one of the most used features of the SID tunes from the past is when two channels are playing different melodies, and one is either sync'ed or Ringmod'ed to the other... the melodic clangy results are much of the C64's charm from back then, and something I'd really like to be able to doo.

Link to comment
Share on other sites

Most of your requests are already implemented! :-)

See the user manual and listen to the sound examples: http://www.ucapps.de/midibox_sid_manual.html

Unisono: search for detune. Offset: search for phase offset and delay

Independent control of oscillators is possible with the multi engine. The voices are dynamically allocated, but especially for ring/sync effects I've added an optional static allocation. So: yes you can do this, but the gate of the third oscillator needs to be controlled from a seperate MIDI channel. By enabling GSA, the gate will stay active once it has been triggered the first time.

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

Hi Thorsten,

thanks for the reply on the super-poly mode!

I've just finished the design of one big PCB in Eagle and sent it to Gold Phoenix PCB for manufacturing. It contains:

-8 SID's (jumpers to select the proper voltage and caps for different chips)

-4 cores

-the master core with 8 banksticks, display connections and step B surface

-4 rows of AOUT_LC's (resulting in 12 CV outputs at 12-bit resolution)

-8 independant Moog filters with CV controlled cutoff and resonance (!) (however to keep the number of AOUT_LC's down the filters share the resonance CV in pairs (no need for differences in resonance between left and right channel))

-Output stage/mixer and headphone amp

-Custom PSU (+12V/-12V/+9V/+5VDigital/+5VAnalog seperate analog and digital grounds)

When the hardware is finished I'll have to do some small modifications to get the AOUT_LC's set to the 12-bit resolution for every output (and not the 2*8 or 1*12/1*4). When I have it working I'll be happy to help out with experimenting and programming the superpoly mode!

Greetings,

Rutger

Link to comment
Share on other sites

Hi Thorsten,

first of all, thanks for the new firmware :) Very nice indeed !

Now I have a little problem with the OSC Waveform button....it doesn't work ...

I have the new PIC18F4685 and the latest BETA...the button is not working...so I uploaded the old firmware again...V1.74685...the same result...

Unfortunately I can't try it with the old PIC because of the 4 cut datalines of the LCD (D0-D3) etc.

I haven't changed anything ,so my question is, if this is a bug in the firmware? I checked all connections but everythings looks just fine...

Thanks for your answers :)

Regards Axel

Link to comment
Share on other sites

Thanks for your fast answer...and yes, you are right....sorry ;)

The button works now....It was my mistake....I had just to resolder the OSC Waveform on the back of the PCB...

I was wondering why it had worked before, but nevertheless now itworks fine again...

Go on with your good work ;)

Best regards,

Axel

PS: Before I forget it... will there be a function where you can delete a patch? So you can right start with "nothing" , all parameters "0"?

Link to comment
Share on other sites

Before I forget it... will there be a function where you can delete a patch? So you can right start with "nothing" , all parameters "0"?

Just press the SHIFT button (formerly called LINK button), and then the button below "Init Patch" (it is the fourth select button so far I remember)

Of course, parameters won't be zeroed - but they will be set to useful initial values. Only one oscillator is used, all modulators disabled, etc.. you will see and like it :)

I would propose to go through the "first steps" guide, it gives you some hints about the general use model: http://www.ucapps.de/midibox_sid_manual_fs.html

Best Regards, Thorsten.

Link to comment
Share on other sites

The patch initialisation time is mainly limited by the BankStick bandwidth, there is no way to improve this anymore (it's ca. 30 mS for 512 bytes)

But the good news is, that due to the fact that slaves are connected via ECAN, the MIDI bottleneck (200 mS for 512 bytes) doesn't exist anymore - means: a slave is configured within the same time! :)

In both cases "gapless playing" is not guaranteed - the only chance is to use a MIDI sequencer which allows to define a negative delay for program changes - like Logic Audio

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

Hi Timofonic,

I removed most of the direct .mp3 links from my homepage to reduce the traffic, because too many people are using tools which download the complete website. Some of the guys don't hesitate to update their "backup" periodically --- this is annoying! complain.gif

Best Regards, Thorsten.

Link to comment
Share on other sites

Beta7 now offers integrated SID player support - but there is an issue with Windows XP! :-(


  o integrated support for ASID protocol, which has been originally
    developed for the SIDstation to replay .sid files.
    (see also http://www.midibox.org/forum/index.php?topic=2038.0)
    Only the master core (Device ID 00) will play SID tunes!
    Nice visual effect: the LED matrix of the CS shows three animated
    meters whenever a gate flag of an oscillator is set.
    SID player mode is automatically enabled once an ASID stream is
    received. It can be exit by stopping the player on the PC, and
    pressing the MENU button

    Unfortunately it turned out, that there is currently no SID player
    available which can replay .sid files properly via MIDI.

    - SIDplay (http://www.d.kth.se/~d93-alo/c64/spw/sidplayw.html)
      Perfect integration, but plays tunes too fast under WinXP.
      Works fine under Win95/Win98/WinME. Not tested under Vista
    - ASID (http://www.sidstation.com/sidsupport.php)
      Crashes under WinXP once the tune should be played
    - ASID XP (http://www.sidstation.com/files/asid_xp_1.0.zip)
      Tunes played correctly, but the MIDI stream is corrupted at
      the very beginning when the player is started. Accordingly the
      sounds are not properly initialized.

    Workaround: start a tune with SIDplay (for proper sound
    initialisation), thereafter play it with ASID XP
[/code]

Best Regards, Thorsten.

Link to comment
Share on other sites

Fantastic!

This is one of those features that I'd hope you'd sneak in someday!

ASID XP works most of the time for me (using WindowsXP) and occasionally won't play it properly from the start, i.e. if I play Terra Cresta after some other SID file then it plays it but the volume is zero. (I guess that's what you mean by the sounds not being properly initialized). But if I then stop it in ASID XP, press "Menu" button on the MB-SID and play it again in ASID, it starts up fine. (But I have no idea if the "sound" is correct though).

BTW, when a SID file is not being played (i.e. after you stop it) there's a huge amount of background noise that sounds identical to when the Ext In is on (even with a grounded audio input it's noisy), so perhaps as a "feature" the SID Player should permanently set this flag off.

Link to comment
Share on other sites

ASID XP works most of the time for me (using WindowsXP) and occasionally won't play it properly from the start, i.e. if I play Terra Cresta after some other SID file then it plays it but the volume is zero. (I guess that's what you mean by the sounds not being properly initialized). But if I then stop it in ASID XP, press "Menu" button on the MB-SID and play it again in ASID, it starts up fine. (But I have no idea if the "sound" is correct though).

By pressing the "Menu" button, the SID registers will be initialized with the selected patch parameters.

Once you restart ASID, the sequence continuous to play, but with the wrong sound settings, as the very first SysEx stream is corrupted (this can be monitored with MIDI-Ox).

When you select a different patch (e.g. A059: A Stormy Day), you won't probably hear any sound until the ADSR registers are rewritten with new data.

BTW, when a SID file is not being played (i.e. after you stop it) there's a huge amount of background noise that sounds identical to when the Ext In is on (even with a grounded audio input it's noisy), so perhaps as a "feature" the SID Player should permanently set this flag off.

Good idea, I will add this.

In long term, I'm also planning to implement the F2A flag within the ASID parser - but such a feature has a low priority.

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share


×
×
  • Create New...