Variable pitch system arduino

This is where record cutters raise questions about cutting, and trade wisdom and experiment results. We love Scully, Neumann, Presto, & Rek-O-Kut lathes and Wilcox-Gay Recordios (among others). We are excited by the various modern pro and semi-pro systems, too, in production and development. We use strange, extinct disc-based dictation machines. And other stuff, too.

Moderators: piaptk, tragwag, Steve E., Aussie0zborn

Post Reply
User avatar
Fuzzbox
Posts: 22
Joined: Thu Nov 23, 2017 1:57 pm

Variable pitch system arduino

Post: # 65213Unread post Fuzzbox
Wed Jun 26, 2024 6:08 pm

Hi,
There’s been talk about an arduino controlling a variable pitch controller
Currently I’m using a stepper motor for feed screw
I got this system to work but would like some feedback on improvements to code properly
I just use ChatGPT to write for me
I have audio output left and right into 2 electret mic modules hooked to an arduino’s analog inputs
This is so it can read the ac voltages. Dc biased at 2.5 center.
On an arduino 512 is the lowest as its center than it modulates 512 values to 1023 up and 0 down
Using the deviation from 512 the louder the signal in is, the faster the motor
I have this working fine
I’m a bit confused about delay and also using the previous groove voltage stored to put in effect a proper speed for the groove
I get that it takes 1.8secs to rotate at 33.33rpm so I’ve delayed the audio from daw according to cutter head
How can I implement this with left and right channels to its fullest potential
Thanks

User avatar
markrob
Posts: 1728
Joined: Wed Nov 28, 2007 1:14 am
Location: Philadelphia Area

Re: Variable pitch system arduino

Post: # 65221Unread post markrob
Thu Jun 27, 2024 10:22 am

Hi,

This is a big project. What is your end goal here? On a DIY lathe setup, do you really need the time or cutting level gains that variable pitch provides? Do you tend to cut program material that has enough dynamic range that would benefit from variable pitch? Do you have your entire cutting system software and head EQ up and running with good results? Are you cutting mono or stereo? If stereo, are you planning to do depth control? Are you able to dial in static LPI settings and verify that they are correct when cut? Can you perform proper lead-ins and lead-outs with ramps from cutting LPI's of say 160 to 4 lpi? If not, I would work on getting that running first before trying to implement a variable pitch control.

I'm not sure why you are using electret mics to sample program audio. What audio sample rate are you using on the Arduino? What Arduino are you using for your controller?

Mark

User avatar
dmills
Posts: 208
Joined: Sun Jun 16, 2019 3:33 pm
Location: Uk

Re: Variable pitch system arduino

Post: # 65222Unread post dmills
Thu Jun 27, 2024 12:33 pm

Not sure I would do it with an Arduino, bit lacking in ram for the various delay lines and grunt for the filtering, but it is not too hard in a PC or something like a snickerdoodle.

Trick is to have well calibrated controls and servo motors, having precisely known DAC value per um and well understood servo motor dynamics is REALLY helpful for this.

I did it but also took the opportunity to move the IRIAA and HF limiting into software (because why not) and used it as a chance to teach myself the rudiments of rust.

Sampling with mics is not going to work real well here, you need some fairly exact timing relationships and need a turns worth of delay line in the cutter path which is easy in software but needs clean audio (it is after all what you are going to be cutting).

You are basically storing the displacement of the inner wall of the previous groove (that was cut half a turn ago) and seeking to ensure that the outer wall of the groove that will be cut in half a turn will leave at least minimum land available. You want to be doing the sums a half turn ahead so that the carriage velocity can be filtered to a smooth curve that encompasses all the required minimum displacement points and has minimal acceleration, jerk and joust.

Depth is actually somewhat easier, but feeds into groove width as it adds to the displacement since the width at the top of the groove is twice the depth assuming a 45 degree wall.
If you are doing the depth with a voice coil motor pulling the cutter down then you will want to apply the square of the depth demand signal to make it actually cut the correct depth.

It is the sort of thing that you could probably build in max-msp or such, and that might actually be the easy way to experiment. If you have it output tones on a couple of spare soundcard outputs those can be squared up to drive servo motors or fed to a frequency to voltage circuit to drive voltages.

A subtle point, and I am not completely sure what the right answer here is, is that the control buttons should probably feed to demand values thru the same order of delay line as the audio travels so that a marker band, leadout, lock groove or increased spacing due to dynamics to avoid print thru gets the same smoothly filtered response as a spacing change to avoid groove damage does, but this means you are monitoring pre delay.

User avatar
Fuzzbox
Posts: 22
Joined: Thu Nov 23, 2017 1:57 pm

Re: Variable pitch system arduino

Post: # 65224Unread post Fuzzbox
Thu Jun 27, 2024 8:40 pm

Hi thanks for you inputs. I was only using the circuit past the mic (headphone jack connected to module instead of mic). I got to where it’s reading a nice voltage giving lots of variables when audio plays. I was trying to do this because I’m now cutting 12in records for clients and they all wanted like 19 min. Per side. Decided the past day to save this project for later. Deadlines.
Anyways if anyone is interested this system works with an aurdino 2208 drivers and stepper motor
You can tell chatgtp you have 2 analog inputs on the aurdino and control the speed by voltage (from audio signal). It writes code for you in 2 seconds. Moving forward you can tell it to store past 1.8secs samples for 33rpm. I got it to work to a degree but don’t think steppers are the best for this. Thank yall

User avatar
dmills
Posts: 208
Joined: Sun Jun 16, 2019 3:33 pm
Location: Uk

Re: Variable pitch system arduino

Post: # 65228Unread post dmills
Fri Jun 28, 2024 9:13 am

Steppers are simple but are usually the wrong choice in a system designed for low mechanical noise and wide speed range, a coreless BLDC with FOC is a far superior approach, but the software is massively more complex.

I highly commend strain wave gears for this sort of thing as well BTW, near zero backlash and no tendency to cog.

Tinplate
Posts: 10
Joined: Sun Jun 08, 2008 5:17 pm
Location: Poland
Contact:

Re: Variable pitch system arduino

Post: # 65262Unread post Tinplate
Tue Jul 02, 2024 8:53 pm

As already said, the best option will probably be a servo or BLDC motor with appropriate DSP control. However, if someone has to use steppers, a better choice will be 2-phase motors, but with 0.9 degrees per step, i.e. 400 steps per revolution. Even better will be less known 5-phase steppers (e.g. from Vexta or Berger Lahr) that have 500 steps per revolution. Such motors have radically lower vibrations than standard 200-step motors. There are also 3-phase steppers that have 600 steps per revolution (1200 in half-step mode). An example is the Japan Servo KT60 motor. Microstep control can also be used. A belt transmission and flywheels on the motor and lead screw will also be useful to dampen remaining vibrations.

User avatar
dmills
Posts: 208
Joined: Sun Jun 16, 2019 3:33 pm
Location: Uk

Re: Variable pitch system arduino

Post: # 65263Unread post dmills
Wed Jul 03, 2024 6:22 am

There are inertia dampers available explicitly to quiet down steppers, but steppers are still a bit nasty even if you try to do everything right.

See for example https://www.phytron.eu/products/mechanics-equipment/dmp-20-29-37-inertial-damper-for-stepper-motors/

Post Reply