Author |
Message |
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Sun Jul 19, 2009 9:31 pm Post subject:
The Prism Laser Guitar is done... time for Mark II! |
|
|
Hi everyone! I've been lurking here for a while and finally signed up, now that I have something to show off. Perhaps some of you have already seen my Prism Laser Synth Guitar on Instructables:
http://www.instructables.com/id/The-Prism-A-Laser-Synth-Guitar/
I'm very proud of what I created, but I know it can be even better! So, I'm here asking for advice.
The heart of my guitar is Thomas Henry's XR2206 VCO, slightly modified for my application. The result is a laser guitar on which the musician can choose one of four "octaves" by blocking a laser string, and change the pitch by moving their hand along the fretboard. I also added an on-board LFO (a second XR2206) and sync generator (simple 555) for cool effects.
That worked well enough, but with some limitations. First of all, it only plays one note at a time. Many people (and especially those who have actually tried playing it) have said it would be better if it could play chords. That means the next version needs to have four XR2206 VCOs.
When you pluck a string, the sound is instant-on, instant-off. Not very guitar-like (or like any decent instrument at all, for that matter). I did some research, and apparently I need an ADSR generator. Make that four ADSR generators - one for each of the aforementioned VCOs. Phew.
But that's not all! Those four VCO outputs needs to be controlled (by the ADSR), so I need a VCA (right?) And they need to be mixed to a single output, so I need a mixer, too.
Stick on the comparator network for the laser strings, the LFO and the sync generator, and we're looking at - well - one monster board.
Are you still with me? Cool. So here's where I need the help and experience of seasoned Synth builders. The circuit I'm contemplating, and have already started to design, is perhaps the biggest and most complex I've ever attempted. Have you guys got any opinions on features that really need to be included, and others that don't? "Nice to haves" and "Need to haves?" Perhaps some tricky little circuit fragments that could help me make the board more efficient? I'd appreciate anything helpful.
So far the feature list for what I'm planning is as follows:
Four independent XR2206 VCOs
Adjustable ADSR (one per VCO, Sustain adjustment only)
A single global "pitch" control (aka coarse CV)
Sine and Square output
Built-in global LFO (using the sine output from an XR2206 or other)
Built-in global Sync generator (a simple 555 timer, or other)
And here is what I had to cut to keep the board from becoming overly complex:
Tri output - this was cut due to the added complexity of having to switch between sin and tri, and because it sounds so similar to sine. Convince me otherwise any I may find a way to work it in.
Skew - as far as I can tell, each VCO would need the full skew generator network, rather than a global control. This adds a tremendous amount of complexity for an effect that I'm kinda "meh" about - I'd be just as happy with a simple diode or op-amp clipping circuit at the end to give the sound some dirty "edge."
So there's my train of thought. Again, any help you guys can provide that will prevent this project from becoming a Frankenstein monster would be very much appreciated! |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Mon Jul 20, 2009 7:14 am Post subject:
|
|
|
Went to the demos (in step 18 ), very nice!
And of course! _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Jul 20, 2009 8:05 am Post subject:
|
|
|
jeff-o, all I can say is wow! Amazing. I am not familiar with laser guitars, but it looks like you have advanced the state of the art. My pal DrJustice and I have worked on a very different but also interesting guitar invention that I can share with you sometime, but I'd like to address your questions first.
First of all please be aware of our "Strings and Things" forum, I'm sure our readers would like to see your posts there as well.
For simple, small oscillators I suggest you look at the Lunetta forum, simple CMOS circuits might be all you really need.
For an edge, why not build a single-opamp fuzz circuit by using LEDs in the feedback path?
Our members can help you with these designs, we love to make contributions to cool projects like this one.
I'd also like to suggest, if you can do prototyping, a hardware implementation of the Karplus-Strong string synthesis algorithm. I can provide you with design details, though I have not built it yet myself. This fairly simple circuit can create guitar-like sounds so your guitar can sound like a guitar. It is untested but worth a try.
Finally, my compliments - oh, and welcome to the forum. That was quite a first post! Cheers,
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Jul 20, 2009 8:51 am Post subject:
|
|
|
OK, I just skimmed over the tutorial, especially the introduction where you discuss the design details - very interesting. Well done, an excellent circuit implementation. If the Karplus-Strong circuit works for you, you should be able to send a modulated square wave into it to control the note pitch and get a good range of guitar sounds, but that's just my take on a direction you might like to go.
Especially thanks to you for sharing all that rich, full, well-written tutorial information on the instructables site. Here at electro-music.com we eat that kind of stuff for breakfast! Your open sharing of your design is a sign of true DIY spirit, so thanks.
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Jul 20, 2009 10:21 am Post subject:
|
|
|
To give you an idea of what Karplus-Strong sounds like, I coded up a program that simulates in ChucK what the circuit might be like. All of the program's code is implementable with opamps and a delay line chip, plus maybe a 555 for the input pulse. A clock frequency sets the pitch by varying the amount of delay on the delay line, and an input trigger pulse starts the note. The audio sample and ChucK program are attached.
Description: |
The audio demonstration of the Karplus-Strong circuit in ChucK form |
|
Download |
Filename: |
BSLDemo2.mp3 |
Filesize: |
1.01 MB |
Downloaded: |
1324 Time(s) |
Description: |
|
Download |
Filename: |
BooleanSequencerLunetta2.ck |
Filesize: |
937 Bytes |
Downloaded: |
679 Time(s) |
_________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Mon Jul 20, 2009 1:17 pm Post subject:
|
|
|
Well that Karplus-Strong algorithm is very interesting. Very interesting indeed! Now I have to decide if I want the Laser guitar to sound like that all the time...
BTW, thanks for your interest so far, everyone! I must admit I'm more engineer than musician at this point, but someday I'll learn to play the instruments I build. |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Jul 20, 2009 1:26 pm Post subject:
|
|
|
jeff-o wrote: | Well that Karplus-Strong algorithm is very interesting. Very interesting indeed! Now I have to decide if I want the Laser guitar to sound like that all the time...
BTW, thanks for your interest so far, everyone! I must admit I'm more engineer than musician at this point, but someday I'll learn to play the instruments I build. |
Karplus-Strong will probably sound different in a hardware implementation if it works at all. Also, changing things like the stimulus burst signal and the feedback filter characteristics will create different sounds from the algorithm. So we would have to experiment with it to see if it meets your needs.
I am in the same boat, spending my time on the inventing rather than the playing, though I am very slowly learning to play guitar.
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Mon Jul 20, 2009 1:49 pm Post subject:
|
|
|
The goal was to keep the guitar hardware-only, if possible. Mostly it's because I'm a lousy programmer. I'm looking around to see if anyone has implemented such an algorith in hardware only, no luck yet! |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Jul 20, 2009 1:58 pm Post subject:
|
|
|
jeff-o wrote: | The goal was to keep the guitar hardware-only, if possible. Mostly it's because I'm a lousy programmer. I'm looking around to see if anyone has implemented such an algorith in hardware only, no luck yet! |
Here is the Wikipedia article on Karplus-Strong:
http://en.wikipedia.org/wiki/Karplus-Strong_string_synthesis
The original Karplus-Strong algorithm was implemented on a chip digitally, however I have examined and simulated it in software (as many people have done), and it looks quite do-able in circuit form. The noise burst can be a 555 pulse, the summing amp and filter can be done with a dual opamp, and the delay line could be a bucket brigade device with variable clock input. I don't know if it will work, but the simulation indicates that it might. So in summary, this would be a hardware-only solution, which is what you want.
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Mon Jul 20, 2009 6:39 pm Post subject:
|
|
|
Sounds like it could indeed work. It would then replace the XR VCO and the ADSR as well, right? If that's the case, I probably could cram it all into a guitar body. I'd need four of these side-by-side though.
I'll give it some thought. It would be fantastic if I could replicate the sound of a guitar so accurately - that certainly seems like something most people want (according to comments on forums and whatnot). On the other hand, at some point you may as well pick up a real guitar! |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Mon Jul 20, 2009 7:36 pm Post subject:
|
|
|
It would replace the ADSR, yes, but a square wave VCO would still be necessary to drive the clock of the delay line. This would not be an audio frequency, but a somewhat higher one (I forget the range). So you wouldn't need a sin/tri/sqr VCO, but you would need a sqr VCO.
Yes, you'd need four of them, but they are small - just three or four chips per channel. Also you could ditch the solid state relays and possibly even just drive the noise burst input with the optical sensor itself, saving some complexity.
To give the guitarist some sound options, pots and/or rotary switches can select different noise burst, filter, and delay line characteristics as well as feedback gain to adjust sustain. You'd get to choose which features to bring to the guitar's controls for creating different sounds.
This is all assuming we actually get the thing to work... _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Tue Jul 21, 2009 6:53 am Post subject:
|
|
|
It's all starting to sound more do-able!
Modules:
1 white noise generator (a plucked string introduces a pulse of white noise to the corresponding channel)
1 clock source for all the delay lines
4 Karplus-Strong filter networks
1 mixer
Adjustable options:
- Adjustable LPF cutoff point for each K-S filter (overall octave range set by a "tuning knob," pitch set by range finder)
- adjustable delay (global control)
- adjustable filter gain (global control)
I'll definitely have to breadboard this before building the whole thing! Do you think the Princeton Tech PT2399 Echo Processor IC would work as a delay line? It seems to be one of the only generally-available delay lines still available! |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Tue Jul 21, 2009 8:39 am Post subject:
|
|
|
jeff-o, I'm happy to hear that you're into the Karplus-Strong circuit idea. I think you're correct on all accounts but one: the circuit would need a separate oscillator for each channel, tuned to the channel's octave range. Here is a source for bucket-brigade delay line chips:
http://www.smallbearelec.com/Categories.bok?category=ICs+Delays%2C+Echo+and+Special+Function
Aside from that I'd like to suggest some kind of companding to the range finder or whatever that thing is on the neck, so that the frequency becomes a nonlinear function of the hand distance as is on a normal guitar (fret spacing varies along the length).
Also the Wikipedia page mentions that the noise burst is optional, you can use any quick little signal including something as simple as a one-shot from a 555, or even maybe just the raw analog input from the laser sensor (did you say you were using cadmium sulfide cells, I forgot).
When I get time I will go through my parts and try to get set up on my desk to build the thing here as well, but no promises on schedule. I want to use this technology for other purposes so we're in it together so to speak. DIY collaboration, what a trip.
Les
p.s. I wonder if we could introduce analog sensitivity to the lasers and insead of just blocking them, use a lens as a pick or something like that? _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
Funky40
Joined: Sep 24, 2005 Posts: 875 Location: Swiss
Audio files: 1
G2 patch files: 5
|
Posted: Tue Jul 21, 2009 11:29 am Post subject:
|
|
|
i don't know what a laser guitar should be like,
but everything sounds like what we do in modularsynths.
( i was a Bassplayer myself and formerly somewhat a guitarplayer, so i'm aware what Guitars are. )
I would build such a guitar only as a controller, and buidlding a "modularsynth".
listen, the story is a neverending story.............concerning what you "could" implement.
Building it as a open system you can expand, building it as a closed system would make you to build several Revisions maybe.
Or take it as a kind of a prototype when building it open, and when you found your dreamtteam, see how you can build this functionality in a very compact way |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Tue Jul 21, 2009 12:04 pm Post subject:
|
|
|
Okay, a separate oscillator for each channel. Back to VCOs, then?
Fortunately, the output of the range finder is already non-linear! Its output changes more quickly the closer you get. Robot builders have created all sorts of algorithms to get rid of that, but I guess it'll be a fringe benefit for me.
I got the impression that the white noise was preferable for more accurately reproducing the sound of the string. It would be worthwhile playing around with both a white noise generator and a simple 555 oscillator. The laser sensors are phototransistors, and I used comparators to promote a defined on/off with little contact bounce. The range sensor makes plenty of its own noise though, something I had to filter out with a massive capacitor.
I've no idea what my timeline will be either, I usually have a lot on the go. I still want to see if anyone else has implemented this in hardware, and whether they had much success...
Inventor wrote: | jeff-o, I'm happy to hear that you're into the Karplus-Strong circuit idea. I think you're correct on all accounts but one: the circuit would need a separate oscillator for each channel, tuned to the channel's octave range. Here is a source for bucket-brigade delay line chips:
http://www.smallbearelec.com/Categories.bok?category=ICs+Delays%2C+Echo+and+Special+Function
Aside from that I'd like to suggest some kind of companding to the range finder or whatever that thing is on the neck, so that the frequency becomes a nonlinear function of the hand distance as is on a normal guitar (fret spacing varies along the length).
Also the Wikipedia page mentions that the noise burst is optional, you can use any quick little signal including something as simple as a one-shot from a 555, or even maybe just the raw analog input from the laser sensor (did you say you were using cadmium sulfide cells, I forgot).
When I get time I will go through my parts and try to get set up on my desk to build the thing here as well, but no promises on schedule. I want to use this technology for other purposes so we're in it together so to speak. DIY collaboration, what a trip.
Les
p.s. I wonder if we could introduce analog sensitivity to the lasers and insead of just blocking them, use a lens as a pick or something like that? |
|
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Tue Jul 21, 2009 12:11 pm Post subject:
|
|
|
At one point in the early planning stages I was considering building the guitar as a simple MIDI controller. I even bought an inexpensive USB-MIDI interface. But, I liked the idea of not being chained to a computer or keyboard to actually make sounds, so I went the all-analog route.
Since I don't have any synthesizer modules lying around, converting the guitar into a controller for them wouldn't have made sense. Though as you said, it could certainly be done that way and would be a really neat way of actively "playing" a synthesizer.
Funky40 wrote: | i don't know what a laser guitar should be like,
but everything sounds like what we do in modularsynths.
( i was a Bassplayer myself and formerly somewhat a guitarplayer, so i'm aware what Guitars are. )
I would build such a guitar only as a controller, and buidlding a "modularsynth".
listen, the story is a neverending story.............concerning what you "could" implement.
Building it as a open system you can expand, building it as a closed system would make you to build several Revisions maybe.
Or take it as a kind of a prototype when building it open, and when you found your dreamtteam, see how you can build this functionality in a very compact way |
|
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Tue Jul 21, 2009 12:26 pm Post subject:
|
|
|
I spent a few hours today setting up my electronics desk and organizing old parts. I found the chips I need to attempt the Karplus-Strong circuit, as follows:
LMC555 to be configured as a one-shot triggered by a momentary SPST switch
LM324 quad opamp for the summing amp, filter, and two-phase potentiometer-adjustable clock
MN3209 bucket brigade device delay line, 256 stages, delay of 0.64ms to 12.8 ms
LM386 low voltage audio power amplifier to drive a speaker with the output signal
I also found a big breadboard, R's, C's, jumper wires, etc. - probably all that I need is there. I also have the data sheets for these chips and apparently they will all run straight off of a 9V battery which is my power supply of choice for the circuit I want to eventually build. Alternately everything could run off +5V if desired.
The BBD delay line has a lower delay time than I used in the software model, so it may be necessary to use a lower cutoff frequency on the low-pass filter or perhaps there will be a limit on the range of notes possible. 2048 stage delay lines (8 times the stages) are available for use in the final project.
I may be able to do some construction in the next few days, maybe sooner. We'll see. I hope it even comes close to working as well as it does in software.
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
|
Back to top
|
|
|
ian-s
Joined: Apr 01, 2004 Posts: 2669 Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 626
|
Posted: Tue Jul 21, 2009 2:11 pm Post subject:
|
|
|
jeff-o wrote: | The 2399 has a delay of 31-342 ms, and the 2396 from 20-200ms. Are those too long for this application? |
KS frequency will be 1000/ms so 20-200ms would have an upper frequency of 50Hz
Edit: Looks like the chip has an optional external clock in though. |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Tue Jul 21, 2009 2:23 pm Post subject:
|
|
|
ian-s wrote: | jeff-o wrote: | The 2399 has a delay of 31-342 ms, and the 2396 from 20-200ms. Are those too long for this application? |
KS frequency will be 1000/ms so 20-200ms would have an upper frequency of 50Hz
Edit: Looks like the chip has an optional external clock in though. |
Yeah, I found a few more details and did some math, and the delay on those Princeton chips is too long as-is. I don't think the delay time can be made short enough, but I'll have to look more closely, maybe there's a way around it. Or I could get the chip you have. |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Wed Jul 22, 2009 4:19 am Post subject:
|
|
|
I have looked at the available delay line chips from Shanghai Belling, all of which are available from smallbear electronics on the page previously posted. The slower of the two delay lines available is an MN3207 1024 stage device with a delay time range of 2.56 ms to 51.2 ms. That translates into a guitar note frequency of 20 Hz to 390 Hz, which is most of the guitar's frequency range (and all of a bass guitar's range I believe).
The MN3209 chips that I have are 256 stage delay lines so they have delay of 0.64 ms to 12.8 ms, or a frequency of 80 Hz to 1560 Hz, which by strange chance just happens to be the range of a six-string guitar.
So basically if you can get an MN3209, then your Karplus-Strong circuit will be a six-string and if you use the only part currently in production you get a bass guiltar
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
Inventor
Stream Operator
Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Wed Jul 22, 2009 4:30 am Post subject:
|
|
|
Looking at the PT2399 datasheet on page 4, there is an echo mode circuit shown. If the first low pass-filter were to not filter the signal that much, then the circuit looks exactly like a Karplus-Strong circuit. The only problem is that the frequency range would be quite low.
The frequency is set by an RC circuit so you could just use a potentiometer on the frequency control to act as a prototype control, and send your 555 pulse or noise burst into the Vin terminal. It's an elegant solution if not for the frequency problem.
So basically you could breadboard up a quick little prototype using a chip that you have while you wait for your bucket brigade devices to arrive (or wait for me to try it out first).
Les _________________ "Let's make noise for peace." - Kijjaz |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Wed Jul 22, 2009 1:37 pm Post subject:
|
|
|
Yes, it did look like the PT2399 was set up very much like the KS filter! But as you said, the PT2399's delay time is too long.
But, take a look at the PT2396. It requires an external crystal, or a frequency source. The datasheet lists two possible sampling frequencies, but I wonder if you could increase it further? Sadly the datasheet really could be more complete - I'd like to know exactly what range of sampling frequencies it can handle.
One other thing that bothers me about the 2396 is that it has an automatic mute function that activates whenever the delay time changes. This might pose a HUGE problem, as I assume the delay time could change fairly often.
So, back to those Chinese made parts, then.
- Jeff
Inventor wrote: | Looking at the PT2399 datasheet on page 4, there is an echo mode circuit shown. If the first low pass-filter were to not filter the signal that much, then the circuit looks exactly like a Karplus-Strong circuit. The only problem is that the frequency range would be quite low.
The frequency is set by an RC circuit so you could just use a potentiometer on the frequency control to act as a prototype control, and send your 555 pulse or noise burst into the Vin terminal. It's an elegant solution if not for the frequency problem.
So basically you could breadboard up a quick little prototype using a chip that you have while you wait for your bucket brigade devices to arrive (or wait for me to try it out first).
Les |
|
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
Posted: Wed Jul 22, 2009 3:39 pm Post subject:
|
|
|
I really need to find an in-production part to use for my guitar. Whether I publish another instructable on how to build one, or if by chance it's good enough to sell, I want to make sure that parts to make it are in good supply.
I'm afraid that if the Princeton Tech delay IC isn't suitable, the only alternative is... learning how to program DSP chips. Hrm. |
|
Back to top
|
|
|
jeff-o
Joined: Jul 19, 2009 Posts: 97 Location: Ontario, Canada
|
|
Back to top
|
|
|
|