Search This Blog

2025/01/17

music_generator by Python

Install

pip install numpy

pip install mido

pip install soundfile

pip install streamlit


Code
import numpy as np
import soundfile as sf
import streamlit as st
from mido import Message, MidiFile, MidiTrack
import random

def create_random_melody(style, instrument, duration=180):
    """
    Generates a random melody and saves it as a MIDI file.

    Args:
        style (str): The selected music style ('Calm', 'Bright', 'Mysterious').
        instrument (str): The selected instrument ('Piano', 'Violin', 'Flute', etc.).
        duration (int): Duration of the melody in seconds.

    Returns:
        str: Filename of the generated MIDI file.
    """
    midi_filename = f"{style}_{instrument}_music.mid"
    mid = MidiFile()
    track = MidiTrack()
    mid.tracks.append(track)

    if style == "Calm":
        notes = [60, 62, 64, 65, 67, 69, 71, 72]  # C Major Scale
    elif style == "Bright":
        notes = [72, 74, 76, 77, 79, 81, 83, 84]  # Higher octave C Major Scale
    elif style == "Mysterious":
        notes = [60, 63, 65, 68, 70, 73, 75, 78]  # Suspenseful scale
    else:
        notes = [60, 62, 64, 67, 69]  # Default to C Pentatonic Scale

    total_ticks = 0
    ticks_per_note = 480

    while total_ticks < duration * 480:
        note = random.choice(notes)
        velocity = random.randint(50, 100)
        track.append(Message('note_on', note=note, velocity=velocity, time=0))
        track.append(Message('note_off', note=note, velocity=velocity, time=ticks_per_note))
        total_ticks += ticks_per_note

    mid.save(midi_filename)
    return midi_filename

# Streamlit App
def main():
    st.title("Random Music Generator")

    # User inputs
    style = st.selectbox("Choose a music style:", ["Calm", "Bright", "Mysterious"])
    instrument = st.selectbox("Choose an instrument:", ["Piano", "Violin", "Flute", "Guitar"])
    duration = st.slider("Select duration (seconds):", min_value=30, max_value=180, step=30, value=90)
    file_format = st.selectbox("Select file format:", ["MIDI"])

    if st.button("Generate Music"):
        st.write(f"Generating {style} music with {instrument} for {duration} seconds...")

        if file_format == "MIDI":
            midi_filename = create_random_melody(style, instrument, duration)
            st.success("MIDI file generated successfully!")

            # Provide MIDI download link
            with open(midi_filename, "rb") as midi_file:
                st.download_button(
                    label="Download MIDI File",
                    data=midi_file,
                    file_name=midi_filename,
                    mime="audio/midi"
                )

if __name__ == "__main__":
    main()


RUN

streamlit run music_generator.py

2024/11/01

Salesforceナレッジのレポート作成手順

 

1. Salesforceナレッジのレポートタイプの作成

Salesforceでは、カスタマイズされたレポートタイプを使用することで、必要なデータを分かりやすく抽出・表示することができます。Salesforceナレッジに関するレポートを作成するには、まずナレッジに基づいたレポートタイプを作成する必要があります。

手順

  1. 設定にアクセス

    • Salesforce画面右上の「⚙」アイコンをクリックし、「設定」を選択します。
  2. レポートタイプの設定を開く

    • 設定メニューで、「レポートタイプ」と検索バーに入力して、表示される「レポートタイプ」オプションを選択します。
  3. 新しいカスタムレポートタイプの作成

    • 「新規カスタムレポートタイプ」をクリックします。すると、以下のような設定画面が表示されます。
  4. レポートタイプの基本情報を入力

    • 「主オブジェクトの選択」で、「ナレッジ記事」を選択します。
    • レポートタイプ名に任意の名前を入力(例:「ナレッジ記事レポート」)。
    • 「レポートタイプの詳細」には、概要や説明を入力しておくと便利です。
    • 「カテゴリ」で、作成するレポートタイプを分類するフォルダを指定します(例:営業、サービスなど)。
    • 「リリース状態」は「リリース済み」に設定しておくと、他のユーザーも利用可能になります。
  5. オブジェクトの関連設定(オプション)

    • 必要に応じて、他のオブジェクト(例:ケースやアカウント)と関連付けたレポートを作成することも可能です。
    • 「関連オブジェクトを追加」セクションから、ナレッジと関連のあるオブジェクトを選択し、「左外部結合」など結合タイプを設定します。
  6. レポートタイプの保存とリリース

    • 「保存」をクリックし、レポートタイプを保存します。
    • 必要に応じて、ユーザーに対してリリース(公開)することもできます。

この手順で、ナレッジ記事に基づいたカスタムレポートタイプの作成が完了しました。このレポートタイプを使用することで、ナレッジ記事に関するレポートをより柔軟に作成できます。


