Jump to content

MB SID with patchbay -> semi-modular Korg MS-Style Synth?


SIB
 Share

Recommended Posts

Is it possible to built a Korg MS-20 style MB SID?

As the SID is mainly an hybrid design (digital control/analogue filters, ADRS) there do not seem to be too many options.

After a look into the documentation (did not really understand anything, just trying to figure out what's written next to the pins) of the SID I only found:

Audio In

Audio Out

POD X (for paddles)

POD Y (for paddles)

The matrix is used as internal patchbay, but I did not understand, if patching is only possible within the same SID or also between SIDs. If it is the latter, are those patch-connections analogue CV/signal or virtual?

Aditionally there is the CV option for the MD SID, but as far as I understand this is only for controlling external analogue equipment and does not touch the Oscillators/Filters/Amplifiers of the SID itself.

So to me it does not seem that it's possible to build a real (semi-)modular MBSID, although a look-alike might still be possible and nice looking...

Is that correct?

Edited by SIB
Link to comment
Share on other sites

The magic of TK's SID implementation is that he added a few tricks in software, like 6 LFO's and 2 Envelope generators. Those are mapped via the modulation matrix to functions of the SID chip that can be controlled externally. It makes no sense to create a patchpanel for those functions, as they are not at CV/gate specs and as far as I know not compatible with anything.

If you want to build a SID synth that is controllable with CV/gate, it's theoretically possible to do so by combining the Midibox SID witch a CV/gate to MIDI converter; your CV inputs will have to be converted to MIDI and then forwarded to the SID chip(s). I don't know if such a thing exists yet. The SID is a nice synth, but I doubt it's special enough to develop something like I just envisioned. Probably more versatile to just build some analog VCO's, VCF's, LFO's, Envelopes and whatmore.

Edited by NorthernLightX
Link to comment
Share on other sites

Thanks, i did not know, that the LFOs used for the Matrix were software.

Is the LFO section on the CCS also controlling those software LFOs or the LFOs on the ones in the SIDs?

There is a vid on yourtube where some guy demonstrates a MDSID.

Around 2:05 he says that it would have "three CV Inputs + expression pedal Input that can be assigned to pretty much any parameter".

Is the expression pedal input possibily the "paddle input" of the SID?

Is this the solution you were talking about?

This is not standard, is it? The usual CV-options ( http://www.ucapps.de/midibox_sid_manual_cv.html ) include only the possibility to control external equipment via CV, but not to control the SID via external equipment?

Edited by SIB
Link to comment
Share on other sites

The expression pedal is probably a MIDI function, but I don't know for sure. The "Paddle" inputs on the SID are indeed analog inputs, and were designed to be able to accept analog Pong style joysticks on the C64. I'm pretty sure these analog inputs are NOT used in the MBSID though.

I would suggest reading everything on ucapps.de. I just looked at the feature list and found this:

5 "knob" functions. Sources: MIDI/Control Surface/Analog Inputs (CV Inputs); Target of each knob: 2 of up to 256 sound parameters with configurable min/max range

So apparently the software (not the SID itself!) can handle 5 CV inputs, freely routable. These are directly connected to the CORE module. Look at the KNoBs menu section of the MBSID manual for more info.

Edited by NorthernLightX
Link to comment
Share on other sites

The expression pedal is probably a MIDI function, but I don't know for sure. The "Paddle" inputs on the SID are indeed analog inputs, and were designed to be able to accept analog Pong style joysticks on the C64. I'm pretty sure these analog inputs are used in the MBSID though.

I would suggest reading everything on ucapps.de. I just looked at the feature list and found this:

So apparently the software (not the SID itself!) can handle 5 CV inputs, freely routable. These are directly connected to the CORE module. Look at the KNoBs menu section of the MBSID manual for more info.

yes, you can hook 5 potentiometers or controll voltages to control mbsid

Link to comment
Share on other sites

Would the use of the LPC17 core in V3 add more CV options?

That depends on what Thorsten will code :). All CV inputs are handled by the core, so if he decides that more CV inputs are needed (and there are no processor or other hardware limitations) it might happen. There will probably be a feature request thread once designing starts.

In the meantime, if you don't mind adding an extra core, you could use Midibox CV as CV input, and send the events via MIDI to the Midibox SID.

Link to comment
Share on other sites

That depends on what Thorsten will code :). All CV inputs are handled by the core, so if he decides that more CV inputs are needed (and there are no processor or other hardware limitations) it might happen. There will probably be a feature request thread once designing starts.

