Wednesday, June 19, 2019

Collidoscope...A Granular Audio Synth

I was watching random videos and stumbled on this one by Dr Mix.  (this is their prototype, not my version)



So I thought it had a great look and interface, but couldn't imagine how expensive it was.

...it isn't...

This was a project by two people (I assume students at the time) at The Queen Mary University of London.

It operates of a Raspberry Pi, two USB/MIDI keyboards, 4 slider potentiometers, a Focusrite USB soundcard, an arduion Teensy, two microphones and a monitor. 

To make it pretty you build a box.

Their project site has full documentation on the wiring, software, and even hardware.

there are a couple of howevers.

-First, the software was last updated in 2016.   They have a compiled app at the project page that works just fine, but if you want to make any changes...well lets just say I have been neck deep in software for the last few days.
-Second, most of the pictures and explanations show the original version, the plans demonstrate the later version...can cause confusion.


So a big part of their project was the Collaborative concept of separate keyboards, microphones, and sample manipulation.

For now I am simply building a single person version...so I only have to source half the hardware from ebay...
...but I had to modify the software...

If you notice in the video,  you see two wave forms...but they are both on a single monitor.   I wanted to make a single user version and only show one waveform on the whole screen.

If I had done this back in 2016 it would have been a simple text edit and recompile.   However, the compiling code changed quite a bit from then and it was far from a simple text edit.



Tuesday, May 28, 2019

Yaesu 857D, SignaLink, Panadapter, Fldigi, SDRuno, WSJT-X etc...(update at end)




You can see by the title there is a bunch crammed together...

So the dilemma now for those who don't yet have the coin to get something nice like the ICOM IC-7300,  is how to get those advantages with the equipment we already own.

Bit of background...most radios out there have some kind of serial computer interface (CAT for Yaesu) connection and maybe some kind of data interface (for a TNC terminal node controller).

The 857D is in that category, a CAT connection to interface with tuner and computer, and a data connection to access TNC in/out a PTT and squelch status.

Wiring in my setup...

-a CAT cable from 857 to tuner (LDG YT-100) and a CAT cable from tuner to serial/usb adapter to computer.

-a data cable from 857 to SignaLink USB (handles TNC chores) and a usb cable from SignaLink to computer.

-a usb cable from SDRPlay RSP2Pro to computer.

---also a usb hub to have more slots for my laptop.

Hardware Settings...

-usb from CAT adapter creates a COM port...and depending on which slot it is in in the laptop or hub, it will have a different COM port...so I put it in the same slot and labeled that slot, so it will always show up as COM3
---(how do I know? all versions of windows has a 'Device Manager' in win 10, it is hidden, but you can search for it, it is still there.   Under Ports (COM & LPT) you will see your serial port adapter.)

-SDRPlay (RSP2) - my Panadapter -had an entry in Device Manager labeled "SDRPlay (RSP2) under 'Sound,video and game controllers'...if it isn't there...it won't work with your software
---(Occasionally it disappeared, so I had to unplug it...wait a minute, and plug it back in...then check Device Manager to make sure it was there.)

-SignaLink USB also has an entry in 'Sound, video and game controllers' but is called "USB Audio CODEC"   The SignaLink has a physical connection to the PTT, so every bit of software using the SignaLink should have External or VOX for the PTT...and radio should NOT be VOX.

---(the name is important...it will be used many times later)


Software Settings...

Now the fun begins...the easy path is for all the software to live in harmony, see what is going on on the radio, listen to the SDR or SignaLink (as appropriate) and send and receive data almost automatically.

To get there wasn't as hard as I originally thought.

Two key bits of software... VSPE (Virtual Serial Ports Emulator) and Omnirig.

Omnirig is a fantastic and free radio interface for most radios...it is almost a standard, so much radio software out there will utilize Omnirig rather than direct radio connection...this is important because through Omnirig they can 'share' control of the radio...but only one device can have direct connection to the radio COM port.

...unfortunately not all software uses Omnirig...

VSPE is a cheat to get around software that won't talk to Omnirig due to some kind of philosophy (apparently...)

VSPE is a very powerful serial port manipulator...it can to many tasks other than the one I will be using.


So here is the setup part...

In my case the radio is on COM3.

