A.D.A. Amiga Demoscene Archive

  Welcome guest! Please register a new account or log in

  

  

  

Demos Amiga Demoscene Archive Forum / Coding / Cinter - a 4k synth for all Amigas

 

Author Message
Blueberry
Member
#1 - Posted: 21 Apr 2015 20:58 - Edited
Reply Quote
Around one and a half years ago, I started developing a new, tiny synth for use in Amiga 500 productions.

It has been used (in various versions) in five intros so far, plus two oldskool music entries at this Revision.

In the weeks following Revision, I have polished it a bit, and it is now ready for its first public release. :-D

You can find the source and documentation in the BitBucket repository.

Everything you need, plus some examples, can be downloaded together in this archive.

Use this forum for suggestions and the like, and have fun! :-D
Jazzcat
Member
#2 - Posted: 21 Apr 2015 22:55
Reply Quote
Wow, super exciting news, Jagoda!

Gave it a try, but no luck so far. Metasynth seems to work with Sonar, but I can't get any sound out of it. And Reaper doesn't recognize it as a VST instrument.

I'll look into it tomorrow as I'm off out soon.
Blueberry
Member
#3 - Posted: 21 Apr 2015 23:45
Reply Quote
Looking forward to hearing about it. :)

Remember that Cinter doesn't give any sound with default parameter values. Raise decay and bpitch to hear it...
LaBodilsen
Member
#4 - Posted: 22 Apr 2015 10:03
Reply Quote
Seems pretty nice. have been playing around with it in the free VSTHost program, and it's pretty easy to produce some good sounding samples.

this combined with your 4k startup, might just be what i need to get startet coding again :)
blakkhar
Member
#5 - Posted: 22 Apr 2015 13:55
Reply Quote
Unfortunately, I get SSL error with IBrowse because of https:. Can I download it from somewhere else?
Blueberry
Member
#6 - Posted: 22 Apr 2015 14:52 - Edited
Reply Quote
The URLs work just as well with http. I edited the links.
Blueberry
Member
#7 - Posted: 22 Apr 2015 14:57
Reply Quote
Also, Jazzcat and LaBodilsen: keep in mind that different VST hosts apparently have different opinions about what the octaves are named. In Renoise the valid notes match up with octaves 1-3, but they may not in others.

