Jump to content

Key to AOUT Function?


gavgomad
 Share

Recommended Posts

Hey TK and all....

This was an interesting quote that I thought I might break out into a separate topic from the MB303 thread in Design Concepts....

It shouldn't be so complicated to add a K2A (Key-to-AOUT) option as well (ca. 10 lines of code). It could also forward the gate, e.g. of the first oscillator, and the glide flag. The only reason why I haven't added this yet is, that I want to collect the requirements before adding such a feature. This should ensure that the implementation is universal enough... however, your requirements are still more simple than expected. Any other functions required? ;-)

TK, this is exciting news to me. As I have mentioned elsewhere, I have dreams of not only turning SID V2 into a controller for a modular synth, but also for a dedicated dual oscillator moog-based synth with patch memories (using all of the LFO and EG facilities of the SID - the arpeggiator etc. are exciting possibilities as well!) - essentially like a Moog Source....

In terms of the features for Key to AOUT.... Realizing some are less doable than others (or simply NOT doable! ;-P)

1) The glide flag for sure... This is more of an issue internal to the SID software itself, as the issue is how the EGs react?

2) Portamento - would be nice if this could be integrated into the KeyCV signal as well, borrowing from the values stored in the SID patch.

3) Multiple AOUTs (or simply an input into the Matrix) - So far, I can see driving a couple of oscillators, maybe three, and it would be nice to feed each separately (ie. pitch derived from their own CV output - to which KeyCV with or without portamento, pitch bend etc. can then be applied).

4) Transpose - Again, from the SID patch data - for driving and storing separate oscillator info, a transpose function would be nice - allows you to use the straight AOUT knobs more as a fine tune? This may not be necessary depending on how many steps are in the AOUT knob functions - you just need to be able to dial up with sufficient accuracy....

It might even be easier to interpolate the Transpose / Fine data from the SID oscillator data to AOUTs 1 and 2, and possibly 3 where a third oscillator is used? Maybe 3 and 4 are realized by flags for voice control - OSC1 to AOUT1, OSC2 to AOUT, OSC3 to AOUT3 and just turn on how many you need? Only one external oscillator, just use one....

Just some thoughts, of course.... Much of the above may be far more detailed than TK wants to get into with the SID software.... ;-)

Gavin.

Link to comment
Share on other sites

There are two possibilities:

1) either forwarding 6 independent transposed/sequenced/arpeggiated key values to CV outputs

2) or forwarding 6 independent oscillator frequencies to CV outputs

Option 1 would already be useful for most cases (especially for TB303-like hardware, as glide is generated by an analog circuit and controlled from a digital pin)

Option 2 would give you a lot of additional possibilities, as it would include the portamento/glide/glissando effect, Pitchbender, Finetune/Detune and the modulation matrix output. You can turn your analog synth immediately into a modulation monster! ;-)

Drawbacks of Option 1: none

Drawbacks of Option 2: the appr. SID oscillator needs to be disabled, as the SID frequency register doesn't work linear. However, you can still control your SIDs from a second, third or fourth core, or from a second MIDIbox

Digital gate options:

a) gate/glide and accent of OSC1 Left and Right channel (makes 6 digital outputs)

b) the 6 gates of the 6 oscillators

Option a) would be perfect for TB303-like hardware, these are the control signals which are going into the analog domain. But you could "only" control two synth modules per core

Option b) would give you exactly the same features as with 6 SID oscillators (however, the SID itself would be silent... or it shouldn't be stuffed at all)

Means: fat Lead patches with multiple modulation possibilities, punchy drum synth, two basslines with additional modulation possibilities, and a multi engine for polyphonic sounds (or 6 independent voices) with dynamic or static voice allocation.

Hm, would be interesting how a Minimoog sounds when it is controlled from a wavetable or fast C64-like arpeggiator ;-)

These are the changes I could include into the firmware very easily. In fact for Option 1) I only need to copy the key value to the AOUT register, and for Option 2) I only need to select a linear frequency mapping and copy the oscillator value to the AOUT register

The flags for option a) and b) already exist as well, and only need to be copied into the AOUT_GATE register

All options would still allow to forward the SID filter value to CV outputs in addition. By doing so, the external synth filter (or any other CV source) would be part of the mighty modulation matrix

Thats all what is possible without much effort, only question: should it be a soft- or hardoption. Means: is it ok for you to build a new .hex file and upload it to the core in order to configure the CV routing, or is it really required to control this from a menu page during runtime (which increases the effort at my side dramatically, and makes it less flexible)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hm, would be interesting how a Minimoog sounds when it is controlled from a wavetable or fast C64-like arpeggiator ;-)

yes, yes!

These are the changes I could include into the firmware very easily. In fact for Option 1) I only need to copy the key value to the AOUT register, and for Option 2) I only need to select a linear frequency mapping and copy the oscillator value to the AOUT register

