JDS Labs C5/C5D (pg96) portable amp/amp+DAC
Feb 20, 2013 at 2:17 PM Post #256 of 3,417
Quote:
Quote:
Yes, there is - Meier Audio Stepdance / Quickdance has a digital volume control set by an analog potentiometer . But It is an unusual implementation that I don't think will fit inside the C5.


That's a shame then. I think the joystick thingie is rather gimmicky and inconvenient. I remember using a similar one on some gear (can't remember what): I had to wait patiently until I reached a proper level, or I would go too far and I'd need to go back, trying not to go too far in the other direction as well. Very cumbersome.

frown.gif

I see what you mean. The digital lever takes ~3.5 seconds to go from mute to full volume whereas an analog potentiometer can probably be adjust in a similar way for a fraction of the time.
 
Feb 20, 2013 at 5:49 PM Post #257 of 3,417
I see what you mean. The digital lever takes ~3.5 seconds to go from mute to full volume whereas an analog potentiometer can probably be adjust in a similar way for a fraction of the time.


I think 3.5 seconds is a good time overall for volume. Not sure if the volume controller chip can go faster than 3.5 seconds but if it could and since the C5 firmware is under an open license you could change it if you wanted to (bar the hassle and buying the ISP Programmer and reprogramming it), or maybe request JDSlabs to make a faster timing on request before ordering one if its all possible that is(need JDSlabs to chime in here).

Anyway lets just wait for feedback once the preorder ships cause its all just speculation now.It might just turn out to be better.
 
Feb 20, 2013 at 5:59 PM Post #258 of 3,417
Quote:
Quote:
I see what you mean. The digital lever takes ~3.5 seconds to go from mute to full volume whereas an analog potentiometer can probably be adjust in a similar way for a fraction of the time.


I think 3.5 seconds is a good time overall for volume. Not sure if the volume controller chip can go faster than 3.5 seconds but if it could and since the C5 firmware is under an open license you could change it if you wanted to (bar the hassle and buying the ISP Programmer and reprogramming it), or maybe request JDSlabs to make a faster timing on request before ordering one if its all possible that is(need JDSlabs to chime in here).

Anyway lets just wait for feedback once the preorder ships cause its all just speculation now.It might just turn out to be better.

Yeah it can be changed in the Arduino code no problem. With the default settings it changes the volume 1 step at a time per 55 ms (there are 63 steps total); one could easily decrease the time delay to 16 ms to go from 0-max volume in ~1 seconds.
 
Feb 20, 2013 at 10:23 PM Post #259 of 3,417
Just want to add my 2 cents on the digital vs analog volume pot:
 
The last time I used a digital volume pot that is similar to the C5 was on an old creative mp3 player about a decade, since then I've either used analog volume pot, or digital wheel.
 
Right now, I'm using the xduoo xp-1 as my portable amp, together with my S3, and I find myself wishing it has an analog pot, because when i stick them into my jean pockets, 90% of the time, I will accidentally twist the volume knob. Either that or when i'm walking, the cuff of pocket will rub against the volume knob, turning the volume up and down, up and down, as I walk (yes it's as comical as I'm making it sound). So in this instance, the digital volume knob will be better for me, as it has a smaller profile, so there's a smaller chance of me accidentally bumping up or down the volume.
 
Another reason I MAY (have to actually try it out first) prefer a digital volume pot, especially one with many steps, is that it's easier to adjust the volume for iems that require fine volume tuning (it's hard to finely move the volume pot mm by mm to get your desired volume when you're walking fast. I had this very problem this morning). Adding to the fact that the on-off switch is also the volume pot (turned to the lowest volume to switch off the amp) means I have to finely adjust the volume pot every time i switch on the amp. 
 
