LoginSignup
7
6

More than 5 years have passed since last update.

ムシャクシャしたので国民機に癒してもらおうと思ってやった。後悔はしていない。

Last updated at Posted at 2016-11-15

疲れた

つかれたんだよ…

どうする

癒やしが必要。癒やしとはきっと故郷だ…それ以外にはない。俺たち故郷とはどこか。PC98シリーズにきまってる。ファミコンクラシックもバカ売れだし。(66とか88の人にはひっぱたかれそう感じあるけど。AppleIIの人はVirtual IIでDiskIIのシーク音をどうぞ)

遠き故郷はダムのそこに…

PC98の実機なんてもう手元にねーよ・・・。でも実機がなくてもピポさえあれば生きてける。ピポは所詮Beep音なので生成すれば故郷に思いを馳せられる…

故郷をつくる

pygameで音を生成して鳴らせるらしいので適当にググったら近いことをやってる人がいた。Thx!故郷は近い・・・

故郷を調べる

故郷の音は2000KHzを100ms、ちょっとWaitして1000KHzを100msらしい。というか、これは君の故郷によって違う(たしかクロックによって違う)。そう、マシンの数だけ故郷があるのだ・・・

故郷をつくる

言葉はいらない。コードがあればいい・・ああ、故郷が近い

pc98.py
from array import array
from time import sleep

import pygame
from pygame.mixer import Sound, get_init, pre_init

class Note(Sound):
    def __init__(self, frequency, volume=.1):
        self.frequency = frequency
        Sound.__init__(self, self.build_samples())
        self.set_volume(volume)

    def build_samples(self):
        period = int(round(get_init()[0] / self.frequency))
        samples = array("h", [0] * period)
        amplitude = 2 ** (abs(get_init()[1]) - 1) - 1
        for time in range(period):
            if time < period / 2:
                samples[time] = amplitude
            else:
                samples[time] = -amplitude
        return samples


if __name__ == "__main__":
    pre_init(44100, -16, 1, 1024)
    pygame.init()

    Note(2000).play(100)
    sleep(0.1)

    Note(1000).play(80)
    sleep(1)

故郷に帰る

pygameをインストールしてくれ。
もし自分の故郷と違うのなら.playのあとのDurationやsleepの時間を自分で変更してくれ・・・・・俺はつかれた。

$ pip install pygame
$ python pc98.py

ただいま・・・!

故郷行きの列車の車掌と乗務員たちに感謝

次回

故郷に帰り少したち、夕暮れの中を散歩していると、ふと憧れのあの子のことを思い出した。昔の話だ。よく彼女と遊びに海や宇宙にいったもんだ・・・懐かしいな。そんなことを思って歩いていた。

「あの、◯◯君?」
突然声をかけれらた俺は、あの懐かしい震えた声とともにドラム缶をくらい、爆発した。

次回、初恋はBIO_100%の味。お楽しみに

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6