Jump to content

Analog effects, was "Midifiying a sega genesis"


stryd_one
 Share

Recommended Posts

  • Replies 60
  • Created
  • Last Reply

Top Posters In This Topic

And I'm working on a distortionunit. Right now it's not even prototype phase, but the schematic I cooked up looks promising. Will need some adaptions to make it MIDI controllable, and to adjust the imput from guitar level (1MOhm) to SID/Synth level (1KOhm). Might even put a switch to select between both input levels, to make it more versatile.

As a start I'm going to make it a standalone FX unit, with normal analog pots and switches, and a few different clipping options to select. Then I'll test them with the SID, and check what options sound best. Lastly, I'll <try> to swap the analog pots for digital pots, and make it controllable from a PIC.

But that's all I'll say right now, it might make this completely dull thread intersting all of a sudden, that would be a shame now wouldn't it?  ;D

I would like a dedicated topic on the fx / midi thing, and am also very interested in Illogik's cookings! ;)

Cheers,  Alex.

Link to comment
Share on other sites

Definitely sounds like we need an MBFX thread. Would be good to get our heads together on this, and a shame for each of us to do this independently when we could all team up :) Maybe TK will tell us about his mysterious VCF box? ;)

I had some thoughts on the last post but I'll save that for the new thread if you guys are keen...

Link to comment
Share on other sites

OK, I'll share some more of my thoughts now this is a new thread  :)

I'm not sure how many digital pots can be driven from 1 core. If thinking from a quad-SID standpoint, maybe the slave cores could each drive the digipots attached to their respective FX units. If that's not possible, a dedicated FX core might be necessary, this core could then run an adapted MBCV firmware so you also have CV control over other stuff.

I've read digipots introduce zipper noise. For my current project, the earlier mentioned distortion, this is not really a problem, as you usually don't do distortion-sweeps. Only the initial setting when changing a patch would create noise, and if you do asjust when playing I doubt the noise would be identifyable from the distorted signal anyway.

Anyone here that's toyed around with digipots before? I'm ordering some samples from microchip next week, something to toy with until Smash's reopens.

Cheers,  Alex.

Link to comment
Share on other sites

hi jacks!  ???

as you usually don't do distortion-sweeps

i'm not usual; i sweep em all ;)

hey alex; i'm interested in your approach but wanted to keep control as much in the analog realm as possible so im more into vactrols, jfets and OTA's

:-[ this is for the people who have seen me saying this for years but not coming up with anything... it's not so easy to understand for me as all my electronic experience is coming from practice/making (other peoples) diy projects, not doing complete studies

i have to start reading books about this stuff... a lot..

; so keep it up so we can compare; vc-resistors VS Digipots!! one day...

cheers

You using some delay IC or custom circuitry?

a digital (i'm sorry, but i fink it'll sound good) delay ic and some opamps

thing is i have to ask permission first; not my design.. ;D  :P

had a bad day so put in lots of smilies and some jokes

Link to comment
Share on other sites

Maybe "the Adventures in digital to analog interfacing" should be WIKIfied?

Illogik is the man here. HE has learned and is still learning a lot. I respect him a lot for his trouble preventive way of dealing with things, like using time to study - Yup, many external resources, but I guess he's not that helpless to use forum search too?

Once I saw a post in this very forum by a man who had tried using digital pots in a circuit that consists many analog effects in one box. It wasn't really encouraging about using digital pots in a high gain circuit like guitar distortion. Maybe it's just because guitar FX input impedance and the gain factor - or maybe not?

His name was Captain Hastings. http://www.midibox.org/forum/index.php?topic=2556.msg16762#msg16762

So, keep on experimenting and Have Fun! like Thorsten says - even if it means hearing databus switching in the audio output!

M

Link to comment
Share on other sites

Maybe "the Adventures in digital to analog interfacing" should be WIKIfied?

Illogik is the man here. HE has learned and is still learning a lot. I respect him a lot for his trouble preventive way of dealing with things, like using time to study - Yup, many external resources, but I guess he's not that helpless to use forum search too?

Once I saw a post in this very forum by a man who had tried using digital pots in a circuit that consists many analog effects in one box. It wasn't really encouraging about using digital pots in a high gain circuit like guitar distortion. Maybe it's just because guitar FX input impedance and the gain factor - or maybe not?

His name was Captain Hastings. http://www.midibox.org/forum/index.php?topic=2556.msg16762#msg16762

So, keep on experimenting and Have Fun! like Thorsten says - even if it means hearing databus switching in the audio output!

M

Hi Moebius, I actually already read that topic, but I havent seen Hastings around lately, hence my question. The link that Smash provided to give a LIN pot a LOG feel is also in my "gathered electrical goodies docs" folder ;)

I'll give it another study though, might find something I missed initially. thanks.

/edit

What do you know! :)

Analog Devices does samples too! Sampled myself some AD5206BN10, AD5204BN50 and AD5204BN100 a few minutes ago.

Because Hastings has already done some prototyping, to me these seemed favorable above the digipots microchip has. Also, the AD digipots are 6way, 4way and 4way, while MC only has 1 or 2 way specimen.

I am very curious if my PSU design can make this combination of Digital and Analog circuitry quiet enough. Perhaps I'll use a separate Analog ground. Also, I believe Hastings used guitar-rated impedance for his circuit, and I recently learned (thanks Mendelt ;) ) that high resistors bring high noise, so I suppose there's still room for improvement.

My test distortion circuit will have a switch to select Guitar rated impedance (typically 1MOhm) or Synth rated impedance (for example SID has 1KOhm). The test circuit will probably end up as a stand-alone effectunit in a 19" rack. My current test design can switch between 4 different clipping options, one of which is no extra clipping. I will evaluate the sound, and then develop a much slimmer distortion board with probably only one clipping option. People can then stuff the diodes they find best sounding.

then, if I find some more time ( ;D ) I'll want to digitally control the distortion settings via the digipots. but that phase will probably be a few months from now.

Link to comment
Share on other sites

Hey illogik, hope you're having a better day :)

I was looking at some of those Bucket Brigade Delay IC's ... I'm not so choosy, I put more weight in the value of composition than whether I'm using this thing or that to make it :) I just think it would be good to have a midi controlled delay, then I can play with different types.

