2023 ソフトウェア設計及び演習用の班Wiki

23::gr03::関数

ページリンク

関数

  • 作成した関数についてそれぞれのファイルごと(html, jsの順)に説明する。

voice_imput.html

voice()
  • 自分の音域データ<class = keep>と検索方法を表す「search_switch」をoutput.htmlにクエリで渡す
pitch_keep()
  • 観測音に入っている音階<class = observe>を、自分の音域データ<class = keep>として保存


manual_input.html

manual_in()
  • セレクトボックスで選択された音階をクエリセレクタで取得し、output.htmlにクエリで渡す

singer_search.html, song_search.html

singer_search(), song_search()
  • 入力された「もの」と検索方法を表す「search_switch」をoutput.htmlにクエリで渡す
サジェスト機能について
  • 曲のデータリストから歌手や曲のデータのみを取得し、新たな配列に保存する。入力された文字列を含むものを検索し、表示させる

output.html

function()
  • クエリで受け取った音域データを分割して、関数deta_search()に渡す。
  • switch文でそれぞれの検索方法を場合分けする。

data_search.js

deta_search()
  • 曲のデータリストをオブジェクト配列 musiclistで保存している。
  • search_switch(int型の整数)を受け取り、switch文で分岐し、それに合わせてフィルターをかけて検索する
  • 検索結果に合うものを新たなオブジェクト配列show_listに保存し、関数output()にデータを渡す

output.js

output()
  • data_search()が作成した配列を受け取り、曲名・歌手名・音階データを表形式にして出力する。
    • forEachで繰り返し表示を行う(行数は構造体の要素数、列数は1つの要素のメンバ数)
  • 雰囲気検索のときは、曲の雰囲気(mood)を受け取り、表示するものを返す
  • 数字で管理している音階をpitch_matchに渡して表示の文字形式にする
  • キー変更に合わせて画面に現在のキーを表示する。



pitch_match.js

pitch_match()
  • 入力された文字列の音階に対して、switch文で場合を分けてそれぞれに対応させた数字を返す
pitch_match_rev()
  • 数字で管理された音階に対して、switch文で場合を分けてそれぞれに対応した文字列の音階を返す

sort.js

sort()
  • output.htmlで1度出力した表から連想配列を作り直し、その後sortメソッドによって任意の順番に並べ替えを行う。作り直した連想配列を関数output()へ再度渡し、表を出力し直す。



key_control.js

key_control()
  • キー変更は -6 ~ +6 まで可能とする(+12で1オクターブ上の同じ音になるため)
  • 変更されたキーの情報deta_search()へ渡し、新たな結果を表示させる

singer_filter.js

filter()
  • トグルスイッチがONならsinger_filter_exe()を、OFFならsinger_filter_return()を呼び出す
singer_filter()
  • 曲名検索の検索バーと同様のサジェスト機能を使用。文字を入力するとそれに合わせてサジェストを表示する。
singer_filter_exe()
  • 歌手名絞り込みを実行する関数。現在ユーザーによって指定されているジャンルやキーの情報、指定された歌手名をdata_search.jsに渡し、新たな表を作成する。
singer_filter_return()
  • トグルがOFFにされたとき、フィルタリングを解除する。歌手の指定を無くし、すべての歌手で表を作り直す。


最終更新日:2023/07/26 16:24:22