2021年5月16日日曜日

Googleドライブの画像ファイルをiPhoneで表示する(なわとび記録アプリの続き)


前回書いていたなわとび記録アプリが結構できました。

ちょこちょこっとノウハウも得られたので、

備忘録として書いておこうと思います。


まずはソースを。説明は後で書きます。

【コード.gs】

//URLをたたいたときに呼ばれる

function doGet(req) {

  const template = 'form';

  return HtmlService.createTemplateFromFile(template).evaluate();

}

// CSSを読み込む関数

function include(filename) {

  return HtmlService.createHtmlOutputFromFile(filename).getContent();

}


//画像を表示するための関数

function getBae64Image(id) {

  const file = DriveApp.getFileById(id);

  const data = file.getBlob().getBytes();

  return Utilities.base64Encode(data);

}


【form.html】

<!DOCTYPE html>

<html>

  <head>

    <base target="_top">

    <meta charset="utf-8">

    <!-- form.cssの読み込みはコード.gsに作成した関数で行う -->

    <?!=include('form.css');?>

    <title>なわとび記録</title>

    <meta name="viewport" content="width=device-width">

  </head>

  <!-- btnDayで初期値を今日に設定、imgDisplayでiPhone用の画像表示の仕込み -->

  <body onload="btnDay('today');imgDisplay('GoogleIDGoogleIDGoogleIDGoogleIDG','imgcalendar');imgDisplay('GoogleIDGoogleIDGoogleIDGoogleIDG','imgnawa');imgDisplay('GoogleIDGoogleIDGoogleIDGoogleIDG','imgcount');imgDisplay('GoogleIDGoogleIDGoogleIDGoogleIDG','imgmaccho')">

    <main>

      <!-- タイトル -->

      <div class="maintitle">なわとび記録</div>


      <form action="https://docs.google.com/forms/u/0/d/e/GoogleIDGoogleIDGoogleIDGoogleIDGoogleIDGoogleIDGoogleID/formResponse" method="post" target="hidden_iframe" onsubmit="submitted=true;">

        <P>

           <!-- 日付 -->

           <img id="imgcalendar" class="TitlePic">

           <input class="CalIphone" id="date" type="date" name="entry.123456789" required> <span class="dateChange" onclick="btnDay('today')">今日</span> <span class="dateChange" onclick="btnDay('yesterday')">昨日</span>

        </P>

        <P>

           <!-- 種類 -->

           <img id="imgnawa" class="TitlePic">

           <select class="SelIPhone" id="type" name="entry.123456789" required>

           <option value="前跳び" selected>前跳び</option>

           <option value="後ろ跳び">後ろ跳び</option>

           <option value="前二重跳び">前二重跳び</option>

           <option value="後ろ二重跳び">後ろ二重跳び</option>

           </select>

        </P>

        <P>

           <!-- 回数 -->

           <img id="imgcount" class="TitlePic">

           <input class="NumIphone" type="number" value="90" name="entry.123456789" placeholder="100" required><span class="NumText">回</span>

        </P>

        <P>

           <!-- 記録ボタン -->

           <div style="display:inline-flex">

              <img id="imgmaccho" class="MacchoPic"><input class="BtnSave" type="submit" name="button" value="記録する" onclick="saveMsg()">

           </div>

        </P>

        </form>

   </main>

    <!-- jQueryのCDNを読み込んで使えるようにする -->

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

    <script type="text/javascript">

            //今日か昨日の日時を表示

            function btnDay(flg) {

                var date = new Date()

                //flgによって今日か昨日を取得する

                if (flg == "today") {

                   //何もしない

                } else if (flg == "yesterday") {

                   //昨日を取得する

                date.setDate(date.getDate() - 1);

                } else {

                   //エラーの場合は何もせず、今日を取得

                }

                var year = date.getFullYear()

                var month = date.getMonth() + 1

                var day = date.getDate()

              

                var toTwoDigits = function (num, digit) {

                  num += ''

                  if (num.length < digit) {

                    num = '0' + num

                  }

                  return num

                }

                

                var yyyy = toTwoDigits(year, 4)

                var mm = toTwoDigits(month, 2)

                var dd = toTwoDigits(day, 2)

                var ymd = yyyy + "-" + mm + "-" + dd;

                

                document.getElementById("date").value = ymd;

            }

            /* 画像表示 bodyのonloadで呼び出すことでiPhoneに画像表示させる */

            /* strfileId=GoogleドライブのURLID */

            /* strElementId=IMGタグに指定するID */

            function imgDisplay(strfileId,strElementId) {

               const fileId = strfileId;

               const url = google.script.run

               .withSuccessHandler(base64Data => {

                  const img = document.getElementById(strElementId);

                  img.setAttribute("src", "data:image/png;base64," + base64Data);

               })

               .withFailureHandler(console.error)

               .getBae64Image(fileId);      

            }

            /* 記録ボタン押下後のメッセージ(押せたのかわかりにくいので表示させる) */

            function saveMsg(){

               alert("お疲れさまでした!")

            }

    </script>

    <script type="text/javascript">var submitted = false;</script>

    <!-- 記録ボタンタップ後の画面遷移 -->

    <iframe name="hidden_iframe" id="hidden_iframe" style="display:none;" onload="if(submitted){window.location='https://docs.google.com/spreadsheets/d/spreadsheetnoIDspreadsheetnoID/edit#gid=123456789';}"></iframe>

  </body>

