gavgomad Posted December 18, 2007 Report Share Posted December 18, 2007 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. Quote Link to comment Share on other sites More sharing options...
TK. Posted December 18, 2007 Report Share Posted December 18, 2007 There are two possibilities:1) either forwarding 6 independent transposed/sequenced/arpeggiated key values to CV outputs2) or forwarding 6 independent oscillator frequencies to CV outputsOption 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: noneDrawbacks 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 MIDIboxDigital gate options:a) gate/glide and accent of OSC1 Left and Right channel (makes 6 digital outputs)b) the 6 gates of the 6 oscillatorsOption 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 coreOption 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 registerThe flags for option a) and b) already exist as well, and only need to be copied into the AOUT_GATE registerAll 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 matrixThats 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. Quote Link to comment Share on other sites More sharing options...
bugfight Posted December 18, 2007 Report Share Posted December 18, 2007 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 registerhmmm 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... Quote Link to comment Share on other sites More sharing options...
gavgomad Posted December 19, 2007 Author Report Share Posted December 19, 2007 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. Quote Link to comment Share on other sites More sharing options...
t_xen Posted December 19, 2007 Report Share Posted December 19, 2007 I would have no problem recompiling a new .hex file as well. :DI have built a cigar box sized synth and would like to use it as a bassline type of machine. ;D Quote Link to comment Share on other sites More sharing options...
t_xen Posted December 25, 2007 Report Share Posted December 25, 2007 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. :PPerhaps 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". ;) Quote Link to comment Share on other sites More sharing options...
TK. Posted December 25, 2007 Report Share Posted December 25, 2007 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. Quote Link to comment Share on other sites More sharing options...
t_xen Posted December 25, 2007 Report Share Posted December 25, 2007 TK......It's Christmas. Take your time. :) Quote Link to comment Share on other sites More sharing options...
TK. Posted December 30, 2007 Report Share Posted December 30, 2007 I've added the code, it's available in RC15Unfortunately 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 workingIf 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 MBSIDRecommented 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 O2AAdapt the Min/Max range of the filters in ENS->FILThereafter store the ensembleBest Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
gavgomad Posted December 31, 2007 Author Report Share Posted December 31, 2007 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. Quote Link to comment Share on other sites More sharing options...
t_xen Posted January 1, 2008 Report Share Posted January 1, 2008 Awesome! ;DI'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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.