New idea: WAV files to drive IR emitter/blaster

Discussion forum for JP1 software tools currently in use, or being developed, such as IR, KM, RemoteMaster, and other misc apps/tools.

Moderator: Moderators

The Robman
Site Owner
Posts: 21890
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Kevin Timmerman wrote:Check "Ask for Name" and you can tell it where to save.
That was one of the many options I tried, and I have loads of ICT files to show for it. Which command or menu item do you select to make it save a WAV file? (ie, Export, Save All, Save Last Selected, etc)
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Kevin Timmerman
Expert
Posts: 142
Joined: Tue Jan 09, 2007 5:52 pm
Location: West Michigan

Post by Kevin Timmerman »

If "Audio" is checked then it should create a wav file right after a successful capture initiated by clicking the capture button.

I don't think there is a way to save as audio, but that could easily be added.
The Robman
Site Owner
Posts: 21890
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Ah, see there's the rub, I'm not actually capturing anything, I'm just opening an existing ICT file in order to experiment to see how it works.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
|Alex|
Posts: 17
Joined: Tue May 08, 2012 3:40 am

Post by |Alex| »

I'm the user who needed to convert a Pioneer hack code to wav. I've already generated the wav file using another program and uploaded to the files section.
Rob asked me to try IrMaster but for some reason it didn't work. When I click Analyze button it shows Undetermined. I've tried Pioneer and all Nec protocols but all gives the same result.
Export button shows For input string:""

This is the Power button code of a Pioneer BD player:
0000 0068 0000 0044 0168 00b4 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 0043 0016 0043 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 06d9 0168 00b4 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0016 0016 0016 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 0043 0016 0043 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 06d9

Am I doing something wrong?
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

|Alex|:

First, lets (for the moment being) forget about "Analyze", it is here not relevant. To use the test version you have to fill in D, F and possibly S. Then the thus defined signal will be rendered and exported to wave.

If you pressed "Decode" with the given Pronto signal, you would have got

protocol = Pioneer, device = 161, obc = 129
protocol = Pioneer, device = 175, obc = 188

Your signal is, according to DecodeIR really two signals, which makes it sligtly trickier to generate. There is in the current testversion of IrMaster no possibility to generate wave export for a raw signal, lets see what can be done...

I agree that the error message is not very useful, and I may improve it. (This sort of feedback is also very welcome!)
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

|Alex| wrote:
This is the Power button code of a Pioneer BD player:
0000 0068 0000 0044 0168 00b4 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 0043 0016 0043 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 06d9 0168 00b4 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 0043 0016 0016 0016 0016 0016 0016 0016 0043 0016 0043 0016 0043 0016 0043 0016 0016 0016 0043 0016 0043 0016 0043 0016 0016 0016 0016 0016 0016 0016 0016 0016 0043 0016 0016 0016 06d9
Does this work?
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

I have uploaded a new patch; same download location as before. This version allows generating a wave file from a CCF in the Analyze raw field, provided that all the parameters (D, S, F) are zero. Some error messages are improved. If the intro signal is of length zero and # repetitions also 0, wave export is rejected (since it would be empty). For this reason, the default # repetitions is now 1 instead of 0. Version number now says 0.1.2b. Also, I made "Automatic File Names" default to on.


Remark
The first patch contains IrMaster.jar and harctoolbox.jar; the second IrMaster.jar and IrpMaster.jar. This is not a mistake (the reason is that org.harctoolbox.wav_export was moved/renamed to org.harctoolbox.IrpMaster.WaveExport). The new version works both with the "original" and the 0.1.2a-distributed harctoolbox.jar. I think...
|Alex|
Posts: 17
Joined: Tue May 08, 2012 3:40 am

Post by |Alex| »

Barf wrote:
|Alex| wrote:This is the Power button code of a Pioneer BD player:
Does this work?
Yes, it works. I converted it to wav using this Python program:
http://rtfms.com/wp-content/rtfms-com/p ... _to_wav.py
|Alex|
Posts: 17
Joined: Tue May 08, 2012 3:40 am

Post by |Alex| »

Barf wrote:I have uploaded a new patch; same download location as before. This version allows generating a wave file from a CCF in the Analyze raw field, provided that all the parameters (D, S, F) are zero. Some error messages are improved. If the intro signal is of length zero and # repetitions also 0, wave export is rejected (since it would be empty). For this reason, the default # repetitions is now 1 instead of 0. Version number now says 0.1.2b. Also, I made "Automatic File Names" default to on.


Remark
The first patch contains IrMaster.jar and harctoolbox.jar; the second IrMaster.jar and IrpMaster.jar. This is not a mistake (the reason is that org.harctoolbox.wav_export was moved/renamed to org.harctoolbox.IrpMaster.WaveExport). The new version works both with the "original" and the 0.1.2a-distributed harctoolbox.jar. I think...
Oh I forgot to tell you. I think I know why it wont work. The wav file has to be 16 bits and stereo to drive 2 IR emitters connected in reverse, just like that picture Kevin posted.
This website explains why it has to be in stereo with each channel driving one emitter:
rtfms.com/episode-4-turn-your-iphoneandroid-mac-pc-player-etc-into-a-universal-remote.htm
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

