MINI SYNTH

Discuss anything related to the VIC
Post Reply
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

MINI SYNTH

Post by R'zo »

EDIT: VCXX TOY KEYS V.!.5.0 RELEASED

Title: VCXX TOY KEYS
Author:Ryan Liston (with Viznuts pwp wave routine)
Code: assembly
Requirements: Vic-20 unexpanded (works with any expansion
Description: a simple toy synth for the vic.

download:TOY KEYS
git:github

Features:
*smooth fast action key play
*3 octave playable keyboard
*15 voice combonations
*16 pwp style pulse wave forms
*simple attack release envelope
*works with any memory configuration
*download contains .prg, .d64,.tap, audio and cart image formats
toykeys.jpg
Last edited by R'zo on Thu Sep 09, 2021 9:10 pm, edited 2 times in total.
R'zo
I do not believe in obsolete...
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: MINI SYNTH

Post by chysn »

Hey, I think you're on the right path here! Here are a few off-the-cuff suggestions after about 15 minutes of playing with it:

(1) Sustain doesn't seem to work properly. When I hold down a key, it eventually reaches the release stage, even though I still have the key held down. After the decay reaches the sustain level, it should remain at that level until the key is released and THEN go to the release stage.

(2) The pitch bend should be a smoother bend. It just jumps to the nearest half step. Of course, I recognize that on the VIC-20, the smoothest-possible bend might BE a half step

(3) It would be useful to be able to turn off voices (set to Octave 0) from the PLAY screen. Maybe some kind of toggle control. (Edit: see my follow-up post below)

(4) I'm getting what looks like maybe diagnostic output on the PLAY screen after setting Wave to 5 on voice 3.

(5) Kind of along the lines of #3, additional performance controls would be cool (gain, etc.)

(6) I don't understand the point of SHIFT (Repeat). It seems to retrigger the envelope, but you still need the key to be held down. When would that be useful?

I know it's beta, but it's a great start. I think it already blows Synthsound out of the water!
Last edited by chysn on Thu Aug 12, 2021 10:23 am, edited 1 time in total.
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: MINI SYNTH

Post by chysn »

My opinion, humbly given, is that I think you should strive for a tighter integration between sound editing and sound playing. You should hardly ever, if ever, have to leave the PLAY screen. Maybe PLAY should even be the only screen, and the parameters would be edited by pressing function keys or cursoring around. At the VERY least, if you go to another screen, they musical keyboard should still respond so you can immediately hear your changes.

Even when I had a DX7, and had to engage in ceaseless menu diving, the keyboard still played!

I realize that I'm suggesting that you entirely redesign the interface. :D
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

.
Last edited by R'zo on Thu Aug 12, 2021 12:20 pm, edited 3 times in total.
R'zo
I do not believe in obsolete...
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

chysn wrote: Thu Aug 12, 2021 10:08 am Hey, I think you're on the right path here! Here are a few off-the-cuff suggestions after about 15 minutes of playing with it:...
Thank you for the feed back.

(1) I designed this after all the synths I have worked with where the sustain phase fades away to 0 for the sustain duration until the key is released( If the key is released before the end of the duration then the release phase is triggered : else the release phase is ignored.) If sustain is set to 255 then the sustain should hold the same level until the key is released (I realize at the moment that have not tested this yet.) Setting release to 255 should also hold the release phase at a level until a key is pressed.

(4) I believe that would be the above mentioned bug. The control values are printing down the left side of the screen instead of their intended screen positions. This is also effecting other areas of the editor as well. I'm using the plot kernel call to place them and I suspect the carry bit to be the culprit. I'm going to attempt to clear the carry bit from
Basic by poking the status byte. I'm not sure if this will work but it's worth a try.

(6) are you saying that you would prefer ...
-the envelope repeat be an on or off switch
-that you would like the envelope to repeat even after the note key has been released (retriggered with a new note or not)
-do you think it would be better to have the hold key on c= and the repeat on shift so it can have the shift lock?
I can take various methods here but can only provide 1.

(2,3,5) tbh this started out as a demo in basic to test out ADSR. It worker out so well I added some quick features and compiled it. Even in compiled basic these features would slow it down and give to much lag on key reaction to be usable.

This is the mini synth. There is a bigger, faster more feature packed synth on the way after I wrap this up. With that one I'll be writing everything in assembly where I will not be dependent on the FAC to handle my processes and everything will be done much much faster. With that I hope to include more features such as portamento, LFO style effects and more in-depth controls. I'm also planning on using paddle controls for configurable multidirectional pitch bend and maybe other effects controls as well. I also hope to include midi features if I can ever break down the registers of the midi cart.

Thank you again for the feed back. Any suggestions that can't be used to improve the mini synth will be taken to heart for her bigger sister to come.
[/quote]
R'zo
I do not believe in obsolete...
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

I just tested release and sustain being held when set to 255 and they are not working. Adding to bug list.
R'zo
I do not believe in obsolete...
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

@chysn

I've been thinking about this...
There really is no reason that I could not run the editor from the play screen. It may still require a key press to shift between edit and play modes (but not necessarily) so the player does not lag. I'll have to redesign the play screen a little but taking away the other 3 splash screens will clear up a good chunk of memory.

I would like to do a tape release of this as a low budget synth you could get for 5 to 10 dollars. If I do so I would like it to either be 8k or preferably unexpected. Currently the compiled file is about 21.5 k. The original code runs fine on 8k but is unbearably slow. I filed an issue with mospeed and am hoping this is an issue with either the compiler or something in my code that is throwing off the compiler.

If there is a bug and I can get the compiled code to run on 8k or less then taking out the extra splash screens and pulling off a few other small tricks may actually make my goal of an unexpanded tape release feasible.
R'zo
I do not believe in obsolete...
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: MINI SYNTH

Post by chysn »

I’ll have to look into Mospeed, I’ve never heard of it.

I think the best format for music software is cartridge. Then it becomes feasible to use it live. That’s part of the reason I think it should be designed from the ground up for performance.
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

chysn wrote: Thu Aug 12, 2021 6:59 pm I’ll have to look into Mospeed, I’ve never heard of it.

I think the best format for music software is cartridge. Then it becomes feasible to use it live. That’s part of the reason I think it should be designed from the ground up for performance.
I agree, and the mini synths big sister will likely be designed for cart format. I'm not set on this, if I make it for use with midi cart then a disk file set that can be uploaded to midi cart might be better. That decision is still down the road.

I think a low budget solution would also be nice. Carts are expensive . A tape is about the cheapest form of printable hard media.

I think I've decided to go ahead and jump into assembly with this. Basic is just to restrictive. I'm confident that I can reproduce the scope of the current project in assembly to fit in the unexpanded area. Then, since all the code is already in assembly I'll be able to build on it when writing the more feature packed version.
R'zo
I do not believe in obsolete...
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: MINI SYNTH

Post by chysn »

R'zo wrote: Thu Aug 12, 2021 7:39 pm I think a low budget solution would also be nice. Carts are expensive.
There is initial investment required, but not tons. You need a programmer (about $50 USD), a soldering iron or station (almost nothing and up). Each cart needs a case and a PCB ($11 from The Future Was 8-Bit at current exchange rates, plus shipping). Other parts (solder, capacitors, SMD 0-ohm resistors, socket) are minimal. 8K chips, like 28C64B, are about $2. I have labels printed, about 20 cents per cart. All told, the per-cart cost is under $14, and you should amortize whatever equipment you need when you calculate cost. You want to make some margin, meaning you're looking at selling for like $30 per copy.

I sell wAx for a bit more because the kick-ass dead-tree manual it comes with uses the best paper and binding I could get. I think a good manual (not just "good" as in content, but good as in material quality) adds more value than it costs.

You're not selling a game that people will play a few times and put aside. You're selling a tool, a musical instrument. So the kind of product that you're making, people will pay for a cartridge. I put up an Esty store, which has almost no up-front costs, and provides a lot of convenience if (like me), you don't really feel like "going into business." The whole idea was to finance retro-computing hobby stuff like old books and equipment for the bench.
I think I've decided to go ahead and jump into assembly with this. Basic is just to restrictive. I'm confident that I can reproduce the scope of the current project in assembly to fit in the unexpanded area. Then, since all the code is already in assembly I'll be able to build on it when writing the more feature packed version.
Sounds like a good plan.
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

chysn wrote: Thu Aug 12, 2021 9:20 pm

There is initial investment required, but not tons. ...
You have me convinced. I have a couple of diy kits coming in the mail so I can get some practice soldering before I undergo building my own carts.

I am also looking into including cv/gate in and out (Preferably as a separate peripheral so it can be used by other programs as well. ) In is actually looking to be stupidly simple. Out is looking a little more difficult but where there is a will there is a way.

I still want to do a dumbed down "toy synth" for people who would just like something to play around with.
R'zo
I do not believe in obsolete...
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: MINI SYNTH

Post by chysn »

R'zo wrote: Thu Aug 19, 2021 8:38 am I am also looking into including cv/gate in and out (Preferably as a separate peripheral so it can be used by other programs as well. ) In is actually looking to be stupidly simple. Out is looking a little more difficult but where there is a will there is a way.
So, please open a new topic when you get started with this project, because it's something I want to talk about. I built a MIDI/CV interface (outputs only) for Sharp PC-14xx series pocket computers. It basically works by emulating a printer on an Arduino Nano, and using that existing communication channel (in that you send CV or MIDI by "printing" commands from the PC).

CV is handled by an MCP-4725 (an I2C device). MIDI is as it has always been, simple, just using a schematic from the original MIDI spec. Of course, the 5V gate out is the simplest of all. (https://github.com/Chysn/AntiEm and https://www.youtube.com/watch?v=WQitrom ... DUgdcpUdad)

Now, over the last couple years, I decided that my limited retro-computing time would go entirely to the VIC-20, and I want to revive this project. My vision is to use a pair of ESP-32s to cast CV from the VIC-20 in my office to my synth over Wi-Fi. I have no barriers on the Arduino side. My barriers are on the VIC-20 side. I keep reading over the user port section of the Programmer's Reference Guide, despairing that I might be too dumb to build that part out on my own.

But anyway, this is something I'd like to take a deep dive on, now that my latest game is out of the way. So let me know when you get started!
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

Here are my current plans...

I am planning 2 releases.

The first will be a very simple synth for the unexpanded vic that is about 1.5k and will be released soon. It will be an open release intended to be a nice simple toy level synth for people to play around with. If there is a demand I will get it printed to tape.

Features
-3 octave playable keyboard
-3 playable voices represented as an octave switch
-15 selectable sounds per voice
-attack/release style amp envelope
-simple user interface
-pal,ntsc and true interval note tables

The second will be a cart release. I am currently in the brainstorming process for this. I would like to provide a few programs on a single cart for varying usage. I am considering using an external ic for effects processing. Providing a filter is my main interest with this. It is the one feature that I can't provide internally that I fill is lacking from making the vic a full fledged synth. Of course if I can provide delay, chorus, reverb etc. that would be awesome to. I would like the ic to be as direct as possible to implement and use. For example would prefer using a sid chip over an arduino. The sid itself is a definite possibility since the input line can use the filter. I want to accent the sound of the vic not add to it so I shy away from the sid but i admit that those extra voices do have their attraction. Any recommendations on the ic are welcome.
My goal here (at least with the the main mono synth program) is to make my vic more powerful than the moog that she is sitting next to.

Some of the programs that I would like to include on the cart are....
-a powerful mono synth
-a simple poly synth
-loop/beatbox
-combo mono synth/loop box
-music composer allowing for both vic and midi voice control
-tracker for writing music for games and demos
*these are all drawing board. some may be removed, combined, split up or added to.

Since most of these programs will use the same tables there should be enough space for me to pack a good number of features into this cart. With Chysn working on midi solutions i think think we can make the vic a stupidly powerful musical instrument and utility.
R'zo
I do not believe in obsolete...
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

Here is a screen shot of the unexpanded release as a teaser.
Attachments
scsh.jpg
R'zo
I do not believe in obsolete...
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: MINI SYNTH

Post by R'zo »

VCXX TOY KEYS V.1.5.0 is now released.
Now on to more serious work.
R'zo
I do not believe in obsolete...
Post Reply