Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 17:01 19 Apr 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Picomite(VGA) V5.07.07 betas - bug fixes + focus on PIO

     Page 15 of 16    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8566
Posted: 09:58am 03 Apr 2023
Copy link to clipboard 
Print this post

I've just updated B34 as follows:

LIBRARY LIST ALL implemented
Support for mono output in PLAY SOUND
PLAY SOUND chan, M, waveform, freq [,vol]
When M is set the right channel is set to to be the invert of the left





See the previous page for all the details of other changes
Edited 2023-04-03 20:45 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3490
Posted: 11:08am 03 Apr 2023
Copy link to clipboard 
Print this post

Does this also work with:


OPTION AUDIO GP6


(Only 1 PWM channel used, the other (GP7) free for other IO ?)

Volhout

P.S. I can imagine it will not work the other way around (not using PWM3A, but using PWM3B).
Edited 2023-04-03 21:10 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8566
Posted: 11:18am 03 Apr 2023
Copy link to clipboard 
Print this post

No:

The two channels are running as normal just 180 degrees out of phase
Note on my VGA board design I am using GP22 and GP23 for audio (+ GP24,gp29 if DAC)
Edited 2023-04-03 21:20 by matherp
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5882
Posted: 11:32am 03 Apr 2023
Copy link to clipboard 
Print this post

  Quote  LIBRARY LIST ALL implemented

Thanks
VK7JH
MMedit   MMBasic Help
 
mozzie
Regular Member

Joined: 15/06/2020
Location: Australia
Posts: 68
Posted: 02:18pm 03 Apr 2023
Copy link to clipboard 
Print this post

G'day Peter,
Once again my thanks, this time for the Mono function in Play Sound  
With a little testing so far this has completely removed the noise problems with the Pico switching PSU in mono applications.

Awesome work.

Regards,
Lyle.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8566
Posted: 03:37pm 03 Apr 2023
Copy link to clipboard 
Print this post

I can fix PLAY TONE - you will just use a negative frequency for the right channel. This will be in the first release candidate

e.g. PLAY TONE 400,-400

This will only work when the audio is stopped as subsequent PLAY TONE commands when a tone is active maintain the phase position to  avoid pops

So

PLAY TONE 400,-400
PAUSE 1100
PLAY TONE 800,-800 'ERROR

PLAY TONE 400,-400,1000
PAUSE 1100
PLAY TONE 800,-800 'OK

PLAY TONE 400,-400
PAUSE 1000
PLAY TONE 800,800 'Negative phase relationship maintained
Edited 2023-04-04 01:56 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3490
Posted: 07:03pm 03 Apr 2023
Copy link to clipboard 
Print this post

  matherp said  I can fix PLAY TONE - you will just use a negative frequency for the right channel. This will be in the first release candidate

e.g. PLAY TONE 400,-400

This will only work when the audio is stopped as subsequent PLAY TONE commands when a tone is active maintain the phase position to  avoid pops

So

PLAY TONE 400,-400
PAUSE 1100
PLAY TONE 800,-800 'ERROR

PLAY TONE 400,-400,1000
PAUSE 1100
PLAY TONE 800,-800 'OK

PLAY TONE 400,-400
PAUSE 1000
PLAY TONE 800,800 'Negative phase relationship maintained


I understand exactly what the issue is, but this is very hard to program in a game.
Whenever there is a slight delay in the main loop you run the risk the game stalls in a error. The PAUSE 1100 between notes will contain part of the game process (video/sprites/key handling) and can vary slightly. Correct ?
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8566
Posted: 09:46pm 03 Apr 2023
Copy link to clipboard 
Print this post

  Quote  PAUSE 1100 between notes will contain part of the game process (video/sprites/key handling) and can vary slightly. Correct ?


play tone has a completion interrupt which seems to be missing in the manuals

PLAY TONE lfreq,rfreq [,duration [,interrupt]]

Play tone 400,400,2000,myint
Do
Loop
Sub myint
Print "end"
End
End Sub