</html>


【form.css.html】

<style>

* {

    font-family: 'Montserrat', Arial, Helvetica, sans-serif;

}


main {

    width: 100vw;

    margin: auto;

    color: #000;

}


/* タップしたときの青い四角を消す */

*:focus {

  outline: none;

}


/* 一番上のタイトルの文字 */

div.maintitle {

    font-size: 75px;

    font-weight: bold;

    text-align: center;

    margin-bottom: 70px;

}


/* 項目名の文字 */

span.title {

    font-size: 55px; 

    margin-left : 30px;

    margin-right : 30px;

}



/* 項目のアイコン */

img.TitlePic {

    width: 70px;

    height: 70px;

    margin-left : 30px;

    margin-right : 30px; 

}


/* 日付 */

input.CalIphone {

    width: 340px;

    font-size: 65px;

    margin-bottom: 60px;

    background-color: transparent;

    border-width: 0px 0px 0px 0px;

    vertical-align:12px;  /* inputやselectがちょっと下にずれる問題の対応 */

}


/* 昨日今日ボタン */

span.dateChange {

    font-size: 45px;

    margin-left : 20px;

    margin-right : 20px; 

    margin-bottom: 60px;

    padding: 10px 30px;

    vertical-align:20px;  /* inputやselectがちょっと下にずれる問題の対応 */

    background-color: #dcdcdc;

}


/* 跳び方の種類プルダウン */

select.SelIPhone {

  -webkit-appearance: none; /* セレクトボックスのデフォルトスタイルを無効化 */

  -moz-appearance: none; /* セレクトボックスのデフォルトスタイルを無効化 */

  appearance: none; /* セレクトボックスのデフォルトスタイルを無効化 */

    width: 740px;

    font-size: 65px; 

    margin-bottom: 60px;

    background-color: white;

    border-width: 0px 0px 0px 0px;

    vertical-align:12px;  /* inputやselectがちょっと下にずれる問題の対応 */

}


/* プルダウンのダミー矢印 */

span.yajirushi {

    font-size: 65px; 

    margin-bottom: 60px;

    vertical-align:12px;  /* inputやselectがちょっと下にずれる問題の対応 */

}



/* 回数 */

input.NumIphone {

    width: 155px;

    font-size: 65px;

    margin-bottom: 60px;

    border-width: 0px 0px 0px 0px;

    vertical-align:12px;  /* inputやselectがちょっと下にずれる問題の対応 */

}


/* 回数の「回」の文字 */

span.NumText {

    font-size: 40px;

    margin-bottom: 60px;

    border-width: 0px 0px 0px 0px;

    vertical-align:12px;  /* inputやselectがちょっと下にずれる問題の対応 */

}


/* 記録閲覧ボタン */

input.BtnRecord {

    -webkit-appearance: none;    /* inputボタンのデフォルトスタイルを無効化 */

    height: 180px;

    font-weight: bold;

    text-align: center;

    font-size: 55px;

    margin-top: 410px;

    margin-left: 155px;

    color: #ffffff;

    background-color: #5a70c3;

    border-width: 0px 0px 0px 0px;

}


/* 記録ボタン */

input.BtnSave {

    -webkit-appearance: none;    /* inputボタンのデフォルトスタイルを無効化 */

    height: 180px;

    font-weight: bold;

    text-align: center;

    font-size: 55px;

    margin-top: 410px;

    margin-left: 440px;

    color: #ffffff;

    background-color: #5a70c3;

    border-width: 0px 0px 0px 0px;

}


