はじめに
先日運良く初期型のTALBO BASS(以下初期タルべ)を入手することができましたので、再生産TALBO BASS(以下再生産タルべ)との差異を比較すると共に現物から初期タルべの謎を解明します。当時のカタログスペックなどは別エントリーにてまとめていますので、併せてそちらもご覧ください。
128bit-allurements.hatenablog.com
- はじめに
- 構造の差異
- ①外観
- ②内部構造
- ③回路
- ④音
- 考察〜カタログスペックとの差〜
続きを読む
先日運良く初期型のTALBO BASS(以下初期タルべ)を入手することができましたので、再生産TALBO BASS(以下再生産タルべ)との差異を比較すると共に現物から初期タルべの謎を解明します。当時のカタログスペックなどは別エントリーにてまとめていますので、併せてそちらもご覧ください。
128bit-allurements.hatenablog.com
続きを読む
こちらの記事ではカタログスペックを通じてTALBO BASSがどのようなものだったかを記述します。実機での考察はこちらから。
128bit-allurements.hatenablog.com
続きを読む
今回はMacでNetBootを利用できるようにする方法を紹介します。NetBootを利用することにより、過去のOSでしか動かせないソフトをさくっと使ったり、古い骨董OSを動かしてニヤニヤしたり...なんてことができます。個人的にはClassic Mac大好きなマカーさんにとってはかなり便利な機能だと思います。
以後、このリンクにあるように説明の際OSバージョンを置き換えて説明します。
こちらは個人でソフトの互換性を手軽に確認したり、古いOSを楽しむためだけに利用しており、この方法が専門的な利用に耐えうるかどうかは保証しかねます。このブログを見てNetBootを実行される際は必ず自己責任でお願いします。
続きを読む#include <LiquidCrystal.h> #define NOTE_ON 144 #define CONTROLCHANGE 176 #define ALLSOUNDOFF 120 #define SensorsNumber 6 //number of photo sensor #define Legato 10 #define Limit 710 LiquidCrystal lcd(0, 1, 2, 3, 4, 5); const int RightSW=13, LeftSW=10, ToggleDown=12, ToggleUp=11; int nLB=0,nLM=1,nLT=2,nRB=3,nRM=4,nRT=5,vLB=1,vLM=1,vLT=1,vRB=1,vRM=1,vRT=1; //n=note,v=velocity int Input[SensorsNumber] = {0,1,2,4,5,3}; int Note[SensorsNumber] = {nRT,nRM,nRB,nLT,nLM,nLB}; int Velocity[SensorsNumber] = {vRT,vRM,vRB,vLT,vLM,vLB}; short Counter[Sensorsnumber]; //change to int void sendMidi(int cmd, int pitch, int velocity); void Evaluate(int Value, int Note, int State, int Velocity); //LB=LeftBottom(pin3),LM=LeftMiddle(pin5),LT=LeftTop(pin4),RB=RightBottom(pin2),RM=RightMiddle(pin1),RT=RightTop(pin0) void sendMidi(int cmd, int pitch, int velocity) { Serial.write(cmd); Serial.write(pitch); Serial.write(velocity); } int Evaluate(int Pin){ int Status = 0; //thanks to developer who establish this function:https://jumbleat.com/2016/12/01/revision_of_avoiding_chatter/ if(1000 < analogRead(Input[Pin])){ Counter[Pin]++; //increase number if(Counter[Pin] > Limit){ //when count get limitance Counter[Pin] = Limit; } }else{ if(Counter[Pin] > Legato){ Status = 3; //stop shading } Counter[Pin] = 0; } if(Counter[Pin] > Legato){ Status = 2; //while shading } else if(Counter[Pin] == Legato){ Status = 1; //start shading } return Status; } void setup() { //setting up pinmode, LCD and MIDI Serial.begin(31250); pinMode(RightSW,INPUT); //now developing laser harp systems with switches pinMode(LeftSW,INPUT); pinMode(ToggleDown,INPUT); pinMode(ToggleUp,INPUT); lcd.begin(16, 2); sendMidi(CONTROLCHANGE, ALLSOUNDOFF, 0); } void loop(){ for(int n = 0; n < SensorsNumber; n++){ int Status = Evaluate(n); if(Status == 1){ sendMidi(NOTE_ON, Note[n], Velocity[n]); } else if(Status == 3){ sendMidi(NOTE_ON, Note[n], 0); //velocity 0 means note off } } }