Your opinions please...

Non-computer-related chit-chat

Moderators: ChrisThornett, LXF moderators

Your opinions please...

Postby Bazza » Thu Sep 13, 2012 10:22 am

Hi guys and gals...

(Apologies for any typos.)

I am in the process of building and writing matching Python code to create a CALIBRATED DC-20KHz(ish) sound card, Audio Oscilloscope using Python, Tkinter and PyAudio. I am trying to create a similar effect to this AMIGA one I built and wrote for tha AMIGA nearly 12 years ago. Also to make it platform independant.

Take a look here at the GIF ANIM as it shows exactly what this old project look like on screen:-

http://wisecracker.host22.com/

I am attempting to create the same type of GUI that this old project has using Tkinter - not easy, if at all possible, note, when a button is pressed it stays pressed in until another range is clicked on.

Would you guys please look at the GIF ANIM of the scope and pass your opinions...

The real thing works exactly like the AMIN...

TIA...
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby bobthebob1234 » Thu Sep 13, 2012 12:14 pm

What sort of opinions? Like this?

Needs more green trace on black background. Like all the cool kids. Or can user change it?

Also I assume it isn't a fixed size, those buttons be quite small!

Also the grid disappearing then reappearing is a tad annoying. Make it stay there. Or have a button to turn on and off
For certain you have to be lost to find the places that can't be found. Elseways, everyone would know where it was
User avatar
bobthebob1234
LXF regular
 
Posts: 1373
Joined: Thu Jan 03, 2008 9:38 pm
Location: A hole in a field

Postby Bazza » Thu Sep 13, 2012 1:32 pm

This is an AMIGA program and the Scope is fully configurable from the KB button. Graticule can be turned off and configured in a text config file if so desired. It has a storage facility of 65536 bytes, variable brightness of trace, DC Trace offset, samples through the parallel port at 200KHz and has full dual rail low battery detect. Full trace shift but only has linear interpolation. The executable size is about 85KB and the front end display size about 25KB... Hardware can be made by a youngster, no PCBs to be made download the photos here:-

http://aminet.net/package/docs/hard/TestGear4D

Not sure if they are JPG or IFF/ILBM format now as it was years ago when I did it...

It was 320 x 200 x 32 colours full screen.

The Python one is HOPEFULLY going to be 640 x 400 x ? colours...
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby guy » Thu Sep 13, 2012 9:08 pm

Well, it looks vaguely like an ancient Tektronix scope imitation but with a crummy fixed-pitch font.

But that's blindingly obvious. What other kinds of things do you want opinions on? Whether the front end display size should be increased to 32KB? Whether a second input for dual-trace or X-input, or a peak marker, etc. etc. would be nice?
Cheers,
Guy
The eternal help vampire
User avatar
guy
LXF regular
 
Posts: 1079
Joined: Thu Apr 07, 2005 12:07 pm
Location: Worcestershire

Postby Bazza » Thu Sep 13, 2012 9:38 pm

Guy...

Erm, dual trace is out of the question, maybe you hadn't noticed but my original post did quote sound card, Calibrated and DC input. Not sure how that could be done as dual trace, perhaps you could enlighten me.

However I was more interested in the buttons and general appearance not what measurements can be done. Your font choice might help, colours, whether the buttons should latch, whether it should look like a bench Scope at all. The looks (aesthetics), of the project on screen, not the techy side...
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby guy » Fri Sep 14, 2012 8:41 pm

Bazza wrote:Erm, dual trace is out of the question, maybe you hadn't noticed but my original post did quote sound card, Calibrated and DC input. Not sure how that could be done as dual trace, perhaps you could enlighten me.

I had assumed stereo. Or is that used up by the calibration signal?

However I was more interested in the buttons and general appearance not what measurements can be done. Your font choice might help, colours, whether the buttons should latch, whether it should look like a bench Scope at all. The looks (aesthetics), of the project on screen, not the techy side...

