From 4391d260220a15642d14bcf0857c93d75be9b6c1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 8 Feb 2021 22:09:12 +0000 Subject: [PATCH 1/4] Updated macOS post install instructions, tnx John, G4KLA --- Darwin/ReadMe.txt | 23 ++++++++++++++++++----- Darwin/sysctl.conf | 2 +- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Darwin/ReadMe.txt b/Darwin/ReadMe.txt index 78c092ca4..7bb73d262 100644 --- a/Darwin/ReadMe.txt +++ b/Darwin/ReadMe.txt @@ -21,7 +21,7 @@ There are two system variables that must be set manually since the M1 Macs do no automatic parameter settings by means of the sysctl.conf file present in the download. Type these commands - you will be asked for your password which will not be echoed: - sudo sysctl -w kern.sysv.shmmax=104857600 + sudo sysctl -w kern.sysv.shmmax=52428800 sudo sysctl -w kern.sysv.shmall=25600 It is important to note that these parameter settings will not survive a reboot. If you @@ -46,7 +46,7 @@ change has been made by typing: sysctl -a | grep sysv.shm -If shmmax is not shown as 104857600 then contact me since WSJT-X will fail to load with +If shmmax is not shown as 52428800 then contact me since WSJT-X will fail to load with an error message: "Unable to create shared memory segment". You can now close the Terminal window. It will not be necessary to repeat this procedure @@ -105,10 +105,23 @@ would probably be corrupted.) It is possible to run two instances of WSJT-X simultaneously. See "Section 16.2 Frequently asked Questions" in the User Guide. If you wish to run more than two instances -simultaneously, the sysctl.conf file needs to be modified. Please email me with your -requirements and I will provide a replacement sysctl.conf to suit. +simultaneously, the shmall parameter in the sysctl.conf file needs to be modified as follows. + +The shmall parameter determines the amount of shared memory which is allocated in 4096 byte pages +with 50MB (52428800) required for each instance. The shmall parameter is calculated as: +(n * 52428800)/4096 where 'n' is the number of instances required to run simultaneously. If +you are using an Intel Mac, modify the shmall parameter in the sysctl.conf file using a Mac editor +and then install in the /etc directory using the installation procedure described above for an +Intel Mac. Remember to reboot your Mac afterwards. + +If you are using an M1 Mac, then simply issue the sudo sysctl -w kern.sysv.shmall=xxx command where +xxx is the new value of shmall that is required. + +Note that the shmmax parameter remains unchanged. This is the maximum amount of shared memory that +any one instance is allowed to request from the total shared memory allocation and should not +be changed. If two instances of WSJT-X are running, it is likely that you might need additional audio devices, from two rigs for example. Visit Audio MIDI Setup and create an Aggregate Device -which will allow you to specific more than one interface. I recommend you consult Apple's guide +which will allow you to specify more than one interface. I recommend you consult Apple's guide on combining multiple audio interfaces which is at https://support.apple.com/en-us/HT202000. diff --git a/Darwin/sysctl.conf b/Darwin/sysctl.conf index 4d6cf69e0..09ab36540 100644 --- a/Darwin/sysctl.conf +++ b/Darwin/sysctl.conf @@ -1,4 +1,4 @@ -kern.sysv.shmmax=104857600 +kern.sysv.shmmax=52428800 kern.sysv.shmmin=1 kern.sysv.shmmni=128 kern.sysv.shmseg=32 From 93dd5a92e5b1e7f4ebe1d74273f269d6fce1ad53 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 9 Feb 2021 10:46:56 +0000 Subject: [PATCH 2/4] Update splash screen --- widgets/SplashScreen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/SplashScreen.cpp b/widgets/SplashScreen.cpp index 42f828774..561733ccc 100644 --- a/widgets/SplashScreen.cpp +++ b/widgets/SplashScreen.cpp @@ -33,7 +33,7 @@ SplashScreen::SplashScreen () revision ()}.simplified () + "" "V2.0 has many new features.

" "The release notes have more details.

" - "Send issue reports to wsjtgroup@yahoogroups.com, and be sure to save .wav
" + "Send issue reports to https://wsjtx.groups.io, and be sure to save .wav
" "files where appropriate.