As far as MBFX goes, I had thought that it would be good if there were some kind of framework that could be used for lots of different effects, so people could, for example, go to diystompboxes.com and make an effect, then midi it up using MIOS, or MIDI up their favourite bought stompbox or amp or something...

The trick with this is making a single solution that would work well in many different applications. I would like to hope that we could all work out a way to do this which would be cheap, electronically quiet, and easy to do. If we can all work together, it will be a good way to go because we have strength in numbers. But the question is, can we find a way that is flexible enough to be suitable for us all?

It seems at present we have three options. I've summarised as much information as I was able to find by literally studying all day and part of last night, I hope it will help us all to compare the options at hand by summarising the pro's and con's of each...

Mechanical

Motorpots attached to analog pots - This way uses motorised pots or rotary motorfaders (depending on what you want to call them) to move analog pots like an abolute servo. It is completely noiseless because the MB and FX circuits are electrically isolated and only coupled mechanically, but could be expensive, as motorpots aren't cheap, and it could also be harder to do mechanically. This way would mean that the price would vary depending on how many knobs you need but we would need the additional MF module for this. It would also mean that if you were midifying existing gear, you could keep the existing controls in place, so the MIDIBox wouldn't have to be active to use the gear - this is of course assuming that there is room inside the case of your gear to add the motorpots. This method would also introduce support issues with MBFX users coming here for mechanical support on how to link up their pots etc... Also Implementing switches/buttons with this method would probably involve either analog or digital solutions which might defeat the bonus of total electrical isolation, unless using a servo to flick the switch...

Cheap -

Quiet + (Doesn't get any quieter than that, it's a robot hand turning the knobs for you, just like your hand would do)

Easy to Design -

Easy to Build -

Easy to Support -

Flexible Implementation -

Digital

Digipots/DCR's, CMOS - This method means desoldering and replacing existing pots with digitally controlled variants, or switching between digitally controlled and physically controlled resistors, and switches would be CMOS controlled switches. It seems a fairly easy solution at first and digipots are not quite so expensive as motorfaders, but as we know, the digital signals can make things a bit messy. There are concerns about noise from the digital control buss leaking into the audio signal, but that might be worked around by heavy shielding and perhaps a separate ground plane. The separate ground could be tricky to implement though, and that implementation would vary greatly from one device to another, increasing support requirements. One upside with this is that little additional hardware is required.

Cheap +

Quiet -

Easy to Design + (already done by Capt. Hastings)

Easy to Build +

Easy to Support -

Flexible Implementation +

or if we try to find a quiet way

Cheap ? (Need to see what the design is like)

Quiet -

Easy to Design -

Easy to Build ? (Need to see what the design is like)

Easy to Support -

Flexible Implementation +

Analog

Vactrols/FETs/OTAs, Relays - This way converts a control voltage to a resistance or uises it to switch a relay. It is analog so it eliminates the noise problems, but it introduces other problems - cost, because you need the AOUT with the expensive MAX525 to control a number of pots. This method is basically about converting existing designs to CV control, and using the existing MBCV hardware, so means no design issues to deal with from the MIOS end, it's a matter of using any DIY effect design with CV control, or adding CV control to existing gear. When adding to existing gear, you could build the CV controls, and use a switch to select internal control (wired to pots) or CV control (wired to the CV Ins)

I notice the MAX5250 is available and about half the price, seems to be the same thing, but it is 10 bit resolution, not 12-bit. This would reduce the price fairly well, but I'm not fantastic with hardware and haven't read the entire datasheet yet (just the specs and features) so it may not work. I'll look into that further shortly but if anyone else knows or is interested please let me know what you think :) But I don't see the harm in 10-bit control.... 1024 steps is a fair amount, I can't imagine the zipper noise being a problem... Meanwhile there's the AOUT_LC option which uses reduces the cost, but only allows for 2 CV channels.

Cheap - (+? what about the 5250?)

Quiet +

Easy to Design +

Easy to Build +

Easy to Support +

Flexible Implementation ? (Can we make a simple and flexible CV-to-resistance circuit?)

So going by the information I have been able to find, here's the nutshell:

Mechanical is the best possible way audio-wise, but not much good elsewhere.

Digital is great but noisey, so it will not fit the needs of some people (like illogik and I who sweep everything). We could work on methods to reduce noise, but that will always be something of a struggle and effective methods of reducing the noise will vary from one circuit to the next, which increases support efforts.

Analog is good but has two drawbacks. The first is cost, but I am confident that the MAX5250 will get around that. The second is flexibility of implementation. We need a way to get CV into the devices and controlling resistance. It seems that if we could make a simple, cheap and flexible CV-to-resistance (VCR) and relay switching circuit, we would make this cheap while keeping a good number of CV outs, and an easy way to implement it in various devices, then have the best of all the options.

A few issues have arisen with VCR's - they need to be able to match the various different types of pots in the analog gear we're converting, so they need a variable range of resistance. Also, they would need to have a variable resistance curve characteristic - linear, log, neg log, etc etc. I would imagine that we could design a board that has all these characteristics and the ability to select which ones fit your needs, or a series of cutdown boards which would each have a different characteristic each eg Linear VCR, Logarithmic VCR etc etc

I was thinking that I could try adapt some existing designs I have seen, but I'll probably need some help as my strength is not hardware, so I won't start that unless I know that others are interested. I do know that vactrols are less accurate and they are slow, so I think that FET or OTA would be the way to go...

Please add to this or correct me, I'm by no means an expert, more of a librarian in this case :)

Just while I'm typing massive posts here's some more about why I mention this ;) What I was thinking of doing was making a set of analog effects, and stacking them all into a rack-mount case (you could do desktop just as easily) with a small patchbay of in's and outs, so they could be run independently or in series, or sidechained or whichever, and you could repatch them manually as required in the audio chain, and use the MIDIBox to save presets and use MIDI automation for each module. A screen and encoders could be used for editing the FX parameters, as well as a feature to enter the configuration of the manual patch panel for saving an 'image' of it with a set of FX presets to a bankstick or sysex. I'd really like to do an audio switch matrix instead of a patch bay but that gets a bit complex ;) So I figured stick with a manual patchbay and make a record of it's connections.

aaaand last but not least, a collection of links if you feel like an information junkie and a summary is just not enough ;)

Capt Hastings Digipot Driver: http://compiler.kaustic.net/fm_offline/fm_006/aout_AD5204.inc