I set up VSPE to 'Split' COM3 to COM10 ... now many programs can connect to COM10 as if it was the radio itself.




I set up Omnirig to 'see' the 857 at COM10 at Rig1.  (4800baud-matches my radio settings, bits 8, parity none, Stop bits 2)



I run SDRuno, there are two locations to set and view the radio settings (radio is now on and connected)...first in the 'RX Control' display under settings, ORIG (stands for Omnirig) I set Rig1. 








in the 'Main' display under settings, ORIG, I should see that RIG1 Type is FT-857, RIG1 Status is On-Line.



WriteLog (logging software my club uses for Field Day),


 Setup-Ports...
 ... RIG #1, Rig Type "Afreet Omnirig"




Winlink Express, after opening 'Winmor Winlink' session, .
-- Settings- WINMOR TNC Setup,  


 -- Settings-WINMOR TNC Setup,


WINMORE Capture and Playback Device are both '(USB Audio CODEC)'   --note: I renamed both of those to 'SignaLink'...yours may show Microphone and Speaker...but the USB Audio CODEC is the key)


  


 in the Winmor window - Settings- Radio Setup, Yaesu FT-857, USB, COM10, 4800, External Serial port for PTT








WSJT-X (currently v2.1.0-rc5) File-Settings


 Radio tab, "Omnirig Rig 1", PTT VOX, Mode None, Split None


 Audio tab, Input and Output, (USB Audio CODEC)






Fldigi (currently v4.1.03) Configure-Rig Control (or Rig tab if you already have the config open),



 Rig Tab - So far I have been successful using their FLrig,'Enable flrig xcvr control with fldigi as client'.



Audio Tab -  Again sound input/output is (USB Audio CODEC)












--FLrig, Config- Setup-Transceiver, Rig FT-857D, Ser Port COM10, Baud 4800, 2 stopbits, nothing selected in the PTT RTS section.




-DigiPan...pretty basic..just set PTT to External.




The Panadapter part is the SDRPlay RSP2Pro.   This is automatically discovered by the SDRuno software.

What the whole deal gets you is...

-within the SDRuno software you can change bands, modes, freq, by either mouse clicking or spinning the mouse wheel...and in some cases you can change the frequency range shown by dragging the mouse (if you are zoomed in).

-but also, within the FLdigi or Winlink software you can control the radio freq and mode within that software.

-meanwhile the logging software is recording contacts (depending on other software, WSJT-X automatically logs contacts) but as a minimum the logging software knows the band mode and freq already.

Without this setup, you could still do digital modes, but everything would require multiple steps.

...BTW if I had a more modern radio like the IC-7300, a lot of the settings wouldn't be needed, but a virtual port still might be used with certain software.

-----
Update:   First, I will throw out there that these programs don't play well together...ie winlink, WSJT-X, FlDigi...so just run the one you are using for the mode you want.

Second...for contest purposes,  my club uses WriteLog...other than that I don't use it...so for contest purposes (i.e. Field Day) I am using it.

...I talk enough HF at work, so I play in the digital modes...we will be using the FT-8 during field day for contact purposes...but through WSJT-X there is no easy logging method.

...I recently (last week) learned that the WriteLog folks have a FT-8 software that does the contacts AND the logs through WriteLog... they call it...wait for it... DigiRite.   So for contest purposes I use it in place of  WSJT-X.

...ok some more Writelog settings were required to use the Digilog...I had to go to Start>Writelog> Sound board mixer control   and define the inputs (signalink, signalink, mic,speaker)


Wednesday, February 6, 2019

Small Oscilloscope kit review





I somehow hadn't heard about this kit until recently...I saw one on a video about the same time a friend showed up with one.  I got this one off Amazon (I am not a shill...so I didn't post a link to a particular one...but this is the title description)

JYE DSO 138 DIY KIT (13801K)




I also got a plastic box for it...funny that Amazon does not recommend this box, and doesn't say it will fit...but yes it will fit.  (I don't know if other brands will work...I have this one)

 Diymore DSO138 2.4" TFT Digital Oscilloscope Acrylic Case DIY Kit (Acrylic Shell DIY Kit))

 The Oscilloscope kit (and apparently there are many knock offs...based on this I think I have a knockoff unfortunately) was straight forward thru hole soldering...there are some pre-populated SMD items, the board is large enough that it is not difficult placing and soldering the components.