In the meantime, if you don't mind adding an extra core, you could use Midibox CV as CV input, and send the events via MIDI to the Midibox SID.

As far as I know MB CV only has 8 CV outputs (and 8 gate outputs), but no inputs...

MB CV V2 plannings do not seem to inclute CV inputs either.

Via the expansion port of the MB-6582 it seems to be possible to connect a MB CV.

Wilba wrote:"the idea was it gives the user the ability to connect AOUT modules or analog inputs (like a joystick or SoftPot)"

But it seems to depend on the chosen option. So in some cases MIDI connection to the MB CV would be better.

So MB SID + MB CV would give 5 CV Inputs + 8 CV outputs + 8 gate outputs.

On one hand that seems to be pretty impressive, on the other hand this would all be software.

In the end that would be more like iMS-20 with MS-20 Legacy Midi Controller than a "real" semi-modular.

Maybe I just have to scrap the idea, because it would require a totally different and new layout.

Link to comment
Share on other sites

OK, I read a bit in the original SID documentation and just wanted to share my thoughts with you. For the hardcore people this won't be news at all and maybe even full of faults...

Due to the hybrid-design design of the SID semi-modularity is possible, but very limited and maybe totally senseless.

To keep it simple I will only be talking about CV options, not gate (gate signals are digital anyway).

A SID has a lot of parameters that seem to be desirable to be controlable by external sources via CV.

Only digitally controllable via software are the following components:

oscillators (1-3) (pitch + PW )

Amplifier (Amplitude Modulator controlled by Envelope Generator (ADSR)) (1-3)

Filter (resonace)

Volume

Those could be controlled from external sources via patchcables and a CV/Midi-Interface. The MB SID V2 has 5 CV-Inputs, but there are 11 modulation options per SID. The theoretical maximum for a MB SID loaded with 8 SIDS would thus be 88 CV-ins!

Fortunately the SID has already some kind of CV input. There are two A/D Converters for „paddles“. (Those do not seem to be used in the current design of the MB SID). Those work with +5 Volts and have 256 Steps (8 bit) internaly, which seems to be somewhat little, but is sufficient for most parameters as the control resolutions of most of the inputs show:

oscillator pitch of the SID has 16 bit resolution

PW has 12 bit (2048 = Square Wave).

16 Steps (4 bit) for all the remaining parameters. Inlcuding the 4 parameters of the envelope generator:

Attack: non-linear fixed values not the same as Decay and Release

Decay: non-linear fixed values, same as Release

Sustain: linear but relative to A

Release: non-linear fixed values, same as Decay

filter resonance (linear steps from 0 to max)

volume (linear steps 0 to max).

For the 4-bit parameters the „paddle-inputs“ of the SID seem to make sense.

The low resolution of most of the parameters show that the use of CV-Inputs for those is quite limited. If modulation via external analogue source is not necessary, all those parameters can be controlled via the SID CS or Midi, as it is already possible with the MB SID.

Some additional Info:

The output of the 3rd Oscillator (only the upper 8 bits) and the third envelope generator can be „read out“. This „reading out“ does not mean, that there is some kind of CV output, but it works by reading reading out the register. The data in the register seems to have a real analogue origin (if not the random generator could never work), but it can only be accessed after being stored in the register. This data seems to be usable for everything. In the documentation they mention:

oscillator can be used as modulation generator (LFO) for the pitch or PW of the other oscillators, sample&hold, filter frequency modulation, vibrato etc.

envelope Generator can be used filter frequency, oscillator frequency

With MB CV it should be possible to use those outputs for CV-outs. But that does not seem to make that much sense...

On the other hand the original documentation of the SID by Commodore suguests: „SID can process external audio signals allowing multiple SID chips to be daisychained or mixed in complex polyphonic systems“.

The actual MBSID does only mixing, not daisychaining. But the latter should be possible by connecting the audio-output of one SID with the audio-input of another SID. But I haven't seen audio-inputs on MBSIDs, only outputs.

