技術系回顧録(怠惰)

自分が学んだことをアウトプットする場として適当に記事を書きます。

pythonでMIDIを扱いたかった…(断念)

うまくいかないのでメモがてら更新

Pythonで音を扱うプログラムを書きたくなった。そこでとりあえずMIDIをいじってみようと思っていた。

MIDIファイルの作成

MIDIファイルの作成はいろいろな方法があった。

使ったライブラリをメモしておく。

MIDIファイルを作成することは目的ではなかったのでサンプルぐらいしか試していない。結構わかりやすい印象であった。

MIDIファイルの再生

これができなかった。どうすればMIDIファイルを再生できるのか…。

使ったライブラリをメモしておく

  • pretty_midi(サンプルで作ったMIDIファイルは再生できるが、それ以外は無理だった)
  • pygame (waveファイルだけでなくmp3ファイルも再生できる模様。ただし私が再生したいのはMIDIだ。)
  • pyaudio (わからない。単音ならいけそう。)

正直英語のドキュメントを読んでみても、あまり参考になる情報は得られなかった。単音を鳴らすことはできたが…

rubyのほうが良さそうなものがあった

結局、誰も彼もサンプルとして公開しているのはwaveファイルの読み込みばかり。

というわけでmidi固執せず、waveファイルを扱えばいいのではないのでしょうか。(名案)

技術が上がったら再挑戦しよう。

pythonのrandomモジュールを使ってみる

randomモジュールを使ってリストからランダムに要素を抽出したい。

  1. 一つの要素をランダムに選ぶ場合
import random

a=['キュアブラック', 'キュアホワイト', 'シャイニールミナス']

print(random.choice(a))

出力結果

%python a.py
キュアブラック

%python a.py
シャイニールミナス

%python a.py
シャイニールミナス

import randomでrandomモジュールが使えるようになる。

random.choice(a)でaの要素を一つランダムに選ぶことができる。

なぜプリキュアの名前なのかというとただの趣味。

日本語使ってるけどコーディングはなくても動く。pythonは今そういう仕様らしい。

ドキュメントのリンクも貼っておく

random.choice()の説明

  1. 複数の要素をランダムに選ぶ場合
import random

a=['キュアブラック', 'キュアホワイト', 'シャイニールミナス']

print(random.choices(a,k=2))

出力結果

%python a.py
['キュアブラック', 'キュアブラック']

%python a.py
['シャイニールミナス', 'キュアブラック']

%python a.py
['キュアホワイト', 'キュアホワイト']

random.choices(a,k=2) のaの部分にリストやタプルなどを入れて、k=2のように選ぶ個数を指定する。

ただしこれを使うと重複した結果がでることもあるので注意が必要。

重複させたくないときはrandom.sample( )を使うと良いらしい。使い方は

random.sample(a,2)

というように使う。choicesとは引数の渡し方が違うようなので注意したい。

random.choices()の説明

random.sample()の説明

簡単なfor文の書き方(C言語、Python)

最近C言語ばかり書いていたらpythonのことをほとんど忘れてしまった。

そこで復習のためにCとpythonのfor文の書き方をメモしておく。

Cの場合

カウンタ変数の宣言、初期化の必要がある。

#include<stdio.h>

void main(){
    int i;
    for(i=0;i<5;i++){
        printf("%d\n",i);
    }
}

出力結果

0
1
2
3
4

pythonの場合

for文でリストの中身を回すことができたりと便利。今回はCで示したような簡単なfor文を書く。

for i in range(5):
    print(i)

出力結果

0
1
2
3
4

range(5)と範囲を決めたときは0から4までの整数が出力される。

1から5までの数字を出したいときは範囲の指定を

for i in range(1,6)

とすればいいらしい。

Python Hello world!

Markdownでコードを埋め込む練習

print("Hello world!")

シンタックスハイライトで表示されました。短いコードだと色がつくありがたみはそこまで感じられないが、長いコードのときは絶対に欲しい機能。

書き方は`(バッククォート)3つをコードの前後につけるだけ

Java(JRE)のインストールについて

 最近友人がJavaでゲームを作ったため、それを遊ぶために自分の貧弱WindowsノートPCにJavaをインストールした。

 一応手順をメモしておく。 なおここで書くのは開発者のための手順ではないので、JDKJavaで開発するためのもの)ではなく、JREというJavaを動かすためだけのものである。

(正直、Javaは一度も書いたことないので変なことを言ってるかもしれない。もしあれば後で訂正します)

(ホームページに行ってインストールしてくるだけだが)

  1. Javaのダウンロードページ(https://java.com/ja/download/manual.jsp) に行く f:id:blanche1:20181107212055j:plain

    JREのダウンロードページ
     画像ではWindowsしか映ってないが、MacLinuxSolarisもある(Solarisって何なんだ…)

  2. 自分のOSにあったものをダウンロードする。

  3. (Windowsの場合)exeファイルを実行し、指示に従ってインストールする。

以上です。非常に簡単ですね。

念のため書いておきますが、Javaをつかってプログラミングしたい、などという場合はJREではなくJDKが必要になるので注意してください。

開発環境を整えるときはPathの設定とかが慣れないとよくわからないので、いつかメモしておきたい


この文章はMarkdownで書いてみました。

Markdownの基本的な書き方のメモも残しておく予定。

技術系ブログ

技術系ブログはじめました。

こんにちは、名前はまだないものです。

まだ経歴というものはさしてありませんがいろいろと書いていこうと思います。

 

只今勉強中の分野はC、Python機械学習関係、自作ゲーム関係などです。

これらに関わる事柄の記事を書こうと思います。

具体的には自分の気になるPythonのライブラリや自分がプログラミングをする中で困ったこと、自分が開発したものなどです。

 

はじめはQiitaにでも記事を書こうと思っていたのですが、あまりに内容が薄かったのでとりあえずブログの方に書くことにしました。

 

はてなブログの様式になれていないので、もし記事を読んでくださる方がいらっしゃれば、アドバイスを貰えると嬉しいです。

 

とりあえず直近の目標はとりあえず何か書くことです。

正直自分用のメモなので気楽に書こうと思います。