|Alex| wrote:
Barf wrote:
|Alex| wrote:This is the Power button code of a Pioneer BD player:
Does this work?
Yes, it works. I converted it to wav using this Python program:
http://rtfms.com/wp-content/rtfms-com/p ... _to_wav.py
You got me wrong. I am convinced that your wave file works. I was asking you, in order to provide the community with the best possible software, to verify that the file I had rendered (downloadable by clicking the "this") also worked, as a collegial effort.
Oh I forgot to tell you. I think I know why it wont work. The wav file has to be 16 bits and stereo to drive 2 IR emitters connected in reverse, just like that picture Kevin posted.
This website explains why it has to be in stereo with each channel driving one emitter:
rtfms.com/episode-4-turn-your-iphoneandroid-mac-pc-player-etc-into-a-universal-remote.htm
The dual, "anti-parallel" IR-LEDs are essential, but there the truth ends. From the practical side: I soldered two IR-LEDs together, connected it to a 10 ohm resistor, cable, and banana plugs, and plugged into ONE channel of a high power audio amplifier (Yamaha RX-V1400). I have been able to turn on my TV from 5 meters (15 feet) distance with that. From the theoretical side: I will be happy to scrutinize any argument of why "stereo" or 16 bit should be necessary -- said reference does not contain any such argument. That doubly rectifying a sine wave produces a signal of the double frequency (with appropriate interpretation) is a statement that can be proved with mathematical precision.

I would appreciate if you test and provide feedback on my software, in the interest of the community.
Kevin Timmerman
Expert
Posts: 142
Joined: Tue Jan 09, 2007 5:52 pm
Location: West Michigan

Post by Kevin Timmerman »

Using a stereo signal with one channel phase shifted by 180 degrees (inverted) allows for higher voltage to drive the LEDs. This is very helpful when using the headphone amplifier of portable device or a sound card line level output.
|Alex|
Posts: 17
Joined: Tue May 08, 2012 3:40 am

Post by |Alex| »

The dual, "anti-parallel" IR-LEDs are essential, but there the truth ends. From the practical side: I soldered two IR-LEDs together, connected it to a 10 ohm resistor, cable, and banana plugs, and plugged into ONE channel of a high power audio amplifier (Yamaha RX-V1400). I have been able to turn on my TV from 5 meters (15 feet) distance with that. From the theoretical side: I will be happy to scrutinize any argument of why "stereo" or 16 bit should be necessary -- said reference does not contain any such argument. That doubly rectifying a sine wave produces a signal of the double frequency (with appropriate interpretation) is a statement that can be proved with mathematical precision.

I would appreciate if you test and provide feedback on my software, in the interest of the community.
I installed v0.1.2 and the wavepatch, generated a 4.88kb wav file but my player didn't respond to this signal.
Then I checked it with a wave editor and its waveform has a very different shape than the other I have. The one I have is just PWM with max amplitude while your has middle values. I'm not sure, but visually it appears that yours has just the first leadin/leadout sequence.
You are right, I converted my signal to 8 bits mono and it worked the same way.
I don't know how but it also worked using a single IR led and mono plug.
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

@Kevin:
Using the difference signal L-R of course allows you the double amplitude. But, the difference signal is still yet another mono signal, so you will achieve exactly the same result by cranking up the volume of the mono signal 3dB. Of course, the practical problem might be that you cannot do that, since you are already at maximum. (I used an audio amplifier of 110W so I do not have that problem :wink: .) It is not a technologically sound solution to store the data twice to achieve 3dB more.

Still, it might be an useful option to (optionally, off per default) generate a "stereo" wave file. Opinions?

@Alex:
The generated signals I have tested worked, but it may be that one file requires mote "gain" than the other. I will have a look at it in a wave editor. Will take some time though. The file you posted was the Pioneer CCF a few postings earlier, fed through the Python program, right?
|Alex|
Posts: 17
Joined: Tue May 08, 2012 3:40 am

Post by |Alex| »

Barf wrote:The generated signals I have tested worked, but it may be that one file requires mote "gain" than the other. I will have a look at it in a wave editor. Will take some time though. The file you posted was the Pioneer CCF a few postings earlier, fed through the Python program, right?
Yes, that was from another Pioneer code. But if you want to compare the wavs from the same code I used here they are:
http://www.hifi-remote.com/forums/dload ... e_id=10940
0000 006d 0000 0044 0168 00b4 0016 0043 0016 0043 0016 001c 0016 001c 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 001c 0016 0043 0016 0043 0016 0043 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 001c 0016 0043 0016 0043 0016 001c 0016 001c 0016 0043 0016 001c 0016 0043 0016 0043 0016 001c 0016 001c 0016 0043 0016 0043 0016 001c 0016 06d9 0168 00b4 0016 0043 0016 0043 0016 0043 0016 0043 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 001c 0016 001c 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 0043 0016 0043 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 0043 0016 001c 0016 001c 0016 0043 0016 001c 0016 0043 0016 0043 0016 06d9

Oh and just so you know. I dont know if you're going to analyze that program but I found a flaw: I replaced "for j in range( 1, 1):" to "for j in range( 1, 2):" or else it wont process any repetition pairs.
|Alex|
Posts: 17
Joined: Tue May 08, 2012 3:40 am

Post by |Alex| »

And just a side note, that code has an error since Pioneer has error checking as you know. The last byte isn't complementary to the previous in the last bit, both are "1" but it worked anyway.
Post Reply