One way to figure out which octave is which is to play some E notes throughout the octaves. When it writes a sample, you have hit E-4, so the valid octaves are the three below that. :)
blakkhar
Member
#8 - Posted: 22 Apr 2015 23:31
Reply Quote
Change URL to http: was the first thing I tried. However, IBrowse doesn`t support it but thanks for trying.
Blueberry
Member
#9 - Posted: 23 Apr 2015 10:56
Reply Quote
Blueberry
Member
#10 - Posted: 25 Apr 2015 19:14
Reply Quote
There are a few things on my "ideas for improvements" list. Let me know if you have some preferences/comments:

- A more memory efficient data format. The current format is designed for simplicity of decoding and minimal compressed size, sacrificing uncompressed size. This can be problematic in terms of memory usage - as memory can be quite scarce on Amiga 500 - and is also inconvenient when you want to make relocation free code, as you cannot reach across the data with PC relative addressing as soon as it exceeds 32k. It could be nice to devise a format which is more compact while resulting in a smaller (or at least not larger) total compressed size, and not significantly higher decode overhead.

- Ability for the player to stop when the music is done or to loop it indefinitely. Perhaps with a custom restart point specified using the B command.

- More "control flow" commands - B (positionjump), E6 (loop), ED (notedelay), EE (patterndelay). These are redundant, as the same thing can always be expressed using other commands, but they can be convenient to the musician sometimes. Full support can be quite tricky, as it can be difficult to figure out when the song has actually finished. Take a look at any module by Dreamer and you will know what I mean. ;)

- Mix Cinter instruments with other samples for hybrid replay. This could allow you to use samples for some of the instruments or generate some using other techniques. Or simply to use the Cinter replayer as a generic Protracker replayer.

- Selectively omit parts of the replay code based on which features are used, similarly to the "usecode" in The Player. Most features use the same, generic period/volume sequencing system, but distortions, vpower, sampleoffset and sample repeat each take up a few bytes. Stop/restart and hybrid replay would take up some as well.

- A MacOSX build of the MetaSynth VST. There has been some interest in this.
h0ffman
Member
#11 - Posted: 25 Apr 2015 22:26
Reply Quote
Dam!! My secret weapon is no longer a secret!! Anyway, really glad to have been a part of this tiny piece of genius. I still remember the day when blueberry sent me the first version with the distortion parameters!! I lost my shit!!!!!

Blueberry
Member
#12 - Posted: 19 May 2015 21:18
Reply Quote
There have been a few reports of problems with the MetaSynth. There is a new build in the MetaSynth and Cinter downloads which seems to work better. If you run into problems, try downloading the new version.

Thanks to Virgill and Jazzcat for reporting issues.

The download also contains a few minor fixes to the converter and readme:
- Command 9 with arguments 00 (repeat last offset) works correctly now.
- Report error if music contains more than 512 different note IDs.
- Description of note IDs in the readme.
- Computation speed range in the readme fixed to match actual measured speed as estimated by the converter (2-6k rather than 5-7k per second).
tEiS
Member
#13 - Posted: 31 May 2015 18:50
Reply Quote
h0ffman:
I lost my shit!!!!!


:D :D :D


so ye . .. while slowely going back to my roots, i've found out some stuff
which i've never knew of .. a 4k synth for amiga .. i was gone for too long,
from the beloved gurlfriend machine .. and had a demoscene break for 3 yrs.

now i'm sort of back again, and want to HIT IT .. on any damn plattform ..
first tracked mod (after more than a decade) sort of finished already ..
the typical tEiS intro choonalism .. and now for some 4k amiga agdchun!

gonna checkout bluberry's synth ;) .. sounds promisin!
Blueberry
Member
#14 - Posted: 31 Oct 2015 16:26 - Edited
Reply Quote
Hello everyone! :-D

I uploaded a new version of Cinter with some significant bug fixes and new features:

- Fixed a bug in the replayer code which would play the 9 command with argument greater or equal to 80 incorrectly.
- The Lua synth would sometimes write a sample with a max-valued parameter using an incorrect sample name (100 instead of XX), resulting in bad conversion. Fixed.
- The converter now supports conversion of samples with lowercase names, so you can edit the names inside Protracker.
- Rather than playing into random memory garbage at the end of the music, the player will now restart from the beginning, just like Protracker does.

New effect command support:
- The F command now supports argument 00 to stop the music (thus it will not restart).
- The B command is now supported. Can be used to restart from a different place than the beginning of the music. Music state carries over correctly to the restart point, even when this causes the music to sound differently the second time around.
- The ED command (notedelay) is now supported, including the useful Protracker 2.3 quirk discovered by Wasp (pitch changes at subsequent row if delay is greater or equal to speed).
- The EE command (patterndelay) is now supported. Figuring out the correct behavior of this command required some experimentation in Protracker, as it has some nontrivial interactions with other commands (in particular commands 0, EC and ED). It also has its share of quirks. Did you know that if you use EE and patternbreak (B or D) on the same row, the target row is skipped and the music continues one row further down? ;)

Enjoy!
blakkhar
Member
#15 - Posted: 1 Nov 2015 12:40
Reply Quote
The issue with EE and pattern break (B or D) on the same row is interesting. Did you tried the same with a pattern loop (E6)? Will this affect on the loop?
Blueberry
Member
#16 - Posted: 1 Nov 2015 20:05
Reply Quote
I just tried that. The loop repeats indefinitely, and the first line is sometimes skipped, sometimes not, in a pattern that depends on both the loop count and the delay value.

There's a reason I have not implemented loops yet. ;)

I want to implement them eventually, mostly because it is going to be a fun challenge figuring out how all these weird behaviors emerge from some underlying logic (or lack thereof).
Blueberry
Member
#17 - Posted: 13 Aug 2016 00:33
Reply Quote
I have been talking about this for some time... well, now it's here: Cinter with samples! :-D

You can simply give the Cinter converter a module which uses a few instruments which are not produced by Cinter on top of the Cinter ones. The converter will output a separate data file to included with your music and given to the player.

The player is slightly bigger, but not by much (especially compressed, since the new code is quite similar to some of the existing code). It supports Cinter music both with and without extra ("raw") samples. A pure Cinter module (without any raw samples) can still be played by the old player.

A few other, minor changes are included:
- Using fineslide (E1 or E2) directly on a note will now give an error. This never worked, as it is incompatible with the music data representation.
- Setting tempo with the F command is now supported, as long as that tempo is 125. :)

Have fun, and let me know what you think. I already found one buggy corner case. Can you find it? ;)

Download link is still the same.

 

  Please register a new account or log in to comment

  

  

  

 

A.D.A. Amiga Demoscene Archive, Version 3.0