electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
poster
 Forum index » DIY Hardware and Software
PIC based CV Quantizer (now with variable modes)
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 1 of 3 [51 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: 1, 2, 3 Next
Author Message
Boogdish



Joined: Sep 21, 2009
Posts: 122
Location: Bloomington, IN

PostPosted: Sun May 23, 2010 10:59 am    Post subject: PIC based CV Quantizer (now with variable modes) Reply with quote  Mark this post and the followings unread

Ok, everybody, this is my first synth design and also my first time programming anything, so I'm a little bit nervous about putting this out there.

This is a really simple quantizer circuit, the idea was to have somthing small and simple that could be tacked onto the end of a sequencer design or something. A voltage between 0-5VDC is inputted to an ADC on the PIC. The PIC then outputs a PWM of the nearest 1/12th of a volt. The PWM is filtered and buffered and sent on it's merry way out.

Right now I've only breadboarded the circuit, I need to put a cabinet together before I can start building any more modules. I got a bit of noise on the output which I think is from using a common ground rail for the PIC and the buffer, hopefully this will go away when the circuit is built on a proper board.

I've attached my assembly code as a txt file (couldn't get the .hex or .asm to upload). This is the first thing I've ever programmed, so it's probably going to seem very inelegant.

I'd love any feedback on this.

EDIT: I'm adding a txt file with the assembler code for a version of this that has variable modes (I mean modes in the musical sense). The only thing you'd need to change hardware wise is adding a pot with it's outside lugs going to +5VDC and ground and it's wiper going to pin 9. This pot will select what mode you're quantizing to. From least voltage on pin 9 to most the sequence is Major, Major Pentatonic, Minor, Minor Pentatonic and Chromatic.


quantizer schem.jpg
 Description:
Schematic for quantizer
 Filesize:  51.82 KB
 Viewed:  1406 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

quantizer schem.jpg



CVQUANTREV1.txt
 Description:
Assembly code for the quantizer using PIC 16F684.

Download
 Filename:  CVQUANTREV1.txt
 Filesize:  9.87 KB
 Downloaded:  1454 Time(s)


VARIMODEQUANTIZER.txt
 Description:
Assembler code for variable mode quantization. added 5-29-10

Download
 Filename:  VARIMODEQUANTIZER.txt
 Filesize:  18.04 KB
 Downloaded:  986 Time(s)


Last edited by Boogdish on Sat May 29, 2010 1:32 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
adambee7



Joined: Apr 04, 2009
Posts: 420
Location: united kingdom

PostPosted: Sun May 23, 2010 4:01 pm    Post subject: Reply with quote  Mark this post and the followings unread

Thanks for the contribution. I've been wanting to get into more pic stuff myself. This is an excellent example. Cheers. Very Happy Very Happy
Back to top
View user's profile Send private message
joshco



Joined: Nov 14, 2008
Posts: 55
Location: germany

PostPosted: Sun May 23, 2010 11:45 pm    Post subject: Reply with quote  Mark this post and the followings unread

nice design!
looks like a very nice project, simple diy quantizers are still kind of rare.
The approach with PWM is also nice because of not needing DAC´s.
I have still some PIC ´s here i will defenately build one.
Back to top
View user's profile Send private message
Rykhaard



Joined: Sep 02, 2007
Posts: 1290
Location: Canada

PostPosted: Mon May 24, 2010 1:11 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks as well for posting that! I just recently bought a Microchip PICkit 3 and 10 PICs, to jump into that world. (Though, I don't have the same PIC as the one you've programmed - unless, I do have it in my uncompleted MIDbox Seq V3 pile of parts ...) I can always order a couple of that PIC. Smile

And SIMPLE code! That were excellent to see as well! Very Happy

The final bit that I've to learn, is how to build the 'header' for the PIC. Or is it as simple as the schematic that you've included above?
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
yerpa58



Joined: Mar 08, 2008
Posts: 57
Location: Wisconsin
Audio files: 4

PostPosted: Mon May 24, 2010 2:36 pm    Post subject: Reply with quote  Mark this post and the followings unread

I think you want an ICSP programming header. It is six pins on .100" spacing, there are lots of examples out there for Google to find. Works great with PICKit 3.

When I looked at the assembly code, I did not know that instructions such as SUBLW .32 were allowed. I'm not sure what the assembler does with the decimal point.

Anyway, good luck, it looks like a real nice project!
Back to top
View user's profile Send private message Visit poster's website
ryktnk



Joined: Apr 24, 2008
Posts: 285
Location: london
Audio files: 1

PostPosted: Tue May 25, 2010 2:52 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hello

Well done
This is a neat idea !

I had a look at the code.

You could make a compact code version if you divide
the VOLTHI value by 4.25 [60 steps for an 8bit ADC value]
Make the result Integer [no remainder] then multiply back
up by 4.25 to give a quantised result for the PWM [so long as the PWM gives a 0-5v range]

Would this work ?

If you have enough output pins you could try a "hand rolled"
DAC with 1% resistors [like in the Roland TB303] which
does work pretty well.

Keep us posted
-ryk
Back to top
View user's profile Send private message Visit poster's website
Boogdish



Joined: Sep 21, 2009
Posts: 122
Location: Bloomington, IN

PostPosted: Wed May 26, 2010 7:20 pm    Post subject: Reply with quote  Mark this post and the followings unread

Yerpa, .32 means 32. The decimal just tells the compiler that the value is entered in decimal form. It's like putting the b and apostrophes to indicate the number is entered in decimal form. So .32 = b'00100000'