/* 項目のアイコン */

img.MacchoPic {

    width: 140px;

    height: 140px;

    margin-top: 450px;

    margin-left: 20px;

}


</style>


Googleドライブの画像ファイルをiPhoneで表示

アプリ画面にアイコンを表示するためにGoogle Driveに画像ファイルを

置いて<IMG>タグで表示しようとしたんですがiPhoneだと

一筋縄ではいかないようで。


GASで公開したWebサイトにGoogle Drive上の画像ファイルを表示できない

上のページのコードを参考に、imgDisplay(strfileId,strElementId)という

ファンクションを作っています。

form.htmlのbodyタグのonloadでGoogleドライブの画像IDとIMGタグを

指定すればhtml側で画像表示できるよう、コードを変えてみました。


画像IDの取り方は以下のページが参考になります。

Google Drive にある画像をimgタグで取得させるURLについて


部品タップ時に出てくる青い枠対応

あとプルダウンをタップしたときに青い枠が出ちゃうんですが、

以下のページのコードを使用して出ないようにしました。

クリックやタップしたときの青い枠や四角を消すCSS


アプリ画面の左下にムキムキアイコンを表示してるんですが

表示してるだけです。タップしたら今までの履歴画面に

飛ばすようにしたいんですが履歴画面をまだ作っていないので…。

2021年4月27日火曜日

Googleフォームをカスタマイズしてなわとび記録アプリを作る

先日からなわとびを始めたんですが

何回飛べたか記録するアプリにいいのがなくて、

自作してみました。


まだ動くだけなので見た目がアレなんですが、

こんなのです。













Googleフォームをカスタマイズして作りました。

ネットで調べるとみんな簡単と言ってますが

なかなか苦労したので、メモを残しておきます。


【アプリ概要】

・iPhoneから使うアプリ(Webページ)。

・飛んだ日、跳び方の種類、飛んだ回数を入力し、送信ボタンを押すと記録できる。

・入力した内容はGoogleスプレッドシートに追記される。

・追記のみ。編集や削除はGoogleスプレッドシートで行う。(いずれ改修予定)

・日付はカレンダで入力。

・種類はプルダウンで入力。

・回数はキーボードで入力。

・日付、種類、回数はすべて文字列形式。日時や数値形式ではない。

 (↑残念ポイント。日付の扱い方がわからなかったため諦めて文字列にしました。)

・カレンダ入力やプルダウン、必須制御はWebページ側で行う。

・iPhoneで使うことしか考えていないので、PCではレイアウトが崩れる

 (↑こちらも残念ポイントです。)


(1)下準備

GoogleAppsScriptをGoogle Driveに追加

GoogleAppsScriptの説明と簡単にWebサイトを作る方法

上記のページを参考にGoogleAppsScriptをGoogle Driveに

インストールしました。実は私これを見落としてまして、

後述のhtmlページを作ったときの

「スクリプト関数が見つかりませんdoGet()」

というエラーに引っかかってしまい、3時間くらいハマりました。


(2)Googleフォームの作成










こんな感じですべて記述形式で質問を作成。

本当はこの時点で日付形式とか選択形式にしたかったんだけど

後述の手順で詰まってしまい諦めました。


(3)Googleフォームとスプレッドシートを連携

Googleフォームの標準機能でスプレッドシートに回答を出力するよう設定。

「回答」タブのこの辺から設定できます。






ちなみに、僕のはこんな感じに記録されていきます。








(4)入力フォームの作成

Googleフォームを自在にカスタマイズする

GoogleAppsScriptの説明と簡単にWebサイトを作る方法

こちらのページを参考にさせて頂きました。


たぶんGoogle側の仕様が変わったんでしょうが、

スクリプトエディタは画面左の↓から開くのが今の仕様のようです。













ちなみにご参考まで、私のソースも載せておきますね。

【コード.gs】

//URLをたたいたときに呼ばれる

function doGet(req) {

  const template = 'form';

  return HtmlService.createTemplateFromFile(template).evaluate();

}

// CSSを読み込む関数

function include(filename) {

  return HtmlService.createHtmlOutputFromFile(filename).getContent();

}

これはこちらのページのまんまですね。



【form.html】
<!DOCTYPE html>