http://www.midibox.org/forum/index.php?topic=2556.0

http://www.midibox.org/forum/index.php?topic=2186.0

http://www.midibox.org/forum/index.php?topic=3132.0

http://www.midibox.org/forum/index.php?topic=4065.0

http://www.midibox.org/forum/index.php?topic=3373.0

http://www.midibox.org/forum/index.php?topic=5749.0

http://www.midibox.org/forum/index.php?topic=6245.0

FET as VCR: http://freespace.virgin.net/ljmayes.mal/comp/vcr.htm

http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/transistors/vcr2n4n7n.pdf'>http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/transistors/vcr2n4n7n.pdf

http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/transistors/vishay_fet_cvr_an.pdf'>http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/transistors/vishay_fet_cvr_an.pdf appnotes for above device

http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/ also mentions "Aaron's note: It seems to me that this "FET as variable resistor" trick really only works easily if one side of your "resistor" is tied to ground, or at least a constant voltage; otherwise your V_GS will move around as V_S moves around, even if you're keeping V_G constant, and taking care of that requires some thought" Good links there!

OTA as VCR: http://et.nmsu.edu/~etti/winter98/electronics/grise/wrg.html

http://www.uni-bonn.de/~uzs159/ota3080.html

Vactrol (LED->LDR) as VCR: http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/vactrol/perkinelmer_vactrol.pdf

http://users.ece.gatech.edu/~lanterma/sdiy/datasheets/vactrol/vtl5cx2.pdf

So what do you think guys? Could the MBFX be a module which does configurable analog CV-controlled-resistance and analog gate-controlled-relay? Could the MAX5250 be used in the MBCV to reduce costs?

Link to comment
Share on other sites

A Friggin Big Ass Post I'll just take out the things I want to comment on  ;D

Digipots/DCR's, CMOS - This method means desoldering and replacing existing pots with digitally controlled variants, or switching between digitally controlled and physically controlled resistors, and switches would be CMOS controlled switches. It seems a fairly easy solution at first and digipots are not quite so expensive as motorfaders, but as we know, the digital signals can make things a bit messy. There are concerns about noise from the digital control buss leaking into the audio signal, but that might be worked around by heavy shielding and perhaps a separate ground plane. The separate ground could be tricky to implement though, and that implementation would vary greatly from one device to another, increasing support requirements. One upside with this is that little additional hardware is required.

Cheap +

Quiet -

Easy to Design + (already done by Capt. Hastings)

Easy to Build +

Easy to Support -

Flexible Implementation +

or if we try to find a quiet way

Cheap ? (Need to see what the design is like)

Quiet -

Easy to Design -

Easy to Build ? (Need to see what the design is like)

Easy to Support -

Flexible Implementation +

I'm pretty confident that I will get a quiet digipot solution. As I am really only interested in MIDIfying new circuitry (as opposed to modding existing stompboxes) desoldering pots is not an issue for me. I will work with SIL headers and female SIL connectors, so as soon as a circuit works with standard analog pots, I can swap the pots for the digital ones, and test away.

Analog

Vactrols/FETs/OTAs, Relays - This way converts a control voltage to a resistance or uises it to switch a relay. It is analog so it eliminates the noise problems, but it introduces other problems - cost, because you need the AOUT with the expensive MAX525 to control a number of pots. This method is basically about converting existing designs to CV control, and using the existing MBCV hardware, so means no design issues to deal with from the MIOS end, it's a matter of using any DIY effect design with CV control, or adding CV control to existing gear. When adding to existing gear, you could build the CV controls, and use a switch to select internal control (wired to pots) or CV control (wired to the CV Ins)

I notice the MAX5250 is available and about half the price, seems to be the same thing, but it is 10 bit resolution, not 12-bit. This would reduce the price fairly well, but I'm not fantastic with hardware and haven't read the entire datasheet yet (just the specs and features) so it may not work. I'll look into that further shortly but if anyone else knows or is interested please let me know what you think :) But I don't see the harm in 10-bit control.... 1024 steps is a fair amount, I can't imagine the zipper noise being a problem... Meanwhile there's the AOUT_LC option which uses reduces the cost, but only allows for 2 CV channels.

Cheap - (+? what about the 5250?)

Quiet +

Easy to Design +

Easy to Build +

Easy to Support +

Flexible Implementation ? (Can we make a simple and flexible CV-to-resistance circuit?)

AOUT_LC is also an option. I wonder if 12bit isn't something of a requirement, as TK does also design this board to have a 12bit (and a 4 bit) DAC. Vactrols need to be shielded from light, or they will behave differently during dy and night. Also, when including more than one vactrol in a circuit, optical isolation is a big issue because else the LED from vactrol 1 could affect the LDR from vactrol 2, right? I believe implementing vactrols instead of pots is very, VERY tricky.

Digital is great but noisey, so it will not fit the needs of some people (like illogik and I who sweep everything). We could work on methods to reduce noise, but that will always be something of a struggle and effective methods of reducing the noise will vary from one circuit to the next, which increases support efforts.

I was surprised by Hastings' audio sample, I couldn't hear any artifacts at all while he was sweeping the settings. After this audioclip, I became confident digipots are the answer. Moreover because they can be interfaced via SPI, no need for additional (expensive) hardware like DACs. The Analog Sollutions IC also used by Hastings is in effect 4 potmeters in one. Surely for new designs, the costs for 4 analog potmeters would be the same or more.

Just while I'm typing massive posts here's some more about why I mention this ;) What I was thinking of doing was making a set of analog effects, and stacking them all into a rack-mount case (you could do desktop just as easily) with a small patchbay of in's and outs, so they could be run independently or in series, or sidechained or whichever, and you could repatch them manually as required in the audio chain, and use the MIDIBox to save presets and use MIDI automation for each module. A screen and encoders could be used for editing the FX parameters, as well as a feature to enter the configuration of the manual patch panel for saving an 'image' of it with a set of FX presets to a bankstick or sysex. I'd really like to do an audio switch matrix instead of a patch bay but that gets a bit complex ;) So I figured stick with a manual patchbay and make a record of it's connections.

