讨论:LNNBot
外观
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()