跳至內容

討論:LNNBot

出自希顶维基
於 2025年9月26日 (五) 07:31 由 DGCK81LNN留言 | 貢獻 所做的修訂 (撤销Translated Batch讨论)的修订版本41991

由ColorfulGalaxy在話題Shidinn telegraphic cipher上作出的最新留言:2025年9月25日 (星期四)

Shidinn telegraphic cipher

Raymond's Shidinn telegraphic cipher is celebrating its fifth anniversary this year.

This Python program converts Shidinn alphabet text to LNNBot musicjs sequence.

It may still need to be corrected. ColorfulGalaxy留言2025年9月25日 (四) 18:17 (CST)回覆

import sys
c=' '
rootn=-12
diffn=[]
letters="bpmwjqxynzDsrHNldtgkh45vF7BcfuaoeEAYL62T83V1i"

def printn(n,length=1):
 print("note(",n,",",length,");")

def restn(length=1):
 print("rest(",length,");")

def ejn():
 global diffn,rootn
 while len(diffn)>0:
  printn(rootn+diffn[0],1)
  diffn.pop(0)
  if len(diffn)>0:
   restn(-1)
 rootn=-12
 diffn=[]

def h14():
 print("note(-999,1);") # To be fixed

def b27():
 global diffn,rootn
 rootn=-12
 diffn=[0,2,3,5,7,8,10,12,14,15,17,19,20,22]
 ejn()

def h21():
 global diffn,rootn
 rootn=-12
 diffn=[1,4,6,9,11,13,16,18,21,23,25,28,30]
 ejn()

def t18():
 global diffn,rootn
 rootn=-12
 diffn=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
 ejn()

rootn=-12
diffn=[0]
ejn()
rootn=-12
diffn=[0]
ejn()
rootn=-12
diffn=[0]
ejn()
h14()


while(c!=''):
 c=sys.stdin.read(1)
 if(c==''):
  ejn();
  b27();
  b27();
  h21();
  h21();
  t18();
  t18();
  h14();
 elif(c in (' ',chr(10),chr(13))): # Space bar
  ejn()
  restn(1)
 elif(c=='b'): # Light
  ejn()
  rootn=2
  diffn=[0,4,7]
 elif(c=='p'): # House
  ejn()
  rootn=1
  diffn=[0,4,7]
 elif(c=='m'): # Door
  diffn=[0,3,7]
  ejn()
 elif(c=='w'): # Mountain
  diffn=[0,4,7,10,15]
  ejn()
 elif(c=='j'): # Hair
  diffn=[0,4,7,10,14,17]
  ejn()
 elif(c=='q'): # Carriage & Boat
  diffn=[0,3,7,10,14,17]
  ejn()
 elif(c=='x'): # Fire & Leather
  diffn=[0,4,7,10,13]
  ejn()
 elif(c=='y'): # Flower
  diffn=[0,4,7,10,14,18]
  ejn()
 elif(c=='n'):
  diffn=[0,3,7,10]
  ejn()
 elif(c=='z'):
  diffn=[0,4,7,10,20]
  ejn()
 elif(c=='D'):
  diffn=[0,4,8,10]
  ejn()
 elif(c=='s'):
  ejn()
  rootn=4
  diffn=[0,4,7]
 elif(c=='r'):
  diffn=[0,3,7,10,14,17,21]
  ejn()
 elif(c=='H'):
  ejn()
  h14() # This function is buggy.
 elif(c=='N'):
  diffn=[0,3,7,10,14]
  ejn()
 elif(c=='l'):
  diffn=[0,2,7]
  ejn()
 elif(c=='d'):
  ejn()
  rootn=5
  diffn=[0,4,7]
 elif(c=='t'):
  ejn()
  t18()
 elif(c=='g'):
  ejn()
  rootn=10
  diffn=[0,4,7]
 elif(c=='k'):
  diffn=[0,4,7,10,14,17,21]
  ejn()
 elif(c=='h'):
  ejn()
  h21()
 elif(c=='4'):
  diffn=[0,5,7]
  ejn()
 elif(c=='5'):
  diffn=[0,7]
  ejn()
 elif(c=='v'):
  diffn=[0,4,6]
  ejn()
 elif(c=='F'):
  ejn()
  rootn=9
  diffn=[0,4,7]
 elif(c=='7'):
  diffn=[0,4,7,10]
  ejn()
 elif(c=='B'):
  ejn()
  b27()
 elif(c=='c'):
  ejn()
  rootn=3
  diffn=[0,4,7]
 elif(c=='f'):
  ejn()
  rootn=8
  diffn=[0,4,7]
 elif(c=='u'):
  diffn=[0,4,8]
  ejn()
 elif(c=='a'):
  ejn()
  rootn=0
  diffn=[0,4,7]
 elif(c=='o'):
  diffn=[0,3,6,9]
  ejn()
 elif(c=='e'):
  ejn()
  rootn=7
  diffn=[0,4,7]
 elif(c=='E'):
  ejn()
  rootn=6
  diffn=[0,4,7]
 elif(c=='A'):
  ejn()
  rootn=11
  diffn=[0,4,7]
 elif(c=='Y'):
  diffn=[0,3,6,11]
  ejn()
 elif(c=='L'):
  diffn=[0,7,10]
  ejn()
 elif(c=='6'):
  diffn=[0,4,7,9]
  ejn()
 elif(c=='2'):
  diffn=[0,4,7,14]
  ejn()
 elif(c=='8'):
  diffn=[0,4,7,12] #C I could not find any reliable source about the C8 chord
  ejn()
 elif(c=='3'):
  diffn=[0,4]
  ejn()
 elif(c=='V'):
  diffn=[0,4,7,11]
  ejn()
 elif(c=='1'):
  diffn=[0]
  ejn()
 elif(c=='i'):
  diffn=[0,4,7,10,14]
  ejn()