While my current design plan is aimed at providing digitally controlled distortion for the 4xMBSID, I have also played with that idea. I believe that digipots via SPI is by far the cheapest sollution for FX gear that is not yet equipped with CV inputs. My setup for a MBFX unit would be like a modular synth, but with no knobs and buttons on the outside of the "modules".  A Core equipped with a digipot board and an AOUT should be sufficient for controlling everything you can dream of. A panel with some rotary encoders can be optional, if no other midibox provides this functionality externally already. Example: I'm not planning on making a MB64e myself, but if you already own one it would be perfectly suitable to control stuff. I would opt for a less extended control surface. But LEDrings/bars and stuff like that could be part of the module frontpanels, very good oversight what gets tweaked at what time.

A patchbay is not something I would make, I'd just add the input and output jacks on the front of every module. That way you can patch any way you like, and it's always clear what you're attaching where.

So what do you think guys? Could the MBFX be a module which does configurable analog CV-controlled-resistance and analog gate-controlled-relay?

No, I think MBFX is more like a firmware to interface with FX modules, not a MBHP module by itself. The digipot or vactrol circuits could become modules in the "MBHP program" if they work good. That's also the path I'm going to take: a separate board with the IC's to interface with the analog gear. Only some cables run from the FX circuit pot connectors to the interface board connectors, to keep digital noise and stuff far away.

Could the MAX5250 be used in the MBCV to reduce costs?

Don't know, I think not. But sorry: don't care too much either. AOUT_LC is available to reduce cost, AOUT classic to provide all options.

Cheers,  Alex.

Link to comment
Share on other sites

Yes, the F.B.A.P. has taken me many hours to master ;) Observe, my FBAP skills in action! .....

I'm pretty confident that I will get a quiet digipot solution. As I am really only interested in MIDIfying new circuitry (as opposed to modding existing stompboxes) desoldering pots is not an issue for me. I will work with SIL headers and female SIL connectors, so as soon as a circuit works with standard analog pots, I can swap the pots for the digital ones, and test away.

Sorry I didn't mean to imply that desoldering was a problem, just trying to explain what is involved...I actually added a bit of stuff in after I was finished so that the concepts could be more comprehensible to the recently arrived or uninitiated... I mean, I tried to make it more noob friendly ;) Like, you and I know what a digipot is, but not everyone will, and not everyone will understand what the purpose of the digipot is, so I figured hey, with all that work and typing I might as well add in 3 more sentences to help explain to noobs wtf us geeks are toying with this time  ;D

My post was not so much about doing what we need for our particular applications, because in that case I am in the same situation as you... I'm just trying to think about flexibility so people who come along in future have an easy way to MIDIfy FX, no matter what the effect they want to use... It's very often requested, it goes way beyond just this handful of us I think...Of course that doesn't mean we all have to do it the same way, we could all try different methods which suit our needs and then people could apply whichever one they decide would suit them by adapting the notes on the forum/wiki to their particular design.... But of course all of us teaming up has advantages for development because many hands makes light work, and a single solution might reduce support requests on the forum... 

I'll keep talking in the context of searching for a universal solution for the time being... I believe that it should be possible to find a solution where it will meet everyone's needs, maybe I'm just being an optimist but hey ;)

AOUT_LC is also an option. I wonder if 12bit isn't something of a requirement, as TK does also design this board to have a 12bit (and a 4 bit) DAC. Vactrols need to be shielded from light, or they will behave differently during day and night. Also, when including more than one vactrol in a circuit, optical isolation is a big issue because else the LED from vactrol 1 could affect the LDR from vactrol 2, right? I believe implementing vactrols instead of pots is very, VERY tricky.

AOUT_LC is an option but I think 2 CV outs is a little too limiting for many FX machines... 12bit is 4x as many steps, maybe it's to avoid stepping so sweeps are smoother? Maybe it's something to do with the capabilities or existing code for his CEM3378, that's what his is connected to (or it was in the doco) But of course there's always the jumper to split the resistor ladders evenly over the 595's and use 8 + 8 bit, so who knows... At the end of the day, it's just resolution, I'm sure MIOS can handle it, so I think the only ill effect would be the stepping... But I think those digipots are only 256 steps which is only 8-bit... I only just thought of that, if anything the digipots will be more subject to zippering... And you said they're fine in capt hastings' mp3, so 10bit shouldn't be an issue... Although I just listened and it sounds OK to me, I don't know if a distorted delayed filtered guitar is the best specimen for checking for quiet noises and stepping...

Agreed, I am not keen on vactrols... Too slow, too inaccurate, too sensitive, just too messy... Just trying to be non-biased and present all the available options but...mm, nah. yuck. All signs point to no. go directly off the drawing board, do not pass go, do no collect $200 ;) heheh

I was surprised by Hastings' audio sample, I couldn't hear any artifacts at all while he was sweeping the settings. After this audioclip, I became confident digipots are the answer. Moreover because they can be interfaced via SPI, no need for additional (expensive) hardware like DACs. The Analog Sollutions IC also used by Hastings is in effect 4 potmeters in one. Surely for new designs, the costs for 4 analog potmeters would be the same or more.

I do really prefer the digipots idea... If we can just find a cheap and easy way to implement them with no noise or stepping, that doesn't involve altering the FX circuitry, it is definitely the way to go... But if we have to mess with the ground busses in the FX then it would be no good for some people - I don't think that's the case by the sounds of things which rocks :D For those who want to modify existing gear, they could keep the manual pots and install digipots, and switch between the two sets of connections, so it works there too, and the digipots are pretty small so they should fit into small spaces...

I believe that digipots via SPI is by far the cheapest sollution for FX gear that is not yet equipped with CV inputs.

Definitely, and possibly cheaper than those with CV inputs cause of the DACs.

My setup for a MBFX unit would be like a modular synth, but with no knobs and buttons on the outside of the "modules".  A Core equipped with a digipot board and an AOUT should be sufficient for controlling everything you can dream of. A panel with some rotary encoders can be optional, if no other midibox provides this functionality externally already. Example: I'm not planning on making a MB64e myself, but if you already own one it would be perfectly suitable to control stuff. I would opt for a less extended control surface. But LEDrings/bars and stuff like that could be part of the module frontpanels, very good oversight what gets tweaked at what time.

A patchbay is not something I would make, I'd just add the input and output jacks on the front of every module. That way you can patch any way you like, and it's always clear what you're attaching where.

That's exactly what I mean :) All those in and out jacks, I'd just line them up near each other so they could be easily patched into one another, which is why I said 'patchbay'...Sorry for being confusing.