Since the C5 has a separate switch, I hope the amp is able to "remember" the volume setting when it was last switched on. This means that I will not need to fiddle with the volume setting everytime I switch on the amp, and I will not be bothered by the "harder to use" volume pot problem that everyone is so worried about ( I'll just take my own time to adjust the volume, then not bothered with it again). Of course, if you use the C5 with a variety of iems, then this won't really help you. Does anyone know if this is the case with the C5, because I don't remember seeing it when reading the product page, or blog post.
 
So to me, I see 3 additional advantages with a digital volume "pot" compared to an analog one (besides the channel imbalance issue): Smaller footprint (good for portability), less possible accidental changing of volume, and easier to make fine adjustment in volume. YMMV. 
 
Feb 20, 2013 at 10:31 PM Post #260 of 3,417
Quote:
Just want to add my 2 cents on the digital vs analog volume pot:
 
The last time I used a digital volume pot that is similar to the C5 was on an old creative mp3 player about a decade, since then I've either used analog volume pot, or digital wheel.
 
Right now, I'm using the xduoo xp-1 as my portable amp, together with my S3, and I find myself wishing it has an analog pot, because when i stick them into my jean pockets, 90% of the time, I will accidentally twist the volume knob. Either that or when i'm walking, the cuff of pocket will rub against the volume knob, turning the volume up and down, up and down, as I walk (yes it's as comical as I'm making it sound). So in this instance, the digital volume knob will be better for me, as it has a smaller profile, so there's a smaller chance of me accidentally bumping up or down the volume.
 
Another reason I MAY (have to actually try it out first) prefer a digital volume pot, especially one with many steps, is that it's easier to adjust the volume for iems that require fine volume tuning (it's hard to finely move the volume pot mm by mm to get your desired volume when you're walking fast. I had this very problem this morning). Adding to the fact that the on-off switch is also the volume pot (turned to the lowest volume to switch off the amp) means I have to finely adjust the volume pot every time i switch on the amp. 
 
Since the C5 has a separate switch, I hope the amp is able to "remember" the volume setting when it was last switched on. This means that I will not need to fiddle with the volume setting everytime I switch on the amp, and I will not be bothered by the "harder to use" volume pot problem that everyone is so worried about ( I'll just take my own time to adjust the volume, then not bothered with it again). Of course, if you use the C5 with a variety of iems, then this won't really help you. Does anyone know if this is the case with the C5, because I don't remember seeing it when reading the product page, or blog post.
 
So to me, I see 3 additional advantages with a digital volume "pot" compared to an analog one (besides the channel imbalance issue): Smaller footprint (good for portability), less possible accidental changing of volume, and easier to make fine adjustment in volume. YMMV. 

From what I can read in the code, the volume is set to the lowest volume when the amp is turned on; as in, when you turn it on, it loads the volume as 0 volume. I'm not sure if it can remember a state once it's turned off.
 
Feb 21, 2013 at 2:00 AM Post #262 of 3,417
Well I thought I saw that it saves your current settings when switched off
 
Feb 21, 2013 at 2:03 AM Post #263 of 3,417
Quote:
From what I can read in the code, the volume is set to the lowest volume when the amp is turned on; as in, when you turn it on, it loads the volume as 0 volume. I'm not sure if it can remember a state once it's turned off.


The code actually checks to see if the current volume and gain values in memory are the same as the currently in use values (checks every 2 seconds), and if they are not, it stores the current value into memory.  You should have the last used value resume upon powering up the amp next time.  (as long as you have waited 2 seconds since making the change.)
There is code to read memory, and if the value is greater than the min/mute, it defaults to min (not mute). 
 
An option could be to set a max volume at boot as well as a min, so you know it will never start beyond that value.  This is somewhat paranoid however, but if you used IEMs a lot, may be worth doing.  Also, if you had your Cans on, and switched to IEMs the next day, it could stop you from blasting yourself. (this is more likely than any corruption, which is also checked for :) )
 
The variables are initialized at first as default values, then the stored values are read from memory, and values are checked for corruption, then they are sent down the wire, and you are restored to last known values and are back in business!
 
Feb 21, 2013 at 2:45 AM Post #264 of 3,417
Quote:
Quote:
From what I can read in the code, the volume is set to the lowest volume when the amp is turned on; as in, when you turn it on, it loads the volume as 0 volume. I'm not sure if it can remember a state once it's turned off.


The code actually checks to see if the current volume and gain values in memory are the same as the currently in use values (checks every 2 seconds), and if they are not, it stores the current value into memory.  You should have the last used value resume upon powering up the amp next time.  (as long as you have waited 2 seconds since making the change.)
There is code to read memory, and if the value is greater than the min/mute, it defaults to min (not mute). 
 
An option could be to set a max volume at boot as well as a min, so you know it will never start beyond that value.  This is somewhat paranoid however, but if you used IEMs a lot, may be worth doing.  Also, if you had your Cans on, and switched to IEMs the next day, it could stop you from blasting yourself. (this is more likely than any corruption, which is also checked for :) )
 
