Skip to main content

JJY signal emulator using python and pyaudio

Project description

pyjjy

電波時計の時刻合わせに使用される標準電波JJYをPythonとPyAudioで再現するスクリプトです。 shogo82148氏のweb-jjyと同様に、一般的な機器で出力可能な13.333kHzを出力し、第3高調波がJJYおおたかどや山標準電波送信所の送信波周波数である40kHzとなることを利用しています。 PortAudioとPyAudioに依存します。 動作させるPCの時刻を出力するため、標準時からずれる場合があります。

インストール

PyIPから最新版をインストール可能です。

pip install pyjjy --upgrade

使い方

10分間のJJY信号を送信する実行方法の例を以下に示します。

$ python -m pyjjy -d 600

Python内からの呼び出しも可能です。

>>> from pyjjy import JJYsignal
>>> jj = JJYsignal(duration=600)
>>> jj.play()

Mac環境では、例えば次のような運用により自動時刻合わせも可能です。

  1. 音声出力を"外部ヘッドフォン"に切り替えた後にスリープさせる(Automatorでapp化を推奨)
  2. 自動受信時刻前にスリープを解除するようスケジュール設定する
  3. cronやlaunchdを用いてJJYシグナルを出すスクリプトを自動実行し、"外部ヘッドフォン"からJJY信号を出力する
  4. cronやlaunchdを用いてスリープに入るAppleScriptを自動実行する

動作環境

以下の環境で動作と受信を確認しています。

  • Mac mini (M1, 2020)
  • macOS Monterey 12.0.1
  • portaudio 19.7.0 (installed via homebrew)
  • Python 3.7.6 (installed via miniconda)
  • PyAudio 0.2.11 (installed via conda)
  • アンテナ (AMループアンテナを鉄釘に巻き直したバーアンテナ)
  • 電波時計 (CITIZEN AT8181-63E)

また、次の環境でも信号出力を確認しています。

  • MacBook Air (Mid 2013)
  • macOS Catalina 10.15.5
  • Python 3.9.7 (installed via miniconda)
  • PyAudio 0.2.11 (installed via pip)

Windows環境でも信号出力を確認しています。

  • Windows 11 Pro 21H2
  • Python 3.8.12 (installed via miniconda)
  • PyAudio 0.2.11 (installed via conda)

免責事項

利用の結果生じた損害について、一切責任を負いません。

ライセンス

MITライセンスです。LICENSEを参照ください。

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyjjy-0.2.tar.gz (6.1 kB view hashes)

Uploaded Source

Built Distribution

pyjjy-0.2-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page