No, I think MBFX is more like a firmware to interface with FX modules, not a MBHP module by itself. The digipot or vactrol circuits could become modules in the "MBHP program" if they work good. That's also the path I'm going to take: a separate board with the IC's to interface with the analog gear. Only some cables run from the FX circuit pot connectors to the interface board connectors, to keep digital noise and stuff far away.

If we can get the digipots to work without digital noise or zippering/stepping and without having to do strange things to the FX circuitry then definitely that's the way to go. You sound pretty confident man, is there anything you need for the prototype? Help? Parts? Moral support? ;)

Don't know, I think not. But sorry: don't care too much either. AOUT_LC is available to reduce cost, AOUT classic to provide all options.

Well there won't be much point in toying with the CV stuff for our purposes if you're right about the digipots.

Although for the sake of curiosity, I do wonder... I mean, the MAX525 is a barrier for some people against having CV control, it would be great for the community if we could find a full-featured DAC for AOUT which is also cheap.

TK would you mind advising us on this one... Can DACs of a lower resolution be used? Why is it that you have used 12bit for AOUT_LC and your 3378, is it there a need for 12-bit signal resolution or is it for compatibility reasons or was it something else like 16bit was too much and 8bit not enough or....?

Assuming for a moment that lower resolution DACs are OK, this opens some interesting opportunities. the 5250 at 10-bit is interface-compatible, pin-compatible, code compatible (check out the datahseets, it's like a game of 'spot the difference'), is half-price of a 525.... and even cheaper still, if you can deal with lower resolution and surface mount packaging you could go the 5258, at 8-bit and get 8 channels, twice as many, for 1/4 the price of the MAX525... Now 8-bit, 256 steps, immediately conjures images of 1983 or something, but if you think about the fact that much of the time we are using MIDI CC's or Note Numbers (0-126, 7 bit) to control these things, we've still got 1 bit to spare. Could be food for thought, AOUT at better than MIDI resolution for 1/8 of the current cost per channel :) And that's the same resolution as the digipots...  I should add that the 5258 is listed as being QSOP packing but the 525 is listed as SSOP and it didn't look like it to me. Maybe I've gotten my packages confused but anyway....

Hopefully we can get the digipots sorted and it won't be a big deal, but it might be of interest to someone, and if we can't get the digipots working, well it could be very handy!

Link to comment
Share on other sites

Some days ago I wrote in the german part of this forum, that it would be great if the community would develop a third AOUT module as alternative solution to AOUT and AOUT_LC (http://www.midibox.org/forum/index.php?topic=6333.msg39275#msg39275).

The MAX525 was selected after some discussions in the forum because of the best price/quality ratio. The focus was on the number of channels, interface type, latency, cascadability and last not least linearity (important for controlling OSC frequencies, not so important for controlling volume or cut off...)

TK would you mind advising us on this one... Can DACs of a lower resolution be used? Why is it that you have used 12bit for AOUT_LC and your 3378, is it there a need for 12-bit signal resolution or is it for compatibility reasons or was it something else like 16bit was too much and 8bit not enough or....?

It really depends on the usecase. If the cut off frequency of a filter should be controlled over a large range, 8bit resolution would lead to some unwanted steppiness. If the range would be reduced (e.g. by using a gain and offset pot), you are maybe happy with 8bit, but the reduced range means less flexibility. It should also be considered, that once the resonance is set to a point, where the filter tends to self oscillation, you definietly want to finetune, and this just requires a high resolution.

12bit for CV is enough in my eyes, higher resolutions are difficult to handle without special layout and PSU measures. With v_max = 5V, each step adds only 1.2 mV to the output voltage, now add the background noise of your PSU and the digital circurity, and you see that it doesn't make much sense to increase the resolution (this statement is not true for audio signals).

Another point which should be considered is the use of S&H in order to multiplex DAC outputs. You could use a cheap single channel DAC and a cheap S&H chip in order to get 8 channels. S&H requires special software measures (timer driven DAC output), which loads the CPU more than a multichannel DAC, but for applications like MBCV or MB64, where the CPU is mostly idle, S&H is a good alternative. Sidenote: if MBCV currently doesn't support S&H, this doesn't mean, that it's difficult to implement this!

A last general tip when searching for an alternative DAC: search for samples at different vendor webpages (Maxim is not the only one), prefer chips, which are easily available, check with www.findchips.com, if the IC is available in low quantities.

Best Regards, Thorsten.

Link to comment
Share on other sites

Thanks TK :)

So as far as MBFX would be concerned, it looks like those digipots we looked at may not cut the mustard... Because if 8-bit is not enough for good analog filtersweeps, then we would need a digipot with more steps that 256. There are digipots with more steps (1024) but they are more expensive and 2-channels is the most available on 1 IC.... but they could be chained of course.

I've looked at the MAX5250, it is more widely available than the 525, half the price, and completely compatible, it just ignores the 2 bits that it can't convert, so we wouldn't even have to change the existing code (not that it would be hard anyway). This will give us 1024 steps too, but more channels going out... And if you want 12-bit, you just drop in a 525 :)

I think that the digipot vs CV race is neck-and-neck at the moment :)

For digipots to work, we need a quiet solution that does not involve modifying the FX circuitry (eg ground planes)

For CV to work, we need a cheap OTA or FET based linear voltage-resistance circuit... Illogik, I was wondering if you might pipe up about the LM13700 ;) I've looked at the datasheet and it's got example schematics for a VCR in there already which is great, do you know if anyone has tried to adapt it yet? Those IC's are under $2 each... But the digipots still work out much cheaper and simpler because you don't have to build the AOUT.... But then again CV allows for better resolution.

It seems there's two degrees of resolution with each method... with a really rough price estimate:

6 X 256-step (8bit) SPI Digipots $10 <$2 per channel

2 X 1024-step (10 bit) SPI Digipots $10 $5 per channel

8 X 1024-step (10 bit) 5250 DAC+VCR $40+20=60 $7.50 per channel

8 X 4096-step (12 bit) 525 DAC+VCR $60+20=80 $10 per channel

I don't think the 2nd one is worth it... For a little more money the CV option could be used, which is upgradeable too, and because it's only 2-channel you'd probably need a lot of them.

Edit: Fiinished now... I hit save instead of preview hehehe