Edited 2023-04-04 07:50 by matherp
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3830
Posted: 09:59pm 03 Apr 2023
Copy link to clipboard 
Print this post

  Volhout said  I understand exactly what the issue is, but this is very hard to program in a game.


Why would you use PLAY TONE in a game rather than PLAY SOUND ? With the former, amongst other limitations you can't play music and FX simultaneously.

Best wishes,

Tom
Edited 2023-04-04 08:00 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
mozzie
Regular Member

Joined: 15/06/2020
Location: Australia
Posts: 68
Posted: 02:15am 04 Apr 2023
Copy link to clipboard 
Print this post

G'day Peter,
Without enough knowledge "under the bonnet" of the RP2040 / MMbasic, is the following possible?

Make the negative implicit, must be used always for inverted output? -0 then becomes an issue.

Add a further parameter to the command for inverted, (put an i on the end?)

Add a further option in the Option Audio command to invert the signal always, although this may restrict flexibility.

As Volhout suggests, having the signal de-invert may cause issues if unexpected.

To say the PicoMite is becoming "Feature Rich" is a monumental understatement  

Also found the following in B34:


> play sound 1,b,n,1
> play sound 1,l,n,1
Error : Not loaded
> play sound 1,r,n,1
Error : Not loaded


@Thwill
The Play Tone command is better for warning sounders etc due to the 100% modulation. Also useful for non audio applications. Try it with the frequencies only a couple of Hz apart, sounds very SciFi  

Regards,
Lyle
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3490
Posted: 04:58am 04 Apr 2023
Copy link to clipboard 
Print this post

The antiphase mono is something you  have to adapt the hardware for. So please put this in the options

OPTION AUDIO GPX,GPY,MONO

Or, as Tom says, remove it from play tone, only in play sound.
PicomiteVGA PETSCII ROBOTS
 
mozzie
Regular Member

Joined: 15/06/2020
Location: Australia
Posts: 68
Posted: 06:16am 04 Apr 2023
Copy link to clipboard 
Print this post

G'day Volhout,
Peter will be able to answer this, but after poking all sorts of things at the PWM modules and getting nowhere, the inversion is possibly a negate / not / inv of the left channel value and send it to the right, also only need to calculate one PWM value that way rather than two.

This is purely a guess on my behalf  

Peter, this was purely a "wish list" item but it would be handy to have.

Regards,
Lyle.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3490
Posted: 06:26am 04 Apr 2023
Copy link to clipboard 
Print this post

Feature rich.... that indeed is an understatement.

In the days I was young, ages ago, I grasped the basic of my Acorn Atome, Oric Atmos, C64 in few days. From reading magazines, I understood how you could use the "few" commands in these Basic interpreters to do great things.

I am using MMBasic now for years, (and I am older...), but need to read up in the manual often because there are so many commands, functions, and especially...options within commands. I think it has gone beyond the point of BASIC. It is TOP. Let's call it MMTOP now....

Volhout
PicomiteVGA PETSCII ROBOTS
 
nbrok

Regular Member

Joined: 13/02/2023
Location: Netherlands
Posts: 59
Posted: 06:59am 04 Apr 2023
Copy link to clipboard 
Print this post

I agree with Volhout. It is very nice and great job what Peter does, but the BASIC became so big that a new manual is necessary and Geoff cannot hold on with all the changes made. What I've experienced with projects like these that many new bugs will be introduced. Not intentionally but I don't trust the C compiler completely. At the ROSCOM M68K project a bug in the compiler did the SD-spi disk I/O system not working properly. When the newest compiler version came, our disk I/O problem was magically solved..... We lost a lot of time looking to solve the problem...
Greetings,
Nick de pe1goo
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8566
Posted: 07:17am 04 Apr 2023
Copy link to clipboard 
Print this post

  Quote  Also found the following in B34:


Thanks - will fix

  Quote  Or, as Tom says, remove it from play tone, only in play sound.


Will remove it - was just responding to a request
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5705
Posted: 07:28am 04 Apr 2023
Copy link to clipboard 
Print this post