<html>

  <head>

    <base target="_top">

    <meta charset="utf-8">

    <!-- form.cssの読み込みはコード.gsに作成した関数で行う -->

    <?!=include('form.css');?>

    <title>なわとび記録</title>

    <meta name="viewport" content="width=device-width">

  </head>

  <body>

    <main>

      <form action="https://docs.google.com/forms/u/0/d/e/123x123x123x123x123x123x123x123x123x123x123x123x123x123x/formResponse" method="post" target="hidden_iframe" onsubmit="submitted=true;">

        <p>

          <span class="title">日付</span>

        </P>

        <P>

          <input class="CalIphone" id="date" type="date" name="entry.123456789" required>

        </P>

        <P>

          <span class="title">種類</span>

        </P>

        <P>

          <select class="SelIPhone" id="type" name="entry.123456789" required>

          <option value="前跳び" selected>前跳び</option>

          <option value="後ろ跳び">後ろ跳び</option>

          <option value="前二重跳び">前二重跳び</option>

          <option value="後ろ二重跳び">後ろ二重跳び</option>

          </select>

        </P>

        <P>

          <span class="title">回数</span>

        </P>

        <P>

          <input class="NumIphone" type="number" value="80" name="entry.123456789" required>

        </P>

        <P>

          <input class="BtnIphone" type="submit" name="button" value="送信"></button>

        </P>

      </form>

  </main>

    <!-- jQueryのCDNを読み込んで使えるようにする -->

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

    <script type="text/javascript">

        //今日の日時を表示

            window.onload = function () {

                //今日の日時を表示

                var date = new Date()

                var year = date.getFullYear()

                var month = date.getMonth() + 1

                var day = date.getDate()

              

                var toTwoDigits = function (num, digit) {

                  num += ''

                  if (num.length < digit) {

                    num = '0' + num

                  }

                  return num

                }

                

                var yyyy = toTwoDigits(year, 4)

                var mm = toTwoDigits(month, 2)

                var dd = toTwoDigits(day, 2)

                var ymd = yyyy + "-" + mm + "-" + dd;

                

                document.getElementById("date").value = ymd;

            }

    </script>

    <script type="text/javascript">var submitted = false;</script>

    <iframe name="hidden_iframe" id="hidden_iframe" style="display:none;" onload="if(submitted){window.location='https://docs.google.com/spreadsheets/d/123x123x123x123x123x123x123x123x123x123x123x/edit#gid=123456789';}"></iframe>

  </body>

</html>


※IDなどはてきとうな文字列にしています。

日付形式の制御がよくわからなかったのでGoogleフォームは
全部記述形式にして、Webページの方でカレンダ入力や
プルダウン入力を実装したところがミソです。
ミソであり、イケてない点です…。
Webページ側でカレンダを使って入力しますので、
回答結果はすべてyyyy-mm-dd形式で飛んでいきます。
きれいな形式で文字列が飛んでいくので結果の編集は
スプレッドシートなりExcelなりでなんなりと成形してくれ…
がこのアプリの設計ポリシー(笑)です。

記録ボタンを押したあとは、とりあえず記録内容を溜め込んでる
Googleスプレッドシートに画面遷移するようにしました。
(何も制御しないと、Googleフォームの画面に飛んでいってしまいます)
飛ばす記述は下記のページの「7. サンクスページへの遷移について」を
参考にさせて頂きました。

日付の初期値を当日にするコードは以下の
「input type = 'date'に現在日付を設定する」
を参考にさせて頂きました。


【form.css.html】
<style>
* {
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
}

main {
    width: 100vw;
    margin: auto;
    color: #000;
}

span.title {
    font-size: 90px; 
}

select.SelIPhone {
    font-size: 60px; 
}

input.NumIphone {
    font-size: 60px;
}

input.CalIphone {
    font-size: 60px;
}

input.BtnIphone {
    font-size: 60px;
}

</style>
こちらのページを参考にしつつ、ネットで調べて自力で書いた感じです。
今はまともなデザインになっていないので、このcssをいじくって
もう少し見栄えを良くしていこうと思います。


ちなみにform.htmlの
<meta name="viewport" content="width=device-width">
がまったく効いてないんですが、
Googleフォームのページの仕様のような気がします。
画面上部の
「このアプリケーションは、Google ではなく、別のユーザーによって作成されたものです。」
というグレーの部分を眺めていると、どうもグーグルフォームの
ページ自体がPC表示しかできないような気がして…違うんだろうか…。