There are 4 analogue Signalpaths in a SID:

1. Oscillator 1 → Amplitude Modulator 1 → Switch 1 (Filter or bypass)

2. Oscillator 2 → Amplitude Modulator 1 → Switch 2 (Filter or bypass)

3. Oscillator 3 → Amplitude Modulator 1 → Switch 3 (Filter or bypass)

4. Analogue Input

All those are routed (the oscillators can bypass the filters via individual switches) through the same Filter (the SID has 4 different filter modes not 4 seperate Filters) and they all share a common Amplifier (Volume).

So what could daisychaining different SIDs mean?

Maybe copying the principe of an MS-20 filter section for processing an extenal signals?

Audio Input SID1 → Filter (highpass) SID1 → Output SID1 → Input SID2 → Filter (lowpass) SID2 → Output SID 2

But as Filtermodes are additive, this could also be done much easier:

Audio Input SID1 → Filter (highpass + lowpass) SID1 → Output SID1

Also splitting the different signals generated by one SID to use the filter of the second SID only on a part of the signal seems to be quite hard (maybe by an external frequency devider???) and not so usefull. Especially if more than 2 SIDs are available, because then those signals could simply be keept seperated by generating them on different SIDs.

The more I think about the semi-modual MB SID, the more sceptical I get about the concept.

Maybe I should get some sleep... Sorry for the typos though...

Link to comment
Share on other sites

In contrast to the mostly analog modular gear, the SIDs are digitally controlled and thus have limited bandwidth for register updates and sound changes...

As far as I can remember to have heard from TK, the SIDs suffer a bit (as in not good sounding) when fed too quickly with register updates, which could happen if you "overfeed" them and not limit the register change updates coming from the analog CV conversion... That is why TK. probably wants to keep the Core8s as "SID controllers" even for the next generation of the MBSID platform, and use the LPC17 to coordinate them. They are simply fast enough and there is nothing more to be gained...

I am quite sure, that the paddle A/Ds within the SIDs can not be internally wired to perform sound generation, you´d need some logic controller to convert the A/D output to register change commands.

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

In contrast to the mostly analog modular gear, the SIDs are digitally controlled and thus have limited bandwidth for register updates and sound changes...

As far as I can remember to have heard from TK, the SIDs suffer a bit (as in not good sounding) when fed too quickly with register updates, which could happen if you "overfeed" them and not limit the register change updates coming from the analog CV conversion... That is why TK. probably wants to keep the Core8s as "SID controllers" even for the next generation of the MBSID platform, and use the LPC17 to coordinate them. They are simply fast enough and there is nothing more to be gained...

:hmm:

That sounds bad...

There is a ton of information about timing and updating the registers in the documentation. I did not go into that cause it seems kind of really complicated...

I am quite sure, that the paddle A/Ds within the SIDs can not be internally wired to perform sound generation, you´d need some logic controller to convert the A/D output to register change commands.

Many greets,

Peter

What do you mean by "performing sound generation"?

With Cynthcard those paddle inputs can be used to control the filter in "real time". So to me it seems like register change commands are possible. I even think on the C 64 you can "poke" the converted input of the paddles anywhere, not only in the sound chip, but also to control sprites in the VIC or to write caracters or perform any other input for calculation in a programm. Do you mean that it depends on the other hardware that reads out the registers of the paddle A/Ds and then has to refeat it in another register in the SID? If that's the case there would be no "internal routing", but it woul not be worse than the input from any other device that is used to gather data that will be written into Registers of the SID "externaly" by the PIC? Even if the design of the MBSID is different to a C 64, the PICs should be possible to perform the same way, don't they?

Reading this data out would cause more bandwith usage in the first place. So using an external A/D controller seems to be the way to go...

Edited by SIB
Link to comment
Share on other sites

With Cynthcard those paddle inputs can be used to control the filter in "real time". So to me it seems like register change commands are possible.

Yes, but as you already wrote, the C64 CPU is also involved, reads the A->D conversion result, and sends SID register updates. It would not work "standalone" within the SID without an external microcontroller or a CPU.