It only took a couple of hours or so to solder together, the instructions are good, the components are not well labeled to match the instructions, but it is fairly easy to decipher what goes where (specifically the different capacitor values if you are not familiar with the coding system they use)

I would recommend that you first separate all the components and group them based on item number (R1, R2, C1,C2, etc)   I have a small magnetic mat, with a pre-marked grid, that I just numbered 1-10 and dropped the correct components in...again to make ID easier...I kept them in groups...because there may be one of a particular value but 5 of another...so between label deciphering, and deductive reasoning I could ensure I put the right thing in the thing.

There is a step prior to final assembly to test that you haven't screwed it all up.  Assuming nothing is wrong, you do final assembly and power it on.

I was very surprised at how well it worked.  I have a regular O-scope, so I know what it should look like, do, and how it should operated.   It works just like a mini scope, many bells and whistles I didn't expect to get...

Selectable GND-AC-DC coupling,
1v .1v .01V  grid
X5 X2 X1 expansion

..and a clunky button menu system for timing values etc.

I can't say I would recommend this for real precision work, but if you want a simple O-scope...this works just fine...If you need a pocket (large pocket) sized portable O-scope for quick signal checking, then for the money you can't go wrong with this one.

Tuesday, February 5, 2019

Gizmo Arpeggiator etc

I recently aquired a Yamaha DX7 that needed a tiny bit of maint to bring back to working order...It cost me $1 to fix.   I got really lucky with a really nice keyboard. (the backup battery powers all the ROMS...you can replace it with a holder and coin cell battery)

So I am fiddling around with voices (or patches or specifically Sysex files).   But I am not getting enough...

Randomly I see a YouTube video about Arpeggiators...and specifically DX7 Arpeggiators.

BTW, I am not a pro musician, and I do not understand the math behind this...

So I start searching for an Arpeggiator.  I stumble upon a device that tickles my hardware hacker cockles... Gizmo.

"Gizmo is the codename for an open source MIDI utility device which targets the Arduino Uno or Mega."

Gizmo was done (as far as I can tell) as a music theory thesis.   The documentation is the thesis, so it is a bit hard to wade through...but it is all there.

It is an Arduino, with some code and a MIDI hat on top.   The code utilizes the MIDI hat switches and rheostats to control the software.






The code seems correct..but it is very challenging to wade through, so I am only going to demo the Arpeggiator function.

(I am using a Mega and the MIDI hat)

The short version is the software utilizes the midi functions of the keyboard to manipulate other keys...giving a more complex sound than would normally be generated.

So in my case (DX7), the MIDI-OUT from the keyboard goes into the MIDI-IN on the MIDI shield, and likewise the MIDI-OUT from the shield, goes to the MIDI-IN of the keyboard. (it seems to be a Yamaha thing...my MIDI USB card is wired up the same way.)

I followed the instructions...but I kept having a compiling error...I fought it for days, then realized that I had two temp files that were fouling up the process.

(wire.cpp and wire.h)

Specifically, the instructions to run the code require two edits to standard  wires files.   My solution was to search for those two files on my computer and delete the ones that weren't  the primary files.  (It will make sense when you follow the instructions).

Anyway, this is the demo...not sure why the video was suddenly so dark...but at least the audio was ok...you will notice first I do the audio without the Arpeggiator running, then with it running.


LED Panel display 16x32 for $14.

Update at end:

 

I recommend you follow on YouTube bigclivedotcom in particular a few weeks ago he showed this video...

The summary is,  a toy 'handbag' that has a standard (75 hub) 16x32 LED panel, that you can get on ebay for about $14.

Bigclivedotcom does the teardown etc...

I will fast forward to application.


Because it is a standard 75hub display, you can use Adafruit's data to install and use.  Here is the software code for Pi.

I am using a Raspberry Pi with the RGB Matrix HAT to drive the display.  For cables I searched for 75hub cables and found these at Amazon.   These LED boards have 4pin power plugs, so eventually I found a bag of these.  And these panels only had one connector...so I needed to solder some on to daisy chain the data lines.  I got these from Digi-Key.

Note the high tech blue painters tape...this is just to support it while I test it, the Pi and LED driver board are under the bluetape.