あ、iPhoneのアイコンですが、ショートカットを
ホーム画面に配置して、こんな感じにしています。




















iOS標準の「ショートカット」を作成し、ホーム画面に
配置することで、アイコンをオリジナルのものに
できますよ。

2020年12月2日水曜日

ライフイズストレンジ メモ 「デイビットが負傷しなかった」

先日からライフイズストレンジっていう

アドベンチャーゲームをしてたんですけど、

「デイビッドが負傷しなかった」っていう選択肢を選ぶのが

むちゃくちゃ難しかったし攻略法がネットにほとんどなかったから

困った人に向けてメモしておきます。


水を飲ませてもらう

ジェファソンが三脚持ったときに警告"しない"

水が乗ってた台を蹴る

ケーブルを引く


これでOKです。

ネットで調べてたら「写真を撮ってもらう」っていう選択肢から

いけるという間違った(?)情報もあってかなりハマった…。。

(間違ってるというかその方法でもいけるのかもしれないけど)

 

以上、ただのメモです。

数年前のゲームだしPS5も出たし、もうやってる人も

そんないないかな。


2020年9月27日日曜日

シャープのネックスピーカー(AN-SS2)を親にあげた

親がテレビとiPadの音が聞こえにくいとのことで、
シャープのネックスピーカーをプレゼントしてあげました。


どこで買っても15,000~17,000円前後くらいするみたいで、
同じような境遇の方で購入するか迷っている方も多いかと
思いまして、ご参考までにレビューを書こうと思います。

※以降の文は私個人の感想です。
 内容に一切責任は持ちません。

結論から言うと、お年寄りでも使えなくはないけど
ちょっと厳しいところもあるかな…と思いました。

[私の環境]
テレビ:シャープ LC-37ES50
iPad:型番忘れたけどだいぶ昔の

使ってみて思ったこと(環境面)
・TVの音量調節がスピーカーとヘッドホン別々でできないと厳しい
→AN-SS2はヘッドホンのピンジャックの口を使います。
 スピーカー音量は30で丁度いいんだけどヘッドホン音量も
 30で、AN-SS2だと音量が小さい…となる可能性がある気がします。
 スピーカーは常時30、ヘッドホンは常時60…
 みたいに別々で設定できるTVだとベストです。
 我が家のTVは別々に設定できるものでした。  
 (ヘッドホン接続時は下画像みたいにヘッドホンマークが
  出て、ヘッドホン音量を調整できる)

 あと、うちの場合はヘッドホン音量を相当上げないと
 なぜかAN-SS2から雑音が出まくりでした。
 50以上にすると普通に聞こえました。

・スピーカーとヘッドホン両方から音が出せるTVだとベスト
 ①ピンジャックにヘッドホンなどが挿さっているときは
  ヘッドホンのみ音が出る
 ②何か挿さっていてもスピーカーとヘッドホンの
  両方から音が出る
 の2パターンが選べるTVだとベストです。
 例えば家族でTVを見るけどネックスピーカーを使うのが
 お婆ちゃんだけの場合、①だとAN-SS2からしか音が出せません。
 我が家のTVは両パターン選べるようでした。

 両パターン選べる場合は、①の状態でヘッドホンを挿して
 音量を先に決めてから、モード②に変える感じかなと。

・TV以外でも使う場合は注意が必要
 母の場合はTVとiPadを同じ部屋で使うんですが、iPadに
 Bluetooth接続すると、iPad側のBluetoothをオフにして
 AN-SS2を再起動しないとTVに接続できません。
 もしそういうシチュエーションで使うなら、Bluetoothの
 オンオフであるとかAN-SS2の再起動(電源ボタン長押し)くらいの
 オペレーションはできる必要があるかと思います。

使ってみて思ったこと(ハードウェア面)
・TVに接続する発信機はUSB給電
 USB給電なので、TVについているUSBの口を使うか、
 コンセントに挿すUSBアダプタが必要になります。
 マニュアルを読むとUSBアダプタは一般的に売っている
 ものでいいようです。
 
・充電がマイクロUSB(Micro-B)端子で小さい
 これが地味に辛いです。
 Micro-Bの端子の向きを視認するのがお年寄りにはつらい。
 ハヅキルーペがいるレベル。
 私でもなかなか見えないし。
 お友達に教えていただいたんですが向きを
 気にしなくていいケーブルなんかもあるようで。


