Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

Uni DetectorをはじめてM1 Mac実機で起動

Posted on 6月 18, 2021 by Takaaki Naganoya

DTKを使うこともなく、M1 Mac登場を横目にずっとIntel Macを使ってきました。ひとつには、買えなかったからという理由ですが、もう1つがWWDCまで待っていた(新ハードが出たら型落ちになってしまう恐怖)からです。

2020年の10月ごろにチーム内でUni Detectorを「作ろう!」という話になって、いろいろ人に見せたりしていましたが、

日本の開発者コミュニティ:バっカじゃねーの?
日本のユーザー:何のために作ってんのかわかんねー

という散々な反応でした。「なんでそこまで言うのか?」という散々な状況。

リリース後は海外を中心に評価していただき、日本国内で石を投げられることもなくなりました。

Uni Detectorはこの移行期に必要なアプリケーションであり、移行が終わった後でもアプリケーション自体を分析/情報収集できるツールとして便利に使えると思っています。

実機がない状況で作ったので(Intel Mac上にmacOS 11Beta環境は用意していましたが)、「仕様から推測するとこんな感じだろう」「もれ伝わっている情報をもとに作るとこんな感じだろう」と予測して作っていたわけです。

Uni DetectorをM1 Macで起動すると……

起動します。これは、Roesetta 2の機能によるものです。起動自体に時間はかかりません。

すべてのアプリケーションをチェックすべく「All」をクリックすると、「最初の違和感」がやってきます。Intel Mac上で動かすのと挙動がぜんぜん違います。最初のSpotlight経由でアプリケーション情報を集めるのにやたらと時間がかかります。「クラッシュしたか?」と思いながら様子を見ると、あっという間にバーが最後まで伸びて、処理が終わっていました。

Spotlight関連で性能が出ないのか、他の方法で情報収集したほうがいいのか……頭が痛いところです。

失敗した! という点がひとつ。マシンのCPUアーキテクチャの取得です。

これは、Rosetta上で動くIntelバイナリならおそらく「Intel」と判定されてしまうのでしょう。予想し切れるところではありませんが、違和感しかないので修正すべき点でしょう。

→ 予想どおり、Universal(Apple Silicon/Intel 64)ビルドを行ったら、マシンがApple Silicon Macだと認識されました。

事前に予測できなかった点がもうひとつ。OSバージョンの割り振り方です。macOS 10.15の次のmacOS 11シリーズのバージョン番号の振り方が事前にわかりませんでした。最初のバージョンが「11.0」と割り振られたので、その次が「11.1」のパターンと「11.0.1」のパターンの2通りが考えられたわけです。実際には前者でしたが、後者と予想していたので、当てが外れて「現在実行中のOSバージョン」をもとにマークを出す処理に失敗しています。

if aVerStr = "1013" then imgOS13's setHidden:false
if aVerStr = "1014" then imgOS14's setHidden:false
if aVerStr = "1015" then imgOS15's setHidden:false
if (aVerStr = "11") or (aVerStr = "1016") then imgOS16's setHidden:false
if (aVerStr = "12") or (aVerStr = "1017") then imgOS17's setHidden:false
if (aVerStr = "13") or (aVerStr = "1018") then imgOS18's setHidden:false

このあたり、macOS 11以上であればメジャーバージョンのみ返すようにライブラリを書き換え、かつ、Appleがバグを作ってOSバージョンを「10.16」などと返してきても大丈夫なように備えておきました(すごくありがち)。

これで、実行中のマシンのバージョンインジケータについては大丈夫です。

これは「よかった」点ですが、macOS上でiPhone用のアプリが動くことが告知されていたので、どのプラットフォーム向けに作られたアプリかを表示するようにしてあり、これは先見の明がありました(自画自賛)。

とってもやられた、という点もあります。

CPUアーキテクチャ別の円グラフを表示する機能があり、Intel MacでmacOS 10.14/10.15で動かす分には問題なく表示されるのですが、macOS 11のRelease版だとアプリケーションごとクラッシュします。macOS 11の問題(Apple側の問題)だと思いますが、Appleはそういうことをやる会社であり、Appleのせいでこういうトラブルが起こることは日常茶飯事です。たぶん、ソート周りでクラッシュを起こしているんだと思います(ていねいに、グラフ表示する前にソートルーチンで数字の大きい順にデータを並べ替えているので)。