MMBasic is a labour of love and should be regarded as such. It was born out of love and it's developed and maintained out of love. It doesn't matter in the least if it gets broken or has bugs - that's part of its charm and fixing things is part of the hobby. Geoff produces the manual out of love - and as a personal challenge to keep up with Peter, I think. :)

If you want a solid, secure, bug-free (well, mostly bug free - nothing is perfect) programming language then don't look at MMBasic. That's not what it's about. You *can* use it for industrial control etc. if you want to, but that's entirely up to you and if your machine breaks don't blame MMBasic, blame the person who decided to use it.

Also, remember that what we see in the forum are alpha and beta releases. You have to accept that these *will* have problems and *won't* be documented in any current manual as nothing is set in stone until the next official release version. If you are lucky there will be a Readme file with an alpha or beta release, but it's up to you to keep up with the changes if you want to live "on the edge". :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 3830
Posted: 09:08am 04 Apr 2023
Copy link to clipboard 
Print this post

  matherp said  ... Will remove it - was just responding to a request


Hi Peter,

I just wanted to find somewhere to say thank you for all the work you've put into PWM and PLAY SOUND for the latest versions. I don't know if you've done it specifically because I've been making "noise", but if you have then double the thanks.

Best wishes,

Tom
Edited 2023-04-04 21:21 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3649
Posted: 11:06am 04 Apr 2023
Copy link to clipboard 
Print this post

  nbrok said  I don't trust the C compiler completely. At the ROSCOM M68K project a bug in the compiler did the SD-spi disk I/O system not working properly. When the newest compiler version came, our disk I/O problem was magically solved.....

There definitely CAN be C compiler bugs but it's gcc as used in millions of projects, and I think billions of lines of C (not least Linux and so many of its programs), whereas you were using something else I gather (or if gcc then an early version of it).

That said, I bet Peter has hit at least one bug (or at least optimiser issue)...

E.g. probably when trying to get really fast bits of specific code (ARM machine code) out of it.

The C magic word volatile can be a PITA but how else could the real needs of hardware be handled quickly?

If you want no bugs & perfection... probably can't have 'em LOL

John
Edited 2023-04-04 21:09 by JohnS
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3008
Posted: 12:56pm 04 Apr 2023
Copy link to clipboard 
Print this post

  nbrok said  What I've experienced with projects like these that many new bugs will be introduced.


I came to MMBasic from PICAXE (as Peter did, but some months after he did--17 May 2016). What I have seen is a near-miracle in terms of software development: PIC32MZ MicroMite eXtreme (MMX), Pi-cromite (pi-based, no longer supported, may work for non-gpio uses), Armmite H7, Armmite L4, Armmite F4, Colour Maximite 2 (CMM2), Picomite, MMB4L (Linux--currently in Alpha), PicoMiteVGA, MMBasic for Windows (MMB4W), WebMite.

All except MMB4L from Peter Mather. Bugs along the way--plenty. Bugs at present: not very many--and where, if they appear, will you find them fixed faster?

Thanks, Peter, for all the work you have done. And thanks, Geoff, for the very strong and versatile foundation. And thanks to all the contributors on this forum who make it one of the most informed and decent tech places on the web.

~
Edited 2023-04-04 23:04 by lizby
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
okwatts
Regular Member

Joined: 27/09/2022
Location: Canada
Posts: 51
Posted: 03:11pm 04 Apr 2023
Copy link to clipboard 
Print this post

Just noticed in beta 34 a problem with xmodem on a regular pico (actually a clone with 16 MB flash). If I enter xmodem receive and try to send the file it times out very quickly and sends nothing but I can deploy using MMedit. I'm on linux using mmedit5.0.3. Xmodem works fine on 5.07.06 just using xmodem.
On a picoweb with  version b4 xmodem works fine. I haven't tried with Picovga though.
Is it just my setup or have others encountered this?
Edited 2023-04-05 01:19 by okwatts
 
     Page 15 of 16    
Print this page
© JAQ Software 2024