・起動音などは親切設計
 「起動しました。」とか「接続しました。」とか音声で言って
 くれるのはお年寄りにもわかりやすくて良いと思います。

・すごい軽い
 88グラムは伊達じゃないです。気になりません。

・音質は昔のラジカセ
 88グラムではこれが限界なのかな…という感じの
 音質。まぁ母は耳も肥えてないし、テレビを見るくらいなら…。

こんな感じでした。

TVにUSBの差し込み口がない場合、
・TV発信機へ給電する用(常時接続)
・AN-SS2を充電する用(充電時に接続)
2つのUSBコンセントが必要になりますので
ご注意ください。

2020年4月29日水曜日

XDJ-AEROとTRAKTOR AUDIO 6でDJ配信をする(Twitch)


DJ配信に使ったハード

・XDJ-AERO
・TRAKTOR AUDIO 6
・オーディオテクニカのマイクAT-X11
・iBUFFALOのBSSP28U(スピーカー)
・デスクトップPC

DJ配信に使ったソフト、サイト

・OBS Studio
・rekordbox
・iVCam(動画撮影用。iPhoneをWebカメラにする)
Twitch

接続概要図


iBUFFALOのBSSP28Uは出音を聴くためなので、スピーカー
ならなんでもいいと思います。
上記図ではY字ケーブルでつないでます。

OBS Studioの音声入力キャプチャは以下の
設定でいけました。
XDJ-AEROは以下のような接続です。
左から
・USBがPCに(rekordbox操作用)
・RCAケーブルがTRAKTOR AUDIO 6に
・RCA(Y字)ケーブルがiBuffaloのスピーカーに
それぞれつながっています。
右端の黒いケーブルはマイク(AT-X11)です。

TRAKTOR AUDIO 6は以下のようになっています。
左のRCAがAEROから伸びているケーブルです。
右側の上は電源、下はPCに伸びているUSBケーブルです。
このUSBはAEROの音をPCに届けるためのケーブルです。

TwitchやOBS Studioの設定は以下を参考にしました。

思ってたより簡単に配信できたのでびっくりしました。
iPhoneをWebカメラにするアプリがあるのも
驚きです。また一つ賢くなりました。

2020年4月22日水曜日

Windows 10でMicrosoft LifeCam VX-1000が動かない

[現象]
Windows10にMicrosoft LifeCam VX-1000を
つないでも動かない。

「設定」>「Bluetoothとその他のデバイス」には
LifeCam VX-1000
ドライバは使用できません
と表示されている。

デバイスマネージャを見ると
「他のデバイス」に「USB camera」が
表示されており、黄色い「!」アイコンが表示されている。

先日上の現象になって困ったんだけど以下で
解決しました。

[対応策]
①以下のサイトからドライバをダウンロードし、解凍。

②デバイスマネージャで「USB camera」を右クリックして
 「ドライバーの更新」、「コンピュータを参照して~~」
 でダウンロードしたドライバを選んで更新。

※上記を行って何が起ころうと私は責任を負いません。
 自己責任にて実施ください。

たぶんこの人と同じ現象になっていた気がします。
でも公式のドライバがWindows7までのものしか
ないのに、上のサイトで配布されているのは
なんなんでしょうね。

2020年1月25日土曜日

TRAKTOR KONTROLのノブ、フェーダーの位置と画面の位置がずれている

TRAKTOR KONTROLのEQツマミが12時を指しているのに
画面を見ると10時を指していたり、
クロスフェーダーを右端に持っていっても
画面を見ると右端になっていなかったり…
そんなときは以下から設定できるようです。

私はTRAKTOR KONTROL S2で設定をしたのですが、
たぶん他のTRAKTOR KONTROL製品でも似たような
感じではないかと思います。



[File]から[Prefetences...]をクリック。

画面左で「Traktor Kontrol S2」を選び、
画面右の[Calibration]枠の
[Recalibrate]ボタンを押して調整していきます。

FXのツマミを再調整する場合は「FX Knobs」の
[Recalibrate]ボタンを押すと
「ツマミを完全に左に回して下さい…」
「ツマミを完全に右に回して下さい…」
みたいな指示が出ますので、画面の指示に従って下さい。


検索用ワード
トラクターコントロール
ツマミ 位置 おかしい
ずれている あっていない