Ryk, I think I understand your concept, but I would think that dividing by 4.25 would take some very tricky math when working with 8 bit numbers in assembly code. Right now doing something like that is definitely over my head.

Also, I would like to experiment with using r2r ladders as a DAC in the future. I like the idea of not having any aliasing from the PWM, and making your uC's clock less critical. But for this project I wanted it to be compact and cheap and an op amp, 1 resistor and 1 cap on the output is a lot smaller and cheaper than 20 precision resistors.

Rykhaard, (wow, two Ryks in one thread) I just decided to use this chip because I had one lying around from trying Electric Druid's VCLFO. If you've got a chip that does a 10bit PWM out and at least one A/D channel, it probably wouldn't be that hard to port the code. It might be a nice exercise for trying to learn how to use PICs.
Back to top
View user's profile Send private message Visit poster's website
Rykhaard



Joined: Sep 02, 2007
Posts: 1290
Location: Canada

PostPosted: Wed May 26, 2010 7:29 pm    Post subject: Reply with quote  Mark this post and the followings unread

Boogdish wrote:
Rykhaard, (wow, two Ryks in one thread) I just decided to use this chip because I had one lying around from trying Electric Druid's VCLFO. If you've got a chip that does a 10bit PWM out and at least one A/D channel, it probably wouldn't be that hard to port the code. It might be a nice exercise for trying to learn how to use PICs.


Heh. Aye. I've noticed the 2 of us being here, with a smile, since Ryktnk 1st arrived. Smile It's rare that you see another Ryk around.