I guess picking up on the desktop theme would be too hard. A few skin options would be nice: screen and chassis selectable separately.
The bench scope look is probably a good idea, unless you are expert in UI design. But no need to be too literal, e,g, a bank of buttons for playing with the skins would be fine.
Latching buttons would be good: "indent" shading when pressed, also, rather than the black border as at present.
"Slow" is not a helpful time step: 10 would be better.
Why the "VERT" button? Just leave it all settable on-the-fly.
Toggling the X-Y settings with the copyright notice is supremely irritating. Move the copyright & word "oscilloscope" to the periphery, or better just flash them onscreen for a second when the app fires up.
Use the space left by "Oscilloscope" to give the vertical range: 10mV-240V p-p or whatever, & move that bit to the top or bottom of the front panel.
Replace the words"status window" with an enlargement of same, e.g. giving one or more of max p-p V, rms V, mean DC level, etc.
Anyway, that's probably enough for now.
Cheers,
Guy
The eternal help vampire
User avatar
guy
LXF regular
 
Posts: 1079
Joined: Thu Apr 07, 2005 12:07 pm
Location: Worcestershire

Postby Bazza » Sat Sep 15, 2012 1:55 pm

Hi Guy...

Crikey, this was meant to be a kids level project not a semi-pro item...

Comments noted and some will not be implemented. I have yet to do a final build the external hardware first. Not sure how flexible Tkinter is for my needs but I will no doubt find out.

The other channel is mainly for DC detection but will be used for other things too, and the two audio outputs for hardware control.

No need for _padding_ on the input as the range is only to about 20KHz. Assuming I am successful then hopefully I can get this to work on any machine and platform that has Python, Tkinter and PyAudio...

As for the VERT button on the AMIGA project, this was for kids to build from about age 10, so I couldn't let them loose on the vertical range and mode without some sort of restraint. It always defaults to 30V/Div AC coupling and each range change requires that you press the VERT button deliberately first, (safety before familiarity). As for the copyright this is only shown at startup on the real item. From then on it informs the user of parameters that are set...

Anyhow thanks for the reply, latching buttons it is again then although I suspect the Tkinter coding will be large to attain this...
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby guy » Sat Sep 15, 2012 4:00 pm

Hi Bazza,
Sorry about so much noise then, but I always prefer to make four useless suggestions that to not bother with the one that matters.

One further thought, though it may be too sophisticated to build: How about a trigger function, for pulse capture? I'm thinking maybe you could pulse or switch the second input signal to capture a single sweep? (just a pushswitch and maybe a couple of resistors)
Cheers,
Guy
The eternal help vampire
User avatar
guy
LXF regular
 
Posts: 1079
Joined: Thu Apr 07, 2005 12:07 pm
Location: Worcestershire

Postby Bazza » Sat Sep 15, 2012 5:37 pm

Hi guy...

Remember...

I only have the one mic/line input channel to spare, but it could be possible when not detecting a DC offset, i.e. the main input switched to AC coupling only using the same HW to detect the DC offsets. Although I would like to give a 64KB store that will be fully user accessible much like the AMIGA one. The only thing is though, I don't think I can better the DC(/Trigger) accuracy better than 5 or 6 bit depth using ordinary bits and pieces...
I will only be using 8 bit depth for the AC component...

Keep 'em cummin'... ;o)
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby guy » Sat Sep 15, 2012 8:19 pm

I was kind of thinking that you could use a sudden change in the DC offset as a trigger.

Failing a physical switch, how about a sample-and-hold (or Freeze) button on the scope?

Then I'm thinking, back in the day, PC soundcards tended to have analogue joystick ports tacked on: a joystick button would be an obvious trigger switch. But I don't know about modern soundcards.

In fact, what is the value of the DC offset input? You could just auto-calculate the DC offset, or have the value fed in at the keyboard (numbers or up/down arrow keys).