hmmm can you make linear mapping an option too?  perhaps that's what you meant already...

Thats all what is possible without much effort, only question: should it be a soft- or hardoption. Means: is it ok for you to build a new .hex file and upload it to the core in order to configure the CV routing, or is it really required to control this from a menu page during runtime (which increases the effort at my side dramatically, and makes it less flexible)

Best Regards, Thorsten.

if you were to provide these several options with compile time switches (i think that's what you are suggesting), that would be just peachy!  thanks for looking at this possibility.  it's easy to imagine a supersid with sids, swinsid, and analog modules, wheeee...

Link to comment
Share on other sites

It sounds like the question is between building the features into the existing SID v2 (ie. it's in the code running on EVERYONE's SID, whether used or not), or increasing the feature set and compiling a different version of the SID v2 software with substituted code for sending all the oscillator data to the AOUTs....

I think that in my response, I am in agreement with jimp (if I'm reading you correctly, Jim! ;-P).... I would have no problem compiling a .hex file selecting the "AOUT" option I want. I would willingly compile for the added features!

Wow TK, I expected that incorporating such features would be a monumental, if not impossible task! To say that I love the way you think is an understatement! ;-)

Gav.

Link to comment
Share on other sites

hrm. I've been pouring over the source for a couple of hours at a time over the last few days.

I cannot figure out where to even begin to implement the modded code to forward notes to the aout module.  ???

I'm not much of a coder.  :P

Perhaps I am jumping the gun, and TK is already doing the code prep. Maybe he might still need to know more details of what we are looking for, Gavgomad.

It would be cool if there was something documented like "insert this code into source file "X" for option A, or insert this code into source file "X" for option B".

;)

Link to comment
Share on other sites

It would cost me more time to describe the required changes, than doing them by myself (expected effort: ca. 30 minutes)

I'm planning to integrate the K2A options this weekend, and test them with the analog synths of a friend to ensure that they are working perfectly before releasing any unusable code.

Best Regards, Thorsten.

Link to comment
Share on other sites

I've added the code, it's available in RC15

Unfortunately I had no possibility to check all the new functions with analog synths yet (vacation time...), however the waveforms are looking good on the scope.

Channel assignments for K2A and/or O2A + the gates have to be done in setup_*.asm, please read the comments

In addition, the appr. function has to be activated in the ENS->EXT menu to get it working

If you find the configuration too complicated, just let me know about your usecase.

Example Configuration: two analog synth modules should act as two basslines. They don't offer a special glide input, therefore the O2A function is used for a digital glide/slide/portamento function.

In addition to the frequency, Filter CutOff, Resonance and Pulsewidth should be modulated from MBSID

Recommented Configuration:

[tt]

#define DEFAULT_J5_FUNCTION     3

#define ENABLE_AOUT <number of your AOUT module: AOUT=1, AOUT_LC=2, AOUT_NG=3>

#define DEFAULT_F2A_CUTOFF_L_AOUT       1

#define DEFAULT_F2A_RESONANCE_L_AOUT    2

#define DEFAULT_F2A_CUTOFF_R_AOUT       3

#define DEFAULT_F2A_RESONANCE_R_AOUT    4

#define DEFAULT_P2A_OSC1_L_AOUT         5

#define DEFAULT_P2A_OSC1_R_AOUT         6

#define DEFAULT_O2A_OSC1_L_AOUT         7

#define DEFAULT_O2A_OSC1_R_AOUT         8

#define DEFAULT_GATE_OSC1_L_OUT         1

#define DEFAULT_GATE_OSC1_R_OUT         2

[/tt]

Ensure that all other assignments are decactivated (= 0)

After the firmware has been uploaded, go into the ENS->EXT menu, and activate F2A, P2A and O2A

Adapt the Min/Max range of the filters in ENS->FIL

Thereafter store the ensemble

Best Regards, Thorsten.

Link to comment
Share on other sites

Wow.... That's all I can say TK.... Well, a hearty THANK YOU as well!!! ;-)

The modulation possibilities with the SID core are mind-boggling.... Although I am still slowly amassing the guts for my 8x6582/3372 Wilba Beast, I seriously think I need to get a core and AOUT going to explore the possibilities of this. As I say, I already have a couple of reliable Moog Oscillators going, and a moog filter mostly complete, but what really would be fun is to fire up the ol' ARP 2600 which I've been restoring for a friend of mine.... The possibilities are limitless, and that's BEFORE you consider the arpeggiator and wavetable functionality!!

You've gone way beyond expectation on this little side venture, TK! Again, a HEARTY thanks!!! :-)

Gav.

Link to comment
Share on other sites

Awesome!  ;D

I'm going to implement a few modifications to my soundlab minisynth. Need to add a CV inputs for external control on the VCF, AR generator, and the VCA. This should sound sweet! An analog synth driven by a 303 engine. Should sound mighty warm!

THANK YOU, TK!  :D

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...