2. Salesforceレポートの作成手順

次に、作成したレポートタイプを使用して、具体的なレポートを作成する手順を説明します。

手順

  1. レポートタブにアクセス

    • Salesforceのホーム画面から、「レポート」タブをクリックします。
    • 「新規レポート」ボタンをクリックして、レポート作成画面に移動します。
  2. レポートタイプの選択

    • 「レポートタイプの選択」画面が表示されます。ここで、先ほど作成した「ナレッジ記事レポート」を選択します。
    • 「開始」をクリックして、レポート作成画面に移動します。
  3. 列の追加とフィルタの設定

    • レポート作成画面の左側に「列」リストが表示されます。このリストから、表示したい情報(例:タイトル、作成日、最終更新日など)を選択し、レポートにドラッグ&ドロップで追加します。
    • 「フィルター」オプションから、必要な条件を設定します。例として、記事の公開日や作成者によるフィルタリングが可能です。
      • フィルター例:
        • 「公開日」:過去30日以内
        • 「作成者」:特定のユーザーまたは部門
  4. グループ化の設定(オプション)

    • 特定の項目(例:カテゴリや作成者)でグループ化することで、データをさらに見やすく整理できます。
    • 左メニューから「グループ」のフィールドをドラッグし、レポート内に配置します。カテゴリ別やユーザー別の集計が可能です。
  5. 集計機能の追加(オプション)

    • 数値データ(例:記事の閲覧数など)に対して、合計値や平均値を計算できます。
    • 集計したい項目をクリックし、「サマリー」を選択することで、合計や平均などの集計が可能です。
  6. チャートの追加(オプション)

    • レポートをグラフで視覚化したい場合は、「チャートを追加」ボタンをクリックし、棒グラフや円グラフなどを選択します。
    • チャートを追加すると、データの視覚的な理解が向上します。
  7. レポートの保存

    • レポート設定が完了したら、「保存&実行」ボタンをクリックします。
    • レポート名を入力し、フォルダを選択して保存します(例:「ナレッジ記事月次レポート」など)。
  8. レポートの実行と確認

    • 保存したレポートは、すぐに実行して結果を確認できます。また、レポートのスケジュール設定を行うことで、定期的に自動実行されるようにも設定可能です。

補足:Salesforceレポートに関するベストプラクティス

  • 目的を明確にする:レポートの目的に応じてフィルタやグループ化を工夫することで、必要な情報がわかりやすく表示されます。
  • 共有設定を確認する:レポートを共有する際は、ユーザーごとのアクセス権限に注意しましょう。
  • 定期的な更新・メンテナンス:レポート内容が最新の状態を保つため、定期的にフィルタや集計内容を見直しましょう。

これで、Salesforceナレッジに基づくレポートタイプの作成と、そのレポートを使った実際のレポート作成手順が完了しました。Salesforceのレポート機能を活用することで、ナレッジ管理や業務改善に役立てることができます。

2024/07/08

PMDの利用手順|日本語版

 インストールについて

・必要条件

Java 8 以降

zipアーカイバ

・ダウンロード

https://github.com/pmd/pmd/releases/download/pmd_releases%2F7.0.0/pmd-dist-7.0.0-bin.zip

・環境変数の追加

必須ではありませんが、追加すると便利になる

例え、C:\pmd-bin-7.0.0に展開する場合

CMDで追加:SET PATH=C:\pmd-bin-7.0.0\bin;%PATH%

もしくは手動でスタートメニューから環境変数に追加する

基本的なCLIの使用

https://pmd.github.io/pmd/pmd_userdocs_cli_reference.html

-R <path>: 使用するルール・セット・ファイル。

-d <source> …: 分析するソースへのパス。

-f <format>: レポート形式。

--aux-classpath <classpath>: 分析されたJavaソースのコンパイル済みクラス・ファイル(存在する場合)を含むクラス・パス。


・Javaの場合

pmd.bat check -d c:\src -R rulesets/java/quickstart.xml -f csv > [出力パス]\result.csv

・Apexの場合

pmd.bat check -d c:\src -R rulesets/apex/quickstart.xml -f csv > [出力パス]\result.csv

・LWCとVisualForceの場合

ルールセットは自作してから利用します。ルールセットは作成資料:

https://pmd.github.io/pmd/pmd_userdocs_making_rulesets.html#sharing-your-ruleset

https://pmd.github.io/pmd/pmd_rules_ecmascript.html

https://pmd.github.io/pmd/pmd_rules_html.html

https://pmd.github.io/pmd/pmd_rules_visualforce.html


2023/12/27

Add local net server

net use X: \\computername\path

2023/10/27

html tag sample list

<a>link</a>

link

<b>bold</b>

bold

<em>em</em>

em