→ クラッシュの原因がわかりました。NSStringのstringWithFormat:メソッドがIntel MacでもApple Silicon MacでもAppleScriptから呼ぶと100%クラッシュします。こんな基礎的なところでバグ作ってどーするんだか、、、(ーー;;

Posted in System | Tagged 11.0savvy | Leave a comment

macOS 11でメニューバークロックのアナログ/デジタル切り替え

Posted on 6月 17, 2021 by Takaaki Naganoya

macOS 11は、サブマシンで検証用に入れておいたぐらいでメインマシンはずーっとmacOS 10.14.6のままでした。M1 Macを導入したのでメイン環境をmacOS 11に移行。

いままで(macOS 10.14.6で)メニューから手軽に切り替えられていたメニューバークロックのアナログ/デジタル切り替え。ふだんは見やすいデジタル表示で、画面キャプチャする際にはアナログ表示に切り替えていました。

これが、macOS 11ではメニューから直接切り替えられないのがストレスで、すぐに切り替え方を調べてmacOS標準搭載のスクリプトメニューから切り替えられるようにしてみました。現在の設定値を読み取ってトグル動作(アナログ→デジタル、デジタル→アナログ)を行います。

–> Watch Demo movie

AppleScript名:macOS 11_メニューバークロックのアナログ_デジタルトグル切り替え.scpt
—
–  Created by: Takaaki Naganoya
–  Created on: 2021/06/17
—
–  Copyright © 2021 Piyomaru Software, All Rights Reserved
—

use AppleScript version "2.7"
use framework "Foundation"
use scripting additions

set cRes to (do shell script "defaults read com.apple.menuextra.clock.plist IsAnalog") as integer as boolean
set newBool to (not cRes) as string
do shell script "defaults write com.apple.menuextra.clock.plist IsAnalog -bool " & newBool
do shell script "killall ControlCenter"

★Click Here to Open This Script 

Posted in shell script System | Tagged 11.0savvy | Leave a comment

Hello M1

Posted on 6月 15, 2021 by Takaaki Naganoya

到着してとりあえずのセットアップを行ったM1 Mac mini。とりあえず、ごあいさつの「system info」コマンドの実行。

--> {AppleScript version:"2.7", AppleScript Studio version:"1.5.3", system version:"11.3.1", short user name:"testuser", long user name:"Takaaki Naganoya", user ID:501, user locale:"ja_JP", home directory:alias "Macintosh HD:Users:test1:", boot volume:"Macintosh HD:", computer name:"M1 mini", host name:"m1mini.local", IPv4 address:"192.168.x.xx", primary Ethernet address:"xx:xx:xx:xx:xx:xx", CPU type:"ARM64E", CPU speed:missing value, physical memory:16384}

「ARM64E」と返ってきました。へーー、CPU Typeはそんなかんじなんだ、へー。

CPU Speed、クロックのことですが……missing valueが返ってくるというのは、従来のAPIでは値を取れなくなったのでそのままです、ということなんでしょうか。

Posted in System | Tagged 11.0savvy | Leave a comment

M1 Mac mini

Posted on 6月 12, 2021 by Takaaki Naganoya

を注文しました。WWDC21でハードウェア系の発表が行われなかったということは、少なくとも2021年中に現行のM1 Mac以上のマシンを投入できないものと判断したためです。

さすがにMacBook Pro Retina 2012では物理的にも性能的にも無理があり、メインマシンとして入れ替えることになります。まだ「上海を出た」ぐらいの距離感です。

RAM 16GB、SSD 1TB構成です。RAM 8GB構成だと割と整備済製品や店頭販売品があるのですが、さすがに8GBはないだろうと。RAM 8GB構成だとSSDのSwapが激しいとのことなので避けてみましたが……実際に動かしてみないとなんとも言えません。

SSD 256GBでは「悪い冗談」、SSD 512GBだと「いまと同じ」、SSD 1TBぐらいが実用上の最低ラインだと判断しました。ポート数が少ないので、ディスプレイ以外で接続しておく周辺機器は最低限のものにとどめておくべきマシンでしょう。

YouTubeをはじめとして各種ベンチマークが掲載されていますが、正直なところムービー書き出しとかゲームやベンチマーク専用ソフトの結果ばかりで、実際に一般的なアプリケーションを動かして、アプリケーションをAppleScriptから操作してゴリゴリにコキ使ったときのパフォーマンスはどこにも載っていません。

Script Debuggerで巨大なScriptを編集すると、文字入力が止まるぐらい遅くなるので、Script Debuggerの操作が軽くなることを期待したいです。

以前に開発用にiMac Proを一時的に預かっていたときにすこしだけ自作ベンチマークをとってみましたが、あれよりも突っ込んだ内容は実験できることでしょう。iMac Proはいいマシンでしたが、(MBPR 2012よりも)3〜4倍ぐらい高価なiMac Proでも1.5倍ぐらいのシングルコア性能で、コストパフォーマンス的にはいまひとつでした。つまり、高い割にたいしたことがない、という印象。

M1 Mac miniにはとても期待しています。

M1 Macでベンチマークをとってみたい処理

・巨大な配列を使う処理
与えられた文字列の1D Listのすべての順列組み合わせパターン文字列を返す v3
→ これは、M1 Mac上でとくに遅い処理で、心底ガッカリしました。この挙動は問題ありすぎなので、Appleに報告して対処してもらえるよう「お願い」をしています

2点間の距離を求める v3
→ 全国のゲームセンターの最寄りの鉄道の駅を求める
→ 2012年のMacBook Proのほうが10倍速いです
・画像処理
画像の空白判定 v4
→ これは、2012年のMacBook Proより高速でした

画面スナップショット超解像バッチ処理 v1
→ M1内蔵のニューラルエンジンを利用しているためか、これはM1 Macが圧倒的に高速です
2つの画像が類似しているかを判定

ghostscriptによるPDFの圧縮・軽量化処理
→ MBP 2012で数分から10分ぐらいかかっていた処理が、1分ぐらいで終わるので速いと思います。ただし、瞬時に終わるとかいうことはありません

・アプリケーションとのやりとりが膨大で重い処理
Mail.appでメールボックスの仕分けを行う(最重量)
→ これは、Intel Macとさほど変わりません。ただ、Mail.appの起動がアホみたいに速い(起動してから操作可能になるまでのタイムラグがほとんどない)ので、その点だけでもM1のトータルなシステムとしての速さを実感できます
CotEditorのウィンドウを楕円運動
→ M1のほうが少し速いか? ぐらいで、全般的にこの手のScriptはMBP2012の10倍遅いことを覚悟する必要があります
・AppleScriptで組んだGUIアプリケーションの動作
Kamenoko
→ ±ゼロぐらい。しばらく動かしていると動作が止まる瞬間があって、強制終了させたりしています
・重いアプリケーションの動作
巨大なScriptをScript Debuggerでオープンして編集したときの動作
→ Intel Macに比べて速い、ということは感じません。この用途でいえばiMac Proの方が快適かも?

Posted in news | Tagged 11.0savvy | 2 Comments

STREAM DECKソフトウェアがv5.0にアップデート

Posted on 6月 9, 2021 by Takaaki Naganoya

STREAM DECK制御ソフトウェアがv5.0にアップデートしました。

プラグインのストアが大幅にアップデートしました。

STREAM DECK本の作成のために行なっていた、画面のキャプチャをやり直す必要が出てきてしまいました(泣)。著作権フリーなBGM集とSFX集をStoreからダウンロードできるようになるなど、製品の性格自体が大きく変わるアップデートだと思います。

Posted in Books | Tagged 10.14savvy 10.15savvy 11.0savvy Stream Deck | Leave a comment

Shortcuts Events

Posted on 6月 9, 2021 by Takaaki Naganoya

macOS 12で搭載される「ショートカット」は、iOS上の自動化ツール「DeskConnect」をAppleが買収して発展させ、Apple純正ソフトウェアとして提供されているものです。簡単な自動化を行うためのツールです。

このショートカットがmacOS 12に搭載されることがKeynoteで発表されました。さらに、ショートカットからAppleScriptが実行できることが明らかにされ、AppleScriptからもショートカットを実行できるとのこと。

タイトルにも挙げている「Shortcuts Events」が、AppleScript専用のGUIなし補助アプリケーションであり、AppleScript側からショートカットのアクションを呼び出すことができるようです。

ただし、最初のmacOS 12β版ではまだAppleScriptからショートカットのアクションを実行できないことが、Release NotesのKnown Issuesに明記されています。

  10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 10.14 10.15 11.0 12.0
Shortcuts Events ⬛︎
ColorSyncScripting ⬛︎ ⬛︎            
Database Events ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎
Digital Hub Scripting ⬛︎ ⬛︎            
FontSync Scripting ⬛︎ ⬛︎            
Image Events ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ★ ★ ★
Keychain Scripting ⬛︎ ⬛︎ ⬛︎          
System Events ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎ ⬛︎
URL Access Scripting ⬛︎ ⬛︎ ⬛︎          
Posted in news | Tagged 12.0savvy Shortcuts Shortcuts Events | Leave a comment

Apple Musicでロスレス配信開始(今度こそ)!

Posted on 6月 8, 2021 by Takaaki Naganoya

macOS 11上のMusic.appの環境設定に突如として、「オーディオの品質」項目が出現。時間が経過するにつれ、kindが「Apple Music AACファイル」だった曲が次第に「HLSメディア」に更新されていきました。

このApple Musicのロスレス配信トラックを再生できるのは、macOS 11.4以降であり、それ以前のmacOSではAAC配信のままです。

段階的に入れ替えられていたり、対応曲と非対応曲があるようで、すべての曲が「HLSメディア」として見えるわけではないようです。自分が試した中でも、「HLSメディア」は1曲だけでした。→ 時間の経過にともない、どんどん増えてきています

これをダウンロードすると、拡張子が「.movpkg」のファイルがローカルにダウンロードされてきました。

バンドルパッケージだったので、Finder上でバンドル内容を表示。

複数のフォーマットのムービーを1つのバンドル(HLSメディア)内に格納できるようです。

覚悟はしていましたが、ハイレゾロスレス(最大24ビット/192kHzのALAC)の1トラックで87.7MBもあり、いちいちダウンロードしているとローカルのディスクの空き容量がヤバいことになります。

Posted in news | Tagged 11.0savvy Music | Leave a comment

WWDC21でShortcuts for Macが発表に

Posted on 6月 8, 2021 by Takaaki Naganoya

WWDC21にて、macOS 12にShortcuts for Macが搭載されることが発表されました。同ツールはAutomatorを置き換え、iPhoneやiPad上のShortcutsとは異なるクリエイティブ系に寄せたアクションが実行できるとのこと。

Shortcuts内からもAppleScriptやShell Scriptを呼び出せるようになっており、Mac上でSiriからShortcutsの呼び出しが行える=「Siriから(ShortcutsのAction上に記載した)AppleScriptが実行できるようになった」ことを意味しています。

Automatorの今後については、すでにAppleScript Studioランタイムがdeprecated扱いで、機能の追加は行われません。Xcode上に添付されているAutomator Acrtionのテンプレートも、すでにAppleScript Studioではなく「Cocoa AppleScript」(AppleScriptObjC)です。

Posted in news | Tagged 12.0savvy Shortcuts | Leave a comment

WWDC21事前予想→答え合わせ

Posted on 6月 8, 2021 by Takaaki Naganoya

今日は真夜中じゅう起きているわけにはいかないので、事前の予想をまとめたものを貼っておきます。あとでゆっくり、答え合わせを。

Apple SiliconのCore数増加、メモリ拡張バージョンが出てくるかもしれませんが、それをどのように実現するのかがキーポイントになると思います。cc:NUMAなどの技術を用いて複数コアをつなぐのか? そこと、macOS 12.0がもっと安定したバージョンとして位置づけられるのか。そんなあたりが自分の関心事。あと、Mac miniの上位版が本当に出るのかどうか…

答え合わせ

前年(2020)が数年がかりで仕込んだネタを一斉に披露したことと比べると小ぶりな発表内容。
ハードウェア系の発表はありませんでした
Apple Musicのロスレス配信の開始にはまだ時間がかかるようです(秋?)
macOS 12, Montereyを発表。AirPlay to MacやShortcutが搭載される
Xcode 13発表。ちゃんとAppleScriptObjCでの開発をサポート。

機械学習モデルを手軽に作れるCreate MLは、v3.0にアップデートしてHand Post ClassificationとHand Gesture Classificationを追加

Posted in news | Leave a comment

経過時間文字列を秒数に変換する

Posted on 6月 7, 2021 by Takaaki Naganoya

Safariで表示中のダウンロード残り時間の文字列を数値に変換するために作成したAppleScriptです。

Safariで実行中のダウンロード残り時間の一覧情報を表インタフェースで表示する、ごくごく私的な用途のAppleScriptを書いていたときに必要になったものです。

Safariのダウンロード情報表示は、最近のバージョンではポップオーバーで行われるようになっています。そのポップオーバーの上に表インタフェースが配置されていて、その中の各行の中にあるUI Elementを追いかけるとダウンロード残り時間情報などが取得できます。


▲GUI Scriptingに欠かせない。PFiddlesoftのUI Browser。使わないのと使うのとでは、生産性が1億倍ぐらい違うツール

ただし、得られた「残り時間」の文字列をいったんdateオブジェクトに変換して、経過秒数を計算するのに少々骨が折れました。Safariのダウンロード一覧に表示される文字列はあくまでも「結果表示」で、0分とか0時間とか0秒といった桁は表示が省略されます。

当初、「HH時間mm分ss秒」という固定フォーマットだと勝手に思い込んで処理していました。ところが、各桁が省略されるパターンに遭遇。固定文字列でフォーマット指定をして評価しようとしても、いろいろと無理がありました。自然言語っぽい表記で経過時間の情報を与えられたときに、それを評価してdateオブジェクトに変換するのはけっこうな手間がかかります。

「時」「分」「秒」の各情報が存在するかどうかチェックし、各パターンに合わせた日付フォーマッター文字列を場合分けで書いてみたものの、前述のとおり途中の桁が省略されるパターンに遭遇。3つの桁情報の有無に対応するだけでも、3x2x1=6パターンに対応するif文が必要。さらに、「年」「月」「日」まで表示される可能性を考慮すると、桁要素が6個になるため、6x5x4x3x2x1=720パターンに対処するif文が必要に。この、if文で固定フォーマット文字列を場合分けで選択するというアプローチでは処理が破綻することがあきらかです(if文をそんなに書いたら見通しが悪くなって、矛盾した表記が混入してもわからないでしょう。そこはかとなく、頭が悪い感じもします)。

そこで、与えられた経過時間文字列を直接チェックして、「経過時間文字列に合うように」NSDateFormatter用の文字列を「動的に」組み立てるように方針を転換。これで、大幅に簡潔な記述で済むようになりました。

一番の誤算は、AppleScript上でNSDateのtimeIntervalSinceReferenceDate()の結果が正しく取得できなかったこと。このメソッドで2000年1月1日からの相対秒を取得するつもりだったのですが、期待したような結果は得られませんでした。そのため、2000年1月1日のdateオブジェクトを用意して引き算で経過秒数を求めました。このあたり、AFS(Apple File System)導入時にタイムスタンプの分解能が増やされたことに影響を受けているのだろうかと疑っています。

用途が果てしなく下らない割にてこずらされました。

AppleScript名:時分秒の文字列を数値に変換 v5
— Created 2021-06-06 by Takaaki Naganoya
— 2021 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set relSecNum to relativeSecondsFromStringWithDateFormat("22時間 21分 15秒") of me
–> 80475

set relSecNum to relativeSecondsFromStringWithDateFormat("22時間 15秒") of me
–> 79215

set relSecNum to relativeSecondsFromStringWithDateFormat("22時間") of me
–> 79200

on relativeSecondsFromStringWithDateFormat(postDateStr as string)
  set sepList to {"年", "月", "日", "時間", "分", "秒"}
  
set formList to {"yyyy", "MM", "dd", "HH", "mm", "ss"}
  
  
set formatStr to ""
  
repeat with i from 1 to 6
    set aSepStr to contents of item i of sepList
    
set aFormStr to contents of item i of formList
    
if postDateStr contains aSepStr then
      set formatStr to formatStr & (aFormStr) & (aSepStr)
    end if
  end repeat
  
  
set postDate to dateFromStringWithDateFormat(postDateStr, formatStr) of me
  
  
set origDate to dateFromStringWithDateFormat("0時間 0分 0秒", "HH時間mm分ss秒") of me
  
set aSeconds to postDate – origDate
  
return aSeconds
end relativeSecondsFromStringWithDateFormat

on dateFromStringWithDateFormat(dateString as string, dateFormat as string)
  set dStr to current application’s NSString’s stringWithString:dateString
  
set dateFormatStr to current application’s NSString’s stringWithString:dateFormat
  
set aDateFormatter to current application’s NSDateFormatter’s alloc()’s init()
  
aDateFormatter’s setDateFormat:dateFormatStr
  
aDateFormatter’s setLocale:(current application’s NSLocale’s alloc()’s initWithLocaleIdentifier:"en_US_POSIX")
  
set aDestDate to (aDateFormatter’s dateFromString:dStr)
  
return aDestDate as date
end dateFromStringWithDateFormat

★Click Here to Open This Script 

Posted in Calendar Text | Tagged 11.0savvy Safari | Leave a comment

新旧エミュレータでAppleScript実行速度対決

Posted on 6月 6, 2021 by Takaaki Naganoya

JavaScriptで書かれた68k Macエミュレータの新規軸「macitosh.js」が登場してきたので、SheepShaverと対決させてみました。

macintosh.js–Classic Mac OS 8 on Mac mini 2014 2.6GHz Intel Core i5 macOS 11.5
SheepShaver–Classic Mac OS 9.2 on MacBook Air mid 2011 1.6GHz Intel Core i5 macOS 10.13.6

それぞれ、Mactracker上に記載のあるGeekbenchのベンチマーク値は以下のとおりです。

ベンチマーク対決内容はAppleScriptで1,000万回単純ループを行うものです。

結果:macintosh.js 191秒

結果:sheepshaver 10秒

古いSheepShaverのほうが新しく作られたmacintosh.jsよりも20倍ぐらい高速、という結果が出ました。だからダメということはなく、JavaScriptなどという処理系でここまでネイティブコードに肉薄したということに驚きます。

シングルコア性能でMac mini 2014のほうが倍ぐらい速いのですが、さすがにネイティブコードでエミュレータを動かしているだけあって、MacBook Airのほうが10倍ぐらい高速です。同一マシンでベンチマークしたらsheepshaverのほうが20倍ぐらい高速でしょう。

macintosh.jsにはM1対応版(っていうのか?)もあり、M1 Mac miniで動作させればMac mini 2014の3倍ぐらい高速ですが、それでもMacBook Air上で動かしたsheepshaverのほうが3倍高速ということになります(多分)。

ちなみに、現代のIntel Mac(およびARM Mac)で1,000万回程度の単純ループを普通にAppleScriptで実行させると、速すぎて1秒以下になってしまい計測不能。1億回ぐらい回さないと1秒以下です(10億回ぐらい回さないとダメかも)。PowerPCの時代には1,000万回単純ループが計測の(個人的な)指標になっていました。


▲M1 Mac mini+Macintosh.jsで実行したら68秒。だいたい予想どおり


▲M1 Mac mini+SheepShaver(Universal Binary)で実行したら10秒。MacBook Air 2011+SheepShaverと同じ結果に

Posted in news | Tagged 10.13savvy 11.0savvy | Leave a comment

2021年6月からApple Musicがロスレス配信!

Posted on 6月 3, 2021 by Takaaki Naganoya

……と言われてはや数日。Twitter上では「おお、これが空間オーディオ対応か?!」「音がよくなった!」といった一部の方々の熱狂がありつつも、実際に、Apple MusicからMacのMusic.appに曲を追加し、AppleScriptでファイルフォーマットやCodecなどを確認すると、それが「錯覚」であることがすぐにわかります。

まだ、AACで配信されており、ロスレスコーデックで配信されてはいません。

Apple Musicの配信フォーマット変更はWWDC21(のキーノートスピーチ)後と見られており、実際にどう変わったかについては、電子書籍「Music.app Scripting Book With AppleScript」をアップデートして詳細にまとめます。

# この配信のためにMusic.appをアップデートするんでしょう。OS側の準備も(macOS 11.4)整っているようです

AppleScript名:選択中のトラックの情報を取得
tell application "Music"
  set a to selection
  
set aa to first item of a
  
properties of aa
end tell

★Click Here to Open This Script 

Posted in news | Tagged 11.0savvy Music | Leave a comment

Keynote, Pages, Numbersが v11.10にアップデート

Posted on 6月 3, 2021 by Takaaki Naganoya

Keynote, Pages, Numbersがv11.10にアップデートしました。Keynoteのみ、AppleScript用語辞書に変更点があります。

Keynoteの変更点はマスタースライドのオブジェクト。従来は「master slide」というオブジェクトだったのが、「slide layout」に変更になっています。理由……についてはよくわかりません。いまさらこんな箇所をいじくる意味がわかりません。

Keynoteの画面を調べてみたら、画面上のマスタースライドの呼称が「スライドレイアウト」に変更になったため、これを反映させたようです。

別にGUI画面上の呼称をオブジェクト名に反映させて変更しなくてもいいんじゃないかと考えますが、やはり意味がよくわかりません。前バージョンまでのくだらないミス(実際に動かしたら分かるレベルのお寒いミス)を連発していた担当者から、別の担当者に変わったような雰囲気がします(知らんけど)。

そんな細かいところは個人的にはドーでもいいので、selection objectとかselected object(スライド上の選択中のオブジェクト)を取得できるようになってほしいです。これができないためにKeynoteで無駄な処理を書かされることが非常に多いので。

こっそり変更したかったのか、一応、macOS 11.5上で「master slide」と入力して構文確認すると、同義語(synonym)として処理され、「slide layout」に自動で書き換えられます。


▲構文確認前


▲構文確認後。「master slide」と入力した箇所が「slide layout」に自動で書き換えられる


▲Keynote v11.01時のAppleScript用語辞書に掲載されていたサンプルAppleScript


▲Keynote v11.10時のAppleScript用語辞書に掲載されていたサンプルAppleScript。こういう部分でミスしてこないあたり、本当に担当者が変わったようにしか見えない

Posted in sdef | Tagged 10.15savvy 11.0savvy Keynote | Leave a comment

FM Holeを新設

Posted on 6月 1, 2021 by Takaaki Naganoya

AS Holeの姉妹サイトとして、FileMaker Proのソリューション情報を掲載する「FM Hole」を新設しました。

ぼちぼち増やしていきます。

Posted in news | Leave a comment

CotEditorのScript集、PowerPack & Basic Packを近日中にv3.0にアップデート

Posted on 5月 30, 2021 by Takaaki Naganoya

CotEditorの強化用AppleScript集、PowerPackを近日中にv3.0にアップデートします。また、同時にこのPowerPackの使い方を詳細に説明したドキュメントをBooth上で電子ブックとして販売します。

今回の目玉は、グラフ表示。

AppleScriptによって、CotEditorで編集中の最前面のドキュメントの文字種別を分析して、アニメーションしつつグラフ表示します。文章書きがとっても気にする、漢字、ひらがな、カタカナなどの文字種別の使用比率をグラフ化。

AppleScriptでワードクラウド表示。AppleScriptで記述した世界最小(自称)の簡易日本語形態素解析プログラム「easyJParse」を組み込んで、簡易的にワードクラウドを組み立てて表示します。文章内容の傾向を客観的に把握するための表示です。

AppleScriptだけでMarkdownのプレビュー表示を行います。

さらに、AppleScriptでCSVのプレビュー表示も。小規模なデータならその場でダイアログ上でプレビュー表示を、大きなデータはNumbersに渡してそちらで表示させるという寸法です。

Posted in Books PRODUCTS | Tagged 10.15savvy 11.0savvy CotEditor | Leave a comment

Basuke’s Tech Talk Podcastが配信されました

Posted on 5月 27, 2021 by Takaaki Naganoya

BasukeさんのClubhouseの番組「Basuke’s Tech Talk」の話の内容をまとめたPodcastで、「AppleScriptの話 with @Piyomaru」と題して配信されています。興味のある方はお聴きください。

Basuke's Tech Talk #11 「AppleScriptの話 with @Piyomaru」を公開しました。AppleScriptを愛してやまない「AppleScriptの穴」運営の @Piyomaru さんに話を伺いました。 ⚓ https://t.co/uyMS0BftaZ #basuke

— Basuke (@basuke) May 27, 2021

Posted in news | Leave a comment

ミュージック.app scripting book with AppleScript販売開始

Posted on 5月 25, 2021 by Takaaki Naganoya

iTunesの後継ソフトウェア「ミュージック」をmacOS標準搭載のスクリプティング言語「AppleScript」からコントロールするときの記述について、基礎を重視しつつ網羅的に説明する電子ブック「ミュージック.app scripting book with AppleScript」の販売を開始しました。

→ 販売ページ

252ページ+特別付録 AppleScript予約語リファレンス(124ページ)という構成で、もともとは376ページ。大きくなりすぎたので分冊化しました。

ミュージック.appのAppleScript用語辞書をくまなく解説し、印刷の指定からCDにプレイリストを焼くためにCD再生時間ごとにプレイリストを分割したり、iTunes REST APIを利用して指定の曲がApple Musicで配信されているかを調べたり、購入年ごとの集計結果をKeynote上にグラフ作成したりと、おおよそ考えつく内容をすべてまとめています。

さらに、執筆中に見つかった「多階層のフォルダプレイリストを階層指定してアクセス」「曲名が検索で探せない場合の手当て」などさまざまな奥義のかずかずを披露しています。

目次

初級

■スクリプトエディタを起動しよう

スクリプトエディタを起動しよう!
スクリプトエディタのヘルプ
色設定を変えてみよう!
スクリプトを入力してみよう
スクリプトを保存しよう
スクリプトを実行しよう
セキュリティとプライバシー
セキュリティとプライバシー>プライバシー

■ミュージックを起動しよう

ミュージック(Music.app)を指定
Music.appを起動
Music.appを終了
Music.appのAppleScript用語辞書の調べ方
メニュー項目や画面強制操作の調べ方
Music.appの詳細仕様について
Music.appの機能の方向性
Music.appの情報を取得しよう
Musicの名前を取得
mute(消音状態)を取得
mute(消音状態)を設定
volume(音量)を取得
volume(音量)を設定
シャッフルモードを取得
シャッフルモードを設定
リピートモードを取得
リピートモードを設定
current trackを取得
Music.appの情報を一括取得
Music.appのプロパティ項目と内容

■再生コントロールを行おう

Musicの再生コントロール機能
対応するAppleScriptのコマンド
再生/停止(トグル切り替え)
次へ
前へ

■再生ウィンドウの切り替え

Musicのウィンドウ表示状態
Musicのウィンドウ表示切り替え
ウィンドウ表示操作
ミニプレーヤー・ウィンドウ表示操作
その他のウィンドウ表示操作

■選択中のトラックを取得しよう

selection=選択中のもの
current playlist=再生中のプレイリスト

■表示の切り替え

アルバムを表示
ミュージックビデオを表示
カラムブラウザを表示

■エンコーダ情報の取得/設定変更

GUIでエンコーダ情報にアクセス
AppleScriptでエンコーダ情報にアクセス

■AirPlay情報の取得/設定変更

GUIでAirPlay出力先情報にアクセス
AppleScriptでAirPlay情報にアクセス
AppleScriptでAirPlay出力先デバイスを指定
AppleScriptでAirPlay出力先設定

■イコライザ設定

GUIでイコライザにアクセス
AppleScriptでイコライザにアクセス
AppleScriptでイコライザを切り替え

■ビジュアライザ設定

GUIでビジュアライザにアクセス
AppleScriptでビジュアライザにアクセス

■URL上のファイルをオープン

指定URLの音声ファイルをオープン

■Music.appの2つのスクリプトメニュー環境

2つのScript Menu環境
Music.app内蔵スクリプトメニュー

中級

■ソース、ライブラリ情報の取得

ソースの情報を取得

■プレイリストから情報を取得

プレイリスト、フォルダプレイリスト自体の情報
プレイリスト、フォルダプレイリスト内の曲にアクセス
共有プレイリスト

■トラックから情報を取得

トラック(曲)の名前を取得
トラック(曲)の詳細情報を取得
曲プロパティの項目と内容(1/3)
曲プロパティの項目と内容(2/3)
曲プロパティの項目と内容(3/3)

■Apple Musicからダウンロードした曲(トラック)の情報を取得

ダウンロードしたApple Musicの曲の情報
サブスク曲と通常購入曲の属性情報の違い
サブスク曲はMusic/TV.appでしか開けない

■手元にファイルが存在していないトラックをダウンロード

選択中のトラックをダウンロード

■属性情報を書き換えよう

name(曲名)を書き換え
name(曲名)を書き換え(グループ置換)
played count(再生回数)を書き換え
bpm(beat per minute)の情報を書き換え
曲プロパティの項目と内容(1/3)
曲プロパティの項目と内容(2/3)
曲プロパティの項目と内容(3/3)

■曲のアートワークを書き換えよう

トラック(曲)のアートワークを指定
参考資料:Image Eventsの設定変更
トラック(曲)のアートワークを削除

■曲を検索しよう

Music.appで曲を検索する方法

■指定の曲を再生しよう

最もよく聴く曲を再生
指定の曲を再生

■プレイリストの新規作成、名称変更、削除

プレイリストの新規作成
プレイリストの名称変更
プレイリストの削除
プレイリストをCD書き出しのために分割(1/2)
プレイリストをCD書き出しのために分割(2/2)

■フォルダプレイリストの新規作成、名称変更、削除

フォルダプレイリストの制約
多階層フォルダを指定してフォルダプレイリストを特定
フォルダプレイリストの操作
フォルダプレイリスト+プレイリスト作成(1/2)
フォルダプレイリスト+プレイリスト作成(2/2)

■音声ファイルの追加、削除、プレイリストへの登録

音声ファイルのMusicライブラリへの追加
トラック(曲)の指定プレイリストへの登録
選択中のトラックの削除
選択中のトラックの完全削除

■CDにアクセス

CDドライブの存在確認
音楽CD(メディア)の存在確認
CDの情報を取得
CDトラックにアクセス
CDトラックを読み込み
プレイリストからオーディオCD作成
オーディオCDのイジェクト

■プリントアウト

ミュージックから印刷出力
「CDジャケット」形式のプリントアウト内容一覧
「曲」「アルバム」のリスト形式のプリントアウト内容一覧
AppleScriptによるプリントアウト形式指定
AppleScriptによるプリントアウトフロー
AppleScriptによるプリントアウト

上級

■iTunes向けのScriptをMusic.app用に書き換えよう

iTunes向けScriptの書き換え
iTunes向けScriptの書き換え
コラム「Music.appが使用するパス表現」

■曲名の文字コード(Normalize方式)が異なる問題

track(曲)の名称について
track(曲)の名称の文字コードについて
track(曲)の名称をhexdumpするScript
対処方法:インポートした曲名をつけかえる

■音声ファイルの変換

Music.appの機能を用いてオーディオファイル形式変換
音声ファイルのMusicライブラリへの追加

■shared trackとtrackのちがい

shared trackとtrackの違い
shared trackとtrackの違い
ファイルの所在によるclassの違い

■各種playlistのちがい

各種playlistの定義の違い
トラック(曲)にアクセスするための経路

■LAN上の共有Musicライブラリを検出

ミュージックの共有ライブラリ
LAN上の共有Musicライブラリをリストアップ
LAN上の共有Musicライブラリに手動アクセス
LAN上の共有Musicライブラリを指定

■iTunes StoreにREST API経由でアクセス

iTunes REST APIにアクセス
選択中の曲がApple Musicで配信されているか確認
自分のライブラリ中の作曲者のサブスク配信率
(参考)サブスク配信率計算結果

■高度なサンプル集

AppleScriptで操作可能な範囲
ライブラリ中の全トラックのアーティスト名をリストアップ
ライブラリ中のファイルをファイル種別ごとに集計
ライブラリ中の各trackをメディア種別ごとに集計
ライブラリ中の各trackのジャンル集計
ジャンル名簡易名寄せ
ライブラリ中のアートワークをすべてJPGで書き出し
ライブラリ中のアートワークの画像種別集計
ライブラリ中の曲タイトルをアルバムごとにまとめて出力
再生曲が変わったら通知
ライブラリへの追加年(購入年)で集計してグラフ表示
最終再生時を集計してKeynoteで縦棒グラフ表示

■便利な他のプログラムや周辺機器

さまざまなAppleScript呼び出しプログラムから操作①
さまざまなAppleScript呼び出しプログラムから操作②
さまざまなAppleScript呼び出しプログラムから操作③
さまざまなAppleScript呼び出しプログラムから操作④
Mac用AirPlay Serverソフトウェア

資料集

■Music.appのAppleScript用語辞書解説

Music.app用語辞書

■iTunes/MusicのAppleScript用語の変遷

iTunes.app/Music.app用語辞書の変遷

■サードパーティ製FrameworkやAppleScript Librariesを呼ぶ

Script BundleにFramework / AppleScript Librariesを入れる
Shane StanleyのScript Toolの変遷
Shane StanleyのScript Libraries
Piyomaru SoftwareのScript Libraries

■AppleScript mini Reference

macOS搭載 AppleScript関連ドキュメント
AppleScript関連の情報源
macOSバージョンとAppleScriptの動向
macOSとAppleScriptの要素技術史
各macOSごとのAppleScript解説(1/4)
各macOSごとのAppleScript解説(2/4)
各macOSごとのAppleScript解説(3/4)
各macOSごとのAppleScript解説(4/4)
macOS内AppleScript補助ツールの歴史
System EventsのAppleScript用語辞書変更点
AppleScript 各ランタイム環境情報
AppleScript 関連ツール
Cocoa Scripting 関連ツール

■ミュージック&AppleScript Q&A

AppleScriptに関するQ&A❶
AppleScriptに関するQ&A❷
AppleScriptに関するQ&A❸

あとがき
奥付

Posted in Books PRODUCTS | Tagged 10.15savvy 11.0savvy Music | Leave a comment

NSDataのdescriptionの形式がmacOS 10.15で変更された

Posted on 5月 20, 2021 by Takaaki Naganoya

文字列データのhexdumpを表示させようとして、予期しない結果が返ってきたので原因を追求してみました。

問題の発生源はNSDataのdescriptionを取得した箇所。

--> "<e38182e3 8184e381 86e38188 e3818a>"--macOS 10.14.6
--> "{length = 15, bytes = 0xe38182e38184e38186e38188e3818a}"--macOS 10.15.7
--> "{length = 15, bytes = 0xe38182e38184e38186e38188e3818a}"--macOS 11.4

macOS 10.15で、この結果を返すさいの記述が変更になったようです。descriptionからhex値を取得するのは、たしかに「裏技」っぽい解決策。

データが長くなると、

{length = 60, bytes = 0xe38182e3 8184e381 86e38188 e3818ae3 ... 81a4e381 a6e381a8 }

のように途中が省略されるので、データを小分けにして処理する必要があります。

AppleScript名:dataのdescription.scptd
—
–  Created by: Takaaki Naganoya
–  Created on: 2021/05/20
—
–  Copyright © 2021 Piyomaru Software, All Rights Reserved
—   
–  Don’t remove this header!!!

use AppleScript version "2.4" — Yosemite (10.10) or later
use framework "Foundation"
use scripting additions

set aStr to current application’s NSString’s stringWithString:"あいうえお"
set aDat to aStr’s dataUsingEncoding:(current application’s NSUTF8StringEncoding)
set bStr to aDat’s |description|() as string
–> "<e38182e3 8184e381 86e38188 e3818a>"–macOS 10.14.6
–> "{length = 15, bytes = 0xe38182e38184e38186e38188e3818a}"–macOS 10.15.7
–> "{length = 15, bytes = 0xe38182e38184e38186e38188e3818a}"–macOS 11.x

★Click Here to Open This Script 

Shane Stanleyからメールで「debugDescriptionだと従来のdescriptionと同じ結果が得られるよ」と教えてもらいました(Thanks Shane!)。

AppleScript名:hexdumpTest.scptd
–By Shane Stanley 2021/05/21
use AppleScript version "2.7"
use framework "Foundation"
use scripting additions

set a to "あいうえおかきくけこさしすせそたちつてと"
set aStr to current application’s NSString’s stringWithString:a
set aDat to aStr’s dataUsingEncoding:(current application’s NSUTF8StringEncoding)
set bStr to aDat’s |debugDescription|() as string
–> <e38182e3 8184e381 86e38188 e3818ae3 818be381 8de3818f e38191e3 8193e381 95e38197 e38199e3 819be381 9de3819f e381a1e3 81a4e381 a6e381a8>

★Click Here to Open This Script 

Posted in Text | Tagged 10.14savvy 10.15savvy 11.0savvy NSData | 1 Comment

明日、Basukeさん主催のBasuke’s Tech Talkに出演します

Posted on 5月 20, 2021 by Takaaki Naganoya

Clubhouse上でBasukeさんが主催されているBasuke’s Tech Talkに出演します。日本時間で5/21 14:00からです。

明日金曜日の午後2時 JSTから、ぴよまるソフトウェアの長野谷さんと「AppleScriptの話 with @Piyomaru 」をお届けします。歴史は実はかなり長い歴史を持つコアテクノロジー。様々な変化を乗り越えたAppleScriptの深部に挑みます Basuke’s Tech Talk #11 https://t.co/6k1lltJPZ2 #basuke

— Basuke (@basuke) May 20, 2021

Basukeさんといえば、古くは「NoMeMo Busters」の作者として有名。Newton系で活躍されたり、さまざまなMac系のプログラムやWebサービス「関心空間」のプログラムを担当されたあと渡米、KinomaでIoT機器の開発をされたあと現在はPlayStationでプログラマーとして勤務されています。

そのBasukeさんがClubhouse上で開催されているBasuke’s Tech Talkにゲスト出演。「AppleScriptの話 with @Piyomaru」と題して、なんやかんや、あることないこと話すことになることでしょう。

自分は「無限に文章を書く」のはOKというタイプの人間で、その場でリアルタイムにお話をするのはそれほど得意ではないため、ちょっとビビっていますが…

なお、当日の話の内容は、Podcastとして再配信されるとのことなので、リアルタイムに聞けなくても大丈夫(?)です。

Posted in news | Leave a comment

Apple Musicが2021年6月から高音質化、空間オーディオ対応

Posted on 5月 18, 2021 by Takaaki Naganoya

サブスクリプション(月額固定費用)サービスのApple Musicの全曲が、「6月からロスレスオーディオのApple Lossless Audio Codec(ALAC)に対応し、一部ではDolby Atmos空間オーディオに対応した楽曲が利用可能になる」とのこと。噂では聞いていましたが、話半分ぐらいで聞いていました。

目下作成中で完成間近の「ミュージック.app Scripting Book With AppleScript」、「書いていないことはない」と自分が胸を張って送り出そうとしている本ですが、当然のようにこの発表に影響を受けます。

こちらで、iTunes Storeで購入した楽曲の詳細情報と、Apple Musicからダウンロードしてきた曲の詳細情報を比較しているのですが……

6/1になったら、再度確認してアップデートする必要がありそうです。この表自体はAppleScriptで、「AppleScriptの実行結果をNumbersの表にまとめる」という処理を行なっているため、作り直してもそれほど作業は発生しないのですが(自動化しておいてよかった!)、まー、反映しておかないとマズイ情報であることに代わりはありません。

Codecが変わるだけだと思われるので、拡張子やらファイル呼称が変わったりすることはなさそうですが、ファイルのサイズが巨大化しそうでそのあたりどーなるのか? 目下、.m4p形式のファイルをローカルにダウンロードできるようになっていますが、そこが変わるのか変わらないのか。

高音質化しても違いがわからない人向けに、従来どおりのCodecでダウンロード/ストリーミングさせるオプションがあるような気もします。6月にMusic.app自体のアップデートもあると見るべきでしょうか。

Posted in news | Tagged 10.14savvy 10.15savvy 11.0savvy iTunes Music | Leave a comment

Post navigation

  • Older posts
  • Newer posts

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 15, Sequoia
  • 指定のWordファイルをPDFに書き出す
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Numbersで選択範囲のセルの前後の空白を削除
  • メキシカンハットの描画
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • AppleScriptによる並列処理
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • AppleScript入門③AppleScriptを使った「自動化」とは?
  • macOS 15でも変化したText to Speech環境
  • Keynote/Pagesで選択中の表カラムの幅を均等割
  • デフォルトインストールされたフォント名を取得するAppleScript
  • macOS 15 リモートApple Eventsにバグ?
  • AppleScript入門① AppleScriptってなんだろう?
  • macOS 14で変更になったOSバージョン取得APIの返り値
  • Keynoteで2階層のスライドのタイトルをまとめてテキスト化
  • Script Debuggerの開発と販売が2025年に終了

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (194) 14.0savvy (147) 15.0savvy (132) CotEditor (66) Finder (51) iTunes (19) Keynote (117) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (55) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC