¿ªÔÆÌåÓý

Locked Re: Audio Coding


 

Dave,

Here is a solution that works for me:

dict = {}
for i in range(1, 3):
dict["buffer_horn_Loco" + str(i)] = audio.provideAudio("IAB_horn_Loco" + str(i))
dict["buffer_horn_Loco" + str(i)].setURL(sounds_path + "horn" + str(i) + ".wav")
dict["source_horn_Loco" + str(i)] = audio.provideAudio("IAS_horn_Loco" + str(i))
dict["source_horn_Loco" + str(i)].setAssignedBuffer("IAB_horn_Loco" + str(i))
print("Variable buffer_horn_Loco{} has value {}".format(i, dict["buffer_horn_Loco" + str(i)]))
print("Variable source_horn_Loco{} has value {}".format(i, dict["source_horn_Loco" + str(i)]))

Please note that I deleted the spaces in the variable names.
Please adapt the "range" for your needs.
See the result in the JMRI Audio Table.


Klaus


Am 07.09.2018 um 11:43 schrieb David Smith via Groups.Io:

I have been experimenting with adding sound
There are several sounds I want to assign to each loco.
I use, for example, just showing 2 sounds assigned to 2 locos,
sounds_path = "C:/Users/Home/Documents/train-n/sounds/ds/"
buffer_horn_Loco1 = audio.provideAudio("IAB_horn_ Loco1 ")
buffer_horn_ Loco1.setURL(sounds_path+"horn1.wav")
source_horn_ Loco1 = audio.provideAudio("IAS_horn_ Loco1 ")
source_horn_ Loco1.setAssignedBuffer("IAB_horn_ Loco1 ")
buffer_startup_Loco1 = audio.provideAudio("IAB_ startup _ Loco1 ")
buffer_ startup _ Loco1.setURL(sounds_path+" startup 1.wav")
source_ startup _ Loco1 = audio.provideAudio("IAS_ startup _ Loco1 ")
source_ startup _ Loco1.setAssignedBuffer("IAB_ startup _ Loco1 ")
buffer_horn_Loco2 = audio.provideAudio("IAB_horn_ Loco2 ")
buffer_horn_ Loco2.setURL(sounds_path+"horn2.wav")
source_horn_ Loco2 = audio.provideAudio("IAS_horn_ Loco2 ")
source_horn_ Loco2.setAssignedBuffer("IAB_horn_ Loco2 ")
buffer_startup_Loco2 = audio.provideAudio("IAB_ startup _ Loco2 ")
buffer_ startup _ Loco2. setURL(sounds_path+" startup 2.wav")
source_ startup _ Loco2 = audio.provideAudio("IAS_ startup _ Loco2 ")
source_ startup _ Loco2. setAssignedBuffer("IAB_ startup _ Loco2 ")
This gets very longwinded for multiple sounds per loco and multiple locos
I am sure that it must be possible to code the above using a for loop with the sounds and locos read from a list or dictionary
Can anyone suggest how I might do that - I have used lists, dictionaries and for loops before, but cannot see how to apply them to this particular need.
Many thanks in advance
Dave

Join [email protected] to automatically receive all group messages.