N1MM 교신로그에 올리는 순간 QSO Record.


이 자료를 만든 K3IT om은 어떤 생각을 하고 이런 프로그램을 만들었을까 잠깐 고민을 해봤습니다. 


1. DX Expedition 국이나 교신하기 어려운국과 교신을 하고 로그가 누락된적이 있었을까?


2. 독일의 CW WAE 컨테스트 운용하다보면 QTC교환 EOI의 표현:(총알준비, 총알 주고 받기)

QTC:상대국이 상대국을 감시하는 시스템으로 최근 10개의 QSO 정보를 상대국과 교환을 하면서 성적을 올리는 룰, 컨테스트 할 때 컨테스트 끝나고 분석하는 용도로 사용하면 좋을 것 같다.


3. 일반 교신하면서 로깅하여도 요즘 컴퓨터의 사양이 좋아 컴퓨터의 CPU, 메모리 점유율이 낮고 

  1 QSO 레코딩하는데 생각보다 작은 용량으로 50GB까지 레코딩 가능하니 평상시 기능을 활성화하고 교신하고 좀 어렵게 수신한국은

  "Call sign" "로그시간" "주파수" 로 파일이 기록되니 교신 분석하는 용도로 사용하면 좋을 것 같다는 생각도 해봅니다. 

  교신 레코딩 파일의 예) 2014-07-13  오후 08:37            90,936 HL1TEST_de_DS4EOI-2_DX_USB_20140713_113731Z_14MHz.mp3


4. 교신도중에 DX국이 응답을 하면 레코딩해서 자료로 남겨두고 싶을 때 레코딩 해야겠다는 생각을 하면 이미 늦은상황인데 

   이 프로그램을 구동해두고 로깅을 하면 쉽게 교신한 정보를 레코딩 할 수 있습니다. 


그럼 지금부터 자료를 소개하겠습니다. 


1. 자료 소개페이지(QSOrder (by Vasily, K3IT)

http://n1mm.hamdocs.com/tiki-index.php?page=Third+Party+Software#QSOrder_by_Vasily_K3IT_



2. 자료다운로드

http://sourceforge.net/projects/qsorder/



3. 메뉴얼 확인(확인하지 않고 구동하면 실행이 잘 되지 않습니다.)

다운로드 받은 파일은 qsorder-v2.6b 폴더이고 이 폴더내의 "readme" 파일을 실행프로그램 구동전에 반드시 읽어보시고 

"qsorder" 라는 파일 구동하면 교신에 로그를 올리는 순간 설정값에 조금 다르지만 기본 45초 (오디오 버퍼 시간 설정 가능)자동으로 레코딩이 됩니다.


메뉴얼 반드시 한번 읽어보세요. 

==============================================================================

qsorder.exe - a console app for audio recordig of N1MM contest QSOs.


v2.6b - June 29, 2013


this is an external "plug-in" for N1MM which adds a QSO audio recording function. qsorder maintains a buffer in memory and listens for "Contact" UDP broadcasts sent by the logging program. The broadcasts trigger a dump of the audio buffer to a file after a specified delay time (default is 20 secs). The delay helps with capturing a tail-end after a QSO was entered into the log.


Basic usage

(also see here: http://n1mm.hamdocs.com/tiki-index.php?page=Third+Party+Software#QSOrder_by_Vasily_K3IT_ )



Download and unpack both the qsorder executable and lame.exe to the directory which will contain the contest audio (e.g. c:\contest-qsos\). If prefer to save uncompressed WAV files instead of mp3's then simply delete lame.exe. ('Lame' is a very fast, free MP3 encoder)

Download qsorder from the SourceForge project page

Find the [ExternalBroadcast] section in your N1MM Logger.ini and include the lines below. This enables local QSO info UDP broadcast. For more info see N1MM UDP documentation. Restart N1MM after making changes.


[ExternalBroadcast]

DestinationIPs=127.0.0.1

DestinationPort=12060

IsBroadcastContact=True


Alternate broadcast configuration example (N1MM v13 and up):


[ExternalBroadcast]

BroadcastContactAddr=127.0.0.1:12060

IsBroadcastContact=True


Start qsorder.exe. If prompted by the Windows Firewall software make sure you allow local network communication. qsorder should tell you which audio input was selected. If it's not the right one, go to windows audio settings and change the "Default Recording Device" to the one you like. (note: rec input selection flag is not yet implemented)

Make QSOs in N1MM. 


Pressing a HOTKEY (CTRL+ALT+M or specified with --hot-key option) will save the current audio buffer to a file in AUDIO_YYYY directory.  The hotkey should be recognized even when qsorder window is not in focus. Use this key whenever you hear something interesting, outside of a normal QSO (even when N1MM is not running!)


the audio files are saved to a subdirectory <contest>-<year>. Note that only a parital file name is printed to save screen space.


ReplayGain indicates the perceived loudness of the recording as reported by lame. This info is also embedded to mp3 files.


to stop qsorder either close the command window or Ctrl-Break. (the window may not react to a Ctrl-C right away - this is normal;)

This is it. For any feedback please post a comment at the SF or email k3it

Advanced usage


qsorder supports optional command line flags:


Usage: qsorder.py [options]



Options:


   -h, --help            show this help message and exit

  -D, --debug           Save debug info[default=False]

  -d DELAY, --delay=DELAY

                        Capture x seconds after QSO log entry [default=20]

  -i DEVICE_INDEX, --device-index=DEVICE_INDEX

                        Index of the recording input (use -q to list)

                        [default=none]

  -k HOT_KEY, --hot-key=HOT_KEY

                        Hotkey for manual recording Ctrl-Alt-<hot_key>

                        [default=O]

  -l BUFFER_LENGTH, --buffer-length=BUFFER_LENGTH

                        Audio buffer length in secs [default=45]

  -P PORT, --port=PORT  UDP Port [default=12060]

  -p PATH, --path=PATH  Base directory for audio files [default=none]

  -q, --query-inputs    Query and print input devices [default=False]

  -S, --so2r            SO2R mode, downmix to mono: Left Ch - Radio1 QSOs,

                        Right Ch - Radio2 QSOs [default=False]

  -s STATION_NR, --station-nr=STATION_NR

                        Network Station Number [default=none]



Multi Multi Configuration Example N1MM Logger.ini file 

Station 0 should be  DestinationPort=12060

  Station 1 should be  DestinationPort=12061

  Station 2 should be  DestinationPort=12062

  And use --port option 


Alternatively set staion NR  using --station-nr option

  (tnx ve2ebk)




Additional info


written in python 2.7, using threading and pyaudio libraries:


Main Thread - listens for UDP broadcasts from N1MM on port 12060


Sound card I/O thread - maintains a double ended FIFO audio buffer of the specified length (default: 45 secs)


File I/O thread(s) - dump_audio function saves the buffer to a wav file and (optionally) converts to mp3 using lame encoder. This function uses threading.timer module for scheduling


python script is repackaged into a windows executable with pyinstaller.


Tips for audio input: when possible use an isolation transformer (salvage from an old modem). For Mic In recordings use an attenuator to prevent hiss and clipping.


Change history:

v2.6b

input selection options, debug option, skip old qsos

- new flags -q, -i, -D to allow sound input selection and the debug log.

- skip udp packets for old QSO, for example ignore QSO edits


v2.5b

 - fixes for N1MM integration issues. Play Contact now works for phone contests 

 - SO2R Mode (--so2r flag).  Connect Left Radio to Left audio channel, Right Radio to the Right channel.  

     In this mode QSORDER will downmix the "active" audio input to MP3 mono, and mute the "inactive" radio input. 

     In other words - Radio 1 QSOs will be recorded from the Left Ch, Radio 2 QSOs - from the Right Ch.

     without this flag both Left and Right channels are saved to a stereo file.

     HOT KEY - always saves in stereo

 - yet another change of the default global hot-key (to CTRL-ALT-O)

 - see BUGS.txt for known issues with qsorder



v2.4b

change to CTRL-ALT-M as the default hot-key. 

Bug fix in mp3 conversion routine


v2.3b

added a global hot-key (default CTRL+ALT+R).  

  pushing the hotkey immediately saves the current audio buffer to a file.  

  (qsorder window does not need to be in focus).  

improvement in file/directory naming



v2.2b

added UDP --port and --station-nr options for Multi-Multi setups


v2.1b

added optional -l (buffer length), -d (delay), -p (path), command line flags

added conversion to mp3 with (included) lame.exe encoder

fix handling of / in callsigns

add ReplayGain indicator to the output

save audio files into a <contest-year> directory

v2.1a


initial version (tnx n4zr,dk8nt,n2ic and others)

Future plans


Audio input selection - DONE


Integration with N1MM log GUI (if N1MM team's time permits) - DONE


Integration with iTunes (just kidding)


73!


Vasiliy k3it

==============================================================================


4. 실행화면

001.JPG


5. N1MM 로깅시 화면

002.JPG


6. 로그파일 저장경로 확인.

HL1LUA om님과 HL4CHH om님 교신하고 계셔서 로그에 올려봤습니다. 

저장된 경로의 파일를 보면 콜사인별로 모드, 교신시간, 주파수로 저장이되어 로그 분석할 때 쉽게 할 수 있습니다.   

003.JPG


73,

de DS4EOI/2