That VERT button. I think it's in the wrong place, it's confusing having it in with the timebase settings. It needs to go with the other vertical set buttons, then you can call it SET.
Not such a neat set of buttons then, but at least front panel mouldings are cost-free when they are only virtual.

Well, you said keep 'em comin' :wink:
Cheers,
Guy
The eternal help vampire
User avatar
guy
LXF regular
 
Posts: 1079
Joined: Thu Apr 07, 2005 12:07 pm
Location: Worcestershire

Postby Bazza » Sat Sep 15, 2012 9:06 pm

Hi guy...

I think we are _talking_ at cross purposes here. All I have for I/O is the stereo mic/line inputs and stereo headphone outputs; these are common to most desktop, laptop, notebook and netbook devices. Calibrated AC for one of the mic/line channels is for waveform display, the other is for the DC component of the Calibrated AC display and any external input control; REMEMBER the mic/line inputs have NO DC capability.

The 2 headphone outputs are for external HW control, Y range and AC/DC input switching etc, although I could probably get away with just one of the headphone channels the other being a basic audio test generator...

Anyhow I will attempt a Tkinter front end over the next few weeks or so and grab it for all to see...
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby Bazza » Tue Sep 25, 2012 10:06 am

OK...

I now have MONO _Mic_ input from my MacBook Pro 13 inch through the headphone socket. The problem now is do I make this audipscope project I am doing AC coupled ONLY, OR, have _alternate_ AC measurement and swtiching the one input for the DC component, (if any), every odd(/even) sampling period?

If I am to attempt to make this platform independent then this is really the only way I can get DC into the computer.

So AC only, or the much more difficult AC with DC offset?
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough

Postby guy » Tue Sep 25, 2012 7:15 pm

Well, if you don't do the DC offset then you could do dual-trace after all :P

Better still, make the second line switchable between DC control and AC signal modes. You could then have display options for things like:
- DC offset on trace A
- DC timebase for Trace A
- dual-trace AC
- X-Y games (e.g. Lissajous figures)

A pulse trigger could be done either as a spike in AC mode (with display also set to pulse mode) or by developing the control mode into a more generic serial bus. That last would be cool, allowing the hardware mode selector switch to tell the PC what display modes it can offer.

Might be wise to do a Mk I first, ahem.

If DC is hard and you like the generic bus idea, then maybe make the Mk I dual-trace AC only but with the switchover capability built in, needing only a firmware upgrade or similar to implement the control bus. Unless you want the whole logic implemented in hardware, in which case I trust you will enjoy hardwiring the DC offset signal converter. (Pulse length? Pulse train? CW frequency?)

Much rambling, but maybe something useful in there.
Cheers,
Guy
The eternal help vampire
User avatar
guy
LXF regular
 
Posts: 1079
Joined: Thu Apr 07, 2005 12:07 pm
Location: Worcestershire

Postby Bazza » Wed Sep 26, 2012 12:29 pm

Hi guy...

Hmmm, you look as though you might be remotely interested in this KIDS level project...

As I only have ONE audio input, (worst case, MacBook Pro), then single trace it will be...

Frequency measurement already done here:-

http://code.activestate.com/recipes/577 ... er-4177147

1KHz function generator already done here:-

http://code.activestate.com/recipes/577 ... er-4177147

Simple white noise generator already done here:-

http://code.activestate.com/recipes/577 ... er-4177147

Simple DEMO audioscope idea here:-

http://code.activestate.com/recipes/577 ... er-4177147

DC output variable voltage reference here:-

http://code.activestate.com/recipes/577 ... er-4177147

Plus loads of other stuff I have given away for Linux on there...

This shows I am serious at this KIDS level project...
73...

Bazza, G0LCU...

Team AMIGA...
User avatar
Bazza
LXF regular
 
Posts: 1476
Joined: Sat Mar 21, 2009 11:16 am
Location: Loughborough


Return to Off Topic

Who is online

Users browsing this forum: No registered users and 0 guests

cron