The variables are initialized at first as default values, then the stored values are read from memory, and values are checked for corruption, then they are sent down the wire, and you are restored to last known values and are back in business!

Oh is that what that section does? I did see checks the volume every 2 seconds, but I didn't know it actually stores the value from a previous session. At the top of the code I thought it initialises everything to 0, basically.
 
Feb 21, 2013 at 3:17 AM Post #265 of 3,417
Quote:
Oh is that what that section does? I did see checks the volume every 2 seconds, but I didn't know it actually stores the value from a previous session. At the top of the code I thought it initialises everything to 0, basically.


Its pretty neat, the:
Code:
 EEPROM.read(0) and EEPROM.write(0, attenuation) (also 1 / gain)
reads and writes from, well, the eeprom.  So far only location 0 and 1 are used, which leaves 510 more bytes for use (thank you John for pointing me at the ATmega168A spec.)
Yep, you are right, it sets everything to 0-ish, then it writes those values to the wire, then it grabs the previous values from memory and sets the gain and volume again.
Setting the volume its lowest setting while starting is good, its nice to be quiet while bringing up a system and these changes happen very fast. (NOTE: for people looking to change their firmware, an attenuation value of 0 is MAX volume, where a value of 62 is lowest, and 63 is mute. This is noted in the comments, just be aware so you don't bleed your ears. When miceblue and I are reference initializing values to 0, attenuation for example becomes, attenuation = 32 </end nerd nerd nerd>)
 
Edit: for grammar.
 
Feb 21, 2013 at 3:34 AM Post #266 of 3,417
Quote:
Quote:
Oh is that what that section does? I did see checks the volume every 2 seconds, but I didn't know it actually stores the value from a previous session. At the top of the code I thought it initialises everything to 0, basically.


Its pretty neat, the:
Code:
 EEPROM.read(0) and EEPROM.write(0, attenuation) (also 1 / gain)
reads and writes from, well, the eeprom.  So far only location 0 and 1 are used, which leaves 510 more bytes for use (thank you John for pointing me at the ATmega168A spec.)
Yep, you are right, it sets everything to 0-ish, then it writes those values to the wire, then it grabs the previous values from memory and sets the gain and volume again.
Setting the volume its lowest setting while starting is good, its nice to be quiet while bringing up a system and these changes happen very fast. (NOTE: for people looking to change their firmware, an attenuation value of 0 is MAX volume, where a value of 62 is lowest, and 63 is mute. This is noted in the comments, just be aware so you don't bleed your ears. When miceblue and I are reference initializing values to 0, attenuation for example becomes, attenuation = 32 </end nerd nerd nerd>)
 
Edit: for grammar.

Right, the volume is set by "attenuation"; so at attenuation = 0, that means the volume isn't attenuated, which means the maximum volume level.
 
And thank you for clarifying the EEPROM.read part. That was pretty much the only part of the code I didn't completely understand. >.>
It makes sense now though.
 
......right...I didn't see this earlier.
 
Code:
   // Retrieve volume and gain values from EEPROM. [u]Set default values if EEPROM is new[/u] or corrupted.
 
 
 
So in short: YES the volume level is remembered from the previous session
 
Feb 21, 2013 at 9:25 AM Post #267 of 3,417
I think this digital volume will be one of those 'love or hate' things. Without trying I imagine that I'd prefer the normal analog pot, but that's just me.
 
Feb 21, 2013 at 11:43 AM Post #268 of 3,417
It won't get noisey over time and it won't damage your ears from just sticking something in your pocket. Even if you stuck the lever over, a couple seconds is long enough to disconnect, pull off your phones or correct the issue. Shorter may not be. Fine tuning V is also easier with a slower scale. We've got over 18 steps per second here. Seems reasonable to me.
 

Users who are viewing this thread

Back
Top