Link to comment
Share on other sites

Hi,

if CV can be used instead of digipots: fits me fine. I already have a couple of MAX525 lying around, And it's more universal than digipots too. Now all you need to think up is an easy to use way of converting CV to resistance...

Another option: use both! A single core is able to support an AOUT board and digipots. Use the pots where 8 bits is enough, use aout where you need 12. In general, 12 bit is used for filtersweeps and stuff, and those filters are already CV controllable most of the time. 8 bits is 16 times the resolution of 4 bits (the second channel of AOUT_LC) and that should be more than enough for everything not filter related in my opinion.

In that case the stuff to develop is still a digipot board (sorry to be so stubborn. ;) ) as the CV outs are already in place on the AOUT. What might be interesting is a new S&H board, with IC's that aren't so hard to come by.

Cheers,  Alex.

Link to comment
Share on other sites

Now all you need to think up is an easy to use way of converting CV to resistance...

And there's the tricky part ;)

Another option: use both!

Yeh I was starting to think that myself :) MY aim was to attempt to find one solution that has all the benefits rolled into one, but if that wasn't possible, to find the most effective hybrid. The facts we're uncovering here are starting to make a clear picture...To exemplify the comparison:

Digital = quicker, easier, cheaper, lower sound quality

Analog = Time consuming, lots of soldering, expensive, higher sound quality

If we could write a framework application (MBFX) which supports controlled resistance via SPI -and- AOUT, along with the hardware side of MBFX, a DCR board (SPI Controlled Digipots) and a VCR board (Voltage controlled OTA's), then people could pick and choose according to their needs... If they want a cheap and easy but 90% functional device they can go the digital route, if they're noise-conscious or want smoother realtime control, then they can choose the analog route...

In general, 12 bit is used for filtersweeps and stuff, and those filters are already CV controllable most of the time. 8 bits .... should be more than enough for everything not filter related in my opinion.

In that case the stuff to develop is still a digipot board (sorry to be so stubborn. ;) )

Oh man it's SO not like that, I don't feel you're being stubborn at all, and I really hope you don't feel like I am! ... this isn't an argument or anything :D When I say things like the Analog vs digital "race" I'm not referring to you vs me or anything like that... I'm just taking the facts and using them to find the best solution... And the facts are, digipots are easier and cheaper and have a great deal of other factors that mean that there are a lot of reasons to lean towards them. It's just kinda convenient really that you've been looking into digipots a great deal, so you've been telling us a lot about the digital way, and so I am leaving that to you and talking about CV... But please don't think I'm trying to steer away from digipots, or trying to steer or argue or debate at all, just trying to get all the facts together :)

Disclaimers aside ;) Yeh I know what you mean about the 12-bit resolution only really being necessary for smooth sweeps...I wouldn't say it's just filters though (I sweep loooots of things), but I do catch your drift.

I didn't realise that the SHX8 board used rare IC's either, thanks for the heads-up on that. It did bring up a matter which I haven't discussed yet, which is expandability. That is one of two matters we haven't really discussed yet, the other being switching... But both are fairly straightforward of course...

Now, before I bust my brain trying to create a VCR board and a more easily sourced SHX8 board... There's something that I thought of just now which could eliminate the issues with the large steps between values with the DCR's....

DCR's in series :D

Think about it.. Resistors in series add themselves. We can send simultaneous commands to two resistors at once...One resistor for coarse steps, and one for the 'fine tuning' inbetween them

If we have a 10KOhm digipot with 256 steps, that's about 400Ohm per step right... We could put another DCR in series with that DCR which holds a varied rsistance between 0 and 400Ohm. Given that the lowest range digipot I can find is 1K, we would only ever use 4/10 of the resistance on that one, that's 100 or so steps inbetween each of the 256 steps of the 10KOhm pot, there's about 25600 steps, that's better than 14 bit!

I've literally only just thought about this, so there may be issues, I haven't thought it through at all...