" "Open the Help menu and select Release Notes for more details.
" "" From d91404bbb1f4533fca6c27b40aa0a2de42631b85 Mon Sep 17 00:00:00 2001 From: Charlie Suckling Date: Sun, 7 Feb 2021 15:39:42 +0100 Subject: [PATCH 3/4] Modification to make filenames compatible with Q65 averaging --- lib/qra/q65/q65sim.f90 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/qra/q65/q65sim.f90 b/lib/qra/q65/q65sim.f90 index 5c7efb1a4..b2b119e56 100644 --- a/lib/qra/q65/q65sim.f90 +++ b/lib/qra/q65/q65sim.f90 @@ -9,6 +9,7 @@ program q65sim integer*2 iwave(NMAX) !Generated waveform integer itone(85) !Channel symbols (values 0-65) integer y(63) !Codeword + integer ifilenum(1) !new period lenth adjusted filenumber to work with averaging real*4 xnoise(NMAX) !Generated random noise real*4 dat(NMAX) !Generated real data complex cdat(NMAX) !Generated complex waveform @@ -26,6 +27,7 @@ program q65sim print*,' f1 = Drift or Doppler rate (Hz/min)' print*,' Stp = Step size (Hz)' print*,' Stp = 0 implies no Doppler tracking' + print*,' Modified version for timestamp incrementing for 30-300s periods' go to 999 endif call getarg(1,msg) @@ -96,12 +98,13 @@ program q65sim write(*,1004) 1004 format('File TR Freq Mode S/N Dop DT f1 Stp Message'/70('-')) - do ifile=1,nfiles !Loop over requested number of files - if(ntrperiod.lt.60) then - write(fname,1005) ifile !Output filename + do ifile=1,nfiles !Loop over requested number of files + ifilenum = (ifile*ntrperiod/30) - (ntrperiod/30) + if(ntrperiod.lt.30) then !wdg was 60 + write(fname,1005) ifile !Output filename 1005 format('000000_',i6.6,'.wav') else - write(fname,1106) ifile + write(fname,1106) ifilenum !Output filename to be compatible with averaging 1106 format('000000_',i4.4,'.wav') endif From b58ce90a9f8d586d2d92632acb49ec97f7998f12 Mon Sep 17 00:00:00 2001 From: Charlie Suckling Date: Sun, 7 Feb 2021 16:48:24 +0100 Subject: [PATCH 4/4] Now generates a filename for 15s periods that works with averaging --- lib/qra/q65/q65sim.f90 | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/qra/q65/q65sim.f90 b/lib/qra/q65/q65sim.f90 index b2b119e56..61b36b0d8 100644 --- a/lib/qra/q65/q65sim.f90 +++ b/lib/qra/q65/q65sim.f90 @@ -9,11 +9,13 @@ program q65sim integer*2 iwave(NMAX) !Generated waveform integer itone(85) !Channel symbols (values 0-65) integer y(63) !Codeword - integer ifilenum(1) !new period lenth adjusted filenumber to work with averaging + integer istart !averaging compatible start seconds + integer imins !minutes for 15s period timestamp + integer isecs !seconds for 15s period timestamp real*4 xnoise(NMAX) !Generated random noise real*4 dat(NMAX) !Generated real data complex cdat(NMAX) !Generated complex waveform - complex cspread(0:NMAX-1) !Complex amplitude for Rayleigh fading + complex cspread(0:NMAX-1) !Complex amplitude for Rayleigh fading complex z real*8 f0,dt,twopi,phi,dphi,baud,fsample,freq character msg*37,fname*17,csubmode*1,arg*12 @@ -27,7 +29,7 @@ program q65sim print*,' f1 = Drift or Doppler rate (Hz/min)' print*,' Stp = Step size (Hz)' print*,' Stp = 0 implies no Doppler tracking' - print*,' Modified version for timestamp incrementing for 30-300s periods' + print*,' Creates filenames which increment to permit averaging in first period' go to 999 endif call getarg(1,msg) @@ -96,15 +98,17 @@ program q65sim h=default_header(12000,npts) write(*,1004) -1004 format('File TR Freq Mode S/N Dop DT f1 Stp Message'/70('-')) +1004 format('File TR Freq Mode S/N Dop DT f1 Stp Message'/70('-')) do ifile=1,nfiles !Loop over requested number of files - ifilenum = (ifile*ntrperiod/30) - (ntrperiod/30) - if(ntrperiod.lt.30) then !wdg was 60 - write(fname,1005) ifile !Output filename -1005 format('000000_',i6.6,'.wav') + istart = (ifile*ntrperiod*2) - (ntrperiod*2) + if(ntrperiod.lt.30) then !wdg was 60 + imins=istart/60 + isecs=istart-(60*imins) + write(fname,1005) imins,isecs !Construction of output filename for 15s periods with averaging +1005 format('000000_',i4.4, i2.2,'.wav') else - write(fname,1106) ifilenum !Output filename to be compatible with averaging + write(fname,1106) istart/60 !Output filename to be compatible with averaging 30-300s periods 1106 format('000000_',i4.4,'.wav') endif @@ -121,7 +125,7 @@ program q65sim sig=sqrt(2*bandwidth_ratio)*10.0**(0.05*snrdb) if(snrdb.gt.90.0) sig=1.0 write(*,1020) ifile,ntrperiod,f0,csubmode,snrdb,fspread,xdt,f1,nstp,trim(msgsent) -1020 format(i4,i6,f7.1,2x,a1,2x,f5.1,f6.2,2f6.1,i4,2x,a) +1020 format(i4,i6,f7.1,2x,a1,2x,f5.1,1x,f6.2,2f6.1,i4,2x,a) phi=0.d0 dphi=0.d0 k=(xdt+0.5)*12000 !Start audio at t=xdt+0.5 s (TR=15 and 30 s)