Ahhh! The site with the VCLFO, as well! I immediately bookmarked it, for playing with when I become more comfortable with my PICkit 3. The first thing that I have to do, is figure out how to get it to recognize it's 18F45k20 that's on a protoboard. (I don't need to power that separately, do I? )
The tutorial that comes with the latest IDE, is mistakenly figuring that you still have the 16Fxxx board, with your PICkit 3 ... (sigh. Puts a dent in teaching yourself, mometarily.)

I'll check the 2 data sheets for the 2 PICs that I bought 5 each of at the same time, to see. If one of them does, then I could just set it up with a proper power feed and interface on breadboard and see what goes. Thank you for that suggestion! Smile If that works, then I can start working backwords from there possibly, adapting portions of the tutorial to the PICs that I have.

Thank you for the suggestion. Smile

Edit: I'm also pondering whether it could be yet another incompatibility with Win Vista 32. Sad
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
Junk Rhythm



Joined: Jan 07, 2008
Posts: 81
Location: San Francisco, CA

PostPosted: Fri May 28, 2010 12:40 am    Post subject: Reply with quote  Mark this post and the followings unread

Rykhaard wrote:
The first thing that I have to do, is figure out how to get it to recognize it's 18F45k20 that's on a protoboard. (I don't need to power that separately, do I? )
The tutorial that comes with the latest IDE, is mistakenly figuring that you still have the 16Fxxx board, with your PICkit 3 ... (sigh. Puts a dent in teaching yourself, mometarily.)


You don't need additional power for the development board. There is a setting in the Programmer Menu that let's the user choose whether or not the power is supplied from an external circuit of from the PICkit3. The default setting is always set to an external circuit so you need to change that setting. The ugly part is that it always defaults back to this setting everytime you change to a different development board or device. You can find this here:


Programmer > Settings > Power
Power target circuit from PICkit3.
Adjust for the appropriate voltage required by the device you are working with.

I ran into these problems with the PICkit3 as well. The documentation is enormous but it lacks very simple and basic steps to getting things working out of the box immediately.

If I you are passed that point, you should be able to get the PICkit3 to recognize different PICs by selecting them in the Devices menu. There is also the Project Wizard that comes in handy.

_________________
[twitter] [blog] [flickr] [toppobrillo] [buzz]
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
Rykhaard



Joined: Sep 02, 2007
Posts: 1290
Location: Canada

PostPosted: Fri May 28, 2010 3:56 am    Post subject: Reply with quote  Mark this post and the followings unread

g.p.macklin wrote:

You don't need additional power for the development board. There is a setting in the Programmer Menu that let's the user choose whether or not the power is supplied from an external circuit of from the PICkit3. The default setting is always set to an external circuit so you need to change that setting. The ugly part is that it always defaults back to this setting everytime you change to a different development board or device. You can find this here:


Programmer > Settings > Power
Power target circuit from PICkit3.
Adjust for the appropriate voltage required by the device you are working with.


THANK YOU! Very Happy Finally - after having had this unit for almost a month, I'm able to see the 18F45k20 operating (verified by MPLab) with it's set of LEDs blinking in succession.
I made sure to check the chip's datasheet first to see it's operational voltage range, with MPLab popping up it's suggestion. That suggestion checked ok. (On that note - I'll make sure to check the same for each of the PICs that I purchased, before hooking anything up to them on the breadboard.)

Quote:

I ran into these problems with the PICkit3 as well. The documentation is enormous but it lacks very simple and basic steps to getting things working out of the box immediately.


That, really surprised me as well. With the helpfulness that I'd read in everything up to it, as well as some other (older) tutorials that I'd read whilst waiting for the package to arrive, were under the impression that I'd be able to start, right away. This had been, the only holding point thus far, in my getting started.

Quote:

If I you are passed that point, you should be able to get the PICkit3 to recognize different PICs by selecting them in the Devices menu. There is also the Project Wizard that comes in handy.


Aye. No troubles there. Smile I'd found both of the PICs that I'd purchased, listed in the pull down menu. I shouldn't have any troubles following their setup requirements in the future.

Again - thank you greatly! Another chap here on EM (who's disappeared again) HAD mentioned the setup procedure to me in either a PM or email and I thought I'd searched for it's reference everywhere, unable to find it.
Now though - with references all over the Internet, I shouldn't have any troubles I don't think, in teaching myself the rest, as I've programmed on / off for the last, almost, 30 years. Smile

Weeeee. Very Happy Happy happy.
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
Rykhaard



Joined: Sep 02, 2007
Posts: 1290
Location: Canada

PostPosted: Fri May 28, 2010 2:40 pm    Post subject: Reply with quote  Mark this post and the followings unread

Boogdish wrote:
I just decided to use this chip because I had one lying around from trying Electric Druid's VCLFO. If you've got a chip that does a 10bit PWM out and at least one A/D channel, it probably wouldn't be that hard to port the code. It might be a nice exercise for trying to learn how to use PICs.


Aye! And thanks to G.P.Macklin, as of this morning - my PICkit 3 with it's 18F45K20 were up and running beautifully with the 18F recognized, all of it's LEDs blinking 1 after the other repeatedly. Smile

I'll check the datasheets on my 10F222 and 16F689 that I bought 5 each of and see if either of them fits the bill.

On my first coffee break at work today, I also thought of restricting the output notes to selected Scales (Major, Minors, Diminished, etc.) with the Scale selected by the user. (A rotary switch with equal resistors around it, could be used as a voltage divider that would be read by an Input pin, for determining which scale of restricted notes, the input would be bumped over to.)

First - I'll see if I have a compatible enough chip to port your code into. Smile Looking forward to this, big time. Surprised Smile

Thank you again, for posting it and please do keep us updated. Smile
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
Boogdish



Joined: Sep 21, 2009
Posts: 122
Location: Bloomington, IN

PostPosted: Fri May 28, 2010 3:46 pm    Post subject: Reply with quote  Mark this post and the followings unread

Rykhaard wrote:

On my first coffee break at work today, I also thought of restricting the output notes to selected Scales (Major, Minors, Diminished, etc.) with the Scale selected by the user. (A rotary switch with equal resistors around it, could be used as a voltage divider that would be read by an Input pin, for determining which scale of restricted notes, the input would be bumped over to.)
Smile


Hey, great minds think alike. Last night I wrote some code so you'd be able to switch between major and major pentatonic, if I get that working I'll add minor/minor pentatonic/etc. I'm calling it "variable mode quantization." How fancy pants is that? Also, I'm going to use just a pot on an ADC input to select between modes so you wouldn't have to buy a more expensive rotary switch.
Back to top
View user's profile Send private message Visit poster's website
Junk Rhythm



Joined: Jan 07, 2008
Posts: 81
Location: San Francisco, CA

PostPosted: Fri May 28, 2010 5:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

Boogdish wrote:
Rykhaard wrote:

On my first coffee break at work today, I also thought of restricting the output notes to selected Scales (Major, Minors, Diminished, etc.) with the Scale selected by the user. (A rotary switch with equal resistors around it, could be used as a voltage divider that would be read by an Input pin, for determining which scale of restricted notes, the input would be bumped over to.)
Smile


Hey, great minds think alike. Last night I wrote some code so you'd be able to switch between major and major pentatonic, if I get that working I'll add minor/minor pentatonic/etc. I'm calling it "variable mode quantization." How fancy pants is that? Also, I'm going to use just a pot on an ADC input to select between modes so you wouldn't have to buy a more expensive rotary switch.


Looking forward to this as well. I've wanted a quantizer with user defineable/selectable scales for awhile now. Very Happy

As it turned out, I also had a few PIC16F684 chips in the parts bin so I breadboarded the circuit this morning. At some point this weekend I'll burn the PIC and test it out.

Thank you Boogdish for providing the project.

_________________
[twitter] [blog] [flickr] [toppobrillo] [buzz]
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
Rykhaard



Joined: Sep 02, 2007
Posts: 1290
Location: Canada

PostPosted: Fri May 28, 2010 7:22 pm    Post subject: Reply with quote  Mark this post and the followings unread

g.p.macklin wrote:
Boogdish wrote:
Rykhaard wrote:

On my first coffee break at work today, I also thought of restricting the output notes to selected Scales (Major, Minors, Diminished, etc.) with the Scale selected by the user. (A rotary switch with equal resistors around it, could be used as a voltage divider that would be read by an Input pin, for determining which scale of restricted notes, the input would be bumped over to.)
Smile


Hey, great minds think alike. Last night I wrote some code so you'd be able to switch between major and major pentatonic, if I get that working I'll add minor/minor pentatonic/etc. I'm calling it "variable mode quantization." How fancy pants is that? Also, I'm going to use just a pot on an ADC input to select between modes so you wouldn't have to buy a more expensive rotary switch.


Looking forward to this as well. I've wanted a quantizer with user defineable/selectable scales for awhile now. Very Happy

As it turned out, I also had a few PIC16F684 chips in the parts bin so I breadboarded the circuit this morning. At some point this weekend I'll burn the PIC and test it out.

Thank you Boogdish for providing the project.


Well - off a studying I went, the datasheets for my 10F222 and 16F689's that I have 5 each of and ...

The 3 x I/O 10F222 has 2 x 8 bit ADCs. That looses too much accuracy on the voltage input. Sad Also - the 10F222 doesn't have a PWM out. (I don't know whether anything within the 32 commands is configurable as a PWM or not, out it's single output.)

The 16F689, DOES have a port which can be used for PWM but reading through the Tips and Tricks .PDF for that family of chips, in referecne to the PWM functionality ... it were way beyond Greek to me. Surprised Laughing Now - for the little bit of Assembler that I've looked at and comprehended over the years, I still do have to learn the Assembler for the PICs, so that'd explain all of the Greekness to me, for the moment. Sooo ...

I think it's time (now that the PICkit 3 is up and going) to heading back to Step 1 of the tutorials, and working with / learning what I can, before I jump too MUCH deeper into this. Surprised Smile

It'll come to me, in time - then, I'll be able to 'spread my wings' as some people say. Wink

It's cool that you'd thought of the idea as well! Smile I can't wait to apply something like this to the 1 of 3 MFOS Sequencers that I built, with the tuning pots - to get predictable voltages out of it. Smile
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
sneakthief



Joined: Jul 24, 2006
Posts: 569
Location: Berlin

PostPosted: Sat May 29, 2010 4:28 am    Post subject: Reply with quote  Mark this post and the followings unread

May I suggest also an option of having 12 switches to manually set your own scales?

It would be cool to be able to press a button to save that setting in the pic flash ram.

Cheers,
michel

_________________
Sneak-Thief - raw electrofunk
Back to top
View user's profile Send private message Visit poster's website
Boogdish



Joined: Sep 21, 2009
Posts: 122
Location: Bloomington, IN

PostPosted: Sat May 29, 2010 2:00 pm    Post subject: Reply with quote  Mark this post and the followings unread

I updated my original post to include the code for doing variable modes. I think if I was going to do much more modes than I am now I'm going to need to rethink the structure of the code so each mode doesn't take as much memory.

Michel, that's a really cool idea. I don't have enough switches on hand to try it any time soon though. I think the tricky part to that would be getting the PIC to automatically generate the threshold points between voltages evenly. I guess if I figured that out, that would solve my problem of each mode requiring so much memory as well.

Rykhaard, I took a quick look at the 16f689 and it looks like a bigger (more pins, more memory) version of the 16f684 so I think it would be a good candidate for porting this over to.
Back to top
View user's profile Send private message Visit poster's website
adambee7



Joined: Apr 04, 2009
Posts: 420
Location: united kingdom

PostPosted: Sat May 29, 2010 3:00 pm    Post subject: Reply with quote  Mark this post and the followings unread

To be able to make various mods without major board modification is excellent. I'm sold and off to buy a pic kit. Very Happy Very Happy
Back to top
View user's profile Send private message
iopop3



Joined: May 28, 2010
Posts: 94
Location: Malmö, Sweden

PostPosted: Sun May 30, 2010 3:05 am    Post subject: Reply with quote  Mark this post and the followings unread

This looks interesting.

You might want to move the pwm store code into its own subroutine to save some bytes,
Code:

SETDb1 MOVLW.4
       GOTO SETPWM
SETD1  MOVLW.9
       GOTO SETPWM
 etc etc

SETPWM
       MOVWF CCPR1L
       BCF   CCP1CON,5
       BSF   CCP1CON,4
       GOTO  BEGIN


For making lots of different scales, how about table lookup? One 256 byte table per scale, use input value from adc as index in table, store value to pwm. This assumes adc is 8bit.

Generate the tables by highlevel language of choice, php/java/c++/perl/javascript etc..
Back to top
View user's profile Send private message
sneakthief



Joined: Jul 24, 2006
Posts: 569
Location: Berlin

PostPosted: Sun May 30, 2010 3:23 am    Post subject: Reply with quote  Mark this post and the followings unread

this should help - it's from Thorsten Klose's brilliant MIDIbox Sequencer project (http://www.ucapps.de/mios/midibox_seq_v3_4f.zip)

Code:
; $Id: seq_scale.inc 73 2008-02-03 00:00:52Z tk $
;
; MIDIboxSEQ
; Scale functions
;
; ==========================================================================
;
;  Copyright 1998-2006 Thorsten Klose (tk@midibox.org)
;  Licensed for personal non-commercial use only.
;  All other rights reserved.
;
; ==========================================================================

SCALE_ENTRY MACRO c, cd, d, dd, e, f, fd, g, gd, a, ad, b, str
   db   c | (cd << 4), d | (dd << 4), e | (f << 4), fd | (g << 4), gd | (a << 4), ad | (b << 4), str
   ENDM


   ;; Please contact stryd_one with any corrections or requested scales. I have an algorithm and can generate your scale in minutes - but it may not be perfect, so feedback is welcomed.
   
   ;; Big thanks to TK for making this awesome instrument, and being such a generous guy as to share with us all the benefits of his skill and hard work.


SEQ_SCALE_TABLE
   ;;           C    C#   D    D#   E    F    F#   G    G#   A    A#   B
   ;;           0    1    2    3    4    5    6    7    8    9    10   11    Semitone
   ;;              1    b2   2    b3   3    4    b5   5    b6   6    b7   7   Minor Tone
   ;;              1    #1   2    #2   3    4    #4   5    #5   6    #6   7    Augmented Tone
   ;; 1..10                                                                                                         <------------------>
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   11,   11,   "Major               "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   11,   11,   "Harmonic Minor      "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   11,   11,   "Melodic Minor       "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Natural Minor       "
        SCALE_ENTRY     0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,   11,   "Chromatic           "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   8,   8,   10,   10,   10,   "Whole Tone          "
        SCALE_ENTRY     0,   2,   2,   4,   4,   7,   7,   7,   9,   9,   9,   9,   "Pentatonic Major    "
        SCALE_ENTRY     0,   0,   3,   3,   3,   5,   7,   7,   7,   10,   10,   10,   "Pentatonic Minor    "
        SCALE_ENTRY     0,   0,   3,   3,   3,   5,   6,   7,   7,   10,   10,   10,   "Pentatonic Blues    "
        SCALE_ENTRY     0,   2,   2,   2,   5,   5,   7,   7,   7,   10,   10,   10,   "Pentatonic Neutral  "
   ;; 11..20                                                                                                        <------------------>
        SCALE_ENTRY     0,   1,   1,   3,   4,   6,   6,   7,   9,   9,   10,   10,   "Octatonic (H-W)     "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   6,   8,   9,   11,   11,   "Octatonic (W-H)     "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   11,   11,   "Ionian              "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   10,   10,   "Dorian              "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Phrygian            "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   9,   9,   11,   11,   "Lydian              "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   10,   10,   "Mixolydian          "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Aeolian             "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   6,   6,   8,   8,   10,   10,   "Locrian             "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   7,   8,   8,   11,   11,   "Algerian            "
    ;; 21..30                                                                                                        <------------------>
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   8,   8,   9,   11,   11,   "Arabian (A)         "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   6,   8,   8,   10,   10,   10,   "Arabian (B)         "
        SCALE_ENTRY     0,   3,   3,   3,   4,   6,   6,   8,   8,   11,   11,   11,   "Augmented           "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   8,   8,   9,   11,   11,   "Auxiliary Diminished"
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   8,   8,   10,   10,   10,   "Auxiliary Augmented "
        SCALE_ENTRY     0,   1,   1,   3,   4,   6,   6,   7,   9,   9,   10,   10,   "Auxiliary Diminished"
        SCALE_ENTRY     0,   1,   1,   3,   3,   7,   7,   7,   8,   8,   8,   8,   "Balinese            "
        SCALE_ENTRY     0,   0,   3,   3,   3,   5,   6,   7,   7,   10,   10,   10,   "Blues               "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   8,   11,   11,   "Byzantine           "
        SCALE_ENTRY     0,   0,   4,   4,   4,   6,   6,   7,   7,   11,   11,   11,   "Chinese             "
   ;; 31..40                                                                                                        <------------------>
        SCALE_ENTRY     0,   2,   2,   4,   4,   7,   7,   7,   9,   9,   9,   9,   "Chinese Mongolian   "
        SCALE_ENTRY     0,   2,   2,   4,   4,   7,   7,   7,   9,   9,   9,   9,   "Diatonic            "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   6,   8,   9,   11,   11,   "Diminished          "
        SCALE_ENTRY     0,   1,   1,   3,   4,   6,   6,   7,   9,   9,   10,   10,   "Diminished, Half    "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   6,   8,   9,   11,   11,   "Diminished, Whole   "
        SCALE_ENTRY     0,   1,   1,   3,   4,   6,   6,   6,   8,   8,   10,   10,   "Diminished WholeTone"
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   10,   10,   "Dominant 7th        "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   8,   11,   11,   "Double Harmonic     "
        SCALE_ENTRY     0,   2,   2,   2,   5,   5,   7,   7,   7,   10,   10,   10,   "Egyptian            "
        SCALE_ENTRY     0,   1,   1,   3,   4,   5,   6,   6,   8,   8,   10,   10,   "Eight Tone Spanish  "
   ;; 41..50                                                                                                        <------------------>
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   8,   8,   10,   10,   11,   "Enigmatic           "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   11,   11,   "Ethiopian (A raray) "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Ethiopian Geez Ezel "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   6,   6,   8,   8,   10,   10,   "Half Dim (Locrian)  "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   6,   6,   8,   8,   10,   10,   "Half Dim 2 (Locrian)"
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   11,   11,   "Hawaiian            "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   8,   8,   10,   10,   "Hindu               "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   8,   8,   10,   10,   "Hindustan           "
        SCALE_ENTRY     0,   2,   2,   3,   3,   7,   7,   7,   8,   8,   8,   8,   "Hirajoshi           "
        SCALE_ENTRY     0,   3,   3,   3,   4,   6,   6,   7,   9,   9,   10,   10,   "Hungarian Major     "
   ;; 51..60                                                                                                        <------------------>
        SCALE_ENTRY     0,   2,   2,   3,   3,   6,   6,   7,   8,   8,   11,   11,   "Hungarian Gypsy     "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   8,   11,   11,   "Hungarian G. Persian"
        SCALE_ENTRY     0,   2,   2,   3,   3,   6,   6,   7,   8,   8,   11,   11,   "Hungarian Minor     "
        SCALE_ENTRY     0,   1,   1,   1,   5,   5,   7,   7,   8,   8,   8,   8,   "Japanese (A)        "
        SCALE_ENTRY     0,   2,   2,   2,   5,   5,   7,   7,   8,   8,   8,   8,   "Japanese (B)        "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   6,   7,   9,   9,   11,   11,   "Japan. (Ichikosucho)"
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   6,   7,   9,   9,   10,   11,   "Japan. (Taishikicho)"
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   9,   9,   10,   10,   "Javanese            "
        SCALE_ENTRY     0,   1,   2,   3,   3,   5,   7,   7,   9,   9,   10,   10,   "Jewish(AdonaiMalakh)"
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   8,   10,   10,   "Jewish (Ahaba Rabba)"
    ;; 61..70                                                                                                        <------------------>
        SCALE_ENTRY     0,   1,   1,   3,   4,   6,   6,   8,   8,   10,   10,   11,   "Jewish (Magen Abot) "
        SCALE_ENTRY     0,   2,   2,   3,   3,   7,   7,   7,   9,   9,   9,   9,   "Kumoi               "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   8,   8,   10,   10,   11,   "Leading Whole Tone  "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   8,   8,   9,   11,   11,   "Lydian Augmented    "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   8,   8,   10,   10,   "Lydian Minor        "
        SCALE_ENTRY     0,   2,   2,   3,   3,   6,   6,   7,   9,   9,   11,   11,   "Lydian Diminished   "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   6,   6,   8,   8,   10,   10,   "Major Locrian       "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   11,   11,   "Mohammedan          "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   8,   8,   11,   11,   "Neopolitan          "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   9,   9,   11,   11,   "Neoploitan Major    "
   ;; 71..80                                                                                                        <------------------>
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Neopolitan Minor    "
        SCALE_ENTRY     0,   2,   2,   3,   4,   6,   6,   7,   8,   9,   11,   11,   "Nine Tone Scale     "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   6,   6,   8,   8,   10,   10,   "Oriental (A)        "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   6,   6,   9,   9,   10,   10,   "Oriental (B)        "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   9,   9,   10,   10,   "Overtone            "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   9,   9,   10,   10,   "Overtone Dominant   "
        SCALE_ENTRY     0,   1,   1,   3,   3,   7,   7,   7,   8,   8,   8,   8,   "Pelog               "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   6,   6,   8,   8,   11,   11,   "Persian             "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   6,   9,   9,   10,   10,   "Prometheus          "
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   6,   9,   9,   10,   10,   "PrometheusNeopolitan"
   ;; 81..90                                                                                                        <------------------>
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Pure Minor          "
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   7,   8,   8,   11,   11,   "Purvi Theta         "
        SCALE_ENTRY     0,   2,   2,   3,   3,   6,   6,   7,   9,   9,   10,   10,   "Roumanian Minor     "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   8,   8,   8,   9,   9,   9,   "Six Tone Symmetrical"
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   8,   10,   10,   "Spanish Gypsy       "
        SCALE_ENTRY     0,   1,   1,   3,   4,   6,   6,   8,   8,   10,   10,   10,   "Super Locrian       "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Theta, Asavari      "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   11,   11,   "Theta, Bilaval      "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   8,   11,   11,   "Theta, Bhairav      "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "Theta, Bhairavi     "
   ;; 91..100                                                                                                        <------------------>
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   10,   10,   "Theta, Kafi         "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   9,   9,   11,   11,   "Theta, Kalyan       "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   10,   10,   "Theta, Khamaj       "
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   7,   9,   9,   11,   11,   "Theta, Marva        "
        SCALE_ENTRY     0,   1,   1,   3,   3,   6,   6,   7,   8,   8,   11,   11,   "Todi Theta          "
        SCALE_ENTRY     0,   1,   2,   2,   5,   5,   7,   7,   8,   9,   9,   9,   "M. Bhavapriya 44    "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   9,   9,   10,   10,   "M. Chakravakam 16   "
        SCALE_ENTRY     0,   3,   3,   3,   4,   5,   7,   7,   10,   10,   10,   11,   "M. Chalanata 36     "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   8,   8,   10,   10,   "M. Charukesi 26     "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   10,   10,   10,   11,   "M. Chitrambari 66   "
    ;; 101..110                                                                                                        <------------------>
        SCALE_ENTRY     0,   2,   2,   3,   3,   6,   6,   7,   9,   9,   11,   11,   "M. Dharmavati 59    "
        SCALE_ENTRY     0,   3,   3,   3,   4,   6,   6,   7,   8,   8,   11,   11,   "M. Dhatuvardhani 69 "
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   7,   8,   9,   9,   9,   "M. Dhavalambari 49  "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   8,   8,   11,   11,   "M. Dhenuka 9        "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   11,   11,   "M. Dhirasankarabhara"
        SCALE_ENTRY     0,   1,   1,   3,   3,   6,   6,   7,   10,   10,   10,   11,   "M. Divyamani 48     "
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   7,   9,   9,   11,   11,   "M. Gamanasrama 53   "
        SCALE_ENTRY     0,   1,   2,   2,   5,   5,   7,   7,   8,   8,   11,   11,   "M. Ganamurti 3      "
        SCALE_ENTRY     0,   3,   3,   3,   4,   5,   7,   7,   8,   8,   11,   11,   "M. Gangeyabhusani 33"
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   11,   11,   "M. Gaurimanohari 23 "
    ;; 111..120                                                                                                        <------------------>
        SCALE_ENTRY     0,   1,   1,   3,   3,   6,   6,   7,   8,   9,   9,   9,   "M. Gavambodhi 43    "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   8,   9,   9,   9,   "M. Gayakapriya 13   "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   8,   8,   10,   10,   "M. Hanumattodi 8    "
        SCALE_ENTRY     0,   2,   2,   4,   4,   5,   7,   7,   9,   9,   10,   10,   "M. Harikambhoji 28  "
        SCALE_ENTRY     0,   1,   1,   4,   4,   5,   7,   7,   10,   10,   10,   11,   "M. Hatakambari 18   "
        SCALE_ENTRY     0,   2,   2,   3,   3,   6,   6,   7,   9,   9,   10,   10,   "M. Hemavati 58      "
        SCALE_ENTRY     0,   1,   2,   2,   6,   6,   6,   7,   8,   8,   10,   10,   "M. Jalarnavam 38    "
        SCALE_ENTRY     0,   1,   2,   2,   6,   6,   6,   7,   9,   9,   10,   10,   "M. Jhalavarali 39   "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   10,   10,   "M. Jhankaradhvani 19"
        SCALE_ENTRY     0,   3,   3,   3,   4,   6,   6,   7,   8,   8,   10,   10,   "M. Jyotisvarupini 68"
   ;; 121..127                                                                                                        <------------------>
        SCALE_ENTRY     0,   1,   1,   4,   4,   6,   6,   7,   8,   8,   11,   11,   "M. Kamavardhani 51  "
        SCALE_ENTRY     0,   1,   2,   2,   5,   5,   7,   7,   8,   9,   9,   9,   "M. Kanakangi 1      "
        SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   8,   9,   9,   9,   "M. Kantamani 61     "
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   9,   9,   10,   10,   "M. Kharaharapriya 22"
        SCALE_ENTRY     0,   2,   2,   3,   3,   5,   7,   7,   8,   8,   11,   11,   "M. Kiravani 21      "
        SCALE_ENTRY     0,   1,   1,   3,   3,   5,   7,   7,   9,   9,   11,   11,   "M. Kokilapriya 11   "
        SCALE_ENTRY     0,   3,   3,   3,   4,   6,   6,   7,   9,   9,   11,   11,   "M. Kosalam 71       "
   SCALE_ENTRY     0,   2,   2,   4,   4,   6,   6,   7,   8,   8,   11,   11,   "M. Latangi 63       "

   ;; 129....                                                                                                         <IF> TMP1
   btfsc   WREG, 7; ensure that note >= 0
   addlw 12   
   movwf   TMP1   ; normalized note value will be in TMP1
   clrf   TMP2   ; octave will be in TMP2
SEQ_SCALE_Note_Loop
   movlw   12-1
   cpfsgt   TMP1, ACCESS
   rgoto SEQ_SCALE_Note_Loop_Break
   incf   TMP2, F
   movlw   -12
   addwf   TMP1, F
   rgoto   SEQ_SCALE_Note_Loop
SEQ_SCALE_Note_Loop_Break

   ;; get scaled value from table
   rcall   SEQ_SCALE_GetScale
   mullw   12/2+20
   clrc
   rrf   TMP1, W
   addwf   PRODL, F

   movlw   LOW(SEQ_SCALE_TABLE)
   addwf   PRODL, W
   movwf   TBLPTRL
   movlw   HIGH(SEQ_SCALE_TABLE)
   addwfc   PRODH, W
   movwf   TBLPTRH

   tblrd*+
   movf   TABLAT, W
   btfsc   TMP1, 0
   swapf   TABLAT, W
   andlw   0x0f
   movwf   TMP1

   ;; multiply octave
   movf   TMP2, W
   mullw   12
   movf   PRODL, W
   addwf   TMP1, W

   ;; add root note
   addwf   TMP3, W

   ;; decrement octave so long note >= 0x80
SEQ_SCALE_Note_Loop2
   BRA_IFCLR WREG, 7, ACCESS, SEQ_SCALE_Note_Loop2_Break
   addlw   -12
   rgoto   SEQ_SCALE_Note_Loop2
SEQ_SCALE_Note_Loop2_Break

   ;; store value in SEQ_EVNT1
   movwf   SEQ_EVNT1, BANKED
   
SEQ_SCALE_Note_End
   return
   

;; --------------------------------------------------------------------------
;;  this function prints the name of a scale
;;  IN: scale number in WREG
;;  OUT: 20 characters
;;  USES: FSR1
;; --------------------------------------------------------------------------
SEQ_SCALE_Prn
   TABLE_ADDR_MUL_W SEQ_SCALE_TABLE, 12/2 + 20
   movlw   12/2
   addwf   TBLPTRL, F
   movlw   0
   addwfc   TBLPTRH, F

   movlw   20
   goto   MIOS_LCD_PrintPreconfString


;; --------------------------------------------------------------------------
;;  This function returns a pointer to the current active scale
;;  IN: scale control mode (0=global, 1-4: group 1-4) in SEQ_GLOBAL_SCALE_CTRL[3:0]
;;  OUT: pointer to scale in FSR1
;;  USES: FSR1
;; --------------------------------------------------------------------------
SEQ_SCALE_GetScalePtr
   SET_BSR   SEQ_BASE
   movf   SEQ_GLOBAL_SCALE_CTRL, W, BANKED
   andlw   0x0f
   bnz   SEQ_SCALE_GetScalePtr_Group

SEQ_SCALE_GetScalePtr_Global         ; use global scale
   lfsr   FSR1, SEQ_GLOBAL_SCALE
   return

SEQ_SCALE_GetScalePtr_Group         ; use group based scale
   lfsr   FSR1, SEQ_TRK2 + SEQ_TRKSCALEx   ; stored in third track, first byte
   addlw   -1
   mullw   4*SEQ_TRKRECORD_LENGTH
   movf   PRODL, W
   addwf   FSR1L, F
   movf   PRODH, W
   addwfc   FSR1H, F
   return

;; --------------------------------------------------------------------------
;;  This function returns the scale
;;  IN: -
;;  OUT: scale in WREG
;;  USES: FSR1
;; --------------------------------------------------------------------------
SEQ_SCALE_GetScale
   rcall   SEQ_SCALE_GetScalePtr
   movf   INDF1, W
   return

;; --------------------------------------------------------------------------
;;  This function returns a pointer to the current active root note
;;  IN: scale control mode (0=global, 1-4: group 1-4) in SEQ_GLOBAL_SCALE_CTRL[3:0]
;;  OUT: pointer to root note in FSR1
;;       the note is located in bitfield [7:4] !!!
;;  USES: FSR1
;; --------------------------------------------------------------------------
SEQ_SCALE_GetRootPtr
   SET_BSR   SEQ_BASE
   movf   SEQ_GLOBAL_SCALE_CTRL, W, BANKED
   andlw   0x0f
   bnz   SEQ_SCALE_GetRootPtr_Group

SEQ_SCALE_GetRootPtr_Global         ; use global scale
   lfsr   FSR1, SEQ_GLOBAL_SCALE_CTRL
   return

SEQ_SCALE_GetRootPtr_Group         ; use group based scale
   lfsr   FSR1, SEQ_TRK3 + SEQ_TRKSCALEROOTx   ; stored in fourth track, first byte
   addlw   -1
   mullw   4*SEQ_TRKRECORD_LENGTH
   movf   PRODL, W
   addwf   FSR1L, F
   movf   PRODH, W
   addwfc   FSR1H, F
   return

;; --------------------------------------------------------------------------
;;  This function returns the scale
;;  IN: -
;;  OUT: scale in WREG
;;  USES: FSR1
;; --------------------------------------------------------------------------
SEQ_SCALE_GetRoot
   rcall   SEQ_SCALE_GetRootPtr
   swapf   INDF1, W
   andlw   0x0f
   return



more info here: http://www.ucapps.de/midibox_seq_v3.html

_________________
Sneak-Thief - raw electrofunk
Back to top
View user's profile Send private message Visit poster's website
PickNick



Joined: Oct 16, 2009
Posts: 82
Location: BP

PostPosted: Mon May 31, 2010 2:47 am    Post subject: Reply with quote  Mark this post and the followings unread

another great stuff>
http://translate.google.com/translate?hl=en&langpair=fr|en&u=http://www.acoupel.com/indexfr.html&rurl=translate.google.com&client=tmpg
Back to top
View user's profile Send private message
PickNick



Joined: Oct 16, 2009
Posts: 82
Location: BP

PostPosted: Mon May 31, 2010 2:51 am    Post subject: Reply with quote  Mark this post and the followings unread

i mean this...sorry

http://www.acoupel.com/sequencer/intro/intro_sequencer.htm
Back to top
View user's profile Send private message
Boogdish



Joined: Sep 21, 2009
Posts: 122
Location: Bloomington, IN

PostPosted: Mon May 31, 2010 7:58 pm    Post subject: Reply with quote  Mark this post and the followings unread

I implemented some table lookups to the code and was able to shave about 1000 lines of code off! I've also got it automating the threshold's between notes, which will make future implementation of switches and user defined patterns even easier.

I also added two more modes, blues scale and whole tone scale. I also wrote some better notes in the code for this one to make it easier to follow for anyone checking the code.

Blues scale is really fun, you can get an authentic cheesy guitar solo from just going up and down on the input voltage.

Thanks to everyone who has posted in this thread. I'm a beginner at this stuff and your suggestions are leading me to a lot of learning and improving my coding skill. I'm starting to really enjoy this programming business.


all tables.txt
 Description:
Assembly code for variable mode CV quantizer.

Download
 Filename:  all tables.txt
 Filesize:  7.55 KB
 Downloaded:  1161 Time(s)

Back to top
View user's profile Send private message Visit poster's website
Junk Rhythm



Joined: Jan 07, 2008
Posts: 81
Location: San Francisco, CA

PostPosted: Sat Jun 05, 2010 6:34 pm    Post subject: Reply with quote  Mark this post and the followings unread

I got the quantizer working. Lot's of fun so far. I noticed that I'm getting a pop in the output from the quantizer. The pop is cyclic and repeats every few seconds. Anyone else getting this issue?
_________________
[twitter] [blog] [flickr] [toppobrillo] [buzz]
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
Rykhaard



Joined: Sep 02, 2007
Posts: 1290
Location: Canada

PostPosted: Sat Jun 05, 2010 9:57 pm    Post subject: Reply with quote  Mark this post and the followings unread

g.p.macklin wrote:
I got the quantizer working. Lot's of fun so far. I noticed that I'm getting a pop in the output from the quantizer. The pop is cyclic and repeats every few seconds. Anyone else getting this issue?


Oooo! I'm looking forward to this! (Now also, thanks to your suggestion that helped get my PICkit 3 up and running. Currently going through lessons with it.)

Once I learn a few more things, I'd like to try a whack at this as well.

As to the pop - what about applying the formula for the output cap. from the Tips and Tricks.pdf that's listed in the PWM section. Maybe that could help?
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
Junk Rhythm



Joined: Jan 07, 2008
Posts: 81
Location: San Francisco, CA

PostPosted: Mon Jun 07, 2010 11:35 am    Post subject: Reply with quote  Mark this post and the followings unread

Rykhaard wrote:
As to the pop - what about applying the formula for the output cap. from the Tips and Tricks.pdf that's listed in the PWM section. Maybe that could help?


Thanks for the tip. I'll take a look at that document.

_________________
[twitter] [blog] [flickr] [toppobrillo] [buzz]
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 1 of 3 [51 Posts]
View unread posts
View new posts in the last week
Goto page: 1, 2, 3 Next
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use