Like for example there may be some delay between the SPI commands which would set the two resistors, so we'd have to code some smarts into the firmware so that it didn't make the resistance values jump about or something... I dunno if we could make this work... Maybe we could screw with the SPI clock signals, so we could load the values into the DCR's and then clock them both simultaneously...Maybe TK will know what kind of latency would be involved in sending SPI commands from MIOS (given that AFAIK nobody has used SPI yet), if it's not too great then we might not have any issues (because of the latency in the DCR's)

What do you think? Is this idea worth playing with? Is it even possible?

Edit: There's another way, we could bit-bang dual channel SPI...

Link to comment
Share on other sites

If we could write a framework application (MBFX) which supports controlled resistance via SPI -and- AOUT, along with the hardware side of MBFX, a DCR board (SPI Controlled Digipots) and a VCR board (Voltage controlled OTA's), then people could pick and choose according to their needs... If they want a cheap and easy but 90% functional device they can go the digital route, if they're noise-conscious or want smoother realtime control, then they can choose the analog route...

I have no idea what OTA's are, do you have a link with some info? I wouldn't say a finished digipot design would be 90% functional, just lower resolution.

Oh man it's SO not like that, I don't feel you're being stubborn at all, and I really hope you don't feel like I am! ... 

I was not implying any argument at all, just making a little fun, no worries!  ;)

I know what you mean about the 12-bit resolution only really being necessary for smooth sweeps ... I wouldn't say it's just filters though (I sweep loooots of things), but I do catch your drift.

What I meant was that you can sweep away anyway you like, and it's still possible in 8-bit resolution, which produces no audible artifacts with some FX. The more crude FX like distortion for example, you won't notice any zipper noise between the rest of the signal, I'm sure.

I didn't realise that the SHX8 board used rare IC's either, thanks for the heads-up on that. It did bring up a matter which I haven't discussed yet, which is expandability. That is one of two matters we haven't really discussed yet, the other being switching... But both are fairly straightforward of course...

Maybe the original SHX8 IC's are still available somewhere, but Reichelt doesn't stock them and they're not available anymore at mouser. Digital switches have to be easy to implement. Do you pehaps already have a particular IC in mind?

Now, before I bust my brain trying to create a VCR board and a more easily sourced SHX8 board... There's something that I thought of just now which could eliminate the issues with the large steps between values with the DCR's.... DCR's in series :D Think about it.. Resistors in series add themselves. We can send simultaneous commands to two resistors at once...One resistor for coarse steps, and one for the 'fine tuning' inbetween them

If we have a 10KOhm digipot with 256 steps, that's about 400Ohm per step right... We could put another DCR in series with that DCR which holds a varied rsistance between 0 and 400Ohm. Given that the lowest range digipot I can find is 1K, we would only ever use 4/10 of the resistance on that one, that's 100 or so steps inbetween each of the 256 steps of the 10KOhm pot, there's about 25600 steps, that's better than 14 bit!

I've literally only just thought about this, so there may be issues, I haven't thought it through at all...

Like for example there may be some delay between the SPI commands which would set the two resistors, so we'd have to code some smarts into the firmware so that it didn't make the resistance values jump about or something... I dunno if we could make this work... Maybe we could screw with the SPI clock signals, so we could load the values into the DCR's and then clock them both simultaneously...Maybe TK will know what kind of latency would be involved in sending SPI commands from MIOS (given that AFAIK nobody has used SPI yet), if it's not too great then we might not have any issues (because of the latency in the DCR's)

What do you think? Is this idea worth playing with? Is it even possible?

I have no idea If potentiometers work in series, let alone digital ones. Sounds tricky though.

Edit: There's another way, we could bit-bang dual channel SPI...

Bit gang banging dual SPI?... sorry you lost me. What have you conjured up this time?  ;D

Cheers,  Alex.

Link to comment
Share on other sites

What I meant was that you can sweep away anyway you like, and it's still possible in 8-bit resolution, which produces no audible artifacts with some FX. The more crude FX like distortion for example, you won't notice any zipper noise between the rest of the signal, I'm sure.

Yeh that's it, it would be a shame to turn away from such a solution when that's the only drawback. And maybe we'll have a way around that, and if you can beat the digital interference, well... We will have kicked this things ass :)

I have no idea If potentiometers work in series, let alone digital ones. Sounds tricky though.

Ahhh! Where's your confidence mate?! ;D Yeh they'll work in series just like a normal resistor :)

Bit gang banging dual SPI?... sorry you lost me. What have you conjured up this time? ;D

Well here's the trick...

We have a 10k? digipot and a 1k? digipot, each with 256 steps...

This means steps of 40? and 4?...

So we can do this:

Value 10k 1k

0 0 0

4 0 1

8 0 2

12 0 3

16 0 4

20 0 5

24 0 6

28 0 7

32 0 8

36 0 9

40 1 0

44 1 1

48 1 2

52 1 3

56 1 4

60 1 5

64 1 6

68 1 7

72 1 8

76 1 9

80 2 0

84 2 1

etc etc

Problem with this is that the digipots are serial, so the pots can only change value one at a time, the values would either go

Value 10k 1k

32 0 8

36 0 9

0 0 0   <<< only one pot changes (fine)

40 1 0

44 1 1

Value 10k 1k

32 0 8

36 0 9

76 1 9   <<< only one pot changes (coarse)

40 1 0

44 1 1

As you can see we would need to change both values simultaneously or we'll get a big jump (as fast as it may be)...

But... What we could do is make a dual SDO SPI implementation, so that we could use one clock and one chip select for both digipots, but send different control values to each digipot by having dual data lines. It just means adding another wire to the digpots, and writing bit-banged SPI (perhaps based on the existing IIC code) instead of using the built-in SPI implementation on the chip.

Now unfortunately I made a funny math error last time, so I'll try again hehehehe

10k pot / 256 steps = 40Ohm +/-1

1k pot / 256 steps = 4Ohm +/-0.1

This means we can get 10 steps of the fine pot for each 1 of the coarse pot. That's 2560, over 11-bit. But hey, while we're chaining up resistors, why not play some more ;) If we run two of the 1k digipots, doing the same thing at the same time (so not needing extra wires, just connect to the same CS, CLK and SDO lines), in parallel, then we get a 500k digipot. This means each step is half the magnitude, and we can get twice as many :) That means 20 fine steps per coarse steps, which is 5120, better than 12 bit.

This is really cool because if this works then we should be able to chain them further... And each time we chain them further, we get finer resolution. It could easily be implemented that the MBFX software could be told how many 1k pots are connected in parallel and use the appropriate amount of steps of the fine pot before stepping the coarse pot.

For example, with 4 1k digipots in parallel, we would get 40 fine 1ohm steps per each 1 of the 40ohm course steps, that's 10000 steps, better than 13 bit...

For example, with 8 1k digipots in parallel, we would get 80 fine 1ohm steps per each 1 of the 40ohm course steps, that's 20000 steps, better than 14 bit...

Every time you double the amount of 1k digipots linked in parallel, you increase the equivalent bitrate by 1.

And you could just keep going on adding pots and making finer resolution if you're that crazy about it :) But me personally, I say if 12-bit is good enough for TK then it's good enough for me, so I would need a 10k pot followed by two parallel 1k pots.

What you think?

While I'm at it, some AD digipots which caught my eye as having possibly useful features:

AD5254 (Quad) and AD5252 (Dual) These are nonvolatile (so they remember their settings when they're powered up, they talk I2C (much easier to implement seeing as it's already done! All we'd have to do is pick the 2nd data line ;) ) support synchronous update of the wipers (saves on wiring and board size, which is good for conversions) reading the wipers (don't know why you would but it's interesting!) and can work in linear or logarithmic mode which enhances compatibility.... Oh and they have a separate Digital Ground pin for avoiding interference - I thought that might interest you.

There's also the AD8403 and 8402, which are quad and dual, and they have a separate analog ground for every pot. I think this could also help with the noise but the problem is that it would require modifying existing circuitry.

I really like those 5254's though!

Food for thought eh....

Now I'm off to look for nice switches :)

Edit forgot those IC's

Link to comment
Share on other sites

Switches:

http://www.analog.com/UploadedFiles/Data_Sheets/34346341663340ADG714_5_B.pdf

ADG714 (SPI) or ADG715 (I2C)

8 switches in 1 IC, controlled by whichever buss we choose for the digipots

Something I just noticed, these are TSSOP packages... Personally I don't care, it might be SMD but it's not like we'll be desoldering or anything...

Link to comment
Share on other sites

Ahhh! Where's your confidence mate?! ;D Yeh they'll work in series just like a normal resistor :)

My confidence only pops up if i'm confident about something :D