As you need an external microcontroller anyways, you can use it in conjunction with its internal or some external and probably better A/D converters to get the job done... Also you´d probably want to use more than 2 CV-ins per SID... also, e.g. for the filter 8-bit is not enough resolution, it is 12-bit...

As a conclusion, i´d say your task is doable, if you

a) build a CV in box, that performs A/D conversion

b) write some microcontroller code, that reads the sampled CV values and creates and limits the register change update rates to a "sane" amount. The update rate can be quite high on the SIDs, that is why the MIDIbox MBSID is able to update the SID chips much faster than the original C64 CPU. But it is not indefinitely high. Therefore you´d need some logic to prevent "flooding" and resending the same data...

I would not compare this approach to a real analog modular board, that can take infinitesimal CV changes and reproduce the sound in realtime... "Programming" a SID must be done in cycles and you may or may not hear "zipper" noise in a filter sweep, for example.

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

Also you´d probably want to use more than 2 CV-ins per SID... also, e.g. for the filter 8-bit is not enough resolution, it is 12-bit...

Filter resolution in the SID is limited to 4 bit. That might not be "enough" compared to CV-Controlled filters, on the other hand that means that there is no need for A/Ds with higher resolution for the Filter (same for ADSR and volume, oscillator frequency has 16-bit resolution, PW 12 bit as I wrote in the longer post).

Without deeper research in the bandwith-issue:

At least one CV-in per SID with 4-bit resolution is possible. The Demoscene guys use the volume register to playback samples with those. Can the MBSID Drum engine use that technique?. Samples can also be played back using the filter registry. The limits of this technique on the C 64 was memory. Depending on the capabilitys of the PICs it might be possible to playback steady streams. This only works with the 6581.

So if there is one CV-in with 4-bit A/D per SID, this gives at least 2 possibilities:

1. Controlling any control-parameter of the SID from an external CV-Source (that's already pretty close to the original idea). Besides the low resolution this might be affected by the "zipper" sound you mentioned and thus be not that interesting.

2. Maybe more interesting: The SID could be used as a soundprocessing effect. Just put any devie through the filter/volume-sample-playback and there might come out some interesting sounds.

For the "patchbay" that would mean per 6581 SID:

1 (maybe more, have to find out) CV-input with 4-bit (maybe more for pitch or PW) A/D-converter to control parameters.

1 Audio input with 4-bit A/D converter for soundprocessign with a switch to use either the filter- or the volume-registers for playback

1 Audio output (already in the actual design)

1 Audio input to use the analogue Filter (Volume is also be applied)

Edited by SIB
Link to comment
Share on other sites

If the paddle iputs could be of any use, don't you think TK would have already written some code for them? I guess he found that the PIC already had better and/or more flexible support for analog input signals than the SID itself. His SID implementation is already way ahead of all the competition, so any future additions to the functionality will most probably be external to the SID.

The standard Midibox64 firmware acts as an analog signal -> MIDI message converter.

AIN Module

J1 J2 J3 J4: Analog inputs of the 4051 multiplexers. Have to be connected with the sliders of pots/faders, or can also be used as CV input (0V/5V), see also the MIDIbox Extensions Page.

This means 32 CV inputs with a cheap Core8 solution.

Edited by NorthernLightX
Link to comment
Share on other sites

If the paddle iputs could be of any use, don't you think TK would have already written some code for them? I guess he found that the PIC already had better and/or more flexible support for analog input signals than the SID itself. His SID implementation is already way ahead of all the competition, so any future additions to the functionality will most probably be external to the SID.

I think there is a misunderstanding. In my last post I was not writing about the internal-"paddle-input"-A/D-converter, but about the minimum requirements for an extenal solution.

You already proposed the implementation with existing MB Hardware (thanks for the link btw, I always overlooked that one). That implemenation would require software-downsampling to 4-bit to write to the registers of the SID.

You are already 2-Steps ahead of me with you implementation ideas (thanks for that).

I am still making my way throug the possibilites of the SID. I think I have to go that way, even if TK already knows about everything. That's why I wrote, that this theread probably won't be any news to the hardcore-Midiboxers, in the introduction to the long post.

Edited by SIB
Link to comment
Share on other sites

Sorry to be persistent, but the SID filter cutoff resolution is way higher than the claimed 4-bit, the 6581R1 had a full 12-bit cutoff range, some later models reduced it to 11 bits...

http://en.wikipedia...._Technology_SID

CV to MIDI conversion, which in turn would be sent to an existing MB_SID is a possiblity, but also bear in mind, that the MIDI protocol has limited bandwidth, which could cause "jumpy" updates of the filter and an aliasing effect.

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

I think there is a misunderstanding. In my last post I was not writing about the internal-"paddle-input"-A/D-converter, but about the minimum requirements for an extenal solution.

You already proposed the implementation with existing MB Hardware (thanks for the link btw, I always overlooked that one). That implemenation would require software-downsampling to 4-bit to write to the registers of the SID.

You are already 2-Steps ahead of me with you implementation ideas (thanks for that).

I am still making my way throug the possibilites of the SID. I think I have to go that way, even if TK already knows about everything. That's why I wrote, that this theread probably won't be any news to the hardcore-Midiboxers, in the introduction to the long post.

Sorry if I come across a bit blunt. I just want to point you to solutions that would require the minimal amount of effort, and use as much readily available hard- and software. Your question comes from a desire to make music ultimately, and as much fun as building this stuff is, developping something new takes a lot more time than you initially estimate.

If you have evaluated all available midibox features and still have a feature that cannot be supported by the current hard- and software, then it's time to consider making hardcore changes. Keep in mind though that there are not a lot of people on the forum capable of doing so; most people (like me) just build the modules and make a custom frontpanel and/or some changes to the code at most.

So, to answer your initial question if it's possible to build an MBSID with MS20 style patching: Yes it is, but you'll need to integrate an MB64 and the MBSID in one enclosure and hack te code of the MB64 to output the desired MIDI messages for CV input. MB64 with a Core8 is limited to 32 CV inputs. CV output is done through de addition of an AOUT module, and is limited to 8 CV outs currently. I don't think that patching the MBSID CV outs to the MB64 CV ins to control the MBSID paramenters would be a good idea though, so if that is how the MS20 works, I'd recommend to drop the plan. If you only want to have CV control from other equipment and/or control other equipment through CV, I think this is the way to go.

Good luck!

Edited by NorthernLightX
Link to comment
Share on other sites

Sorry to be persistent, but the SID filter cutoff resolution is way higher than the claimed 4-bit, the 6581R1 had a full 12-bit cutoff range, some later models reduced it to 11 bits...

http://en.wikipedia...._Technology_SID

Not exactly...

The filter seems to have only 2 controllable parameters: fequency-cutoff and resonance.

What I wrote in the previsous posts concerned only the resonance. I got a bit confused and missed out the FC.

But there is much more. I will leave out the on/off options, because they are not of interest for CV-Options. But there are a lot more (8), like filter modes etc.

The FC of the SID is not simply one FC. In fact there are 2 different Fcs. One for high-frequency and one for low frequency.

The FC is controlled by Registers $15 and $16.

Each register is 8-bits.

Bits 3-7 for LC are not used, so FC/LO is actually 3-bit (8 Steps).

FC/LO uses all 8 bits, so it is 8-bit (256 Steps).

The Wikipedia-Article adds this up to 11-bit, because those registers can be controlled together by a 11-bit number, but that does not mean, that it's a 11-bit (2048 Step) Filter.

Bit 4-7 of Register $17 control the filter resonace, that is 4-bit (16 Steps).

Bit 4-7 of Register $18 control the volume, that is 4-bits (16 Steps).

The documentation of the SID that I used can be found here:

http://sid.kubarth.com/files/ds_6581.pdf

@NorthernLightX

I think my starting point is a bit different.

I never intended to copy the design of the MS-20. It was more the idea behind it. What are the components and what can be patched. Analogue patching has turned out to be pretty limited. So now my interest has turned more to "softare-patching".

Maybe I should start a new topic or join the discussion about the MB VC V2, as the topic has moved quite a bit away from the initial title...

So my starting point is more the possibilities of the SID (I grew up on playing on a C 64).

When I have understood the possibilites I can go on an look for what has already been done (probably nearly everything) and chose among the possible implementations.

Right now it's much more about learning to me, than going the fastest way to the finished product.

Edited by SIB
Link to comment
Share on other sites

From the datasheet you quoted:

"FC Lo/FC Hi (Registers $15, $16) Together these registers form an 11-bit number (bits 3-7 of FC LO are not used) which linearly controls the Cutoff (or Center) Frequency of the programmable Filter. "

FC/LO and FC/HI are added together, even for the "LO pass" filter mode so that it will become a 2048 step filter (which has its flaws of course, but that adds to its charme).

The filter can be switched through modes and combinations of these modes (e.g. you can activate LP, BP and HP filters at once to achieve a nice distortion effect).

Also you can switch the filter on and off for each of the internal three voices of the SID.

Best of luck with your project :-D

Edited by Hawkeye
Link to comment
Share on other sites

From the datasheet you quoted:

"FC Lo/FC Hi (Registers $15, $16) Together these registers form an 11-bit number (bits 3-7 of FC LO are not used) which linearly controls the Cutoff (or Center) Frequency of the programmable Filter. "

FC/LO and FC/HI are added together, even for the "LO pass" filter mode so that it will become a 2048 step filter (which has its flaws of course, but that adds to its charme).

You are right, but the datasheet confuses me.

The register-map on page 3 lists the Registers for each of the FCs seperately.

If you apply FC/Lo and FC/Hi at the same time you will also need two different FCs. If there was just one 11-bit input for both that would mean, that both filters coult not be controlled seperately. They would always be applied at the same frequency resulting in always filtering out the complete signal. To have any signal left FC/Lo has to be lower than FC/HI.

On the other hand the register map does not show any MF for the BP. If it would not be possible the use the BP with together with the other Filters, it could be that for this one alone the registers for LO and HI are added, but the datasheet mentions on page 6 that all Filters can be used simutanely. The example they mention is only for LO+HI.

Btw the Ctrl based eitor for the MBSID V2 contains and shows all (?) necessary controls that are being discussed here, in a manner that could be an example for a hardware CS that is only controlling the SID-Parameters (only missing the CV ins, but there are Midi-Sync Buttons).

The pods do also show the exact number of steps (The MB SID Menue does it in HEX, at least for the filters) for all parameters matching to the datasheet :).

