Shop OBEX P1 Docs P2 Docs Learn Events
Retronitus - Noise from the past! - Page 5 — Parallax Forums

Retronitus - Noise from the past!

1235711

Comments

  • Ahle2Ahle2 Posts: 1,179
    edited 2012-08-16 13:09
    Nurbit wrote: »
    You sir, are a god damn genius.

    I always enjoy reading your posts, even if I only understand a small fraction of it. I still use SIDCOG regularly, just to play dump files and impress my mates :)
    Well, if they are Arduino users, that's understandable. ;)
    Nurbit wrote: »
    Keep up the good work, there are plenty of people on here who appreciate your time and effort.
    Thanks, comments like that gives me more motivation to keep on going.
    Nurbit wrote: »
    If you're ever in the UK, I'll buy you a drink or two :)
    I don't drink, but thanks anyway. :)


    @Circuitsoft
    I think the right word is "tenacious"!
  • Ahle2Ahle2 Posts: 1,179
    edited 2012-08-16 14:00
    Ariba wrote: »
    Ahle2

    Thank you for the Retronitus description. This is how I understand it:

    The SynthEngine: -> generates the sound according parameters

    SoundListInterpreter: -> sets the synth parameters and change them over time (like Envelope/LFO), implemented as interpreted instructions for a virtual mini-CPU.
    something like a "preset / instrument" in a traditional synth

    SoundListTrigger: -> something like a "patch" on a traditional synth, that combines several "presets"

    MusicEngine: -> the sequencer that plays the "patches"
    Mostly right!
    I'm not quite sure if the terms "patch" and "preset" can be seen as different things. Isn't a preset a patch that is inbuilt or default??

    The SoundListTrigger can be seen as a "note trigger" and at the same time a "patch chooser". Every time a non-zero value is written to any of the 8 SoundListTriggers a "note on" is triggered. The non-zero value should be a pointer to a valid instrument/patch/SoundList somewhere in hub memory. As soon as Retronitus finds a value in one of it's SoundListTriggers it will set the program counter of the corresponding SoundListInterpreter to that value. Then it writes back a zero to the SoundListTrigger, so it's ready for the next "note trigger".
    This way up to 8 different patches can be played at once.
    Ariba wrote: »
    I can see that this is very flexible. My concern is that it is too complex to program sounds and music. But I guess that's why you have made the PC application to simplify it. Is there some way to import a common sequencer format, like MIDI standard files or perhaps a Tracker format in that software, for the notes to play?

    Andy
    It basically works the same way as most "play routines" on C64, Atari 800, NES.... etc..
    Of course it's hard to write a song or patch directly with hex values in Propeller Tools, but that can be said of any other music format.
    When my sequencer is finished it will be a breeze composing music, It will not be easy to create patches from scratch though, because then you must have a deeper understanding of how the synthesizer works. But I have created a graphical sound editor that is very easy to work with IF you KNOW how the synth works. And it will be very easy to load instrument patches from disk and include into a song; So it's just up to me to provide a vast library of patches for others to use.

    When you have got your "binary blob" containing tunes and sound FXs for Retrontius, it's as far as I know the easiest way for the end user to include sound in their Propeller application.

    Retronitus.start(pinX, pinX)
    Retronitus.play(addressToTune)

    That's all that is needed to play a tune and it runs completely inependant in a single cog.
    Then you can call "Retronitus.playSoundFx(addressToSoundFx, channelNumber)" to play sound FXs while the tune is playing.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-08-16 14:14
    Thanks for the description!

    Genius comments seconded BTW. :)
  • Simon_AmplemanSimon_Ampleman Posts: 7
    edited 2013-01-24 13:58
    Hello, Very impressive work!

    I am very interrested to learn how to create such a niece sound system by myself by understanding the whole thing. Do you have any books recommendation ?

    Thank you!

    Simon
  • Ahle2Ahle2 Posts: 1,179
    edited 2013-01-25 05:47
    Thanks!

    Retronitus isn't by any means a "standard synthesizer" that could be understood by reading a book.
    It's heavily limited/"unlimited" by the strengths/weaknesses of what a single cog in the Propeller can do.
    It wouldn't fit any other CPU on the market. On an AVR I would have come up with something that would have sounded totally different. (probably)

    In other words!
    Retronitus is a perversion based on hacks, shortcuts and all kinds of trickery. ;)


    To learn more about general sound synthesis, you could start off by learning conepts such as:
    * Phase accumulation
    * DDS
    * Basic waveforms
    * Amplitude envelope
    * Pulse width modulation
    * Amplitude modulation
    * Frequency modulation
    * Phase distortion modulation
    * Subtractive synthesis
  • Simon_AmplemanSimon_Ampleman Posts: 7
    edited 2013-01-25 09:50
    Thank you, this list of concepts will surely guide me along the way.

    Combining your keywords gave me this book : http://crca.ucsd.edu/~msp/techniques/v0.11/book.pdf

    Looks like a very interresting start-up !

    Have a nice day!

    Simon
  • pik33pik33 Posts: 2,387
    edited 2013-01-25 12:02
    The book looks interesting.

    This may be useful, too :) :

    http://www.linusakesson.net/music/elements/index.php
  • User NameUser Name Posts: 1,451
    edited 2013-01-26 13:50
    I think these two resources are way cool! So is Retronitus.

    Often I have to come up with sounds for a project or a product. With what I've learned here, future sounds are going to be a lot less ad hoc and a lot more professional.

    Many thanks!
  • JLSJLS Posts: 76
    edited 2013-09-11 00:23
    Any news about this great work ?

    Thanks Kamil
  • Ahle2Ahle2 Posts: 1,179
    edited 2013-09-12 03:37
    I'm sorry but I havn't been giving this any attention since my last post. The engine is pretty much done. What prevents it from being used, is the lack of official tools to make music and sound fx. I have unfinished tools on my harddrive, but I lack motivation to finish them at the moment. I do however encourage others to make tools. I will provide information on the music and fx format if there is interest.

    /Johannes
  • JLSJLS Posts: 76
    edited 2013-09-13 00:13
    Thanks info Ahle2

    Your planning new synthesis obex for propeller ? like FM synth, Granular or Wavequide ? :-)

    Thanks all your works

    Kamil
  • __red____red__ Posts: 470
    edited 2013-09-14 06:43
    I don't ever want this thread to fall off the front-page again. I can't believe I just learned about this project in the last few days.
  • Ahle2Ahle2 Posts: 1,179
    edited 2013-09-14 08:59
    I think it will fall off the main page because I'm not active and others seems to have lost hope in the project. Btw, Imagine what could be done on a P2 in single cog when it comes to sound generation. It has got 8x instruction rate, plus multiplication. Probably 20x the performance for things like this. :)

    /Johannes
  • Ahle2Ahle2 Posts: 1,179
    edited 2013-09-14 09:01
    JLS wrote: »
    Thanks info Ahle2

    Your planning new synthesis obex for propeller ? like FM synth, Granular or Wavequide ? :-)

    Thanks all your works

    Kamil

    Not at the moment. Have you tried Aribas FM synth?
  • JLSJLS Posts: 76
    edited 2013-09-16 09:25
    Yes Aribas FM synth is great :-)
  • Hi,

    I found this thread while searching for a good way to add music to games. Retronitus seems perfect for my needs, however I can't find any precise documentation about how to write music and sound effects for it, all I can find are the binary files. I tried to reverse engineer the files using the assembler source code without any luck so far.

    Ahle2, if you are still around, can you please publish the details on the music and effects instructions ?

    Thanks,
    Marco.
  • Ahle2Ahle2 Posts: 1,179
    I just stumbled on your comment after not reading the forum for like 3 months. Of course I can help you out. I can give you all the sources and documentation. I have not been doing anything on Retronitus for some years now. Do what you want with it! :)
  • That's great! I have the source code (found somewhere on this thread, maybe it was updated in the meantime) and managed to partially understand the commands for the effects / instruments but most of the bits are still unknown to me, so any documentation you have will be very welcome.
  • Can I get in on this?
  • I'm interested too
  • Me three!
  • I'm very interested this work
  • Ahle2Ahle2 Posts: 1,179
    It's nice to see that so many forumistas are interested! :)

    Here is the latest version of Retronitus with some raw music data in DAT sections to fool around with. I understand that it is not easy to reverse engineer the data formats, but you will have to wait a little bit more before I am back with more indepth information. (partly due to the fact that I can't seem to remember all the details my self ;) )

    Here are some notes that may be helpful

    + The instrument and SFX data is the same format
    + Each sound channel generates just one type of waveform (3 square, 3 saw, 1 noise, 1 triangle)
    + The sound channels are fixed to either right or left (all to the left in this version for some reason?!)
    + Each sound channel plays music data that is totally independant from the other channels (music is synced once when "hit play")
    + Sound FX can be triggered in a channel that currently is playing music, but it will get interrupted when a new note is played
    + The music data uses patterns, just like Protracker and Fasttracker, but each channel has got its own "positions"
    + Notes in a pattern uses a signed 5 bit delta format. The first note is absolute, the rest are relative
    + Each pattern can only have one instrument, but thanks to the dynamic pattern lenght that limitation is easily overriden

    That's all for now!

    /Johannes
  • Hi Ahle2

    main-bst-archive-160816-192432.zip archive is corrupt.

    Please reupload this - many thanks

    Kamil
  • PublisonPublison Posts: 12,366
    edited 2016-08-16 19:45
    JLS wrote: »
    Hi Ahle2

    main-bst-archive-160816-192432.zip archive is corrupt.

    Please reupload this - many thanks

    Kamil

    Can be found here:

    http://www.fnarfbargle.com/bst.html

    http://www.fnarfbargle.com/bst/snapshots/



  • first retronitus archive is corrupt :-)
  • JLS wrote: »
    first retronitus archive is corrupt :-)
    I just downloaded it and it unzipped fine for me on my Mac.

  • JLSJLS Posts: 76
    edited 2016-08-16 20:33
    First archive corrupt unziped files 0 bytes. Second fx archive working fine.
  • PublisonPublison Posts: 12,366
    edited 2016-08-16 20:38
    JLS wrote: »
    First archive corrupt unziped files 0 bytes. Second fx archive working fine.

    Can you give a link to the link that is not working?" The binaries seem to work fine in the first post.



Sign In or Register to comment.