The first panel worked so well...I bought 3 more...and because these displays are designed to be daisy chained...

Some examples of the code and output.  located in this directory.

cd rpi-rgb-led-matrix/examples-api-use/






sudo ./demo -D 0 --led-rows=16 -b50 --led-chain=1 --led-pixel-mapper="U-mapper"






sudo ./demo -D 0 --led-rows=16 -b50 --led-chain=2 --led-pixel-mapper="U-mapper"







sudo ./demo -D 0 --led-rows=16 -b50 --led-chain=4 --led-pixel-mapper="U-mapper"



For the next two you need to specify a font...and specifically a .bdf font...luckily they are included.



 sudo ./scrolling-text-example -f ../fonts/helvR12.bdf -b 75 -s 3 --led-rows=16 --led-chain=2 There is another...






sudo ./scrolling-text-example -f ../fonts/helvR12.bdf -b 75 -s 3 --led-rows=16 --led-chain=4 There is another...



I am just figuring out the software, and I want to make a mount so that I can swivel the two upper panels to be in a row with the lower ones for some applications.


After playing with this, I found this write up.  So that is what is on my sign now.  Here is the Github.

BTW I changed the time display in this rgb-32x64.py code from the writeup.

around line 439

original code was [  text = datetime.datetime.now().strftime("%H:%M"]

now it is [  text = datetime.datetime.now().strftime("%H:%M Local") + '  ' + datetetime.utcnow().strftime("  %H%M UTC  ") ]

That displays the time as   9:45 Local    1545 UTC   (depending on your time zone obviously)

You could probably add more time zones, but that adds a level of difficulty.


Premier Pro CC jog/shuttle dial

I (for fun not profit) do video editing on Adobe Premier Pro.   It is a very powerful program...and I am terrible at keyboard shortcuts, so I mouse everything.

One important part of editing video is finding where you want to start and end a clip, then copy/cut and paste it somewhere.

The cut and paste of PP is pretty straight forward, a chop then drag and drop.

The finding the start/end is the hard part.  And it is a pain with the mouse.   I had a Griffin Powermate Jog shuttle dial that plugs in to USB and you can program it to simulate key presses.

Unfortunately they softare stopped being supported with WinXP, I could run it in Win7 but it would occasionally cause the computer to crash, and completely died by the time Win10 came out...so it was a USB powered paperweight.

BTW it was not recognized natively by any version of windows, it REQUIRED it's software to be running.

So for the last few years I have done without a jog shuttle dial, and continuously scoured the internets for a solution, there are a couple of $1000 solutions...and a $99 one, but the $99 dollar one does not have the ergonomics I wanted...it was too big...about 3 times the size of my Powermate.

Just a couple of weeks ago I was again looking for the J/S and found this article...I was sold, I order parts and soldered them up...then I realized that the parts looked like they might just fit inside my old unused dead Powermate.

So I undid my soldering and got to fitting.




The rotary encoder was a loose fit at the top, but that was fixed with a rubber o-ring.   It  was also a bit long to be centered, but I was able to trim off some of the rotary encoder board so it would fit.

The Arduino Leonardo board was just slightly to big for the spot I put it, however I was able to use a Dremel to cut a bit off the metal Powermate and it tucked right in.


 I also needed to remove the micro USB port, and I direct soldered the original PM USB cord.






In fact the install looks almost identical to the original PC board that was in it.

So with hardware done, I did the normal Arduino stuff to load the authors code into the Arduino, fired up PP and the new J/S worked right away.  

The Arduino program simulates keypresses, so you have to choose which code to install.  

I used the "PremierProDialDIY_LEFT_RIGHT_SPACE.ino" file...the space button in PP is the playback start stop...push down on the rotary encoder to activate that.

Another choice is "...LEFT_RIGHT_CTR_k..." in that case CTR_k is the hotkey to cut...I am afraid I would make accidental cuts.

The author has a new software that cycles between the Lightroom setup and the PP setup, software for the Sony Vegas hotkey...I am only using it with PP.

BTW after looking at the original Powermate pictures...I realize I removed the bottom at some point to try and fix it...I now need to find that piece...

I have 3 or 4 projects to document

I have 3 or 4 projects that I have had completed for a while, but hasn't yet documented.

So I need to get on that...it is easier to do than document...