Confusing is, that the FC is ranging from 0 to 4095 = 4096 stepts -> 12-bit... (from 000 to FFF in the MBSID Menue).

Edited by SIB
Link to comment
Share on other sites

Hi there,

me haz got a hardware control surface here and i use the SID filters every other day for some time now, thats why i was so sure, that the cutoff has higher than 8bit resolution :-)

The SID filters are not "perfect", and only one cutoff value is applied to all filters (LP, BP and HP), if more than one filter is active, e.g. LP and BP, a combination of these filters is active, and with certain values you won´t hear much (same as only lowpass filter active and cutoff frequency very low -> everything is filtered), in other combinations you get a nice filter "distortion", which is exploited in certain sid music tracks and sounds very nice (and is very hard to emulate in software) :-).

The MIDIbox SID platform uses the full 12-bit resolution (4096 steps) for the filter cutoff range, maybe because there were some SIDs that allowed for it, but more likely because it is a more common "data exchange" format for high-resolution MIDI messages for example. Also, you can control external audio filters like a SSM2044 connected to a MIDIbox SID with the MBSID engine, and thus reach the full resolution.

Bye,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

Hey!

You can control 5 parameters on MBSID with analog pots, Joystick, or CV in etc..., I just wanted to point this out. You CAN use 5 CV INPUTS with MBSID - they will control the 5 items from the "k

Note: I think these analog ins are only expecting 0-5v not +15v - -15v so some sort of buffer may be needed.

Thanks,

do you know if the expansion port of the MB-6582 permits to simply ad a box with Jacks for CV input?

@ Hawkeye

Sorry for stealing your time...

Link to comment
Share on other sites

do you know if the expansion port of the MB-6582 permits to simply ad a box with Jacks for CV input?

Not as far as I know; the accessory port only has the digital outs that connect to a remote AOUT module, which converts the data into CV. Unused Analog inputs must be tied to ground if unused, to avoid generating random data; you could use switched jack plugs to achieve this, a DB style port will not work.

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