And I'm only confident about something if I know the theory and/or the practics, which is not the case with potmeters...yet.

But hey, while we're chaining up resistors, why not play some more ;) If we run two of the 1k digipots, doing the same thing at the same time (so not needing extra wires, just connect to the same CS, CLK and SDO lines), in parallel, then we get a 500k digipot.

I think you made another error, afaik two 1k resostors in parallel provide 1k/2 in resistance, that's 500 Ohm instead of 500 KOhm, right? But I think the rest of your equations are based on the 500 Ohm so this might be just a typo.

This is really cool because if this works then we should be able to chain them further... And each time we chain them further, we get finer resolution. It could easily be implemented that the MBFX software could be told how many 1k pots are connected in parallel and use the appropriate amount of steps of the fine pot before stepping the coarse pot.

For example, with 4 1k digipots in parallel, we would get 40 fine 1ohm steps per each 1 of the 40ohm course steps, that's 10000 steps, better than 13 bit...

For example, with 8 1k digipots in parallel, we would get 80 fine 1ohm steps per each 1 of the 40ohm course steps, that's 20000 steps, better than 14 bit...

Every time you double the amount of 1k digipots linked in parallel, you increase the equivalent bitrate by 1.

And you could just keep going on adding pots and making finer resolution if you're that crazy about it :) But me personally, I say if 12-bit is good enough for TK then it's good enough for me, so I would need a 10k pot followed by two parallel 1k pots.

What you think?

I understand what you're poiting out, I'm just not feeling very fine with it yet...

While I'm at it, some AD digipots which caught my eye as having possibly useful features:

AD5254 (Quad) and AD5252 (Dual) These are nonvolatile (so they remember their settings when they're powered up, they talk I2C (much easier to implement seeing as it's already done! All we'd have to do is pick the 2nd data line ;) ) support synchronous update of the wipers (saves on wiring and board size, which is good for conversions) reading the wipers (don't know why you would but it's interesting!) and can work in linear or logarithmic mode which enhances compatibility.... Oh and they have a separate Digital Ground pin for avoiding interference - I thought that might interest you.

There's also the AD8403 and 8402, which are quad and dual, and they have a separate analog ground for every pot. I think this could also help with the noise but the problem is that it would require modifying existing circuitry.

I like separate grounds I think, but testing will provide measurements that will be real grounds for decisions. I estimate it will be a few months before I'm ready for tests, with some unfinished projects to attend to... Also the AD52xx is an SMD only IC, and AD84xx PDIP is not available in all resistance sizes. Also, the PDIP IC's are not selectable as samples, I'm not going to pay big bucks for IC's I fear I can't solder properly myself, and am not even sure if thay'll do what I want.

Switches:

http://www.analog.com/UploadedFiles/Data_Sheets/34346341663340ADG714_5_B.pdf

ADG714 (SPI) or ADG715 (I2C)

8 switches in 1 IC, controlled by whichever buss we choose for the digipots

Something I just noticed, these are TSSOP packages... Personally I don't care, it might be SMD but it's not like we'll be desoldering or anything...

I don't like SMD. I'm not very experienced at soldering, I manage to mess up normal PDIP pins, so not SMD for me. And, as TK points out so frequently: other users have to be able to make the boards too, so if it's possible to stick with PDIP I would.

The IC's you listed are SPDT switches, for true bypass you need DPDT switches. ADG888 is a dual DPDT switch, but it's SMD again...

Another tought about your course and fine pots: could you drive one with SPI, and the other with I2C at the same? If so: solved your bitbanging problem  8)

Still not sure if I want to walk that path though...

Cheers,  Alex.

Link to comment
Share on other sites

I think you made another error, afaik two 1k resostors in parallel provide 1k/2 in resistance, that's 500 Ohm instead of 500 KOhm, right? But I think the rest of your equations are based on the 500 Ohm so this might be just a typo.

Yep, typo :)

I understand what you're poiting out, I'm just not feeling very fine with it yet...

Really? Oh I'm disappointed I thought I might have found a good solution... Why the apprehension? Just 'fear of the unknown', or something else?

I don't like SMD. I'm not very experienced at soldering, I manage to mess up normal PDIP pins, so not SMD for me. And, as TK points out so frequently: other users have to be able to make the boards too, so if it's possible to stick with PDIP I would.

Totally... But can we?

The IC's you listed are SPDT switches, for true bypass you need DPDT switches.

This is the part where I confess ignorance... Uhm... What? (Edit: I should say, I know what SPDT/DPDT is but not what 'true bypass' means)

Another tought about your course and fine pots: could you drive one with SPI, and the other with I2C at the same?

Well you could, but it wouldn't truly be in sync, because they'd be on different clock lines etc...

Link to comment
Share on other sites

Really? Oh I'm disappointed I thought I might have found a good solution... Why the apprehension? Just 'fear of the unknown', or something else?

Totally... But can we?

This is the part where I confess ignorance... Uhm... What? (Edit: I should say, I know what SPDT/DPDT is but not what 'true bypass' means)

Well you could, but it wouldn't truly be in sync, because they'd be on different clock lines etc...

Yeah, just fear of the unknown  :-[

But also, I like to have least parts necessary, so as long as there's no sound theoretical solution for the fine/coarse pots (you might have already provided that but in that case I didn't understand it enough) I'm sticking with one IC for my test case. If I can get that quiet enough (zipper noise not included) I'm willing to expand that into your coarse/fine solution, but I think it would be better if both of us (and as much as possible other midiboxers!) develop their own solution while staying in contact with eachother ofcourse, so we can share experience while building. Then we can test which solution works best, and which solution is the simpelest (hopefully, both are true for the same design, so we'd have one uniform solution to improve on further).

Can you? probably. Can I? Don't believe so.

True bypass is where you want to switch an effect on or off, when it is routed hard in your signal path, e.g. not patchable with a wire. so your first pole is at the input of your effect, and the second one is at your output, so you can short those so truly bypass the entire effect. Non-true bypass is where some parts of the effect still influence your sound, e.g. input and output are not shorted, but some parts in the effect are turned off (clipping in a distortion unit fr example).

True bypass is something I would want on the SID distortion unit, so It can be switched on and off via MIDI.

If it's not in sync it's no use, right? Back to the drawing board then...

Cheers,  Alex.

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